Сеть 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 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, но вот пример некоторых из них.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.