Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2014, 17:48   #1
lawliet93
Форумчанин
 
Регистрация: 30.08.2011
Сообщений: 102
По умолчанию Поясните за UDP-протокол

Прив. Пишу в этом разделе, потому что хочу написать клиент-сервер с использованием UDP и c#, поэтому примеры будут на c#, если че.
Я хочу разобраться в основных принцыпах этого UDP, а то вот там написано так-то, там еще как-то. Это как раньше я читал, что по TCP передаются пакеты, потом узнал, что там пакетов вообще нет. А что это за пакеты тогда, так и не понимал.
Я вот знаю несколько истин о UDP - он не требует соединения, он не гарантирует доставку, он не гарантирует целостность данных и их последовательность, но он быстрый.
С соединением все ясно, просто отправляется пакет, а дальше все задачи принятия непринятия и т.д. лежат на другой стороне.
Он не гарантирует доставку - это как? То есть я могу отправлять много премного сообщений, а сервер даже не узнает, что я их вообще отправлял?
Нету гарантии целостности. Это, например, я отправляю 20 байт, а приходит 18? Тогда куда деваются два байта? И в какой части 20-ти байт эти два байта пропадают? В начале? В конце? В любой?
Неправильная последовательность. Я так понимаю, ввиду имеются пакеты? А что такое пакеты в UDP? Допустим, у меня есть буффер с байтами, и я отправляю его на сервер
Код:
byte[] buffer = new byte[1024];
Send(buffer);
В этом случае у меня:
a) 1024 пакетов, потому что 1024 байта, и все они могут прийти полностью перемешанными?
b) 1024*8 пакетов, потому что данные передаются побитно?
с) 1 пакет длиною в 1024 байта, и если я сделаю так
Код:
byte[] buffer1 = new byte[1024];
byte[] buffer2 = new byte[512];
Send(buffer1);
Send(buffer2);
то вся неупорядоченость состоит в том, что сначала может прийти buffer2, а потом buffer1 ?
lawliet93 вне форума Ответить с цитированием
Старый 15.04.2014, 12:28   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Цитата:
UDP uses a simple transmission model with a minimum of protocol mechanism.[1] It has no handshaking dialogues, and thus exposes any unreliability of the underlying network protocol to the user's program. As this is normally IP over unreliable media, there is no guarantee of delivery, ordering, or duplicate protection. UDP provides checksums for data integrity, and port numbers for addressing different functions at the source and destination of the datagram.
Тут наверное ответ на 90% вопроса
Guy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UDP протокол alex081993 Работа с сетью в Delphi 13 05.12.2013 01:31
UDP протокол :) Артэс Общие вопросы C/C++ 6 09.10.2012 17:46
Как остановить SendTo (UDP протокол) Dasharnb777 Общие вопросы .NET 0 23.11.2010 23:41
рассылка сообщений всем пользователям в чате, протокол UDP RKS Работа с сетью в Delphi 14 15.12.2007 11:36