Что означает флаг TCP-пакета [P.] в выводе tcpdump?

Что означает флаг TCP-пакета [P.] в выводе tcpdump?

Если IP xxxx подключается к IP zzzz, используя флаг [P.] для пакета TCP, что именно означает этот флаг [P.]? Означает ли это, что xxxx отправляет какие-то данные на zzzz?

решение1

Что именно этот [П.] Флаг

Это флаг PUSH.

Tcpflags представляют собой некоторую комбинацию S (SYN), F (FIN), P (PUSH), R (RST), U (URG), W (ECN CWR), E (ECN-Echo) или `.' (ACK), или `none', если флаги не установлены.

ИсточникСтраница руководства TCPDUMP

Цель функции push и флага PUSH — проталкивать данные от отправляющего пользователя к принимающему пользователю. Она не предоставляет услугу записи.

Существует связь между функцией push и использованием буферов данных, которые пересекают интерфейс TCP/пользователь. Каждый раз, когда флаг PUSH ассоциируется с данными, помещенными в буфер принимающего пользователя, буфер возвращается пользователю для обработки, даже если буфер не заполнен. Если поступают данные, заполняющие буфер пользователя до того, как будет получен PUSH, данные передаются пользователю в единицах размера буфера.

Источник[PSH,ACK] захват Wireshark - Вопросы и ответы Wireshark

PSH и функция PUSH

Когда вы отправляете данные, вы TCPбуферизуете их. Так что если вы отправляете символ, он не отправит его немедленно, а подождет, чтобы посмотреть, есть ли у вас еще. Но, может быть, вы хотите, чтобы он пошел прямо по проводу: вот где вступает в дело функция PUSH. Если вы отправляете данные PUSH, ваш TCP немедленно создаст сегмент (или несколько сегментов) итолкатьих.

Но история на этом не заканчивается. Когда одноранговый TCP получает данные, он их естественным образом буферизуетэто не будет мешать приложению для каждого байта. Вот где PSHвступает в действие флаг. Если принимающий TCP видит флаг PSH, он немедленнотолкатьданные в приложение.

Нет API для установки PSHфлага. Обычно он устанавливается ядром при очистке буфера. Из TCP/IP Illustrated:

Этот флаг традиционно используется для указания того, что буфер на стороне, отправляющей пакет, был очищен в связи с отправкой пакета. Другими словами, когда пакет с установленным полем бита PSH покинул отправителя, у отправителя больше не было данных для отправки.

Но имейте в виду, что Стивенс также говорит:

Push (получатель должен как можно скорее передать эти данные в приложение —ненадёжно реализовано или не используется)

ИсточникРазница между флагами push и urgent в TCP, ответ поcnicutar

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