This article has been published in the peer-reviewed journal WikiJournal of Science (2022). Click to view the published version.

인터넷 프로토콜 버전 4

Internet Protocol version 4
인터넷 프로토콜 버전 4
프로토콜 스택
IPv4 패킷
약어IPv4
목적인터넷 워킹 프로토콜
개발자DARPA
소개1981; 42년 전 (1988년)
영향받은IPv6
OSI 계층네트워크 계층
RFC791

IPv4(인터넷 프로토콜 버전 4)는 IP(인터넷 프로토콜)의 네 번째 버전입니다.인터넷 및 기타 패킷 교환 네트워크에서 표준 기반 인터넷 작업 방법의 핵심 프로토콜 중 하나입니다.IPv4는 1982년 SATNET 및 1983년 1월 ARPANET에 프로덕션용으로 배포된 최초의 버전입니다.[1]프로토콜은 오늘날에도 대부분의 인터넷 트래픽을 라우팅하는 데 사용되며, 이 프로토콜의 후속 버전인 IPv6([2]Internet Protocol version 6)을 계속 배포하고 있습니다.

IPv4는 4,294,967,296(232)개의 고유 주소를 제공하는 32비트 주소 공간을 사용하지만 큰 블록은 특수 네트워킹 목적으로 [3][4]예약됩니다.

역사

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

목적

인터넷 프로토콜은 Internet Protocol Suite의 인터넷 계층에서 인터넷 작업을 정의하고 실행하는 프로토콜입니다.본질적으로 그것은 인터넷을 형성합니다.논리적 주소 지정 시스템을 사용하고 라우팅을 수행합니다. 즉, 소스 호스트에서 다른 네트워크의 의도된 대상 호스트에 한 홉 더 가까운 다음 라우터로 패킷을 전달합니다.

IPv4는 무연결 프로토콜이며, 전송을 보장하지 않으며 중복 전송의 적절한 순서나 방지를 보장하지 않는다는 점에서 최선의 전송 모델로 작동합니다.데이터 무결성을 포함한 이러한 측면은 TCP(Transmission Control Protocol)와 같은 상위 계층 전송 프로토콜에 의해 해결됩니다.

주소 지정

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

IPv4는 32비트 주소를 사용하여 주소 공간을 4294967296(232) 주소로 제한합니다.

IPv4는 전용 네트워크(약 1800만 개의 주소) 및 멀티캐스트 주소(약 2억 7000만 개의 주소)를 위한 특수 주소 블록을 예약합니다.

주소 표현

IPv4 주소는 32비트 정수 값을 나타내는 모든 표기법으로 표시될 수 있습니다.이들은 대부분 10진수로 개별적으로 표현되고 마침표로 구분된 주소의 4개의 옥텟으로 구성된 점-십진수 표기법으로 작성됩니다.

예를 들어, 쿼드 점 IP 주소 192.0.2.235는 32비트 소수점 번호 3221226219를 나타내며, 16진수 형식은 0xC00002입니다.이비.

CIDR 표기법은 주소 뒤에 슬래시 문자(/)와 라우팅 접두사(서브넷 마스크)의 선행 1비트 수를 입력하는 압축 형식으로 주소와 라우팅 접두사를 결합합니다.

다른 주소 표현은 클래스네트워킹이 실행될 때 일반적으로 사용되었습니다.예를 들어 루프백 주소는 네트워크 마스크에 8비트, 호스트 번호에 24비트의 클래스 A 네트워크에 속하므로 일반적으로 127.0.0.1로 기록됩니다.주소에 닷이 있는 표기법으로 지정된 숫자가 4개 미만인 경우 마지막 값은 주소를 4개의 옥텟으로 채우는 데 필요한 바이트 수의 정수로 처리됩니다.따라서 주소 127.65530은 127.0.255.250과 같습니다.

할당

IPv4의 원래 설계에서 IP 주소는 두 부분으로 나뉘었습니다. 네트워크 식별자는 주소의 가장 중요한 옥텟이고 호스트 식별자는 나머지 주소였습니다.후자는 휴식의 장이라고도 불렸습니다.이 구조는 최대 256개의 네트워크 식별자를 허용하며, 이는 곧 부적절한 것으로 판명되었습니다.

이 한계를 극복하기 위해 1981년에 가장 중요한 주소 옥텟을 재정의하여 나중에 클래스네트워킹으로 알려진 시스템에서 네트워크 클래스를 만들었습니다.개정된 시스템은 5개의 등급을 정의했습니다.클래스 A, B 및 C는 네트워크 식별을 위한 비트 길이가 서로 다릅니다.나머지 주소는 이전과 마찬가지로 네트워크 내의 호스트를 식별하는 데 사용되었습니다.클래스마다 필드 크기가 다르기 때문에 각 네트워크 클래스는 호스트를 주소 지정할 수 있는 용량이 다릅니다.호스트 주소 지정을 위한 세 가지 클래스 외에도, 클래스 D는 멀티캐스트 주소 지정을 위해 정의되었으며 클래스 E는 향후 애플리케이션을 위해 예약되었습니다.

기존의 클래스 풀 네트워크를 서브넷으로 나누는 것은 1985년 RFC 950의 발표와 함께 시작되었습니다.1987년 RFC 1109에 가변 길이 서브넷 마스크(VLSM)가 도입되면서 이러한 분할이 더욱 유연해졌습니다.1993년, 이 연구를 기반으로, RFC 1517은 (가장 중요한) 비트 수를 /24로 표현하는 클래스리스 도메인 간 라우팅(CIDR)[6]도입했고, 대조적으로 클래스 기반 체계는 클래스풀로 명명되었습니다.CIDR은 사용자에게 더 작거나 더 큰 주소 블록을 할당할 수 있도록 주소 공간을 다시 분할할 수 있도록 설계되었습니다.CIDR에 의해 작성된 계층 구조는 IANA(인터넷 할당 번호 기관)와 RIR(지역 인터넷 레지스트리)에 의해 관리됩니다.각 RIR은 IP 주소 할당에 대한 정보를 제공하는 공개 검색 가능한 WHOIS 데이터베이스를 유지 관리합니다.

특수 용도 주소

IETF(Internet Engineering Task Force)와 IANA는 특별한 [7]목적을 위해 다양한 예약된 IP 주소를 일반적으로 사용하는 것을 제한했습니다.특히 이러한 주소는 멀티캐스트 트래픽에 사용되며 개인 네트워크에서 제한 없이 사용할 수 있는 주소 지정 공간을 제공합니다.

특수 주소 블록
주소 블록 주소 범위 주소 수 범위 묘사
0.0.0.0/8 0.0.0.0–0.255.255.255 16777216 소프트웨어 현재[7] 네트워크
10.0.0.0/8 10.0.0.0–10.255.255.255 16777216 전용 네트워크 전용 네트워크 [8]내의 로컬 통신에 사용됩니다.
100.64.0.0/10 100.64.0.0–100.127.255.255 4194304 전용 네트워크 통신업체급 NAT을 사용하는 경우 서비스 공급자와 가입자 간의 통신을 위한 공유 주소[9] 공간.
127.0.0.0/8 127.0.0.0–127.255.255.255 16777216 주인 로컬 [7]호스트에 대한 루프백 주소에 사용됩니다.
169.254.0.0/16 169.254.0.0–169.254.255.255 65536 서브넷 일반적으로 DHCP 서버에서 검색되는 것과 같이 IP 주소가 지정되지 않은 경우 단일 링크의 두 호스트 간 링크 로컬[10] 주소에 사용됩니다.
172.16.0.0/12 172.16.0.0–172.31.255.255 1048576 전용 네트워크 전용 네트워크 [8]내의 로컬 통신에 사용됩니다.
192.0.0.0/24 192.0.0.0–192.0.0.255 256 전용 네트워크 IETF 프로토콜 할당, DS-Lite(/29).[7]
192.0.2.0/24 192.0.2.0–192.0.2.255 256 문서화 TEST-NET-1, 문서 및 [11]예제로 지정됩니다.
192.88.99.0/24 192.88.99.0–192.88.99.255 256 인터넷 예약된.[12]이전에는 IPv6-IPv4[13] 릴레이에 사용되었습니다(IPv6 주소 블록 2002:/16 포함).
192.168.0.0/16 192.168.0.0–192.168.255.255 65536 전용 네트워크 전용 네트워크 [8]내의 로컬 통신에 사용됩니다.
198.18.0.0/15 198.18.0.0–198.19.255.255 131072 전용 네트워크 두 개의 개별 [14]서브넷 간 네트워크 간 통신의 벤치마크 테스트에 사용됩니다.
198.51.100.0/24 198.51.100.0–198.51.100.255 256 문서화 TEST-NET-2, 문서 및 [11]예제로 지정됩니다.
203.0.113.0/24 203.0.113.0–203.0.113.255 256 문서화 TEST-NET-3, 문서 및 [11]예제로 지정됩니다.
224.0.0.0/4 224.0.0.0–239.255.255.255 268435456 인터넷 IP [15]멀티캐스트에 사용 중입니다. (이전의 D 클래스 네트워크)
233.252.0.0/24 233.252.0.0-233.252.0.255 256 문서화 MCAST-TEST-NET, 문서 및 [15][16]예제로 할당됩니다.
240.0.0.0/4 240.0.0.0–255.255.255.254 268435455 인터넷 향후 [17]사용을 위해 예약되었습니다. (이전의 E 클래스 네트워크)
255.255.255.255/32 255.255.255.255 1 서브넷 제한된 브로드캐스트 대상 [7]주소로 예약되었습니다.

전용 네트워크

IPv4에 정의된 약 40억 개의 주소 중 3개 범위의 약 1,800만 개의 주소가 사설 네트워크에서 사용되도록 예약되어 있습니다.이러한 범위의 패킷 주소는 공용 인터넷에서 라우팅할 수 없습니다. 모든 공용 라우터에서 무시됩니다.따라서 개인 호스트는 공용 네트워크와 직접 통신할 수 없지만 이를 위해 라우팅 게이트웨이에서 네트워크 주소 변환이 필요합니다.


예약된 전용 IPv4 네트워크[8] 범위
이름. CIDR 블록 주소 범위 주소 수 클래스 풀 설명
24비트 블록 10.0.0.0/8 10.0.0.0 – 10.255.255.255 16777216 싱글 클래스 A.
20비트 블록 172.16.0.0/12 172.16.0.0 – 172.31.255.255 1048576 16개의 클래스 B 블록의 연속된 범위입니다.
16비트 블록 192.168.0.0/16 192.168.0.0 – 192.168.255.255 65536 256개 클래스 C 블록의 연속 범위입니다.

두 개의 개인 네트워크, 예를 들어 두 개의 지점 네트워크는 공용 인터넷을 통해 직접 상호 운용될 수 없기 때문에, 두 개의 네트워크는 개인 주소를 포함하는 헤더를 포함하는 패킷을 캡슐화하는 가상 개인 네트워크(VPN) 또는 IP 터널을 통해 인터넷을 통해 브리지되어야 합니다.공용 네트워크를 통해 전송되는 동안 프로토콜 계층에서.또한 캡슐화된 패킷은 데이터를 보호하기 위해 공용 네트워크를 통해 전송되도록 암호화될 수 있습니다.

링크 로컬 주소 지정

RFC 3927은 링크 로컬 주소 지정을 위한 특수 주소 블록 169.254.0.0/16을 정의합니다.이러한 주소는 주소를 사용하는 호스트에 직접 연결된 링크(예: 로컬 네트워크 세그먼트 또는 포인트 투 포인트 연결)에서만 유효합니다.이 주소는 라우팅할 수 없습니다.개인 주소와 마찬가지로 이러한 주소는 인터넷을 통과하는 패킷의 소스 또는 대상이 될 수 없습니다.이러한 주소는 호스트가 DHCP 서버 또는 기타 내부 구성 방법에서 IP 주소를 가져올 수 없는 경우 주로 주소 자동 구성(Zeroconf)에 사용됩니다.

주소 블록을 예약할 때 주소 자동 구성에 대한 표준이 없었습니다.마이크로소프트는 수백만 대의 컴퓨터에 배포된 APIPA(Automatic Private IP Addressing)라는 구현체를 만들어 사실상의 표준이 되었습니다.수년 후인 2005년 5월, IETF는 RFC 3927에서 IPv4 링크 로컬 주소의 동적 구성이라는 공식 표준을 정의했습니다.

루프백

클래스 A 네트워크 127.0.0.0(클래스리스 네트워크 127.0.0/8)은 루프백용으로 예약되어 있습니다.소스 주소가 이 네트워크에 속하는 IP 패킷은 호스트 외부에 나타나지 않아야 합니다.루프백 소스 또는 대상 주소가 있는 비 루프백 인터페이스에서 수신된 패킷은 삭제해야 합니다.

첫 번째 및 마지막 서브넷 주소

서브넷의 첫 번째 주소는 서브넷 자체를 식별하는 데 사용됩니다.이 주소에서 모든 호스트 비트는 0입니다.표현의 모호성을 방지하기 위해 이 주소는 [18]예약되어 있습니다.마지막 주소에는 모든 호스트 비트가 1로 설정되어 있습니다.서브넷의 모든 장치에 메시지를 동시에 보내기 위한 로컬 브로드캐스트 주소로 사용됩니다.크기가 /24 이상인 네트워크의 경우 브로드캐스트 주소는 항상 255로 끝납니다.

예를 들어 서브넷 192.168.5.0/24(서브넷 마스크 255.255.0)에서는 식별자 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 주소의 호스트 부분이고 다른 부분은 네트워크 접두사입니다.호스트가 반전되지만(논리적이 아님) 네트워크 접두사는 그대로 유지됩니다.

그러나 0 또는 255로 끝나는 모든 주소를 호스트 주소로 사용할 수는 없습니다.예를 들어 주소 범위 192.168.0.0.0~192.168.255.255에 해당하는 /16 서브넷 192.168.0.0/255.0에서 브로드캐스트 주소는 192.168.255.255입니다.호스트 주소가 255로 끝나더라도 호스트에 대해 192.168.1.255, 192.168.2.255 등의 주소를 사용할 수 있습니다.또한 192.168.0.0은 네트워크 식별자이므로 [19]인터페이스에 할당해서는 안 됩니다.주소 192.168.1.0, 192.168.2.0 등은 0으로 끝나더라도 할당할 수 있습니다.

과거에는 일부 소프트웨어가 비표준 브로드캐스트 주소를 [20]0 대신 0으로 사용했기 때문에 네트워크 주소와 브로드캐스트 주소 간에 충돌이 발생했습니다.

/24보다 작은 네트워크에서는 브로드캐스트 주소가 반드시 255로 끝나는 것은 아닙니다.예를 들어 CIDR 서브넷 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 주소의 호스트 부분이고 다른 부분은 네트워크 접두사입니다.호스트가 반전되지만(논리적이 아님) 네트워크 접두사는 그대로 유지됩니다.

특별한 경우로 /31 네트워크에는 호스트 두 개만 사용할 수 있는 용량이 있습니다.이러한 네트워크는 일반적으로 포인트 투 포인트 연결에 사용됩니다.이러한 [21]네트워크에 대한 네트워크 식별자 또는 브로드캐스트 주소가 없습니다.

주소 확인

