Сетевое программирование в .NET. Расшифровка IP-адреса (IP address specification). Обеспечение надежности доставки пакетов

Страницы работы

Содержание работы

Сетевое программирование в .NET

Сеть Internet представляет собой объединение более мелких сетей (subnets)—сеть сетей. Под узлами сети чаще всего понимаются сетевые карты связываемых компьютеров. Информация передается от одного узла (host-компьютера) сети к другому в виде потоков, состоящих из пакетов данных. Пакеты помещаются внутрь конвертов и перемещаются от одного компьютера к другому. Итак, исходный, возможно большой, блок информации разбивается на множество мелких пакетов, а затем, по получении, восстанавливается в своем первоначальном виде.

Размер блока данных, передаваемых в одном пакете, не может быть менее 46 байт и более 1500 байт. Ограничение сверху вызвано желанием равномерно загрузить сеть. Ограничение снизу вызвано тем, что пакет не может быть менее 64 байт и должен иметь заголовок в 18 байт. Сетевые сообщения разбиваются и помещаются в отдельные конверты (frames). На приемном конце весь блок информации должен быть корректно собран из частей (отдельных пакетов, выбранных из конвертов).

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

¨  Transmission Control Protocol (TCP),

¨  Internet Protocol (IP),

¨  User Datagram Protocol (UDP),

¨  Address Resolution Protocol (ARP),

¨  Internet Control Message Protocol (ICMP).

В сетях Ethernet различают 3 типа протоколов: Ethernet 802.2, Ethernet 802.3 и Ethernet version 2. Первые два—являются стандартами IEEE. Протокол Ethernet version 2 не является стандартом, но он наиболее широко используется в сетях Ethernet. Почти все сетевые устройства, включая ОС Windows, по умолчанию используют для передачи IP-пакетов именно этот протокол.

Большинство пакетов, используемых в сетевом программировании, кроме слоя данных, содержат 3 отдельных слоя (layers) информации, характеризующих сеть и протоколы. Следующии рисунок показывает иерархию протоколов IP-пакета. Каждый слой имеет свой собственный формат, определяющий параметры протокола.

Ethernet Layer

Заголовок (Ethernet header) version 2 идентифицирует адреса связываемых сетевых устройств и номер протокола, используемого в следующем слое. Вот формат всего Ethernet IP-пакета:

¨  Первые 6-байт задают адрес получателя (destination). Его называют MAC-адресом (Media Access Card).

¨  Следующие 6-байт задают адрес источника (source). Это MAC-адрес отправителя.

¨  Затем идет 2-байтовый идентификатор протокола следующего уровня,

¨  Блок передаваемых данных (от 46 до 1500 bytes),

¨  4-байтовая контрольная сумма.

Минимальный размер данных (46 байт) определяется так, чтобы весь Ethernet-пакет был не менее 64 байт. Если размер блока данных меньше 46 байт, то он дополняется определенными символами (padding characters) так, чтобы общий размер стал 64 байта. Если контрольная сумма не соответствует данным, то пакет бракуется.

Рассмотрим формат MAC-адреса. Шесть байт делятся пополам, первая половина (3 байта) определяет изготовителя сетевой карты OUI (Organizationally Unique Identifier), вторые 3 байта определяют ее серийный номер. MAC-адрес вырабатывается сетевой картой и его нельзя изменять.

Уникальность адресов обеспечивается организацией IANA (Internet Assigned Numbers Authority). Она занимается выработкой стандартов. В документах RFC (Internet Request For Comments) опубликовываются MAC-адреса, присвоенные разработчикам сетевых устройств. Вот выдержка из документа RFC 1700.

Identifier

Vendor

00000C

Cisco

00001D

Cabletron

00005E

IANA

0000A9

Network Systems

0000AA

Xerox machines

0000C0

Western Digital

00AA00

Intel

080009

Hewlett-Packard

08000B

Unisys

080020

Sun machines

08002B

DEC

080046

Sony

08005A

IBM

080069

Silicon Graphics

800010

AT&T

Вы можете встретить различные формы написания одного и того же MAC-адреса:

0020AFCCEC3,   00:20:AF:BC:CE:C3,   00-20-AF-BC-CE-C3

Некоторые типы протоколов (например, ARP) рассылают пакеты запроса (query packet) всем устройствам. Например, когда ищется узел с определенным IP-адресом. Поэтому, в дополнение к зарегистрированным адресам вводится broadcast- и multicast-ареса. Широковещательным (broadcast) считается адрес получателя, в котором все биты (destination address bits) установлены в единицу (0xFFFFFFFFFFFF). Он является единым адресом всех устройств Ethernet-сети и все они должны ответить на запрос с таким адресом.

Ethernet multicast-адрес определяет подмножество устройств сети, которые должны на него откликнуться. В следующей таблице показан ряд multicast-адресов.

Похожие материалы

Информация о работе