TCP/IP: 네트워크 계층
네트워크 계층의 필요성
데이터 링크 계층은 이더넷 규칙을 기반으로 데이터 전송을 담당하는데, 같은 네트워크에 있는 컴퓨터에는 데이터 전송이 가능하지만 다른 네트워크나 인터넷으로는 데이터를 전송할 수 없다. 서로 다른 네트워크 간의 통신을 가능하게 하는 것이 네트워크 계층이다. 네트워크 계층을 통해 다른 네트워크로 데이터를 전송하기 위해서는 라우터 네트워크 장치가 필요하다.
네트워크를 통해 데이터를 전송하기 위해서는 반드시 수신지 주소를 알아야 하는데, MAC 주소가 아닌 네트워크를 식별할 수 있는 주소가 필요하다. 이때 사용되는 것이 바로 IP 주소이다. IP 주소가 있으면 다른 네트워크에 있는 수신지 컴퓨터를 지정할 수 있다. 그리고 수신지 컴퓨터 IP 주소까지 어떤 경로로 데이터를 전송할지 결정하는 라우팅 과정도 필요한데, 라우팅 과정은 라우터가 담당한다.
네트워크 계층의 역할
네트워크 계층은 데이터를 전송할 수신 측의 주소를 찾고 수신된 데이터의 주소를 확인하여 자신의 것이면 전송 계층으로 전송한다. 데이터 링크 계층은 인접한 두 노드 사이의 전송을 담당하고, 네트워크 계층은 각 패킷이 송신지에서 최종 수신지까지 정확하게 전송되도록 경로를 책임진다. 이때, 네트워크 계층에서는 논리 주소인 IP 주소가 헤더에 포함되어 전송되기에 송신지에서 수신지까지 주소가 바뀌지 않고 유지된다.
네트워크 계층에서는 데이터를 전송하기 위해서 물리 링크를 임시로 연결하여 더 긴 링크를 만드는 “스위칭 작업”과 송신지에서 수신지로 패킷을 보낼 때 복수의 경로가 생기는 경우 최적의 경로를 찾는 “라우팅 서비스”도 제공한다. 결국 네트워크 계층의 기능은 다음과 같다.
- `논리 주소 지정`: 송신지와 수신지 주소를 헤더에 포함한다.
- `라우팅`: 다양한 경로 중 패킷의 경로를 설정한다.
- `주소 변환`: 대응하는 물리 주소를 찾기 위해 논리 주소를 해석한다.
- `다중화`: 하나의 물리적 회선만 사용하여 많은 장치에 데이터를 동시에 전송한다.
- `패킷 순서 제어`: 도착하는 패킷의 순서를 바로잡아 상위 계층의 메시지를 재구성할 때 사용된다
네트워크 계층 프로토콜
TCP/IP에서 네트워크 계층 프로토콜은 IP, ARP, ICMP, IGMP로 구성된다. 전송 계층의 패킷은 세그먼트 형태로 네트워크 계층에 전송되고, 네트워크 계층의 데이터는 IP 헤더가 추가된 데이터그램으로 동작하는데 이와 같이 상위 계층의 패킷에 IP 주소 정보를 포함한 헤더를 추가하여 하위 계층으로 전송한다. 그리고 반대로 수신할 때는 하위 계층으로부터 받은 패킷의 헤더 정보를 확인하고 헤더를 제거하고 상위 계층으로 전송한다.
IPv4와 IPv6
IPv4와 IPv6에 대한 내용을 다룰 경우 분량이 과다해져서 다음의 포스팅에서 다룬다.
https://kangdy25.tistory.com/247
[컴퓨터 네트워크] - IPv4와 IPv6 (Internet Protocol)
IPv4 (Internet Protocol v4) 인터넷에 연결된 모든 컴퓨터는 고유 주소를 가지는데, 이를 IP 주소라 한다. IP 버전은 IPv4와 IPv6이 있다. IPv4는 32비트의 IP 주소로 $2^{34}$(약 43억)개의 컴퓨터에 할당 가능하
kangdy25.tistory.com
주소 변환 프로토콜 (ARP)
패킷이 수신 측 시스템에 도착하기 위해서는 물리적 네트워크를 통과하게 되기에, 수신 측의 논리 주소 뿐만 아니라 물리 주소도 알아야 한다. 이때, ARP는 IP 주소를 받아서 네트워크 카드의 물리 주소인 MAC 주소로 변환하는 프로토콜이다. 즉, 논리 주소인 IP 주소를 물리 주소인 MAC 주소로 매핑하는 것이 주소 변환 프로토콜(ARP)이다. IP 주소로 MAC 주소를 매핑하는 절차는 다음과 같다.
- 호스트 A가 동일 네트워크 내 호스트 B와 통신하려고 할 때, 목적지 IP 주소는 알고 있지만 해당 IP에 대응하는 MAC 주소를 모르는 경우, ARP 프로토콜을 통해 주소 해석을 시도한다.
- 호스트 A는 ARP Request 메시지를 생성하여 브로드캐스트(FF:FF:FF:FF:FF:FF) 방식으로 네트워크에 전송한다. 이때, 메시지에는 요청자의 IP 및 MAC 주소, 대상 IP 주소가 포함된다.
- 네트워크 상의 모든 호스트는 이 ARP Request를 수신하고, 요청된 IP 주소와 자신의 IP 주소를 비교한다.
- 해당 IP 주소를 보유한 호스트 B만이 ARP Reply 메시지를 생성하여, 요청자에게 유니캐스트 방식으로 응답한다. 이때, 응답에는 자신의 MAC 주소가 포함된다.
- 호스트 A는 응답으로 받은 MAC 주소를 자신의 ARP 캐시에 일정 시간 동안 저장하여, 이후 동일 대상과의 통신 시 재요청 없이 직접 MAC 주소를 사용할 수 있도록 한다.
역주소 변환 프로토콜 (RARP)
역주소 변환 프로토콜은 물리 주소인 MAC 주소를 IP 주소로 변환하는 것이다. 즉, 호스트의 물리 주소를 알고 있을 때, IP 주소를 알아내기 위해서 사용된다.
인터넷 제어 메시지 프로토콜 (ICMP)
인터넷 제어 메시지 프로토콜은 라우터에서 발생한 오류를 송신 측으로 전송하는데 사용하는 프로토콜이다. ICMP의 메시지는 질의 메시지와 오류 메시지로 분류된다. 일반적인 ICMP 질의 메시지의 유형은 다음과 같다.
- 에코 요청 및 응답 (Ping 테스트)
- 타임 스탬프 요청 및 응답
- 주소 마스크 요청 및 응답
- 라우터 요청 및 응답
- 리디렉션 메시지
일반적인 ICMP 오류 메시지의 유형은 다음과 같다.
- 목적지 도달 불가
- 시간 초과
- 매개변수 문제
- 송신지 억제
- 재지정
인터넷 그룹 메시지 프로토콜 (IGMP)
인터넷 그룹 메시지 프로토콜은 인터넷에 연결한 컴퓨터가 멀티캐스트 그룹을 주위의 라우터에 알릴 수 있는 수단을 제공하는 프로토콜이다. 멀티캐스팅은 네트워크의 한 호스트 컴퓨터가 미리 지정된 다수의 컴퓨터에 메시지를 보낼 수 있도록 허용한다.
인터넷 그룹 메시지 프로토콜의 동작 방식은 다음과 같다.
- 호스트가 멀티캐스트 그룹에 가입할 때, IGMP Membership Report 메시지를 전송한다.
- 라우터는 수신된 IGMP 정보를 바탕으로 멀티캐스트 트래픽을 전달할지 결정한다.
- 라우터는 주기적으로 IGMP Query 메시지를 전송하여, 여전히 그룹에 참여 중인 호스트가 있는지 확인한다.
- 만약 참여 중인 호스트가 응답하지 않으면, 해당 그룹에서 탈퇴된 것으로 간주한다.