LINUX.ORG.RU

сокеты теория


0

1

Одинаковая latency будет при пересылке через tcp сокет 90 байт и 900 или 1400 с учетом того что mtu стандартный 1500? То есть даже не задержка, а разница в скорости пересылки большого буфера и маленького, с учетом того что они оба помещаются в один пакет. Мне кажется разница должна быть не большая, но на деле получается в 20 раз.


По одному байту отдаешь в сокет или сразу всё? Ну и пруфлинк в виде кода, дампа и как это все подключено.

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

ansky ★★★★★
()
Ответ на: комментарий от ansky

В сокет отдаю сразу весь буфер, ну то есть либо 90 байт, либо 900. Данные туда летят со скоростью примерно 50 буферов в секунду. Передаю на внешний сервер, до него предварительно установлено соединение. По логам wireshark на посылающей машине видно что он передает эти буферы одиночными пакетами, алгоритм Нагеля вроде сюда не вмешивается и ничего не склеивается. Так что к 90 полезным байтам добавление 500 бесполезных в данном случае не должно существенно влиять на скорость. Хотя может оно там у провайдера или на других нодах буферы tcp склеиваются и реально он вместо 10 буферов передает 1. Но когда читаю из сокета на сервере, то там ровно столько же байт сколько я послал. Так что для меня данная ситуация не понятна.

sn1ln
() автор топика
Ответ на: комментарий от sn1ln

> примерно 50 буферов в секунду

То бишь при больших пакетах у тебя около 500 кбит/сек. Достаточно большая скорость, чтобы сработало бутылочное горлышко в виде adsl-модема или ограничения скорости на недорогом анлиме.

По логам wireshark на посылающей машине видно что он передает эти буферы одиночными пакетами

Ты что, алгоритм Нагля отключил? Это стоит делать, только при крайней нужде, если очень хорошо понимаешь стек и знаешь что хочешь получить. И вообще, не лучше ли тебе udp использовать и забить на некоторый процент потерь пакетов?

Хотя может оно там у провайдера или на других нодах буферы tcp склеиваются и реально он вместо 10 буферов передает 1

Это навряд ли, если только не быдлопровайдер с tcp-based-vpn, но это навряд ли. Это фантастика. Так не бывает.

ansky ★★★★★
()
Ответ на: комментарий от sn1ln

Да, и окно на передающей стороне какое и типичные задержки какие? А то может быть у тебя окно исчерпывается.

ansky ★★★★★
()

А какой в этом смысл? Зависит от конкретной реализации и настроек системы. Кому нужные гарантии городит велосипеды на udp.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.