지니의 따듯한 공간

데이터 그램 2 본문

Network/Network Analysis

데이터 그램 2

Jineer 2019. 4. 15. 14:31


식별 (identification) 2byte
 - IP 단편화에 사용되며 각 데이터그램 마다 고유하게 설정
 - 단편화된 IP 패킷들을 재조립 할 때 사용

플래그(flags) 3bit
- 단편화를 위해 사용

단편화 옵셋 ( fragmentation offset) (13 bit)
- 단편화를 위해 사용

수명(time to live) (1 byte) : 데이터그램의 수명
 - IP 데이터그램이 활동할 수 있는 최대 시간
     -> 최소 : 1, 최대 2의8승-1 : 255 값 지정 
 - 라우터를 통해 갈 때마다 1씩 감소, 0이 되면 폐기 ( hopping 될 때 마다 ) 스위치는 홉핑 안된다. TTL 안 줄어든다.

13~14번 정도의 홉핑이면 한국->미국 정도 ㅎ.ㅎ

백두산 화산 폭발 !?

Linux에서 발생하는 패킷과 윈도우에서 발생하는 패킷이 어떻게 다른지 볼까? -> wireshark로 실습 해보자 !

데이터그램 내의 프로토콜 값 

 

자바는 Uni code (2byte) 어떤 언어를 넣어도 공간이 남는다. 2byte 코드 체계이기 때문에.

아스키코드는 1 byte 코드 ( 7bit는 , 1bit는 패리티비트 ) 

 

한글은 아스키코드 값이더라도 2byte로 표현.

Parity 

- odd    : 홀수 체계  / 1byte를 읽었을때 홀수여야만 한다.

- even   : 짝수 체계  / 

 

검사 합 (cheeksum) 2byte

 - 오류 확인을 위한 검사 합

 

발신지 주소 (source address)

 - 32bit 필드로 발신지의 IP주소를 정의

 - IP 데이터그램이 발신지에서 목적지까지 전달되는 동안 이 값은 변해서는 안된다.

 

목적지 주소 (destination address)

 - 32bit 필드로 목적지의 IP 주소를 정의

 - IP 데이터그램이 발신지에서 목적지까지 전달되는 동안 이 값은 변해서는 안된다.

 

옵션 (options)

 - 경로설정, 타이밍, 관리, 정렬 등 표준 IP 헤더에 없는 정보 송신

 - IP 헤더 길이가 20byte를 넘을 경우에 이 값이 존재

 

PAD (Padding : 0~24bit)

 - Option 필드 길이가 4byte의 배수가 되지 않을 때 사용하며,

    Padding을 붙여 4byte의 배수가 되게 한다.

     ※Header Length 필드가 4byte 단위의 크기를 가지므로 4의 배수가 아닐시 0을 덧 붙인다.

 

IPv6 데이터그램

                                          

IPv6 데이터그램

각 패킷은 필수적인 기본 헤더 및 페이로드로 구성

페이로드는 두 필드인 선택적인 확장 헤더와 상위계층에서 온 데이터로 구성

기본 헤더는 40byte / 페이로드 최대 65,535byte까지 차지

 

 

 

 

IPv6 데이터그램의 헤더

 

버전(version)

 - 4bit로 구성

 - IP버전 정의

 

트래픽 클래스 (traffic class)

 - 8bit로 구성

 - 서로 다른 전달 요구사항을 갖는 페이로드를 구분하는데 쓰임

 - IPv4의 서비스 클래스 필드를 대신한다

 

흐름 레이블 (flow label)

 - 20bit로 구성되며 특정 데이터의 흐름을 특별하게 제어하기 위해 설계

 

페이로드 길이 (payload length)

 - 2byte로 구성된 페이로드 길이 필드는 기본 헤더를 제외한 IP 데이터그램의 전체 길이를 정의

 

다음 헤더 (next header)

 - 데이터 그램에서 기본헤더 다음의 헤더를 정의하는 8bit 필드

 - 다음 헤더는 IP에 의해 이용되는 선택적인 확장 헤더이거나,

   UDP 또는 TCP와 같은 상위 계층 프로토콜을 위한 헤더  

다음 헤더 코드

홉 제한 (hop limit)

 - 8 bit로 구성

 - IPv4의 TTL필드와 같은 목적으로 사용

 

발신지 주소 

 

목적지 주소

 

흐름 레이블

 - IPv6에서는 흐름 레이블(flow label)이 IPv6 데이터그램의 형식에 추가되어

IPv6을 연결 지향 프로토콜로 사용 할 수 있게 해준다.

※IPv4는 비연결형 프로토콜이다. 라우터의 역할은 보내기만 한다.

 

흐름 레이블의 효과적인 사용을 위한 방법

 - 흐름 레이블은 발신지 호스트에 의해 패킷에 할당

 - 호스트가 흐름 레이블을 제공하지 않으면 이 필드를 0으로 설정하고, 만약 라우터가 흐름 레이블을

제공하지 않으면 흐름 레이블을 단순히 무시

 - 동일 흐름에 속하는 모든 패킷은 동일 자원과 동일 목적지, 동일 우선권, 동일 옵션을 가짐

 

 

※ IPv4와 IPv6 헤더 비교

 - IPv6에서 헤더의 길이는 고정되어 있기 때문에 헤더 길이 필드가 없음

 - IPv6에서 서비스 유형 필드는 없고 트래픽 클래스와 흐름 레이블 필드는 서비스 유형 필드의 기능을 대신 함

 - 총 길이 필드는 IPv6에는 없고 페이로드 길이 필드로 대치 됨

 - 식별(identification), 플래그(flag)및 옵셋(offset)필드는 IPv6 기본 헤더에는 없고, 이 필드는 단편화 확장 헤더에 포함

 - TTL 필드는 IPv6에서 홉 제한(hop limit)으로 불림

 - 프로토콜 필드는 다음 헤더 필드로 대치 됨

 - 헤더 검사합(checksum)은 상위 계층 프로토콜에 의해 제공되므로 네트워크 계층에서는 필요 없음

 - IPv4에서 옵션 필드(option field)는  IPv6에서는 확장 헤더로 구현 됨

 

 

 IPv4 에서 페이로드 구하는 공식 : TotalLength - ( 헤더 ) x4 = payload

 

TTL 최대 길이는 보통 64 / ? / 256 으로 나뉜다.

ping명령어의 TTL로 이 서버가 윈도우 서버인지, 리눅스 서버인지, (OS 및 서버 버전) 및 홉의 개수 확인 가능

 

 

'Network > Network Analysis' 카테고리의 다른 글

ICMP (2) Query  (0) 2019.04.30
단편화 및 검사합  (0) 2019.04.15
IPv6 주소 체계  (0) 2019.04.15
데이터그램 (Datagram) 이란?  (0) 2019.04.09
Ethernet II 프레임 형식  (0) 2019.04.02
Comments