Во всех TCP-пакетах установлен флаг PSH — кто/что будет за это отвечать?

Во всех TCP-пакетах установлен флаг PSH — кто/что будет за это отвечать?

На TCP-потоке сервер->клиент все пакеты от сервера имеют установленный флаг PSH. Является ли старый добрый Nagle ответственным за установку этого флага?

решение1

Флаг push ( PSHили P) устанавливается хостом-отправителем. Если отправляющее приложение использует запись или отправку 100 байт, каждый пакет будет иметь PSHустановленный. Если отправитель отправляет 2000 байт, он будет отправлен двумя пакетами, и второй будет иметь флаг PSH, предполагая стандартный размер кадра 1500.

Флаг push указывает принимающему хосту, что полученные данные следует немедленно передать принимающему приложению.

решение2

Установка Push Flag обычно контролируется не отправляющим приложением, а отправляющим уровнем TCP. Большинство современных стеков TCP/IP устанавливают бит PSH в конце буфера, предоставленного send() .

Источник: Уменьшение задержки для TCP за счет отсутствия ожидания флага Push

решение3

Постоянная установка бита P — это стандартное правильное, но неэффективное поведение, которое можно увидеть в старых стеках TCP.

Связанный контент