Экстернат |
Сети Ethernet
IP-адрес имеет Интернет-часть и местную секцию, первая характеризует место (организацию, сеть или даже группу сетей), вторая — конкретную ЭВМ. Местная секция адреса может быть разделена на части, характеризующие локальную сеть и конкретную ЭВМ ( рис. 16.31).
Такая схема обеспечивает необходимую гибкость, дает возможность разделить локальную сеть на субсети. При работе с субсетью необходимо использовать 32-разрядную маску. Разряды маски должны равняться 1, если сеть рассматривает данный бит как часть адреса сети, и 0, если он характеризует адрес ЭВМ в этой сети. Все субсети одного адресного блока (А, В или С) должны иметь одну и ту же маску субсети. Например:
255.255.255.254 (десятично-точечное представление)
11111111 11111111 11111111 11111110 (двоичное представление)
описывает маску субсети, в которой работает автор. Некоторую информацию о масках в работающей сети можно получить с помощью команды ifconfig (SUN):
/usr/etc/ifconfig -a (курсивом здесь и далее выделяются команды, введенные с клавиатуры)
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST>
inet 193.124.224.35 netmask ffffffe0 broadcast 193.124.224.32
lo0: flags=869<UP,LOOPBACK,NOTRAILERS,RUNNING,MULTICAST>
inet 127.0.0.1 netmask ffffff00,
где le0 и lo0 — имена интерфейсов, флаг -a предполагает выдачу данных обо всех интерфейсах.
Во всех схемах IP-адресации адрес со всеми единицами в секции "адрес ЭВМ" (host) означает широковещательное обращение ко всем ЭВМ субсети. Следует помнить, что широковещательные запросы сильно перегружают сеть, и без особой необходимости их использовать не следует.
Разбивка сети на субсети имеет целью, среди прочего, ограничение области рассылки широковещательных пакетов (имеются в виду широковещательные МАС-адреса).
IP-адрес, безусловно удобный для использования ЭВМ, плохо запоминается людьми, поэтому они разработали символьную систему имен для узлов Интернета. Эта система ( DNS — Domain Name System) имеет иерархический характер. Имя содержит несколько полей, разделенных символом "." (точка). В качестве примера можно привести имя домена ITEPnet — cl.itep.ru. Это имя содержит три поля. Поле ru указывает на принадлежность данного домена России, поле itep определяет принадлежность узла ITEP (Institute for Theoretical and Experimental Physics), cl — характеризует то, что данное конкретное имя относится к кластеру ЭВМ (имя субдомена). Никаких ограничений на число полей в имени, кроме налагаемых здравым смыслом, не существует. Собственно имя домена — это itep.ru. Самое правое поле в имени домена характеризует принадлежность к определенному типу организации или стране. Преобразование символьного имени в IP-адрес производится в DNS-сервере узла, который представляет собой базу данных с удаленным доступом. Если искомое имя узла в локальном DNS-сервере отсутствует, он может прислать в качестве ответа адрес другого DNS-сервера, куда следует обратиться, чтобы определить IP-адрес искомого узла. Анализ имени обычно производится справа налево. Более подробно DNS-система описана в документах RFC-819, -823. О правилах получения IP-адресов и регистрации имен сетей можно прочесть в [18.8].
При формировании пакетов различного уровня используется принцип инкапсуляции (вложения). Так IP-пакеты вкладываются в Ethernet-пакеты (кадры). Всякий пакет имеет заголовок и тело, некоторые из них снабжены контрольной суммой. Схема такого вложения представлена на рис. 16.32 и 16.33.
Поле тип определяет используемый в дейтограмме протокол, PAD — пустые биты, дополняющие размер дейтограммы до 48 бит.
Пакетный принцип позволяет передавать информацию от разных источников к различным адресатам по общему телекоммуникационному каналу. Схема вложения пакетов в рамках TCP/IP показана на рис. 16.32.
Рис. 16.32. Схема вложения пакетов в TCP/IP (в данном примере в поле тип Ethernet кадра будет записан код 0800, в случае IPv6 там будет код 89DD)
Принцип вложения (так же как и фрагментации) является фундаментальным для любых современных сетей.
Этот принцип используется в сетях NetWare, Apple Talk, TCP/IP и т.д.
Отдельные сети в Интернете соединяются друг с другом через узловые серверы (Gateway, иногда их называют пограничными маршрутизаторами — Boarder Gateway), расстояние между которыми может измеряться метрами или тысячами километров.
Прикладные программы, так же как и все протокольное программное обеспечение уровня Интернет (L3) и выше работают только с IP-адресами, в то время как уровень сетевого программного обеспечения работает с физическими сетевыми адресами (МАС).
Обычно при описании сетей используется терминология 7-уровневой модели ISO (стек протоколов). Так уж получилось, но Интернет лишь с определенными натяжками можно описать, придерживаясь этой схемы. Ethernet-инкапсуляция продемонстрирована на рис. 16.33 (RFC 894; размеры полей указаны в байтах).
LLC — управление логической связью (Logical Link Control); DSAP = 0xAA (Destination Service Access Point) — поле адреса доступа к службе получателя; SSAP = 0xAA (Source Service Access Point) — поле адреса доступа к службе отправителя; SNAP — протокол доступа к субсетям (SubNetwork Access Protocol). PAD — поле-заполнитель. В общем случае форматы полей DSAP и SSAP имеют вид, показанный на рис. 16.34, где: I/G = 0 — индивидуальный адрес, I/G = 1 — групповой адрес; D — бит адреса службы места назначения, S — бит адреса службы отправителя; C/R = 0 — команда, C/R = 1 — подтверждение.
Поле CNTL может иметь длину 1 или 2 байта, а его структура — соответствовать I-, S- или U-форматам. В однобайтовых полях DSAP и SSAP записывается код типа протокола сетевого уровня. Поле CNTL=03 обозначает нечисловой формат для уровня Ethernet 802.2. Эти три байта часто представляют собой код производителя, как правило, совпадающий с первыми тремя байтами адреса отправителя. Иногда они просто делаются равными нулю. Поле тип (2 байта) характеризует используемую версию Ethernet. Из рис. 16.33 видно, что первые два поля ( адреса получателя и отправителя ) и последнее поле ( CRC ) во всех форматах идентичны. При расчете CRC содержимое кадра рассматривается как двоичный полином. Производится деление этого кода на специальный образующий полином. Полученный остаток от деления дополняется по модулю один, результат этой операции и считается CRC-суммой. В поле адрес получателя может быть записан код 0xFFFFFFFFFFFF, что указывает на широковещательную адресацию кадра. Адрес отправителя такой код содержать не может. Третье поле может служить для выявления типа используемого протокола. Если в этом поле содержится число, большее 1500 (десятичное), это означает, что данный кадр имеет формат Ethernet II, а само поле содержит не длину кадра, а тип данных. Теперь, надеюсь, читателю понятно, почему кадр Ethernet 802.3 не может содержать более 1500 байт.
Кадр Ethernet 802.2 помимо первых трех полей содержит дополнительные три однобайтовые поля, следующие вслед за ними ( DSAP, SSAP и CNTL ). Кадр Ethernet SNAP является модификацией кадра Ethernet 802.2. Для этого кадра коды полей DSAP и SSAP равны 0xAA (признак кадра Ethernet SNAP), код CNTL=03 (нечисловой формат), поле код организации (3 байта, характеризует организацию сети) равен нулю (для IPX/SPX), а двухбайтовое поле тип характеризует протокол высокого уровня. Для протокола IP в это поле записывается 0x0800, для ARP — 0x0806, для RARP — 0x8035, а для Apple Talk — 0x809B). Поля тип протокола и по смыслу и по содержанию идентичны для всех разновидностей кадра Ethernet (кроме IEEE 802.3).
Транспортный уровень должен воспринимать данные от нескольких пользовательских программ и пересылать их на более низкий уровень. Многоуровневые протоколы спроектированы так, чтобы слой n по месту назначения получал ту же самую информацию, что была послана слоем n отправителя. Прикладные программы, так же как и все протокольное программное обеспечение уровня Интернет, используют только IP-адреса (32 бита), в то время как уровень сетевого программного обеспечения работает с физическими сетевыми адресами (так, Ethernet использует 48-битные адреса).
Когда IP-дейтограмма попадает в ЭВМ, сетевое программное обеспечение (драйвер) передает ее программе IP-уровня. Если адрес места назначения совпадает с IP-адресом ЭВМ, дейтограмма принимается и передается на более высокий уровень для дальнейшей обработки. При несовпадении адресов дейтограмма уничтожается (переадресация дейтограмм для ЭВМ запрещена, это функция маршрутизатора). Хотя можно заставить ЭВМ выполнять задачи маршрутизации, с точки зрения общей философии Интернета это плохая идея.
Различные сети и каналы имеют разные скорости обмена и надежность передачи. Это определяет длину пакета, пересылка которого с высокой вероятностью будет осуществлена без ошибки. Так как Интернет объединяет самые разные узлы и сети, использующие разные длины посылок, при реализации связи между такими объектами размер пакета задается наименее надежным узлом и длина пакета выбирается минимальной. Поэтому при передаче длинного пакета через такой участок сети он сегментируется и передается по частям. Размер фрагмента определяется величиной максимального передаваемого блока ( MTU — Maximum Transfer Unit, в Ethernet MTU = 1500 октетам). Величины MTU для других сред приведены в таблице 16.13.
Сеть | MTU (байт) |
---|---|
Hyperchannel (сеть с топологией типа шина, с CSMA/CD -доступом, числом подключений <256, максимальной длиной сети около 3,5 км (93-омный коаксиальный кабель RG59 или оптоволокно)) | 65535 |
16 Мбит/с маркерное кольцо (IBM) | 17914 |
4 Мбит/с маркерное кольцо (IEEE 802.5) | 4464 |
FDDI | 4352 |
Ethernet II | 1500 |
IEEE 802.3/802.2 | 1492 |
X.25 | 576 |
Point-to-Point (при малой задержке) | 296 |
Рассмотрим пофрагментную передачу дейтограммы с длиной в 1300 октетов в предположении, что более 576 октетов за один раз передать нельзя ( рис. 16.35).
Куда будет направлен Ethernet-кадр указывает значение типа в заголовке кадра ( рис. 16.33). Если пакет попадает в модуль IP, то содержащиеся в нем данные могут быть переданы либо модулю TCP (Transmission Control Protocol), либо UDP, что определяется полем протокол в заголовке IP-пакета.
Ethernet все шире применяется не только в локальных, но и в региональных сетях. Этому способствует введение системы подавления перегрузок в протоколах GE и 10GE. Но для работы в качестве опорной сети в Ethernet не хватает механизмов балансировки нагрузок и оптимизации использования полосы каналов. Решения этих проблем можно найти в протоколе IEEE 802.17.