У меня очень простой вопрос, ответ на который, как я хочу, найти невозможно. Предположим, у меня есть TCP-соединение между клиентом и сервером, и клиент сделал запрос на страницу, содержащую 2 файла. Мы предполагаем, что http-соединение сохраняется и с конвейером, поэтому 2 запроса на файлы отправляются в одном сегменте tcp от клиента к серверу. Теперь предположим, что файлы, которые нужны клиенту, имеют размер 4500 и 3000 байтов, а MSS tcp составляет 1460 байтов, потому что мы используем Ethernet, поэтому первый файл должен быть разделен на 3 сегмента по 1460 и один из 120, а второй файл разделен на 2 сегмента по 1460 и один из 80 (по крайней мере, это то, что происходит, если tcp отправляет только один файл). В этой ситуации, сколько сегментов отправит tcp? Первые 4 из первого файла и 3 из второго файла, или он сначала «объединит» 2 файла вместе, а затем отправит этот файл разделенным? Во втором случае у нас будет файл размером 7500, 5 MSS + 200 байт.
Я нигде не могу найти информацию об этой проблеме. Итак, в конце концов, мой вопрос, как выглядит шаблон сегментов, отправляемых tcp:
3 MSS -> 120 байтов -> 2 MSS -> 80 байтов Или 5 MSS -> 200 байтов
Я не могу понять, как tcp может отправить сегмент, содержащий байты двух разных файлов.