1. 패킷이란
데이터의 묶음 단위로 한번에 전송할 데이터의 크기를 나타냅니다.
데이터 전송 시 패킷을 분할하여 보내는 이유
- 분할하지 않고 한번에 보낼 경우 한 컴퓨터에만 데이터를 주고 받게 되고 다른 컴퓨터는 전송이 끝날 때 까지 기다릴 수 밖에 없다.
- 큰 데이터를 전송하다 중간에 에러가 발생하면 처음부터 다시 전송해야 하므로 효율적이지 않다
2. IP구조 (IPv4)

- Version : TCP/IP 제품은 Ipv4를 사용
- Header Length : IP헤드의 길이를 32비트 단위로 나타냄
- Type-of-Service Flages (TOS) : 서비스의 우선 순위를 제공

- Total Packet Length : 전체 IP패킷의 길이를 바이트 단위로 나타냄
- Fragment identifier : 분열이 발생한 경우, 조각을 다시 결합기 위해 원래의 데이터를 식별하기 위해서 사용
- Fragment Flags
- May Fragment : IP 라우터에 의해 분열되는 여부를 나타낸다. 플래그 0 - 분열 가능 1 - 분열 방지 플래그 0 - 마지막 조각, 기본값 1- 조각이 더 있음
- More Fragments : 원래 데이터의 분열된 조각이 더 있는지 여부 판단.
- Fragmentation Offset : 8바이트 오프셋으로 조각에 저장된 원래 데이터의 바이트 범위
- Time-to-live : 데이터를 전달할 수 없는 것으로 판단되어 소멸되기 이전에 데이터가 이동할 수 있는 단계의 수 (1에서 255사이의 값을 지정하며 라우터들은 패킷을 전달할 때 마다 이 값을 하나씩 감소시킴)
- Protocol Identifier : 상위 계층 프로토콜 (1 - ICMP / 2 - IGMP / 6 - TCP / 17 - UDB)
- Header Checksum : IP헤더의 체크섬을 저장, 라우터를 지나갈때 마다 재 계산을 하기 때문에 속도가 떨어짐
- Source IP Address : 출발지 IP주소
- Destination IP Address : 목적지 IP주소
- Options : Type-of-Service 플래그 처럼 특별한 처리 옵션을 추가로 정의 할 수 있음
3. TCP구조

- Source Port address : 데이터를 생성한 어플리케이션에서 사용하는 포트번호를 나타냄
- Well-known ports(0~1,023) : IANA에 의해 배정되고 제어된다.
- Dynamic Ports(49,152~65,535) : IANA에 의해 제어되거나 등록되지 않는다. 하지만 중복을 피하기 위해 IANA에 등록 될 수는 있다.
- Registered port(1,024~49,151) : IANA에 의해 배정되거나 제어되지 않는다. 어느 프로세스라도 사용 할 수 있으며 임시 포트이다. 클라이언트를 위한 임시 포트 번호는 이 영역에서 선택되도록 권고되고 있다.
- Destination Port address : 목적지 애플리케이션이 사용하는 포트 번호

- Sequence number
- 전송되는 데이터의 가상 회선을 통해 전송되는 데이터의 모든 바이트에는 고유한 일련 번호가 부여된다.
- 네트워크가 불안하여 패킷을 분실, 지연 등으로 세그먼트가 순서가 어긋나게 도착 할 수 있기 때문에 sequence number를 이용하여 데이터를 올바른 순서로 재배열할 수 있다.
- Acknowledgement number : 다음 세그먼트를 수신할 준비가 되었다는 사실을 알림, 모든 데이터가 수신되었다는 것을 나타내는 묵시적인 확인 메시지 역할을 함
- Header Lengh : 헤더의 길이를 32비트 단위로 나타냄
- Reserved : 차후의 사용을 위해서 예약된 6비트 필드이다.
- Control Flags : 6개의 서로 다른 제어 비트 또는 플래그를 나타냄
- Window size : 송신 시스템의 가용 수신 버퍼의 크기를 바이트 단위로 나타냄.
- Checksum : TCP 세그먼트의 내용이 유효한지 검증하고 손상 여부를 검사 할 수 있다.
참고:
https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-18편-IP-Header-IP헤더-구조?category=702276 [Mind Net]
https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-19편-TCP-Header-4계층-TCP-헤더-구조?category=702276 [Mind Net]