Re[3]: Максимальная длина TCP пакета в сети
От: Pzz Россия https://github.com/alexpevzner
Дата: 10.02.20 17:01
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>При работе сессии — от сервера к клиенту может передаваться результат вычислений (пакет данных — сериализованных — размером до 10 KBytes).

AG>Все остальные пакеты — относительно небольшие — от 10 байт до примерно 1...3 KByte.
AG>Пакеты в 1...3 KByte — это JSON (они следуют от клиента к серверу).
AG>Они определяют — что должен считать алгоритм бизнесс-логики на сервере.

Термин "пакет" в контексте разговоров о сети несколько перегружен. Я бы использовал "блок" или что-нибудь в этом роде.

AG>Тем не менее, исходный пакет вполне себе разбивается на небольшие фрагменты (что лично меня несколько удивило).

AG>В общем — пришлось доработать так, чтобы была сборка пакета из фрагментов.

TCP, логически — это поток байтов. И когда ты отправляешь, скажем, 10 килобайт, то прийти они могут одним куском, а могут произвольным количеством кусков. Но в любом случае, они придут в том же порядке, в котором были отправлены.

Если тебе нужно, логически, пересылать данные блоками, с сохранением границ блоков, то надо предусмотреть какой-то свой механизм. Например, перед каждым блоком передается его длинна.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.