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

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

31 страница (Word-файл)

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

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

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

¨  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-адресов.

Address

Description

01-80-C2-00-00-00

Spanning tree (for bridges)

09-00-09-00-00-01

HP Probe

09-00-2B-00-00-03

DEC Lanbridge Traffic Monitor (LTM)

09-00-2B-00-00-04

DEC MAP End System Hello

09-00-2B-00-00-05

DEC MAP Intermediate System Hello

09-00-2B-00-00-06

DEC CSMA/CD Encryption

09-00-2B-00-00-07

DEC NetBios Emulator

09-00-2B-00-00-0F

DEC Local Area Transport (LAT)

09-00-2B-00-00-1x

DEC Experimental

09-00-7C-02-00-05

Vitalink diagnostics

09-00-7C-05-00-01

Vitalink gateway

Теперь рассмотрим 2-байтовый идентификатор протокола следующего уровня. Здесь также существуют стандартные идентификаторы, определенные в документах IANA. Мы будем рассматривать только один тип протокола. Это—протокол IP с идентификатором 0800, но вот пример некоторых из них.

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

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