Адрес канального уровня уникальным образом идентифицирует каждое физическое соединение сетевого устройства с сетью. Адреса канального уровня иногда называются физическими или аппаратными адресами. Обычно они образуют неиерархическое адресное пространство, задаются для каждого устройства заранее и, как правило, жестко. Оконечные системы имеют обычно только одно физическое сетевое соединение и, стало быть, только один адрес канального уровня. Маршрутизаторы и другие устройства, поддерживающие межсетевой обмен, обычно имеют несколько физических сетевых соединений и несколько адресов канального уровня.
Адреса подуровня управления доступом к среде передачи (MAC) являют-I ся подмножеством адресов канального уровня. Адреса MAC идентифицируют сетевые устройства в LAN, реализующие подуровень IEEE MAC канального уровня. Как большинство адресов канального уровня, адреса MAC являются уникальными для каждого интерфейса LAN. Адреса MAC имеют 48 битов в длину и выражаются с помощью 12 шестнадцатеричных цифр: первые шесть шестнадцатеричных цифр являются идентификацией производителя (или кодом поставщика), называемым уникальным идентификатором организации (OUI). Эти шесть цифр устанавливаются IEEE. Последние шесть шестнадцатеричных цифр являются серийным номером интерфейса или другим значением, администрируемым определенным поставщиком. Адреса MAC иногда называются аппаратными или "зашитыми" адресами (Burned-in Address, BIA), так как они выжжены в постоянной памяти (ROM) и копируются в оперативную память (RAM), когда инициализируется плата интерфейса.
Адресация на сетевом уровне
Адрес сетевого уровня идентифицирует устройство сетевого уровня эталонной модели OSI. Сетевые адреса существуют обычно в иерархическом адресном пространстве. Иногда их называют виртуальными или логическими адресами. Отношение сетевого адреса с устройством является логическим и нефиксированным. Обычно адрес основывается либо на характеристиках физической сети (устройство находится в определенном сетевом сегменте), или на логическом объединении, которое не имеет физической основы (устройство является частью зоны AppleTalk). Оконечным системам требуется один адрес сетевого уровня для каждого протокола сетевого уровня, который они поддерживают. (Это предполагает, что устройство имеет только одно физическое сетевое соединение.) Маршрутизаторы и другие устройства, поддерживающие межсетевой обмен, требуют один адрес сетевого уровня на каждое физическое соединение для каждого поддерживаемого протокола сетевого уровня. Например, маршрутизатор с тремя интерфейсами, каждый из которых поддерживает одновременно AppleTalk, TCP/IP и OSI, должен иметь три адреса сетевого уровня для каждого интерфейса. Поэтому маршрутизатор имеет девять адресов сетевого уровня.
Каждый уровень модели ОSI общается с нижележащим уровнем и зависит от него в обеспечении специальных служб и функциональности. Так как каждый уровень предоставляет службу, он добавляет информацию к данным приложения, чтобы можно было транспортировать информацию к машине места назначения. Конечно, добавленная специальная информация зависит от используемого стека протоколов, но, следуя общей модели, мы видим, что каждый уровень добавляет к данным заголовочную информацию, а в отдельных случаях также и концевик после данных, пока не будет получен аккуратно сформированный пакет, который отправляется в кабель.
Как показано на рис, каждый уровень добавляет заголовочную информацию, чтобы выполнить службу, требуемую приложению. Когда данные перемещаются вниз по модели OSI на посылающем компьютере, эта информация добавляется. На получающем компьютере заголовочная и концевая информация отбрасываются, когда данные перемещаются вверх по модели OSI.
Можно насчитать пять шагов, связанных с процессом инкапсуляции данных, когда они готовятся транспортным уровнем для отправки в кабель. Они перечислены ниже:
1. С верхних уровней получена информация от пользователя, например запрос регистрации на сервере, задание печати или поиск в Web. Информация преобразуется в данные, чтобы ее можно было транспортировать к месту назначения.
2. Данные подготовлены для транспортировки на целевой компьютер. В случае TCP к данным добавляется заголовок TCP, содержащий информацию об упорядочивании, помогающую сохранить все в порядке при преобразовании в сегменты.
3. На третьем уровне модели OSI находится протокол IP. Здесь будет добавлен заголовок IP, так как сегмент TCP преобразуется в пакет IP. Заголовок IP включает IP-адреса источника и места назначения, что поможет при маршрутизации (выполняемой на этом уровне модели OSI) пакета в соответствующее место назначения.
4. На уровне канала данных в нашем примере пакеты IP преобразуются в кадры Ethernet. Чтобы сетевое устройство могло общаться через локальный интерфейс с другим интерфейсом в сети, оно должно поместить пакет в кадр. Тип кадра должен совпадать, иначе устройства не смогут общаться. В примерах трассировок мы увидим, что кадры Ethernet создаются вокруг пакетов IP.
5. Теперь кадр Ethernet превращается в единицы и нули. Как говорилось ранее, эти биты перемещаются по сети особым образом, определенным методами доступа, пока не достигнут своего места назначения.
По мере совершенствования нашего мастерства в поиске неисправностей нам понадобится понимание инкапсуляции LAN. Технологии LAN охватывают такие технологии настольных компьютеров, как Ethernet, Token Ring и Arcnet, и технологии MAN, например FDDI. В таких технологиях, как Ethernet могут существовать несколько типов инкапсуляции, что вызывает некоторые проблемы взаимодействия. В каждой из этих технологий дейтаграммы IP необходимо разграничивать, адресовать и идентифицировать как дейтаграммы IP.
Ethernet II При пересылке через сеть Ethernet дейтаграммы IP используют либо инкапсуляцию Ethernet II, либо IEEE 802.3 SNAP. Инкапсуляция Ethernet II использует двухбайтовое поле типа для обозначения протокола верхнего уровня. У этого поля два значения: 0x08-00 соответствует IP, а 0x08-06 соответствует ARP.
Дейтаграммы IP, посылаемые в составе кадров Ethernet II, имеют максимальный размер 1500 байтов и минимальный размер 46 байтов. Дейтаграммы IP размером меньше 46 байтов дополняются нулями до 46 байтов, чтобы сохранить минимальный размер кадра Ethernet, равный 64 байтам (не включая преамбулу).
Как можно видеть на рис, кадр Ethernet II состоит из преамбулы, за которой следует адрес места назначения, адрес источника, поле типа, полезная нагрузка и, наконец, контрольная последовательность кадра. (DSAP) и точки доступа службы источника (SSAP), чтобы выделить кадр SNAP. Управляющий код 0x03 идентифицирует ненумерованный кадр. Поле кода организации задается равным 0x00-00-00, а дальше следует поле типа: 0x08-00 для IP и 0x08-06 для ARP — такое же, как в типе кадра Ethernet П.
Дейтаграммы IP, посланные в составе кадров SNAP IEEE 802.3, имеют максимальный размер 1492 и минимальный размер 38 байтов. Это слегка отличается от ограничений размера Ethernet II и отражает больший размер накладных расходов инкапсуляции 802.3 SNAP. Дейтаграммы IP меньше 38 байтов в длину дополняются нулями, чтобы сохранить минимальный размер кадра Ethernet, равный 64 байтам (не включая преамбулу и начальный ограничитель).
Сравнение Ethernet II и IEEE 802.3 В нормальной повседневной сети действительно возможно присутствие Ethernet II и IEEE 802.3. Дело в том, что стандарты TCP/IP требуют, чтобы все хосты могли посылать и получать инкапсулированные кадры Ethernet II. Кроме того, большинство хостов могут получать инкапсулированные пакеты IEEE 802.3. Некоторые хосты в сети могут одновременно посылать и получать пакеты IEEE 802.3. В таком случае, однако, по умолчанию должен использоваться тип Ethernet П. На рис. одновременно показаны пакеты IEEE 802.3 и Ethernet II, поэтому можно получить хорошее представление о различиях между двумя методами инкапсуляции.
Ethernet II используется по умолчанию для большинства сетей. Как можно видеть на рис. 1.13, оба формата кадров имеют шестибайтовые (48 битов) адреса места назначения и источника. Это адрес MAC, адрес Ethernet или аппаратный адрес хоста, который физически соединен с сетью. Эти адреса преобразуются в четырехбайтовые (32 бита) IP-адреса с помощью протокола преобразования адресов ARP, который будет рассмотрен в следующей главе.
В заголовке Ethernet II следующие два байта используются для указания типа (0x08-00 для IP, 0x08-06 для ARP). Это то же самое поле, которое позже встретится в кадре 802.3 точно перед началом части данных в кадре. Кадр IEEE 802.3 имеет вместо типа двухбайтовое поле длины. Оно не имеет соответствия в кадре Ethernet II, позволяя тем самым отличить эти два метода инкапсуляции кадра. За полем типа в заголовке Ethernet II следует часть кадра с данными с размером от 46 до 1500 байтов.
В методе инкапсуляции IEEE 802.3 после адресов места назначения и источника находится двухбайтовое поле длины. Это поле используется для указания, сколько дальше следует байтов, но не включая CRC в конце кадра. После поля длины следует раздел, определенный главой 802.2 проекта IEEE. Первые три поля в этом разделе являются полями LLC. Поля DSAP и SSAP всегда заданы как АА, а контрольное поле всегда задано как 03. В следующих пяти байтах данных SNAP код организации задан как 0x00-00-00, что требует трех байтов. Следующие два байта формируют поле типа, которое является таким же, как поле типа, имеющееся в Ethernet П. Это будет 0x08-00 для IP, 0x08-06 для ARP или 0x08-35 для кадра RARP. Другие типы перечислены в Приложении В.
Поле циклического избыточного кода (CRC) содержит контрольную сумму, которая используется для обнаружения в кадре ошибок. Иногда его называют также контрольной последовательностью кадра (FRC).
Минимальный размер инкапсулированных кадров IEEE 802.3 и кадров Ethernet II одинаков. Но в связи с дополнительными полями, вставленными перед данными в кадре типа IEEE 802.3 (которые занимают восемь байтов), минимальный и максимальный объемы данных на восемь байтов меньше, чем для кадров типа Ethernet II.
Управление потоком является функцией, которая предотвращает перегрузку сети, не позволяя передающему устройству перегружать принимающие устройства данными. Существует ряд возможных причин сетевой перегрузки. Например, высокоскоростной компьютер может создавать трафик быстрее, чем сеть может его передавать, или быстрее, чем устройство назначения может его получить и обработать. Существуют три обычно используемых метода обработки сетевой перегрузки:
1. Буферизация используется сетевыми устройствами для временного хранения всплесков избыточных данных в памяти, пока их нельзя будет обработать. Случайные всплески данных легко обрабатываются с помощью буферизации. Однако избыточные всплески данных могут переполнить память, заставляя устройство отбрасывать все прибывающие дополнительные дейтаграммы.
2. Принимающие устройства направляют источникам сообщения подавления передачи, чтобы предотвратить переполнение своих буферов. Получающее устройство посылает сообщение подавления передачи, чтобы источник уменьшил текущую скорость передачи данных по нескольким причинам. Возможно, наиболее общая причина возникает, когда получающее устройство начинает отбрасывать полученные данные в связи с переполнением буферов. Когда это происходит, получающее устройство начинает посылать подавляющие источник сообщения передающему устройству со скоростью одного сообщения на каждый отброшенный пакет. Когда они начинают приходить на устройство источника, оно снижает скорость данных, пока не перестанет получать сообщения. Как только принимающее устройство прекратит посылать сообщения подавления передачи, устройство-источник станет постепенно увеличивать скорость данных до тех пор, пока снова не получит запросов подавления.
3. Создание окна является схемой управления потоком, при которой устройство-источник требует от устройства-приемника подтверждения приема после передачи определенного числа пакетов. При размере окна, равном трем, источник требует подтверждения после отправки трех пакетов. Посмотрим, как это работает. Устройство-источник посылает три пакета устройству назначения. После получения трех пакетов устройство назначения посылает источнику подтверждение. Источник получает подтверждение и посылает еще три пакета. Если устройство назначения не получает один или большее число пакетов по какой-то причине (например, из-за переполнения буферов), у него нет достаточного количества пакетов, чтобы послать подтверждение. Источник, не получив подтверждения, повторно посылает пакеты с уменьшенной скоростью передачи.
РРР является семейством протоколов, которые предоставляют мульти-протокольную инкапсуляцию, протокол контроля линии (LCP) для создания, конфигурирования и тестирования соединения канала данных, и семейство протоколов управления сетью (NCP) для создания и конфигурирования протоколов различных сетевых уровней.
Как можно видеть на рис, РРР устанавливает флаг как 0х7Е (01111110), чтобы указать начало и конец кадра РРР. В последовательных кадрах РРР будет задан только один символ флага. Поле адреса используется для адресации пакета для узла места назначения. В двухточечной линии связи узел назначения адресовать не нужно. Поэтому в РРР поле адреса задается как OxFF, т.е. как адрес широковещания.
В среде HDLC контрольное поле используется для функции подтверждения и упорядочивания уровня канала данных; однако в РРР контрольное поле задано как 0x03 для указания кадра ненумерованной информации (UI). Это то же самое, что и бит, который задается в методах кадрирования Ethernet.
Поле протокола имеет два байта и используется для идентификации протокола в полезной нагрузке РРР. Если поле задано как 0x00-21, то оно указывает на дейтаграмму IP. Контрольная последовательность кадра (FCS) является двухбайтовой CRC, аналогичной тому, что используется для инкапсуляции Ethernet.
Как и SLIP, РРР имеет метод, предотвращающий появление символа флага в середине данных. В синхронной линии связи, такой как ISDN, используется заполнение битами для вставки дополнительных битов, чтобы отметить, когда появляется символ флага. Закодированное представление байтов может содержать более 8 битов, но дополнительные биты добавляются и удаляются аппаратурой синхронной линии связи.
РРР использует также заполнение символами (подобно SLIP) на асинхронных линиях для предотвращения появления флага внутри кадра РРР. Если символ 0х7Е появляется в исходной дейтаграмме IP, то он заменяется строкой символов 0x7D-5D. Если символ ESC (0x7D) возникает в исходной дейтаграмме, то он заменяется последовательностью 0x7D-5D снова в 0x7D.
Символы меньше 0x20 также модифицируются, чтобы последовательные драйверы не интерпретировали их как управляющие символы, посылая 0x7D, а затем исходный символ с дополненным шестым битом.
Максимальная получаемая единица данных (MRU) равна 1500 байтам.
РРТР Протокол РРТР является способом взять существующий кадр РРР и инкапсулировать его через межсетевой обмен IP. РРТР позволяет создать в Интернете защищенные виртуальные частные сети (VPN). РРТР может использоваться независимо от того, поддерживает VPN провайдер услуг Интернета (ISP) или нет. Требуется только сервер, поддерживающий РРТР, и клиент, который может создать соединение РРТР. ,
Инкапсуляция кадров РРР реализуется с помощью протокола инкапсуляции базовой маршрутизации (GRE), который использует ID протокола IP, равный 47 (0x2F). Для использования его с РРТР протокол GRE был усовершенствован, чтобы предоставить поле подтверждения.
Как показано на рис. 1.15, кадр РРТР имеет заголовок среды и заголовок IP, прежде чем добраться до заголовка GRE. После заголовка GRE следует заголовок РРР, а затем полезная нагрузка РРР.
Заголовок GRE начинается с двух байтов для флагов. Эти флаги указывают, присутствует ли полезная нагрузка GRE и номера последовательности и подтверждения. Поле типа протокола содержит значение Ethernet, которое соответствует РРР (0х88-0В). Длина полезной нагрузки равна размеру полезной нагрузки GRE в байтах. Идентификатор (ID) вызова является информацией идентификации сеанса для этого пакета РРТР, за которым следуют номера последовательности и номер подтверждения — самый большой номер последовательности, полученный посылающим узлом этого сеанса. Номер последовательности используется для управления потоком, а не для повторной передачи потерянных кадров РРТР.
