Встала проблема отличить пакеты, подтверждающие приход пакета данных.
До сих пор думал что после 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Спспб.
По размеру.
>По размеру.Сколько рекомендуете? уменя так и было (до 74 байт), но чето закралось подозрение что туда далеко не все попадает.
Т.е. однозначно по флагам нельзя?
Я внимательно посмотрел лог wireshark, все дата-пакеты имели ACK==1 && PSH==1, а подтверждающие ACK==1 && PSH==0
Может вот так (ACK==1 && PSH==0) надежно?