DongDD's IT

Internet Protocol Version4(IPv4) - Checksum, IP Package, Module 본문

네트워크

Internet Protocol Version4(IPv4) - Checksum, IP Package, Module

DongDD 2017. 9. 4. 15:20

Internet Protocol Version4(IPv4)


CheckSum


- TCP/IP 에서 error를 detect하기 위해 사용하는 방법

- Sender가 Header의 모든 값을 다 더해 보수를 취해서 checksum을 만듬

- Receiver는 모두 더한 후 보수를 취한 값이 0이면 제대로 도착, 아닐 경우 버림

Sender                                                        Receiver


IP Package, Module


- IP에서는 효율적으로 관리하기 위해 여러 가지 모듈을 나누어 사용

1) 빨간색 선

- Receiver쪽에서 Packet을 받을 때 거치는 모듈

- Processing Module -> Reassembly module -> upper-layer

2) 파란색 선

- Sender쪽에서 Packet을 전송할 때 거치는 모듈

- Header-adding module -> Processing module -> Forwarding module -> Fragmentation module

3) 초록색 선

- Router에서 다음 hop으로 Packet을 전송할 때 거치는 모듈

- Processing module -> Forwarding module -> Fragmentation module


Module

1) Header-adding module

- checksum을 계산해서 넣음

- Encapsulation

- sending buffer에 datat를 전송

2) Processing module

- 도착 주소가 일치하면 reassembly module로 보냄

- router인 경우 TTL을 감소 시킴

-> TTL이 0 이하인 경우 datagram을 버리고 ICMP 전송

- 나머지 경우는 Forwariding module로 전송

3) Forwarding module

- Routing table을 보고 다음 Hop을 알아옴

4) Fragmentation module

- size가 MTU보다 큰 경우

-> D bit가 set 되어있으면 버리고 ICMP 전송

-> D bit가 unset이면 maximum size를 계산하여 fragmentation으로 나누고 header를 붙이고 전송

- size가 MTU보다 작거나 같은 경우

-> 그냥 전송

5) Reassembly module

- offset이 0 이고 M bit가 0인 경우

-> receving buffer에 전송

- 아닌 경우에는 reassembly table을 찾아봄

-> 없는 경우 새 entry 생성

-> list에 추가함

- 모든 fragment가 도착한 경우

-> fragment를 재조합하고 위 레이어에 전송

- 다 도착하지 않은 경우

-> 시간 초과 시, 모든 fragment를 버리고 ICMP 전송



Comments