Определение причины сброса TCP-соединений

390
Захар Joe

Таким образом, существует служба, которая прослушивает порт, и к нему подключается клиент (протокол TCP). Клиент и сервер время от времени пытаются «пинговать» друг друга. Например, это клиент, проверяющий связь с сервером:

00:34:04.343401 IP 192.168.1.10.57927 > myserver.com.mmcc: Flags [P.], seq 86470:86624, ack 6652727, win 4096, options [nop,nop,TS val 585141111 ecr 389969418], length 154 00:34:04.344196 IP myserver.com.mmcc > 192.168.1.10.57927: Flags [.], ack 86624, win 65535, options [nop,nop,TS val 389970019 ecr 585141111], length 0 00:34:04.344419 IP myserver.com.mmcc > 192.168.1.10.57927: Flags [P.], seq 6652727:6652833, ack 86624, win 65535, options [nop,nop,TS val 389970019 ecr 585141111], length 106 00:34:04.344467 IP 192.168.1.10.57927 > myserver.com.mmcc: Flags [.], ack 6652833, win 4092, options [nop,nop,TS val 585141112 ecr 389970019], length 0 

Но есть один специфический случай с мобильным / GSM интернет-провайдером, который недавно что-то изменил в своих настройках, и теперь то же самое соединение молча прерывается после менее чем 15 секунд (!) Простоя. Если вы продолжаете посылать пакеты туда-сюда каждую секунду, активно используя сервис, это все хорошо. Больше ничего не делайте, и в итоге обе стороны пытаются поговорить с другой и не получают ответа, что, конечно, происходит в произвольные моменты времени, но все в течение одной минуты после последнего действия:

на стороне клиента (первая строка повторяется с разницей времени только на 45 секунд):

00:44:57.224638 IP macpro.office.58180 > myserver.com.mmcc: Flags [P.], seq 99638:99792, ack 6984799, win 4096, options [nop,nop,TS val 585785321 ecr 389975387], length 154 00:45:03.319226 IP macpro.office.58180 > myserver.com.mmcc: Flags [R.], seq 99792, ack 6984799, win 4096, length 0 

сторона сервера (идет точно так же, а затем молчит):

23:59:37.369320 IP 192.168.1.3.fmpro-internal > my.gprs.network.com.27581: P 59596370:59596460(90) ack 21549606 win 65535 <nop,nop,timestamp 389985343 586356990> 23:59:37.369415 IP 192.168.1.3.fmpro-internal > my.gprs.network.com.27581: F 90:90(0) ack 1 win 65535 <nop,nop,timestamp 389985343 586356990> 23:59:38.288366 IP 192.168.1.3.fmpro-internal > my.gprs.network.com.27581: FP 0:90(90) ack 1 win 65535 <nop,nop,timestamp 389985352 586356990> 23:59:40.288991 IP 192.168.1.3.fmpro-internal > my.gprs.network.com.27581: FP 0:90(90) ack 1 win 65535 <nop,nop,timestamp 389985372 586356990> 23:59:44.290952 IP 192.168.1.3.fmpro-internal > my.gprs.network.com.27581: FP 0:90(90) ack 1 win 65535 <nop,nop,timestamp 389985412 586356990> 

Это происходит на разных серверах, расположенных в разных местах, и при тестировании с разными сервисами, которые поддерживают открытые соединения, а также с разными клиентскими машинами. Единственное, что общего между ними - это мобильный доступ в Интернет, который могут использовать только клиенты. Проблема возникает только тогда, когда она используется.

Поэтому вопрос в том, почему такое может происходить и что я могу сделать, чтобы понять, что на самом деле происходит.

1

0 ответов на вопрос