Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/35: Рейтинг темы: голосов - 35, средняя оценка - 4.54
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26

Быстрая передача udp пакетов

19.11.2014, 14:08. Показов 7531. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задача передать udp пакеты, как можно быстрее. Точнее, данные 1024*768 байт должны передаваться за 5 мс, сейчас добился скорости в 17мс, размеры пакетов могут быть любыми (сейчас 512). Каким образом можно ускорить передачу в 3 раза? Каким способом осуществляется асинхронная передача пакетов?
Использую Visual Studio 13, на windows 7, библиотека winsock2.h
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2014, 14:08
Ответы с готовыми решениями:

UDP отправка и прием пакетов
Вообщем такая ситуация. Отправляю пакеты объемом по 1 кБайту, пачками по 32 через определенное время (маленькое). Вообщем около 8000...

Передача/прием UDP пакетов stm32f107vct6
Добрый день. Возникла такая нетривиальная задача: общение с ПК посредством UDP пакетов. Общение хаотичное, в основном плата шлет на ПК...

Передача с микрофона в udp и прием из udp на динамик
Собственно каким образом осуществить передачу данных с микрофона в сеть и прием из сети данных вывести на звуковое устройство. проект...

28
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
19.11.2014, 19:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от WeDZminxxx Посмотреть сообщение
У платы есть ip, mac и порт,
Откуда известно, где физически в сети находится этот mac адрес? Тем более если отппавлять по ip, то сначала посылается запрос, плата отвечает, что это её адрес и ему соответствует такой то mac и уже на этот мак идёт весь трафик для платы. И даже если отправлять на mac, коммутатор не знает, на каком его порту (не ip порту, на разъёме) этот mac сидит, пока с него не придёт хотябы один пакет. То есть пока плата не вышлет исходящий. Поэтому коммутатор, получив mac адрес назначения, равный адресу платы разошлёт пакет сразу всем, без ответа он выдержит максимальную паузу. 1 мегабит из тысячи так легко получить. А 300 из тысячи как? Топить остальную сеть?

Добавлено через 1 минуту
.................
0
19.11.2014, 19:09

Не по теме:

WeDZminxxx, не обращай на него внимание. Он не всегда уверен в своих убеждениях.

0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
19.11.2014, 19:11
Цитата Сообщение от WeDZminxxx Посмотреть сообщение
я забиваю arp таблицу вручную,
Это какой же коммутатор это позволяет?
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
19.11.2014, 19:20  [ТС]
переменная b - нужна для номера кадра, ее половинки надо поменять местами - узнал это когда пакет wireshar-ком проверил(почему-то при компановке структуры с++ меняет местами половинки)
первый if - для определения последнего пакета, он одним словом отличается от других
второй if на самом деле такой(не помню почему вынес в отдельную переменную)
C++
1
if (send(my_sock, (char*)&rtp[ii * max_kk + kk], (width_1 + 20), 0 ) == SOCKET_ERROR)
Цитата Сообщение от castaway Посмотреть сообщение
Отправляешь по 2048 байт
не совсем понял.
rtp - массив структур packet размером 768*2, каждый элемент (20 + 512) байт, за раз отправляю один элемент массива по номеру ii * max_kk + kk - размером (width_1 + 20), где width_1 = 512

Полное изображение не пробовал(даже когда отправляю строку, а не половину, скорость падает)

Я отправляю 100 кадров, на каждый и колебания времени отправки кадра от 16 - 18 ms, если при этом увеличить mtu на максимум(9KB насколько помню) - то колебания от 15 до 30 ms(среднее 21ms)

Добавлено через 4 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
Это какой же коммутатор это позволяет?
Bash
1
2
netsh interface ipv4 add neighbors \"Local Area Connection\" 192.168.1.100 00-23-20-21-22-23
arp -s 192.168.1.100 00-23-20-21-22-23 192.168.1.101
добавят нужные записи в arp таблицу в windows

Можно подробней, про то где находится коммутатор в прямом соединении сетевой карты компьютера и ПЛИС с портом RJ45?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
19.11.2014, 19:49
Цитата Сообщение от WeDZminxxx Посмотреть сообщение
Изображение в градациях серого, от 0 до 255, что требует 8 бит.
То есть всего 256 градаций.

Добавлено через 5 минут
Цитата Сообщение от WeDZminxxx Посмотреть сообщение
проверил(почему-то при компановке структуры с++ меняет местами половинки)
Не c++, а процессор. Есть разные порядки байт в словах, слов в двойных словах и двойных слов в четверных словах. Кроме того, есть ещё смешанные порядки байт в двойных словах и четверных словах. Процессор использует один порядок, а в протоколе порядок другой.
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
19.11.2014, 19:56  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
То есть всего 256 градаций.
Да, 8b'00000000 - 0, 8b'11111111 - 255

Добавлено через 6 минут
Цитата Сообщение от taras atavin Посмотреть сообщение
Не c++, а процессор.
Я не разбирался кто именно, просто возникла проблема по которой пришлось менять местами половины слов
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
19.11.2014, 19:58
Удобные расширения формата tif предназначены специально для того, чтоб вызывать сбои и случайные ошибки прикладных программ.
И одна из проблем в нём именно в том, что он разрешает обо порядка байт. От языка не зависит.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
19.11.2014, 20:31
WeDZminxxx, да, в сети есть свой порядок байт, отличный от разных архитектур, и он всегда одинаковый.

Добавлено через 4 минуты
WeDZminxxx, единственный вариант увеличения производительности я вижу только в коде. Следует оптимизировать именно его.
0
28 / 5 / 1
Регистрация: 18.11.2014
Сообщений: 68
19.11.2014, 21:10
попробуй zmq или ещё какую-нибудь либу для low latency. http://zeromq.org/area:faq
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2014, 21:10

Быстрая отправка пакетов
Здравствуйте. Полез в сокеты, простое клиент-серверное приложение написал, всё работает, подключение есть, но когда пытаюсь отсылать пакеты...

Прием пакетов по UDP
Приветствую. С сетевыми протоколами раньше дела не имел. Начал сразу к практике приступать. Хотел посмотреть, как вообще реализовать...

Потери UDP пакетов
Всем здравствуйте...Столкнулся со следующей проблемой. Попытался передать довольно большой файл по сети UDP пакетами размером в пару сотен...

Потери UDP пакетов
Всем привет. Моя работа заключается в настройке IP_TV. Довольно часто люди жалуются на зависание картинки. Хотелось бы узнать побольше...

Прием UDP пакетов
Здравствуйте. Сразу скажу, никогда не имел дело с сокетами, тем более с UDP. Сервер у меня на python и с ним проблем никаких нет, клиент...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru