Как исправить буферную пустоту без потери пакетов?

Я только что установил SQM QoS на свой Linksys E4200 (V2), чтобы исправить некоторые, откровенно говоря, ужасающие буферные пробки. Это, похоже, устранило проблему, однако теперь оно привело к потере плохих пакетов, которой раньше не было.

PS - сделайте любые ответы легкими для понимания сетевого новичка, я знаю только основы:)

1 ответ

Потеря пакетов является нормальным явлением для перегруженного канала и является наиболее широко известным сигналом перегрузки. SQM разумно использует интеллектуальную раннюю потерю пакетов, чтобы позволить машинам, отправляющим и получающим потоки TCP, обнаруживать перегрузку, чтобы их алгоритмы управления перегрузкой могли сработать. Bufferbloat был вызван разработчиками сетевого оборудования (ошибочно), которые считали, что потеря всех пакетов была плохой, и пытались чтобы избежать потери пакетов любой ценой.

Сегодня существует усовершенствование протокола TCP/IP, называемое явным уведомлением о перегрузке (ECN), которое позволяет сетевому оборудованию явным образом уведомлять устройства о перегрузке канала, не прибегая к старинному методу отбрасывания пакетов, чтобы сигнализировать о перегрузке. Все современные ОС поддерживают ECN, но не во всех по умолчанию он включен для всех подключений. Если вы включите ECN на всех стеках TCP/IP ваших устройств (и на стеках TCP/IP всех других серверов / одноранговых узлов / хостов, с которыми они общаются в Интернете), то ваше сетевое оборудование с поддержкой SQM сможет использовать ECN. помечать эти соединения вместо того, чтобы прибегать к старому проверенному методу отбрасывания пакетов, чтобы сигнализировать о перегрузке.

Способ включения ECN варьируется от ОС к ОС, но для Unix-подобных ОС обычно используется sysctl.

См. https://www.bufferbloat.net/projects/cerowrt/wiki/Enable_ECN/

Другие вопросы по тегам