Форум программистов, компьютерный форум CyberForum.ru

Скорость передачи udp - C++ Linux

Восстановить пароль Регистрация
 
boskh
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 16
18.11.2016, 12:56     Скорость передачи udp #1
День добрый!

Написал свое первое простое клиент-серверное приложение (клиент отправляет дату, используя udp в качестве транспорта) и столкнулся с проблемой: при отправке с клиента пакетов максимальная скорость передачи составляет несколько Мб/с, поведение аналогичное у пинга (ping -i 0 -s 1300 x.x.x.x), хотя проверка iperf показывает на два порядка выше.
http://www.screencapture.ru/file/312CB0d9

Как добиться максимальной скорости передачи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2016, 12:56     Скорость передачи udp
Посмотрите здесь:

Поделитесь программой приема/передачи файла C++ Linux
Подскажите библиотеку для работы с UDP сокетами. C++ Linux
UDP и connect C++ Linux
C++ Linux Сокеты, UDP и обеспечение требуемого потока данных.
C++ Linux UDP, проверка CRC
Входной буфер UDP сокета C++ Linux
C++ Linux UDP и физическое отсоединение кабеля
C++ Linux UDP Broadcast Network is unreachable
C++ Linux Принять по UDP multicast медиа-поток MPEG2-TS
C++ Linux Сетевой чат UDP
C++ Linux UDP многопользовательское приложение
Остановка дочернего процесса после передачи SIGUSR2 C++ Linux

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grgdvo
500 / 441 / 119
Регистрация: 02.09.2012
Сообщений: 1,283
18.11.2016, 14:46     Скорость передачи udp #2
Передавайте данные большими порциями.
boskh
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 16
18.11.2016, 19:14  [ТС]     Скорость передачи udp #3
Передаю в цикле 20-50 пакетов, если больше, то идут потери.
На сервере когда начинаю замерять время прихода между соседними пакетами, то средняя скорость поступления не более 10Мб
Humanoid
Почетный модератор
 Аватар для Humanoid
9869 / 3764 / 147
Регистрация: 12.06.2008
Сообщений: 11,346
18.11.2016, 21:45     Скорость передачи udp #4
Цитата Сообщение от boskh Посмотреть сообщение
На сервере когда начинаю замерять время прихода между соседними пакетами, то средняя скорость поступления не более 10Мб
Какой размер пакета? Например, если вы передаёте дату (пакеты по 10 байт), то 10 Мбит/с - это более 100 тысяч пакетов в секунду. На мой взгляд скорость вполне приличная. Если вы хотите получить бОльшую скорость, то вам уже выше предложили передавать данные большими порциями... например, по 1 КБ.
boskh
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 16
18.11.2016, 21:55  [ТС]     Скорость передачи udp #5
Размер я задаю в аргументах при запуске клиентского приложение 1000-1300 байт

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Sending bucket of packets.
    for( int s=0; s<Count; s++ ) {
        randomizePktBuf();
        CPHp(pktBuf)->HDR = HDR_VAL;
        CPHp(pktBuf)->ID = ID;
        CPHp(pktBuf)->No  = s;
        CPHp(pktBuf)->Count = Count;
        CPHp(pktBuf)->PacketSize = pktLen;
        *(uint64_t*)(pktBuf+pktLen-sizeof(uint64_t)) = FTR_VAL;
 
        if( send( skt, pktBuf, pktLen, 0 ) != pktLen ) {
        perror( "Can not send data" );
        exit(7);
        }
Yandex
Объявления
18.11.2016, 21:55     Скорость передачи udp
Ответ Создать тему
Опции темы

Текущее время: 14:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru