Network Layer
이번글에서는 IP protocol에 대해서 써볼까 합니다.
인터넷프로토콜(IP, Internet Protocol)
송신호스트와 수신 호스트가 패킷을 교환할 때 사용되며, 데이터 패킷을 목적지로 전달하는 역할을 수행합니다.
IP protocol은 비연결성 프로토콜로, 데이터의 신뢰성을 보장하지 않습니다.
하지만 이러한 IP 프로토콜은 Transport 계층에 TCP, UDP와 함께 사용될 수 있어, 부족한 점을 보완할 수 있습니다.
IP Datagram format
기본적으로 IP header는 패킷을 어디로 어떻게 보낼지에 대한 정보를 담고 있습니다.
ver
- IP 프로토콜의 버전 정보
- ex) IPv4, IPv6
헤더 길이
- IP datagram 헤더의 길이를 나타낸다.
- 일반적으로 20 byte가 고정, (+옵션)
서비스 유형
- 어떤 네트워크 서비스를 담고 있는지를 구분한다.
- TOS 중 2비트는 명시적 혼잡 알림(ECN)에 사용된다.
데이터그램 길이
- 바이트로 계산한 IP 데이터그램의 헤더를 포함한 전체 길이
- 16비트이다.
Identifier
- 데이터그램은 상황에 따라 목적지에 도착하기 전에 여러 개로 쪼개질 수 있는데, 다시 하나로 합칠 때 필요한 정보
- 16bit이다.
Flag, fragment offset
- Flag= 3bit, offset = 16bit
- 데이터그램의 분리와 관련 있는 정보를 담고 있음.
Time to live
- 데이터그램의 수명을 나타내는 값.
- 데이터그램이 목적지에 도착하지 못하고, 계속 순환하고 있을 때를 대비해서 네트워크를 통과할 수 있는 횟수.
- 최초에 값을 할당받은 뒤, 라우터를 통과할 때마다 1씩 감소한다.
- 만약 TTL 값이 0이 되면 해당 데이터그램을 폐기함.
- 데이터그램이 목적지에 도착하지 못하고, 계속 순환하고 있을 때를 대비해서 네트워크를 통과할 수 있는 횟수.
upper layer
- 네트워크 계층의 상위 계층이 사용하는 프로토콜에 대한 정보를 담고 있다.
- ex) TCP, UDP
header checksum
- 수신한 IP 데이터그램의 오류를 탐지하지만, 100% 신뢰할 수는 없음
source/destination IP address
- 출발지와 도착지의 IP 주소
- 32bit임.
밑에 내용은 간단하게, 제가 머릿속을 정리하고 싶어서 적는 내용이라 가볍게 ㅌㅌ 하시면 될 거 같습니다.
IPv4 vs IPv6
IPv4는 fragmentation을 지원하고, IPv6는 지원하지 않는다.
여기서 Fragmentation이란?
큰 크기의 IP 패킷을 작은 크기의 패킷으로 나누어 전송하는 과정을 말한다.
패킷을 쪼갤 때는 각 패킷을 쪼갠 뒤 헤더를 붙여줘야 합니다.
왜냐면 헤더에 identifier랑 flag, offset들이 쪼개진 데이터를 하나로 합칠 때 이 데이터그램이 원래 어느 소속이냐를 담고 있기에,
꼭 쪼갤 때 헤더 부분을 포함해야 합니다.
라우터에서 나누는 과정을 demulx라고 하고 합치는 과정을 mux라고 하는데,
경유하는 라우터마다 합치는 과정을 해야 하나?
정답은 NO. 어차피 또 나누는 작업을 하기에, 맨 마지막 도착지에서만 합쳐주는 작업을 한다!
'Computer Science > Network' 카테고리의 다른 글
[컴퓨터망]-NAT & IPv6 (3) | 2023.06.12 |
---|---|
[컴퓨터망]-IP addressing,IPv4,CIDR,DHCP,Subnet (0) | 2023.06.12 |
[컴퓨터망] - Network Layer(Routing & Forwarding & Switching Fabric && Buffer Management) (1) | 2023.04.15 |
[컴퓨터망] - TCP congestion control (1) | 2023.04.15 |
[컴퓨터망] - principles of congestion control (0) | 2023.04.14 |