Глава 22 Дополнительные сведения о сокетах udp

Глава 22

Дополнительные сведения о сокетах udp

22.1. Введение

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

TCP — это потоковый протокол, использующий окно переменной величины (sliding window), поэтому в TCP отсутствует такое понятие, как граница записи, и невозможно переполнение буфера получателя отправителем в результате передачи слишком большого количества данных. Однако в случае UDP каждой операции ввода соответствует одна дейтаграмма UDP (запись), поэтому возникает вопрос: что произойдет, когда полученная дейтаграмма окажется больше приемного буфера приложения?

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

Если реализация не поддерживает параметр сокета IP_RECVDSTADDR, один из способов определить IP-адрес получателя UDP-дейтаграммы заключается в связывании всех интерфейсных адресов и использовании функции select.

Большинство серверов UDP являются последовательными, но существуют приложения, обменивающиеся множеством дейтаграмм UDP между клиентом и сервером, что требует параллельной обработки. Примером может служить TFTP (Trivial File Transfer Protocol — упрощенный протокол передачи файлов). Мы рассмотрим два варианта подобного согласования — с использованием суперсервера inetd и без него.

В завершение этой главы мы рассмотрим информацию о пакете, которая может быть передана во вспомогательных данных дейтаграммы IPv6: IP-адрес отправителя, отправляющий интерфейс, предельное количество транзитных узлов исходящих дейтаграмм и адрес следующего транзитного узла. Аналогичная информация — IP-адрес получателя, принимающий интерфейс и предельное количество транзитных узлов — может быть получена вместе с дейтаграммой IPv6.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Дополнительные сведения

Из книги Реестр Windows автора Климов Александр

Дополнительные сведения Восстановление реестра При работе с реестром надо соблюдать осторожность. Удаление каких-либо важных данных случайно или по незнанию может привести к краху операционной системы. Тогда спасти положение может только восстановление последней


Глава 1 Общие сведения об ArchiCAD

Из книги ArchiCAD 11 автора Днепров Александр Г

Глава 1 Общие сведения об ArchiCAD • Почему ArchiCAD?• Что может ArchiCAD• Установка программы• Запуск ArchiCADРазработанное фирмой Graphisoft приложение ArchiCAD – наиболее популярный и функциональный программный продукт для создания архитектурных проектов. Мы рассмотрим одиннадцатую


6.21 Дополнительные сведения о многоадресных рассылках

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

6.21 Дополнительные сведения о многоадресных рассылках Существует класс IP-адресов, используемых в многоадресных рассылках (см. главу 5), позволяющий маршрутизировать датаграмму от источника к группе систем, заданной одним из адресов класса D. Технологии и протоколы


13.9.4 Дополнительные сведения о вариантах

Из книги О чём не пишут в книгах по Delphi автора Григорьев А. Б.

13.9.4 Дополнительные сведения о вариантах Более тридцати RFC детально рассматривают различные варианты, предоставляющие специальные возможности для telnet. Среди них можно выделить:? Способность опрашивать партнера о текущем состоянии параметров. Запрос и ответ о состоянии


2.1.2. Общие сведения о сокетах

Из книги Настройка Windows 7 своими руками. Как сделать, чтобы работать было легко и удобно автора Гладкий Алексей Анатольевич

2.1.2. Общие сведения о сокетах Сокетом (от англ. socket — гнездо, розетка) называется специальный объект, создаваемый для отправки и получения данных через сеть. Отметим, что под термином "объект" в данном случае подразумевается не объект в терминах объектно-ориентированного


Глава 1 Общие сведения о Windows 7

Из книги VBA для чайников автора Каммингс Стив

Глава 1 Общие сведения о Windows 7 В первой главе кратко вспомним, что представляет собой операционная система Windows 7, каковы ее основные свойства и как оценить ее


12.7. Дополнительные сведения о сигналах

Из книги Бесплатные разговоры через Интернет автора Фрузоров Сергей

12.7. Дополнительные сведения о сигналах Сигналы, которые мы обсуждали до сих пор, не несли в себе никаких данных; появление сигнала — это единственная информация, которую получает приложение. В некоторых случаях было бы неплохо знать, что послужило причиной отправки


Дополнительные сведения о типах данных

Из книги Программирование для карманных компьютеров автора Волков Владимир Борисович

Дополнительные сведения о типах данных В этом разделе приводятся рекомендации по поводу того, где и когда использовать различные типа данных VBA. При этом рассматриваются все типы данных, кроме двух. Тип данных Object, хотя и очень полезен, но достаточно сложный, поэтому


Дополнительные сведения об операторе Case

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Дополнительные сведения об операторе Case В предыдущем примере критерии, заданные в операторах Case, были просто цветочками, детскими вопросами типа "Равно ли свойство Туре тому-то и тому-то?" Но с помощью оператора Case вы можете задавать и значительно более сложные


Дополнительные сведения по работе с дисками в программе Acronis

Из книги Установка, настройка и восстановление Windows 7 на 100% автора Ватаманюк Александр Иванович

Дополнительные сведения по работе с дисками в программе Acronis Мы уже знаем, что такое образ диска и как его можно получить, а потом использовать при восстановлении работоспособности компьютера. В этом разделе будут даны дополнительные сведения о том, как подготовить


Дополнительные сведения о языке C++

Из книги Разработка ядра Linux автора Лав Роберт

Дополнительные сведения о языке C++ Файлы программы и единицы компиляцииПри создании программ на языке C++ следует иметь в виду, что программирование на этом языке опирается на модульный принцип построения программы. Это значит, что программа, которая в результате


Глава 8 Основные сведения о сокетах UDP

Из книги автора

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


Глава 23 Дополнительные сведения о сокетах SCTP

Из книги автора

Глава 23 Дополнительные сведения о сокетах SCTP 23.1. Введение В этой главе мы займемся углубленным рассмотрением SCTP, изучим особенности этого протокола и параметры сокетов, при помощи которых он управляется. Мы обсудим некоторые специальные вопросы, в частности, управление


Глава 1 Общие сведения

Из книги автора

Глава 1 Общие сведения 1.1. Гонки на выживание: Windows XP, Windows Vista и Windows 71.2. Новое в Windows 71.3. Версии операционной системы1.4. Системные требования1.5. Проверка на совместимостьПоявления новой операционной системы Windows 7, автором которой является корпорация Microsoft, ждали многие,


Глава 2 Начальные сведения о ядре Linux

Из книги автора

Глава 2 Начальные сведения о ядре Linux В этой главе будут рассмотрены основные вопросы, связанные с ядром Linux: где получить исходный код, как его компилировать и как инсталлировать новое ядро. После этого рассмотрим некоторые допущения, связанные с ядром Linux, отличия между