ABOUT IP(Internet Protocol)

SUUUI·2025년 5월 11일

네트워크

목록 보기
8/8

저번 포스팅에 이어 이번엔 네트워크 계층의 핵심 프로토콜인 IP(Internet Protocol)에 대해 알아보자.

IP(Internet Protocol)란?

  • IP는 인터넷에서 데이터를 주고받기 위한 가장 기본적인 프로토콜이다.
  • 네트워크 계층(OSI 3계층)에서 동작하며, 패킷의 주소 지정과 라우팅을 담당한다.
  • 비연결성(Connectionless) 프로토콜로, 패킷을 보내기 전에 연결을 설정하지 않는다.
  • 최선형 전달(Best-effort delivery) 방식으로, 패킷 전달을 100% 보장하지 않는 비신뢰성 기반 프로토콜 이다.

네트워크 계층의 데이터 단위는 '패킷' 또는 '데이터그램' 이라고 불리며, 복잡한 네트워크 경로에서 패킷이 유실되거나 순서가 뒤바뀔 수 있다.

‼️IP 데이터그램(IP Datagram)이란?
IP 데이터그램은 IP 프로토콜이 전송하는 기본 데이터 단위다. 목적지와 출발지 IP 주소 등 라우팅에 필요한 정보가 포함된 헤더와 실제 데이터로 구성된다. 각 데이터그램은 다른 데이터그램과 독립적으로 전송되며, 동일한 출발지와 목적지 간의 데이터그램이라도 서로 다른 경로로 전송될 수 있다. IP의 'Datagram'이라는 용어는 바로 이런 독립적인 패킷 단위를 의미한다.
현재 널리 사용되는 IP 버전은 IPv4와 IPv6이 있으며, IPv4 주소 고갈 문제를 해결하기 위해 IPv6로의 전환이 진행 중이다.

IP 헤더 분석 (IPv4 기준)

  • IPv4 헤더는 기본적으로 20바이트(옵션 필드 제외)로 구성되어 있으며, 다음과 같은 필드를 포함한다.
필드크기설명
버전(Version)4비트IP 프로토콜의 버전 정보 (IPv4는 4)
헤더 길이(IHL)4비트IP 헤더의 길이 (32비트 워드 단위)
서비스 유형(TOS/DSCP)8비트패킷의 우선순위나 QoS 정보
전체 길이(Total Length)16비트헤더와 데이터를 포함한 패킷 전체 길이
식별자(Identification)16비트단편화된 패킷들을 그룹화하는 ID
플래그(Flags)3비트단편화 관련 제어 플래그
단편 오프셋(Fragment Offset)13비트단편화된 패킷의 원래 위치
생존 시간(TTL)8비트패킷이 네트워크에서 살아있을 수 있는 최대 홉 수
프로토콜(Protocol)8비트상위 계층 프로토콜 식별자(TCP=6, UDP=17)
헤더 체크섬(Header Checksum)16비트헤더의 무결성 검사, 목적지에서 체크섬이 일치하지 않으면 패킷이 손상된 것으로 간주하고 폐기
출발지 IP 주소(Source Address)32비트송신자의 IP 주소
목적지 IP 주소(Destination Address)32비트수신자의 IP 주소
옵션(Options)가변길이선택적 필드 (라우팅, 타임스탬프 등)
  • IP 헤더는 TCP나 UDP 헤더보다 복잡한 구조를 가지고 있으며, 네트워크에서 패킷을 올바르게 라우팅하기 위한 필수 정보를 포함한다.

‼️Hop Limit(IPv6)/TTL(IPv4):
IPv4에서는 TTL(Time To Live)이라고 부르며,
IPv6에서는 Hop Limit이라는 이름으로 동일한 기능을 수행한다.
패킷이 네트워크에서 무한히 순환하는 것을 방지하는 카운터다.
각 라우터를 통과할 때마다 1씩 감소하며, 0이 되면 패킷은 폐기되고 ICMP 오류 메시지가 발신자에게 전송된다.
일반적으로 운영체제에 따라 64, 128, 255 등의 초기값을 사용한다.
traceroute 명령어는 이 필드를 이용해 패킷이 통과하는 라우터의 경로를 추적한다.

