Читайте также: |
|
Данные, передаваемые по сети, представляются в виде пакетов, форма которых определяется уровнем протокола взаимодействия компонентов сети. При передаче IP-пакетов используется межсетевой протокол IP. Для IP-пакетов, представляющих данные на сетевом уровне, требуется выполнить преобразование IP-адреса, заданного в IP-пакете, в аппаратный адрес с целью формирования канального пакета для представления данных на канальном уровне. Заголовки сетевого пакета, называемого IP-пакетом, и канального пакета, называемого канальным кадром, создаются в момент отправки пакета.
Преобразование адресов осуществляется с помощью специальной ARP-таблицы, которая хранится в памяти и состоит из строк, содержащих описание соответствия между IP-адресом (четыре байта для представления) и аппаратным адресом (шесть байт для представления) для каждого узла сети. Для представления IP-адреса используются четыре десятичных числа, разделенные точками, например, 223.1.2.1. Первые три числа 223.1.2 определяют номер IP-сети, а оставшееся число1 определяет номер узла или точку доступа к сетевому интерфейсу. Для представления аппаратного адреса локальной сети используются шесть шестнадцатеричных чисел, разделяемых двоеточиями, например, 08:00:39:00:2F:C3. Аппаратный адрес назначает производитель интерфейсной карты, а IP-адрес назначается с учетом положения рабочей станции (ЭВМ) в сети. Существует пять классов IP-адресов (A, B, C, D, E). Класс адреса определяется диапазоном значений, задаваемых с помощью первого байта в IP-адресе.
Для автоматического заполнения ARP_таблицы используется программный модуль ARP. Если в текущий момент не возможно по таблице выявить соответствие между IP-адресом, запрошенным в прикладной программе, и соответствующим аппаратным адресом, то с помощью программного модуля ARP выполняется обновление ARP_таблицы следующим образом. Во-первых, по сети передается широковещательный ARP-пакет запроса, в котором содержится IP-адрес, запрашиваемый в прикладной программе. Во-вторых, IP-пакет с данными исходящими (отправляемыми) от прикладной программы, ставится в очередь на время, пока ожидается ARP-пакет ответа для обновления ARP-таблицы.
Каждый сетевой адаптер (сетевая карта) принимает широковещательный ARP-пакет и каждый соответствующий драйвер проверяет соответствующее поле (типа) в принятом канальном кадре, передавая ARP-пакет запроса модулю ARP. В начале запроса указываются IP-адрес отправителя, например, 223.1.2.1 и соответствующий аппаратный адрес отправителя, например, 08:00:39:00:2F:C3. Затем в запросе указывается искомый IP-адрес, например, 223.1.2.2, а поле, соответствующее искомому аппаратному адресу, задается пустое, чтобы получить значение этого адреса от какой-либо рабочей станции (узла сети), получившей запрос. Модуль ARP каждой рабочей станции, получившей запрос по сети, проверяет в ARP-пакете запроса поле искомого IP-адреса и при совпадении этого адреса с IP-адресом данной рабочей станции посылает ARP-пакет ответа по аппаратному адресу отправителя запроса. В начале ARP-пакета ответа указываются IP-адрес отправителя, например, 223.1.2.2 и соответствующий аппаратный адрес, например, 08:00:28:00:38:A9. Для поиска этого аппаратного адреса формировался запрос. После IP-адреса отправителя в ответе указывается искомый IP-адрес, например, 223.1.2.1 и соответствующий искомый аппаратный адрес, например, 08:00:39:00:2F:C3.
Ответ приходит в ЭВМ, сделавшую запрос, и ее драйвер проверяет поле типа в принятом канальном кадре и передает ARP-пакет ответа модулю ARP для анализа и добавления соответствующей записи в ARP-таблицу. Новая запись в таблице появляется через несколько миллисекунд после того, как она потребовалась, а исходящий пакет был поставлен в очередь. После обновления ARP-таблицы выполняется преобразование IP-адреса в аппаратный адрес, создается заголовок соответствующего канального пакета, и канальный кадр данных передается по сети. Если в сети не обнаружена ЭВМ (она может быть повреждена) с искомым IP-адресом, то ARP_пакет ответа не появится и обновления ARP-таблицы не произойдет. Тогда программный модуль IP стека протоколов уничтожит IP-пакет, в котором указан данный IP-адрес.
Для анализа правил маршрутизации, используемых в межсетевом протоколе IP, рассмотрим сеть из трех подсетей, представленную на следующем рисунке.
На рисунке, изображенном выше, буквами обозначены узлы сети (рабочие станции). Шлюз D соединяет три подсети и имеет три IP-адреса и три аппаратных адреса. В ЭВМ D в качестве программных модулей, обеспечивающих обработку сетевых пакетов, используются один модуль IP, один модуль ARP и три сетевых драйвера Enet. Взаимосвязь перечисленных модулей отображена на рисунке, изображенном ниже.
Если взаимодействующие узлы сети принадлежат к одной подсети, то способ доставки передаваемых между узлами пакетов называется прямой маршрутизацией. Например, при передаче IP-пакета из узла A в узел B используется прямая маршрутизация. В заголовке посланного IP-пакета поле адреса отправителя содержит IP-адрес узла A, а поле адреса получателя содержит IP-адрес узла B. Дальнейшая детализация посланного IP-пакета предусматривает преобразование IP-адреса в физический адрес и формирование канального кадра, передаваемого из узла A в узел B.
В заголовке канального кадра поле адреса отправителя содержит аппаратный адрес узла A, а поле адреса получателя содержит аппаратный адрес узла B. Пакет, поступивший в узел B, с помощью драйвера освобождается от канального заголовка и передается с канального уровня на сетевой уровень. Когда в узле B программный модуль сетевого уровня IP получит IP-пакет, поступивший из узла A, то модуль сравнивает свой IP-адрес с адресом в поле назначения. При совпадении указанных адресов поступивший пакет передается протоколу более высокого уровня.
Прямая маршрутизация используется для передачи пакетов между узлами сети D и A. Прямое взаимодействие осуществляется между узлами E и D, а также между узлами D и H. Так как каждая указанная пара узлов принадлежит одной IP-подсети.
Если взаимодействующие узлы принадлежат разным IP-подсетям, то необходимо использовать шлюз D для ретрансляции IP-пакетов из одной подсети в другую подсеть. Такое взаимодействие узлов сети называют косвенным.
Например, при передаче IP-пакета из узла A сети в узел E используется косвенная маршрутизация. IP-адресом и аппаратным адресом отправителя является адрес A. IP-адресом получателя является адрес E, а аппаратным адресом получателя является адрес D, так как IP-пакет из узла A послан через шлюз D, который осуществляет ретрансляцию IP-пакета. Программный модуль IP в ЭВМ D получает IP-пакет и проверяет IP-адрес получателя. Так как этот адрес не совпадает с IP-адресом ЭВМ D, то шлюз D посылает пришедший IP-пакет к узлу E сети. После прохождения шлюза IP-пакет будет содержать в заголовке адрес отправителя A и адрес получателя E, а канальный кадр будет содержать в заголовке аппаратный адрес отправителя D и аппаратный адрес получателя E.
Реальные сети содержат несколько шлюзов и разнородные среды передачи данных на канальном уровне.
При передаче IP-пакета программный модуль IP определяет прямой или косвенный способ доставки передаваемого пакета и отыскивает в таблице маршрутов соответствующий сетевой интерфейс, изображенный на предыдущем рисунке в виде точки, соединяющей модуль IP с одним из экземпляров сетевого драйвера Enet.
Для принимаемого от какого-либо драйвера IP-пакета модуль IP определяет необходимость выполнения либо ретрансляции принятого IP-пакета в другую подсеть, либо передачи пакета на верхний уровень. Действия, выполняемые при ретрансляции аналогичны действиям, которые выполняются при отправлении IP-пакета. Принятый IP-пакет никогда не ретранслируется через тот же сетевой интерфейс, через который он был принят.
Для выбора с помощью программного модуля IP сетевого интерфейса, по которому должен быть отправлен IP-пакет, используется таблица маршрутов, формируемая менеджером сети. При поиске маршрута доставки пакета используется номер IP-сети, заданный в IP-пакете в поле адреса получателя. Для описания любого маршрута в таблице маршрутов отводится одна строка. Для изменения содержимого строк предназначена команда “route”.
Пусть имеется одна IP-сеть DORA следующего вида.
Тогда таблица маршрутов в узле alpha имеет следующий вид.
Сеть | Флаг вида маршрутизации | Шлюз | Номер интерфейса |
Dora (223.1.2) | Прямая | Нет |
Подобная таблица имеется в узле beta. Порядок действий, осуществляемых при прямой маршрутизации, следующий. В узле alpha формируется и посылается IP-пакет для узла beta с адресом назначения 223.1.2.2. Модуль IP узла alpha с помощью маски подсети выделяет номер сети из IP-адреса и отыскивает соответствующую ему строку в таблице маршрутов. В данном случае из таблицы следует, что используется прямая маршрутизация и связь осуществляется через интерфейс с номером 1. Программный модуль ARP с помощью своей таблицы выполняет преобразование IP-адреса в соответствующий аппаратный адрес и через интерфейс номер 1 сформированный кадр отсылается к узлу beta.
Если модуль IP не может отыскать соответствующую строку в таблице маршрутов, то он исключает IP-пакет из обработки и формирует сообщение о том, что сеть не доступна. То есть пользовательской программой отослан пакет по адресу, не принадлежащему сети Dora.
Пусть имеется следующего вида IP-сеть, в состав которой входят три подсети с именами DORA, MIRA, ERA.
Для объединения подсетей используется шлюз Delta. Таблица маршрутов в узле alpha имеет следующий вид.
Сеть | Флаг вида маршрутизации | Шлюз | Номер интерфейса |
Dora (223.1.2) | Прямая | Нет | |
Mira (223.1.3) | Косвенная | Delta (223.1.2.4) | |
Era (223.1.4) | Косвенная | Delta (223.1.2.4) |
Порядок действий, осуществляемых при косвенной маршрутизации следующий. Узел alpha посылает IP-пакет узлу Epsilon с IP-адресом назначения 223.1.3.2. Модуль IP выделяет сетевой номер 223.1.3 и отыскивает соответствующую (вторую) строку в таблице маршрутов. Запись в этой строке указывает на то, что узел Epsilon (ЭВМ) доступен через шлюз Delta и доступ осуществляется через интерфейс с номером 1. Программный модуль ARP в узле alpha с помощью своей таблицы выполняет преобразование IP-адреса узла Delta в соответствующий аппаратный адрес узла Delta. IP-пакет, содержащий IP-адрес места назначения Epsilon, из узла alpha отсылается через интерфейс с номером 1 шлюзу Delta.
В узле Delta IP-пакет принимается через сетевой интерфейс с номером 1 и передается программному модулю IP, который проверяет IP-адрес места назначения и так как IP-адрес не соответствует ни одному из собственных IP-адресов узла Delta, то шлюзу необходимо ретранслировать принятый IP-пакет. Модуль IP в узле Delta выделяет сетевой номер из IP-адреса места назначения IP-пакета (223.1.3) и отыскивает соответствующую строку в следующей таблице маршрутов узла Delta.
Сеть | Флаг вида маршрутизации | Шлюз | Номер интерфейса |
Dora (223.1.2) | Прямая | Нет | |
Mira (223.1.3) | Прямая | Нет | |
Era (223.1.4) | Прямая | Нет |
Модуль IP узла Delta в таблице маршрутов отыскивает вторую строку, в соответствие с которой напрямую посылает IP-пакет узлу Epsilon через интерфейс с номером 3. Пакет содержит IP-адрес и аппаратный адрес места назначения, которым является узел Epsilon (223.1.2.2).
Узел Epsilon принимает IP-пакет и модуль IP этого узла проверяет IP-адрес места назначения пакета. Указанный адрес соответствует IP-адресу Epsilon поэтому содержимое IP-пакета передается протокольному программному модулю верхнего уровня.
Формирование исходных значений таблиц маршрутов осуществляется при запуске системы с помощью специальных команд, которые помещаются в стартовом файле. В процессе функционирования сети в таблицы маршрутов можно добавлять новые строки с помощью так называемых сообщений (смотри протокол ICMP).
Такие добавления позволяют устанавливать более выгодные маршруты (осуществляется перенаправление). Некоторые маршруты в процессе работы могут разрушаться из-за неработоспособности шлюза. При выявлении неработоспособности шлюза предусмотрена возможность исключения соответствующей строки из таблицы маршрутов. Динамическое изменение таблиц маршрутов позволяет создавать выгодные маршруты.
Таблица маршрутов может быть исходно задана с помощью стартового файла, содержащего, например, следующие команды.
Ifconfig ie0 128.6.4.1 netmask 255.255.255.0
Route add 128.6.2.0 128.6.4.1 1 (добавление к сети шлюза, 1 – метрика)
Route add default 128.6.4.27 1
Используемая в командах метрика задает расстояние до IP-сети. Расстояние представляется количеством шлюзов на пути между двумя IP-сетями. Для доступа к IP-сети 128.6.2 должен использоваться шлюз 128.6.4.1. В соответствие с командами приведенного выше стартового файла в таблице маршрутов будут сформированы следующие строки.
Сеть | Флаг вида маршрутизации | Шлюз | Номер интерфейса |
128.6.4 | Прямая | Нет | |
128.6.2 | Косвенная | 128.6.4.1 | |
default | Косвенная | 128.6.4.27 |
Последняя строка таблицы определяет маршрут по умолчанию, используемый в том случае, если в таблице маршрутов отсутствует сетевой номер из IP-адреса места назначения передаваемого IP-пакета. Маршрут по умолчанию указывает IP-адрес шлюза, который имеет информацию для маршрутизации IP-пакетов со всеми возможными адресами назначения.
Если IP-сеть имеет один шлюз, то в таблице маршрутов устанавливается одна запись, указывающая этот шлюз в качестве маршрута по умолчанию. При наличии в сети нескольких шлюзов могут быть использованы несколько маршрутов, среди которых существует более выгодный. Если для такой сети таблица маршрутов имеет только одну запись, указывающую какой-либо шлюз в качестве маршрута по умолчанию (адрес одного шлюза), то можно использовать другие шлюзы для указания выгодных маршрутов. Эти “другие” шлюзы должны послать сообщение перенаправления в том случае, если они получат IP-пакет, доставка которого возможна по более выгодному маршруту.
Сообщение перенаправления – это специальный тип сообщения (управляющее) протокола ICMP. Сообщение перенаправления содержит указание, которое предписывает для конкретного IP-адреса использование конкретного шлюза, а не шлюза по умолчанию. Сообщение перенаправления используется для добавления записей в таблицу маршрутов.
Например, пусть в начале работы таблица маршрутов имеет вид, заданный командами стартового файла (смотри выше) и пусть имеется шлюз 128.6.4.30, через который пролегает более выгодный путь доступа к IP-сети 128.6.7. Пусть необходимо переслать IP-пакеты по IP-адресу 128.6.7.23.
Первый IP-пакет пойдет на шлюз по умолчанию, так как это единственный маршрут в исходной таблице маршрутов. Однако шлюз 128.6.4.27 имеет информацию о том, что существует более выгодный маршрут, который проходит через шлюз 128.6.4.30. Тогда шлюз 128.6.4.27 после получения IP-пакета возвращает сообщение перенаправления, в котором имеется указание о том, что IP-пакеты для узла 128.6.7.23 должны пересылаться через шлюз 128.6.4.30. Программный модуль IP на ЭВМ, являющейся источником IP-пакета, должен добавить следующую запись в существующую таблицу маршрутов.
Сеть | Флаг вида маршрутизации | Шлюз | Номер интерфейса |
128.6.7 | Косвенная | 128.6.4.30 |
После изменения таблицы маршрутов все последующие IP-пакеты для узла 128.6.7.23 будут посланы через указанный шлюз, то есть более выгодным путем.
Кроме возможности добавления записей в таблицу маршрутов необходимо уметь исключать строки из таблицы маршрутов, если шлюз оказывается неработоспособным. Если какой-либо маршрут оказывается разрушенным, то осуществляется возврат к маршруту по умолчанию. Неисправный шлюз не может послать сообщение перенаправления, поэтому за работоспособностью шлюза должна следить ЭВМ, связанная со шлюзом. Нарушение работоспособности сети (разрыв связи) определяется с помощью различных таймеров, имеющихся в программном модуле TCP. При обнаружении разрыва связи маршрут помечается как плохой, а соответствующая строка в таблице маршрутов исключается и тем самым осуществляется возврат к маршруту по умолчанию. Возможность динамического изменения таблицы маршрутов позволяет пересылать IP-пакеты по выгодным маршрутам.
Существует другой метод выбора более выгодного маршрута пересылки IP-пакетов. В другом методе корректировки таблицы маршрутов используется протокол ARP с представителем. Этот метод не предусматривает изменение таблицы маршрутов, так как основан на использовании аппаратных адресов. При этом методе необходимо настроить узел так, будто все другие ЭВМ подключены напрямую к подсети, содержащей данный узел. Для этой цели могут быть использованы следующая команда. Route add default 128.6.4.2 0, в которой задан IP-адрес настраиваемого узла и нулевая метрика.
Если требуется переслать IP-пакет из узла, то ЭВМ узла должна определить аппаратный адрес узла назначения с помощью ARP-таблицы, сформировать и отправить кадр. Если в ARP-таблице отсутствует соответствующая запись, то посылается широковещательный ARP-запрос. Узел с искомым IP-адресом назначения принимает запрос и в ARP-ответе сообщает свой аппаратный адрес.
Протокол ARP с представителем основан на том, что шлюзы работают как представители удаленных узлов. Например, пусть имеется следующая сеть.
Пусть из узла A в узел B пересылается IP-пакет. Две подсети, в которые входят соответственно узел A и узел B, объединены шлюзом R. Если в ARP-таблице узла A нет маршрута доступа к узлу B, то узел A посылает ARP-запрос узлу B. Конечно, узел B не может ответить, так как он находится в другой подсети и не воспримет ARP-запрос, но шлюз R может выполнить работу от имени узла B и сообщить аппаратный адрес шлюза, например, 02:07:01:00:EB: CD. Это создает иллюзию, будто узел B подключен к той же локальной сети (подсети), что и узел A и с тем же аппаратным адресом.
Когда из узла A возникает необходимость послать IP-пакет узлу B, то узел A использует указанный выше аппаратный адрес для формирования канального кадра и кадр попадает к шлюзу R, который осуществляет перенаправление пакета по назначению.
Этот метод упрощает работу по начальной установке таблицы маршрутов. При данном методе необходимо указать в команде установки маршрута по умолчанию нулевую метрику. Тогда при замене IP-адреса шлюза команду начальной установки менять не придется. Так как протокол ARP с представителем не требует явного задания IP-адреса шлюза и любой шлюз может ответить на ARP-запрос.
Дата добавления: 2015-07-10; просмотров: 71 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ФАКТОРИНГ КАК ОСОБАЯ ФОРМА КРЕДИТОВАНИЯ. | | | ПРОИЗВОДИТЕЛЬНОСТЬ ТРУДА, ЕЕ ИЗМЕРЕНИЕ И ПУТИ ПОВЫШЕНИЯ |