Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 1958
Благодарности: 306

Профиль | Отправить PM | Цитировать


Весь смысл работы сети - передать пакет и получить ответ как можно за более короткое время, среда передачи и время формирование пакетов одно и то же в Ethernet если рассматривать например такой вариант: какая сеть будет работать быстрее т.е. байт/сек

1. 100 пакетов по 1400байт (в среднем) и подтверждение о приеме каждого переданного задержка из пункта А в Б примерно 250ms, при сбойном повторяем передачу этого сбойного, тем самым уменьшаем пропускную способность сети

2. 100 пакетов по 1400байт (в среднем) но выталкиваем их все сразу, т.е. пока первый идет до адресата мы уже выталкиваем второй, далее третий .... далее 10, т.е. можем не ждать пока первый дойдет до адресата (т.е. за этот интервал в 250ms сколько сможем столько и вытолкнем), подтверждение приходит на n-пакетов сразу, задержка из пункта А в Б примерно 250ms, при сбойном повторяем именно тот пакет который плохой, т.е. если в ста вагонах 26 плохой то повторим только 26.

Одна проблема при втором варианте - при получение данных устанавливается окно приема в Win7 оно теперь не ограниченно, в XP 64К. Представьте себе вы передаете данные в вашей программе, т.е. блок данных не будет обслужен пока не получит подтверждение, ваша программа оперирует очень маленькими объемами данных но в реальном времени и их не надо накапливать для одной большой передачи их нужно сразу отослать, но при перекачке файлов лучше использовать большие блоки для передачи, потому что результат нужен только в самом конце передачи когда на сервере или у клиента произойдет его сборка файла и он клиент сможет запустить полученный файл.

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

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

Так что нюансов много. Это все на пальцах, на деле сложнее.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:01, 09-10-2009 | #5