Chapter4. 네트워크 계층: 데이터 평면
4.3 인터넷 프로토콜(IP): IPv4, 주소체계, IPv6등
이번 절에서는 인터넷과 IP에서 네트워크 계층의 핵심적인 측면에 초점을 맞춤.
현재 사용 중인 IP는 두 가지 버전이 있는데, IPv4와 IPv6이 있음.
4.3.1 IPv4 데이터그램 포맷
인터넷 네트워크 계층 패킷 → 데이터그램

- 버전 번호
- 4비트로 데이터그램의 IP프로토콜 버전을 명시함.
- 라우터는 버전 번호를 확인하여 데이터그램의 나머지 부분을 어떻게 해석할지 결정.
- 헤더 길이
- IPv4 데이터그램은 헤더에 가변 길이의 옵션을 포함 → 네 비트로 IP 데이터그램에서 실제 페이로드가 시작하는 곳을 결정함.
- 대부분의 IPv4 데이터그램은 옵션을 포함하지 않으므로 대체로 IPv4 데이터그램 헤더는 20바이트임.
- 서비스 타입(서비스 타입 비트 →
TOS
)
- 각각 다른 유형의 IP 데이터그램을 구별함.
- ex. 실시간 데이터그램과 비실시간 트래픽을 구분하는 데 유용함.
- TOS비트 중 2개는 명시적 혼잡 알림에 사용됨.
- 데이터그램 길이
- 최대 크기의 이더넷 프레임의 페이로드 필드에 IP 데이터그램이 정착될 수 있음.
- 식별자, 플래그, 단편화 오프셋
- 위의 세 필드는 IP 단편화와 관련이 있음.
- 큰 데이터그램이 여러 개의 작은 IP 데이터그램으로 분할된 다음 목적지로 독립적으로 전달되며, 여기서 페이로드 데이터가 최종 호스트의 트랜스포트 계층에 전달되기 전에 다시 모이게 됨.
- IPv6는
단편화를 허용하지 않음.
- TTL(time-to-live)
- 네트워크에서 데이터그램이 무한히 순환하지 않도록 함. (라우팅 루프)
- 해당 필드값은 라우터가 데이터그램을 처리할 때마다 감소함.
- 필드가 0이 되면 라우터가 데이터그램을 폐기함.
- 프로토콜
- 일반적으로 IP 데이터그램이 최종 목적지에 도착했을 때 이용됨.
- IP 데이터그램에서 데이터 부분이 전달될 목적지의 트랜스포트 계층의 특정 프로토콜을 명시함.
- IP 데이터그램에서 프로토콜 번호의 역할은 트랜스포트 계층 세그먼트에서 포트 번호 필드의 역할과 유사함.
- 포트 번호가 트랜스포트 계층과 애플리케이션 계층을 함께 묶는 역할 ⇒ 프로토콜 번호는 네트워크 계층과 틑랜스포트 계층을 엮는 역할
-
- 링크계층 프레임이 링크 계층과 네트워크 계층을 묶는 특별한 필드를 갖고 있음.
- 헤더 체크섬
- 라우터가 수신한 IP 데이터그램의 비트 오류를 탐지하는데 도움을 줌.
- 헤더에서 각 2바이트의 수로 처리하고 이 1의 보수를 합산하여 계산한 것.
- 라우터는 수신한 각 IP 데이터그램마다 헤더 체크섬을 계산하고 이 값과 데이터그램 헤더의 체크섬이 다르면 오류 상태임을 감지함.
- 라우터는 보통
오류가 검출된 데이터그램을 폐기함.
- TTL 필드와 옵션 필드의 값은 변경되므로 체크섬은 각 라우터에서 재계산되고 저장되어야 함.
TCP/IP
는 트랜스포트 계층과 네트워크 계층에서 오류 검사를 수행하는가?
- IP 헤더만 IP 계층에서 체크섬을 수행하지만 TCP/UDP 체크섬은 전체 TCP/UDP 세그먼트를 계산함.
- TCP/UDP와 IP는 동일한 프로토콜 스택에 속할 필요가 없음.
- 원리상 TCP는 IP가 아닌 다른 네트워크 프로토콜 위에서 운영될 수 있고, IP는 TCP/UDP로 전달되지 않는 데이터를 전달할 수 있음.
- 출발지와 목적지 IP 주소
- 출발지가 데이터그램을 생성할 때, 자신의 IP 주소를 출발지 IP 주소 필드에 삽입하고 목적지 IP 주소를 목적지 IP 주소 필드에 삽입함.
- 출발지 호스트는 DNS 검색을 통해 목적지 주소를 결정함.
- 옵션
- 해당 필드는 IP 헤더를 확장함.
- 데이터그램 헤더가 가변 길이로 데이터 필드 시작점을 초기에 결정할 수 없어 옵션은 문제를 복잡하게 만듬.
- 일부 데이터그램은 옵션 처리 유무에 따라서 라우터에서 IP 데이터그램을 처리하는 데 필요한 시간이 크게 달라짐.
- 데이터(페이로드)
- 데이터그램이 존재하는 이유이자 가장 중요한 마지막 필드.
- 대부분, IP 데이터그램의 데이터 필드는 목적지에 전달하기 위해 트랜스포트 계층 세그먼트(TCP or UDP)를 포함하지만 ICMP 메시지 같은 유형의 데이터를 담기도 함.