Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331

Udp

23.12.2015, 15:10. Показов 2058. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При передаче некоторого количества байт по протоколу udp я же могу предсказать сколько байт отправится за один раз функцией send() - на клиенте и сколько байт прочитается одним вызовом recv - на сервере верно?? Ведь это же не потоковый протокол как tcp а передача датаграм.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2015, 15:10
Ответы с готовыми решениями:

UDP чат
Здравствуйте, с C++ знаком около недели, но нужно сделать сетевой чат по UDP. По разным мануалам сделал вот что. Код сервера. //...

udp socket
Вобщем Как узнать что udp порт открыт? tcp обязан ответить на соединение, но udp не принимает соединение, и по моему он не обязан отвечать....

UDP Winsock
Всем привет вот могу тока сделать функцию для отссылки на UDP сервер сообщение int PORT = 7777; AnsiString SERVERADDR =...

11
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
24.12.2015, 10:40
Цитата Сообщение от yura91 Посмотреть сообщение
При передаче некоторого количества байт по протоколу udp я же могу предсказать сколько байт отправится за один раз функцией send()
Если запись достаточно медленная, то скорее всего в 98% случаев будет записано столько же сколько указан в send размер буфера
Цитата Сообщение от yura91 Посмотреть сообщение
и сколько байт прочитается одним вызовом recv - на сервере верно??
да достаточно простая ситуация, с одной стороны отправвили 1024байта, на другой стороне ждите 1024 байта
0
Задачи выполнил, ушёл
27 / 30 / 7
Регистрация: 16.10.2015
Сообщений: 345
27.12.2015, 03:17
UDP капитально отличается от TCP.

UDP не имеет уязвимости тройного квитирования как у TCP.
UDP быстрый протокол, не нагружает сеть, сетевую карту и процессор.
UDP простой протокол, он прозрачный для понимания и использования.
UDP надёжный протокол, при условии, что вы правильно организовали механику обмена данными, а TCP может подвиснуть, если что-то пойдёт не так.
UDP мультиадресный, он может отправлять пакеты на несколько компьютеров и получать пакеты от нескольких компьютеров, потому что ему не надо устанавливать логическое соединение. UDP - это связь один ко многим, вместо TCP - у которого связь один к одному.
UDP имеет минимальную задержку, необходимую для игр или VoIP, что уменьшает пинг, в отличие от TCP.
UDP позволяет отправлять несколько пакетов подряд и они не будут объединены в один общий, как в TCP.
UDP позволяет создать на своей основе свой собственный протокол, более мощный, чем даже TCP.

Спасибо за то, что пользуетесь UDP)
1
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
27.12.2015, 15:00
noname664, все круто, только вот это чушь:

UDP быстрый протокол, не нагружает сеть, сетевую карту и процессор.
При передаче сопоставимых объемов данных нагрузка будет примерно одинаковой с TCP.

и это тоже под сомнением:
Цитата Сообщение от noname664 Посмотреть сообщение
UDP надёжный протокол, при условии, что вы правильно организовали механику обмена данными, а TCP может подвиснуть, если что-то пойдёт не так.
Так можно сказать: не делай в TCP "что-то не так", и ничего не будет виснуть.
0
Задачи выполнил, ушёл
27 / 30 / 7
Регистрация: 16.10.2015
Сообщений: 345
27.12.2015, 21:47
При передаче сопоставимых объемов данных нагрузка будет примерно одинаковой с TCP.
Так можно сказать: не делай в TCP "что-то не так", и ничего не будет виснуть.
Вам не понравился UDP?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
27.12.2015, 22:11
Нравится/не нравится - это не профессионально.
У обоих протоколов есть и сильные, и слабые стороны, для каких-то задач
лучше подходит TCP, для других UDP. А из сообщения #3 можно сделать
неверный вывод, что UDP априори лучше.
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
27.12.2015, 22:13
нам пофиг в общем.
УДИПИ - протокол с недостоверной доставкой. а дальше сами решайте.
0
Задачи выполнил, ушёл
27 / 30 / 7
Регистрация: 16.10.2015
Сообщений: 345
28.12.2015, 01:25
Нравится/не нравится - это не профессионально.
У обоих протоколов есть и сильные, и слабые стороны, для каких-то задач
лучше подходит TCP, для других UDP. А из сообщения #3 можно сделать
неверный вывод, что UDP априори лучше.
Сильные стороны UDP я перечислил, а какие сильные стороны у TCP.
Я не говорю, что TCP плох во всём, а говорю, что UDP лучший во многом.

