TCP

Основная трудность реализации TCP в том , что в отличии от arp, udp пакетов тут все построено на TCP соединениях. То есть это не разовые пакеты, а целый протокол взаимодействия :
открыл соединение / послал / принял / закрыл соединение.
И таких соединений обычно несколько одновременно с браузера приходит.


Стандартный обмен пакетами

-> syn seq=x,fig
<- syn , ack seq=y, ack=x+1
-> ack seq=x+1, ack=y+1
.....
<- fin,ack seq=y, ack=x+1
-> fin,ack seq=x+1, ack=y+1

Вообще говоря от всех параметров , передаваемых в tcp пакетах приличная каша в мозгах. Что надо понимать при изучении трафика TCP пакетов?

Сегмент - просто в TCP протоколе пакеты называются сегментами.

MSS - максимальная длина сегмента может быть 1460 байт .

Размер окна (Window size) - если размер окна получателя равен 16384 байта, то отправитель может отправить 16384 байта без остановки. В LWIP смотрим параметр TCP_WND. От него зависит размер окна , которое отвечает клиенту сервер в пакете (SYN). То есть мы (сервер) указываем клиенту (браузеру) сколько байт мы может принять за раз, а потом дай нам отдохнуть.

Window Scale - (только для SYN).

RTT круговое время передачи по сети