티스토리 뷰
IP 프로토콜
- 비연결형 서비스를 제공
- 패킷으로 분할/병합하는 기능 수행
- 헤더에 대한 체크섬만 제공
- Best Effort 방식의 전송 기능(-> 100% 전송을 보장하지 않음)
- 오류제어나 흐름제어는 제공하지 않음
- DS(Differentiated Services) - 차등 서비스 제공용
- ECN(Explicit Congestion Notification) - 명시적 혼잡 제어 통지용
패킷 분할 관련 필드
- Identification: 분할되지 않은 패킷은 값을 순차적으로 증가하고 분할된 패킷은 동일한 번호를 부여함
- DF(Don’t Fragment): 수신자가 패킷 병합 기능이 없을 때 사용 패킷 분할을 금지시킴
- MF(More Fragment): 분할된 패킷의 처음과 중간은 1로, 분할된 패킷의 마지막은 0으로 설정
- Fragment Offset: 분할한 패킷들이 분할되기 전 데이터에서 얼마만큼 떨어져있는지 위치를 표시. 8바이트의 배수로 지정
주소 관련 필드
- Source Address: 송신 호스트의 IP 주소
- Destination Address: 수신 호스트의 IP 주소
기타 필드
- Version Number: IP 프로토콜의 버전을 명시 (IPv4인 경우 4)
- Header Length: 헤더 길이. 32 비트를 한 단위로 표시
- Packet Length: 헤더를 포함한 패킷의 전체 길이. 패킷의 길이가 크면 데이터 링크 계층에서 다시 분할
- Time To Live(TTL): 패킷의 생존 시간. 라우터를 거칠 때마다 1씩 감소되며 0이 되면 패킷을 강제로 제거
- Transport Protocol: 상위 계층 프로토콜을 명시(TCP:6, UDP : 17, ICMP :1)
- Header Checksum: 헤더 오류 검출(데이터가 아닌 헤더만 체크섬 값을 계산)
- Options
- Padding
패킷 분할의 예
* IP 헤더를 제외한 전송 데이터의 크기가 380 바이트이고, 패킷의 최대 크기가 128 바이트인 경우
1) IP 헤더가 20바이트이므로 128-20=108바이트가 데이터의 크기가 됨.
2) 하지만 Offset을 8바이트의 배수로 설정해야 하므로 데이터의 크기도 8의 배수여야 함.
3) 즉 8*13=104바이트를 데이터의 크기로 설정.
4) 마지막 패킷의 데이터 크기는 380-104*3=68이 됨.
5) 각 패킷들의 크기는 124, 124, 124, 88. (데이터 크기+헤더 크기 20바이트)
'cs > network' 카테고리의 다른 글
[네트워크/network] IPv6 기능/헤더 구조/주소 표현 (0) | 2021.04.18 |
---|---|
[네트워크/network] 네트워크 계층의 DHCP 프로토콜 (0) | 2021.04.17 |
[네트워크/network] 네트워크 계층의 라우팅 프로토콜 (0) | 2021.04.17 |
[네트워크/network] 네트워크 계층의 라우팅 기능 (0) | 2021.04.17 |
[네트워크/network] 네트워크 계층의 혼잡 제어 기능 (0) | 2021.04.17 |