![]() |
|
Модераторы: feodorv |
![]()
|
|
| Аркадийй |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.10.2010 Репутация: нет Всего: нет |
Интересует сабжект. Ситуации такие:
1) есть серверная программа и клиентская которая симулирует 190 подключений к серваку. каждый клиент шлёт 15 раз в секунду пакеты по 15 байт по udp, и принимает столько же от сервака. при 190 клиентах трафик получается такой: -входящий 0.3 Mb/s -исходящий 0.3 Mb/s. и проблема в том что всё ограничивается на 190 клиентах, если делать больше то пакеты с пингом от некоторых клиентов не доходят и их выкидывает с сервака. предположение моё такое: тк очень много маленьких пакетов то очень часто приходится обращатся к сетевой карте, а это вроде не дешёвая операция. 2) есть удалённый сервер с которым болшой пинг: 150мс. с ним коннектится та же клиентская программа, но теперь всё ограничивается 64 клиентами. Предположение: на пути до удалённого сервера есть какой то тормозной узел из за которого происходит перегрузка сети и udp пакеты удаляются. Правильны ли мои догадки? Интересуют мнения разбирающихся людей. Это сообщение отредактировал(а) Аркадийй - 25.10.2010, 15:48 |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: нет Всего: 39 |
1. Пакеты именно "теряются" на сетевом интерфейсе? Даже снифер не видит их? Это маловероятно, три тысячи пакетов в секунду - это не много. Сама программа их теряет? Значит неправильно запрограммирована часть работы с сетью.
2. Если канал узкий и слабый, вполне возможно. Мнение человека, не то что бы сильно разбирающегося, но участвовавшего в разработке железки-флудилки, по результатам чего выяснилось, что линупс на весьма хреновеньком железе отечественного производства начинал терять маленькие пакеты при частоте генерации их в районе 40к (предел 100мбит-полосы для таких пакетов - около 90к). -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| Аркадийй |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.10.2010 Репутация: нет Всего: нет |
сниффером не проверял но не должен видеть их по идее. пакетов 6 тысяч, ещё же сервер отправляет.
программа их не может терять, они отправляются но не доходят, для udp это нормально. подозрительно что при такой маленькой частоте пакетов. файерволлов нет. |
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
Попробуйте поиграть размерами буферов приема/передачи с помощью setsockopt()
Скорее всего буфер сервера не справляется.....а может и у клиента что.... |
|||
|
||||
| Аркадийй |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 25.10.2010 Репутация: нет Всего: нет |
Олег2005, не, это не помогает. не в этом дело.
|
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
||||
|
||||
| ATAMAN200 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 26.9.2010 Репутация: нет Всего: нет |
Может при формированние пакетов надо увелить их время жизни.
Если передача осуществляется по физической линии из железа то вполне реально что пакеты не дожидаются своей очереди на каком то хабе. Это всего лиш моё предположение |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |