>  기사  >  운영 및 유지보수  >  TCP 데이터 세그먼트 헤더 형식

TCP 데이터 세그먼트 헤더 형식

齐天大圣
齐天大圣원래의
2020-12-19 14:15:193540검색

TCP 헤더의 각 필드의 의미를 이해하면 TCP 프로토콜을 더 명확하게 이해할 수 있습니다. TCP 헤더에는 고정된 20바이트가 있으며 그 이후에는 선택적 옵션이 있습니다. TCP는 32비트(4바이트)로 정렬됩니다.

TCP 데이터 세그먼트 헤더 형식

원본 포트와 대상 포트: TCP는 포트 번호를 통해 애플리케이션 프로세스 간에 통신합니다.

일련번호: 32비트를 차지합니다. 일련번호의 범위는 0~(2^32-1)입니다. 일련번호가 2^32-1이 되면 다음 일련번호는 다시 0부터 시작됩니다. 메시지 세그먼트의 시퀀스 번호가 1001이고 길이가 100바이트인 경우 다음 메시지 세그먼트의 시퀀스 번호는 1101입니다.

확인번호: 32자리. 확인번호는 수신된 패킷을 확인하는데 사용됩니다. A가 B에게 메시지 세그먼트를 보내고 A의 시퀀스 번호는 101이고 메시지 세그먼트 길이는 100바이트인 경우 B는 메시지 세그먼트를 수신한 후 확인 메시지 세그먼트를 A에게 보내야 합니다. 이 확인 메시지의 확인 번호는 다음과 같습니다. 단락은 201입니다. 다음과 같은 공식이 있습니다.

확인 번호가 N+1이면 시퀀스 번호 N 위치까지의 모든 데이터를 수신했다는 의미입니다.

Data offset: 이 필드는 tcp 헤더의 길이를 나타내며 4비트를 차지하며 단위는 4바이트입니다. 따라서 TCP 헤더의 최대 크기는 60바이트입니다.

6개의 제어 비트: 각 제어 비트는 1비트만 차지합니다.

  • UGR: 긴급 필드입니다. 값이 1이면 이 세그먼트에 긴급 데이터가 포함되어 있으므로 먼저 전송되어야 함을 의미합니다. 이 필드는 나중에 언급되는 비상 포인터와 함께 사용해야 합니다.

  • ACK: 확인 필드입니다. 이 필드는 연결을 설정하고 연결을 끊을 때 사용되며 데이터 전송 단계는 항상 1입니다.

  • PSH: 푸시 필드. 값 1은 푸시 플래그가 있는 데이터를 나타내며, 이는 세그먼트를 수신한 후 수신자가 해당 세그먼트를 버퍼에 대기시키는 대신 가능한 한 빨리 애플리케이션에 전달해야 함을 나타냅니다.

  • RST: 연결 필드 로그를 재설정합니다. 호스트 충돌이나 기타 이유로 인해 잘못된 연결을 재설정하는 데 사용됩니다. 또는 불법적인 메시지 세그먼트를 거부하고 연결 요청을 거부하는 데 사용됩니다.

  • SYN: 동기화 필드. 연결을 설정할 때 사용됩니다.

  • FIN: 종료 필드. 연결을 해제할 때 사용됩니다.

Window: 16비트. 창 값은 [0, 2^16-1] 범위의 정수입니다. 이는 허용되는 바이트 수를 나타내는 허용 창을 나타냅니다. 예를 들어 B는 A에게 확인 메시지 세그먼트를 보냅니다. 메시지 세그먼트의 확인 번호는 101이고 창 값은 1000입니다. 이는 B가 수락하는 다음 메시지 세그먼트 번호는 101이어야 하며 메시지 세그먼트의 길이는 101이어야 함을 의미합니다. 1000바이트를 초과할 수 없습니다.

Checksum: 16비트. 메시지 세그먼트에 오류가 있는지 확인하는 데 사용됩니다.

긴급 포인터: 16비트. 이 필드는 URG 필드가 1인 경우에만 관심이 있습니다. 비상 데이터의 길이를 나타냅니다

관련 권장 사항: "linux 비디오 튜토리얼"

위 내용은 TCP 데이터 세그먼트 헤더 형식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.