|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Sergey Korolew 2:6053/1.2 10 Sep 2005 11:37:44 To : glebius@cell.sick.ru Subject : mpd <-> XP sp2 потеря пакетов --------------------------------------------------------------------------------
10 Сен 05 07:02, Gleb Smirnoff писал к Dmitry Sergienko:
GS> Это известно, но хотелось бы выяснить почему с windowing такие
GS> проблемы.
Хм. Обсуждалось десять раз уже. By design, из-за меняющейся latency канала
связи и оптимизации пакетирования в железе (в смысле упаковки нескольких мелких
пакетов в один крупный при передаче).
Замеряется время "пролета" пакетов в канале и от него высчитывается окно
передачи - количество пакетов, которые одновременно могут быть в транзите.
Если упростить: приняли ack от первого ушедшего пакета - выпускаем следующий.
Пакеты ack маленькие и оборудование упаковывает кучку ack-ов в один большой
пакет, который потом и сваливается на голову передатчика, сворачивая напрочь
мозги этому алгоритму. В результате окно передачи вырождается до единички -
единовременно допускается транзит только одного пакета, и пока ack на него
не получим - при попытке отправить следующий пакет будет ENOBUFS (no buffers
available). И все, самостоятельно вылезти из этой ямы уже практически
невозможно, только реконнект. disable windowing отключает весь этот
искусственный интеллект, заменяя его тупой передачей.
Особенно часто такая проблема встречается на радиоканалах. Самое главное что
стоит помнить - точно такой же алгоритм работает и на стороне клиента (XP,
2K3), поэтому полностью избавиться от проблемы не выйдет, но будет значительно
легче.
Всего наилучшего,
Sergey aka DS
--- GoldED+/W32 snapshot-2001.03.04
* Origin: Hету. Придумывать лень. (2:6053/1.2)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/2220432290e8.html, оценка из 5, голосов 10
|