Как исправить буферную пустоту без потери пакетов?
Я только что установил 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/