cs/데이터통신

IP Datagram format

Nytro 2024. 11. 30. 21:51

Network layer

네트워크 레이어에는 IP protocol(datagram format, addressing), Path-selection algorithms(포워딩 테이블 생성 프로토콜)

그리고 ICMP protocol이 있다.

 

이 중 IP가 제일 중요하다. IP가 없으면 인터넷은 동작을 하지 않기 때문이다.

datagram format을 보자.

IP Datagram format

IP datagram format

ver: IP protocol 버전을 나타낸다.

head len: 옵션에 따라 헤더가 20byte~60byte의 크기를 가지고, 1 당 4byte를 나타내므로 5~15의 숫자가 들어갈 수 있다.

length: 데이터그램의 전체 길이를 나타낸다. TCP에는 length field가 없어 이 필드를 이용하여 길이를 간접적으로 추정 가능하다.

 

identifier: 패킷이 쪼개졌을 때 같은 값을 갖으면 원래는 하나의 패킷이였음을 알 수 있다.

flgs: 현재 받은 패킷이 첫번째인지, 다음 패킷이 있는지 등의 여부를 나타낸다.

fragment offset: 패킷을 하나로 재조립할 때 순서를 나타낸다.

 

time to live(TTL): 거칠 수 있는 최대 hop 수를 나타내며 하나의 hop을 거칠 때마다 -1 된다.

upper layer: TCP인지 UDP인지 알려준다.

header checksum: checksum field

source IP address: 32bit source IP address

dest IP address: 32bit destination IP address

 

헤더는 최소 20바이트, 최대 길이 64k bytes 까지 가능하다. 보통 1500바이트 미만이다.

IP addressing

8bit 씩 10진수 네 자리의 조합으로 총 32bit로 구성되어 있다.

IP 주소는 네트워크 인터페이스에 부여되는데 라우터는 여러 개의 인터페이스를 갖고 있고 host는 보통 1~2개를 갖고 있다.

Subnets

서브넷이란 최소 단위의 네트워크로 라우터 없이 통신 가능한 인터페이스들의 집합을 뜻한다.

IP 주소는 subnet part와 host part로 구분되는데 같은 subnet에 속하는 인터페이스들은 공통된 상위 비트 주소를 갖는다.

subnet part는 위와 같이 상위 몇비트 까지 공통된 주소를 갖는지 표시해야 한다. 이를 subnet mask 라고 한다.

여기서 라우터-라우터 또한 subnet의 일종이라고 볼 수 있다. 예를 들어 위의 223.1.9와 223.1.7 또한 subnet이다. 즉 위에는 총 6개의 subnet이 존재한다.

CIDR(Classless InterDomain Routing)

CIDR(통칭: 사이더)는 subnet part와 host part를 8비트 제한에서 벗어나 자유롭게 쓸 수 있게 한다.

prefix: subnet mask의 10진수

network mask(subnet mask): prefix의 2진수 비트

network broadcast address: host 부분의 비트를 모두 1로 바꿈 (ex: 192.18.3.0/24 > 192.18.3.255)

network block address는 호스트 부분을 모두 0으로!

 

IP주소를 얻는 방법

IP 동적 할당(DHCP): IP를 필요할 때만 부여하는 것. 고정 할당된 양보다 더 많은 리턴이 가능

게이트웨이(first-hop address)나 dns 서버의 이름과 ip주소, network mask의 정보 등 생각보다 더 많은 정보를 준다.

DHCP 동작방식

1. client는 broadcast 방식으로 DHCP discover msg를 보낸다.

2. server는 사용 가능한 IP 주소를 DHCP offer msg로 응답한다.

3. host가 사용하기를 정하면 DHCP request msg를 보낸다.

4. server는 해당 IP 주소에 대해 DHCP ACK으로 응답한다.

이를 IP 주소로 보면 다음과 같다.

DHCP 작동 방식

보면 처음에 client는 broadcast 방식으로 discover msg를 255.255.255.255로 송신한다.(68, 67은 포트 번호)

서버 또한 broadcast 방식으로 offer msg를 송신한다. 이 때 사용 가능한 IP 주소도 yiaddr에 담아 함께 보낸다.

lifetime 내에 client가 DHCP request를 보내고, 서버로부터 DHCP ACK을 받으면 IP 주소가 할당된다.

이 ACK에는 client IP address, IP address of first hop router for client, name&IP address of DNS server가 포함된다.

DHCP example

ISP에서 IP address의 분배 방법

위와 같이 ISP에서 20bit 블록을 갖고 있다면, 나머지 12bit로 할당이 가능한데

8block으로 쪼갤 필요가 있다면 prefix를 20에서 23으로 늘려 000 001 ... 111까지 늘리고 2의 9승만큼 분배가 가능하다.

subnetting example
address allocation example

Hierarchical addressing: route aggregation

효율적인 관리를 위해 네트워크 주소를 구조화된 계층으로 설계하는 것. 그리고 루트 aggregation을 통해 경로들을 집계하여

라우팅 테이블 크기 감소, 트래픽 처리 속도 향상, 광고 효율 증가 등에 용이

ex) 192.168.0.0/24, 192.168.1.0/24  192.168.0.0/23로 통합.

ICANN

IP 주소 부여. 개별 TLD를 위임하는 것과 DNS root zone을 관리한다.

'cs > 데이터통신' 카테고리의 다른 글

IPv6  (0) 2024.11.30
NAT  (0) 2024.11.30
Network layer (1)  (0) 2024.11.30
Congestion control  (0) 2024.11.30
TCP State transition diagram  (0) 2024.11.30