티스토리 뷰

728x90

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바이트)

 

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함