Добавлено через 5 минут
У обоих протоколов есть и сильные, и слабые стороны, для каких-то задач
лучше подходит TCP, для других UDP.
Это стандартный общий ответ, не раскрывающий сути.
Но давайте не будем голословны), а составим список плюсов TCP и сравним их со списком плюсов UDP.

Добавлено через 24 минуты
И ещё...
На UDP работают все игры, и игровые сервера по нему раздают игровые файлы.
На этом протоколе работают голосовые программы.
На нём работает DHCP и DNS.
Google разработал протокол QUIC на базе UDP для браузеров взамен браузерных TCP-сессий, но он пока ещё слишком новый и мало распространён.
uTorrent работает на UDP.

TCP вытесняется UDP.
TCP имеет уязвимости, уязвимость тройного квитирования, всего 32-х разрядный счётчик пакетов, из-за чего при передаче большого объёма данных номера пакетов начнут часто повторяться, это старый протокол, он просто устарел.

Убежденный, Вы наверно часто работали с TCP, а UDP наверно особо не использовали.

Добавлено через 13 минут
UDP быстрый протокол, не нагружает сеть, сетевую карту и процессор.
Блин, точно, я слегка преувеличил, извини(. Он не может вообще не нагружать, некоторая нагрузка конечно есть. Вот здесь я лоханулся и даже не заметил. Я собою снова недоволен .
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.12.2015, 01:43
Цитата Сообщение от noname664 Посмотреть сообщение
Сильные стороны UDP я перечислил, а какие сильные стороны у TCP.
Гарантия доставки данных целостно и в правильном порядке.
Flow control (сервер и клиент свободно работают на разной
пропускной способности сети).
Full duplex
Graceful shutdown

Цитата Сообщение от noname664 Посмотреть сообщение
UDP простой протокол, он прозрачный для понимания и использования.
то же самое я могу сказать про TCP.

Цитата Сообщение от noname664 Посмотреть сообщение
UDP надёжный протокол, при условии, что вы правильно организовали механику обмена данными
В 99% случаев не надо изобретать велосипедо-TCP на базе UDP, надо сразу брать TCP.
IMHO.

Цитата Сообщение от noname664 Посмотреть сообщение
UDP позволяет отправлять несколько пакетов подряд и они не будут объединены в один общий, как в TCP.
В TCP они тоже не факт, что будут объединены.

Цитата Сообщение от noname664 Посмотреть сообщение
UDP позволяет создать на своей основе свой собственный протокол, более мощный, чем даже TCP.
А TCP что, не позволяет?
Вон сколько вокруг прикладных протоколов на базе именно TCP, работают годами и
меняются, как правило, лишь незначительно. Сам TCP, кстати, за многие годы существования
тоже особо не претерпел серьезных изменений.

Цитата Сообщение от noname664 Посмотреть сообщение
Это стандартный общий ответ, не раскрывающий сути.
Но давайте не будем голословны), а составим список плюсов TCP и сравним их со списком плюсов UDP.
И получим сферического коня в вакууме. Надо сравнивать не плюсы-минусы, а
эффективность и целесообразность использования протокола в конкретных задачах.

Цитата Сообщение от noname664 Посмотреть сообщение
На UDP работают все игры, и игровые сервера по нему раздают игровые файлы.
На этом протоколе работают голосовые программы.
На нём работает DHCP и DNS.
На TCP построен HTTP, почтовые протоколы, FTP и еще куча всего.

Цитата Сообщение от noname664 Посмотреть сообщение
TCP вытесняется UDP.
Угу. Принято в таких случаях писать "TCP больше не актуален, TCP умер".
Поживем еще лет двадцать - увидим. HTTP тоже пророчили скорую смерть, а он жив.

Цитата Сообщение от noname664 Посмотреть сообщение
TCP имеет уязвимости, уязвимость тройного квитирования, всего 32-х разрядный счётчик пакетов, из-за чего при передаче большого объёма данных номера пакетов начнут часто повторяться, это старый протокол, он просто устарел.
Изобрети аналог TCP на базе UDP и я посмотрю, сколько в нем будет уязвимостей,
функциональных недосмотров и просто архитектурных просчетов. И проживет ли он
столько же, сколько TCP, и будет ли таким же популярным.

Цитата Сообщение от noname664 Посмотреть сообщение
Убежденный, Вы наверно часто работали с TCP, а UDP наверно особо не использовали.
Спор ни о чем.
0
Задачи выполнил, ушёл
27 / 30 / 7
Регистрация: 16.10.2015
Сообщений: 345
28.12.2015, 02:23
Убежденный, Ваше последнее сообщение показало защиту личной точки зрения. Если человек перешёл на защиту личной точки зрения, он будет её защищать даже если будет не прав. Я не защищаю свою точку зрения, у меня её как бы нет, я просто излагаю выводы, и конечно мне не приятно, если я ошибаюсь в выводах, обычно мне не интересно личное мнение, но мне всегда интересны аргументы и логика выводов.

