TCP 헤더 구조
TCP 혜더
TCP 헤더는 세그먼트가 정확하게 전송되고 수신되도록 제어하는 데 필요한 정보를 포함합니다.
또한, 세그먼트의 시작 부분에 위치하고, TCP 헤더는 가변 길이로 최소 20바이트의 크기를 가집니다.
TCP 헤더 구조
TCP 헤더는 다음과 같은 필드들로 구성되어 있습니다.
송신지 포트 : 송신 호스트의 포트 번호를 나타냅니다 (16비트)
수신지 포트 : 수신 호스트의 포트 번호를 나타냅니다 (16비트)
시퀸스 번호(SEQ) : 세그먼트의 첫 번째 바이트의 시퀸스 번호를 나타냅니다 (32비트)
확인 응답 번호(ACK) : 수신 측이 다음으로 기대하는 바이트의 SEQ 번호를 나타냅니다 (32비트),
ACK 플래그가 설정된 경우에만 유효합니다.데이터 오프셋 : TCP 헤더의 길이를 32비트 워드 단위로 나타냅니다.
최소 값은 5 (5 * 4바이트 = 20바이트)이며, 옵션 필드가 포함될 경우 더 길어집니다 (4비트)예약 영역 (Reserved) : 미래 사용을 위해 예약된 필드입니다.
항상 0으로 설정됩니다 (4비트)컨트롤 비트 (Flags) : TCP 세그먼트의 상태 및 제어 정보를 나타냅니다 (9비트).
주요 플래그는 다음과 같습니다.
URG : 긴급 포인터 필드가 유효함을 나타냅니다.
ACK : 확인 응답 번호 필드가 유효함을 나타냅니다.
PSH : 수신 측에 데이터를 즉시 상위 계층으로 전달할 것을 요청합니다.
RST : 연결을 재설정합니다.
SYN : 연결 설정을 시작합니다.
FIN : 연결을 종료합니다.윈도우 크기 : 송신 측이 수신할 수 있는 수신 윈도우의 크기를 나타냅니다 (16비트)
체크섬 : 세그먼트의 무결성을 검사하는 값입니다 (16비트)
긴급 포인터 : 긴급 데이터의 끝을 나타냅니다.
URG 플래그가 설정된 경우에만 유효합니다 (16비트)옵션 + 패팅 : 다양한 TCP 옵션을 포함할 수 있으며, 가변 길이입니다.
주로 연결 설정 시 사용됩니다. 또한 헤더의 길이를 32비트 단위로 맞추기 위해 사용됩니다.
옵션
대표적인 옵션들은 다음과 같습니다.