IP 데이터그램
From CS Wiki
- IP Datagram; IP Packet; IP 패킷
IP프로토콜에서 데이터가 전달되는 기본 단위
- IP 패킷이라고 많이 부르지만, '패킷'이라는 표현은 더 일반적인 표현으로, IP에서 사용되는 패킷을 데이터그램이라 칭하므로, IP 데이터그램이라고 부르는 것이 더 정확함
데이터그램 헤더[edit | edit source]
Version (4bit)
All) 0100 |
HLEN (4bit, quartets 단위)
헤더의 길이 |
DS/ESN (8bit)
지금은 거의 쓰이지 않는 옵션 대부분 00000000으로 들어감 |
Total Length (16bit, octets 단위)
데이터를 포함한 IP Datagram의 전체 길이 | |
Identification (8bit)
재조립을 위한 모체를 식별하는 코드 |
Flags(3bit)
-More bit: 파편 중 마지막인지 아닌지 -Don't fragment bit: 절대 분할금지. 분할이 필요하면 폐기 |
Fragment Offset(15bit, octets 단위)
헤더를 포함하지 않은 데이터만의 시작 위치 | ||
Time to Live (8bit)
데이터그램의 수명 네트워크를 거칠 때마다 --1; (라우터 통과) 0이 되면 폐기 |
Protocol(8bit)
상위 계층의 프로토콜이 누구인가? ex) TCP, UDP, ICMP |
Header Checksum(16bit)
데이터 전체가 아닌 헤드의 오류만 검출 오류가 검출되면 복구하지 않고 폐기 | ||
Source Address(32bit) | ||||
Destination Address (32bit) | ||||
Options + Padding (가변 bit)
Padding: 전체 길이가 무조건 4의 배수가 되어야 하기 때문에 4의 배수가 아닐 경우 이를 채우기 위해 사용. |
- 버전숫자: IP 프로토콜의 버전을 정의
- 헤더길이: 데이터그램은 가변의 헤더를 가지게되기 떄문에 수신자가 데이터그램을 수신하면 헤더가 어디서 끝나고 패킷에 캡슐화된 데이터가 어디서 시작하는지 알아야 한다. 따라서 수신자는 전체 길이를 확인하기 위해 필드값에 4를 곱하게 된다.
- 서비스유형: 데이터그램을 어떻게 처리할지를 정의
- 전체길이: IP 데이터그램의 전체 바이트 수를 정의함
- 식별자 (단편화 관련): 데이터그램이 전송된 근원지 호스트를 구분
- 플래그 (단편화 관련): 세개의 비트로 단편화 관련 정보를 표시함
- 첫번째 비트 : 사용되지 않음
- 두번째 비트 : 단편화 금지 필드
- 세번째 비트 : 1이면 다른 단편이 더 있음을 의미, 0이면 마지막 단편이거나 오직 하나의 단편임을 의미
- 단편화 오프셋: 전체 데이터그램에서 해당 단편의 상대적인 위치를 나타냄
- 생존시간(TTL): TTL 필드는 데이터그램이 방문할 수 있는 최대 라우터 수를 정의함
- 프로토콜: 근원지 IP에서 페이로드가 캡슐화될 때, 이 필드에 상응하는 프로토콜의 번호가 추가됨
- 헤더 검사합(Checksum): IP는 헤더를 검사하기 위한 검사합 필드를 추가함
- 근원지와 목적지(Destination Address): 각각 소스IP와 목적지IP주소를 나타냄
- 옵션: 데이터그램 헤더는 40바이트까지 옵션을 가질 수 있음