2011-08-19 5 views
1

WireShark를 사용하여 HTTP 프로토콜을 분석 한 결과, 충분히 큰 HTTP 요청이 다음과 같은 여러 TCP 패킷으로 분해된다는 것을 알았습니다. HTTP 요청 헤더를 패킷으로, HTTP 내용을 패킷으로 사용합니다.
내 질문은 : TCP 세그먼트 구분 상위 계층 프로토콜 또는 다른 방법으로 결정 있습니까?TCP 세그먼트가 어떻게 분할 되었습니까?

+0

그것은 매우 복잡하지만, TCP 패킷 분할은 TCP 프로토콜 스택에 의해 제어됩니다. 구현하는 것은 무엇이든간에 언제 어떻게 tcp 패킷을 다음 하위 레벨 (일반적으로 IP 레이어)로 분할하고 라우팅 할지를 결정합니다. –

답변

0

상위 계층 프로토콜은 TCP 페이로드를 캡슐화하여 캡슐화됩니다. TCP는 다른 레벨과 마찬가지로 위의 레벨을 인식하지 못합니다. TCP 패킷의 최대 크기 (MTU : 최대 전송 단위)가 HTTP (또는 다른 상위 프로토콜)가 데이터를 전송하기 위해 더 많은 공간을 필요로 할 때 페이로드는 다른 TCP 세그먼트에서 분할됩니다.

운영 체제가 MTU 값을 수정할 수 있습니다. 리눅스와 예를 들면 : 당신은 구글이 기본적으로 자신의 HTTP 서버가 응답을 기다리지 않고 초기 세그먼트를 밀어 TCP와 상호 작용이 방법이 문서가 흥미있을 거라고 HTTP를 들어

ifconfig eth0 mtu MTU_SIZE 
관련 문제