Наше соединение только с одним удаленным сервером через порт 80 через Интернет не работает должным образом. (Время от времени работает, а иногда нет)
Это должна быть какая-то потеря пакетов, потому что с другими клиентами проблем нет. Это просто происходит от одного клиента к удаленному серверу.
Обычно я сообщаю о потере пакетов с помощью команды ping, но удаленный сервер блокирует ICMP.
Я сделал двоичный файл TCPDUMP. Как я могу узнать, есть ли потеря пакетов?
захват производился на клиенте. у нас нет доступа ssh к удаленному серверу.
tshark
жестяная банка фильтр повторная передача, дублирующийся ACK, потерянный сегмент, ...
$ tshark -r file.pcap -q -z io,stat,1,\
"COUNT(tcp.analysis.retransmission) tcp.analysis.retransmission",\
"COUNT(tcp.analysis.duplicate_ack)tcp.analysis.duplicate_ack",\
"COUNT(tcp.analysis.lost_segment) tcp.analysis.lost_segment",\
"COUNT(tcp.analysis.fast_retransmission) tcp.analysis.fast_retransmission"
Вот пример результата:
IO Statistics
Interval: 1.000 secs
Column #0: COUNT(tcp.analysis.retransmission) tcp.analysis.retransmission
Column #1: COUNT(tcp.analysis.duplicate_ack)tcp.analysis.duplicate_ack
Column #2: COUNT(tcp.analysis.lost_segment) tcp.analysis.lost_segment
Column #3: COUNT(tcp.analysis.fast_retransmission) tcp.analysis.fast_retransmission
| Column #0 | Column #1 | Column #2 | Column #3
Time | COUNT | COUNT | COUNT | COUNT
000.000-001.000 0 0 0 0
001.000-002.000 0 0 0 0
002.000-003.000 0 0 0 0
003.000-004.000 0 0 0 0
004.000-005.000 0 0 0 0
005.000-006.000 0 0 0 0
006.000-007.000 1 2 1 0
007.000-008.000 3 1 0 0
008.000-009.000 0 0 0 0
009.000-010.000 1 0 1 0
010.000-011.000 0 0 0 0
011.000-012.000 0 0 0 0
012.000-013.000 0 0 0 0
013.000-014.000 1 0 0 0
====================================================================================
Вы можете измерить количество повторных передач пакетов от клиента к серверу, подсчитав количество повторяющихся порядковых номеров.
Повторные передачи пакетов от сервера к клиенту могут быть измерены путем подсчета повторяющихся номеров Ack.
Обратите внимание, что повторная передача вызвана не только полной потерей (= тайм-аут); если удаленная машина отклоняет пакет или пакет поврежден, локальная машина также должна повторно передать.