IPv4
ㅇ Version (4 bits)
- 현재로는 버젼 4 (IPv4)를 사용
ㅇ Header Length(HLEN) (4 bits)
- 헤더의 길이
. 32비트(4 바이트) 워드 단위로 헤더 길이를 표시
- 길이 값 표현
. 최소 5 (4 x 5 = 20 바이트)부터 15(4 x 15 = 60 바이트,옵션 포함된 경우)까지의 값
ㅇ Type of Service (ToS) Flag (8 bits)
- IP 패킷 헤더 내 "처리량, 전달 지연, 신뢰성, 우선순위"를 나타내는 8 비트 필드
가. 우선순위 설정용
- Bit 0-2 : Precedence (우선순위 8단계)
. 000 : Routine (Normal)
. 001 : Priority
. 010 : Immediate
. 011 : Flash
. 100 : Flash Override
. 101 : Critical
. 110 : Internetwork Control (OSPF에서 셋팅됨)
. 111 : Network Control
나. TOS 설정용
- Bit 3 : Delay (지연)
. 0 : 보통의 지연, 1 : 높은 지연
- Bit 4 : Throughput (처리율)
. 0 : 보통 처리율, 1 : 높은 처리율
- Bit 5 : Reliability (신뢰성)
. 0 : 보통 신뢰성, 1 : 높은 신뢰성
- Bit 6 : Minimum Cost (최소비용)
다. 사용안함
- Bit 7 : 항상 0으로 셑팅됨
ㅇ Total Packet Length (16 bits)
- IP 헤더 및 데이터를 포함한 IP 패킷 전체의 길이를 바이트 단위로 길이를 표시
. 최대값은 65,535 = (216 - 1)
- RFC 791 권고 : 68 ~ 65,535 바이트 범위로써 가능
ㅇ Fragment Identifier (16 bits) -- ①
- 각 조각이 동일한 데이터그램에 속하면 같은 일련번호를 공유함
ㅇ Fragmentation Flag (3 bits) : 분열의 특성을 나타내는 플래그 -- ②
ㅇ Fragmentation Offset (13 bits) -- ③
- 조각나기 전 원래의 데이터그램의 8 바이트 단위의 위치
※ 위 3개의 필드 (Fragment Identifier,Fragmentation Flag,Fragmentation Offset)
(①,②,③)는 IP 단편화(조각화,분열)과 재배열과 관련된 필드임
ㅇ TTL, Time To Live (8 bits)
- IP 패킷 수명
ㅇ Protocol Identifier (8 bits)
- 어느 상위계층 프로토콜이 데이터 내에 포함되었는가를 보여줌
. 例) ICMP -> 1, IGMP -> 2, TCP -> 6, EGP -> 8, UDP -> 17, OSPF -> 89 등
ㅇ 헤더 체크섬 (16 bits) - 헤더에 대한 오류검출
ㅇ Source IP Address (32 bits) - 송신처 IP 주소
ㅇ Destination IP Address (32 bits) - 목적지 IP 주소
ㅇ IP 헤더 옵션 (선택옵션) (가변 길이 bits)
ㅇ Padding (필요한 경우에만 사용) (가변 길이 bits)
IPv4 가 거의 고갈되었고 IPv4 헤더 정보에 불필요한 정보가 있어서 IPv6로 이전
Internet Protocol Version 4 (IPv4)는 1981년 IETF의 문서에서 처음 제안된 후로 전 세계적으로 가장 널리 사용 중인 네트워크 계층의 프로토콜이다. 32 bits의 주소공간을 제공하며 약 43억 개의 주소를 사용할 수 있다. 사용 가능한 주소의 수는 프로토콜 설계 당시에는 충분할 것으로 예상되었으나, 인터넷 사용자의 폭발적인 증가로 인한 주소공간의 부족을 해결 및 IPv4에서 지원하지 않는 기능을 제공하기 위해 새로운 프로토콜을 필요로 하게 되었다. 이러한 부분을 해결하기 위해 1994년도에 시작한 IPng (Internet Protocol Next Generation) 프로젝트를 통해 Internet Protocol Version 6 (IPv6)가 제안되었으며 [2], 지속적으로 성능이 개선되고 있다. 또한 IPv6로의 이전을 위해 IP주소를 관리하는 단체인 Internet Assigned Numbers Authority (IANA)는 지난 2011년 2월 ‘보유중인 IPv4주소가 모두 소진되어 추가 할당을 중지한다’고 발표하였다 [3]. 이에 따라 IPv4 환경에서 IPv6 환경으로의 전환이 가속화될 것으로 예상된다.
바뀐 점 :
- header size: 20 byte -> 40 byte
- header 정보가 더 간단해짐.
- IP 주소 size : 32 bit -> 128 bit(16진수)
1. checksum이 사라짐 (router가 하는 일이 많아져서 없앰)
2. ICMP의 새로운 버전(v6)를 사용한다.
ICMP : TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
3. options 확장 헤더 형태로 변경
IPv4 헤더에서 사용되던 주요 옵션들(Fragment, Identification, Options 등)이 IPv6 헤더에서는 확장 헤더 형태로 정의되고 있다. 이 때 통신 시 필요한 기능을 IPv6 기본 헤더와 상위 계층 헤더 사이에 추가한다. 이를 통해 IPv6 헤더의 크기는 40 bytes의 고정크기로 유지하면서도 필요에 따라 추가 기능을 사용하는 것이 가능하다.
IPv6
ㅇ Version (4 비트)
- IPv4 이면 4 (0100), IPv6 이면 6 (0110)
ㅇ Traffic Class 또는 Priority (8 비트)
- IPv4일때의 TOS 필드와 유사
. IP 패킷 마다 서로다른 서비스 요구사항을 구분하기 위함
. 따라서, 민감한 실시간 응용 및 긴급하지 않은 데이터 패킷 간의 차별적 구분 가능
가. (DS 필드 6 비트 + ECN 필드 2 비트 = 총 8 비트)
- DS 필드 : 요구되는 서비스 질(質)에 대한 유형을 나타내는데 사용
. IP 데이터그램이 라우터에서 어떻게 처리되어야하는지를 정의하고 있음
- ECN 필드 : 혼잡 알림을 위해 사용
. 라우터가 패킷을 즉각 폐기하지 않고, 최종 노드에게 혼잡을 알림
나. DS (Differentiated Service, 차등 서비스) 필드
- DSCP 값 : 64개 코드 포인트
. 0 값 : 일반 최선 노력 인터넷 트래픽 (기본값)
- 카테고리 구분
. 1 (xxxxx0) : 표준
. 2 (xxxx11) : 실험용/로컬
. 3 (xxxx01) : 실험용/예약
다. ECN (Explicit Congestion Notification, 명시적 혼잡 알림) 필드
- 00 : 패킷이 ECN 기능을 사용하지 않음
- 01 또는 10 : 발신측에서 종단점이 ECN 기능을 수용함을 나타냄
- 11 : 라우터가 혼잡이 발생했음을 알리고자하는 표식
ㅇ Flow Label (20 비트)
- IP를 연결지향적 프로토콜로 사용할 수 있게 함
. 실시간 서비스 등 같이 우선권을 주기위하여 특정 트래픽 Flow에 대한 라벨링
ㅇ Payload length (16 비트)
- 페이로드부의 길이 (확장헤더 + 상위계층 데이터) < 216(65536) 까지 가능
ㅇ Next header (8 비트)
- 기본헤더 다음에 위치하는 확장 헤더의 종류를 표시
. IPv4의 프로토콜 번호와 같은 역할
ㅇ Hop limit (8 비트)
- 버젼 4일때의 TTL과 같은 역할
ㅇ Source address (128 비트)
- 발신처 주소
ㅇ Destination address (128 비트)
- 목적지 주소
. 만일, 소스 라우팅일 경우에 다음 라우터 주소를 나타냄
추가)
IP fragmentation
대역폭이 줄어들면 한 패킷을 여러개로 나눠 보내야한다. 대역폭이 다시 늘어나도 HOST에서 재조립한다.
length : header 20byte를 포함해 보내는 길이id : 한 패킷이 동일한 패킷으로 나뉨을 나타내기 위해 같은 패킷은 다같은 id를 가짐fragflag: 뒤에 따라오는 패킷이 있으면 1, 없으면 0offset : header를 제외한 데이터의 첫 주소 /8
'네트워크' 카테고리의 다른 글
CRC 오류체크 비트 (0) | 2022.07.17 |
---|---|
[강의 정리] 원하는 사이트 연결까지 전체 흐름 정리 (0) | 2022.07.17 |
CIDR란? (0) | 2022.07.17 |
서브넷(Subnet)이란? (0) | 2022.07.17 |
[강의정리] Data plane, Control plane (0) | 2022.07.17 |