ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
872544 Топик полностью
fk0, легенда (20.09.2018 23:34, просмотров: 184) ответил Evgeny_CD на Любой адекватный коммутатор имеет вероятность потери пакета < 1 ppm, как правило сильно-сильно меньше. Вероятность битового сбоя на физическом уровне Ethernet 10^-12. Это вроде по стандарту так, но точно не скажу.
Вообще-то в IP-сетях, для начала, траффик регулируется... путём выкидывания пакетов. TCP так и работает, посылает как можно больше, перегружает сеть, и смотрит сколько (не)дошло, и подстраивает размер окна. Между континентами запросто единицы процентов траффика теряться могут. Из-за этого youtube и т.п. переносят сервера в Европу, а не смотришь прямо из США. В локальной сети конечно мало заметно, но, подумай, что делает коммутатор, или сетевая карта, если сеть занята и некуда деть пакет? Выкидывает. Что делает драйвер сетевой карты, если ядро не успевает обрабатывать? Тоже выкидывает. Или что делать драйверу, сетевой карте, всем узлам по дороге, если компьютер одномоментно вывалил в сокет мегабайт данных, например? В TCP оно постепенно увеличит скорость до максимально возможной, а в UDP вывалит всё сразу и половина сразу потеряется по дороге: сеть, допустим, везде 100 МБит/сек, с такой скоростью карта и выдала, и даже операционка буферизировала и ничего не потеряла, но ближайший маршрутизатор обслуживает не только этот компьютер, а десятки/сотни других, а входной порт на те же 100 Мбит/сек, и свитч через который всё будет проходить повыкидывает половину пакетов. Нет, конечно в ethernet есть flow control, но на него сильно полагаться нельзя в общем случае. Также в сетях топологически путей для траффика может быть больше одного и пакеты обгонять друг-друга могут если пойдут разными путями, или хуже того, дублироваться. TCP все эти проблемы решает, а с голым UDP решать должен автор прикладного ПО.
[ZX]