e_yejun
Jun_ : Pwn
e_yejun
전체 방문자
오늘
어제
  • 분류 전체보기 (240)
    • Profile (1)
    • Pwnable (54)
    • Reversing (14)
    • Network (7)
    • Forensic (10)
    • Embedded (4)
    • Android (2)
    • Web (18)
    • 알고리즘 (42)
    • 프로그래밍 (24)
    • 프로젝트 (6)
    • 1-day (7)
    • CTF (15)
    • 기타 (33)
    • 일기장 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • rev-basic
  • wargame
  • BOF
  • dvwa
  • 1-day
  • X86
  • how2heap
  • Heap
  • dreamhack.io
  • x64

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
e_yejun

Jun_ : Pwn

Network

[Network] IP Header 구조

2021. 7. 6. 22:06

IP(Internet Protocol)란?

 - 인터넷에 연결된 모든 장치들을 식별할 수 있도록 장비마다 부여되는 고유 주소이다. (각 장치의 주민등록번호와 같은 역할)

 - IPv4와 IPv6가 있으며 현재는 IPv4를 사용한다.

 - 32비트 방식으로 8비트씩 4자리, 각 자리는 온점으로 구분한다.

 

 

IP 헤더 구조

1. Version - 4bit

 - 현재는 IPv4를 사용한다. -> 4

 

2. IHL(Header Length) - 4bit

 - 32비트 단위로 IP 헤더의 길이를 나타낸다. 최소 5부터 15까지의 값이다.

 - 대부분의 IP 헤더의 길이는 20byte(4 * 5 = 20)이다. 

 

3. Type of Service (TOS) - 16bit

 - 패킷의 우선 순위를 제공한다. 

 

4. Total Length - 16bit

 - 패킷(IP헤더+데이터)의 전체 길이를 바이트 단위로 길이를 표시한다.

 - 최대값은 65,535

 

5. Identification - 16bit

 - 각 패킷을 식별하는 번호.

 - 분열이 발생할 경우, 조각을 다시 결합하고 원래 데이터를 식별하기 위해서 사용한다.

 

6. IP Plags - 3bit

 - 첫번째 비트 : 항상 0이다.

 - 두번째 비트(Don't fragment) : 분열 여부를 나타낸다. (0 : 분열 가능 / 1 : 분열 방지)

 - 세번째 비트(More fragment) : 원래 데이터의 분열된 조각이 더 있는지 판단한다. (0 : 마지막 조각 / 1 : 조각 더 있음)

 

7. Fragment Offset - 13bit

 - 조각나기 전 원래의 데이터그램의 8 바이트 단위의 위치를 나타낸다.

 

8. Time To Live (TTL) - 8bit

 - 데이터가 이동할 수 있는 단계의 수를 나타낸다.

 - TTL필드는 1에서 255 사이의 값을 가지며, 라우터들은 패킷을 전달 할 때마다 이 값을 하나씩 감소시킨다.

 

9. Protocol - 8bit

 - 상위 계층 프로토콜을 나타낸다. (1 : ICMP / 6 : TCP / 17 : UDP)

 

10. Header Checksum - 16bit

 - IP헤더의 체크섬으로 내용이 바르게 교환되고 있는가를 점검한다.

 - 라우터를 지나갈 때 마다 재계산을 하기 때문에 속도가 떨어진다.

 

11. Source IP Address - 32bit

 - 출발지 IP 주소

 

12. Destination IP Address - 32bit

 - 목적지 IP 주소

 

13. IP Option

 - 경로배정 및 보안 등 제어기능이 필요한 경우 4vyte 단위로 패딩하여 채워넣음. 가변적인 필드.

 

 

 

IP 헤더 C언어 구조체 구현

 

 

 

    'Network' 카테고리의 다른 글
    • [Network] UDP Header 구조
    • [Network] TCP Header 구조
    • [Network] Ethernet II 프레임 구조
    • [Network] ARP Header 구조
    e_yejun
    e_yejun
    정리노트 •_•

    티스토리툴바