인터넷의 호스트는 일반적으로 라우팅 및 네트워크 인터페이스 식별에 사용되는 IP 주소가 아니라 이름(예: www.example.com )으로 알려져 있습니다.도메인 이름을 사용하려면 주소로 변환(확인)하거나 주소로 변환(또는 그 반대의 경우도 마찬가지입니다.이것은 수신인의 이름을 사용하여 전화번호부에서 전화번호를 찾는 것과 유사합니다.

주소와 도메인 이름 간의 변환은 다른 DNS 서버에 네임스페이스를 하위 위임할 수 있는 계층적 분산 명명 시스템인 DNS(Domain Name System)에 의해 수행됩니다.

번호가 지정되지 않은 인터페이스

전송 링크라고도 하는 PTP(Unnumbered Point-to-Point) 링크는 연결된 IP 네트워크 또는 서브넷 번호가 없지만 IP 주소가 있는 링크입니다.1993년에 [22][23][24][25][26]처음 소개된 Qualcomm의 Phil Karn은 최초의 디자이너로 인정받고 있습니다.

전송 링크의 목적은 데이터그램을 라우팅하는 입니다.이러한 주소는 부족한 IP 주소 공간에서 IP 주소를 해방하거나 IP 할당 관리 및 인터페이스 구성을 줄이는 데 사용됩니다.이전에는 모든 링크가 포인트 투 포인트 링크당 2-4개의 IP 주소를 사용하여 전용/30 또는/31 서브넷에 연결해야 했습니다.링크에 번호가 지정되지 않은 경우 정의된(일반적으로 루프백) 인터페이스에서 차용한 단일 IP 주소인 router-id가 사용됩니다.여러 인터페이스에서 동일한 라우터 ID를 사용할 수 있습니다.

번호가 매겨진 인터페이스의 단점 중 하나는 원격 테스트 및 관리가 어렵다는 것입니다.

주소 공간 소진

IPv4 주소 소진 타임라인

1980년대에 사용 가능한 IPv4 주소 풀이 네트워크의 [27]원래 설계에서 처음에 예상하지 못했던 속도로 감소하고 있음이 분명해졌습니다.주소 고갈을 가속화한 주요 시장 요인으로는 노트북 컴퓨터, PDA(Personal Digital Assistant) 및 IP 데이터 서비스가 포함된 스마트폰같은 모바일 컴퓨팅 장치를 점점 더 많이 사용하는 인터넷 사용자의 수가 포함됩니다.게다가, 고속 인터넷 접속은 항상 켜져 있는 장치를 기반으로 했습니다.탈진의 위협은 다음과 같은 여러 가지 개선 기술을 도입하는 동기가 되었습니다.

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


IANA가 관리하는 인터넷의 기본 주소 풀은 2011년 2월 3일 마지막 5개 블록이 5개 [28][29]RIR에 할당되면서 모두 소진되었습니다.제한[30]정책에 따라 할당될 IPv6로의 전환 기술을 위해 예약된 소량의 주소 공간을 제외하고 APNIC는 2011년 4월 15일에 지역 풀을 모두 소진한 최초의 RIR였습니다.

고갈 문제를 해결하기 위한 장기적인 해결책은 1998년의 새로운 버전의 인터넷 프로토콜 IPv6 [31]사양이었습니다.주소 공간을 크게 늘렸을 뿐만 아니라 인터넷 전반에 걸쳐 경로 집계를 개선할 수 있으며 최종 사용자에게 최소64 2개의 호스트 주소의 대규모 하위 네트워크 할당을 제공합니다.그러나 IPv4는 IPv6과 직접 상호 운용할 수 없으므로 IPv4 전용 호스트는 IPv6 전용 호스트와 직접 통신할 수 없습니다.2004년에 시작된 6bone 실험 네트워크의 단계적 폐지와 함께 IPv6의 영구적인 공식 배포는 [32]2006년에 시작되었습니다.IPv6 배포를 완료하려면 상당한 [33]시간이 걸릴 것으로 예상되므로 두 버전의 프로토콜을 모두 사용하여 호스트가 인터넷에 참여할 수 있도록 하기 위해 중간 전환 기술이 필요합니다.

패킷 구조

IP 패킷은 헤더 섹션과 데이터 섹션으로 구성됩니다.IP 패킷에는 데이터 섹션 뒤에 데이터 체크섬이나 다른 바닥글이 없습니다.일반적으로 링크 계층은 대부분의 오류를 탐지하는 CRC 바닥글이 있는 프레임에 IP 패킷을 캡슐화합니다. IP로 전송되는 많은 전송 계층 프로토콜에도 자체 오류 [34]검사 기능이 있습니다.

머리글

IPv4 패킷 헤더는 14개의 필드로 구성되며, 이 중 13개는 필수 필드입니다.14번째 필드는 선택사항이며 적절한 이름을 가진 옵션입니다.헤더의 필드는 가장 중요한 바이트로 먼저 채워지고(네트워크 바이트 순서), 다이어그램 및 토론의 경우 가장 중요한 비트가 가장 먼저 옵니다(MSB 0 비트 번호 지정).가장 중요한 비트의 번호는 0이므로 버전 필드는 실제로 첫 번째 바이트의 가장 중요한 비트 4개에서 찾을 수 있습니다.

IPv4 헤더 형식
오프셋 옥텟 0 1 2 3
옥텟 조금 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 버전 IHL DSCP ECN 총 길이
4 32 신분증 플래그 조각 간격띄우기
8 64 타임 투 라이브 의정서 머리글 체크섬
12 96 소스 IP 주소
16 128 대상 IP 주소
20 160 옵션(IHL > 5인 경우)
56 448
버전
IP 패킷의 첫 번째 헤더 필드는 4비트 버전 필드입니다.IPv4의 경우 이 값은 항상 4입니다.
인터넷 헤더 길이(IHL)
IPv4 헤더는 14번째 필드(옵션)로 인해 크기가 가변적입니다.IHL 필드에는 IPv4 헤더의 크기가 포함되어 있으며 헤더에 32비트 단어 수를 지정하는 4비트가 있습니다.이 필드의 최소값은 [35]5이며, 이는 5 × 32비트 = 160비트 = 20바이트의 길이를 나타냅니다.4비트 필드의 최대값은 15입니다. 즉, IPv4 헤더의 최대 크기는 15 x 32비트 = 480비트 = 60바이트입니다.
DSCP(Differentiated Services Code Point)
원래 서비스 유형(ToS)으로 정의된 이 필드는 RFC 2474에 [a]따라 차별화된 서비스(DiffServ)를 지정합니다.실시간 데이터 스트리밍은 DSCP 필드를 사용합니다.예를 들어 대화형 음성 서비스에 사용되는 VoIP(Voice over IP)가 있습니다.
명시적 정체 알림(ECN)
이 필드는 RFC 3168에 정의되어 있으며 패킷을 삭제하지 않고 네트워크 정체에 대한 종단 간 통지를 허용합니다.ECN은 두 엔드포인트가 모두 ECN을 지원하는 경우 사용할 수 있는 선택적 기능이며 기본 네트워크에서도 지원되는 경우에 효과적입니다.
총 길이
16비트 필드는 헤더와 데이터를 포함한 전체 패킷 크기를 바이트 단위로 정의합니다.최소 크기는 20바이트(데이터가 없는 헤더)이고 최대 크기는 65,535바이트입니다.모든 호스트는 최대 576바이트 크기의 데이터그램을 재구성할 수 있어야 하지만 대부분의 최신 호스트는 훨씬 더 큰 패킷을 처리합니다.링크는 패킷 크기에 추가적인 제한을 가할 수 있으며, 이 경우 데이터그램을 조각화해야 합니다.IPv4의 조각화는 송신 호스트 또는 라우터에서 수행됩니다.수신 호스트에서 재구성이 수행됩니다.
신분증
이 필드는 식별 필드이며 주로 단일 IP 데이터그램의 fragment 그룹을 고유하게 식별하는 데 사용됩니다.일부 실험 연구는 스푸핑된 소스 [36]주소로 데이터그램을 추적하는 데 도움이 되는 패킷 추적 정보를 추가하는 것과 같은 다른 목적으로 ID 필드를 사용할 것을 제안했지만, RFC 6864는 이제 이러한 사용을 금지합니다.
플래그
3비트 필드는 fragment를 제어하거나 식별하는 데 사용됩니다.이들은 다음과 같습니다(가장 유의한 것부터 가장 중요하지 않은 것까지 순서대로).
  • 비트 0: 예약됨. [b]0이어야 합니다.
  • 비트 1: 파편화하지 않음(DF)
  • 비트 2: 추가 조각(MF)
DF 플래그가 설정되어 있고 패킷을 라우팅하기 위해 조각화가 필요한 경우 패킷이 삭제됩니다.이 기능은 조각 재구성을 수행할 리소스가 없는 호스트로 패킷을 보낼 때 사용할 수 있습니다.호스트 IP 소프트웨어에서 자동으로 경로 MTU 검색에 사용하거나 ping 또는 traceroute와 같은 진단 도구를 수동으로 사용할 수도 있습니다.
분할되지 않은 패킷의 경우 MF 플래그가 지워집니다.조각난 패킷의 경우 마지막 조각을 제외한 모든 조각에 MF 플래그가 설정됩니다.마지막 조각에는 조각되지 않은 패킷과 구별되는 0이 아닌 조각 오프셋 필드가 있습니다.
조각 간격띄우기
이 필드는 fragment화되지 않은 원래 IP 데이터그램의 시작 부분을 기준으로 특정 fragment의 오프셋을 지정합니다.첫 번째 조각에 대한 조각화 오프셋 값은 항상 0입니다.필드의 너비는 13비트이므로 오프셋은 0 ~ 8191(20 – 1) ~ (213 – 1)일 수 있습니다.조각은 8바이트 단위로 지정되므로 조각 길이는 [37]8의 배수여야 합니다.따라서 13비트 필드는 헤더 길이(65,528 + 20 = 65,548 바이트)를 포함하여 (213 – 1) × 8 = 65,528 바이트의 최대 오프셋을 허용하여 65,535 바이트의 최대 IP 길이를 초과하는 패킷 조각화를 지원합니다.
생존 시간(TTL)
8비트 실시간 필드라우팅 루프 발생 시 네트워크 장애를 방지하기 위해 데이터그램의 수명을 제한합니다.초 단위로 지정되지만 1초 미만의 시간 간격은 1로 반올림됩니다.실제로 이 필드는 카운트로 사용됩니다. 데이터그램이 라우터에 도착하면 라우터는 TTL 필드를 1씩 줄입니다.TTL 필드가 0에 도달하면 라우터는 패킷을 무시하고 일반적으로 ICMP 시간 초과 메시지를 발신인에게 보냅니다.
프로그램 추적 경로는 조정된 TTL 값으로 메시지를 보내고 이러한 ICMP 시간 초과 메시지를 사용하여 소스에서 대상으로 패킷으로 통과된 라우터를 식별합니다.
의정서
이 필드는 IP 데이터그램의 데이터 부분에 사용되는 프로토콜을 정의합니다.IANA는 RFC 790의 지시에 따라 IP 프로토콜 번호 목록을 유지 관리합니다.
헤더 체크섬
16비트 IPv4 헤더 체크섬 필드는 헤더의 오류 검사에 사용됩니다.패킷이 라우터에 도착하면 라우터는 헤더의 체크섬을 계산하여 체크섬 필드와 비교합니다.값이 일치하지 않으면 라우터는 패킷을 삭제합니다.데이터 필드의 오류는 캡슐화된 프로토콜로 처리해야 합니다.UDP와 TCP 모두 데이터에 적용되는 별도의 체크섬이 있습니다.
패킷이 라우터에 도착하면 라우터는 헤더의 TTL 필드를 줄입니다.따라서 라우터는 새 헤더 체크섬을 계산해야 합니다.
체크섬 필드는 헤더에 있는 16비트 단어의 보완 합계인 16비트를 보완하는 필드입니다.체크섬을 계산할 때 체크섬 필드의 값은 0입니다.
소스 주소
이 32비트 필드는 패킷 보낸 사람의 IPv4 주소입니다.NAT(네트워크 주소 변환)을 통해 전송 중에 변경될 수 있습니다.
대상 주소
이 32비트 필드는 패킷 수신기의 IPv4 주소입니다.NAT의 영향을 받을 수 있습니다.
옵션들
옵션 필드는 자주 사용되지 않습니다.일부 옵션을 포함하는 패킷은 일부 라우터에서 위험한 것으로 간주되어 [38]차단될 수 있습니다.IHL 필드의 값에는 헤더에 정수의 32비트 단어가 포함되어 있는지 확인하는 데 필요한 모든 패딩과 모든 옵션을 포함할 수 있는 충분한 추가 32비트 단어가 포함되어야 합니다.IHL이 5보다 크면(즉, 6 ~ 15) 옵션 필드가 존재하며 반드시 고려해야 함을 의미합니다.옵션 목록은 EOL(옵션 목록 끝, 0x00) 옵션으로 종료할 수 있습니다. 이는 옵션의 끝이 헤더의 끝과 일치하지 않을 경우에만 필요합니다.헤더에 넣을 수 있는 옵션은 다음과 같습니다.
들판 크기(비트) 묘사
복사됨 1 분할된 패킷의 모든 조각에 옵션을 복사해야 하는 경우 1로 설정합니다.
옵션 클래스 2 일반 옵션 범주입니다.0은 제어 옵션용이고 2는 디버깅측정용입니다. 1과 3은 예약되어 있습니다.
옵션 번호 5 옵션을 지정합니다.
옵션 길이 8 이 필드를 포함한 전체 옵션의 크기를 나타냅니다.단순 옵션의 경우 이 필드가 존재하지 않을 수 있습니다.
옵션 데이터 변수 옵션별 데이터.단순 옵션의 경우 이 필드가 존재하지 않을 수 있습니다.
아래 표에는 IPv4에 대해 정의된 옵션이 나와 있습니다.옵션 유형 열은 [39]위에서 정의한 대로 복사됨, 옵션 클래스 및 옵션 번호 비트에서 파생됩니다.
옵션 유형(십진수/16진수) 옵션 이름 묘사
0/0x00 옵션 목록의 끝
1/0x01 NOP 작동 안 함
2/0x02 보안(사라짐)
7/0x07 RR 경로 기록
10/0x0A ZSU 실험 측정
11/0x0B MTUP MTU 프로브
12/0x0C MTUR MTU 응답
15/0x0F 인코딩 인코딩
25/0x19 QS 빠른 시작
30/0x1E EXP RFC3692 스타일 실험
68/0x44 TS 타임스탬프
82/0x52 TR 추적 경로
94/0x5E EXP RFC3692 스타일 실험
130/0x82 보안(RIPSO)
131/0x83 LSR 느슨한 소스 경로
133/0x85 E-SEC RIPSO(확장 보안)
134/0x86 CIPSO 상용 IP 보안 옵션
136/0x88 SID 스트림 ID
137/0x89 SSR 엄격한 소스 경로
142/0x8E 비자 실험적 접근 제어
144/0x90 IMITD IMI 트래픽 설명자
145/0x91 EIP 확장 인터넷 프로토콜
147/0x93 텍스트 추가 주소 확장
148/0x94 RTRALT 라우터 알림
149/0x95 SDB 선택적 연출 방송
151/0x97 DPS 동적 패킷 상태
152/0x98 UMP 업스트림 멀티캐스트 패킷
158/0x9E EXP RFC3692 스타일 실험
205/0xCD 실험적 흐름 제어
222/0xDE EXP RFC3692 스타일 실험

데이터.

패킷 페이로드는 체크섬에 포함되지 않습니다.프로토콜 헤더 필드의 값을 기준으로 내용이 해석됩니다.

IP 프로토콜 번호 목록에는 페이로드 프로토콜 유형의 전체 목록이 포함되어 있습니다.일반적인 페이로드 프로토콜 중 일부는 다음과 같습니다.

프로토콜 번호 프로토콜 이름 약어
1 인터넷 제어 메시지 프로토콜 ICMP
2 인터넷 그룹 관리 프로토콜 IGMP
6 IMT2000 3GPP-전송제어 프로토콜 TCP
17 사용자 데이터그램 프로토콜 UDP
41 IPv6 캡슐화 엔캡
89 최단 경로 먼저 열기 OSPF
132 스트림 제어 전송 프로토콜 SCTP

단편화 및 재구성

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

이와 대조적으로 차세대 인터넷 프로토콜인 IPv6는 라우터가 조각화를 수행할 수 있도록 허용하지 않습니다. 호스트는 데이터그램을 전송하기 전에 Path MTU Discovery를 수행해야 합니다.

단편화

라우터는 패킷을 수신할 때 대상 주소를 검사하고 사용할 송신 인터페이스와 해당 인터페이스의 MTU를 결정합니다. 패킷 크기가 MTU보다 크고 패킷 헤더의 DF(Do not Fragment) 비트가 0으로 설정되면 라우터는 패킷을 조각화할 수 있습니다.

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

  • 전체 길이 필드는 조각 크기입니다.
  • 마지막 조각(0으로 설정된 조각 제외)을 제외한 모든 조각에 대해 MF(More Fragment) 플래그가 설정됩니다.
  • 조각 오프셋 필드는 원래 데이터 페이로드에 있는 조각의 오프셋을 기준으로 설정됩니다.이 값은 8바이트 블록 단위로 측정됩니다.
  • 헤더 체크섬 필드가 다시 계산됩니다.

예를 들어 MTU가 1,500바이트이고 헤더 크기가 20바이트인 경우 프래그먼트 오프셋은 1 - }}=0, 185, 370, 555, 740 등)입니다.