‼️오버헤드(overhead)란?

  • 네트워크 계층에서 데이터가 분할(단편화, fragmentation)될 때, 각 단편마다 헤더가 추가되는 것이다.
  • IP자체도 단편화를 하기 떄문에 오버헤드를 포함하는 프로토콜이다(IP 헤더는 일반적으로 20바이트(IPv4) 또는 40바이트(IPv6)로, 이는 순수 데이터가 아닌 제어 정보이므로 오버헤드로 간주)

‼️오버헤드(overhead)로 인해 발생할 수 있는 문제들
1. 대역폭 효율성 감소: 실제 데이터 대비 헤더 비율이 높아져 네트워크 대역폭의 낭비를 가져올 수 있다.
2. 처리 시간 증가/ 자원소모: 라우터와 엔드포인트가 더 많은 패킷과 헤더를 처리해야 하므로 지연이 발생하며, 단편화와 재조립 과정은 라우터와 호스트의 메모리 및 처리 자원을 더 많이 소모하게 된다.
3. 재조립 복잡성: 수신 측에서 단편화된 패킷들을 원래 메시지로 재조립하는 과정이 필요해 복잡성이 증가된다.
4. 패킷 손실 위험 증가: 단편화된 여러 패킷 중 하나라도 손실되면 전체 데이터를 재전송해야 할 수 있음.

IP의 주요 기능

  1. 주소 지정(Addressing): 각 장치에 고유한 IP 주소를 할당하여 네트워크에서 식별 가능하게 한다.
  2. 라우팅(Routing): 출발지에서 목적지까지 패킷이 전달되는 경로를 결정한다.
  3. 단편화와 재조립(Fragmentation & Reassembly): 큰 패킷을 네트워크 MTU에 맞게 작은 단편으로 나누고, 목적지에서 재조립한다.
  4. 패킷 수명 관리(TTL/Hop Limit): 패킷이 네트워크에서 무한히 순환하는 것을 방지한다.

IP의 에러제어

  1. 헤더 체크섬(Header Checksum)
  • IPv4는 헤더에 대한 체크섬을 포함하여 헤더의 무결성을 검증한다
  • 목적지에서 체크섬이 일치하지 않으면 패킷이 손상된 것으로 간주하고 폐기함
  • IPv6는 헤더 체크섬이 제거되었으며 하위계층인 데이터 링크 계층에서 에러검출을 의존한다
  1. ICMP(Internet Control Message Protocol)
  • IP의 동반 프로토콜인 ICMP는 에러 보고 메커니즘을 제공한다
  • ping 명령어로 네트워크를 진단할때 쓰이게 되는 프로토콜이며, 네트워크 연결성과 도달 가능성을 테스트 하게 된다. (디도스 공격과 같은원리)
  • 보낸 패킷과 받은 패킷의 수를 비교하여 패킷 손실률을 계산하고 패킷의 왕복 시간을 측정해주어 에러를 제어해준다

  1. ICMP Echo Request 전송: ping은 목적지 호스트에 ICMP Echo Request(Type 8) 패킷을 전송한다.
  2. ICMP Echo Reply 수신: 목적지 호스트가 도달 가능하고 정상 작동 중이라면, ICMP Echo Reply(Type 0) 패킷으로 응답한다.
  3. 왕복 시간 측정: ping은 요청 전송부터 응답 수신까지의 시간(RTT, Round Trip Time)을 측정하여 표시된다

‼️IP 기반의 주요 프로토콜
ICMP(Internet Control Message Protocol): 네트워크 진단 및 오류 보고용
IGMP(Internet Group Management Protocol): 멀티캐스트 그룹 관리
ARP(Address Resolution Protocol): IP 주소를 MAC 주소로 변환
DHCP(Dynamic Host Configuration Protocol): 동적 IP 주소 할당

profile
간단한 개발 기록

0개의 댓글