Это отличный вопрос, и я действительно много на этом разбираюсь. Есть много «технически правильных» ответов, таких как 65k и 1500. Я много работал над написанием сетевых интерфейсов, и использование 65k глупо, а 1500 также может привести к большим неприятностям. Моя работа идет на множестве различного оборудования / платформ / маршрутизаторов, и, если честно, я начинаю с 1400 байт. Если вам НУЖНО больше 1400, вы можете начать продвигаться вверх, вероятно, вы можете перейти на 1450, а иногда и на 1480'ish? Если вам нужно больше, чем это, то, конечно, вам нужно разделить на 2 пакета, из которых есть несколько очевидных способов сделать ..
Проблема в том, что вы говорите о создании пакета данных и его записи через TCP, но, конечно, есть привязанные данные заголовка и т. Д., Так что у вас есть «багаж», который поднимает вас до 1500 или выше ... а также у многих аппаратных средств есть более низкие пределы.
Если вы «подтолкнете это», вы можете получить некоторые действительно странные вещи. Усеченные данные, очевидно, или отброшенные данные, которые я видел редко. Поврежденные данные также редко, но, безусловно, случаются.