네트워크 계층 버전 4 에는 하나의 메인 프로토콜 IP와 3개의 서브 프로토콜 IGMP, ICMP, ARP로 이루어져 있다
IP
IP에서 이용하는 패킷을 datagrams라고 부른다
datagram는 헤더와 페이로드(데이터)를 가진다 헤더는 20~60바이트이고 datagram은 20~65,535바이트이다
헤더 fields
version(4 bits), head length(4 bits), service type(8 bits), total length(16 bits)
identification(16 bits), flags(3 bits), fragmentation offset(13 bits)
time-to-live(8 bits), protocol(8 bits), header checksum(16 bits)
source IP address(32 bits)
destination IP address(32 bits) 총 최소 20바이트에
options+padding(0~40 bytes)가 있다
여기서 portocol은 가장 최근에 사용된 프로토콜을 적어놓는다
ttl은 라우터를 하나 지날 때마다 1씩 감소하고 0이 되면 잘못된 패킷이라 판단하고 버린다
flags와 offset은 fragmentation 하는데 쓰인다
fragmentation
datagram이 MTU보다 클 때 datagram을 나누는 것을 말한다 (MTU란 네트워크에서 보낼수 있는 데이터의 최대 크기)
나눈 후에 다시 조립하기 위해 순서를 알아야 하는데 이때 위의 flags와 offset이 사용된다
flags는 *DM으로 3비트이고 D비트가 1이면 fragment 하지 않고 M비트가 1이면 뒤에 fragment 한 비트가 더 있다는 것이다
offset은 데이터그램을 나눴을 때 맨 앞 바이트 값을 8로 나눈 값이다
ex) 4000 bytes 짜리를 3개로 나눴을 때 1400, 1400, 1200으로 나뉘면 처음껀 0000~1399 이므로 offset = 0 두 번째 건 1400~2799 이므로 offset = 1400/8 = 175 마지막은 2800~3999이므로 offset = 2800/8 = 350
그러므로 offset이 작은 거부터 큰 순서대로 M비트가 0인 패킷이 나올 때까지 조합한다
ICMPv4
IPv4에는 오류에 관한 메커니즘이 없기 때문에 ICMP를 사용하여 오류메시지와 쿼리메시지를 전달한다
오류 메시지는 단방향이고 쿼리 메세지는 양방향이다
오류메시지는 라우터나 목직지 호스트에서 전달하고 쿼리 메세지는 양방향으로 전달한다
error-reporting messages fields
type(8 bits), code(8 bits), checksum(16 bits)
rest of the header(32 bits)
query messages fields
type(8 bits), code(8 bits), checksum(16 bits)
identifier(16 bits), sequence number(16 bits)
에러 메세지 마다 type과 code가 정해져있다 쿼리도 마찬가지
'전공 > 컴퓨터네트워크' 카테고리의 다른 글
Network Layer -2 (0) | 2024.04.02 |
---|---|
WLAN (0) | 2024.03.26 |
Network Layer (0) | 2024.03.25 |