Чтобы сеть Ethernet, состоящая из сегментов различной физической природы, работала корректно, необходимо выполнение четырех основных условий:
· количество станций в сети не более 1024;
· максимальная длина каждого физического сегмента не более величины, определенной в соответствующем стандарте физического уровня;
· время двойного оборота сигнала 9Path Delay Value, PDV) между двумя самыми удаленными друг от друга станциями сети не более 575 битовых интервала;
· сокращение межкадрового интервала IPG (Path Veriability Value, PVV) при прохождении последовательности кадров через все повторители должно быть не больше, чем 49 битовых интервала. Так как при отправке кадров конечные узлы обеспечивают начальное межкадровое расстояние в 96 битовых интервала, то после прохождения повторителя оно должно быть не меньше, чем 96 - 49 = 47 битовых интервала.
Расчет PDV
Справочные данные IEEE, bt - битовый интервал.
Тип сегмента | База левого сегмента, bt | База промежуточного сегмента, bt | База правого сегмента, bt | Задержка среды на 1 м, bt | Максимальная длина сегмента, м |
10Base-5 | 11,8 | 46,5 | 169,5 | 0,0866 | |
10Base-2 | 11,8 | 46,5 | 169,5 | 0,1026 | |
10Base-T | 15,3 | 42,0 | 165,0 | 0,113 | |
10Base-FB | - | 24,0 | - | 0,1 | |
10Base-FL | 12,3 | 33,5 | 156,5 | 0,1 | |
FOIRL | 7,8 | 29,0 | 152,0 | 0,1 | |
AUI (> 2 м) | 0,1026 | 2+48 |
Задержки, вносимые повторителем, состоят из задержки входного трансивера, задержки блока повторения, задержки выходного трансивера. В таблице все эти задержки представлены одной величиной, называемой базой сегмента.
В таблице даются удвоенные величины задержек для каждого типа кабеля.
Левый сегмент - сегмент, в котором начинается путь сигнала от выхода передатчика.
Правый сегмент - сегмент, где находится самый удаленный приемник (самый удаленный узел самого удаленного сегмента).
С каждым сегментом связана:
· постоянная задержка, названная базой, которая зависит только от типа сегмента и положения сегмента на пути сигнала;
· задержка распространения сигнала вдоль кабеля, которая зависит от длины кабеля и вычисляется путем умножения.
Расчет заключается в вычислении задержек, вносимых каждым отрезком кабеля, а затем суммировании этих задержек с базами левого, промежуточных и правого сегментов.
Общее значение PDV не должно превышать 575 битовых интервала.
Если левый и правый сегменты разных типов, то расчеты надо провести дважды, считая сначала один сегмент левым, а затем другой, и взять в качестве результата большее значение.
Рассмотрим пример:
Концентратор 3
500 м 500м
10Base-FB 10Base-FB
Сегмент 3 Сегмент 4
Концентратор 2 Концентратор 4
1000 м 600 м
0Base-FL 10Base-FB
Сегмент 2 Сегмент 5
Концентратор 1 Концентратор 5
100 м 100 м
10Base-T 10Base-T
Сегмент 1 Сегмент 6
Левый сегмент Правый сегмент
В этой сети не выполнено правило 4-х хабов, и общая длина сети составляет 2800 м.
Рассчитаем значение PDV:
Левый сегмент 1: 15,3 (база) + 100 х 0,113 = 26,6.
Промежуточный сегмент 2: 33,5 + 1000 х 0,1 = 133,5.
Промежуточный сегмент 3: 24 + 500 х 0,1 = 74,0.
Промежуточный сегмент 4: 24 + 500 х 0,1 = 74,0.
Промежуточный сегмент 5: 24 + 600 х 0,1 = 84,0
Правый сегмент 6: 165 + 100 х 0ю113 = 176,3.
PDV равно сумме всех значений - 568,4.
Это значение меньше 575, значит сеть удовлетворяет критерию двойного оборота сигнала.
Расчеты достаточно провести один раз, так как правый и левый сегменты одного типа.
Расчет PVV
Рассчитаем уменьшение межкадрового интервала.
Тип сегмента | Передающий сегмент, bt | Промежуточный сегмент, bt |
10Base-5 или 10Base-2 | ||
10Base-FB | - | |
10Base-FL | 10,5 | |
10Base-T | 10,5 |
Получим:
Левый сегмент 1 10Base-T: сокращение в 10,5 bt.
Промежуточный сегмент 2 10Base-FL: 8.
Промежуточный сегмент 3 10Base-FB: 2.
Промежуточный сегмент 4 10Base-FB: 2.
Промежуточный сегмент 5 10Base-FB: 2.
PVV равно сумме этих величин - 24,5. Эта величина меньше 49, значит сеть удовлетворяет требованиям стандарта Ethernet и по всем параметрам, связанным с длинами сегментов и количеством повторителей.
Логическая структуризация сети с помощью мостов и коммутаторов
Под логической структуризацией сети понимается разбиение общей разделяемой среды на логические сегменты, которые представляют самостоятельные разделяемые среды с меньшим количеством узлов. Сеть, разделенная на логические сегменты, обладает более высокой производительностью и надежностью. Взаимодействие между логическими сегментами организуется с помощью мостов и коммутаторов.
Эффективность разделяемой среды для небольшой сети проявляется в следующих свойствах:
- простой топологии сети, допускающей легкое наращивание числа узлов (в небольших пределах);
- отсутствие потерь кадров из-за переполнения буферов коммуникационных устройств, так как новых кадр не передается в сеть, пока не принят предыдущий;
- простоте протоколов, обеспечившей низкую стоимость сетевых адаптеров.
Но всем технологиям присущ экспоненциальный рост величины задержек доступа при увеличении коэффициента использования сети (отношение трафика, который должна передать сеть, к ее максимальной пропускной способности). При возрастании интенсивности генерируемого трафика сеть перестает передавать полезную пользовательскую информацию и работает на обработку коллизий.
Преимущества логической структуризации сети
Ограничения, возникающие из-за использования общей разделяемой среды, можно преодолеть, разделив сеть на несколько разделяемых сред и соединив отдельные сегменты сети такими устройствами, как мосты, коммутаторы или маршрутизаторы.
Эти устройства передают кадры с одного своего порта на другой, анализируя адрес назначения, помещенный в этих кадрах (в отличие от концентраторов, которые повторяют кадры не всех своих портах, передавая из во все подсоединенные к ним сегменты, независимо от того, в каком из них находится станция назначения). Мосты и коммутаторы выполняют операцию передачи кадров на основе плоских адресов канального уровня, то есть МАС-адресов, а маршрутизаторы – на основе номера сети. При этом единая разделяемая среда делится на несколько разделяемых сред, каждая из которых присоединена к порту моста, коммутатора или маршрутизатора. Говорят, что при этом сеть делится на логические сегменты или подвергается логической структуризации.
В общем случае крупная сеть разрабатывается на основе структуры с общей магистралью, к которой через мосты и маршрутизаторы присоединяются подсети.
Деление сети на логические сегменты повышает производительность сети за счет разгрузки сегментов.
Сегментация увеличивает гибкость сети – можно объединять в единую сеть сегменты, построенные по разным технологиям.
Подсети повышают безопасность данных. Устанавливая различные логические фильтры на мостах, коммутаторах и маршрутизаторах, можно контролировать доступ к ресурсам.
Подсети упрощают управление сетью.
Мосты и коммутаторы
Мосты (bridge) и коммутаторы (switch, switching hub) работают на основе протоколов канального уровня, маршрутизаторы – на основе протоколов сетевого уровня.
Мосты и коммутаторы продвигают кадры на основании одни и тех же алгоритмов – алгоритма прозрачного моста (transparent bridge) или алгоритма моста с маршрутизацией от источника (source routing bridge).
Основное отличие коммутатора от моста заключается в том, что мост обрабатывает кадры последовательно, а коммутатор – параллельно. Для обслуживания потока, поступающего на каждый порт, в коммутатор ставится отдельный процессор, реализующий алгоритм моста. Производительность коммутаторов на несколько порядков выше, чем производительность мостов.
Алгоритм прозрачного моста
Прозрачный мост строит адресную таблицу на основании пассивного наблюдения за трафиком, циркулирующим в подключенных к его портам сегментах. При этом адаптеры не предпринимают никаких специальных действий, чтобы кадр прошел через мост.
Пусть сеть состоит из двух сегментов, подключенных к портам 1 и 2 моста, в сегменте 1 находятся компьютеры с МАС-адресами 1 и 2, в сегменте 2 – 3 и 4.
Этапы построения адресной таблицы:
1. Каждый порт моста работает как конечный узел своего сегмента в неразборчивом режиме (promisquous). Он не имеет своего МАС-адреса, и все пакеты, поступающие на порт, запоминаются в буферной памяти.
2. В исходном состоянии мост ничего не знает о том, какие компьютеры подключены к какому порту. Поэтому он предает любой захваченный и буферизованный кадр на все свои порты кроме того, на который он пришел.
3. Одновременно с передачей кадра на все порты мост изучает адрес источника и заносит его в адресную таблицу, например, МАС-адрес 1 – порт 1.
4. По мере создания таблицы мост начинает ее использовать. При получении кадра он просматривает таблицу и посылает кадр на нужный порт, если только источник не находится в том же сегменте, что и приемник, иначе кадр просто удаляется из буфера.
5. Если порт назначения неизвестен, то мост передает кадр на все свои порты, кроме порта-источника.
6. Процесс обучения моста никогда не останавливается, так как конфигурация сегментов может меняться.
Входы адресной таблицы могут быть динамическими, создаваемыми в процессе самообучения моста, и статическими, создаваемыми вручную администратором сети. Динамические входы имеют срок жизни – по истечении определенного тайм-аута запись помечается как недействительная, если за это время мост не принял ни одного кадра с данными адресом в поле адреса источника. Статические записи не имеют срока жизни.
Кадры с широковещательными МАС-адресами передаются мостом на все его порты – затопление сети (flood). Если протокол верхнего уровня или сетевой адаптер начинают с высокой интенсивностью генерировать кадры с широковещательными адресами в течение длительного промежутка времени, то мост передает эти кадры во все сегменты, затапливая сеть ошибочным трафиком – широковещательный шторм (broadcast storm).
Общее описание работы коммутатора
Каждый порт коммутатора обслуживается специальным процессором. Кроме того, коммутатор имеет системный модуль, который координирует работу всех процессоров. Системный модуль ведет общую адресную таблицу и обеспечивает управление коммутатором по какому-либо протоколу (SNMP). Для передачи кадров между портами используется коммутационная матрица.
1. При поступлении кадра в какой-либо порт его процессор буферизирует несколько первых байт кадра для определения адреса назначения.
2. Затем он просматривает собственный кэш адресной таблицы, и если там нужного адреса нет, то обращается к системному модулю, который работает в многозадачном режиме, параллельно обслуживая запросы всех процессоров.
3. Системный модуль просматривает общую адресную таблицу и возвращает процессору найденную строку, которую тот буферизирует в своем кэше для последующего использования.
4. Если кадр нужно передать дальше, а не отфильтровать, то процессор обращается к коммутационной матрице и пытается установить в ней путь к порту назначения. Если порт занять, то кадр буферизируется. Когда порт освободится, в него направляются буферизованные байты кадра.
Коммутаторы обладают целым спектром дополнительных возможностей по обработке трафика, существует также несколько типов технических реализаций.
Ограничения использования мостов и коммутаторов:
- в топологии получившейся сети должны отсутствовать петли;
- сегменты не защищены от широковещательных штормов;
- сложно решается задача управления трафиком;
- негибкая одноуровневая система адресации – используется МАС-адрес, жестко связанный с адаптером.
- возможностью трансляции протоколов обладают далеко не все типы мостов и коммутаторов.
Поэтому для построения больших неоднородных сетей необходимо привлекать средства более высокого по сравнению с физическим и канальным уровнем – сетевого уровня.
Составные сети и принципы маршрутизации
Сеть в общем случае рассматривается как совокупность нескольких сетей и называется составной сетью или интерсетью. Сети, входящие в составную сеть называются подсетями и соединяются между собой маршрутизаторами. Компонентами составной сети могут быть и глобальные и локальные сети, каждая из которых работает по собственной технологии. Для организации взаимодействия между узлами такой сети требуются дополнительные средства, которые и образуют сетевой уровень.
Сетевой уровень продвигает пакеты по составной сети. Для перемещения пакетов по локальной сети сетевой уровень обращается к используемым в этих сетях технологиям.
Сетевому уровню необходима собственная система адресации, не зависящая от адресации узлов в отдельных подсетях, которая позволила бы идентифицировать любой узел в составной сети.
Единственно возможный способ формирования сетевого адреса – это пара: номер подсети и номер узла в этой подсети. В качестве номера узла может выступать либо локальный адрес этого узла (IPX/SPX), либо никак не связанное с локальной технологией число (TCP/IP).
Кадр сетевого уровня содержит в заголовке адресную информацию – номер сети назначения. Заголовок пакета сетевого уровня имеет унифицированную форму. Для передачи пакета от одного маршрутизатора к другому средствами подсетей кадр сетевого уровня вкладывается в кадры этих подсетей. Заголовок сетевого уровня содержит также другую необходимую для успешной передачи пакета информацию.
Кроме номера сети заголовок сетевого уровня должен содержать и другую информацию, необходимую для успешного перехода пакета из сети одного типа в сеть другого типа. Например,
- номер фрагмента пакета, необходимый для успешного проведения операция сборки-разборки фрагментов при соединении сетей с разными максимальными размерами пакетов;
- время жизни пакета, указывающее, как долго он путешествует по интерсети, это время может использоваться для уничтожения “заблудившихся” пакетов;
- качество услуги – критерий выбора маршрута при межсетевых передачах – например, узел-отправитель может потребовать передать пакет с максимальной надежность, возможно, в ущерб времени доставки.
Пинципы маршрутизации
Маршрутизация – передача пакетов между двумя конечными узлами в составной сети.
Маршрутизаторы имеют несколько портов (по крайней мере, по два), к которыми присоединяются сети. Каждый порт маршрутизатора имеет собственный сетевой адрес и собственный локальные адрес в той подсети, которая к рему подключена. Таким образом, маршрутизатор можно рассматривать как совокупность нескольких узлов, каждый из которых входит в свою сеть. Как единое устройство маршрутизатор не имеет ни отдельного сетевого адреса, ни какого-либо локального адреса.
В сложных составных сетях, как правило, существует несколько маршруторв для передачи пакетов между двумя конечными узлами. Маршрут – это последовательность маршрутизаторов, которые должен пройти пакет от отправителя до пункта назначения. Маршрут выбирается на основании имеющейся у маршрутизаторов и конечных узлов информации у текущей конфигурации сети, а также на основании указанного критерия выбора маршрута (задержка прохождения маршрута отдельным пакетом, средняя пропускная способность маршрута, количество пройденных в маршруте промежуточных маршрутизаторов).
Для выбора рационального маршрута прохождения пакета каждый конечный узел и маршрутизатор анализируют специальную таблицу – таблицу маршрутизации.
Номер сети назначения | Сетевой адрес следующего маршрутизатора | Сетевой адрес выходного порта | Расстояние до сети назначения |
S1 | M1(2) | M4(1) | |
S2 | - | M4(1) | |
S3 | M1(2) | M4(1) | |
S4 | M2(1) | M4(1) | |
S5 | - | M4(2) | |
S6 | M2(1) | M4(1) | |
Default | M5(1) | M4(2) | - |
Реальные таблицы имеют более сложный вид
Таблицы маршрутизации содержат также и конечные узлы. Эти таблицы полностью аналогичны таблицам маршрутизаторов, но конечные узлы чаще используют прием маршрутизации по умолчанию.
Протоколы маршрутизации
Для автоматического построения таблиц маршрутизации маршрутизаторы обмениваются информацией у топологии составной сети в соответствии со специальным служебным протоколом – протоколом маршрутизации (RIP, OSPF, NLSP). При обмене маршрутной информацией макеты протокола маршрутизации помещаются в поле данных пакетов сетевого уровня.
Протоколы маршрутизации могут быть построены на основе разных алгоритмов.
Одношаговые алгоритмы – каждый маршрутизатор отвечает за выбор только одного шага маршрута - следующего маршрутизатора. Окончательный маршрут определяется работой всех маршрутизаторов.
В зависимости от способа формирования таблиц одношаговые алгоритмы маршрутизации делятся на три класса:
- алгоритмы фиксированной (или статической) маршрутизации. Все записи в таблице являются статическими. Администратор сети сам решает, на какие маршрутизаторы надо передавать пакеты с теми или иными адресами и вручную заносит соответствующие записи в таблицу маршрутизации (многомаршрутные и одномаршрутные таблицы).
- алгоритмы простой маршрутизации. Таблица маршрутизации либо вообще не используется, либо строится без участия протоколов маршрутизации:
- случайная маршрутизация – прибывший пакет посылается в первом попавшемся случайном направлении, кроме исходного;
- лавинная маршрутизация – пакет широковещательно посылается по всем возможным направлениям, кроме исходного;
- маршрутизация по предыдущему опыту – выбор маршрута осуществляется по таблице, которая строится по принципу моста путем анализа адресных полей пакетов, появляющихся на входных портах.
- алгоритмы адаптивной (или динамической) маршрутизации – автоматическое обновление таблиц маршрутизации после изменения конфигурации сети. Протоколы адаптивной маршрутизации позволяют всем маршрутизаторам собирать информацию о топологии связей в сети. Алгоритмы адаптивной маршрутизации должны: 1) обеспечивать рациональность маршрута; 2) быть достаточно простыми и не порождать интенсивный трафик; 3) обладать свойством сходимости – приводить к однозначному результату за приемлемое время.
- дистанционно-векторные алгоритмы (Distance Vector Algorithms, DVA) – широковещательная рассылка специального вектора с информацией о расстоянии от данного маршрутизатора до всех известных ему сетей. Пример – протокол RIP.
- алгоритмы состояния связей (Link State Algorithms, LSA) – строится точный граф связей. Пример – OSPF.
Существуют также многошаговые протоколы маршрутизации – маршрутизация от источника, когда узел-отправитель задает в отправляемом пакете полный маршрут его следования через все промежуточные маршрутизаторы.
Адресация в IP-сетях
Типы адресов стека TCP/IP
В стеке TCP/IP используются три типа адресов: локальные, IP-адреса и символьные доменные адреса.
Локальный адрес – это адрес, который используется базовой технологией подсети. Это может быть МАС-адрес, или адрес протокола более высокого уровня, например IPX.
IP-адреса представляют собой основнй тип адресов, на основании которых сетевой уровень передает пакеты между сетями. Эти адреса состоят из 4 байт, например, 109.26.17.100. IP-адрес назначается администратором сети во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Internet Network Information Center, InterNIC), если сеть должна работать как составная часть Internet. Обычно поставщики услуг Internet получают диапазоны адресов у подразделений InterNIC, а затем распределяют их между своими абонентами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Маршрутизатор входит сразу в несколько сетей, поэтому каждый порт маршрутизатора имеет собственный IP-адрес. Конечный узел также может входить в несколько IP-сетей. В этом случае компьютер должен иметь несколько IP-адресов.
Символьные доменные адреса строятся по иерархическому принципу. Составляющие полного доменного имени разделяются точкой и перечисляются от простого имени узла до имени самого крупного домена. Между доменным именем и IP-адресом нет никакого алгоритмического соответствия, поэтому необходимо использовать какие-то дополнительные таблицы или службы, чтобы узел однозначно определялся и по доменному имени, и по IP-адресу. В сетях TCP/IP для этого специально используется специальная распределенная служба Domain Name System, DNS, которая устанавливает соответствие на основании создаваемых администраторами таблиц.
Классы IP-адресов
IP-адрес имеет длину 4 байта и обычно записывается в виде четырех десятичных чисел, соответствующих значению каждого байта, разделенных точками.
Адрес состоит из двух логических частей – номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая – к номеру узла, определяется значениями первых бит адреса. Значения этих бит – признак класса, к которому относится адрес.
1 байт | 3 байта | ||||||||
Класс А | № сети | № узла | |||||||
2 байта | 2 байта | ||||||||
Класс В | № сети | № узла | |||||||
3 байта | 1 байт | ||||||||
Класс С | № сети | № узла | |||||||
Класс D | Адрес группы multicast | ||||||||
Класс E | Зарезервирован | ||||||||
Класс | Первые биты | Наименьший номер сети | Наибольший номер сети | Максимальное число узлов в сети |
А | 1.0.0.0 | 126.0.0.0 | 224 | |
В | 128.0.0.0 | 191.255.0.0 | 216 | |
С | 192.0.0.0 | 223.255.255.0 | 28 | |
D | 224.0.0.0 | 239.255.255.255 | Multicast | |
E | 240.0.0.0 | 247.255.255.255 | Зарезервирован |
Особые IP-адреса
- Если весь адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет.
- Если в поле номера сети стоят только нули, то по умолчанию считается, что узел назначения принадлежит той же самой сети, что и узел, который отправил пакет.
- Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета (ограниченное широковещательное сообщение limited broadcast).
- Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети (широковещательное сообщение broadcast).
С учетом этих специальных адресов максимальное количество узлов в приведенной выше таблице надо уменьшить на два.
Когда программа посылает пакет по адресу 127.0.0.1, образуется “петля”. То есть данные не передаются по сети, а возвращаются модулям верхнего уровня, как только что принятые. Адрес, начинающийся с 127 – loopback.
Использование масок
Традиционная схема деления IP-адреса на номер сети и номер узла основана на понятии класса, который определяется значениями нескольких первых бит адреса. Так адрес 185.23.44.206 относится к классу В. Значит, адрес сети – первые два байта 185.23.0.0, а адрес узла – вторые два байта 0.0.44.206.
Маска – это число, которое используется вместе с IP-адресом для более гибкого установления границы между номером сети и номером узла. Двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети. Единицы в маске представляют непрерывную последовательность.
Маски для стандартных классов:
- класс А – 11111111.00000000.00000000.00000000 (255.0.0.0)
- класс В – 11111111.11111111.00000000.00000000 (255.255.0.0)
- класс С – 11111111.11111111.11111111.00000000 (255.555.255.0)
В масках количество единиц в последовательности, определяющей границу номера сети, не обязательно должно быть кратным 8. Например,
IP-адрес 129.64.134.5 – 10000001.01000000.10000110.00000101
Маска 255.255.128.0 – 11111111.11111111.10000000.00000000
Без учета маски – это адрес класса В с номером сети 129.64.0.0 и номером узла 0.0.134.5. С учетом маски адрес сети – 129.64.128.0, а номер узла – 0.0.6.5.
Маски используются для разных целей. С их помощью администратор сети может структурировать сеть, не требуя от поставщика услуг дополнительных номеров сетей.
Порядок распределения IP-адресов
Номера сетей назначаются централизовано, если сеть является частью Internet, либо произвольно, если сеть работает автономно. Номера узлов в обоих случаях администратор может назначать произвольно, не выходя из диапазона для данного класса сети.
Наблюдается дефицит адресов, так как часто адреса используются нерационально. Например, при соединении двух сетей глобальной связью по схеме “точка-точка” с помощью двух маршрутизаторов для вырожденной сети между маршрутизаторами приходится выделять отдельный номер сети, хотя в этой сети всего два узла.
Пограничные маршрутизаторы
Сеть Сеть
190.15.67.0 Вырожденная сеть 185.30.155.0
190.15.40.1 190.15.40.0 190.15.40.2
Если сеть создана для работы в автономном режиме, то администратор сети может назначить ей какой угодно номер. В стандартах Internet определено несколько диапазонов адресов, рекомендуемых для локального использования. Эти адреса не обрабатываются маршрутизаторами Internet ни при каких условиях. Класс А – сеть 10.0.0.0, класс В – диапазон из 16 номеров 172.16.0.0-172.31.0.0, класс С – диапазон из 256 сетей 192.168.0.0-192.168.255.0.
Пути решения проблемы дефицита IP-адресов:
- новая версия IPv6 стека TCP/IP, в которой используются 16-байтные адреса;
- технология масок и ее развитие – технология безклассовой междоменной маршрутизации (Classless Inter-Domain Routing, CIDR);
- трансляция адресов (Network Translator, NAT). Внутренней сети адреса назначаются произвольно. Внутренняя сеть соединяется с Internet через устройство, получающее в свое распоряжение несколько реальных IP-адресов и преобразующее внутренние адреса во внешние правильные.
Автоматизация процесса назначения IP-адресов
Процесс назначения IP-адресов автоматизируется с помощью протокола Dynamic Host Configuration Protocol, DHCP.
Поддерживает автоматическое динамическое распределение адресов, а также простые способы ручного и автоматического статического назначения адресов. Работает в соответствии с моделью клиент-сервер. Во время старта системы клиент посылает в сеть широковещательный запрос на получение IP-адреса. Сервер посылает ответ, содержащий IP-адрес. Адрес выдается на ограниченное время – время аренды (lease duration), что дает возможность повторно использовать этот адрес затем на другом компьютере. Может работать в сети, где количество узлов превышает количество возможных адресов.
При ручной процедуре выделения статических адресов администратор назначает IP-адреса, которые затем все время назначаются сервером заданному узлу.
При автоматическом статическом способе выделения адреса сервер присваивает IP-адрес из пула имеющихся адресов без вмешательства оператора. Границы пула назначаются администратором при конфигурировании сервера. Адрес дается из пула в постоянное пользование, с неограниченным временем аренды.
DHCP-сервер может назначить клиенту не только IP-адрес, но и другие параметры стека TCP/IP, например, маску, IP-адрес маршрутизатора по умолчанию, IP-адрес сервера DNS, доменное имя компьютера и т.п.
Отображение IP-адресов на локальные адреса
Для определения локального адреса по IP-адресу используется протокол разрешения адреса (Address Resolution Protocol, ARP). Протокол ARP работает различным образом в зависимости от протокола канального уровня. Существует также протокол, решающий обратную задачу – нахождение IP-адреса по известному локальному адресу – реверсивный ARP (Reverse Address Resolution Protocol, RARP), который используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего адаптера.
Необходимость обращения к протоколу ARP возникает тогда, когда модуль IP передает пакет нижнему уровню для передачи по локальной сети, например, драйверу Ethernet.
1. Модуль IP обращается к ARP с запросом на разрешение адреса. Модуль ARP ищет в своей таблице указанный в запросе IP-адрес:
IP-адрес | МАС-адрес | Тип записи |
194.85.135.75 | 008048ЕВ7Е60 | Динамический |
194.85.135.70 | 08005А21А722 | Динамический |
194.85.60.21 | 008048ЕВ7567 | Статический |
Статические записи создаются вручную и не имеют срока устаревания. Динамические записи создаются модулем протокола ARP и периодически обновляются. Если запись не обновлялась в течение определенного времени, то она исключается из таблицы.
2. Если в таблице такого адреса нет, то исходящий IP-пакет ставится в очередь, протокол ARP формирует запрос, вкладывает его в протокол канального уровня и рассылает его широковещательно.
Пример ARP-запроса
Тип сети | 1(0х1) |
Тип протокола | 2048(0х800) |
Длина локального адреса | 6(0х6) |
Длина сетевого адреса | 4(0х4) |
Операция | 1(0х1) |
Локальный адрес отправителя | 008048ЕВ7Е60 |
Сетевой адрес отправителя | 194.85.135.75 |
Локальный (искомый) адрес получателя | |
Сетевой адрес получателя | 194.85.135.65 |
Тип сети 1 – сеть Ethernet
Поле “тип протокола” позволяет использовать ARP не только для IP, но и для других сетевых протоколов. Для IP это поле равно 0х800.
Поле операции 1 – запрос, 2 – ответ.
3. Модуль ARP сети, опознавший свой IP-адрес, присылает ответ. Если в сети узла с таким IP-адресом нет, модуль IP уничтожает пакеты, направляемые по этому адресу.
Пример ARP-ответа
Тип сети | 1(0х1) |
Тип протокола | 2048(0х800) |
Длина локального адреса | 6(0х6) |
Длина сетевого адреса | 4(0х4) |
Операция | 2(0х2) |
Локальный адрес отправителя | 00Е0F77F1920 |
Сетевой адрес отправителя | 194.85.135.65 |
Локальный адрес получателя | 008048ЕВ7Е60 |
Сетевой адрес получателя | 194.85.135.75 |
Этот ответ получит машина, сделавшая ARP-запрос. В результате обмена пакетами ARP IP-модуль узла 194.85.135.75 определил, что IP-адресу 194.85.135.65 соответствует МАС-адрес 00Е0F77F1920.
В ARP таблице появится новая запись
IP-адрес | МАС-адрес | Тип записи |
194.85.135.75 | 008048ЕВ7Е60 | Динамический |
194.85.135.70 | 08005А21А722 | Динамический |
194.85.60.21 | 008048ЕВ7567 | Статический |
194.85.135.65 | 00Е0F77F1920 | Динамический |
Отображение доменных имен на IP-адреса
Традиционно работа в сетях основывалась на символьных именах компьютеров. Для эффективной организации именования компьютеров в больших сетях естественным является применение иерархических имен. В стеке TCP/IP применяется доменная система имен, которая имеет иерархическую древовидную структуру, допускающую использование в имени произвольного количества составных частей.
Компьютеры, входящие в домен в соответствии со своими доменными адресами могут иметь совершенно различные IP-адреса, принадлежащие совершенно различным сетям и подсетям.
Домены верхнего уровня назначаются для каждой страны на организационной основе. Их имена должны соответствовать стандарту ISO 3166. Существуют исторически сложившиеся домены:
Com – коммерческие организации
Edu – образовательные организации
Gov – правительственные организации
Org – некоммерческие организации
Net – организации, поддерживающие сети.
Соответствие между доменными именами и IP-адресамиустанавливается средствами специальной службы – системы доменных имен (Domain Name System, DNS). DNS – это централизованная служба, основанная на распределенной базе отображений “доменное имя – IP-адрес). Служба DNS использует технологию “клиент-сервер”. Серверы поддерживают распределенную базу данных, клиенты обращаются к серверам для разрешения доменного адреса.
Служба DNS использует файлы текстового формата, подготавливаемые вручную администратором. Для каждого домена обычно создается свой DNS-сервер, который обычно хранит отображения “доменное имя – IP-адрес” только для имен, которые заканчиваются на следующем ниже уровне иерархии, хотя может хранить отображения и для всего домена.
Каждый DNS-сервер кроме таблицы отображений имен хранит ссылки в виде IP-адресов на DNS-серверы своих поддоменов, что связывает отдельные серверы в единую службу.
Поиск в DNS напоминает поиск файла в файловой структуре. Здесь сервер DNS соответствует каталогу, так как содержит информацию о том, что ниже.
Существую две основные схемы разрешения имен.
1. Нерекурсивная или итеративная – клиент сам выполняет последовательные запросы к разным серверам. Сильно загружает клиента, используется редко.
2. Рекурсивная процедура – сервер либо сразу отвечает клиенту, если запрашиваемый адрес входит в тот же поддомен или содержится в кэше, либо сам выполняет итеративный запрос к следующему DNS-серверу. Получив ответ от других серверов, первый сервер передает его клиенту.
Структура IP-пакета
4 бита Номер версии | 4 бита Длина заголовка | 8 бит Тип сервиса | 16 бит Общая длина | ||||||||
PR | D | T | R | ||||||||
16 бит Идентификатор пакета | 3 бита Флаги | 13 бит Смещение фрагмента | |||||||||
D | M | ||||||||||
8 бит Время жизни | 8 бит Протокол верхнего уровня | 16 бит Контрольная сумма | |||||||||
32 бита IP-адрес источника | |||||||||||
32 бита IP-адрес назначения | |||||||||||
Опции и выравнивание | |||||||||||
IP-пакет состоит из заголовка и поля данных. Заголовок, как правило, имеет длину 20 байт.
- Номер версии (Version) - занимает 4 бита. Есть две версии IPv4 и IPv6.
- Длина заголовка (IHL) - занимает 4 бита и указывает значение длины заголовка, измеренное в 32-битовых словах. Обычно заголовок имеет длину 20 байт (пять 32-битовых слов), но при увеличении объема служебной информации это длина может быть увеличена за счет использования дополнительных байт в поле Опции (IP Options). Наибольший заголовок занимает 60 октетов.
- Тип сервиса (Type of Service) - занимает один байт и задает приоритетность пакета и вид критерия выбора маршрута. Первые три бита этого поля образуют подполе приоритета пакета (Precedence). Приоритет может иметь значения от самого низкого - 0 (нормальный приоритет), до самого высокого - 7 (пакет управляющей информации). Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать более важные пакеты в первую очередь. Следующие три бита определяют критерий выбора маршрута. Выбор осуществляется между тремя возможностями: малой задержкой, высокой достоверностью и высокой пропускной способностью. Установленный бит D (delay) говорит о том, что маршрут должен выбираться для минимизации задержки доставки данного пакета, бит Т - для максимизации пропускной способности, а бит R - для максимизации надежности доставки. Во многих случаях улучшение одного из этих параметров связано с ухудшением другого, кроме того, обработка каждого из них требует дополнительных вычислительных затарат. Зарезервированные биты имеют нулевое значение.
- Общая длина (Total Length) - занимает 2 байта и означает общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65535 байт, но в большинстве хост-компьютеров и сетей такие большие пакеты не используются. При передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP-пакеты. В стандарте предусматривается, что все хосты должны быть готовы принимать пакеты вплоть до 576 байт длиной.
- Идентификатор пакета (Identification) - занимает 2 байта и используется для распознавания пакетов, образовавшихся путем фрагментации исходного пакета. Все фрагменты должны иметь одинаковое значение этого поля.
- Флаги (Flags) - занимает 3 бита и содержит признаки, связанные с фрагментацией. Установленный бит DF (Do not Fragment) запрещает маршрутизатору фрагментировать данный пакет, а установленный бит MF (More Fragments) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Оставшийся бит зарезервирован.
- Смещение фрагмента (Fragment Offset) занимает 13 бит и задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации. Используется при сборке/разборке фрагментов пакетов при передачах их между сетями с различными величинами MTU. Смещение должно быть кратно 8 байт.
- Время жизни (Time to Live) – занимает одни байт и означает предельный срок, в течение которого пакет может перемещаться по сети. Время жизни данного пакета измеряется в секундах и задается источником передачи. На маршрутизаторах и в других узлах сети по истечении каждой секунды из текущего времени жизни вычитается единица. Единица вычитается и в том случае, когда время задержки меньше секунды. Время жизни можно считать равным максимальному числу узлов, которые разрешено пройти данному пакету до того, как он достигнет места назначения. Если параметр времени жизни станет нулевым до того, как пакет достигнет получателя, этот пакет будет уничтожен.
- Протокол верхнего уровня (Protocol) – занимает один байт и указывает, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета (например, это могут быть сегменты протокола ТСР, дейтаграммы UDP, пакеты ICMP или OSPF). Значения идентификаторов для различных протоколов приводятся в документе RFC “Assigned Numbers”.
- Контрольная сумма (Header Checksum) – занимает два байта и рассчитывается только по заголовку. Поскольку не которые поля заголовка меняют свое значение в процессе передачи пакета по сети (например, время жизни), контрольная сумма проверяется и повторно рассчитывается при каждой обработке IP-заголовка. Контрольная сумма подсчитывается как дополнение к сумме всех 16-битовых слов заголовка. При вычислении контрольной суммы значение самого поля “контрольная сумма” устанавливается в нуль. Если контрольная сумма неверна, пакет будет отброшен.
- IP-адрес источника (Source IP Address) и IP-адрес назначения (Destination IP Address) – имеют одинаковую длину 32 бита и одинаковую структуру.
- Опции (Options) – является необязательным и используется обычно только при отладке сети. Механизм опций предоставляет функции управления, которые необходимы или просто полезны при определенных ситуациях, однако он не нужен при обычных коммуникациях. Это поле состоит из нескольких подполей, каждое из которых может быть одного из восьми предопределенных типов. В этих подполях можно указывать точный маршрут прохождения маршрутизаторов, регистрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности, а также временные отметки. Так как число подполей может быть произвольным, то в конце поля Опции должно быть добавлено несколько байт для выравнивания заголовка пакета по 32-битной границе.
- Выравнивание (Padding) – используется для того, чтобы убедиться в том, что IP-заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.