맨위로가기

IPv4

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

IPv4는 인터넷 프로토콜 스위트(TCP/IP)의 핵심 프로토콜로, 32비트 주소 체계를 사용하여 약 43억 개의 고유한 IP 주소를 제공한다. 1980년대에 IPv4 주소 고갈 문제가 제기되면서, 클래스 없는 도메인 간 라우팅(CIDR)과 네트워크 주소 변환(NAT) 등의 기술이 도입되었다. IANA가 관리하는 IPv4 주소는 2011년에 고갈되었으며, IPv6로의 전환이 진행 중이다. IPv4 패킷은 헤더와 데이터로 구성되며, 라우팅, 단편화 및 재조합 과정을 거쳐 목적지로 전송된다.

더 읽어볼만한 페이지

  • 인터넷 계층 프로토콜 - IPv6
    IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다.
  • 인터넷 계층 프로토콜 - 인터넷 그룹 관리 프로토콜
    IGMP(인터넷 그룹 관리 프로토콜)는 호스트와 멀티캐스트 라우터 간 그룹 멤버십 관리를 위한 통신 프로토콜로, 호스트의 멀티캐스트 그룹 가입/탈퇴 정보를 라우터에 전달하며 여러 버전으로 발전해 멀티캐스트 환경을 효율적으로 관리한다.
  • 네트워크 계층 프로토콜 - IPv6
    IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다.
  • 네트워크 계층 프로토콜 - X.25
    X.25는 CCITT가 1970년대 중반에 개발한 패킷 교환 데이터 통신 표준으로, 가상 회선 서비스 기반의 3계층 구조를 가지며 공중 데이터망의 기반이 되었으나 1990년대 초부터 프레임 릴레이와 TCP/IP로 대체되기 시작하여 현재는 일부 시스템 및 아마추어 무선 분야에서 사용된다.
  • 인터넷 표준 - DNSSEC
    DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
  • 인터넷 표준 - IPv6
    IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다.
IPv4
일반 정보
IANA 로고
IANA 로고
약칭IPv4
개발자DARPA
발표일1981년
영향IPv6
OSI 모델네트워크 계층
RFCRFC 791
상세 정보
주소 길이32비트
주소 공간4,294,967,296 (2^32)
헤더 크기20-60 바이트
프로토콜 유형연결 없는 방식
주소 체계
클래스 기반 주소 체계A, B, C, D, E 클래스
사설 네트워크 주소10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
링크-로컬 주소169.254.0.0/16
루프백 주소127.0.0.0/8
멀티캐스트 주소224.0.0.0/4
예약 주소240.0.0.0/4
기술 정보
프로토콜 번호4
상위 프로토콜TCP
UDP
ICMP
GRE
하위 프로토콜이더넷
대체IPv6
역사
개발 배경인터넷 프로토콜 스위트의 초기 버전으로 개발
문제점주소 부족 문제
해결책IPv6로 대체, 사설망, NAT 등 사용
기타
참고 자료BGP 분석 보고서
IPv6 통계 - Google
IANA IPv4 특수 목적 주소 레지스트리
관련 RFCRFC 6890

2. 역사

IPv4는 IETF 간행물 RFC 791 (1981년 9월)에 설명되어 있으며, 1980년 1월의 이전 정의(RFC 760)를 대체한다.[4] 1982년 3월, 미국 국방부는 모든 군사 컴퓨터 네트워크를 위한 표준으로 인터넷 프로토콜 스위트(TCP/IP)를 결정했다.[5]

IPv4는 비연결형 프로토콜이며 최선형 전달 모델로 작동한다. 전달을 보장하지 않으며, 적절한 시퀀싱이나 중복 전달의 회피를 보장하지 않는다. 데이터 무결성을 포함한 이러한 측면은 전송 제어 프로토콜(TCP)과 같은 상위 계층 프로토콜 전송 프로토콜에 의해 처리된다.

2. 1. 대한민국

2013년 8월 19일 기준으로 대한민국은 전체 IPv4 주소 4,294,967,296개 중 약 2.61%인 112,268,800개를 할당받았으며, 이 중 약 99.97%인 112,235,264개를 사용하고 있다. 이는 전 세계에서 미국, 중국, 일본, 영국, 독일 다음으로 6번째로 많은 것이며, 아시아권에서는 중국, 일본에 이어 3번째이다.[1]

3. 주소 체계

IPv4는 32비트 주소 체계를 사용하며, 이는 약 43억 개(43억달러)의 고유한 주소를 생성할 수 있게 한다. 이 주소는 8비트씩 4개의 옥텟(Octet)으로 나누어 표기하며, 각 옥텟은 0부터 255 사이의 값을 갖는다. 예를 들어, `192.168.0.1`과 같이 표현한다.[6]

IPv4 주소 표현을 이진수 값으로 분해


IPv4 주소는 32비트 정수 값을 표현하는 다양한 방식으로 나타낼 수 있다. 가장 일반적인 표기법은 점-십진 표기법으로, 4개의 옥텟을 각각 십진수로 표현하고 마침표로 구분한다. 예를 들어, `172.16.254.1`은 십진수로 2886794753, 16진법으로는 0xAC10FE01로 표현할 수 있다.

CIDR 표기법은 IP 주소와 라우팅 접두사(서브넷 마스크)를 함께 표기하여 간결하게 나타낸다. 주소 뒤에 슬래시(/)와 라우팅 접두사의 연속된 '1' 비트 수를 표시한다.

IP 주소는 네트워크 주소와 호스트 주소로 구성된다.[6] 과거에는 클래스 기반 네트워킹 방식을 사용하여 네트워크 주소와 호스트 주소를 구분했지만, 현재는 클래스 없는 도메인 간 라우팅(CIDR) 방식을 주로 사용한다.

3. 1. 주소 클래스

IPv4 초기에는 A, B, C, D, E의 다섯 가지 클래스로 구분되었다. A, B, C 클래스는 네트워크 크기에 따라 구분되며, D 클래스는 멀티캐스트, E 클래스는 미래 사용을 위해 예약되었다.

클래스구성범위
A 클래스xxx.xxx.xxx.xxx1.0.0.1 ~ 126.255.255.25461.211.123.22
B 클래스xxx.xxx.xxx.xxx128.0.0.1 ~ 191.255.255.254181.123.211.33
C 클래스xxx.xxx.xxx.xxx192.0.0.1 ~ 223.255.255.254221.23.222.222
D 클래스224.0.0.0 ~ 239.255.255.255
E 클래스240.0.0.0 ~ 254.255.255.254


  • A 클래스는 가장 큰 네트워크를 위한 클래스로, 1~126 범위(0과 127은 예약됨)의 IP 주소를 가진다. A 클래스는 네트워크 주소를 제외한 나머지 주소(두 번째, 세 번째, 네 번째 옥텟)를 자유롭게 호스트에 부여할 수 있다.
  • B 클래스는 중간 크기의 네트워크를 위한 클래스로, 첫 번째 옥텟이 128~191 범위이다. B 클래스는 두 번째 옥텟을 통해 접속할 네트워크를 지정한다.
  • C 클래스는 가장 작은 네트워크를 위한 클래스로, 첫 번째 옥텟이 192~223 범위이다. C 클래스는 두 번째와 세 번째 옥텟을 통해 접속할 네트워크를 지정하며, 마지막 옥텟의 254개 주소(2개는 예약됨)를 호스트에 부여할 수 있다.


IP 주소는 '''네트워크 주소'''와 '''호스트 주소'''로 나뉜다. 791에서는 IP 주소의 선두 비트 열로 클래스를 분류하고, 네트워크 주소와 호스트 주소의 경계를 정했다.

클래스012345678910111213141516171819202122232425262728293031
A 클래스0네트워크호스트
B 클래스10네트워크호스트
C 클래스110네트워크호스트
(해당 없음)111확장 주소 모드



그러나 이 방식은 A 클래스에서 16,777,215개, B 클래스에서 65,535개의 호스트 주소를 할당할 수 있어 주소 낭비를 초래했다. 이를 해결하기 위해 950에서 '''서브넷''' 개념이 도입되었다. 서브넷은 호스트 주소의 일부를 '''주소 마스크'''를 사용하여 분할하여, 특정 네트워크 주소를 부여받은 조직 내에서 네트워크를 추가로 분할하는 데 사용된다.

style="width:20%;" |012345678910111213141516171819202122232425262728293031
(B 클래스 예시)10네트워크서브넷호스트
주소 마스크11111111111111111111111100000000


3. 2. 서브넷 마스크

서브넷은 IP 주소를 네트워크 주소와 호스트 주소로 나누는 방식이다. 이를 통해 하나의 네트워크를 여러 개의 작은 네트워크로 분할할 수 있다. 서브넷 마스크는 네트워크 주소와 호스트 주소를 구분하는 데 사용된다.[6]

CIDR 표기법에서는 IP 주소 뒤에 슬래시(/)와 함께 네트워크 주소를 나타내는 비트 수를 표시한다. 예를 들어, `192.168.0.0/24`는 처음 24비트가 네트워크 주소임을 의미한다.

서브넷의 첫 번째 주소는 서브넷 자체를 식별하며, 모든 호스트 비트는 0이다. 마지막 주소는 브로드캐스트 주소로, 모든 호스트 비트가 1이며, 서브넷 내 모든 장치에 동시에 메시지를 보내는 데 사용된다. 예를 들어, `192.168.5.0/24` 네트워크에서 식별자는 `192.168.5.0`, 브로드캐스트 주소는 `192.168.5.255`이다.

유형이진 형식점-십진 표기
네트워크 공간`11000000.10101000.00000101.00000000`192.168.5.0
브로드캐스트 주소`11000000.10101000.00000101.11111111`192.168.5.255
빨간색은 IP 주소의 호스트 부분을 보여주며, 다른 부분은 네트워크 접두사이다. 호스트는 반전(논리 NOT)되지만, 네트워크 접두사는 그대로 유지된다.



`/24`보다 작은 네트워크에서는 브로드캐스트 주소가 255로 끝나지 않을 수 있다. 예를 들어, `203.0.113.16/28` 서브넷의 브로드캐스트 주소는 `203.0.113.31`이다.

유형이진 형식점-십진 표기
네트워크 공간`11001011.00000000.01110001.00010000`203.0.113.16
브로드캐스트 주소`11001011.00000000.01110001.00011111`203.0.113.31
빨간색은 IP 주소의 호스트 부분을 보여주며, 다른 부분은 네트워크 접두사이다. 호스트는 반전(논리 NOT)되지만, 네트워크 접두사는 그대로 유지된다.



`/31` 네트워크는 점대점 연결에 사용되며, 두 개의 호스트만 가질 수 있고, 네트워크 식별자와 브로드캐스트 주소가 없다.

과거에는 네트워크 주소와 브로드캐스트 주소 간 충돌이 발생하기도 했다.

IP 주소는 네트워크 주소와 호스트 주소로 나뉘며, 초기에는 클래스 기반으로 분류되었다.

클래스012345678910111213141516171819202122232425262728293031
A0네트워크호스트
B10네트워크호스트
C110네트워크호스트
111확장 주소 모드



하지만 클래스 기반 방식은 주소 낭비를 초래하여, 서브넷 개념이 도입되었다. 서브넷은 호스트 주소의 일부를 주소 마스크를 사용하여 분할하여 네트워크를 더 세분화한다.

style="width:20%;" |012345678910111213141516171819202122232425262728293031
10네트워크서브넷호스트
주소 마스크11111111111111111111111100000000


3. 3. 특수 주소

IPv4 주소 체계에는 특수한 목적을 가진 주소들이 존재한다. 인터넷 기술 태스크 포스(IETF)와 IANA는 이러한 특수 주소들을 일반적인 용도로 사용하는 것을 제한하고 있다.[17]

특수 주소 블록[17][18][19][20][21][22][23][24][25][26][27]
주소 블록주소 범위범위설명
0.0.0.0/80.0.0.0–0.255.255.255소프트웨어현재 네트워크 (송신자 주소로만 유효)[17]
10.0.0.0/810.0.0.0–10.255.255.255사설 네트워크사설 네트워크 내에서의 통신에 사용[18]
100.64.0.0/10100.64.0.0–100.127.255.255사설 네트워크IPv4 shared address space|공유 주소 공간영어[19] (캐리어 등급 NAT)를 사용할 때 서비스 제공업체와 해당 가입자 간의 통신에 사용.
127.0.0.0/8127.0.0.0–127.255.255.255호스트localhost에 대한 루프백 주소로 사용[17]
169.254.0.0/16169.254.0.0–169.254.255.255서브넷링크 로컬 주소로 사용[20] (IP 주소가 지정되지 않은 경우, 하나의 링크 상의 두 호스트 간의 통신에 사용).
172.16.0.0/12172.16.0.0–172.31.255.255사설 네트워크사설 네트워크 내에서의 통신에 사용[18]
192.0.0.0/24192.0.0.0–192.0.0.255사설 네트워크IETF 프로토콜 할당[17]
192.0.2.0/24192.0.2.0–192.0.2.255문서문서에서의 예시용 (TEST-NET-1)[21]
192.88.99.0/24192.88.99.0–192.88.99.255인터넷예약[22] (이전에는 IPv6에서 IPv4로의 중계(6to4)에 사용[23]).
192.168.0.0/16192.168.0.0–192.168.255.255사설 네트워크사설 네트워크 내에서의 통신에 사용[18]
198.18.0.0/15198.18.0.0–198.19.255.255사설 네트워크두 개의 다른 서브넷 간의 네트워크 간 통신 벤치마크 테스트에 사용[24]
198.51.100.0/24198.51.100.0–198.51.100.255문서문서에서의 예시용 (TEST-NET-2)[21]
203.0.113.0/24203.0.113.0–203.0.113.255문서문서에서의 예시용 (TEST-NET-3)[21]
224.0.0.0/4224.0.0.0–239.255.255.255인터넷IP 멀티캐스트에 사용[25] (과거의 클래스 D).
240.0.0.0/4240.0.0.0–255.255.255.254인터넷미래의 사용을 위해 예약[26] (과거의 클래스 E).
255.255.255.255/32255.255.255.255서브넷제한된 브로드캐스트의 대상 주소로 예약[17][27]


4. 패킷 구조

IPv4 패킷은 헤더와 데이터 부분으로 구성된다.

'''IPv4 패킷 형식'''
012345678910111213141516171819202122232425262728293031
버전헤더 길이서비스 종류전체 길이
식별자플래그단편화 위치
생존 시간프로토콜체크섬
송신지 주소
목적지 주소
확장 정보
데이터


  • '''버전''': IPv4의 경우 4이다.
  • '''헤더 길이'''(IHL): 4옥텟 단위로 표시되며, 보통 5이다.
  • '''서비스 종류'''(ToS): QoS를 나타낸다.
  • '''전체 길이''': 최대 65,535옥텟이다.
  • '''식별자''': 단편화된 패킷 복원에 사용된다.
  • '''플래그''': 단편화 제어에 사용된다.
  • '''단편화 위치''': 단편화된 패킷 복원에 사용된다.
  • '''생존 시간'''(TTL): 패킷의 유효 시간으로, 네트워크에서 무한 순환을 방지한다.
  • '''프로토콜''': 프로토콜 번호가 설정된다.
  • '''체크섬''': 헤더 오류 검사에 사용된다.
  • '''송신지 주소''': 송신 IPv4 주소이다.
  • '''목적지 주소''': 목적지 IPv4 주소이다.
  • '''확장 정보''': 32비트 단위의 확장 정보이다.
  • '''데이터''': 페이로드이다.

4. 1. 헤더

IPv4 패킷 헤더는 14개의 필드로 구성되며, 그 중 13개는 필수이다. 14번째 필드는 선택 사항이며 "옵션"이라고 불린다. 헤더의 필드는 최상위 바이트부터 먼저 패킹되며(네트워크 바이트 순서), 최상위 비트가 먼저 오는 것으로 간주된다(MSB 0 비트 번호 매기기).

IPv4 헤더는 일반적으로 20옥텟이며, 옵션 필드를 포함할 경우 최대 60옥텟까지 확장될 수 있다.

IPv4 헤더 포맷
오프셋 (옥텟)비트0-34-78-1516-31
00-31버전IHLDSCP / ECN전체 길이
432-63식별 정보플래그프래그먼트 오프셋
864-95TTL프로토콜헤더 체크섬
1296-127출발지 IP 주소
16128-159목적지 IP 주소
20160-191옵션 (IHL > 5인 경우)
24192-223
28224-255
32256-287


  • '''버전''' (4 비트): IP 패킷의 첫 번째 헤더 필드이다. IPv4의 경우 항상 4이다.
  • '''헤더 길이''' (IHL, 4 비트): IPv4 헤더는 선택적 필드(옵션)로 인해 크기가 가변적이다. IHL 필드에는 IPv4 헤더의 크기가 포함되어 있으며, 헤더의 32비트 워드 수를 지정한다. 이 필드의 최소값은 5[15]이며, 이는 20옥텟의 길이를 나타낸다. 4비트 필드이므로 최대값은 15이다. 즉, IPv4 헤더의 최대 크기는 60옥텟이다.
  • '''서비스 종류''' (DSCP, 6 비트): 원래 서비스 유형 (ToS)으로 정의되었으며, 이 필드는 차등 서비스 (DiffServ)를 지정한다.[16] 실시간 데이터 스트리밍은 DSCP 필드를 사용한다. 예를 들어 대화형 음성 서비스에 사용되는 VoIP (VoIP)가 있다.
  • '''서비스 종류''' (ECN, 2 비트): 이 필드를 사용하면 패킷 손실 없이 네트워크 혼잡에 대한 종단 간 알림을 받을 수 있다.[17] ECN은 두 종단점이 모두 지원하고 기본 네트워크에서도 지원할 때 사용할 수 있는 선택적 기능이다.
  • '''전체 길이''' (16 비트): 이 필드는 헤더와 데이터를 포함하여 전체 패킷 크기를 바이트 단위로 정의한다. 최소 크기는 20바이트(데이터 없는 헤더)이고 최대 크기는 65,535바이트이다.
  • '''식별자''' (16 비트): 이 필드는 단일 IP 데이터그램의 조각 그룹을 고유하게 식별하는 데 주로 사용된다.
  • '''플래그''' (3 비트): 단편화를 제어하는 데 사용된다.
  • 비트 0: 예약됨. 항상 0이다.
  • 비트 1: 1인 경우 단편화를 금지함을 의미한다.
  • 비트 2: 1인 경우 단편화된 후속 패킷이 존재하는 패킷임을 의미하고, 0인 경우는 후속 패킷이 존재하지 않음을 의미한다.
  • '''단편화 위치''' (13 비트): 라우터 등이 패킷을 단편화할 때, 해당 위치를 8옥텟 단위로 저장한다. 단편화된 패킷의 복원에 사용된다.
  • '''생존 시간''' (TTL, 8 비트): 패킷의 유효 시간을 나타내는 값이다. 송신측은 패킷이 경유할 수 있는 라우터 수의 상한을 설정하고, 라우터는 패킷을 전송할 때마다 값을 하나씩 줄이며, 값이 0이 되면 패킷은 폐기된다.
  • '''프로토콜''' (8 비트): 전송 계층 프로토콜을 나타내는 프로토콜 번호가 설정된다. 패킷의 목적지인 장치가 패킷을 수신하면, 이 값을 사용하여 상위 프로토콜을 식별하고 해당 구현에 페이로드를 전달한다.
  • '''체크섬''' (16 비트): IP 헤더의 오류 검사에 사용된다. 전송마다 생존 시간의 값이 바뀌므로, 라우터는 체크섬도 전송마다 재계산해야 한다.
  • '''송신지 주소''' (32 비트): 패킷의 송신 IPv4 주소가 설정된다.
  • '''목적지 주소''' (32 비트): 패킷의 전송 IPv4 주소가 설정된다.
  • '''확장 정보''' (옵션, 0 - 320 비트): 가변 길이의 확장 정보가 32비트 단위로 설정된다. 자주 사용되지는 않지만, 보안, 느슨한 소스 라우팅/엄격한 소스 라우팅, 레코드 경로, 인터넷 타임스탬프 등의 정보가 포함된다.

4. 2. 데이터

IP 패킷에서 상위 계층 프로토콜로부터 전달받은 실제 정보(페이로드)를 의미한다. IP 패킷에는 데이터 섹션 뒤에 데이터 체크섬이나 다른 푸터가 존재하지 않는다.

5. 단편화 및 재조합

인터넷 프로토콜은 네트워크 간 트래픽을 가능하게 하는 설계로, 다양한 물리적 특성을 가진 네트워크를 수용하며 링크 계층에서 사용되는 기본 전송 기술에 독립적이다. 서로 다른 하드웨어를 가진 네트워크는 일반적으로 전송 속도뿐만 아니라 최대 전송 단위(MTU)도 다르다. 하나의 네트워크가 더 작은 MTU를 가진 네트워크로 데이터그램을 전송하려는 경우, 데이터그램을 단편화할 수 있다. IPv4에서 이 기능은 인터넷 계층에 위치하며 IPv4 라우터에서 수행되어 호스트가 이러한 문제에 노출되는 것을 제한한다.

라우터가 패킷을 수신하면, 목적지 주소를 검사하여 사용할 송신 인터페이스와 해당 인터페이스의 MTU를 결정한다. 패킷 크기가 MTU보다 크고, 패킷 헤더의 조각 금지(DF) 비트가 0으로 설정된 경우, 라우터는 패킷을 조각화할 수 있다.

라우터는 패킷을 조각으로 나눈다. 각 조각의 최대 크기는 송신 MTU에서 IP 헤더 크기(최소 20바이트, 최대 60바이트)를 뺀 값이다. 라우터는 각 조각을 자체 패킷에 넣으며, 각 조각 패킷은 다음과 같은 변경 사항을 가진다.


  • ''전체 길이'' 필드는 조각 크기이다.
  • ''더 많은 조각'' (MF) 플래그는 마지막 조각을 제외한 모든 조각에 대해 설정되며, 마지막 조각은 0으로 설정된다.
  • ''조각 오프셋'' 필드는 원래 데이터 페이로드에서 조각의 오프셋을 기반으로 설정된다. 이는 8바이트 블록 단위로 측정된다.
  • ''헤더 체크섬'' 필드는 다시 계산된다.


예를 들어, MTU가 1500바이트이고 헤더 크기가 20바이트인 경우, 조각 오프셋은 \frac{1500-20}{8}=185의 배수(0, 185, 370, 555, 740 등)가 된다.

패킷이 한 라우터에서 조각화되고, 조각이 다른 라우터에서 추가로 조각화될 수 있다. 예를 들어, 20바이트 IP 헤더를 포함하는 4520바이트의 패킷이 MTU가 2500바이트인 링크에서 두 개의 패킷으로 조각화되는 과정은 다음과 같다.

조각크기
(바이트)
헤더 크기
(바이트)
데이터 크기
(바이트)
플래그
더 많은 조각
조각 오프셋
(8바이트 블록)
1250020248010
220402020200310



총 데이터 크기는 보존된다: 2480바이트 + 2020바이트 = 4500바이트. 오프셋은 0\frac{0+2480}{8}=310이다.

MTU가 1500바이트인 링크로 전달되면, 각 조각은 두 개의 조각으로 조각화된다.

조각크기
(바이트)
헤더 크기
(바이트)
데이터 크기
(바이트)
플래그
더 많은 조각
조각 오프셋
(8바이트 블록)
1150020148010
210202010001185
315002014801310
4560205400495



다시 말하지만, 데이터 크기는 보존된다: 1480바이트 + 1000바이트 = 2480바이트, 그리고 1480바이트 + 540바이트 = 2020바이트.

또한 이 경우, ''더 많은 조각'' 비트는 1을 가진 모든 조각과 도착하는 마지막 조각에 대해 1로 유지되며, MF 비트는 마지막 조각에서만 0으로 설정된다. 그리고 물론, 식별 필드는 다시 조각화된 모든 조각에서 동일한 값을 계속 유지한다. 이런 식으로, 조각이 다시 조각화되더라도 수신자는 처음에 모두 동일한 패킷에서 시작되었음을 알 수 있다.

마지막 오프셋과 마지막 데이터 크기를 사용하여 총 데이터 크기를 계산한다: 495 \times 8+540=3960+540=4500.

수신자는 다음 조건 중 하나 이상이 참일 경우 해당 패킷이 조각임을 인지한다.


  • ''더 많은 조각'' 플래그가 설정되어 있으며, 이는 마지막 조각을 제외한 모든 조각에 해당한다.
  • ''조각 오프셋'' 필드가 0이 아닌 경우, 이는 첫 번째 조각을 제외한 모든 조각에 해당한다.


수신자는 출발지 주소, 목적지 주소, 프로토콜 ID 및 식별 필드를 사용하여 일치하는 조각을 식별한다. 수신자는 조각 오프셋과 더 많은 조각 플래그를 모두 사용하여 동일한 ID를 가진 조각으로부터 데이터를 재조립한다. 수신자가 ''더 많은 조각'' 플래그가 0으로 설정된 마지막 조각을 수신하면, 마지막 조각의 오프셋에 8을 곱하고 마지막 조각의 데이터 크기를 더하여 원래 데이터 페이로드의 크기를 계산할 수 있다. 주어진 예에서 이 계산은 495 \times 8+540=4500 바이트였다. 수신자가 모든 조각을 갖게 되면, 오프셋에 따라 올바른 순서로 재조립하여 원래 데이터그램을 구성할 수 있다.

프로토콜이 전송하는 단위의 최대 길이를 '''MTU'''('''최대 전송 단위''', '''Max Transfer Unit''')라고 부른다. IP 패킷의 최대 길이는 65535 옥텟이지만, IP 패킷을 전송해야 하는 데이터 링크 계층의 MTU는 IP의 최대 길이와 비교하면 짧은 경우가 많으며, 예를 들어 일반적인 이더넷의 MTU는 1500 옥텟이다.

'''단편화''' (영어: '''Fragmentation''', '''프래그멘테이션''', '''플래그멘테이션''')는 IP 패킷이 패킷을 송출하는 전송로의 MTU보다 긴 경우에 발생한다. 단편화를 수행하는 장치는 IP 패킷을 전송로의 MTU에 들어맞는 길이로 분할하며, 분할된 패킷의 IP 헤더는 전체 길이가 분할된 길이가 되고, 단편 위치에는 분할된 위치가 기록되며, 마지막 패킷을 제외하고는 지속 플래그가 설정된다. 식별자는 분할된 모든 패킷에 분할 전 패킷의 것이 복사된다.

단편화된 패킷의 '''재구성''' (영어: '''Reassembly''', '''재조립''')은 패킷의 목적지인 장치가 수행한다. 특정 식별자를 가진 패킷의 단편을 수신한 목적지는, 동일한 식별자를 가진 패킷의 단편을 추가로 수신하고, 각 단편 위치로부터 단편화 전의 패킷을 재구성한다.

6. 라우팅

'''라우팅'''(routing)은 IP 패킷을 목적지까지 전달하는 경로를 결정하는 과정이다. 이 기능은 라우터에 집약되어 있으며, 많은 호스트는 기본 경로로 라우터의 주소를 기술하는 스타일을 취하는 경우가 많다.

라우터는 패킷을 수신하면 경로 테이블을 검색하여 목적지에 따라 패킷을 전달할 다음 대상을 결정한다. 예를 들어, 192.168.1.2로 가는 패킷은 ether0 인터페이스를 통해 전달하고, 10.1.1.2로 가는 패킷은 ether1 인터페이스를 통해 전달한다. 172.16.1.1로 가는 패킷은 ether1 인터페이스를 통해 10.1.1.2로 보내지는데, 이는 10.1.1.2가 해당 목적지로 가는 경로에 있기 때문이다.

10.255.255.255는 브로드캐스트 주소로, 10/8 네트워크에 연결된 모든 장치에 패킷을 보낼 때 사용된다. 경로 테이블에 없는 주소(예: 7.7.7.7)로 가는 패킷은 기본 게이트웨이 또는 기본 경로로 지정된 곳으로 보내진다.

경로 테이블은 관리자가 직접 설정(정적 경로)하거나, 라우팅 프로토콜(RIP, OSPF 등)을 통해 자동으로 설정(동적 경로)할 수 있다.

6. 1. 라우팅 테이블

라우터는 '''경로 테이블'''('''라우팅 테이블''')에 기반하여 경로 선택을 수행한다. 경로 테이블은 목적지 네트워크 주소, 다음 홉 라우터의 주소, 인터페이스 등의 정보를 포함한다.

라우터의 경로 테이블 예시
목적지(destination)다음 홉(nexthop)인터페이스(interface)
default192.168.1.2ether0
192.168.1.1/32127.0.0.1loopback
192.168.1.2/32192.168.1.2ether0
10.1.1.1/32127.0.0.1loopback
10.1.1.2/3210.1.1.2ether1
10.1.1.3/3210.1.1.3ether1
172.16/1610.1.1.2ether1
10.255.255.255/3210.1.1.1ether1



위 표는 네트워크 구성도에서 중심에 위치한 라우터의 경로 테이블을 나타낸 것이다.


  • destination(목적지): 패킷이 최종적으로 도달해야 할 네트워크 주소.
  • nexthop(다음 홉): 목적지로 가기 위해 거쳐야 할 다음 라우터의 주소.
  • interface(인터페이스): 패킷을 송출할 라우터의 송신 포트.


라우터가 패킷을 수신했을 때의 동작은 다음과 같다.

  • 192.168.1.1로의 패킷: 라우터는 경로 테이블에서 목적지가 192.168.1.1/32인 행을 찾고, 전송 대상이 127.0.0.1(라우터 자신)이므로 자신에게 전송된 패킷임을 판별한다.
  • 192.168.1.2로의 패킷: 경로 테이블에서 목적지가 192.168.1.2/32인 행을 찾고, 인터페이스가 ether0, 다음 홉이 192.168.1.2이므로 ether0에서 192.168.1.2로 패킷을 송출한다.
  • 10.1.1.2로의 패킷: 경로 테이블에서 목적지가 10.1.1.2/32인 행을 찾고, 인터페이스가 ether1, 다음 홉이 10.1.1.2이므로 ether1에서 10.1.1.2로 패킷을 송출한다.
  • 172.16.1.1로의 패킷: 경로 테이블에서 목적지가 172.16/16인 행을 찾고, 인터페이스가 ether1, 다음 홉이 10.1.1.2이므로 10.1.1.2가 172.16.1.1로 가는 경로라고 판단하여 ether1에서 10.1.1.2로 패킷을 송출한다.
  • 10.255.255.255로의 패킷: 경로 테이블에서 목적지가 10.255.255.255/32인 행을 찾는다. 이 주소는 브로드캐스트 주소로, 10/8 네트워크에 연결된 모든 장치로 패킷을 송출한다.
  • 7.7.7.7로의 패킷: 경로 테이블에 해당 목적지가 존재하지 않으므로, default 행과 최장 일치한다. 따라서 다음 홉인 192.168.1.2(기본 게이트웨이 또는 기본 경로)로 패킷을 송출한다.


경로 테이블은 라우터 관리자가 수동으로 설정(정적 경로)하거나, 라우팅 프로토콜(RIP, OSPF 등)을 사용하여 자동으로 설정(동적 경로)할 수 있다. 경로 테이블은 PC에도 존재하며, Windows에서는 "route print", 유닉스 계열에서는 "netstat -r" 또는 "ip route" 명령어로 확인할 수 있다.

7. IPv4 주소 고갈 문제

IPv4 주소 고갈 타임라인


1980년대에, 사용 가능한 IPv4 주소 풀이 네트워크의 원래 설계에서 예상했던 것보다 빠른 속도로 고갈되고 있다는 것이 분명해졌다.[9] 주소 고갈을 가속화한 주요 요인으로는 노트북 컴퓨터, 개인 정보 단말기(PDA), IP 데이터 서비스를 사용하는 스마트폰과 같은 모바일 컴퓨팅 장치를 점점 더 많이 사용하는 인터넷 사용자의 빠른 증가와 고속 인터넷 접속의 상시 접속 장치 기반이 있었다. 이러한 고갈 위협은 클래스 없는 도메인 간 라우팅(CIDR), 네트워크 주소 변환(NAT)과 같은 여러 해결 기술의 도입을 유발했다.

1990년대 중반까지, NAT는 지역 및 로컬 인터넷 레지스트리에서 엄격한 사용 기반 할당 정책과 함께 네트워크 액세스 제공업체 시스템에서 널리 사용되었다.

인터넷 할당 번호 기관(IANA)이 관리하는 인터넷의 기본 주소 풀은 2011년 2월 3일에 고갈되었으며, 마지막 5개 블록이 5개의 지역 인터넷 레지스트리(RIR)에 할당되었다.[10][11] APNIC는 2011년 4월 15일에 지역 풀을 먼저 고갈시킨 첫 번째 RIR이었으며, IPv6로의 전환 기술을 위해 예약된 소량의 주소 공간을 제외하고는 제한된 정책에 따라 할당될 예정이다.[12]

IPv4 주소 고갈에 대한 장기적인 해결책은 1998년에 발표된 새로운 버전의 인터넷 프로토콜인 IPv6이었다. IPv6는 주소 공간을 크게 늘렸을 뿐만 아니라 인터넷 전체에서 향상된 경로 집계를 허용하고 최종 사용자에게 최소 264개의 호스트 주소를 할당하는 대규모 서브넷 할당을 제공한다. 그러나 IPv4는 IPv6와 직접 상호 운용이 불가능하므로 IPv4 전용 호스트는 IPv6 전용 호스트와 직접 통신할 수 없다. 6bone 실험 네트워크의 단계적 폐지가 2004년에 시작되면서 IPv6의 영구적인 공식 배포가 2006년에 시작되었다. IPv6 배포의 완료는 상당한 시간이 걸릴 것으로 예상되므로,[13] 호스트가 두 버전의 프로토콜을 모두 사용하여 인터넷에 참여할 수 있도록 중간 IPv6 전환 메커니즘이 필요하다.

7. 1. 대한민국 현황

2013년 8월 19일 기준으로 대한민국에는 IPv4 주소 4,294,967,296개 중 약 2.61%인 112,268,800개가 할당되어 있으며, 이 중 약 99.97%인 112,235,264개가 사용되고 있다. 이는 전 세계에서 미국, 중국, 일본, 영국, 독일에 이어 6번째로 많은 것이며, 아시아에서는 중국, 일본에 이어 3번째이다.[1]

인터넷 할당 번호 기관(IANA)이 관리하는 IPv4 주소는 2011년2월 3일 고갈되었다.[2] AFRINIC을 제외한 지역 인터넷 레지스트리(RIR)가 관리하는 주소도 2020년 8월 모두 고갈되었다.[2] 이러한 IPv4 주소 고갈 문제의 대책으로 IPv6 보급이 진행되고 있다.[2]

8. IPv6로의 전환

1980년대에, 사용 가능한 IPv4 주소 풀이 네트워크의 원래 설계에서 예상했던 것보다 빠른 속도로 고갈되고 있다는 것이 분명해졌다.[9] 주소 고갈을 가속화한 주요 시장 요인으로는 빠르게 증가하는 인터넷 사용자 수가 있었으며, 이들은 노트북 컴퓨터, 개인 정보 단말기(PDA), IP 데이터 서비스를 사용하는 스마트폰과 같은 모바일 컴퓨팅 장치를 점점 더 많이 사용했다. 또한, 고속 인터넷 액세스는 상시 접속 장치를 기반으로 했다. 고갈의 위협은 다음과 같은 여러 가지 구제 기술의 도입을 유발했다.


  • 클래스 없는 도메인 간 라우팅(CIDR), 소규모 ISP 할당용
  • 번호 없는 인터페이스는 전송 링크에 대한 주소의 필요성을 제거했다.
  • 네트워크 주소 변환(NAT)은 엔드 투 엔드 원칙의 필요성을 제거했다.


1990년대 중반까지, NAT는 지역 및 로컬 인터넷 레지스트리에서 엄격한 사용 기반 할당 정책과 함께 네트워크 액세스 제공업체 시스템에서 널리 사용되었다.

국제 인터넷 주소 관리 기관(IANA)가 관리하는 인터넷의 기본 주소 풀은 2011년 2월 3일에 고갈되었으며, 마지막 5개 블록이 5개의 지역 인터넷 레지스트리(RIR)에 할당되었다.[10][11] 아시아 태평양 네트워크 정보 센터(APNIC)는 2011년 4월 15일에 지역 풀을 먼저 고갈시킨 첫 번째 RIR이었으며, IPv6로의 전환 기술을 위해 예약된 소량의 주소 공간을 제외하고는 제한된 정책에 따라 할당될 예정이다.[12]

주소 고갈에 대한 장기적인 해결책은 1998년에 새로운 버전의 인터넷 프로토콜인 IPv6의 사양이었다. 이는 주소 공간을 크게 늘렸을 뿐만 아니라 인터넷 전체에서 향상된 경로 집계를 허용하고 최종 사용자에게 최소 264개의 호스트 주소를 할당하는 대규모 서브넷 할당을 제공한다. 그러나 IPv4는 IPv6와 직접 상호 운용이 불가능하므로 IPv4 전용 호스트는 IPv6 전용 호스트와 직접 통신할 수 없다. 6bone 실험 네트워크의 단계적 폐지가 2004년에 시작되면서 IPv6의 영구적인 공식 배포가 2006년에 시작되었다. IPv6 배포의 완료는 상당한 시간이 걸릴 것으로 예상되므로,[13] 호스트가 두 버전의 프로토콜을 모두 사용하여 인터넷에 참여할 수 있도록 중간 IPv6 전환 메커니즘이 필요하다.

9. WHOIS 검색 서비스

IP 주소 및 도메인은 다음의 검색 기관의 WHOIS 검색 서비스를 통해 쉽게 검색할 수 있다.

기관명(영문)기관명(한국어)URL
KISA (Korea Internet & Security Agency)한국인터넷진흥원[http://whois.kisa.or.kr/]
APNIC (Asia Pacific Network Information Center)아시아 태평양 네트워크 정보 센터[http://wq.apnic.net/apnic-bin/whois.pl]
ARIN (American Registry for Internet Numbers)[https://web.archive.org/web/20090928094938/http://ws.arin.net/whois/index.html]
LACNIC (Latin American and Caribbean Internet Addresses Registry)라틴 아메리카 및 카리브해 인터넷 주소 등록소[http://lacnic.net/cgi-bin/lacnic/whois]
RIPE (Réseaux IP Européens)[https://web.archive.org/web/20080507161609/http://www.db.ripe.net/whois]


참조

[1] 웹사이트 BGP Analysis Reports http://bgp.potaroo.n[...] 2013-01-09
[2] 웹사이트 IPv6 – Google https://www.google.c[...] 2022-01-28
[3] 웹사이트 IANA IPv4 Special-Purpose Address Registry https://www.iana.org[...] 2022-01-28
[4] 웹사이트 Vint Cerf - We Still Have 80 Per Cent of the World to Connect https://archive.nyti[...] 2024-05-10
[5] 웹사이트 A Brief History of IPv4 https://ipv4marketgr[...] 2020-08-19
[6] 웹사이트 Understanding IP Addressing: Everything You Ever Wanted To Know https://web.archive.[...] 3Com
[7] 간행물 Towards Requirements for IP Routers https://datatracker.[...] 1993-12
[8] 웹사이트 Understanding and Configuring the ip unnumbered Command https://www.cisco.co[...] 2021-11-25
[9] 웹사이트 World 'running out of Internet addresses' https://web.archive.[...] 2011-01-23
[10] 웹사이트 Free Pool of IPv4 Address Space Depleted http://www.nro.net/n[...] Number Resource Organization 2011-02-03
[11] 웹사이트 Five /8s allocated to RIRs – no unallocated IPv4 unicast /8s remain http://mailman.nanog[...]
[12] 웹사이트 APNIC IPv4 Address Pool Reaches Final /8 https://web.archive.[...] 2011-04-15
[13] 서적 2016 IEEE International Conference on Emerging Technologies and Innovative Business Practices for the Transformation of Societies (EmergiTech) University of Technology, Mauritius, Institute of Electrical and Electronics Engineers 2016-08
[14] 논문 Practical network support for IP traceback
[15] 웹사이트 Fragment Offset - IP With Ease https://ipwithease.c[...] 2022-11-21
[16] 웹사이트 Cisco unofficial FAQ http://www.faqs.org/[...] 2012-05-10
[17] 표준 Special-Purpose IP Address Registries Internet Engineering Task Force 2013-04
[18] 표준 Address Allocation for Private Internets Network Working Group 1996-02
[19] 표준 IANA-Reserved IPv4 Prefix for Shared Address Space Internet Engineering Task Force (IETF) 2012-04
[20] 표준 Dynamic Configuration of IPv4 Link-Local Addresses Network Working Group 2005-05
[21] 표준 IPv4 Address Blocks Reserved for Documentation Internet Engineering Task Force 2010-01
[22] 표준 Deprecating the Anycast Prefix for 6to4 Relay Routers Internet Engineering Task Force 2015-05
[23] 표준 An Anycast Prefix for 6to4 Relay Routers Network Working Group 2001-06
[24] 표준 Benchmarking Methodology for Network Interconnect Devices Network Working Group 1999-03
[25] 표준 IANA Guidelines for IPv4 Multicast Address Assignments Internet Engineering Task Force 2010-03
[26] 표준 Assigned Numbers: RFC 1700 is Replaced by an On-line Database Network Working Group 2002-01
[27] 표준 Broadcasting Internet Datagrams Network Working Group 1984-10
[28] 표준
[29] 웹사이트 Windows および Sun のシステムでの IP MTU、TCP MSS、および PMTUD の調整 https://web.archive.[...] Cisco 2010-06-20
[30] 웹사이트 TCP/IPに係る既知の脆弱性に関する調査報告書 改訂第4版 https://www.ipa.go.j[...] 2010-06-20
[31] 웹사이트 @IT連載 基礎から学ぶWindowsネットワーク IPフラグメンテーション https://atmarkit.itm[...] 2010-06-20



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com