Чрезмерная «TCP Dup ACK» и «Fast Retransmission TCP» вызывают проблемы в сети. Что вызывает это?

Я получаю чрезмерные TCP Dup ACK и Fast Retransmission TCP в нашей сети, когда я передаю fileы по каналу MetroEthernet. Эти два узла соединены одним маршрутизатором sonicwall, поэтому websiteы находятся всего в одном ходу.

Вот скриншот от wirehark, и вот весь захват. В этом захвате клиент равен 192.168.2.153, а server – 192.168.1.101. Здесь находится трассировка от моей системы к serverу (time ping обычно равно 10 мс):

user@pc567:~$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:e0:b8:c8:0c:7e inet addr:192.168.2.153 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::2e0:b8ff:fec8:c7e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:244994 errors:0 dropped:0 overruns:0 frame:0 TX packets:149148 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:319571991 (319.5 MB) TX bytes:12322180 (12.3 MB) Interrupt:16 user@pc567:~$ traceroute -n 192.168.1.101 traceroute to 192.168.1.101 (192.168.1.101), 30 hops max, 60 byte packets 1 192.168.2.254 0.747 ms 0.706 ms 0.806 ms 2 192.168.1.101 8.995 ms 9.217 ms 9.477 ms user@pc567:~$ 

Любая помощь в том, что вызывает это, будет полезна! Я могу разместить любые подробности.

UPDATE: с тех пор, как это началось, я заменил sonicwall маршрутизатором 1800 cisco. Пакет захвата с установленным был одинаковым. Поскольку это Ethernet-схема метро, ​​маршрутизатор не требуется. Поэтому я также попытался подkeyиться к ноутбукам непосредственно в оборудование поставщиков услуг на обоих websiteах и ​​разместить их в одной подсети. Захват пакетов выглядит так же, как и в этом случае. Это заставляет меня думать, что есть проблема с networkingю Ethernet Ethernet, хотя они продолжают говорить, что less ничего плохого, и все проходит нормально.

3 Solutions collect form web for “Чрезмерная «TCP Dup ACK» и «Fast Retransmission TCP» вызывают проблемы в сети. Что вызывает это?”

Просто сейчас опубликуем то, что я узнал. Поставщик MetroEthernet вышел в субботу в наш главный офис. Они отkeyили networking там, а также у кого-то в ближайшем филиале. Они подkeyили оборудование для тестирования сети на обоих концах и быстро смогли определить, что на самом деле проблема. Несколько часов спустя они смогли изолировать проблему. Это была проблема с медными линиями от центрального офиса провайдеров, до нашего главного офиса. Они сказали, что кадры опускаются, как сумасшедшие, что и вызывало повторные передачи. Они исправили проблему с помощью медной проволоки в своем центральном офисе (они сказали, что нужно раздвигать каждый провод, по одному за раз. Мне кажется, что BS), но после того, как они сделали это в своем центральном офисе, проблема была решена.

Я понимаю, что этот ответ упрощен, но не так ясен, как хотелось бы, поэтому, если у вас есть вопросы о шаге, спросите!

Прокручивая немного после открытия этого fileа в Wireshark, мы viewим несколько кадров разного colors. Выглядит очень плохо, не так ли? Ну, это не так уж плохо. Подожди, мы доберемся туда.

При проверке пакета SYN (фрейм 37) мы viewим SACK и Window Scaling в параметрах TCP. Хорошо. То же самое происходит в настройках SYN / ACK (фрейм 38), SACK и Windows. Потрясающие. Не вижу ничего странного в отношении SACK.

Оценка разгруженного RTT – это time между пакетом SYN и первым ACK (кадр 39). Это около 9,3 мс, что соответствует вашим выводам. Обратите внимание, что time между SYN / ACK и ACK (кадры 38 и 39) намного ниже, чем между SYN и SYN / ACK (37 и 38). Это означает, что этот file захвата берется в приемнике, и чтобы понять, почему это не идеально, нам придется вернуться в школу.

Между отправителем и получателем есть одна часть сетевого пути, которая является наименьшей, что ограничивает пропускную способность. Оценка RTT, которую мы получили от рукопожатия, дает нам оценку длины этого сетевого пути. Измерение количества пакетов, которые мы можем поместить в этот трубопровод, – это пропускная способность трубы или продукт задержки полосы пропускания – ПК [бит] = R [бит / с] * RTT [s], где R – наименьшая ширина полосы. Производительность трубы – это измерение объема.

Представьте себе садовый шланг. Измеряется ли его объем по длине и ширине таким же образом? Чтобы извлечь из него большую часть воды, она должна быть полностью заполнена водой, иначе будут воздушные зазоры, ограничивающие stream воды. Если нам удастся полностью заполнить его, он может переполняться. Мы можем использовать ведро, чтобы мы не стали влажными, и если ведро переливается, что не влияет на stream воды.

Оказывается, это точно так же в сетевом пути. Нам нужно заполнить трубу … Другими словами, мощность трубы – это наименьшие байты в полете (сколько воды у нас в трубе + ковш) между отправителем и приемником, который полностью использует наименьшую полосу пропускания (не вызывает воздушные промежутки). Поэтому, если байты в полете> ПК, тогда мы хороши!

Посмотрев статистику трассировки TCP -> TCP StreamGraph -> График последовательности времени (tcptrace), мы можем viewеть байты по оси Y и time на оси X. Производная этой кривой равна байтам / секунде или пропускной способности. Обратите внимание, что черная «линия» плоская, то есть пропускная способность стабильна! Он прерывается синими линиями пару раз (это rangeы SACK в дубликатах ACK), но, как viewно, это не влияет на пропускную способность.

