Как сегменты TCP разделены? - PullRequest
1 голос
/ 19 августа 2011

Я использовал WireShark для анализа протокола HTTP и обнаружил, что достаточно большой HTTP-запрос будет разбит на несколько TCP-пакетов, например: метод HTTP-запроса в виде пакета;Заголовки HTTP-запроса в виде пакета и HTTP-содержимое в виде пакета.
Мой вопрос таков: разделение сегментов TCP определяется протоколом верхнего уровня или каким-либо другим способом?

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Для HTTP вам может показаться интересной эта статья о том, как Google в основном использует свой HTTP-сервер, взаимодействующий с TCP, для проталкивания начальных сегментов без ожидания ответа.

http://blog.benstrong.com/2010/11/google-and-microsoft-cheat-on-slow.html

ИПроект RFC опубликован здесь:

http://tools.ietf.org/html/draft-hkchu-tcpm-initcwnd-01

0 голосов
/ 19 августа 2011

Протоколы верхнего уровня инкапсулированы внутри полезной нагрузки TCP. TCP, как и любой другой уровень, не знает о вышеуказанных уровнях. Пакеты TCP имеют максимальный размер (MTU: максимальная единица передачи), когда HTTP (или другим протоколам более высокого уровня) требуется больше места для передачи данных, полезная нагрузка будет разделена на разные сегменты TCP.

Ваша операционная система может изменять значения MTU. Например с Linux:

ifconfig eth0 mtu MTU_SIZE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...