IP란 무엇일까?
IP (Internet Protocol)
--
인터넷 프로토콜(IP)은
인터넷과 같은 네트워크에서 장치들이 데이터를 주고받기 위해 사용하는 통신 규약으로,
인터넷에서 각 장치를 식별하는 고유한 번호(주소)다.
컴퓨터, 스마트폰, 서버, 라우더 등 네트워크에 연결된 모든 장치가 IP 주소를 사용하여 서로 통신한다.
- 고유 IP 주소를 가지는 장치 : 네트워크를 연결하여 데이터를 직접 주고받는 장치
- 고유 IP 주소를 가지지 않는 장치 : 받은 데이터를 전달하는 장치로, MAC 주소 기반으로 동작
(IP 계층이 필요 없는 장치)
네트워크 계층의 가장 핵심적인 프로토콜로 2가지 버전이 있다.
- IPv4
- IPv6
IPv4의 주소가 고갈되는 중이라서 이를 해결하고자 더 큰 범위의 IP 주소인 IPv6가 탄생하게 되었다.
하지만 아직 IPv4가 익숙하기 때문에 보통 IP를 이야기하는 것은 IPv4를 기준으로 이야기한다.
IPv4 주소 형태
4byte로 주소를 표현할 수 있으며, 각 숫자당 8bit(0~255)로 표현되어
총 4개의 10진수와 구분점(.)으로 표기한다.
IP 기능
다양한 기능들이 있지만 대표적으로 2가지 있다.
- IP 주소 지정 (IP addressing) : IP 주소를 바탕으로 송수신 대상을 지정
- IP 단편화 (IP fragmentation) : 전송할 패킷의 크기가 MTU보다 큰 경우, MTU 크기 이하의 패킷으로 나눔
(만약 MTU 크기 이하로 나누어진 패킷들은 수신지에서 다시 재조합한다.)
MTU (Maximum Transmission Unit)는
한 번에 전송 가능한 IP 패킷의 최대 크기를 의미한다.
일반적으로 MTU의 크기는 1500byte다.
IPv4
--
IPv4 패킷은 프레임의 페이로드인 데이터 필드에 명시된다.
식별자 (Identifier)
패킷에 할당된 번호로,
만약 전송 과정에서 IPv4 패킷이 여러 조각으로 쪼개져서 전송되었을 때
해당 순서를 파악하기 위해서 사용된다.
플래그 (Flag)
3bit로 구성된 필드다.
첫 번째 비트 : 항상 0으로 예약된 비트로 현재로서 사용하지 않는다.
DF (Don't Fragment) : IP 단편화를 수행하지 않는 여부 ( 1 = IP 단편화 수행 X / 0 = IP 단편화 수행 O )
MF (More Fragment) : 단편화된 패킷이 더 있는지 여부 ( 1 = 아직 쪼개진 패킷이 존재 / 0 = 해당 패킷이 마지막 패킷 )
단편화 오프셋 (Fragment Offset)
패킷이 단편화(쪼개지기)되기 전에 패킷의 초기 데이터를 기준으로 몇 번째 바이트부터 시작하는지를 나타내는 값으로,
단편화되어 전송될 때 수신지에 해당 패킷들이 순서대로 도착하지 않을 확률이 높기 때문에
단편화 오프셋을 통해 단편화된 조각들을 올바른 순서로 재조립할 수 있다.
TTL (Time To Live)
해당 패킷의 수명을 의미한다.
먼 호스트끼리 통신할 때 패킷은 여러 라우터를 거쳐 이동하게 되는데
패킷이 하나의 라우터를 거칠 때마다 TTL은 1씩 감소되며, 0이 되면 해당 패킷은 폐기된다.
이를 통해 네트워크에서 해당 패킷이 무한히 떠돌아다니는 것을 방지할 수 있다.
패킷이 호스트 or 라우터에 한 번 전달되는 것을 "홉(Hop)"이라고 부른다.
즉, TTL은 흡마다 -1 된다.
프로토콜 (Protocol)
IP 패킷의 프로토콜은
해당 IP 패킷의 상위 계층 프로토콜이 무엇인지를 나타내는 필드다.
IP 프로토콜이 데이터를 전송할 때, 해당 데이터가 어떤 프로토콜을 통해 전달되었는지 식별하는 역할을 한다.
이를 통해 해당 IP 패킷이 목적지에 도착하면,
수신지는 프로토콜 필드의 값을 통해 해당 데이터가 TCP, UDP, ICMP 등 어떤 프로토콜로 다뤄졌는지 확인하고
해당 상위 계층 프로토콜로 전달할지 식별한다.
IP 패킷의 상위 계층 프로토콜이란?
해당 IP보다 위에서(상위) 동작하는 모든 프로토콜을 의미하는데
간단하게 설명하자면
해당 패킷이 어떤 프로토콜을 사용해서 전송되는 것인지를 나타내는 값이다.
IP 패킷의 프로토콜 필드값 예시
- 6 - TCP
- 17 - UDP
- 1 - ICMP
- 2 - IGMP
- 50 - ESP (IPsec)
송신지 IP 주소 / 수신지 IP 주소 (Source/Destination IP Address)
이름 그대로 해당 패킷의 송신지 IPv4 주소와 수신지 IPv4 주소가 명시되어 있다.
--
IPv6
--
IPv6는
IPv4 주소의 고갈 문제를 해결하기 위해 만든 IP 주소며,
16byte로 주소를 표현할 수 있고, 콜론(:)으로 8개의 16진수로 표기된다.
다음 헤더 (Nest Header)
상위 계층의 프로토콜 or 확장 헤더를 가리키는 필드다.
확장 헤더(Extension Header)는
IPv6에서 추가적인 헤더 정보가 필요한 경우에 기본 헤더와 더불어 추가하는 헤더를 말한다.
IPv4와 IPv6의 기본헤더를 비교해 보면 IPv6의 헤더는 간소화되어 있다.
그래서 필요한 헤더가 생기게 되면 기본 헤더와 페이로드 사이에 확장 헤더를 추가할 수 있다.
홉 제한 (Hop Limit)
IPv4 패킷의 TTL 필드와 비슷하게 해당 패킷의 수명을 나타내는 필드다.
--
'CS > 네트워크' 카테고리의 다른 글
[네트워크 계층] IP 주소 (0) | 2024.11.18 |
---|---|
[네트워크 계층] ARP (Address Resolution Protocol) (0) | 2024.11.17 |
[OSI 물리 계층, 데이터 링크 계층] 스위치 (0) | 2024.11.12 |
[OSI 물리 계층, 데이터 링크 계층] 허브 (+ 반이중/전이중, CSMA/CD) (1) | 2024.11.11 |
[물리 계층, 데이터 링크 계층] 이더넷 (+ IP주소와 MAC주소의 차이) (0) | 2024.11.10 |