Intereting Posts
разделить содержимое определенного столбца Когда я пытаюсь запустить комментарий, я получаю ошибку `Команда не может быть найдена, потому что '/ usr / bin' не входит в переменную среды PATH ' Сообщение об ошибке «дата: неверная дата» 2016-10-16 » такое же шифрование с / etc / shadow Какой вызов перед вилкой? Совместимость с Legacy Xorg fonts.alias больше не работает Mac эквивалентное приложение "shortcat" Внезапная ошибка picocom: неверная скорость передачи Некоторое недоразумение в основах установки Linux Mint Легкий способ отображения Ctrl + Shift + Alt + J вниз как копировать и переименовывать файлы с помощью «:» и увеличивать число в имени файла Как выяснить, какие изменения в каких файлах выполняет данная команда или даже перехватывать их? несоответствие версии kmod-VirtualBox в Fedora 22 Является ли `–reflink = auto` безопасным для установки по умолчанию для cp? перенаправление std-вывода и std-ошибки

Делает ли / proc / net / udp все капли, которые происходят между подключением Ethernet и моим приложением?

/proc/net/udp в Linux имеет столбец «drop»:

 cat /proc/net/udp sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops 16151: 00000000:CB53 00000000:0000 07 00000000:00000000 00:00000000 00000000 1000 0 39947169 2 ffff88084c108080 0 

Если счетчик капель равен 0 для определенного сокета, могу ли я быть уверенным, что любые капли, которые происходят между отправителем законного пакета UDP и приложением, произошли за пределами моего поля , скажем, в каком-то коммутаторе или маршрутизаторе и т. Д.?

Или может быть так, что, например, мой драйвер NIC молча удалил пакет по любой причине, не влияя на счетчик?

Я знаю, что на пакетах Windows могут упасть даже несмотря на то, что в буфере приема еще много места, но не уверен, что в Linux существует нечто подобное.

Нет.

Пакеты могут быть потеряны до того, как они будут декомплексированы в пользовательские сокеты.

Это происходит, когда ядро ​​по какой-то причине не может достаточно быстро считывать пакеты с сетевой карты.

Сетевые карты не учитывают пакеты, потерянные для каждого порта. По крайней мере, это не обязательно, и я не считаю, что что-то подобное интегрировано в число сокетов в /proc/net/udp .

Есть документ 2015 года, в котором подробно описываются падения пакетов, я не знаю, понравится ли вам это. https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf

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

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

Буфер также имеет ограниченные размеры, и если пакеты переполняют буфер, они также будут потеряны.

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

Таким образом, в то время как статистика отражает отброшенные пакеты из буферов, они не будут учитывать все пакеты, потерянные при передаче.

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

Переход на верхний уровень, а именно на уровне приложения, а именно DNS или NTP, например, могут быть дополнительные элементы управления для получения более значимых характеристик службы.

От UDP – Википедия

UDP использует простую модель передачи без установления соединения с минимальным протокольным механизмом. Он не имеет диалога установления связи и, следовательно, предоставляет программе пользователя любую ненадежность базового сетевого протокола. Нет гарантии доставки, заказа или дублирования защиты. UDP предоставляет контрольные суммы для целостности данных и номера портов для адресации различных функций в источнике и получателе дейтаграммы.

Связать поток в переполнении стека Как контролировать свободное пространство Linux UDP-буфера?