네트워크 계층의 핵심, 인터넷 프로토콜(IP)
- 물리 계층, 데이터 링크 계층의 한계를 극복하는 프로토콜
- IP 버전 4(IPv4)와 IP 버전 6(IPv6)
- 오늘날까지는 IPv4가 주로 사용
IP의 공식적인 두 기능
- 주소 지정(IP addressing)
- 단편화(IP fragmentation)
* RFC 791
* RFC(Request for Comments)
- 네트워크/인터넷 관련 신기술 제안, 의견 등을 남긴 문서
- 일부 RFC는 오늘날까지 사용되는 인터넷 표준이 됨
- 이러한 RFC문서에는 위와 같이 번호가 부여됨
- 새 RFC 문서로 개정 출판이 될지언정, 폐지되거나 수정되지 않음
IP의 기능 1. 주소 지정
- IP 주소(IPv4 주소)를 바탕으로 송수신 대상을 지정하는 것을 의미
- 4바이트(32bit)로 하나의 주소를 표현
- 숫자당 8비트로 표현: 0~255 범위 안에 있는 네 개의 10진수로 표기
- 각 숫자는 점(.)으로 구분
- 점으로 구분된 8비트(0~255 범위의 10진수)를 옥텟(octet)이라 함
IP의 기능 2. 단편화
- 전송하고자 하는 패킷의 크기를 MTU 이하의 복수의 패킷으로 나누는 것
- MTU(Maximum Transmission Unit): 한 번에 전송 가능한 IP 패킷의 최대 크기
- IP 패킷의 헤더도 MTU 크기에 포함
- 일반적인 MTU 크기는 1500 바이트, MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조합
- 1500 바이트는 페이로드에 명시할 수 있는 '일반적인 데이터 크기'였음
https://hail2y.tistory.com/80 글에 올렸던 이더넷 프레임의 Data 부분을 확장하면 아래의 그림처럼 표현할 수 있다. 정확히 말하면, IPv4의 패킷 헤더와 IPv4의 패킷 페이로드로 구성된 형태로 여러 개의 필드로 이루어져 있다.
IPv4 패킷의 핵심 필드
- 식별자(Identifier)
- 플래그(Flags)
- 단편화 오프셋(Fragment Offset)
- TTL(Time to Live)
- 프로토콜 (Protocol ID)
- 송신지 IP 주소(Source IP Address)
- 수신지 IP 주소(Destination IP Address)
단편화 관련 필드 ① 식별자 (Identifier)
- 패킷에 할당된 번호
- 쪼개져서 도착한 IPv4 패킷들이 어떤 메시지에서 쪼개졌는지를 알기 위해 사용
- 각 조각이 동일한 데이터그램에 속하면 같은 일련번호를 공유함
단편화 관련 필드 ② 플래그 (flags) - 세 개의 비트로 구성
- 첫 번째 비트는 항상 0: 현재 사용되지 않음
- DF 비트 (Don't fragment) - IP 단편화를 수행하지 말라는 표시
if 1, IP 단편화를 수행하지 말라는 뜻 -- 목적지 컴퓨터가 조각들을 다시 모을 능력이 없기 때문에 중간 라우터들에게 의사 전달
if 0, IP 단편화 가능함 - MF 비트 (More fragment) - 단편화된 패킷이 더 있다는 표시
if 1, 쪼개진 패킷이 아직 더 있다는 뜻
if 0, 이 패킷이 마지막 패킷이다
단편화 관련 필드 ③ 단편화 오프셋 (fragment offset)
- 초기 데이터에서 몇 번째로 떨어진 패킷인지를 나타냄
- 단편화되어 전송되는 패킷들은 수신지에 순서대로 도착하지 않을 수 있음
- 수신지가 패킷들을 순서대로 재조합하려면 단편화된 패킷이 초기 데이터에서 몇 번째에 해당하는 패킷인지 알아야 함
④ TTL (Time to Live)
- 패킷의 수명
- 무의미한 패킷이 네트워크 상에 지속적으로 남아있는 것을 방지하기 위해 존재
- 패킷이 하나의 라우터를 거칠 때마다 TTL이 1씩 감소, TTL 값이 0이 되면 폐기
- 홉(hop): 패킷이 호스트 또는 라우터에 한 번 전달되는 것
= TTL 필드의 값이 홉마다 1씩 감소
➄ 프로토콜 (Protocol ID)
- 상위 계층의 프로토콜이 무엇인지를 나타내는 필드
- 상위 계층의 어떤 프로토콜을 캡슐화했는지를 나타냄
- 이더넷 프레임의 '타입/길이' 필드와 비슷함
- ex. 전송 계층의 대표적인 프로토콜인 TCP는 6번, UDP는 17번
주소 관련 필드 ➅ 송신지 IP 주소
주소 관련 필드 ➆ 수신지 IP 주소
- IPv4(32bit)의 경우 할당 가능한 주소의 개수는 2^32개로 약 43억 개
- 이 숫자는 전 세계 인구를 대상으로 했을 때 부족한 숫자이므로 다른 대안이 필요
아래의 사진은 와이어샤크에서 이러한 IPv4 패킷 헤더 필드들이 어떻게 표시되는지를 보여준다.
IPv6
- 16바이트(128bit)로 주소 표현 가능
- 콜론으로 구분된 8개의 그룹의 16진수로 표기
- 이론적으로 할당 가능한 주소의 개수는 2^128개로 사실상 무한에 가까운 수
패킷 헤더를 전체적으로 비교해 보면 아래와 같다.
IPv6 패킷의 핵심 필드
- 다음 헤더
- 홉 제한
- 송신지 IP 주소
- 수신지 IP 주소
① 다음 헤더 (next header)
- 상위 계층의 프로토콜 또는 확장 헤더를 가리키는 필드
- 확장 헤더 (extension header)
- IPv6는 기본 헤더와 더불어 확장 헤더라는 추가 헤더를 가질 수 있음
- 확장 헤더는 기본 헤더와 페이로드 데이터 사이에 위치
- 마치 꼬리에 꼬리를 물 듯 또 다른 확장 헤더를 가질 수도 있음
- IPv6는 확장 헤더의 유형 중 '단편화 확장 헤더'를 통해 단편화가 이루어짐
② 홉 제한 (hop limit)
- IPv4 패킷의 TTL 필드와 비슷
- 패킷의 수명을 나타내는 필드
③ 송신지 IP 주소
④ 수신지 IP 주소
'network' 카테고리의 다른 글
[network] 혼자 공부하는 네트워크 03-1 추가: IP 단편화를 피하는 방법 (240808) (0) | 2024.08.08 |
---|---|
[network] 혼자 공부하는 네트워크 03-1 ARP(Address Resolution Protocol) (240807) (0) | 2024.08.07 |
[network] 혼자 공부하는 네트워크 03-1 네트워크 계층의 기능 (240805) (0) | 2024.08.06 |
[network] 혼자 공부하는 네트워크 02-4 스위치 (240718) (0) | 2024.07.18 |
[network] 혼자 공부하는 네트워크 02-3 허브 (240717) (0) | 2024.07.17 |