링커를 사용하는 이유 모듈화 자주쓰는 코드는 모듈화 시켜서 갖다쓰면 편하다. 공간적 : 하나의 모듈만 존재하면 여러 실행파일에서 가져다 쓸 수 있다. 시간적 : 바꾸고 싶은 라이브러리 부분이 있다면 거기만 바꿔서 링킹을 진행하면 된다, 전체를 다시 컴파일할 필요가 없다. 오브젝트 파일의 종류 relocatable object file (a.o) - string, 어셈블리어, 전역변수 같은 프로그램 코드, 다른 오브젝트 파일과 합처져 실행파일을 만들 수 있음 Executable object file (a.out) - relocatable object file을 재배치해서 실행 가능하게 만든 파일 shared object file (a.so) 실행할 때 동적으로 프로그램에 들어가는 파일 can be load..
ICMP(internet controll protocal) 프로토콜: 인터넷 제어 메시지 프로토콜(ICMP)로 .ICMP는 오류를 처리하고 IP 메시지를 제어한다. IP에는 오로지 패킷을 목적지에 도달시키기 위한 내용들로만 구성되어 있다. 따라서 정상적으로 목적지 호스트에 도달하는 경우에는 IP에서 통신이 성공하고 종료되므로 아무런 문제가 없다. 그러나, 만일 전달해야 할 호스트가 꺼져 있거나, 선이 단절된 경우와 같은 비정상적인 경우에 이 패킷 전달을 의뢰한 출발지 호스트에 이러한 사실을 알려야하지만, IP에는 그러한 에러에 대한 처리 방법이 명시되어있지 않다. 이러한 IP의 부족한 점을 메꾸기 위하여 사용되는 것이 바로 ICMP 프로토콜이다. 구조 요약 Type: 에러 타입 Code: 상세 에러 Ch..
ARP protocol: IP주소로부터 mac 주소를 찾는 프로토콜 - 모든 네트워크간 통신은 mac 주소가 필요 (data link layer에서) ARP request is broadcast A가 B의 IP 주소로 B에게 mac 주소를 요청 (어느 mac 주소를 모르니 B를 찾을 수 없어 broadcast 요청) ARP reply is unicast B가 A에게 맥주소를 응답함 (A가 보낸 패킷이니 unicast) ARP 패킷 구조 Hardware Type: mac 주소의 유형을 나타내며 이더넷 통신시 항상 1로 설정 Protocal Type: 매핑 대상인 프로토콜 주소의 유형을 나타내며 IPv4의 경우 0x0800으로 설정 -> 프로토콜에 따른 헤더, 데이터의 길이가 각각 다르기 때문에 어떤 프로토..