[그림 1: TCP Header]
출처 : 정보통신기술용어해설
- Sourse / Destination Port Number : IP주소 + 포트 번호 = 소켓 주소. 양쪽 호스트 내 종단 프로세스 식별
- Sequence Number : 바이트 단위로 구분되어 순서화 되는 번호. 이를 통해 TCP 에서는 신뢰성 및 흐름제어 기능 제공.
- 순서 가능 범위 : 32비트이므로 최대 4기가 바이트 크기의 송신 데이터에 순서화된 일련번호를 붙일 수 있음
- 순서 번호 의미 : 송신했지만 아직 확인 응답되지 않은 세그먼트의 첫번째 바이트에 대해 부여된 번호. 즉, TCP 각 세그먼트의 첫 번째 바이트에 부여되는 번호.
- 초기 순서 번호(ISN, Initial Sequence Number) : 초기 TCP 연결설정을 위함. 난수 발생기로 초기 순서 번호 생성하고 이를 순서 번호 필드에 넣어 보냄. TCP는 양방향이므로 각 방향 마다 다른 ISN 번호가 사용된다.
- Acknowledgement Number : 수신하기를 기대하는 다음 바이트 번호 = (마지막 수신 성공 순서 번호 + 1)
- 헤더 길이 필드 (Header Length, HLEN) : TCP 헤더 길이를 4바이트 단위로 표시
- 6개의 Flag Bit (URG, ACK, PSH, RST, SYN, FIN) : TCP 세그먼트 전달과 관련되어 TCP 회선 및 데이터 관리 제어 기능을 하는 플래그. 흐름제어, 연결설정, 연결 종료, 연결 리셋, 데이터 전송 모드
- Window Size : 흐름 제어를 위해 사용되는 16비트 필드. TCP 흐름제어를 위해 송신자에게 수신자 자신의 버퍼 여유 용량 크기를 지속적으로 통보해주는 기능을 함. 수신 측에 의해 능동적으로 흐름제어를 수행하게 됨/
- CheckSum : TCP 또는 UDP 실제 헤더 이외에도 발신, 수신 IP 주소 및 프로토콜 ID 등을 추가하여 전체 패킷에 대해 체크섬을 계산.
- Urgent Pointer : TCP 세그먼트에 포함된 긴급 데이터의 마지막 바이트에 대한 일련번호.
- Options : 최대 40바이트까지 옵션 데이터 포함 가능