Назад | Перейти на главную страницу

Фиксированный размер полезной нагрузки TCP

У меня есть приложение, которое должно иметь фиксированный (516 байтов) размер полезной нагрузки в пакете TCP. Само приложение не может быть изменено, чтобы настроить его параметры, поэтому мне нужно настроить размер буфера TCP ОС ....

Насколько я знаю, размер буфера TCP (SO_SNDBUF) может быть настроен так, чтобы «автонастройка» не пыталась включить больше данных в пакет.

Если я настрою SO_SNDBUF на 516, это будет только для полезной нагрузки или это повлияет на весь пакет (заголовок + полезная нагрузка)?

Если вы установите SO_SNDBUF на сокете на 516, ядро ​​удвоит его и предположит, что размер буферов должен составлять 1032 байта. Эти накладные расходы предназначены для структур ядра.

Если вы создаете буфер сообщений с 516 байтами, заполняете его, а затем вызываете send (), sendto () или write (), то эти 516 байтов будут автоматически отправлены по сети в виде одного пакета.