URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 3980
[ Назад ]

Исходное сообщение
"TCP ACK - как отличить подтверждающие пакеты от пакетов данн..."

Отправлено gapsf2 , 19-Сен-08 08:18 
Встала проблема отличить пакеты, подтверждающие приход пакета данных.
До сих пор думал что после TCP-handshake происходит так:
  клиент                       сервер
        <-пакет №12 с данными (ACK == 0)
пакет подтверждения прихода пакета №1 (ACK == 1)->
        ...
        <-пакет №23 с данными (ACK == 0)
пакет подтверждения прихода пакета №23 (ACK == 1)->
           ...
          пакет №11  сданными (ACK == 0)->
  <-пакет подтверждения прихода пакета №11 (ACK == 1)

Т.е. я считал, что пакеты клиента, подтверждающие приход пакетов от сервер имеют
установленый ACK флаг, а пакеты с данными имеют неустановленный флаг.
Однако, практика показала другое - Wireshark показал что за всю SMTP-сессию ACK не установлен только у первого TCP SYN-пакета, а все остальные  - да.
Че та я не врубаюсь - что тагда понимается под приоритезацией ACK-ов и как на практике их отличить от остального?

Курил это: "Optimization of TCP/IP Traffic Across Shared ADSL"
http://www.adsl-optimizer.dk/thesis/main_final_hyper.pdf

Спспб.


Содержание

Сообщения в этом обсуждении
"TCP ACK - как отличить подтверждающие пакеты от пакетов данн..."
Отправлено Romik , 19-Сен-08 12:58 
По размеру.

"TCP ACK - как отличить подтверждающие пакеты от пакетов данн..."
Отправлено gapsf2 , 19-Сен-08 15:09 
>По размеру.

Сколько рекомендуете?  уменя так и было (до 74 байт), но чето закралось подозрение что туда далеко не все попадает.

Т.е. однозначно по флагам нельзя?
Я внимательно посмотрел лог wireshark, все дата-пакеты имели ACK==1 && PSH==1, а подтверждающие ACK==1 && PSH==0
Может вот так (ACK==1 && PSH==0) надежно?