Вот почему я увидел с Вашей стороны защиту личной точки зрения:

Я указал про протокол QUIC, но вы не указали про него, когда написали:
На TCP построен HTTP, почтовые протоколы, FTP и еще куча всего.
В TCP они тоже не факт, что будут объединены.
Они же всегда объединяются в сплошной поток, ну Вы же скорее всего об этом знаете.

Спор ни о чем.
Это эмоция, чтобы указать, что я неправ и не заметил "очевидного".

А TCP что, не позволяет?
Вон сколько вокруг прикладных протоколов на базе именно TCP, работают годами и
меняются, как правило, лишь незначительно. Сам TCP, кстати, за многие годы существования
тоже особо не претерпел серьезных изменений.
На нём нельзя сделать игру в стиле Action из-за пинга. На UDP принципиально можно создать TCP, поэтому UDP универсальнее, более мощнее, он не ограничивает так, как ограничивает TCP.

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

Стиль Вашего ответа упрекательный, с лёгкой иронией, указывающий на мою недальновидность, стремление показать, что я неправ ну во всём, ну так же обычно не бывает ну что бы во всём.
Вы защищаете свою личную точку зрения.
Я бы хотел агрументированное безличностное обсуждение.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.12.2015, 10:42
Цитата Сообщение от noname664 Посмотреть сообщение
Убежденный, Ваше последнее сообщение показало защиту личной точки зрения.
Да.

Цитата Сообщение от noname664 Посмотреть сообщение
Если человек перешёл на защиту личной точки зрения, он будет её защищать даже если будет не прав.
Нет.

Цитата Сообщение от noname664 Посмотреть сообщение
Я указал про протокол QUIC, но вы не указали про него, когда написали:
На TCP построен HTTP, почтовые протоколы, FTP и еще куча всего.
А что QUIC?
Он еще слишком далек от той черты, чтобы поглотить другие протоколы.
И неизвестно, пересечет ли ее когда-нибудь или нет.

Цитата Сообщение от noname664 Посмотреть сообщение
Они же всегда объединяются в сплошной поток, ну Вы же скорее всего об этом знаете.
Изначально было написано иначе: "UDP позволяет отправлять несколько пакетов подряд и они не будут
объединены в один общий, как в TCP". В TCP вообще нет никаких гарантий относительно того,
какими порциями придут данные, т.е. будут ли они объединены или фрагментированы.

Цитата Сообщение от noname664 Посмотреть сообщение
Это эмоция, чтобы указать, что я неправ и не заметил "очевидного".
Нет, это ответ на реплику "Вы наверно часто работали с TCP, а UDP наверно особо не использовали".
Потому что холивар "TCP vs UDP" сразу съехал на намек на то, что я, мол, не использовал UDP и поэтому "не в теме".

Цитата Сообщение от noname664 Посмотреть сообщение
На UDP принципиально можно создать TCP, поэтому UDP универсальнее, более мощнее, он не ограничивает так, как ограничивает TCP.
Допустим.
Но TCP уже "готов", а UDP в этом случае придется еще "готовить". Попробуй-ка сделать
на UDP гарантию порядка и отправку в случае потери пакетов. Довольно сложно. Не согласен?
Кстати, если рассуждать в таком ключе, почему бы тогда сразу не спуститься на канальный уровень?
Следуя этой логике, он мощнее и универсальнее чем TCP и UDP, вместе взятые.
Хотел бы услышать твое мнение на этот счет.

Цитата Сообщение от noname664 Посмотреть сообщение
UDP просто по сравнению с TCP как бы низкоуровневый, поэтому он прозрачен. В TCP концепция логического соединения, это дополнительная абстрактная прослойка, скрывающая сетевую механику передачи данных, облегчающая использования, но скрывающая технические детали.
Да, все верно.
Точно также, как и HTTP, который работает поверх TCP. Как пример. Но я бы не стал делать из
этого далекоидущие выводы в духе "XXX мощнее YYY, так как XXX более низкоуровневый и сырой".
Начнем с того, что для YYY может быть тонна готовых и годами проверенных реализаций, а
для XXX под эту задачу нет.

Цитата Сообщение от noname664 Посмотреть сообщение
Стиль Вашего ответа упрекательный, с лёгкой иронией, указывающий на мою недальновидность, стремление показать, что я неправ ну во всём
Мне кажется, что ты видишь в моих ответах только плохое.
А между тем, я в самом первом сообщении написал: "все круто", лишь обозначив пару явных
моментов, с которыми я не согласен.

Цитата Сообщение от noname664 Посмотреть сообщение
Вы защищаете свою личную точку зрения.
Да. Я не высшая материя и абсолютная истина мне неведома.

Цитата Сообщение от noname664 Посмотреть сообщение
Я бы хотел агрументированное безличностное обсуждение.
Покажи, где я перешел на личности или позволил себе упрекательный, неуважительный
или хотя бы просто ироничный тон. Правда, в мыслях такого не было.

Что касается аргументов, то я уже написал выше: где-то лучше TCP, где-то UDP.
Да, это стандартный и банальный ответ, которым "отмазываются" всякие К.О. Я считаю, что человек,
который пишет на базе UDP свой велосипедо-TCP, напрасно теряет время, если только он не создает
что-то принципиально новое, что могло бы прыгнуть на голову выше TCP, и не создает новый
протокол для определенной насущной задачи, где TCP по каким-то причинам неэффективен
или вообще неприменим. Потому что TCP уже готов, бери да пользуйся, он проверен временем,
его недостатки, как правило, известны и есть решения для их устранения (или смягчения).

Для передачи звука в реал-тайме, очевидно, лучше использовать UDP.
Для скачивания файла - TCP.
Попытка использовать одно вместо другого приведет либо к потере эффективности,
либо к усложнизму на ровном месте.
0
Задачи выполнил, ушёл
27 / 30 / 7
Регистрация: 16.10.2015
Сообщений: 345
28.12.2015, 16:53
Мне кажется, что ты видишь в моих ответах только плохое.
А между тем, я в самом первом сообщении написал: "все круто", лишь обозначив пару явных
моментов, с которыми я не согласен.
Нет, в твоих ответах я увидел и хорошее, ты написал и хорошее. Наверно я увидел плохое в силу привычки, что начнут набрасываться с обвинениями. Да.

По поводу съезжания на канальный уровень. Нет. Это слишком низко, я думал, что Вы используете в качестве аргумента сетевой уровень, где можно работать сразу с пакетами протокола IP. Нет, там нужно самому фрагментировать пакет по MTU и там нет портов, поэтому будет проблема с доставкой пакета на уровень сокетов конкретной программе через порты. Поэтому ниже уровня UDP опускаться, значит усложнить передачу данных из-за ручного разбиения пакета и отсутствия портов как удобной концепции адресации процессов. Концепция портов не ограничивает UDP. IP адресует компьютер, интерфейс, узел, Порт адресует ещё точнее - процесс. Связка IP+Port - это сетевой адрес процесса (Net Address Process - NAP), так сказать.

Вы перешли к практическим аргументам, я не указал в самом начале, что я имел в виду теоретические возможности. Посмотрите на радикальное сравнение: допустим у нас есть только UDP, и нет TCP, и представьте что у нас есть только TCP и нет UDP.
UDP универсальнее, он не ограничивает так, как ограничивает TCP. Это имелось в виду, поэтому он лучше, только в этом, это не означает, что он сразу даёт требуемый функционал, имелась в виду теоретическая причина, что UDP прекрасно подходит для создания своего протокола.
Вы смотрели на практику, я на теорию.

Да. Я не высшая материя и абсолютная истина мне неведома.
Я тоже хочу знать правду, это выгоднее, личное мнение может оказаться ошибочным, поэтому я откажусь от своей точки зрения, если появятся аргументы. Этим я называю безличностное обсуждение, когда признание ошибки не страшно.

Своими сообщениями я хотел указать на то, что мне бы хотелось, чтобы обсуждение было всегда агрументированным, это бы позволило быстрее найти истину, это универсальный подход, возможно кто-то прочитает наши сообщения и задумается. Это хорошо. Я не писал для того, чтобы показать что я прав.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2015, 16:53
Помогаю со студенческими работами здесь

Udp и подсети
можно ли производить обмен данными по UDP если подсеть разная? на плате открываю цепочку видео потока и отправляю на компьютер,...

UDP question
Привет всем, возник вопрос касаемо UDP протокола Если пакет UDP отправили намного раньше, чем запустилась программа-слушатель, дойдет...

Возможности UDP
Доброго времени суток, форумчане. Можно ли примерно сказать какой максимальный поток данных возможно разгрести через UDP без потерь? 1, 2,...

C++ UDP Клиент
Денечка, есть задание, типа Составление строки путем перемешивания слов. Сервер принимает слова от клиентов. И составляет строку каждый...

TCP и UDP
Вот при отправке данных по TCP - данные передаются как поток байт. И не известен размер порции которую отправляет функция send() за один...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru