В чем разница между пакетами UDP и TCP?Для чего вы их используете? - PullRequest
6 голосов
/ 03 февраля 2011

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

Так что же они? Для чего они? Минусы / Плюсы (если это актуально).

Ответы [ 6 ]

10 голосов
/ 03 февраля 2011

Это как основные вопросы.

UDP :: Протокол пользовательских дейтаграмм

1) Нет сквозного соединения между компьютерами (может быть в локальной сети или где-то в Интернете).

2) Данные, полученные на стороне получателя, находятся не в потоке, как в TCP, а в виде полного блока данных.

3) На транспортном уровне проверка порядка пакетов не выполняется.То есть в случае какой-либо ошибки в принятом пакете, получатель не будет запрашивать повторную отправку того же пакета отправителю.

4) Из-за описанного выше поведения не требуется отправлять буферы на стороне отправителя.

5) Поскольку нет сквозного соединения.и не требуется никаких подтверждений связи, UDP довольно быстро, но менее надежен, чем TCP.Таким образом, в основном используется в играх, DNS и т. Д.

6) Подтверждение не требуется отправлять после получения пакетов.

TCP :: Протокол управления передачей

1) Сквозное соединение поддерживается между компьютерами (может быть в локальной сети или где-то в Интернете).

2)Данные, полученные на стороне получателя, являются потоком в TCP.Таким образом, когда мы выполняем сетевое программирование для серверов, мы сначала анализируем заголовок, а затем в зависимости от размера, указанного в заголовке, получаем гораздо большее количество байтов из буфера.

3) Проверка ошибок и порядковый номер выполнены.Таким образом, в случае, если какой-либо пакет принят не по порядку (редко) или ошибкам, чем этот пакет сделан для повторной отправки.Кроме того, множество других протоколов участвуют в управлении потоком (сквозное управление потоком).

4) Так как установление соединения, квитирование и подтверждение должны быть выполнены, TCP в основном работает медленнее, чем UDP. (Не очень, я думаю)

5) Многие протоколы используют TCP в качестве основного транспортапротокол.HTTP, FTP, TELNET и т. Д.

6) Процедура связи включает в себя:

Сервер :: 1) Разъем открыт 2) Привязка сокета 3) Прослушивание сокета 4) Прием сокета 5) Клиент отправки / приема сокета:: 1) Socket Open 2) Socket Connect 3) Socket Send / Recv

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

5 голосов
/ 03 февраля 2011

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

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

Здесь можно найти хорошую таблицу: TCP против UDP

2 голосов
/ 03 февраля 2011

Ответ П.Р. в основном правильный, но неполный.

TCP - это надежный протокол подключенного потока . Он просматривает данные как двунаправленный поток байтов между хостами: все байты, которые вы отправляете, будут доставляться на другой конец в том же порядке, по крайней мере, в том, что касается приложения (операционная система будет переставлять пакеты при необходимости).

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

1 голос
/ 03 февраля 2011

Этот веб-сайт , вероятно, предлагает простейшее объяснение фактической разницы UDP и TCP.С точки зрения реализации см. этот вопрос .

Для краткого ответа: TCP работает как обычное письмо, когда UDP похоже на обычное письмо - с последним вы никогда не узнаете, является липолучатель получил отправленный вами пакет.

1 голос
/ 03 февраля 2011
0 голосов
/ 03 февраля 2011

Крис прав! Одна необычная ссылка, выпадающая из Google: http://www.skullbox.net/tcpudp.php

...