패킷이 한 라우터에서 조각나고 조각이 다른 라우터에서 조각날 수 있습니다.예를 들어 20바이트의 IP 헤더를 포함한 4,520바이트의 패킷은 MTU가 2,500바이트인 링크의 두 패킷으로 조각화됩니다.

파편 크기
(바이트)
머리글 크기
(바이트)
데이터 크기
(바이트)
깃발
더 많은 조각
조각 간격띄우기
(8바이트 블록)
1 2,500 20 2,480 1 0
2 2,040 20 2,020 0 310

총 데이터 크기는 2,165바이트 + 2,020바이트 = 4,500바이트로 보존됩니다.오프셋은 00 0 + {{}}=입니다

MTU가 1,500바이트인 링크로 전달되는 경우 각 조각은 두 개의 조각으로 분할됩니다.

파편 크기
(바이트)
머리글 크기
(바이트)
데이터 크기
(바이트)
깃발
더 많은 조각
조각 간격띄우기
(8바이트 블록)
1 1,500 20 1,480 1 0
2 1,020 20 1,000 1 185
3 1,500 20 1,480 1 310
4 560 20 540 0 495

다시 데이터 크기가 보존됩니다. 1,165 + 1,000 = 2,165 및 1,165 + 540 = 2,020입니다.

