본문 바로가기
네트워크/컴퓨터 네트워크 수업

4-3. IP(Internet Protocol)(1)

by dustnn 2024. 11. 13.

- Overview of Network Layer

- What's inside a router

- IP(Internet Protocol) : forwarding을 위해 사용

(1) datagram format & fragmentation

(2) IPv4 addressing

(3) network address translation(NAT)

(4) IPv6

- Generalized Forwarding, SDN(Software-Defined Network)

- Middleboxes : 새롭게 생겨나는 기능들을 router의 핵심 계층으로 실을 수 없어 만드는 별도의 box

 

 

 

Control plane의 protocol: 다음 챕터에서 자세히 (router에만 존재)

1. Path-selection algorithm을 실행

routing protocol 안에 path-selection algorithm 포함

-> (traditional network의 경우)routing protocol들이 network 상태 정보 끌어모음

(SDN network의 경우)SDN controller가 path-selection algorithm 실행

-> path-selection algorithm 실행 결과로 forwarding table이 생성

 

2. ICMP protocol

- error reporting

- router "signaling"

 

 

Data plane의 protocol: IP protocol (router + end host 모두에 존재)

- datagram format: 어떤 형태로 encapsulate하는지

- addressing: 목적지를 어떻게 표현하는지

- packet handling conventions

 

이 세 개를 차례대로 살펴볼 것이다.

 

IPv4 datagram format(Datagram format)

 

 

보통 ip datagram은 option field가 없기 때문에 header 길이가 20byte(고정 길이=20byte)

=> TCP header 20byte + IP header 20byte =40byte(최소 길이!!)

 

- ver: IP datagram의 remainder을 어떻게 해석할 것인지는 version에 따라 다름

- head.len: "options" field에 따라 길이가 가변적일 수 있기 때문 => 헤더만의 길이

- type of service: 1byte

* 0~5: diffserv, 6~7: ECN

- length(16bit): datagram 전체 길이

* header+data 총 길이 => 2^16byte=64K byte 가능

* 보통은 1500 byte 이하 (ethernet의 frame size=1500 byte이기 때문)

- time to live: 목적지까지 가는 데 걸리는 hope 최대 개수

* router 하나 거칠 때마다 -1 => 0이 된 datagram은 drop

- upper-layer protocol: ip datagram이 어느 프로토콜의 data인지 식별하기 위해

* network layer에서 transport layer로 올려보낼 때, TCP, UDP, ICMP, OSPF 중 어디로 올려보낼 건지 결정

* 6=TCP, 17=UDP, 1=ICMP, 89=OSPF

- header checksum: 오직 header에 대해서만 checksum(data부분은 TCP나 UDP가 알아서 계산)

* 문제가 있으면 drop해버림

 

 

IPv4 fragmentation, reassembly

 

'MTU(Maximum Transmission Unit)': 각 frame이 캐리할 수 있는 data unit

ex. Ethernet은 1500byte까지 캐리 가능

 

MTU 때문에 fragment로 나눠서 전송

-> header 개수가 늘어남으로써 transmission rate는 어느 정도 느려지지만 reassemble은 하지 않음

-> 목적지 host의 IP protocol에서 reassemble

 

오류 복구는 TCP의 retransmission으로 진행됨

 

 

"Fragmentation"

 

datagram은 다음과 같은 구조를 가진다. 4000byte의 datagram을 가정하자.

 

- length: 4000byte

- ID

- fragflag: 0으로 초기화

- offset: fragment의 시작 byte가 original byte에서 몇 번째인지

 

header 길이 제외하면

length=4000-20=3800bytes

MTU=1500-20=1480bytes

=> 3800/1480=3.xx

=> 3개로 fragmentation 일어남

 

한 fragment당 header 포함 1500byte이므로 

* <length> 3개의 fragment는 각각 1500/1500/1040byte로 나뉨

 

* <fragflag> 마지막꺼만 0, 그 전에는 1

 

* <offset> 첫 번째는 "0", 두 번째는 1480/8="185", 세 번째는 (1480+1480)/8="370"

 

 

"Reassembly"

 

=> Reassemble할 때 offset을 보고 순서 결정

 

 

(예제)

 

datagram length=2400byte

MTU=700byte

ID=422

 

2380/680 => 몫 3, 나머지 340

Total datagram length ID FragFlag offset
700 422 1 0
700 422 1 680/8=85
700 422 1 85*2=170
360 422 0 85*3=255

 

'네트워크 > 컴퓨터 네트워크 수업' 카테고리의 다른 글

4-3. IP(Internet Protocol)(3)  (0) 2024.11.16
4-3. IP(Internet Protocol)(2)  (6) 2024.11.15
4-2. What's inside a router(1)  (2) 2024.11.12
4-1. Overview of Network Layer  (0) 2024.11.12
2-3. Electronic mail(SMTP & POP3)  (0) 2024.11.12