LINUX.ORG.RU

Сообщения Ingvar2145

 

Рост количества потерь пакетов со временем.

 , ,

Я пишу udp с гарантией доставки, сейчас в программе нет нормального контроля перегрузки, но у меня есть буфер из 64 пакетов размером 1460 байт и переменная - число, которая отвечает за то, сколько пакетов можно положить в буфер, с начала она = 1. Я отправляю все пакеты из буфера, одновременно проверяя приходящие подтверждения. Если без потерь проходит весь текущий размер буфера, то я + 1. Если произходит потеря, то таймер заканчивается и все не подтверждённые пакеты отправляются заново. Ещё есть переменная которая увеличивается на 1 каждый раз когда заканчивается таймер и все пакеты приходится отправлять заново. 100 000 это количество пакетов которое надо передать через wifi.

ПРОБЛЕМА: я запускаю программу, скажем раз 10, потом открываю какие нибудь сайты и т.д. youtube например. И через некоторое время ~ 30 минут количество потерь в секунду резко увеличивается. Я делаю ifconfig wlp4s0 down && ifconfig wlp4s0 up и всё становиться сново нормально, причём с открытыми сайтами. Объясните мне почему так.

./cctest c 100000
client
Window  1 Speed    1 Error   1 ~ 1.4 KByte ~ 11.6 KBit
Window  4 Speed  279 Error  18 ~ 395.1 KByte ~ 3.2 MBit
Window  3 Speed  168 Error  18 ~ 237.9 KByte ~ 1.9 MBit
Window  1 Speed  936 Error  14 ~ 1.3 MByte ~ 10.9 MBit
Window  2 Speed  163 Error  18 ~ 230.8 KByte ~ 1.9 MBit
Window  1 Speed  453 Error  16 ~ 641.5 KByte ~ 5.3 MBit
Window  1 Speed  139 Error  18 ~ 196.8 KByte ~ 1.6 MBit
Window 14 Speed  536 Error  16 ~ 759.0 KByte ~ 6.2 MBit
ifconfig wlp4s0 down && ifconfig wlp4s0 up
./cctest c 100000
client
Window  1 Speed    1 Error   1 ~ 1.4 KByte ~ 11.6 KBit
Window 52 Speed 2666 Error   3 ~ 3.7 MByte ~ 30.9 MBit
Window 51 Speed 2532 Error   4 ~ 3.5 MByte ~ 29.4 MBit
Window 25 Speed 2517 Error   5 ~ 3.5 MByte ~ 29.2 MBit
Window 25 Speed 2525 Error   4 ~ 3.5 MByte ~ 29.3 MBit
Window 25 Speed 2528 Error   4 ~ 3.5 MByte ~ 29.3 MBit
Window 17 Speed 2680 Error   5 ~ 3.7 MByte ~ 31.1 MBit
Window 16 Speed 2454 Error   4 ~ 3.4 MByte ~ 28.5 MBit
Window 22 Speed 2702 Error   4 ~ 3.7 MByte ~ 31.3 MBit
Window 26 Speed 2722 Error   4 ~ 3.8 MByte ~ 31.6 MBit

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

Ingvar2145
()

Tcp в Linux

 , ,

Объясните пожалуйста связаны ли описатели(fd) сокета и соединения. И если да то как? Моё предположение сокет фильтрует пакеты и распределяет их по соединениям. Тогда как соединение их принимает от другого описателя(fd сокета)?

Ещё: если соединение отправляет данные через сокет, то откуда система знает что соединение хочет что-то отправить? Каждый раз проходится по всем соединениям? Или там используются таймеры?

Подразумевается что сокет = socket(), а соединение = connect/accept().

Ingvar2145
()

Почему не сходятся размеры пакетов?

 ,

Есть в Linux функция sendmsg. Я создал сокет с возможностью отправлять свой ip заголовок и udp. Я вызвал функцию с размером пакета 1500, возникает ошибка message too long и она не уходит пока я не понижаю размер до 1480. Но ведь максимальный mtu 1500? А в wireshark размер моих пакетов 1494, почему? Откуда ещё 14 байт?

Ingvar2145
()

Последний вопрос про идеи.

 , ,

Зачем нужен RUDP - обычный UDP, но с гарантией доставки? Что можно изучить после написания RUDP на С?

Ingvar2145
()

Идеи для программирования

 

Стоит ли писать свой Voice Chat или нет? Ведь таких программ уже много. Вообще нужны идеи для программ в которых нужен UDP.

Ingvar2145
()

Таблица из Git клиентов.

 ,

Я собрал практически всех Git клиентов в одну таблицу. Можете её дополнить.

NameLanguageGUI
Git Colapythonqt
Magit?terminal
Qlientc++qt
Klientc++qt
MeGitJava?
GitAheadc++qt
GitG??
UnGitjs?
FuGitIVEvimscript?
lazyGitgo?
Guitarc++qt
GitUI?terminal
Gigglecgtk+
Aurees??
Fiend??
Breezeshellterminal
Vinepythonqt
GitGuipython?
Gittyupc++qt
GitOnicpython?
GitNuroKotlin?
Glintrust?
Ingvar2145
()

RSS подписка на новые темы