또한 이 경우 More Fragments 비트는 1과 함께 제공된 모든 fragments에 대해 1로 유지되고 마지막 fragments가 도착한 fragments에 대해서는 정상적으로 작동합니다. 즉, MF 비트는 마지막 fragments에서만 0으로 설정됩니다.그리고 물론, 식별 필드는 다시 조각난 모든 조각에서 동일한 값을 유지합니다.이렇게 하면 fragment가 다시 fragment화되더라도 수신기는 fragment가 처음에 모두 동일한 패킷에서 시작되었음을 알 수 있습니다.

마지막 과 마지막 데이터 크기는 총 데이터 크기를 계산하는 데 사용됩니다. × + 3, +540 4({\ 8+ 540=

재조립

수신기는 다음 조건 중 적어도 하나가 참인 경우 패킷이 조각임을 알고 있습니다.

  • 플래그 more fragments가 설정됩니다. 이는 마지막 fragment를 제외한 모든 fragment에 대해 참입니다.
  • 필드 조각 오프셋은 0이 아닙니다. 이는 첫 번째 조각을 제외한 모든 조각에 대해 참입니다.

수신기는 소스 및 대상 주소, 프로토콜 ID 및 식별 필드를 사용하여 일치하는 조각을 식별합니다.수신기는 fragment offset과 more fragments 플래그를 모두 사용하여 동일한 ID의 fragments에서 데이터를 재구성합니다.수신기는 더 많은 fragment 플래그가 0으로 설정된 마지막 fragment를 수신하면 마지막 fragment의 오프셋을 8배로 곱하고 마지막 fragment의 데이터 크기를 추가하여 원래 데이터 페이로드의 크기를 계산할 수 있습니다.해당 예제에서 이 계산은 × + ({ 8바이트였습니다.수신기에 모든 fragment가 있을 때, 그것들은 원래 데이터그램을 형성하기 위해 오프셋에 따라 정확한 순서로 재조립될 수 있습니다.

보조 프로토콜

IP 주소는 네트워킹 하드웨어와 영구적인 방식으로 연결되지 않으며, 실제로 현대의 운영 체제에서는 네트워크 인터페이스가 여러 IP 주소를 가질 수 있습니다.링크의 대상 호스트에 IP 패킷을 적절하게 전달하기 위해 호스트와 라우터는 네트워크 인터페이스의 하드웨어[c] 주소와 IP 주소 사이에 연결을 만드는 추가 메커니즘이 필요합니다.ARP(Address Resolution Protocol)는 IPv4에 대해 이 IP 주소에서 하드웨어 주소로 변환을 수행합니다.또한 역상관이 종종 필요합니다.예를 들어 관리자가 주소를 미리 구성하지 않은 경우 IP 호스트가 부팅되거나 네트워크에 연결될 때 IP 주소를 결정해야 합니다.이러한 역상관을 위한 프로토콜에는 DHCP(Dynamic Host Configuration Protocol), Bootstrap Protocol(BOOTP) 및 드물게 역 ARP포함됩니다.

참고 항목

메모들

  1. ^ RFC 3168 및 RFC 3260에 의해 업데이트됨
  2. ^ 만우절 장난으로, RFC 3514에서 "악마의 비트"로 사용할 것을 제안했습니다.
  3. ^ 이더넷을 포함IEEE 802 네트워킹 기술의 경우 하드웨어 주소는 MAC 주소입니다.

레퍼런스

이 문서는 CCBY 4.0 라이센스(2022)에 따라 다음 소스에서 수정되었습니다.

  1. ^ "BGP Analysis Reports". BGP Reports. Retrieved 2013-01-09.{{cite web}}CS1 유지보수: url-status(링크)
  2. ^ "IPv6 – Google". www.google.com. Retrieved 2022-01-28.
  3. ^ "IANA IPv4 Special-Purpose Address Registry". www.iana.org. Retrieved 2022-01-28.
  4. ^ Cotton, Michelle; Vegoda, Leo (January 2010). "RFC 5735 - Special Use IPv4 Addresses". datatracker.ietf.org. Retrieved 2022-01-28.
  5. ^ "A Brief History of IPv4". IPv4 Market Group. Retrieved 2020-08-19.
  6. ^ "Understanding IP Addressing: Everything You Ever Wanted To Know" (PDF). 3Com. Archived from the original (PDF) on June 16, 2001.
  7. ^ a b c d e M. Cotton; L. Vegoda; B. Haberman (April 2013). R. Bonica (ed.). Special-Purpose IP Address Registries. IETF. doi:10.17487/RFC6890. ISSN 2070-1721. BCP 153. RFC 6890. 모범 사례.RFC 4773, 5156, 57355736을 폐지합니다.RFC 8190에 의해 업데이트되었습니다.
  8. ^ a b c d Y. Rekhter; B. Moskowitz; D. Karrenberg; G. J. de Groot; E. Lear (February 1996). Address Allocation for Private Internets. Network Working Group. doi:10.17487/RFC1918. BCP 5. RFC 1918. 모범 사례.RFC 16271597을 폐지합니다.RFC 6761에 의해 업데이트되었습니다.
  9. ^ J. Weil; V. Kuarsingh; C. Donley; C. Liljenstolpe; M. Azinger (April 2012). IANA-Reserved IPv4 Prefix for Shared Address Space. Internet Engineering Task Force. doi:10.17487/RFC6598. ISSN 2070-1721. BCP 153. RFC 6598. 모범 사례.RFC 5735를 업데이트합니다.
  10. ^ S. Cheshire; B. Aboba; E. Guttman (May 2005). Dynamic Configuration of IPv4 Link-Local Addresses. Network Working Group. doi:10.17487/RFC3927. RFC 3927. 제안된 표준.
  11. ^ a b c J. Arkko; M. Cotton; L. Vegoda (January 2010). IPv4 Address Blocks Reserved for Documentation. Internet Engineering Task Force. doi:10.17487/RFC5737. ISSN 2070-1721. RFC 5737. 정보 제공.RFC 1166을 업데이트합니다.
  12. ^ O. Troan (May 2015). B. Carpenter (ed.). Deprecating the Anycast Prefix for 6to4 Relay Routers. Internet Engineering Task Force. doi:10.17487/RFC7526. BCP 196. RFC 7526. 모범 사례.RFC 30686732를 폐지합니다.
  13. ^ C. Huitema (June 2001). An Anycast Prefix for 6to4 Relay Routers. Network Working Group. doi:10.17487/RFC3068. RFC 3068. 정보 제공.RFC 7526에 의해 폐기되었습니다.
  14. ^ S. Bradner; J. McQuaid (March 1999). Benchmarking Methodology for Network Interconnect Devices. Network Working Group. doi:10.17487/RFC2544. RFC 2544. 정보 제공.RFC 6201 및 RFC 6815에 의해 업데이트됨.
  15. ^ a b M. Cotton; L. Vegoda; D. Meyer (March 2010). IANA Guidelines for IPv4 Multicast Address Assignments. IETF. doi:10.17487/RFC5771. ISSN 2070-1721. BCP 51. RFC 5771. 모범 사례.RFC 31383171을 폐지합니다.RFC 2780을 업데이트합니다.
  16. ^ S. Venaas; R. Parekh; G. Van de Velde; T. Chown; M. Eubanks (August 2012). Multicast Addresses for Documentation. Internet Engineering Task Force. doi:10.17487/RFC6676. ISSN 2070-1721. RFC 6676. 정보 제공.
  17. ^ J. Reynolds, ed. (January 2002). Assigned Numbers: RFC 1700 is Replaced by an On-line Database. Network Working Group. doi:10.17487/RFC3232. RFC 3232. 정보 제공.RFC 1700을 폐지합니다.
  18. ^ "RFC 923". IETF. June 1984. Retrieved 15 November 2019. Special Addresses: In certain contexts, it is useful to have fixed addresses with functional significance rather than as identifiers of specific hosts. When such usage is called for, the address zero is to be interpreted as meaning "this", as in "this network".
  19. ^ Robert Braden (October 1989). "Requirements for Internet Hosts – Communication Layers". IETF. p. 31. RFC 1122.
  20. ^ Robert Braden (October 1989). "Requirements for Internet Hosts – Communication Layers". IETF. p. 66. RFC 1122.
  21. ^ RFC 3021
  22. ^ Almquist, Philip; Kastenholz, Frank (November 1994). "Towards Requirements for IP Routers". Internet Engineering Task Force.
  23. ^ RFC 1916
  24. ^ RFC 1716
  25. ^ RFC 1812
  26. ^ "Understanding and Configuring the ip unnumbered Command". Cisco. Retrieved 2021-11-25.
  27. ^ "World 'running out of Internet addresses'". Archived from the original on 2011-01-25. Retrieved 2011-01-23.
  28. ^ Smith, Lucie; Lipner, Ian (3 February 2011). "Free Pool of IPv4 Address Space Depleted". Number Resource Organization. Retrieved 3 February 2011.
  29. ^ ICANN,nanog mailing list. "Five /8s allocated to RIRs – no unallocated IPv4 unicast /8s remain".
  30. ^ Asia-Pacific Network Information Centre (15 April 2011). "APNIC IPv4 Address Pool Reaches Final /8". Archived from the original on 7 August 2011. Retrieved 15 April 2011.
  31. ^ Hinden, Bob; Deering, Steve E. (December 1998). "Internet Protocol, Version 6 (IPv6) Specification". tools.ietf.org. Retrieved 2019-12-13.
  32. ^ Fink, R.; HInden, R. (March 2004). 6bone (IPv6 Testing Address Allocation) Phaseout. doi:10.17487/RFC3701. RFC 3701.
  33. ^ 2016 IEEE International Conference on Emerging Technologies and Innovative Business Practices for the Transformation of Societies (EmergiTech). Piscataway, NJ: University of Technology, Mauritius, Institute of Electrical and Electronics Engineers. August 2016. ISBN 9781509007066. OCLC 972636788.
  34. ^ Partridge, C.; Kastenholz, F. (December 1994). "6.2 IP Header Checksum". Technical Criteria for Choosing IP The Next Generation (IPng). p. 26. sec. 6.2. doi:10.17487/RFC1726. RFC 1726.
  35. ^ Postel, J. Internet Protocol. doi:10.17487/RFC0791. RFC 791.
  36. ^ Savage, Stefan (2000). "Practical network support for IP traceback". ACM SIGCOMM Computer Communication Review. 30 (4): 295–306. doi:10.1145/347057.347560. Retrieved 2010-09-06.
  37. ^ Bhardwaj, Rashmi (2020-06-04). "Fragment Offset - IP With Ease". ipwithease.com. Retrieved 2022-11-21.
  38. ^ "Cisco unofficial FAQ". Retrieved 2012-05-10.
  39. ^ "Internet Protocol Version 4 (IPv4) Parameters".

외부 링크