티스토리 뷰

Network Layer 프로토콜

  • Routing Protocol - 경로 탐색 및 설정, Autonomous System 내 라우팅 프로토콜, AS 간 라우팅 프로토콜 제공
  • IP 프로토콜 - Addressing Convention 정의, Datagram 구조 정의, 패킷 핸들링 convention 정의
  • ICMP 프로토콜 - error 리포팅, router signaling

IP 프로토콜

  • IP는 인터넷 프로토콜 아키텍쳐의 중심 허리에 해당하는 부분으로 상위 프로토콜, 하위 프로토콜 사이에 존재한다.
  • 네트워크 계층에 존재하는 오직 하나의 프로토콜로 현대 인터넷 구조를 TCP/IP 계층이라고도 한다.

기능

  • IP 프로토콜은 Unrealiable, Connectionless, Best effort 한 특징이 있다. 이러한 특징을 보완하기 위해 TCP 프로토콜이 존재한다.

Unrealiable

  • 손실된 패킷을 복구하기 위한 시도를 하지 않는다.

Connectionless

  • 각각의 패킷들은 독립적으로 처리된다. MTU에 따라 분할되기도 하면서 전달되고 IP는 호스트 간 전송되는 패킷의 순서를 알지 못한다. 이는 도착지 호스트에서 패킷의 id & offset을 확인해서 reassemble해야한다.

Best effort

  • 최선을 다한다는 말과는 다르게 추가적으로 보장해주지는 않는다는 말이다. 지연, 처리량, 전송 등 모든 것을 보장해주지 않고 전송을 위해 주어진 환경 내에서 최선을 다할 뿐이다.

IP 프로토콜에서 패킷 전송 방법

Unicast

  • one to one 방식이다.
  • 패킷이 도착지로 하나의 IP가 정해져서 전송된다.

Broadcast

  • one to all 방식이다.
  • 전 세계 네트워크 망으로 브로드캐스팅하는 것은 아니다. sub network (= routing domain, Autonomous System, domain)에 해당하는 하나의 네트워크 망에 대해서만 브로드캐스팅 하는것이다.
  • 255.255.255.255로 현재 속한 network망에서 브로드캐스팅할 수 도 있고, 10.0.0./8 서브넷에서 10.255.255.255로 특정 서브넷에 대해서만 브로드캐스팅 할 수도 있다.

Multicast

  • one to serveral 방식이다.
  • 네이버 라이브 스트리밍, 유튜브 라이브 등 복수의 참여자들이 공통의 서비스를 이용할 때 사용한다. 참여하면 멀티캐스트 대상으로 등록되어 스트리밍 서비스를 받게 된다.

IP 패킷 구조

  1. Version (4)
    • IPv4 인지 IPv6인지 구분한다.
  2. Header Len(4)
    • IP header 만의 길이를 말한다.
  3. DS/ECN (8) - (구: type of service)
    • Type Of Service는 이전에 불리던 이름으로 기능이 바꼈다.
    • DS (4): Differentiated Service
      서비스 수준을 구체적으로 나타내기 위해 사용된다. 차별화된 서비스를 제공하기 위해서 사용
    • ECN (2): Explicit Congestion Notification
      네트워크의 Congestion을 체크하기 위해 사용한다. 이것으로 패킷의 Sending rate를 조절한다. 
  4. Time To Live (8)
    • 패킷이 이동할 수 있는 hop의 개수를 말하는 것으로 수명과 동일하다.
    • 패킷이 라우팅 과정을 통해 네트워크를 돌아다니면서 한 중계기에서 다른 중계기로 이동할 때마다 1씩 줄어들고 0이되면 소멸된다.
  5. Upper Layer (Protocol) (8)
    • 상위 계층의 프로토콜을 명시해주는 역활을 한다.
    • Encapsulation 때 명시해주면 도착지 호스트에서 Decapsulation을 해서 해당 값을 통해 상위 계층의 어떤 프로토콜로 보내줘야 할지 알 수 있다. 
      IP 계층에서는 ICMP, IGMP, TCP, UDP 등을 표시해줘서 이 패킷이 어떤 프로토콜로 사용될지 알려주게 된다.
  6. Header Checksum (16)
    • Header에 대한 체크썸만 제공한다. body의 data에 대해서는 관심이 없다.
  7. Options (사용되는 만큼)
    • 패킷이 전달되면서 경유한 라우터의 IP 주소를 담을수 있는 기능
    • 경유한 라우터의 IP 주소를 담고 해당 시간도 담는 기능
    • 특정 경유지를 지정해서 해당 경유지를 필수로 경유해서 가도록 하는 기능
    • 특정 경로를 지정해서 해당 경로로 패킷을 보내는 기능
  8. padding (32 - (header길이 % 32)):  32비트 단위로 헤더를 맞추기위한 패딩
  9. 16bit identification + flag + offset은 아래에서 설명, 패킷의 조각화에서 사용된다.

MTU - Maximum Transmission Unit

IP 패킷의 Length 비트는 16비트이므로 논리적으로 최대 길이는 2^16인 65536이다. 하지만 Data Link Layer 프로토콜에서의 제한이 더 작아서 일반적으로는 훨씬 작은 값을 갖게된다.

 

예를들어서 이더넷 프레임은 1500byte의 payload를 최대값으로 가지게 되어서 일반적으로 1460byte로 제한을 갖게된다. 따라서 IP 패킷 또한 2계층에서 이너넷 프레임으로 Encapsulation 시 1500byte를 넘지 못한다.

 

따라서 Data Link 프로토콜에서의 MTU는 곧 IP 패킷의 최대 크기가 된다.

 

IP 패킷 fragmentation, reassembly

네트워크는 많은 타입의 링크를 갖고 있으므로 MTU 또한 제각각이다. 따라서 패킷은 네트워크를 이동하면서 여러 조각으로 fragmentation이 이뤄질수 밖에 없다.

이때 하나의 패킷에서 같이 쪼개진 패킷들은 동일한 ID를 갖게 되고 이 공간이 16-bit-identification에 해당한다. 또한 조각화된 패킷들은 각자마다 다른 위치에 해당하므로 이들의 순서를 구분해줄 offset이 fragment offset으로 13 bit를 차지한다. 이 offset을 이용해서 도착 host에서 동일한 id를 갖는 fragments들을 reassemble할 수 있다.

flag 3bit로 미사용 1bit, DF 비트, MF 비트가 존재한다.

DF : Don't fragment의 약자로 쪼개지 말고 MTU가 작아서 쪼갤거면 아예 폐기하라는 의미이다.

MF: More Fragments의 약자로 현재 패킷은 fragment 된 조각들 중 하나이며 이외의 조각들이 더 있음을 의미한다.

사용하지 않는 1bit는 0으로 채워져 있다.

반응형
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday