Color
@Color
Golang SWE, Cloud & DevOps

Как подтвердить получение TCP пакета данных и начать передавать?

Я-сервер. Устанавливаю соединение через 3 way handshake, затем начинаю получать данные от клиента:
IP header
  |-Version 		: 4
  |-IP Header Length 	: 5
  |-Type of Service 	: 0
  |-Identification 	: 26888
  |-TTL 		: 64
  |-Flag 		: 2
  |-Offset 		: 0
  |-Protocol 		: 6
  |-IP Chechsum 	: 54121
  |-Source Address 	: 127.0.0.1
  |-Dest. Address 	: 127.0.0.1

TCP header
  |-Source Port 	: 37987
  |-Dest Port 		: 8000
  |-Sequence Number 	: 568308831
  |-Acknowledgement 	: 1354809856
  |-TCP offset 		: 5
  |-TCP flag 		: 24 (PSH ACK)
  |-Window 		: 43690
  |-Checksum 		: 65144
  |-Urgent Pointer 	: 0

Data : 
GET mysite.com?addr=index.html HTTP/1.1
Host: 127.0.0.1:8000
Accept-Encoding: identity


Затем отвечаю ему ACK пакетом, смещение в Acknowledgement на длину полученных данных - 96 (возвращает len(), видимо с символами перевода каретки и пр.)

IP header
  |-Version 		: 4
  |-IP Header Length 	: 5
  |-Type of Service 	: 0
  |-Identification 	: 2
  |-TTL 		: 64
  |-Flag 		: 2
  |-Offset 		: 0
  |-Protocol 		: 6
  |-IP Chechsum 	: 15564
  |-Source Address 	: 127.0.0.1
  |-Dest. Address 	: 127.0.0.1

TCP header
  |-Source Port 	: 8000
  |-Dest Port 		: 37987
  |-Sequence Number 	: 1354809856
  |-Acknowledgement 	: 568308927
  |-TCP offset 		: 5
  |-TCP flag 		: 16 (ACK)
  |-Window 		: 53270
  |-Checksum 		: 17592
  |-Urgent Pointer 	: 0

Data is empty


но клиент снова и снова присылает мне свои данные! Как перестать беспокоиться и начать жить принимать пакеты и начать отправлять? (вопрос в том, как донести до клиента, что я все принял и больше не надо)
  • Вопрос задан
  • 2745 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Вроде всё правильно. Покажите уже наконец дамп сессии из-под
sudo tcpdump -i lo -X -v port 8000
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы