Клиент отправляет RST после 3way рукопожатия, когда сервер слушает на 80, изменить порт это нормально

Я пишу настроенный HTTP-сервер на основе SocketAsyncEventArgs (C#) вместо коммерческого программного обеспечения. Когда сервер прослушивает порт 8080/12345... все в порядке. Но только на порте 80 это выглядит так, когда браузер запускает соединение с HTTP-запросом:

  • 2785: [SYN] Seq = 0 Win = 8192 Len = 0 MSS = 1460 WS = 4 SACK_PERM = 1
  • 2786: [SYN, ACK] Seq = 0 Ack = 1 Win = 8192 Len = 0 MSS = 1460 WS = 256 SACK_PERM = 1
  • 2787: [ACK] Seq = 1 Ack = 1 Win = 65700 Len = 0
  • 2788: [RST] Seq = 1 Win = 65536 Len = 0
  • 3538: HTTP 767 GET /push_push.do?imei=356708041124742&simno=4600230... бла-бла

Обратите внимание, что когда клиент отправляет HTTP-запрос, такой как "socket.Send(http_bytes);", TCP-сообщения № 2788 [RST] и № 3538 [обычный HTTP-запрос] отправляются последовательно.

========================

Пожалуйста, дайте мне совет о:

  • Как получается [RST] и как его избежать?
  • Почему порт прослушивания влияет?

0 ответов

Другие вопросы по тегам