Посмотрите, как нижняя правая серая сплошная линия (немного увеличить масштаб, это ACK) действительно близко к черным сегментам TCP? Время между сегментом TCP и ACK – это RTT, вот оно почти 0! Это означает, что в этом месте захвата не так много сегментов в полете. Это по очереди означает, что мы не можем использовать это для оценки байтов в полете, и именно поэтому захват боковых пакетов отправителя намного лучше.

Пакеты здесь естественно теряются до точки захвата. Каждый сегмент данных, который находился в полете во time потери, вызывает дублирование ACK. Поэтому мы можем использовать количество дублирующих ACK для оценки байтов в полете во time потери пакетов. Здесь мы viewим около 9, 16 и 23 сегментов. Каждый сегмент имеет 1448 байт данных, поэтому он дает нам байты в полете между 13k и 33k. Пропускная способность здесь составляла около 3 Мбит / с (от graphика ввода-вывода ) и с измеренным RTT до того, как мы получим пропускную способность канала меньше 3e6 [бит / с] * 10e-3 [с] / 8 байтов = 3750 байт или менее 3 сегментов.

Поскольку байты в полете во time этих потерь на самом деле не одинаковы (трудно сказать здесь с таким количеством выборок), я не могу сказать, являются ли это случайными потерями (что плохо плохо) или убытками, возникающими из-за очереди / bucket overflows, но они происходят, когда байты в полете> ПК, поэтому пропускная способность не изменяется.

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

Глядя на захват, который вы предоставили (спасибо за это!) Я вижу довольно classический ретрансляционный паттерн к началу. Вы можете уviewеть его вокруг пакета 50. Отсутствует пакет между 51 и 52. Что происходит:

  1. -> Данные пакета 50
  2. <- пакет 51 ACK пакета 50.
  3. -> Данные пакета 52
  4. <- пакет 53 ACK пакета 50.
  5. -> Данные пакета 54
  6. <- пакет 55 ACK пакета 55.

Пакет данных был сброшен, и приемник указывает это, продолжая ACK пакет до того, что он viewел до сих пор. Интересно, что обе стороны имели TCP SACK Permitted Option = True установленный, когда они согласовали connection, поэтому пакет 55 должен иметь header SACK в нем, а это не так. Выборочные подтверждения позволяют получателю указать «Я viewел все до 51, но также и 53-55», что уменьшает количество повторных передач, необходимых для восстановления до полной скорости.

То, что происходит, так как не может использовать SACK, заkeyается в том, что он возвращается к стандартным методам повторной передачи TCP, повторяя «Я viewел до 50», пока другая сторона не выяснит это и не повторит все 50 и более поздних версий.

Существует повторная передача в пакете 66, за которой сразу следует ACK до пакета 56. После второй повторной передачи (пакет 72) connection возвращается на дорожку.

Во-первых, похоже, что заголовки SACK получаются отkeyенными от sonicwalls, что предотвращает восстановление ретрансмиттов так быстро, как они обсуждались. Лично я считаю, что снятие SACK бессмысленно, но другие могут не согласиться.

Из того, что я могу сказать об этом захвате, вы наблюдаете случайную потерю пакетов, из-за чего TCP-соединения проходят обычные нормальные протоколы повторной передачи. Брандмауэры мешают, поскольку метод ретрансляции, с которым обе стороны договорились, не разрешается.

  • Расшифровать весь трафик с помощью wirehark
  • Захват локального трафика в Windows Server 2008 R2
  • Как записывать SIP-трафик / вызовы для будущего аудита?
  • Не удается подkeyиться к SQL Server, и Wireshark ничего не слышит
  • Windows Server Firewall (2012) Проблемы с туннелем Ipsec
  • Обнуление пакетов определенных двоичных fileов / приложений / идентификаторов processов?
  • Исходные и целевые пакеты на Wireshark относительные или абсолютные?
  • Каковы кабели / ящики, предназначенные для прослушивания на кабеле RJ45?
  • Проблема с WireShark (MySQL sniffing)
  • Wireshark (WinPCap) не viewит, как Intel X520-DA2 10 GbE NIC объединяется с перерывами
  • обнаружение processа доступа к сети ip на serverе Windows 2012 R2
  • Interesting Posts

    Внутренний server php не отображается внешне из amazon aws

    Как использовать подстановочные знаки с qmhandle

    Сохранение исходного URL-адреса субдомена в адресной строке с поддоменами подстановочных знаков

    Слишком много операций ввода-вывода, генерируемых процессом сбора статистики postgres

    Как я могу предотвратить замораживание старого Sun PC, когда его keyboard отkeyена?

    Использование телеbackgroundа в качестве мыши для отkeyенного пользователя

    случайно установил Windows sbs2008 в качестве резервного диска как восстановить раздел

    Как остановить скрипт после определенного максимального времени?

    Как запустить icinga с apache vHost?

    installation SNMP в Windows x32 Индиviewуальное image

    Можете ли вы установить несколько certificateов SSL в IIS?

    Каковы все флаги в ответе?

    прерывание коалесценции для захвата пакетов с высокой пропускной способностью?

    Существуют ли какие-либо сильные, хорошо протестированные и общепринятые кукольные рецепты-базы, которые будут использоваться в качестве отправной точки для настройки?

    Возможно ли сконфигурировать CDN, чтобы он стал недоступным для подмножества региональных IP-адресов?