Читаем Linux API. Исчерпывающее руководство полностью

Константа INADDR_ANY в IPv4 обозначает так называемый универсальный адрес. Он используется приложениями, привязывающими сокет интернет-домена к узлу с множественной адресацией. Если приложение, находящееся на таком узле, привяжет свой сокет только к одному IP-адресу, то сможет принимать UDP-датаграммы или TCP-соединения, направленные только на данный адрес. Однако такие приложения обычно должны принимать датаграммы или соединения, в которых указан любой из адресов соответствующего узла, и применение универсального адреса делает это возможным. В стандарте SUSv3 для константы INADDR_ANY не предусмотрено какого-то определенного значения, но в большинстве реализаций она равна 0.0.0.0 (все нули).

Обычно IPv4-адреса делят на подсети. Идентификатор узла после этого становится меньше, а в освободившуюся часть адреса записывается идентификатор подсети (рис. 54.6). Способ разделения битов идентификатора узла определяется местным сетевым администратором. Так делается в связи с тем, что организации часто не хотят размещать все свои компьютеры в единой сети. Вместо этого может использоваться набор подсетей («внутренних интерсетей»), каждая из которых определяется с помощью сочетания собственного ID и идентификатора всей сети. Это сочетание часто называют расширенным сетевым идентификатором. Маска подсети выполняет ту же функцию, что и маска сети, описанная ранее; для ее представления можно задействовать похожую запись, определяющую диапазон адресов, входящих в некую подсеть.

Представьте, например, что идентификатор нашей сети равен 204.152.189.0/24 и мы решили разделить этот диапазон адресов, выделив из 8-разрядного идентификатора узла 4 бита на идентификатор подсети. В результате маска подсети будет состоять из 28 единиц, за которыми следуют четыре нуля, а подсеть с идентификатором 1 будет иметь вид 204.152.189.16/28.

Рис. 54.6. Разделение на подсети в IPv4

Адреса протокола IPv6

Протоколы IPv6 и IPv4 имеют похожую структуру адресов. Ключевое различие заключается в том, что в IPv6 адреса состоят из 128 бит, и несколько первых битов отводится под префикс формата, который указывает на тип адреса (мы не станем детально рассматривать разные типы адресов; подробности см. в приложении A книги [Stevens et al., 2004] и в документе RFC 3513).

IPv6-адреса обычно записываются в виде последовательности шестнадцатеричных чисел, разделенных двоеточиями. Например:

F000:0:0:0:0:0:A:1

IPv6-адреса часто включают в себя несколько нулей, идущих подряд; для обозначения данной последовательности можно использовать два двоеточия (::). Таким образом, адрес, приведенный выше, можно записать в следующем виде:

F000::A:1

IPv6 допускает применение в адресе только одного двойного двоеточия; несоблюдение этого правила приведет к непредсказуемым результатам.

Протокол IPv6, как и IPv4, поддерживает замкнутый на себя адрес (127 нулей, за которыми следует одна единица, — то есть::1) и универсальный адрес (все нули — 0::0 или::).

Чтобы приложения, основанные на IPv6, могли взаимодействовать с узлами, поддерживающими только IPv4, были разработаны адреса, совместимые с IPv4. Их формат показан на рис. 54.7.

Рис. 54.7. Формат адресов, совместимых с IPv4

При записи такого адреса часть, совместимая с IPv4 (то есть последние 4 байта), записывается в виде десятичных чисел, разделенных точками. Таким образом, в IPv6 адрес 204.152.189.116 будет иметь вид::FFFF:204.152.189.116.

54.6. Транспортный уровень

В стеке TCP/IP существует два широко используемых транспортных протокола:

• протокол пользовательских датаграмм (англ. User Datagram Protocol, UDP), предназначенный для датаграммных сокетов;

• протокол управления передачей (англ. Transmission Control Protocol, TCP), предназначенный для потоковых сокетов.

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

54.6.1. Номера портов

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

Общеизвестные, зарегистрированные и привилегированные порты

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных