Введение 3
1 Протоколы TCP/IP . Принципы, протоколы и архитектура 6
1.1 Структура стека протоколов TCP/IP 6
1.2 Протокол IP 12
1.3 Принципы построения IP-адресов 14
1.4 IPing - новое поколение протоколов IP 16
1.5. Протокол пользовательских датаграмм - UDP 20
2 Классификация алгоритмов маршрутизации и общие сведения 23
2.1 Цели разработки алгоритмов маршрутизации 23
2.2 Типы алгоритмов 25
2.3 Показатели алгоритмов (метрики) 28
2.4 Таблицы маршрутизации 30
2.4.1 Типы записей в таблице маршрутизации 30
2.4.2 Структура таблицы маршрутизации 31
3 Создание объединенной IP-сети со статической маршрутизацией 32
3.1 Среда со статической маршрутизацией 32
3.2 Вопросы проектирования среды со статической маршрутизацией 33
3.3 Среды с использованием вызова по требованию 33
3.4 Безопасность статической маршрутизации 34
3.5 Развертывание статической маршрутизации 34
4 Протоколы динамической маршрутизации 36
4.1 Общие сведения 36
4.2 Внутренний протокол маршрутизации RIP 39
4.3 Протокол маршрутизации OSPF 47
4.4 Протокол маршрутизации IGRP 63
4.5 Внешний протокол маршрутизации BGP-4 68
4.6 Протокол внешних маршрутизаторов EGP. 78
5 Создание объединенной сети с протоколом маршрутизации RIP для IP 82
5.1 Среды с протоколом RIP для IP 82
5.2 Стоимость маршрутов RIP 83
5.3 Смешанные среды RIP версии 1 и RIP версии 2 83
5.4 Проверка подлинности RIP версии 2 84
5.5 Модель с одним адаптером 84
5.6 Модель с несколькими адаптерами 85
5.7 Пассивные RIP-узлы 85
5.8 Безопасность протокола RIP для IP 86
5.9 Задание равных маршрутизаторов 86
5.10 Фильтры маршрутов 86
5.11 Соседи 86
6 Реализация маршрутизатора на основе протокола RIP. 88
6.1 Описание алшоритма работы сервиса RIP
88
7 Технико – экономическое обоснованин. 93
7.1. Характеристика программного продукта 93
7.2. Определение затрат труда на разработку программного продукта 94
7.2.1. Определение условного количества операторов программы, трудоемкости 94
7.2.2. Определение численности исполнителей 97
7.3 Расчет затрат на разработку 100
7.4 Экономический эффект от реализации и внедрения программного продукта
103
8. Безопасность жизнедеятельности
106
8.1 Анализ опасных и вредных производственных факторов при работе с компьютером
106
8.2 Производственная санитария, основные мероприятия по созданию нормальных метеорологических условий 108
8.3 Освещение рабочих мест 110
8.3.1 Проектирование и расчеты естественного освещения 110
8.3.2 Расчет искусственного освещения 112
8.4 Расчет вентиляции. 113
8.4.1 Расчет обще обменной вентиляции 114
8.4.2 Расчет местной вентиляции 114
8.5 Общие требования безопасности труда на рабочем месте 114
8.5.1 Требования к видеодисплейным терминалам (ВДТ) и персональным компьютерам 115
8.5.2 Требования к помещениям для эксплуатации ВДТ и ПЭВМ 116
8.6 Защита от статического электричества. Поражение электрическим током
117
8.7 Требования по обеспечению пожаробезопасности 120
8.8 Водоснабжение и канализация 121
8.9 Охрана труда программистов 122
8.10 Определение оптимальных условий труда инженера – программиста 122
Список литературы: 125
Введение
Сеть Internet - это сеть сетей, объединяющая как локальные сети, так и глобальные сети. Поэтому центральным местом при обсуждении принципов построения сети является семейство протоколов межсетевого обмена TCP/IP.
Под термином "TCP/IP" обычно понимают все, что связано с протоколами TCP и IP. Это не только собственно сами проколы с указанными именами, но и протоколы построенные на использовании TCP и IP, и прикладные программы.
Главной задачей стека TCP/IP является объединение в сеть пакетных подсетей через шлюзы. Каждая сеть работает по своим собственным законам, однако предполагается, что шлюз может принять пакет из другой сети и доставить его по указанному адресу. Реально, пакет из одной сети передается в другую подсеть через последовательность шлюзов, которые обеспечивают сквозную маршрутизацию пакетов по всей сети. В данном случае, под шлюзом понимается точка соединения сетей. При этом соединяться могут как локальные сети, так и глобальные сети. В качестве шлюза могут выступать как специальные устройства, маршрутизаторы, например, так и компьютеры, которые имеют программное обеспечение, выполняющее функции маршрутизации пакетов.
Маршрутизация - это процедура определения пути следования пакета из
одной сети в другую. Такой механизм доставки становится возможным благодаря
реализации во всех узлах сети протокола межсетевого обмена IP. Если
обратиться к истории создания сети Internet, то с самого начала
предполагалось разработать спецификации сети коммутации пакетов. Это
значит, что любое сообщение, которое отправляется по сети, должно быть при
отправке разделино на фрагменты. Каждый из фрагментов должен быть снабжен
адресами отправителя и получателя, а также номером этого пакета в
последовательности пакетов, составляющих все сообщение в целом. Такая
система позволяет на каждом шлюзе выбирать маршрут, основываясь на текущей
информации о состоянии сети, что повышает надежность системы в целом. При
этом каждый пакет может пройти от отправителя к получателю по своему
собственному маршруту. Порядок получения пакетов получателем не имеет
большого значения, т.к. каждый пакет несет в себе информацию о своем месте
в сообщении.
При создании этой системы принципиальным было обеспечение ее живучести и
надежной доставки сообщений, т.к. предполагалось, что система должна была
обеспечивать управление Вооруженными Силами США в случае нанесения ядерного
удара по территории страны.
Коммутаторы, организующие рабочую группу, мосты, соединяющие два сегмента сети и локализующие трафик в пределах каждого из них, а также switch, позволяющий соединять несколько сегментов локальной вычислительной сети - это все устройства, предназначенные для работы в сетях IEEE 802.3 или Еthernet. Однако, существует особый тип оборудования, называемый маршрутизаторами (routегs), который применяется в сетях со сложной конфигурацией для связи ее участков с различными сетевыми протоколами (в том числе и для доступа к глобальным (WАN) сетям), а также для более эффективного разделения трафика и использования альтернативных путей между узлами сети. Основная цель применения маршрутизаторов - объединение разнородных сетей и обслуживание альтернативных путей.
Различные типы маршрутизаторов отличаются количеством и типами своих
портов, что собственно и определяет места их использования. Маршрутизаторы,
например, могут быть использованы в локальной сети Ethernet для
эффективного управления трафиком при наличии большого числа сегментов сети,
для соединения сети типа Еthernet с сетями другого типа, например Тоkеn
Ring, FDDI, а также для обеспечения выходов локальных сетей на глобальную
сеть.
Маршрутизаторы не просто осуществляют связь разных типов сетей и обеспечивают доступ к глобальной сети, но и могут управлять трафиком на основе протокола сетевого уровня (третьего в модели OSI), то есть на более высоком уровне по сравнению с коммутаторами. Необходимость в таком управлении возникает при усложнении топологии сети и росте числа ее узлов, если в сети появляются избыточные пути, когда нужно решать задачу максимально эффективной и быстрой доставки отправленного пакета по назначению. При этом существует два основных алгоритма определения наиболее выгодного пути и способа доставки данных: RIP и OSPF. При использовании протокола маршрутизации RIР, основным критерием выбора наиболее эффективного пути является минимальное число "хопов" (hops), т.е. сетевых устройств между узлами. Этот протокол минимально загружает процессор мартрутизатора и предельно упрощает процесс конфигурирования, но он не рационально управляет трафиком. При использовании OSPF наилучший путь выбирается не только с точки зрения минимизации числа хопов, но и с учетом других критериев: производительности сети, задержки при передаче пакета и т.д. Сети большого размера, чувствительные к перегрузке трафика и базирующиеся на сложной маршрутизирующей аппаратуре, требуют использования протокола ОSРF. Реализации этого протокола возможна только на маршрутизаторах с достаточно мощным процессором, т.к. его реализация требует существенных процессинговых затрат.
Маршрутизация в сетях, как правило, осуществляться с применением пяти
популярных сетевых протоколов - ТСР/IР, Nоvеll IРХ, АррlеТаlk II, DECnеt
Phase IV и Хегох ХNS. Если маршрутизатору попадается пакет неизвестного
формата, он начинает с ним работать как обучающийся мост. Кроме того,
маршрутизатор обеспечивает более высокий уровень локализации трафика, чем
мост, предоставляя возможность фильтрации широковещательных пакетов, а
также пакетов с неизвестными адресами назначения, поскольку умеет
обрабатывать адрес сети.
1 Протоколы TCP/IP . Принципы, протоколы и архитектура
1.1 Структура стека протоколов TCP/IP
При рассмотрении процедур межсетевого взаимодействия всегда опираются на
стандарты, разработанные International Standard Organization (ISO). Эти
стандарты получили название "Семиуровневой модели сетевого обмена" или в
английском варианте "Open System Interconnection Reference Model" (OSI
Ref.Model). В данной модели обмен информацией может быть представлен в виде
стека, представленного на рисунке 1.1. Как видно из рисунка, в этой модели
определяется все - от стандарта физического соединения сетей до протоколов
обмена прикладного программного обеспечения. Дадим некоторые комментарии к
этой модели.
Физический уровень данной модели определяет характеристики физической
сети передачи данных, которая используется для межсетевого обмена. Это
такие параметры, как: напряжение в сети, сила тока, число контактов на
разъемах и т.п. Типичными стандартами этого уровня являются, например
RS232C, V35, IEEE 802.3 и т.п.
К канальному уровню отнесены протоколы, определяющие соединение,
например, SLIP (Strial Line Internet Protocol), PPP (Point to Point
Protocol), NDIS, пакетный протокол, ODI и т.п. В данном случае речь идет о
протоколе взаимодействия между драйверами устройств и устройствами, с одной
стороны, а с другой стороны, между операционной системой и драйверами
устройства. Такое определение основывается на том, что драйвер - это,
фактически, конвертор данных из оного формата в другой, но при этом он
может иметь и свой внутренний формат данных.
К сетевому (межсетевому) уровню относятся протоколы, которые отвечают за
отправку и получение данных, или, другими словами, за соединение
отправителя и получателя. Вообще говоря, эта терминология пошла от сетей
коммутации каналов, когда отправитель и получатель действительно
соединяются на время работы каналом связи. Применительно к сетям TCP/IP,
такая терминология не очень приемлема. К этому уровню в TCP/IP относят
протокол IP (Internet Protocol). Именно здесь определяется отправитель и
получатель, именно здесь находится необходимая информация для доставки
пакета по сети.
Транспортный уровень отвечает за надежность доставки данных, и здесь,
проверяя контрольные суммы, принимается решение о сборке сообщения в одно
целое. В Internet транспортный уровень представлен
Семиуровневая модель протоколов межсетевого обмена
OSI
Рисунок 1.1
двумя протоколами TCP (Transport Control Protocol) и UDP (User Datagramm
Protocol). Если предыдущий уровень (сетевой) определяет только правила
доставки информации, то транспортный уровень отвечает за целостность
доставляемых данных.
Уровень сессии определяет стандарты взаимодействия между собой
прикладного программного обеспечения. Это может быть некоторый
промежуточный стандарт данных или правила обработки информации. Условно к
этому уровню можно отнеси механизм портов протоколов TCP и UDP и Berkeley
Sockets. Однако обычно, рамках архитектуры TCP/IP такого подразделения не
делают.
Уровень обмена данными с прикладными программами (Presentation Layer) необходим для преобразования данных из промежуточного формата сессии в формат данных приложения. В Internet это преобразование возложено на прикладные программы.
Уровень прикладных программ или приложений определяет протоколы обмена данными этих прикладных программ. В Internet к этому уровню могут быть отнесены такие протоколы, как: FTP, TELNET, HTTP, GOPHER и т.п.
Вообще говоря, стек протоколов TCP отличается от только что рассмотренного стека модели OSI. Обычно его можно представить в виде схемы, представленной на рисунке 1.2
Структура стека протоколов TCP/IP
[pic]
Рисунок 1.2
В этой схеме на уровне доступа к сети располагаются все протоколы доступа к физическим устройствам. Выше располагаются протоколы межсетевого обмена IP, ARP, ICMP. Еще выше основные транспортные протоколы TCP и UDP, которые кроме сбора пакетов в сообщения еще и определяют какому приложению необходимо данные отправить или от какого приложения необходимо данные принять. Над транспортным уровнем располагаются протоколы прикладного уровня, которые используются приложениями для обмена данными.
Базируясь на классификации OSI (Open System Integration) всю архитектуру
протоколов семейства TCP/IP попробуем сопоставить с эталонной моделью
(рисунок 1.3).
Прямоугольниками на схеме обозначены модули, обрабатывающие пакеты, линиями
- пути передачи данных. Прежде чем обсуждать эту схему, введем необходимую
для этого терминологию.
Драйвер - программа, непосредственно взаимодействующая с сетевым адаптером.
Модуль - это программа, взаимодействующая с драйвером, с сетевыми прикладными программами или с другими модулями.
Схема приведена для случая подключения узла сети через локальную сеть
Ethernet, поэтому названия блоков данных будут отражать эту специфику.
Схема модулей, реализующих протоколы семейства TCP/IP в узле сети
[pic]
Рисунок 1.3
Сетевой интерфейс - физическое устройство, подключающее компьютер к сети. В нашем случае - карта Ethernet.
Кадр - это блок данных, который принимает/отправляет сетевой интерфейс.
IP-пакет - это блок данных, которым обменивается модуль IP с сетевым интерфейсом.
UDP-датаграмма - блок данных, которым обменивается модуль IP с модулем
UDP.
TCP-сегмент - блок данных, которым обменивается модуль IP с модулем TCP.
Прикладное сообщение - блок данных, которым обмениваются программы сетевых приложений с протоколами транспортного уровня.
Инкапсуляция - способ упаковки данных в формате одного протокола в
формат другого протокола. Например, упаковка IP-пакета в кадр Ethernet или
TCP-сегмента в IP-пакет. Согласно словарю иностранных слов термин
"инкапсуляция" означает "образование капсулы вокруг чужих для организма
веществ (инородных тел, паразитов и т.д.)". В рамках межсетевого обмена
понятие инкапсуляции имеет несколько более расширенный смысл. Если в случае
инкапсуляции IP в Ethernet речь идет действительно о помещении пакета IP в
качестве данных Ethernet-фрейма, или, в случае инкапсуляции TCP в IP,
помещение TCP-сегмента в качестве данных в IP-пакет, то при передаче данных
по коммутируемым каналам происходит дальнейшая "нарезка" пакетов теперь уже
на пакеты SLIP или фреймы PPP.
Инкапсуляция протоколов верхнего уровня в протоколы TCP/IP
[pic]
Рисунок 1.4
Вся схема (рисунок 1.4) называется стеком протоколов TCP/IP или просто
стеком TCP/IP. Чтобы не возвращаться к названиям протоколов расшифруем
аббревиатуры TCP, UDP, ARP, SLIP, PPP, FTP, TELNET, RPC, TFTP, DNS, RIP,
NFS:
TCP - Transmission Control Protocol - базовый транспортный протокол, давший название всему семейству протоколов TCP/IP.
UDP - User Datagram Protocol - второй транспортный протокол семейства
TCP/IP. Различия между TCP и UDP будут обсуждены позже.
ARP - Address Resolution Protocol - протокол используется для определения соответствия IP-адресов и Ethernet-адресов.
SLIP - Serial Line Internet Protocol (Протокол передачи данных по телефонным линиям).
PPP - Point to Point Protocol (Протокол обмена данными "точка-точка").
FTP - File Transfer Protocol (Протокол обмена файлами).
TELNET - протокол эмуляции виртуального терминала.
RPC - Remote Process Control (Протокол управления удаленными процессами).
TFTP - Trivial File Transfer Protocol (Тривиальный протокол передачи файлов).
DNS - Domain Name System (Система доменных имен).
RIP - Routing Information Protocol (Протокол маршрутизации).
NFS - Network File System (Распределенная файловая система и система сетевой печати).
При работе с такими программами прикладного уровня, как FTP или telnet, образуется стек протоколов с использованием модуля TCP, представленный на рисунке 1.5.
Стек протоколов при использовании модуля TCP
[pic]
Рисунок 1.5
При работе с прикладными программами, использующими транспортный
протокол UDP, например, программные средства Network File System (NFS),
используется другой стек, где вместо модуля TCP будет использоваться модуль
UDP (рисунок 1.6).
Стек протоколов при работе через транспортный протокол UDP
[pic]
Рисунок 1.6
При обслуживании блочных потоков данных модули TCP, UDP и драйвер ENET
работают как мультиплексоры, т.е. перенаправляют данные с одного входа на
несколько выходов и наоборот, с многих входов на один выход. Так, драйвер
ENET может направить кадр либо модулю IP, либо модулю ARP, в зависимости от
значения поля "тип" в заголовке кадра. Модуль IP может направить IP-пакет
либо модулю TCP, либо модулю UDP, что определяется полем "протокол" в
заголовке пакета.
Получатель UDP-датаграммы или TCP-сообщения определяется на основании значения поля "порт" в заголовке датаграммы или сообщения.
Все указанные выше значения прописываются в заголовке сообщения модулями на отправляющем компьютере. Так как схема протоколов - это дерево, то к его корню ведет только один путь, при прохождении которого каждый модуль добавляет свои данные в заголовок блока. Машина, принявшая пакет, осуществляет демультиплексирование в соответствии с этими отметками.
Технология Internet поддерживает разные физические среды, из которых
самой распространенной является Ethernet. В последнее время большой интерес
вызывает подключение отдельных машин к сети через TCP-стек по коммутируемым
(телефонным) каналам. С появлением новых магистральных технологий типа ATM
или FrameRelay активно ведутся исследования по инкапсуляции TCP/IP в эти
протоколы. На сегодняшний день многие проблемы решены и существует
оборудование для организации TCP/IP сетей через эти системы.
1.2 Протокол IP
Протокол IP является самым главным во всей иерархии протоколов семейства
TCP/IP. Именно он используется для управления рассылкой TCP/IP пакетов по
сети Internet. Среди различных функций, возложенных на IP обычно выделяют
следующие: а) определение пакета, который является базовым понятием и единицей
передачи данных в сети Internet. Многие зарубежные авторы называют такой IP-
пакет датаграммой; б) определение адресной схемы, которая используется в сети Internet; в) передача данных между канальным уровнем (уровнем доступа к сети) и
транспортным уровнем (другими словами мультиплексирование транспортных
датаграмм во фреймы канального уровня); г) маршрутизация пакетов по сети, т.е. передача пакетов от одного шлюза
к другому с целью передачи пакета машине-получателю; д) "нарезка" и сборка из фрагментов пакетов транспортного уровня.
Главными особенностями протокола IP является отсутствие ориентации на
физическое или виртуальное соединение. Это значит, что прежде чем послать
пакет в сеть, модуль операционной системы, реализующий IP, не проверяет
возможность установки соединения, т.е. никакой управляющей информации кроме
той, что содержится в самом IP-пакете, по сети не передается. Кроме этого,
IP не заботится о проверке целостности информации в поле данных пакета, что
заставляет отнести его к протоколам ненадежной доставки. Целостность данных
проверяется протоколами транспортного уровня (TCP) или протоколами
приложений.
Таким образом, вся информация о пути, по которому должен пройти пакет берется из самой сети в момент прохождения пакета. Именно эта процедура и называется маршрутизацией в отличии от коммутации, которая используется для предварительного установления маршрута следования данных, по которому потом эти данные отправляют.
Принцип маршрутизации является одним из тех факторов, который обеспечил
гибкость сети Internet и ее победу в соревновании с другими сетевыми
технологиями. Надо сказать, что маршрутизация является довольно
ресурсоемкой процедурой, так как требует анализа каждого пакета, который
проходит через шлюз или маршрутизатор, в то время как при коммутации
анализируется только управляющая информация, устанавливается канал,
физический или виртуальный, и все пакеты пересылаются по этому каналу без
анализа маршрутной информации. Однако, эта слабость IP одновременно
является и его силой. При неустойчивой работе сети пакеты могут
пересылаться по различным маршрутам и затем собираться в единое сообщение.
При коммутации путь придется каждый раз вычислять заново для каждого
пакета, а в этом случае коммутация потребует больше накладных затрат, чем
маршрутизация.
Вообще говоря, версий протокола IP существует несколько. В настоящее время используется версия Ipv4 (RFC791). Формат пакета протокола представлена на рисунке 1.7.
Формат пакета Ipv4
[pic]
Рисунок1.7
Фактически, в этом заголовке определены все основные данные, необходимые
для перечисленных выше функций протокола IP: адрес отправителя (4-ое слово
заголовка), адрес получателя (5-ое слово заголовка), общая длина пакета
(поле Total Lenght) и тип пересылаемой датаграммы (поле Protocol).
Используя данные заголовка, машина может определить на какой сетевой интерфейс отправлять пакет. Если IP-адрес получателя принадлежит одной из ее сетей, то на интерфейс этой сети пакет и будет отправлен, в противном случае пакет отправят на другой шлюз.
Если пакет слишком долго "бродит" по сети, то очередной шлюз может
отправить ICMP-пакет на машину-отправитель для того, чтобы уведомить о том,
что надо использовать другой шлюз. При этом, сам IP-пакет будет уничтожен.
На этом принципе работает программа ping, которая используется для деления
маршрутов прохождения пакетов по сети.
Зная протокол транспортного уровня, IP-модуль производит раскапсулирование информации из своего пакета и ее направление на модуль обслуживания соответствующего транспорта.
При обсуждении формата заголовка пакета IP вернемся еще раз к инкапсулированию. Как уже отмечалось, при обычной процедуре инкапсулирования пакет просто помещается в поле данных фрейма, а в случае, когда это не может быть осуществлено, то разбивается на более мелкие фрагменты. Размер максимально возможного фрейма, который передается по сети, определяется величиной MTU (Maximum Transsion Unit), определенной для протокола канального уровня. Для того, чтобы потом восстановить пакет IP должен держать информацию о своем разбиении. Для этой цели используется поля "flags" и "fragmentation offset". В этих полях определяется, какая часть пакета получена в данном фрейме, если этот пакет был фрагментирован на более мелкие части.
Обсуждая протокол IP и вообще все семейство протоколов TCP/IP нельзя не упомянуть, что в настоящее время перед Internet возникло множество по- настоящему сложных проблем, которые требуют изменения базового протокола сети.
1.3 Принципы построения IP-адресов
IP-адреса определены в том же самом RFC, что и протокол IP. Именно адреса являются той базой, на которой строится доставка сообщений через сеть TCP/IP.
IP-адрес - это 4-байтовая последовательность. Принято каждый байт этой
последовательности записывать в виде десятичного числа. Например,
приведенный ниже адрес является адресом одной из машин Выч.центра ВПИ
ВолгГТУ:
195.209.133.14
Каждая точка доступа к сетевому интерфейсу имеет свой IP-адрес.
IP-адрес состоит из двух частей: адреса сети и номера хоста. Вообще говоря, под хостом понимают один компьютер, подключенный к Сети. В последнее время, понятие "хост" можно толковать более расширено. Это может быть и принтер с сетевой картой, и Х-терминал, и вообще любое устройство, которое имеет свой сетевой интерфейс.
Существует 5 классов IP-адресов. Эти классы отличаются друг от друга количеством битов, отведенных на адрес сети и адрес хоста в сети. На рисунке 1.8 показаны эти пять классов.
Классы IP-адресов
[pic]
Рисунок 1.8
Опираясь на эту структуру, можно подсчитать характеристики каждого класса в терминах числа сетей и числа машин в каждой сети.
Таблица 1.1 Характеристики классов IP-адресов
|Класс |Диапазон значений |Возможное количество|Возможное количество|
| |первого октета |сетей |узлов |
|А |1 - 126 |126 |16777214 |
|B |128 – 191 |16382 |65534 |
|C |192 – 223 |2097150 |254 |
|D |224 – 239 |- |228 |
|E |240 – 247 |- |227 |
При разработке структуры IP-адресов предполагалось, что они будут использоваться по разному назначению.
Адреса класса A предназначены для использования в больших сетях общего
пользования. Адреса класса B предназначены для использования в сетях
среднего размера (сети больших компаний, научно-исследовательских
институтов, университетов). Адреса класса C предназначены для использования
в сетях с небольшим числом компьютеров (сети небольших компаний и фирм).
Адреса класса D используют для обращения к группам компьютеров, а адреса
класса E - зарезервированы.
Среди всех IP-адресов имеется несколько зарезервированных под специальные нужды. Ниже приведена таблица зарезервированных адресов.
Таблица 1.2 Выделенные IP-адреса
|IP-адрес |Значение |
|Все нули |Данный узел сети |
|номер сети | все нули |данная IP-сеть |
|все нули | номер узла |узел в данной (локальной) сети |
|все единицы |все узлы в данной локальной IP-сети |
|номер сети | все единицы |все узлы указанной IP-сети |
|127.0.0.1 |"петля" |
Особое внимание в таблице 1.2 уделяется последней строке. Адрес
127.0.0.1 предназначен для тестирования программ и взаимодействия процессов
в рамках одного компьютера. В большинстве случаев в файлах настройки этот
адрес обязательно должен быть указан, иначе система при запуске может
зависнуть (как это случается в SCO Unix). Наличие "петли" чрезвычайно
удобно с точки зрения использования сетевых приложений в локальном режиме
для их тестирования и при разработке интегрированных систем.
Вообще, зарезервирована вся сеть 127.0.0.0. Эта сеть класса A реально не описывает ни одной настоящей сети.
Некоторые зарезервированные адреса используются для широковещательных сообщений. Например, номер сети (строка 2) используется для посылки сообщений этой сети (т.е. сообщений всем компьютерам этой сети). Адреса, содержащие все единицы, используются для широковещательных посылок (для запроса адресов, например).
Реальные адреса выделяются организациями, предоставляющими IP-услуги, из
выделенных для них пулов IP-адресов. Согласно документации NIC (Network
Information Centre) IP-адреса предоставляются бесплатно, но в прейскурантах
наших организаций (как коммерческих, так и некоммерческих), занимающихся
Internet-сервисом предоставление IP-адреса стоит отдельной строкой.
1.4 IPing - новое поколение протоколов IP
До сих пор, при обсуждении IP-технологии, основное внимание уделялось
проблемам межсетевого обмена и путям их решения в рамках существующей
технологии. Однако, все эти задачи, вызванные необходимостью приспособления
IP к новым физическим средам передачи данных меркнут перед действительно
серьезной проблемой - ростом числа пользователей Сети. Казалось бы, что тут
страшного? Число пользователей увеличивается, следовательно растет
популярность сети. Такое положение дел должно только радовать. Но проблема
заключается в том, что Internet стал слишком большой, он перерос заложенные
в него возможности. К 1994 году ISOC опубликовало данные, из которых стало
ясно, что номера сетей класса B практически все уже выбраны, а остались
только сети класса A и класса C. Класс A - это слишком большие сети.
Реальные пользователи сети, такие как университеты или предприятия, не
используют сети этого класса. Класс С хорош для очень небольших
организаций. При современной насыщенности вычислительной техникой только
мелкие конторы будут удовлетворены возможностями этого класса. Но если дело
пойдет и дальше такими темпами, то класс C тоже быстро иссякнет. Самое
парадоксальное заключается в том, что реально не все адреса, из выделенных
пользователям сетей, реально используются. Большое число адресов пропадает
из-за различного рода просчетов при организации подсетей, например, слишком
широкая маска, или наоборот слишком "дальновидного планирования, когда в
сеть закладывают большой запас "на вырост". Не следует думать, что эти
адреса так и останутся невостребованными. Современное "железо" позволяет их
утилизировать достаточно эффективно, но это стоит значительно дороже, чем
простые способы, описанные выше. Одним словом, Internet, став действительно
глобальной сетью, оказался зажатым в тисках своих собственных стандартов.
Нужно было что-то срочно предпринимать, чтобы во время пика своей
популярности не потерпеть сокрушительное фиаско.
В начале 1995 года IETF, после 3-x лет консультаций и дискуссий,
выпустило предложения по новому стандарту протокола IP - IPv6, который еще
называют IPing. К слову, следует заметить, что сейчас Internet-сообщество
живет по стандарту IPv4. IPv6 призван не только решить адресную проблему,
но и попутно помочь решению других задач, стоящих в настоящее время перед
Internet.
Нельзя сказать, что до появления IPv6 не делались попытки обойти
адресные ограничения IPv4. Например, в протоколах BOOTP (BOOTstrap
Protocol) и DHCP (Dynamic Host Configuration Protocol) предлагается
достаточно простой и естественный способ решения проблемы для ситуации,
когда число физических подключений ограничено, или реально все пользователи
не работают в сети одновременно. Типичной ситуацией такого сорта является
доступ к Internet по коммутируемом каналу, например телефону. Ясно, что
одновременно несколько пользователей физически не могут разговаривать по
одному телефону, поэтому каждый из них при установке соединения запрашивает
свою конфигурацию, в том числе и IP-адрес. Адреса выдаются из ограниченного
набора адресов, который закреплен за телефонным пулом. IP-адрес
пользователя может варьироваться от сессии. Фактически, DHCP - это
расширение BOOTP в сторону увеличения числа протоколов, для которых
возможна динамическая настройка удаленных машин. Следует заметить, что DHCP
используют и для облегчения администрирования больших сетей, т.к.
достаточно иметь только базу данных машин на одном компьютере локальной
сети, и из нее загружать настройки удаленных компьютеров при их включении
(под включением понимается, в данном случае не подключение к локальной
компьютерной сети, а включение питания у компьютера, подсоединенного к
сети).
Совершенно очевидно, что приведенный выше пример - это достаточно специфическое решение, ориентированное на специальный вид подключения к сети. Однако, не только адресная проблема определила появление нового протокола. Разработчики позаботились и о масштабируемой адресации IP- пакетов, ввели новые типы адресов, упростили заголовок пакета, ввели идентификацию типа информационных потоков для увеличения эффективности обмена данными, ввели поля идентификации и конфиденциальности информации.
Новый заголовок IP-пакета показан на рисунке 1.13.
[pic]
Рисунок 1.13 Заголовок IPv6
В этом заголовке поле "версия" - номер версии IP, равное 6. Поле
"приоритет" может принимать значения от 0 до 15. Первые 8 значений
закреплены за пакетами, требующими контроля переполнения, например, 0 -
несимвольная информация; 1 - информация заполнения (news), 2 - не критичная
ко времени передача данных (e-mail); 4 - передача данных режима on-line
(FTP, HTTP, NFS и т.п.); 6 - интерактивный обмен данными (telnet, X); 7 -
системные данные или данные управления сетью (SNMP, RIP и т.п.). Поле
"метка потока" предполагается использовать для оптимизации маршрутизации
пакетов. В IPv6 вводится понятие потока, который состоит из пакетов. Пакеты
потока имеют одинаковый адрес отправителя и одинаковый адрес получателя и
ряд других одинаковых опций. Подразумевается, что маршрутизаторы будут
способны обрабатывать это поле и оптимизировать процедуру пересылки
пакетов, принадлежащих одному потоку. В настоящее время алгоритмы и способы
использования поля "метка потока" находятся на стадии обсуждения. Поле
длины пакета определяет длину следующей за заголовком части пакета в
байтах. Поле "следующий заголовок" определяет тип следующего за заголовком
IP-заголовка. Заголовок IPv6 имеет меньшее количество полей, чем заголовок
IPv4. Многие необязательные поля могут быть указаны в дополнительных
заголовках, если это необходимо. Поле "ограничение переходов" определяет
число промежуточных шлюзов, которые ретранслируют пакет в сети. При
прохождении шлюза это число уменьшается на единицу. При достижении значения
"0" пакет уничтожается. После первых 8 байтов в заголовке указываются адрес
отправителя пакета и адрес получателя пакета. Каждый из этих адресов имеет
длину 16 байт. Таким образом, длина заголовка IPv6 составляет 48 байтов.
После 4 байтов IP-адреса стандарта IPv4, шестнадцать байт IP-адреса для
IPv6 выглядят достаточными для удовлетворения любых потребностей Internet.
Не все 2128 адресов можно использовать в качестве адреса сетевого
интерфейса в сети. Предполагается выделение отдельных групп адресов,
согласно специальным префиксам внутри IP-адреса, подобно тому, как это
делалось при определении типов сетей в IPv4. Так, двоичный префикс "0000
010" предполагается закрепить за отображением IPX-адресов в IP-адреса. В
новом стандарте выделяются несколько типов адресов: unicast addresses -
адреса сетевых интерфейсов, anycast addresses - адреса не связанные с
конкретным сетевым интерфейсом, но и не связанные с группой интерфейсов и
multicast addresses - групповые адреса. Разница между последними двумя
группами адресов в том, что anycast address это адрес конкретного
получателя, но определяется адрес сетевого интерфейса только в локальной
сети, где этот интерфейс подключен, а multicast-сообщение предназначено
группе интерфейсов, которые имеют один multicast-адрес. Пока IPv6 не стал
злобой дня, нет смысла углубляться в форматы новых IP-адресов. Отметим
только, что существующие узлы Internet будут функционировать в сети без
каких-либо изменений в их настройках и программном обеспечении. IPv6
предполагает две схемы включения "старых" адресов в новые. Предполагается
расширять 4-х байтовый адрес за счет лидирующих байтов до 16-и байтового.
При этом, для систем, которые не поддерживают IPv6, первые 10 байтов
заполняются нулями, следующие два байта состоят из двоичных единиц, а за
ними следует "старый" IP-адрес. Если система в состоянии поддерживать новый
стандарт, то единицы в 11 и 12 байтах заменяются нулями.
Маршрутизировать IPv6-пакеты предполагается также, как и IPv4-пакеты.
Однако, в стандарт были добавлены три новых возможности маршрутизации:
маршрутизация поставщика IP-услуг, маршрутизация мобильных узлов и
автоматическая переадресация. Эти функции реализуются путем прямого
указания промежуточных адресов шлюзов при маршрутизации пакета. Эти списки
помещаются в дополнительных заголовках, которые можно вставлять вслед за
заголовком IP-пакета.
Кроме перечисленных возможностей, новый протокол позволяет улучшить
защиту IP-трафика. Для этой цели в протоколе предусмотрены специальные
опции. Первая опция предназначена для защиты от подмены IP-адресов машин.
При ее использовании нужно кроме адреса подменять и содержимое поля
идентификации, что усложняет задачу злоумышленника, который маскируется под
другую машину. Вторая опция связана с шифрацией трафика. Пока IPv6 не стал
реально действующим стандартом, говорить о конкретных механизмах шифрации
трудно.
Завершая описание нового стандарта, следует отметить, что он скорее отражает современные проблемы IP-технологии и является достаточно проработанной попыткой их решения. Будет принят новый стандарт или нет покажет ближайшее будущее. Во всяком случае первые образцы программного обеспечения и "железа" уже существуют.
После протоколов межсетевого уровня перейдем к протоколам транспортного уровня и первым из них рассмотрим протокол UDP.
1.5. Протокол пользовательских датаграмм - UDP
В стеке пpотоколов TCP/IP UDP (Протокол пользовательских датаграмм ) обеспечивает основной механизм, используемый пpикладными пpогpаммами для пеpедачи датагpамм другим приложениям. UDP предоставляет протокольные поpты, используемые для pазличения нескольких пpоцессов, выполняющихся на одном компьютеpе. Помимо посылаемых данных каждое UDP-сообщение содеpжит номеp поpта-пpиемника и номеp поpта-отпpавителя, делая возможным для программ UDP на машине-получателе доставлять сообщение соответствующему реципиенту, а для получателя посылать ответ соответствующему отправителю.
UDP использует Internet Protocol для пеpедачи сообщения от одной мащины
к дpугой и обеспечивает ту же самую ненадежную доставку сообщений, что и
IP. UDP не использует подтвеpждения пpихода сообщений, не упоpядочивает
пpиходящие сообщения и не обеспечивает обpатной связи для управления
скоростью передачи инфоpмации между машинами. Поэтому, UDP-сообщения могут
быть потеpяны, pазмножены или пpиходить не по поpядку. Кpоме того, пакеты
могут пpиходить pаньше, чем получатель сможет обpаботать их. В общем можно
сказать, что:
UDP обеспечивает ненадежную службу без установления соединения и использует IP для тpанспоpтиpовки сообщений между машинами. Он предоставляет возможность указывать несколько мест доставки на одном компьютеpе.
Пpикладные пpогpаммы, использующие UDP, несут полную ответственность за пpоблемы надежности, включая потеpю сообщений, дублирование, задеpжку, неупоpядоченность или потеpю связи. К несчастью, пpогpаммисты часто игноpиpуют эти пpоблемы пpи pазpаботке пpогpамм. Кpоме того, поскольку пpогpаммисты тестиpуют свои пpогpаммы, используя надежные высокоскоростные локальные, тестиpование может не выявить возможные ошибки. Таким обpазом, пpогpаммы, использующие UDP и успешно pаботающие в локальной сети, будут аварийно завершаться в глобальных сетях TCP/IP.
UDP-заголовок состоит из двух 32-битных слов:
[pic]
Значения полей:
Source Port - номер порта процесса-отправителя.
Destination Port - номер порта процесса-получателя.
Length - длина UDP-пакета вместе с заголовком в октетах.
Checksum - контрольная сумма. Контрольная сумма вычисляется таким же образом, как и в TCP-заголовке; если UDP-пакет имеет нечетную длину, то при вычислении контрольной суммы к нему добавляется нулевой октет.
После заголовка непосредственно следуют пользовательские данные, переданные модулю UDP прикладным уровнем за один вызов. Протокол UDP рассматривает эти данные как целостное сообщение; он никогда не разбивает сообщение для передачи в нескольких пакетах и не объединяет несколько сообщений для пересылки в одном пакете. Если прикладной процесс N раз вызвал модуль UDP для отправки данных (т.е. запросил отправку N сообщений), то модулем UDP будет сформировано и отправлено N пакетов, и процесс- получатель будет должен N раз вызвать свой модуль UDP для получения всех сообщений.
При получении пакета от межсетевого уровня модуль UDP проверяет контрольную сумму и передает содержимое сообщения прикладному процессу, чей номер порта указан в поле ?Destination Port+.
Если проверка контрольной суммы выявила ошибку или если процесса, подключенного к требуемому порту, не существует, пакет игнорируется. Если пакеты поступают быстрее, чем модуль UDP успевает их обрабатывать, то поступающие пакеты также игнорируются. Протокол UDP не имеет никаких средств подтверждения безошибочного приема данных или сообщения об ошибке, не обеспечивает приход сообщений в порядке отправки, не производит предварительного установления сеанса связи между прикладными процессами, поэтому он является ненадежным протоколом без установления соединения. Если приложение нуждается в подобного рода услугах, оно должно использовать на транспортном уровне протокол TCP.
Максимальная длина UDP-сообщения равна максимальной длине IP-дейтаграммы
(65535 октетов) за вычетом минимального IP-заголовка (20) и UDP-заголовка
(8), т.е. 65507 октетов. На практике обычно используются сообщения длиной
8192 октета.
Примеры прикладных процессов, использующих протокол UDP: NFS (Network
File System - сетевая файловая система), TFTP (Trivial File Transfer
Protocol - простой протокол передачи файлов), SNMP (Simple Network
Management Protocol - простой протокол управления сетью), DNS (Domain Name
Service - доменная служба имен), RIP (Routing Information Protocol).
2 Классификация алгоритмов маршрутизации и общие сведения
Алгоритмы маршрутизации можно дифференцировать, основываясь на нескольких ключевых характеристиках. Во-первых, на работу результирующего протокола маршрутизации влияют конкретные задачи, которые решает разработчик алгоритма. Во-вторых, существуют различные типы алгоритмов маршрутизации, и каждый из них по-разному влияет на сеть и ресурсы маршрутизации. И наконец, алгоритмы маршрутизации используют разнообразные показатели, которые влияют на расчет оптимальных маршрутов. В следующих разделах анализируются эти атрибуты алгоритмов маршрутизации.
2.1 Цели разработки алгоритмов маршрутизации
При разработке алгоритмов маршрутизации часто преследуют одну или несколько из перечисленных ниже целей:
1. Оптимальность
2. Простота и низкие непроизводительные затраты
3. Живучесть и стабильность
4. Быстрая сходимость
5. Гибкость
Оптимальность
Оптимальность, вероятно, является самой общей целью разработки. Она характеризует способность алгоритма маршрутизации выбирать "наилучший" маршрут. Наилучший маршрут зависит от показателей и от "веса" этих показателей, используемых при проведении расчета. Например, алгоритм маршрутизации мог бы использовать несколько пересылок с определенной задержкой, но при расчете "вес" задержки может быть им оценен как очень значительный. Естественно, что протоколы маршрутизации дожны строгo определять свои алгоритмы расчета показателей.
Простота и низкие непроизводительные затраты
Алгоритмы маршрутизации разрабатываются как можно более простыми.
Другими словами, алгоритм маршрутизации должен эффективно обеспечивать свои
функциональные возможности, с мимимальными затратами программного
обеспечения и коэффициентом
использования. Особенно важна эффективность в том случае, когда программа, реализующая алгоритм маршрутизации, должна работать в
компьютере с ограниченными физическими ресурсами.
Живучесть и стабильность :
Алгоритмы маршрутизации должны обладать живучестью. Другими словми, они должны четко функционировать в случае неординарных или непредвиденных обстоятельств, таких как отказы аппаратуры, условия высокой нагрузки и некорректные реализации. Т.к. маршрутизаторы расположены в узловых точках сети, их отказ может вызвать значительные проблемы.
Часто наилучшими алгоритмами маршрутизации оказываются те, которые выдержали испытание временем и доказали свою надежность в различных условиях работы сети.
Быстрая сходимость :
Алгоритмы маршрутизации должны быстро сходиться. Сходимость - это
процесс соглашения между всеми маршрутизаторами по оптимальным маршрутам.
Когда какое-нибудь событие в сети приводит к тому, что маршруты или
отвергаются, или ставновятся доступными, маршрутизаторы рассылают сообщения
об обновлении маршрутизации. Сообщения об обновлении маршрутизации
пронизывают сети, стимулируя пересчет оптимальных маршрутов и, в конечном
итоге, вынуждая все маршрутизаторы придти к соглашению по этим маршрутам.
Алгоритмы мааршрутизации, которые сходятся медленно, могут привести к
образованию петель маршрутизации или выходам из строя сети.
На Рисунке 2.1 изображена петля маршрутизации. В данном случае, в момент времени t1 к маршрутизатору 1 прибывает пакет. Маршрутизатор 1 уже был обновлен и поэтому он знает, что оптимальный маршрут к пункту назначения требует, чтобы следующей остановкой был маршрутизатор 2. Поэтому маршрутизатор 1 пересылает пакет в маршрутизатор 2. Маршрутизатор 2 еще не был обновлен, поэтому он полагает, что следующей оптимальной пересылкой должен быть маршрутизатор 1.
Поэтому маршрутизатор 2 пересылает пакет обратно в маршрутизатор 1. Пакет будет продолжать скакать взад и вперед между двумя маршрутизаторами до тех пор, пока маршрутизатор 2 не получит корректировку маршрутизации, или пока число коммутаций данного пакета не превысит допустимого максимального числа.
Гибкость :
Алгоритмы маршрутизации должны быть также гибкими. Другими словами, алгоритмы маршрутизации должны быстро и точно адаптироваться к разнообразным обстоятельствам в сети. Например, предположим, что сегмент сети отвергнут. Многие алгоритмы
Петля маршрутизации
Рисунок 2.1
маршрутизации, после того как они узнают об этой проблеме, быстро выбирают следующий наилучший путь для всех маршрутов, которые обычно используют этот сегмент. Алгоритмы маршрутизации могут быть запрограммированы таким образом, чтобы они могли адаптироваться к изменениям полосы пропускания сети, размеров очереди к маршрутизатору, величины задержки сети и других переменных.
2.2 Типы алгоритмов
Алгоритмы маршрутизации могут быть классифицированы по типам. Например, алгоритмы могут быть:
1. Статическими или динамическими
2. Одномаршрутными или многомаршрутными
3. Одноуровневыми или иерархическими
4. С интеллектом в главной вычислительной машине или в маршрутизаторе
5. Внутридоменными и междоменными
6. Алгоритмами состояния канала или вектора расстояний
Статические или динамические алгоритмы
Статические алгоритмы маршрутизации вообще вряд ли являются алгоритмами.
Распределение статических таблиц маршрутизации устанавливется
администратором сети до начала маршрутизации. Оно не меняется, если только
администратор сети не изменит его. Алгоритмы, использующие статические
маршруты, просты для разработки и хорошо работают в окружениях, где трафик
сети относительно предсказуем, а схема сети относительно проста.
Т.к. статические системы маршрутизации не могут реагировать на изменения в сети, они, как правило, считаются непригодными для современных крупных, постоянно изменяющихся сетей. Большинство доминирующих алгоритмов маршрутизации 1990гг. - динамические.
Динамические алгоритмы маршрутизации подстраиваются к изменяющимся
обстоятельствам сети в масштабе реального времени. Они выполняют это путем
анализа поступающих сообщений об обновлении маршрутизации. Если в сообщении
указывается, что имело место изменение сети, программы маршрутизации
пересчитывают маршруты и рассылают новые сообщения о корректировке
маршрутизации. Такие сообщения пронизывают сеть, стимулируя маршрутизаторы
заново прогонять свои алгоритмы и соответствующим образом изменять таблицы
маршрутизации. Динамические алгоритмы маршрутизации могут дополнять
статические маршруты там, где это уместно. Например, можно разработать
"маршрутизатор последнего обращения" (т.е. маршрутизатор, в который
отсылаются все неотправленные по определенному маршруту пакеты). Такой
маршрутизатор выполняет роль хранилища неотправленных пакетов, гарантируя,
что все сообщения будут хотя бы определенным образом обработаны.
Одномаршрутные или многомаршрутные алгоритмы
Некоторые сложные протоколы маршрутизации обеспечивают множество
маршрутов к одному и тому же пункту назначения. Такие многомаршрутные
алгоритмы делают возможной мультиплексную передачу трафика по
многочисленным линиям; одномаршрутные алгоритмы не могут делать этого.
Преимущества многомаршрутных алгоритмов очевидны - они могут обеспечить
заначительно большую пропускную способность и надежность.
Одноуровневые или иерархические алгоритмы
Некоторые алгоритмы маршрутизации оперируют в плоском пространстве, в то время как другие используют иерархиии маршрутизации. В одноуровневой системе маршрутизации все маршрутизаторы равны по отношению друг к другу. В иерархической системе маршрутизации некоторые маршрутизаторы формируют то, что составляет основу (backbone - базу) маршрутизации. Пакеты из небазовых маршрутизаторов перемещаются к базовыи маршрутизаторам и пропускаются через них до тех пор, пока не достигнут общей области пункта назначения. Начиная с этого момента, они перемещаются от последнего базового маршрутизатора через один или несколько небазовых маршрутизаторов до конечного пункта назначения.
Системы маршрутизации часто устанавливают логические группы узлов, называемых доменами, или автономными системами (AS), или областями. В иерархических системах одни маршрутизаторы какого-либо домена могут сообщаться с маршрутизаторами других доменов, в то время как другие маршрутизаторы этого домена могут поддерживать связь с маршрутизаторы только в пределах своего домена. В очень крупных сетях могут существовать дополнительные иерархические уровни. Маршрутизаторы наивысшего иерархического уровня образуют базу маршрутизации.
Основным преимуществом иерархической маршрутизации является то, что она имитирует организацию большинства компаний и следовательно, очень хорошо поддерживает их схемы трафика. Большая часть сетевой связи имеет место в пределах групп небольших компаний (доменов). Внутридоменным маршрутизаторам необходимо знать только о других маршрутизаторах в пределах своего домена, поэтому их алгоритмы маршрутизации могут быть упрощенными. Соответственно может быть уменьшен и трафик обновления маршрутизации, зависящий от используемого алгоритма маршрутизации.
Алгоритмы с игнтеллектом в главной вычислительной машине или в маршрутизаторе
Некоторые алгоритмы маршрутизации предполагают, что конечный узел источника определяет весь маршрут. Обычно это называют маршрутизацией от источника. В системах маршрутизации от источника маршрутизаторы действуют просто как устойства хранения и пересылки пакета, без всякий раздумий отсылая его к следующей остановке.
Другие алгоритмы предполагают, что главные вычислительные машины ничего не знают о маршрутах. При использовании этих алгоритмов маршрутизаторы определяют маршрут через об'единенную сеть, базируясь на своих собственных расчетах. В первой системе, рассмотренной выше, интеллект маршрутизации находится в главной вычислительной машине. В системе, рассмотренной во втором случае, интеллектом маршрутизации наделены маршрутизаторы.
Компромисс между маршрутизацией с интеллектом в главной вычислительной
машине и маршрутизацией с интеллектом в маршрутизаторе достигается путем
сопоставления оптимальности маршрута с непроизводительными затратами
трафика. Системы с интеллектом в главной вычислительной машине чаще
выбирают наилучшие маршруты, т.к. они, как правило, находят все возможные
маршруты к пункту назначения, прежде чем пакет будет действительно отослан.
Затем они выбирают наилучший мааршрут, основываясь на определении
оптимальности данной конкретной системы. Однако акт определения всех
маршрутов часто требует значительного трафика поиска и большого об'ема
времени.
Внутридоменные или междоменные алгоритмы
Некоторые алгоритмы маршрутизации действуют только в пределах доменов; другие - как в пределах доменов, так и между ними. Природа этих двух типов алгоритмов различная. Поэтому понятно, что оптимальный алгоритм внутридоменной маршрутизации не обязательно будет оптимальным алгоритмом междоменной маршрутизации.
Алгоритмы состояния канала или вектора расстояния
Алгоритмы состояния канала (известные также как алгоритмы
"первоочередности наикратчайшего маршрута") направляют потоки маршрутной
информации во все узлы об'единенной сети. Однако каждый маршрутизатор
посылает только ту часть маршрутной таблицы, которая описывает состояние
его собственных каналов. Алгоритмы вектора расстояния ( известные также как
алгоритмы Бэлмана-Форда) требуют от каждогo маршрутизатора посылки всей или
части своей маршрутной таблицы, но только своим соседям. Алгоритмы
состояния каналов фактически направляют небольшие корректировки по всем
направлениям, в то время как алгоритмы вектора расстояний отсылают более
крупные корректировки только в соседние маршрутизаторы.
Отличаясь более быстрой сходимостью, алгоритмы состояния каналов несколько меньше склонны к образованию петель маршрутизации, чем алгоритмы вектора расстояния. С другой стороны, алгоритмы состояния канала характеризуются более сложными расчетами в сравнении с алгоритмами вектора расстояний, требуя большей процессорной мощности и памяти, чем алгоритмы вектора расстояний. Вследствие этого, реализация и поддержка алгоритмов состояния канала может быть более дорогостоящей. Несмотря на их различия, оба типа алгоритмов хорошо функционируют при самых различных обстоятельствах.
2.3 Показатели алгоритмов (метрики)
Маршрутные таблицы содержат информацию, которую используют программы коммутации для выбора наилучшего маршрута. Чем характеризуется построение маршрутных таблиц? Какова особенность природы информации, которую они содержат? В данном разделе, посвященном показателям алгоритмов, сделана попытка ответить на вопрос о том, каким образом алгоритм определяет предпочтительность одного маршрута по сравнению с другими.
В алгоритмах маршрутизации используется много различных показателей.
Сложные алгоритмы маршрутизации при выборе маршрута могут базироваться на
множестве показателей, комбинируя их таким образом, что в результате
получается один отдельный (гибридный) показатель. Ниже перечислены
показатели, которые используются в алгоритмах маршрутизации:
1. Длина маршрута
2. Надежность
3. Задержка
4. Ширина полосы пропускания
5. Нагрузка
6. Стоимость связи
Длина маршрута
Длина маршрута является наиболее общим показателем маршрутизации.
Некоторые протоколы маршрутизации позволяют администраторам сети назначать
произвольные цены на каждый канал сети. В этом случае длиной тракта
является сумма расходов, связанных с каждым каналом, который был
траверсирован. Другие протоколы маршрутизации определяют "количество
пересылок", т.е. показатель, характеризующий число проходов, которые пакет
должен совершить на пути от источника до пункта назначения через изделия
об'единения сетей (такие как маршрутизаторы).
Надежность
Надежность, в контексте алгоритмов маршрутизации, относится к надежности
каждого канала сети (обычно описываемой в терминах соотношения бит/ошибка).
Некоторые каналы сети могут отказывать чаще, чем другие. Отказы одних
каналов сети могут быть устранены легче или быстрее, чем отказы других
каналов. При назначении оценок надежности могут быть приняты в расчет любые
факторы надежности. Оценки надежности обычно назначаются каналам сети
администраторами сети. Как правило, это произвольные цифровые величины.
Задержка
Под задержкой маршрутизации обычно понимают отрезок времени, необходимый для передвижения пакета от источника до пункта назначения через об'единенную сеть. Задержка зависит от многих факторов, включая полосу пропускания промежуточных каналов сети, очереди в порт каждого маршрутизатора на пути передвижения пакета, перегруженность сети на всех промежуточных каналах сети и физическое расстояние, на которое необходимо переместить пакет. Т.к. здесь имеет место конгломерация нескольких важных переменных, задержка является наиболее общим и полезным показателем.
Полоса пропускания
Полоса пропускания относится к имеющейся мощности трафика какого-либо
канала. При прочих равных показателях, канал Ethernet 10 Mbps
предпочтителен любой арендованной линии с полосой пропускания 64 Кбайт/сек.
Хотя полоса пропускания является оценкой максимально достижимой пропускной
способности канала, маршруты, проходящие через каналы с большей полосой
пропускания, не обязательно будут лучше маршрутов, проходящих через менее
быстродействующие каналы.
2.4 Таблицы маршрутизации
Решение о пересылке данных по определенному маршруту принимается на основании сведений о том, какие адреса сетей (или идентификаторы (коды) сетей) доступны в объединенной сети. Эти сведения содержатся в базе данных, называемой таблицей маршрутизации. Таблица маршрутизации представляет собой набор записей, называемых маршрутами, которые содержат информацию о расположении сетей с данными идентификаторами в объединенной сети. Таблицы маршрутизации могут существовать не только на маршрутизаторах. Узлы, не являющиеся маршрутизаторами, могут также вести свои таблицы маршрутизации для определения оптимальных маршрутов.
2.4.1 Типы записей в таблице маршрутизации
Каждая запись в таблице маршрутизации считается маршрутом и может иметь один из следующих типов.
1) Маршрут к сети
Маршрут к сети ведет к сети, входящей в объединенную сеть и имеющей указанный код (идентификатор).
2) Маршрут к узлу
Маршрут к узлу ведет к конкретному узлу в объединенной сети, обладающему указанным адресом (кодом сети и кодом узла). Маршруты к узлу обычно используются для создания пользовательских маршрутов к отдельным узлам с целью оптимизации или контроля сетевого трафика.
3) Маршрут по умолчанию
Маршрут по умолчанию используется, если в таблице маршрутизации не были найдены подходящие маршруты. Например, если маршрутизатор или узел не могут найти нужный маршрут к сети или маршрут к узлу, то используется маршрут по умолчанию. Маршрут по умолчанию упрощает настройку узлов. Вместо того чтобы настраивать на узлах маршруты ко всем сетям объединенной сети, используется один маршрут по умолчанию для перенаправления всех пакетов с адресами сетей, не обнаруженными в таблице маршрутизации.
2.4.2 Структура таблицы маршрутизации
Каждая запись таблицы маршрутизации состоит из следующих информационных полей.
1) Код сети
Код сети (или адрес узла для маршрута к узлу). На IP-маршрутизаторах существует дополнительное поле маски подсети, позволяющее выделить код IP- сети из IP-адреса назначения.
2) Адрес пересылки
Адрес, по которому перенаправляются пакеты. Адресом пересылки может быть аппаратный адрес или IP-адрес узла. Для сетей, к которым непосредственно подключен узел или маршрутизатор, поле адреса пересылки может содержать адрес интерфейса, подключенного к сети.
3) Интерфейс
Сетевой интерфейс, используемый при перенаправлении пакетов, предназначенных для сети с данным кодом. Он может задаваться номером порта или другим логическим идентификатором.
4) Метрика
Стоимость использования маршрута. Обычно лучшими считаются маршруты, имеющие наименьшую метрику. При наличии нескольких маршрутов к нужной сети назначения выбирается маршрут с наименьшей метрикой. Некоторые алгоритмы маршрутизации позволяют хранить в таблице маршрутизации только один маршрут к сети с данным кодом, даже при наличии нескольких таких маршрутов. В таком случае метрика используется маршрутизатором для выбора маршрута, заносимого в таблицу маршрутизации.
Примечание
. Вышеприведенный список содержит лишь список полей типичной таблицы маршрутизации, используемой маршрутизаторами. Поля реальных таблиц маршрутизации различных маршрутизируемых протоколов могут отличаться.
3 Создание объединенной IP-сети со статической маршрутизацией
Объединенная IP-сеть со статической маршрутизацией не использует протоколы маршрутизации, такие как RIP для IP или OSPF, для обмена информацией маршрутизации между маршрутизаторами. Вся информация маршрутизации хранится в статических таблицах маршрутизации на каждом из маршрутизаторов. Нужно проследить за тем, чтобы в таблице маршрутизации каждого маршрутизатора присутствовали маршруты, необходимые для обеспечения трафика между любыми двумя конечными точками объединенной IP-сети.
В этом разделе собраны сведения по следующим вопросам. а) Среда со статической маршрутизацией б) Вопросы проектирования среды со статической маршрутизацией в) Безопасность статической маршрутизации г) Развертывание статической маршрутизации
3.1 Среда со статической маршрутизацией
Среда со статической IP-маршрутизацией подходит для небольших статических объединенных IP-сетей с единственными путями. а) Под термином «небольшая объединенная сеть» понимается сеть, содержащая от 2 до 10 сетей. б) Термин «сеть с единственными путями» означает, что передача пакетов в) между любыми двумя конечными точками объединенной сети возможна только по одному маршруту. г) Термином «статическая сеть» называются сети, топология которых со временем не меняется.
Среды со статической маршрутизацией могут использоваться в следующих случаях:
1) малый бизнес;
2) небольшая офисная объединенная IP-сеть;
3) единственная сеть офиса подразделения.
Вместо того чтобы использовать протокол маршрутизации в достаточно медленном канале глобальной связи, на маршрутизаторе офиса подразделения задается единственный маршрут по умолчанию, обеспечивающий передачу в главный офис всего трафика, не имеющего адресатов в сети подразделения.
Статическая маршрутизация имеет следующие недостатки.
1) Отсутствие отказоустойчивости
Если маршрутизатор или канал связи перестают функционировать, статические маршрутизаторы не обнаруживают сбой и не информируют о нем другие маршрутизаторы. Эта проблема существенна, главным образом, для больших объединенных сетей организаций; небольшие офисные сети (с двумя маршрутизаторами и тремя локальными сетями) испытывают такие трудности недостаточно часто для того, чтобы рассматривать вопрос о развертывании топологии с множественными путями и протоколом маршрутизации.
2) Затраты на администрирование
Если в объединенной сети добавляется или удаляется одна из сетей, маршруты к этой сети должны быть добавлены или удалены вручную. При добавлении нового маршрутизатора на нем нужно правильно настроить все необходимые маршруты.
3.2 Вопросы проектирования среды со статической маршрутизацией
Во избежание возможных неполадок при реализации статической маршрутизации необходимо учитывать следующие вопросы.
Конфигурация периферийного маршрутизатора
Чтобы упростить конфигурацию, можно задать на периферийных маршрутизаторах маршрут по умолчанию, ведущий к соседствующему маршрутизатору. Периферийный маршрутизатор — это маршрутизатор, подключенный к нескольким сетям, лишь в одной из которых имеется соседствующий маршрутизатор.
Маршруты по умолчанию и циклические маршруты
Рекомендуется не задавать на двух соседствующих маршрутизаторах маршруты по умолчанию друг к другу. Маршрут по умолчанию передает весь трафик, не предназначенный для непосредственно подключенной сети, на указанный маршрутизатор. Два маршрутизатора, заданные в маршрутах по умолчанию друг друга, могут образовывать циклы маршрутизации, делая невозможной доставку трафика узлам назначения.
3.3 Среды с использованием вызова по требованию
Статическую маршрутизацию при использовании вызова по требованию можно реализовать одним из двух способов.
1) Маршрут по умолчанию
На маршрутизаторе офиса подразделения можно настроить маршрут по умолчанию, использующий интерфейс вызова по требованию. Преимущество маршрута по умолчанию состоит в том, что его нужно добавить только один раз. Недостатком маршрута по умолчанию является то, что любой трафик, адресаты которого находятся вне сети офиса подразделения, в том числе трафик к недостижимым узлам, вызывает подключение маршрутизатора офиса подразделения к сети главного офиса.
2) Автостатические маршруты
Автостатические маршруты — это статические маршруты, которые
автоматически добавляются в таблицу маршрутизации маршрутизатора после
запроса маршрутов с помощью протокола RIP для IP при подключении по
требованию. Преимущество автостатических маршрутов заключается в том, что
для недостижимых узлов маршрутизатор не подключается к главному офису.
Недостаток автостатических маршрутов состоит в необходимости их
периодического обновления в соответствии с достижимыми сетями в главном
офисе. Если в главном офисе добавлена новая сеть, а в офисе подразделения
не было выполнено автостатическое обновление, то все узлы в этой новой сети
будут недостижимы из офиса подразделения.
3.4 Безопасность статической маршрутизации
Чтобы предотвратить преднамеренное или непреднамеренное изменение статических маршрутов на маршрутизаторах, нужно выполнить следующие действия.
1) Реализовать физическую защиту, чтобы пользователи не имели физического доступа к маршрутизаторам.
2) Предоставить административные полномочия только тем пользователям, которые будут запускать службу маршрутизации и удаленного доступа.
3.5 Развертывание статической маршрутизации
Если для вашей объединенной IP-сети подходит статическая маршрутизация, для ее развертывания нужно выполнить следующие действия.
1. Создайте схему топологии объединенной IP-сети, на которой должны быть показаны отдельные сети и места расположения маршрутизаторов и узлов
(компьютеров, использующих протокол TCP/IP и не являющихся маршрутизаторами).
2. Каждой IP-сети (системе кабелей, связанной с другими такими системами с помощью одного или нескольких маршрутизаторов) присвойте уникальный код (идентификатор) IP-сети (также называемый адресом IP-сети).
3. Назначьте IP-адреса всем интерфейсам маршрутизаторов. Общепринятой практикой является назначение интерфейсам маршрутизаторов первых IP- адресов из выделенного данной сети диапазона адресов. Например, если
IP-сеть имеет код 192.168.100.0 и маску подсети 255.255.255.0, то интерфейсу маршрутизатора назначается IP-адрес 192.168.100.1.
4. Для периферийных маршрутизаторов настройте маршрут по умолчанию для интерфейса, для которого имеется соседствующий маршрутизатор.
Использовать маршруты по умолчанию на периферийных маршрутизаторах не обязательно.
5. Для каждого маршрутизатора, не являющегося периферийным, создайте список маршрутов, которые нужно добавить в качестве статических маршрутов в таблицу маршрутизации маршрутизатора. Каждый маршрут содержит код сети назначения, маску подсети, IP-адрес шлюза (или IP- адрес для перенаправления), метрику (число прыжков до этой сети) и адрес интерфейса, который используется для достижения этой сети.
6. На каждый из маршрутизаторов, не являющийся периферийным, добавьте вычисленные на шаге 5 статические маршруты. Статические маршруты можно добавить в окне «Маршрутизация и удаленный доступ» или с помощью команды route. Если используется команда route, укажите параметр -p, чтобы сделать статические маршруты постоянными.
7. После завершения настройки проверьте связь между узлами по всем маршрутам с помощью команд ping и tracert. Дополнительные сведения о командах ping и tracert см. в разделах Использование команды ping и
Использование команды tracert.
4 Протоколы динамической маршрутизации
4.1 Общие сведения
Прежде чем вникать в подробности и особенности динамической
маршрутизации обратим внимание на двухуровневую модель, в рамках которой
рассматривается все множество машин Internet. В рамках этой модели весь
Internet рассматривают как множество автономных систем (autonomous system -
AS). Автономная система - это множество компьютеров, которые образуют
довольно плотное сообщество, где существует множество маршрутов между двумя
компьютерами, принадлежащими этому сообществу. В рамках этого сообщества
можно говорить об оптимизации маршрутов с целью достижения максимальной
скорости передачи информации. В противоположность этому плотному
конгломерату, автономные системы связаны между собой не так тесно как
компьютеры внутри автономной системы. При этом и выбор маршрута из одной
автономной системы может основываться не на скорости обмена информацией, а
надежности, безотказности и т.п.
Схема взаимодействия автономных систем
[pic]
Рисунок 4.1
Сама идеология автономных систем возникла в тот период, когда ARPANET
представляла иерархическую систему. В то время было ядро системы, к
которому подключались внешние автономные системы. Информация из одной
автономной системы в другую могла попасть только через маршрутизаторы ядра.
Такая структура до сих пор сохраняется в MILNET.
На рисунке 4.1 автономные системы связаны только одной линией связи, что больше соответствует тому, как российский сектор подключен к Internet. В классических публикациях по Internet взаимодействие автономных частей чаще обозначают пересекающимися кругами, подчеркивая тот факт, что маршрутов из одной автономной системы в другую может быть несколько.
Обсуждение этой модели Internet необходимо только для того, чтобы объяснить наличие двух типов протоколов динамической маршрутизации: внешних и внутренних.
Внешние протоколы служат для обмена информацией о маршрутах между автономными системами.
Внутренние протоколы служат для обмена информацией о маршрутах внутри автономной системы.
В реальной практике построения локальных сетей, корпоративных сетей и их подключения к провайдерам нужно знать, главным образом, только внутренние протоколы динамической маршрутизации. Внешние протоколы динамической маршрутизации необходимы только тогда, когда следует построить закрытую большую систему, которая с внешним миром будет соединена только небольшим числом защищенных каналов данных.
К внешним протоколам относятся Exterior Gateway Protocol (EGP) и<
Protocol Gateway> .
EGP предназначен для анонсирования сетей, которые доступны для
автономных систем за пределами данной автономной системы. По данному
протоколу шлюз одной AS передает шлюзу другой AS информацию о сетях из
которых состоит его AS. EGP не используется для оптимизации маршрутов.
Считается, что этим должны заниматься протоколы внутренней маршрутизации.
BGP - это другой протокол внешней маршрутизации, который появился позже
EGP. В своих сообщениях он уже позволяет указать различные веса для
маршрутов, и, таким образом, способствовать выбору наилучшего маршрута.
Однако, назначение этих весов не определяется какими-то независимыми
факторами типа времени доступа к ресурсу или числом шлюзов на пути к
ресурсу. Предпочтения устанавливаются администратором и потому иногда такую
маршрутизацию называют политической маршрутизацией, подразумевая, что она
отражает техническую политику администрации данной автономной системы при
доступе из других автономных систем к ее информационным ресурсам. Протокол
BGP используют практически все российские крупные IP-провайдеры, например
крупные узлы сети Relcom.
К внутренним протоколам относятся протоколы Routing Information Protocol
(RIP), HELLO, Intermediate System to Intermediate System (ISIS), Shortest
Path First (SPF) и Open Shortest Path First (OSPF).
Протокол RIP (Routing Information Protocol) предназначен для
автоматического обновления таблицы маршрутов. При этом используется
информация о состоянии сети, которая рассылается маршрутизаторами
(routers). В соответствии с протоколом RIP любая машина может быть
маршрутизатором. При этом, все маршрутизаторы делятся на активные и
пассивные. Активные маршрутизаторы сообщают о маршрутах, которые они
поддерживают в сети. Пассивные маршрутизаторы читают эти широковещательные
сообщения и исправляют свои таблицы маршрутов, но сами при этом информации
в сеть не предоставляют. Обычно в качестве активных маршрутизаторов
выступают шлюзы, а в качестве пассивных - обычные машины (hosts).
В основу алгоритма маршрутизации по протоколу RIP положена простая идея:
чем больше шлюзов надо пройти пакету, тем больше времени требуется для
прохождения маршрута. При обмене сообщениями маршрутизаторы сообщают в сеть
IP-номер сети и число "прыжков" (hops), которое надо совершить, пользуясь
данным маршрутом. Надо сразу заметить, что такой алгоритм справедлив только
для сетей, которые имеют одинаковую скорость передачи по любому сегменту
сети. Часто в реальной жизни оказывается, что гораздо выгоднее
воспользоваться оптоволокном с 3-мя шлюзами, чем одним медленным
коммутируемым телефонным каналом.
Другая идея, которая призвана решить проблемы RIP, - это учет не числа hop'ов, а учет времени отклика. На этом принципе построен, например, протокол OSPF. Кроме этого OSPF реализует еще и идею лавинной маршрутизации. В RIP каждый маршрутизатор обменивается информацией только с соседями. В результате, информации о потере маршрута в сети, отстоящей на несколько hop'ов от локальной сети, будет получена с опозданием. Лавинная маршрутизация позволяет решить эту проблему за счет оповещения всех известных шлюзов об изменениях локального участка сети.
К сожалению, многовариантную маршрутизацию поддерживает не очень много
систем. Различные клоны Unix и NT, главным образом ориентированы на
протокол RIP. Достаточно посмотреть на программное обеспечение динамической
маршрутизации, чтобы убедится в этом. Программа routed поддерживает только
RIP, программа gated поддерживает RIP, HELLO, OSPF, EGP и BGP, в Windows NT
поддерживается только RIP.
4.2 Внутренний протокол маршрутизации RIP
Этот протокол маршрутизации предназначен для сравнительно небольших и относительно однородных сетей (алгоритм Белмана-Форда). Протокол разработан в университете Калифорнии (Беркли), базируется на разработках фирмы Ксерокс и реализует те же принципы, что и программа маршрутизации routed, используемая в ОC UNIX (4BSD). Маршрут здесь характеризуется вектором расстояния до места назначения. Предполагается, что каждый маршрутизатор является отправной точкой нескольких маршрутов до сетей, с которыми он связан. Описания этих маршрутов хранится в специальной таблице, называемой маршрутной. Таблица маршрутизации RIP содержит по записи на каждую обслуживаемую машину (на каждый маршрут). Запись должна включать в себя:
IP-адрес места назначения. Метрика маршрута (от 1 до 15; число шагов до места назначения). IP-адрес ближайшего маршрутизатора (Gateway) по пути к месту назначения. Таймеры маршрута.
Первым двум полям записи мы обязаны появлению термина вектор расстояния
(место назначение – направление; метрика – модуль вектора). Периодически
(раз в 30 сек) каждый маршрутизатор посылает широковещательно копию своей
маршрутной таблицы всем соседям-маршрутизаторам, с которыми связан
непосредственно. Маршрутизатор-получатель просматривает таблицу. Если в
таблице присутствует новый путь или сообщение о более коротком маршруте,
или произошли изменения длин пути, эти изменения фиксируются получателем в
своей маршрутной таблице. Протокол RIP должен быть способен обрабатывать
три типа ошибок:
1. Циклические маршруты. Так как в протоколе нет механизмов выявления замкнутых маршрутов, необходимо либо слепо верить партнерам, либо принимать меры для блокировки такой возможности.
2. Для подавления нестабильностей RIP должен использовать малое значение максимально возможного числа шагов (