본문 바로가기

교육/Netwrok

Day 59 (Network Layer 구조)

반응형

<목차>

1. IP header구성

  1) version

  2) Header length

  3) Type Of Service

  4) Total Length

  5) Identification

  6) Flags

  7) fragment offset

  8) TTL

  9) Protocol Type

  10) Header checksum

  11) Source 및 Destination IP Address

2. IP header분석


1. IP header구성

1) version는 인터넷 프로토콜 버전구분을 의미한다. 4bit로 16진수 1글자이다. IPv4는 4, IPv6는 6이다.

 

2) Header length는 IP 프로토콜 헤더의 길이를 word단위로 표현한 것으로 4bit이다. 0~15까지 길이를 가질 수 있다.

 

3) Type Of Service는 데이터 그램에 기대되는 QOS (Quality of Service)를 지시하는 8비트 코드이다.

Precedence 3bit는 현재 무시되며 TOS(Type-Of-Service) 4bit는 최소지연, 최대 처리율, 최대 신뢰성, 최소 비용을 의미한다.

 

4) Total Length는 IP프로토콜 헤더에 계속되는 데이터도 포함한 IP패킷의 전체 길이, 전체 데이터 그램 길이로 Byte단위로 작성한다.

 

5) Identification는 호스트가 연속적으로 전송하는 각 데이트 그램을 식별학 위한 번호다.

 

6) Flags는 IP데이터 그램이 분할(fragment)에 관한 정보를 나타낸다.

첫번째 비트는 사용하지 않고 두번째 비트는 뒤에 같은 identification이 없고 마지막 이라는 것을 의미 세번째 비트는 뒤에 같은 identification이 있다는 것을 의미한다. flags는 데이터 그램이 분할 되었는지 안되었는지에 대한 정보를 나타내는것이 아닌 뒤에 오는 패킷에 나랑 같은 패킷이 있는지 없는지 즉, 마지막 패킷인지 아닌지만 구분한다.

3비트 모두 0은 flagment가 된 적이 없다는 것을 의미한다.

 

7) fragment offset은 각 프래그먼트의 원데이터에 있어서의 위치를 바이트 수로 나타내는 것을 의미한다

예를 들어 identification이 10이고 길이가 100 인 패킷이 있다. 전송중에 패킷이 A와 B 2개로 나눠졌다.

A패킷의 Idendtification은 10 이고 길이는 50으로 시작 비트는 1 flagment는 001이 된다.

B패킷의 Idendtification은 10 이고 길이는 50으로 시작 비트는 51 flagment는 010이 된다.

 

만약 A패킷의 Idendtification은 10 이고 길이는 60으로 시작 비트는 1 flagment는 001이고, B패킷의 Idendtification은 10 이고 길이는 50으로 시작 비트는 51 flagment는 010인 경우에는 메모리에 맞는 패킷들어올 때까지 패킷 정보가 계속 쌓인다. 맞지 않는 패킷들을 계속 보내 메모리에 stack하여 네트워크가 되지 않게 하는 공격이 있다. 이를 예방하기 위해 방화벽에서 패킷의 offset정보를 전부 가지고 있어 맞지 않는 offset이 온다면 패킷을 버린다. 

패킷의 순서가 바뀌어서 들어올때 구분하는 방법은 OS상의 설정에 따라 다르다. 패킷을 버릴 수도 있고 버퍼링할 수도 있다.

 

8) TTL(Time To Live)

Gateway를 통과할때마다 1씩 줄어들어 0이 되면 폐기된다. 라우팅 과정에서 무한 루프에 빠지는 것을 방지하기 위해 사용한다. OS마다 지정 방식은 다르다.

 

9) Protocol Type

데이터에 포함되는 상위 프로토콜의 종류를 표기한다.

ICMP = 1
TCP = 6
UDP = 17

 

10) Header checksum

IP 프로토콜 헤더 자체의 내용이 바르게 교환 되는지에 대한 점검을 수행하게 한다. Network Layer 통신에 대한 보장을 하지 않기 때문에 Header만 보고 데이터는 보지 않는다.

 

11) Source 및 Destination IP Address

발신지 및 수신지의 IP Address를 나타낸다.

 

 

2. IP헤더 분석

Flags와 Fragment offset부분이 잘못되어 수정했다.

Flags는 3bit, Fragment offset은 13bit로 값을 분별할 수 없기 때문에 두개를 같이 적은 후(예시에 40 00) Flags의 bit와 Fragment offset의 값을 적어준다. 참고로 Flags는 000인 경우와 010인 경우 둘다 Do not fragment로 구별이 불가능 하여 해석을 뒤에 적어준다.

반응형

'교육 > Netwrok' 카테고리의 다른 글

Day 60 (Network Layer)  (0) 2020.02.13
Day 60 (TCP_2)  (0) 2020.02.13
Day 59 (TCP_1)  (0) 2020.02.12
Day 58 (Wireshark)  (0) 2020.02.11
Day 58 (패킷)  (0) 2020.02.11