Computer Science/Network

[Network] TCP header 형식

LeeJaeJun 2023. 12. 22. 23:28
728x90
반응형

- TCP header 형식

  • Source Port (16 bits): 송신자의 포트 번호를 나타냅니다.
  • Destination Port (16 bits): 수신자의 포트 번호를 나타냅니다.
  • Sequence Number (32 bits): 데이터 바이트의 순차 번호입니다. 데이터 전송의 순서와 완성성을 보장하기 위해 사용됩니다.
  • Acknowledgment Number (32 bits): 확인 응답 번호로, 수신자가 다음에 받고자 하는 데이터의 첫 번째 바이트의 순차 번호를 나타냅니다.
  • Data Offset (4 bits): TCP 헤더의 길이를 32-bit 워드 단위로 나타냅니다. TCP 헤더 이후에 있는 옵션 필드의 길이를 나타냅니다.
  • Reserved (6 bits): 예약된 비트 필드입니다. 현재는 0으로 설정됩니다.
  • Control Flags (6 bits): TCP 연결의 제어 정보를 나타내는 플래그들을 포함합니다. 주요 플래그로는 URG, ACK, PSH, RST, SYN, FIN가 있습니다.
    1. URG (Urgent): 이 플래그는 긴급한 데이터의 존재를 나타냅니다. URG 플래그가 설정되면, Urgent Pointer 필드가 유효해지며, 긴급 데이터의 위치를 나타냅니다. 일반적으로 TCP 연결에서는 긴급 데이터를 사용하지 않지만, 어플리케이션에서는 이를 활용할 수 있습니다.
    2. ACK (Acknowledgment): ACK 플래그는 확인 응답 번호(Acknowledgment Number) 필드의 유효성을 나타냅니다. TCP에서는 수신한 패킷을 확인하고, 상대방으로부터 데이터를 올바르게 받았음을 알리기 위해 ACK 플래그를 설정하는 패킷을 전송합니다.
    3. PSH (Push): PSH 플래그는 버퍼링된 데이터를 즉시 전송하도록 수신측에 요청하는 플래그입니다. 일반적으로 TCP는 데이터를 버퍼링하여 일정량이나 일정 시간 후에 전송하는데, PSH 플래그가 설정되면 버퍼링 없이 즉시 데이터를 전송합니다.
    4. RST (Reset): RST 플래그는 연결을 초기화하거나 오류 상태를 나타내기 위해 사용됩니다. 이 플래그가 설정되면 연결이 비정상적인 상태로 간주되며, 연결을 재설정하고 초기화하는데 사용됩니다.
    5. SYN (Synchronize): SYN 플래그는 TCP 연결 설정 과정에서 초기 순차 번호(Sequence Number)를 동기화하기 위해 사용됩니다. SYN 패킷을 보내는 측은 연결 설정 요청을 전달하며, 수신측은 SYN 패킷을 받고 초기 순차 번호와 함께 SYN-ACK 패킷을 보냅니다.
    6. FIN (Finish): FIN 플래그는 TCP 연결을 종료하기 위해 사용됩니다. FIN 패킷을 전송한 측은 데이터 전송이 완료되었음을 알리고, 연결을 종료하고자 합니다. 수신측은 FIN 패킷을 받으면 연결을 종료하기 전에 모든 데이터를 처리한 후 ACK 패킷을 보내고, 그 이후 FIN 패킷을 전송하여 연결 해제를 완료합니다.
  • Window (16 bits): 윈도우 크기로, 송신자가 수신자에게 수신할 수 있는 데이터의 양을 나타냅니다.
  • Checksum (16 bits): 오류 검출을 위한 체크섬 값입니다.
  • Urgent Pointer (16 bits): 긴급 데이터의 위치를 나타내는 포인터 값입니다.
  • Options (if any) and Padding: 선택적인 TCP 옵션 필드를 포함하며, 필요한 경우 추가 패딩이 포함됩니다.
  • Data: TCP 패킷에 포함된 데이터를 나타냅니다.
728x90
반응형

'Computer Science > Network' 카테고리의 다른 글

[Network] DNS  (0) 2023.12.22
[Network] UDP header  (1) 2023.12.22
[Network] TCP와 UDP  (1) 2023.12.22
[Network] Ping, RTT, ICMP  (2) 2023.12.22
[Network] ARP(Address Resolution Protocol)  (0) 2023.12.21