как определить клиентскую или серверную повторную передачу от pcap

Я пытаюсь получить некоторое разъяснение по поводу чего-то, что я считал здесь:

как вычислить потерю пакетов из двоичного файла TCPDUMP

В первом ответе говорится, что порядковый номер будет тем же от клиента к серверу, и от сервера до клиента ack был бы тем же, и это скажет Вам, какая сторона делает ретранслирование. Однако, когда я произвожусь, такие как это:

10:58:15.317823 IP 1.2.3.4.50245 > 5.6.7.8.443: Flags [P.], seq 3040268:3040385, ack 56380, win 32768, length 117
10:58:15.317841 IP 1.2.3.4.50245 > 5.6.7.8.443: Flags [P.], seq 3040385:3040470, ack 56380, win 32768, length 85
10:58:15.550090 IP 1.2.3.4.50245 > 5.6.7.8.443: Flags [P.], seq 3040268:3040470, ack 56380, win 32768, length 202
10:58:15.811131 IP 1.2.3.4.50245 > 5.6.7.8.443: Flags [P.], seq 3040268:3040470, ack 56380, win 32768, length 202
10:58:16.133386 IP 1.2.3.4.50245 > 5.6.7.8.443: Flags [P.], seq 3040268:3040470, ack 56380, win 32768, length 202

В этом примере первые 2 строки имеют различные порядковые номера и тот же ack, но это - пакет от клиента к серверу, поэтому какая сторона, делающая, является ретранслированием здесь?

В последних 3 строках и порядковые номера и acks являются тем же, поэтому как Вы знаете, какая сторона ретранслирование является пакетом? Обратите внимание, что в этом примере 1.2.3.4 клиент, и 5.6.7.8 сервер.

0
задан 13 April 2017 в 15:14
1 ответ

Это повторные передачи от клиента к серверу. Вот что происходит:

  • Клиент отправляет 2 сегмента. Один со 117 байтами и один с 85 байтами (пакеты 1 и 2)
  • Клиент ждет подтверждения от сервера, которое никогда не приходит
  • Примерно через 200 мс таймер повторной передачи клиента истекает, поэтому он использует репакетизацию и объединяет оба предыдущие сегменты в один сегмент размером 202 байта (pkt 3)
  • Клиент сбрасывает свой таймер повторной передачи, который истекает, поскольку ACK не получен, поэтому он повторно передает (pkt 4)
  • Клиент увеличивает таймер, снова ждет, таймер истекает, и он повторно передает (pkt 5)

Мы знаем, что это повторные передачи от клиента, потому что все пакеты отправляются от клиента к серверу. Мы знаем, что это повторная передача, потому что порядковый номер один и тот же, т.е. он отправляет одни и те же данные снова и снова.

1
ответ дан 4 December 2019 в 17:02

Теги

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