Тема 10 Сетевой уровень сети Internet Презентацию лекций разработал доцент кафедры оптимизации систем управления Томского политехнического университета Комагоров Владимир Петрович
Сетевой уровень Internet использует протокол IP (Internet Protocol) и протокол управляющих сообщений Internet (ICMP). Модуль IP выполняет основную работу сетевого уровня. IP протокол реализует дейтаграммный способ передачи данных. Он формирует (инкапсулирует) IP дейтаграмму, которая состоит из IP заголовка и данных. Размер IP заголовка всегда кратен 32 битному слову, даже если для этого он должен дополниться до нужной величины. Он содержит всю необходимую для доставки инкапсулированных данных по сети информацию и равен 20 байтам. На рис. 49 приведен формат IP дейтаграммы. Она включает в себя следующие разделы.
Номер версии (VERS). Протокол Internet все время развивается. Первые четыре бита в IP заголовке (поле «номер версии») обозначают версию протокола Internet, который создал данную дейтаграмму. Когда формат данных протокола Internet меняется, номер его версии в дейтаграмме увеличивается, позволяя другим модулям IP отбрасывать дейтаграммы, обработать которые они не в состоянии из за устаревшего формата данных. Модуль IP, принявший IP дейтаграмму версии, которую он не может обработать, может сообщить об этом источнику. В настоящее время применяется версия IP протокола V.4.
Длина заголовка (HLEN). Поле «длина заголовка» задает длину заголовка в 32 битных словах. Данное поле обычно содержит число 5 (пять 32 битных слов равны 20 байтам). В двоичном виде это поле равно Тип службы (TOS). Перед разработчиком программ встает вопрос: что выгоднее увеличение производительности или уменьшение используемой памяти? Это относится к приоритетам. Следующие восемь битов в IP заголовке (поле «тип службы») определяют приоритет IP пакета. Биты поля «тип службы» в IP заголовке позволяют сетевому уровню принять обоснованное решение по поводу передачи пакетов, основываясь на их различных приоритетах.
Тип службы (TOS) Приорите т Задержка Произво – дитель - ность Надеж - ность Стоимост ь Не исполь - зуется
Первые три бита поля «тип службы» образуют подраздел «приоритет». Подраздел «приоритет» может принимать значения от нуля до семи (от 000 до 111) и обозначает уровень «важности» переносимых данных. Следующие четыре подраздела поля «тип службы» также определяют приоритеты, которые игнорируются большинством маршрутизаторов и сетевых компьютеров. Например, подраздел «задержка» говорит о том, что задержку в распространении пакета желательно сделать минимальной. Подраздел «пропускная способность» позволяет увеличить полосу пропускания до максимально возможной величины. Установленный в единицу бит «надежность» позволяет сделать доставку пакета максимально надежной. Установка бита «стоимость» требует минимизировать затраты на доставку данного пакета.
Длина пакета. Имеет длину в шестнадцать битов и задает длину IP – пакета, включая сам заголовок. Стандарт предписывает считать длину пакета в байтах, а не в 32 – разрядных словах, как в поле «длина заголовка.».Данные из этих двух полей позволяют найти начало и конец инкапсулированных данных, а также подсчитать их длину. Для поля «длина пакета» отведено 16 битов, а это значит, что максимальная длина пакета равна байтов. Поле идентификации в IP заголовке обусловлено часто случающейся фрагментацией пакетов в Internet. Сетевые компьютеры используют поле идентификации с целью однозначно идентифицировать каждый посланный ими пакет данных. Когда сетевой компьютер получает пакет, он определяет, к какой дейтаграмме относится определенный фрагмент при помощи этого поля.
Важную роль в передаче данных по протоколу IP является фрагментация. Некоторые сетевые технологии, например Ethernet, имеют ограничение на максимальную длину передаваемого блока данных, называемую «блок данных максимальной длины» или MTV. MTV определяет максимальную длину блока данных, которую данная сетевая среда в состоянии перенести. Если блок данных имеет большую длину, он автоматически разбивается на части меньшей длины, каждая из которых передается затем по отдельности. Фрагментация это процесс разбиения отдельного пакета данных на некоторое количество пакетов меньшего размера. Фрагментация происходит в случае, если длина пакета превосходит MTV физического или сетевого уровня. Однако она также происходит, когда пакет попадает в маршрутизатор с MTV меньшим, чем MTV локальной сети источника.
Для управления фрагментацией протокол IP использует первый и последний биты в трех битовом поле флагов. Первый бит называется «фрагментация запрещена» и устанавливается сетевым программным обеспечением для тестирования и отладки. Кроме того, существуют некоторые приложения, данные которых нельзя фрагментировать. Включая режим «фрагментация запрещена», то есть устанавливая соответствующий бит, следует иметь в виду, что если модуль IP обнаружит, что фрагментация должна произойти, протокол TCP/IP отбросит IP пакет и вернет сообщение об ошибке источнику пакета.
Последний бит поля флагов называется «фрагмент продолжение». В процессе фрагментации пакета протокол IP устанавливает этот бит в единицу во всех фрагментах, кроме последнего. В последнем фрагменте данных бит равен нулю. Для повышения эффективности и производительности протокол IP пытается послать пакет наибольшего допустимого размера. Однако иногда фрагментации не избежать. До начала фрагментации протокол IP рассчитывает точку деления (breaking point), равную значению MTV низлежащего уровня сети. Точка деления это расположение байта в пакете, на котором произойдет разделение.
Точка деления представляет собой смещение или расстояние от начала дейтаграммы. Каждая точка деления записывается протоколом IP в поле «смещение фрагмента» заголовка только что собранной IP дейтаграммы. Таким образом, IP заголовок каждой дейтаграммы содержит смещение данного фрагмента относительно начала данных. Значение точки деления используется протоколом IP на другом конце соединения, чтобы правильно собрать фрагментированный пакет. Время существования (TTL). Восьмибитовое поле «время существования» задает срок существования пакета в сети. Протокол TCP/IP предписывает каждому маршрутизатору на пути между отправителем и получателем уменьшить значение поля «время существования пакета».
Каждый маршрутизатор должен контролировать время появления IP пакета. Отправляя пакет дальше, маршрутизатор уменьшает поле «время существования» на количество секунд, которое пакет ждал в буфере, если пакет был задержан. Если поле «время существования» становится равным нулю до того, как пакет достигнет места назначения, протокол TCP/IP уничтожит его и предупредит компьютер источник пакета об этом событии, пользуясь протоколом управляющих сообщений ICMP. Протокол. Транспортный уровень TCP/IP имеет два протокола: протокол управления транспортировкой TCP и протокол пользовательских дейтаграмм UDP.
Эти протоколы используют протокол IP для доставки данных. Восьмибитовое поле «протокол» в IP заголовке указывает на протокол источник данных, инкапсулированных в IP дейтаграмму. Например, если значением поля «протокол» является шесть (двоичное ), это значит, что данные сформированы из сегмента TCP. Значение 17 (двоичное ), означает, что данные принадлежат UDP дейтаграмме. Сетевой уровень пользуется значением в поле «протокол» при передаче данных на транспортный уровень. Значение поля указывает на определенный модуль транспортного уровня, которому принадлежат данные IP пакета.
Контрольная сумма заголовка. Протокол IP является ненадежным протоколом. Поле контрольный суммы в IP заголовке содержит шестнадцатибитное число, являющееся контрольной суммой только для IP заголовка. Данные пакета в формировании контрольной суммы участия не принимают. Проверка целостности данных IP дейтаграммы возлагается на протоколы более высоких уровней, тех, что создали данные для IP дейтаграммы. Для подсчета контрольной суммы IP заголовок трактуется, как последовательность шестнадцатибитных чисел. В поле контрольной суммы помещается результат дополнения до единицы суммы всех чисел, составляющих заголовок.
Поле контрольной суммы при подсчете принимается равным нулю, то есть компьютер игнорирует значение поля при всех подсчетах контрольной суммы заголовка. Компьютер, принявший дейтаграмму, подсчитывает новую контрольную сумму, в том числе и с полем старой контрольной суммы, подсчитанной ранее при передаче. Если заголовок не изменится, то есть его повреждения не произошло, новая контрольная сумма должна быть «все единицы». Если это не так, то есть произошла ошибка при передаче, протокол TCP/IP отбрасывает дейтаграмму. При этом никакого сообщения компьютеру источнику дейтаграммы не передается.
Протокол IP ненадежный протокол. Он не гарантирует доставки данных. Однако проверка контрольной суммы заголовка пакета гарантирует, что, если данные дойдут до узла назначения, они дойдут в неизменном виде, иначе модуль IP распознает и отбросит ошибочный пакет. Протокол TCP/IP не требует от модуля IP выдавать какое либо сообщение о появлении поврежденного пакета. Надежные протоколы, к каковым относится TCP, никогда не полагается на способность IP выдавать такие сообщения. Вместо этого они используют собственные механизмы.
IP адрес источника и получателя битное поле «адрес источника» содержит IP адрес компьютера – отправителя данных. Это поле никогда не изменяется, сколько бы маршрутизаторов не находилось на пути следования пакета. Поле «адрес источника» всегда содержит адрес отправителя пакета. Так же, как и адрес источника, адрес получателя является стандартным 32 битным IP адресом пункта назначения пакета. Он может быть либо индивидуальным, либо, состоять из единиц в случае широковещательной передачи. Для доставки данных в сети Internet используются таблицы IP маршрутизации. Они представляют собой специальные таблицы, в которых хранятся адреса получателей отправленных дейтаграмм.
Особенностями таблиц IP маршрутизации является то, что в них хранятся только номера сетей, а не компьютеров. При этом, таблицы IP маршрутизации основывают свою работу на том факте, что все хосты на одной и той же сети имеют один и тот же сетевой номер. Каждая запись в таблице маршрутизации состоит из трех следующих полей: сети (network), шлюза (gateway) и флагов (flags). Первые два это сетевые номера, а поле флагов указывает на то, что эти сети напрямую соединены с сетью, которой принадлежит данная таблица. Поле «сеть» содержит список сетевых идентификаторов. Поле «шлюз» содержит информацию о маршрутизаторе.
Это поле указывает маршрутизатор, служащий передатчиком пакетов в сеть, идентификатор которой указан в поле «сеть». Однако это не значит, что маршрутизатор напрямую связан с этой сетью назначения. В таблице указан тот маршрутизатор, который служит следующим этапом при движении пакета к месту назначения. Доставка IP дейтаграммы делится на непосредственную и промежуточную. При непосредственной передаче, когда компьютер получает пакет, его IP протокол исследует идентификатор сети назначения, размещенный в заголовке пакета. Затем IP протокол запрашивает запись для сети с этим идентификатором у таблицы маршрутизации. Если запись найдена, исследуется содержимое поле флагов.
Если в поле флагов указано прямое соединение, это значит, что пакет можно доставить, используя формат кадра данных низлежащего уровня соединения (например, в сетях технологии Ethernet). Далее процесс доставки будет непосредственно зависеть от применяемой сетевой технологии. Таким образом, непосредственная доставка значит, что сеть может преобразовывать адрес IP получателя в адрес формата канального уровня (например, адрес сети Ethernet). Сеть инкапсулирует IP датаграмму в кадр данных и передает непосредственно пункту назначения.
В случае промежуточной доставки запись в таблице маршрутизации говорит о том, что устройство с данным адресом не соединено напрямую с сетью, в которую нужно передать пакет. Значит, необходимо осуществить процесс промежуточной доставки. Таблица маршуризации определенной сети содержит данные только о маршрутизаторах, связанных с ней напрямую. Это значит, что сеть может передать пакет данных, пользуясь непосредственной доставкой, любому из них. А затем промежуточной маршрутизатор передает следующему маршрутизатору до тех пор, пока не будет достигнут адрес назначения. Опции. Восьмибитное поле опций позволяет тестировать и отлаживать разнообразные сетевые приложения.