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

С++ под Linux

Войти
Регистрация
Восстановить пароль
 
boskh
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 16
#1

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

18.11.2016, 12:56. Просмотров 482. Ответов 4
Метки нет (Все метки)

День добрый!

Написал свое первое простое клиент-серверное приложение (клиент отправляет дату, используя 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. - Сети
Особенности передачи данных по протоколу ТСР и UDP. помогите ответить на этот вопрос

Поиск исходников программы передачи UDP пакета - C#
Доброго времени суток! Такой вопрос, есть ли у кого программа передачи UDP пакета с исходниками для разбора? ничего в этом не понимаю, но...

UDP. Как реализовать возможность передачи разного количества данных? - C++
Здравствуйте. Возник такой вопрос: Есть UDP приемник #pragma comment (lib, "ws2_32.lib") #include "stdafx.h" #include <winsock2.h>...

Разработать библиотеку процедур для приёма-передачи данных по сети на основе протокола UDP - C++
Здравствуйте. Вот задание. Разработать библиотеку процедур для приёма-передачи данных по сети на основе протокола UDP и текст для её...

UDP дает маленьку скорость.. - Сетевое оборудование
Может и не здесь обсуждают эти вопросы... но все же! протестировали udp и получилось,что скорость получается маленькая,чем tcp и...

Скорость передачи данных - Жесткие диски
Ребят задам очень глупый вопрос. Просьба не закидывать камнями. Предположим имеется NAS-сервер с поддержкой пропускной способности сети1...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
grgdvo
550 / 486 / 138
Регистрация: 02.09.2012
Сообщений: 1,430
18.11.2016, 14:46 #2
Передавайте данные большими порциями.
boskh
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 16
18.11.2016, 19:14  [ТС] #3
Передаю в цикле 20-50 пакетов, если больше, то идут потери.
На сервере когда начинаю замерять время прихода между соседними пакетами, то средняя скорость поступления не более 10Мб
Humanoid
Почетный модератор
9835 / 3833 / 164
Регистрация: 12.06.2008
Сообщений: 11,460
18.11.2016, 21:45 #4
Цитата Сообщение от boskh Посмотреть сообщение
На сервере когда начинаю замерять время прихода между соседними пакетами, то средняя скорость поступления не более 10Мб
Какой размер пакета? Например, если вы передаёте дату (пакеты по 10 байт), то 10 Мбит/с - это более 100 тысяч пакетов в секунду. На мой взгляд скорость вполне приличная. Если вы хотите получить бОльшую скорость, то вам уже выше предложили передавать данные большими порциями... например, по 1 КБ.
boskh
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 16
18.11.2016, 21:55  [ТС] #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);
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2016, 21:55
Привет! Вот еще темы с ответами:

Скорость передачи данных - C++
Нужно определить скорость передачи данных по сети. Используется TCP соединение. есть какие-либо предложения по этому поводу?

Реализовать UDP hole punching для прямой передачи информации между двумя компьютерами, находящимися за NAT - C#
Хочу реализовать UDP hole punching для прямой передачи информации между двумя компьютерами, находящимися за NAT. Пока пытаюсь проверить в...

Скорость передачи SFP-10GBase-SR - Cisco
Добрый день! Наблюдается следующая проблема - два коммутатора соединены оптическим кабелем. Коммутаторы: 2960 3560 В обоих...

Скорость передачи информации собакой - Математика
Представьте, что вы научили свою собаку, сенбернара Берни, приносить вам коробку с тремя 8-миллиметровыми магнитными лентами вместо бутылки...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.11.2016, 21:55
Ответ Создать тему
Опции темы

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