Он будет разбит при попадании на сетевое устройство с меньшим MTU, чем размер пакетов. Большинство устройств Ethernet имеют 1500, но часто могут быть меньше, 1492, если этот Ethernet использует PPPoE (DSL) из-за дополнительной информации о маршрутизации, даже ниже, если добавляется второй уровень, такой как Windows Internet Connection Sharing. И дозвон обычно 576!
В общем, вы должны помнить, что TCP не является протоколом пакетов . Он использует пакеты на самом низком уровне для передачи по IP, но с точки зрения интерфейса для любого стека TCP это потоковый протокол, и он не требует предоставления вам отношения 1: 1 к физическим пакетам, отправленным или полученным. (например, большинство стеков будет хранить сообщения до истечения определенного периода времени, или будет достаточно сообщений, чтобы максимизировать размер IP-пакета для данного MTU)
Например, если вы отправили два «пакета» (дважды вызовите функцию отправки), принимающая программа может получить только 1 «пакет» (принимающий стек TCP может объединить их вместе). Если вы внедряете протокол типа сообщения через TCP, вы должны включить заголовок в начале каждого сообщения (или некоторый другой механизм заголовка / нижнего колонтитула), чтобы принимающая сторона могла разделить поток TCP обратно на отдельные сообщения, либо когда сообщение принимается в двух частях или при получении нескольких сообщений в виде чанка.