Коммутаторы локальных сетей, основные функции, принцип работы

Вид материалаДокументы

Содержание


Протокол надежной доставки TCP-сообщений
Сегменты и потоки
Реализация скользящего окна в протоколе TCP
Автоматизация процесса назначения IP адресов – протокол DHCP.
Алгоритм маршрутизации
Подобный материал:
1   2   3   4   5   6   7   8

Протокол надежной доставки TCP-сообщений


Протокол IP является дейтаграммным протоколом и поэтому по своей природе не может гарантировать надежность передачи данных. Эту задачу - обеспечение надежного канала обмена данными между прикладными процессами в составной сети -решает протокол TCP (Transmission Control Protocol), относящийся к транспортному уровню.

Протокол TCP работает непосредственно над протоколом IP и использует для транспортировки своих блоков данных потенциально ненадежный протокол IP. Надежность передачи данных протоколом TCP достигается за счет того, что он основан на установлении логических соединений между взаимодействующими процессами. До тех пор пока программы протокола TCP продолжают функционировать корректно, а составная сеть не распалась на несвязные части, ошибки в передаче данных на уровне протокола IP не будут влиять на правильное получение данных.

Протокол IP используется протоколом TCP в качестве транспортного средства. Перед отправкой своих блоков данных протокол TCP помещает их в оболочку IP-пакета. При необходимости протокол IP осуществляет любую фрагментацию и сборку блоков данных TCP, требующуюся для осуществления передачи и доставки через множество сетей и промежуточных шлюзов.

На рис. 5.22 показано, как процессы, выполняющиеся на двух конечных узлах, устанавливают с помощью протокола TCP надежную связь через составную сеть, все узлы которой используют для передачи сообщений дейтаграммный протокол IP.

Порты


Протокол TCP взаимодействует через межуровневые интерфейсы с ниже лежащим протоколом IP и с выше лежащими протоколами прикладного уровня или приложениями.

В то время как задачей сетевого уровня, к которому относится протокол IP, является передача данных между произвольными узлами сети, задача транспортного уровня, которую решает протокол TCP, заключается в передаче данных между любыми прикладными процессами, выполняющимися на любых узлах сети. Действительно, после того как пакет средствами протокола IP доставлен в компьютер-получатель, данные необходимо направить конкретному процессу-получателю. Каждый компьютер может выполнять несколько процессов, более того, прикладной процесс тоже может иметь несколько точек входа, выступающих в качестве адреса назначения для пакетов данных.

Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются портами. Таким образом, адресом назначения, который используется протоколом TCP, является идентификатор (номер) порта прикладной службы. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров имеет название сокет (socket).

Назначение номеров портов прикладным процессам осуществляется либо централизованно, если эти процессы представляют собой популярные общедоступные службы (например, номер 21 закреплен за службой удаленного доступа к файлам FTP, a 23 - за службой удаленного управления telnet), либо локально для тех служб, которые еще не стали столь распространенными, чтобы закреплять за ними стандартные (зарезервированные) номера. Централизованное присвоение службам номеров портов выполняется организацией Internet Assigned Numbers Authority (IANA). Эти номера затем закрепляются и опубликовываются в стандартах Internet (RFC 1700).

Локальное присвоение номера порта заключается в том, что разработчик некоторого приложения просто связывает с ним любой доступный, произвольно выбранный числовой идентификатор, обращая внимание на то, чтобы он не входил в число зарезервированных номеров портов. В дальнейшем все удаленные запросы к данному приложению от других приложений должны адресоваться с указанием назначенного ему номера порта.

Протокол TCP ведет для каждого порта две очереди: очередь пакетов, поступающих в данный порт из сети, и очередь пакетов, отправляемых данным портом в сеть. Процедура обслуживания протоколом TCP запросов, поступающих от нескольких различных прикладных служб, называется мультиплексированием. Обратная процедура распределения протоколом TCP поступающих от сетевого уровня пакетов между набором высокоуровневых служб, идентифицированных номерами портов, называется демультиплексированием

Сегменты и потоки


Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байтов. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера «вырезается» некоторая непрерывная часть данных, которая и называется сегментом (см. рис. 5.23). В отличие от многих других протоколов, протокол TCP подтверждает получение не пакетов, а байтов потока.

Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать. Этот размер выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком, то есть максимальный размер сегмента не должен превосходить максимального размера поля данных IP-пакета, В противном случае пришлось бы выполнять фрагментацию, то есть делить сегмент на несколько частей, чтобы разместить его в IP-пакете,

Соединения


Для организации надежной передачи данных предусматривается установление логического соединения между двумя прикладными процессами. Поскольку соединения устанавливаются через ненадежную коммуникационную систему, основанную на протоколе IP, то во избежание ошибочной инициализации соединений используется специальная многошаговая процедура подтверждения связи.

Соединение в протоколе TCP идентифицируется парой полных адресов обоих взаимодействующих процессов - сокетов. Каждый из взаимодействующих процессов может участвовать в нескольких соединениях.

Формально соединение можно определить как набор параметров, характеризующий процедуру обмена данными между двумя процессами. Помимо полных адресов процессов этот набор включает и параметры, значения которых определяются в результате переговорного процесса модулей TCP двух сторон соединения. К таким параметрам относятся, в частности, согласованные размеры сегментов, которые может посылать каждая из сторон, объемы данных, которые разрешено передавать без получения на них подтверждения, начальные и текущие номера передаваемых байтов. Некоторые из этих параметров остаются постоянными в течение всего сеанса связи, а некоторые адаптивно изменяются.

В рамках соединения осуществляется обязательное подтверждение правильности приема для всех переданных сообщений и при необходимости выполняется повторная передача. Соединение в TCP позволяет вести передачу данных одновременно в обе Стороны, то есть полнодуплексную передачу.

Реализация скользящего окна в протоколе TCP


В рамках установленного соединения правильность передачи каждого сегмента должна подтверждаться квитанцией получателя. Квитирование - это один из традиционных методов обеспечения надежной связи. В протоколе TCP используется частный случай квитирования - алгоритм скользящего окна.

Особенность использования алгоритма скользящего окна в протоколе TCP состоит в том, что, хотя единицей передаваемых данных является сегмент, окно определено на множестве нумерованных байтов неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP. Получающий модуль TCP отправляет «окно» посылающему модулю TCP. Данное окно задает количество байтов (начиная с номера байта, о котором уже была выслана квитанция), которое принимающий модуль TCP готов в настоящий момент принять.

Квитанция (подтверждение) посылается только в случае правильного приема данных, отрицательные квитанции не посылаются. Таким образом, отсутствие квитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции. В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Это число часто называют номером очереди.


38. ссылка скрыта, основные функции, формат UDP , назначение полей заголовка.

Протокол UDP (User Datagram Protocol, Протокол пользовательских дейтаграмм) описан в RFC 768. Он предоставляет прикладным процессам простейшие услуги транспортного уровня. Две основные функции UDP – распределение дейтаграмм между процессами (на основании номеров портов) и контроль передачи пользовательских данных (не только заголовка, как в протоколе IP). Как и IP, UDP не гарантирует доставку и не поддерживает установку соединений.

Сообщение протокола UDP называется пользовательской дейтаграммой (User datagram) и состоит из заголовка и пользовательских данных. Заголовок состоит из четырех 16-битовых полей:

Порт отправителя (может заполняться нулями, если не используется)

Порт получателя

Длина сообщения (в байтах)

Контрольная сумма.

Сразу за заголовком идут пользовательские данные.

Нулевое значение в поле “Контрольная сумма” означает, что контрольная сумма не вычислялась. Для расчета контрольной суммы к началу дейтаграммы приписывается псевдозаголовок, состоящий из пяти полей:

IP-адрес отправителя

IP-адрес получателя

Нули (8 бит)

Протокол (8 бит)

Длина дейтаграммы (16 бит)

Кроме того, к концу дейтаграммы, возможно, добавляют нулевой байт, чтобы ее длина (вместе с псевдозаголовком) была кратна 16 битам. Затем вычисляется контрольная сумма (как в протоколе IP), и псевдозаголовок отбрасывается.


39, Протокол обмена управляющими сообщениями ICMP.


Три типа сообщений:
      • от промежуточного узла
      • от одного промежуточного узла к другому
      • от получателя к отправителю


ICMP сообщение разбивают на три группы:
  1. причина – ответ на эхо, получатель не достижим, TTL истекло и т.д.
  2. следствия – сеть не достижима, узел недостижим, требуется фрагментация, нарушена маршрутизация от источника, неизвестна сеть назначения и т.д.
  3. рекомендуемые действия – переадресовать датограмму для узла сети, разрешить фрагментацию и т.д.


Специализированные ICMP запросы:
  1. ICMP запрос отчёта времени – даёт возможность одному устройству запросить метку времени у другого устройства. Достоинства этого метода – определение времени состоит в взаимоувязанной установке времени в случае отсутствия серверов синхронизации времени. Возможны альтернативные возможности управления времени:

а) использование службы точного времени (NTP протокол)

б) служба сервиса времени внутри домена
  1. Эхо запрос – специализированный ответ ICMP, отправляемый на сообщение ping.



    1. Автоматизация процесса назначения IP адресов – протокол DHCP.


Протокол динамической конфигурации ЭВМ DHCP (Dynamic Host Configuration Protocol, RFC-2131, -2132, -2485, -2563, -2610, -2855, -2937, -2939, -3004, -3011, -3046; [22], [23], [24] и [25]) служит для предоставления конфигурационных параметров ЭВМ, подключенных к Интернет. DHCP имеет два компонента: протокол предоставления специфических для ЭВМ конфигурационных параметров со стороны DHCP-сервера и механизм предоставления ЭВМ сетевых адресов.

Протокол DHCP используется, помимо загрузки бездисковых станций или Х-терминалов (BOOTP), сервис-провайдерами для пулов модемов, когда число одновременно занятых модемов существенно меньше их полного числа. Это позволяет сэкономить заметное число IP-адресов. Протокол эффективен для случая распределения адресов за Firewall, где ЭВМ в защищенной зоне все равно бессмысленно выделять реальные IP-адреса.

DHCP построен по схеме клиент-сервер, где DHCP-сервер выделяет сетевые адреса и доставляет конфигурационные параметры динамически конфигурируемым ЭВМ.

DHCP поддерживает три механизма выделения IP-адресов. При «автоматическом выделении», DHCP присваивает клиенту постоянный IP-адрес. При «динамическом присвоении», DHCP присваивает клиенту IP-адрес на ограниченное время. При «ручном выделении», IP-адрес выделяется клиенту сетевым администратором, а DHCP используется просто для передачи адреса клиенту. Конкретная сеть использует один или более этих механизмов, в зависимости от политики сетевого администратора.

Динамическое присвоение адресов представляет собой единственный механизм, который позволяет автоматически повторно использовать адрес, который не нужен клиенту. Таким образом, динамическое присвоение адресов является оптимальной схемой для клиентов, подключаемых к сети временно, или совместно использующих один и тот же набор IP-адресов и не нуждающихся в постоянных адресах.


41. Утилиты ping и traceroute, их применение для тестирования сетей TCP/IP.

Утилита Ping позволяет проверить существование указанного узла и измерить время передачи до него одного пакета (можно задавать разные размеры пакета для исследования промежуточных сетей). Эта утилита выполняет передачу ICMP-сообщения типа 8 (Echo request), на которое получатель должен ответить ICMP-сообщением типа 0 (Echo reply).

Ping – утилита, предназначенная для проверки доступности узла или сети в стеке TCP/IP.

Программа посылает спец. пакет, в ответ получает ICMP сообщение.

Обычно PING используется для проверки возникшей проблемы при связи с сетью, хостом. Утилита PING работает только с реальными IP адресами.

Формат пакета:
  1. тип пакета
  2. адрес
  3. время жизни
  4. контрольная сумма (всё по 8 бит)


Работа программы:

В первом пакете значение порядкового номера ставится ноль, и при посылке каждого следующего пакета увеличивается на 1. это для того, чтобы было возможно обнаружить потери, дублирование, нарушение следования пакетов.

В зависимости от отклика:

1) отклик произошел (время жизни регулируется)

2) сеть достижима, но пакет не дошел

3) сеть не достижима, узел не достижим


Можно использовать и для других целей:
  1. время двойного оборота
  2. программа позволяет оценить в процентах количество правильных, не правильных, потерянных пакетов.


Можно изменять время жизни, количество пакетов (по умолчанию 4), размер пакета (32 или 64).

Существует возможность через опции – запись маршрутизатора( /R). В результате этого можно отследить список IP адресов.


Недостаток: показывает связь узлов только на 3 уровне. Все проблемы возникшие на уровне транспортных протоколов данная программа протестировать не может.


Утилита Traceroute показывает последовательность узлов, через которые проходит пакет на пути к получателю. Реализовано это следующим образом: последовательно отправляются пакеты с возрастающим значением в поле TTL: 1,2,3 и т.д. Тот маршрутизатор, который уменьшит TTL до нуля, обязан будет отправить ICMP-сообщение типа 11 (Time exceeded). В результате будут получены такие ICMP-сообщения по очереди от всех маршрутизаторов на пути пакета к получателю.


42. Принципы и алгоритмы маршрутизации.


Маршрутизатор, как и, например, мост, имеет несколько портов и должен для каждого поступающего пакета решить – отфильтровать его или передать на какой-то другой порт.

Как и мосты, маршрутизаторы решают эту задачу с помощью специальной таблицы – таблицы маршрутизации. По этой таблице маршрутизатор определяет, на какой порт нужно передавать пакет, чтобы он достиг нужной подсети (не обязательно сразу). Если сеть содержит петли, в таблицах маршрутизации может быть несколько записей на одну подсеть, описывающих разные возможные маршруты.

Каждый порт маршрутизатора рассматривается, как отдельный узел сети. Другие узлы должны знать его адрес и направлять пакеты для передачи в другие подсети на этот адрес, а не просто выдавать их в канал (как при прозрачных мостах).

Будем рассматривать принципы маршрутизации на примере сети, изображенной на рис. Здесь S1..S13 – подсети, M1..M13 – маршрутизаторы. Порты маршрутизаторов будем обозначать сочетанием имени маршрутизатора и сети, например, M5/S2 – порт маршрутизатора M5, подключенный к сети S2.

Для маршрутизатора M7 (см. рис.) таблица маршрутизации должна была бы выглядеть следующим образом (все адреса – сетевые):


Номер подсети назначения

Адрес порта следующего маршрутизатора

Адрес выходного порта

Расстояние до сети назначения

S1

M1/S4

M7/S4

1

S2

M5/S5

M7/S5

2

S3

M5/S5

M7/S5

3

S4

––

M7/S4

0

S5

––

M7/S5

0

S6

M6/S4

M7/S4

1

S9

M9/S4

M7/S4

1

S11

M9/S4

M7/S4

2

Default

M10/S5

M7/S5

1





Алгоритм маршрутизации – правило назначения выходной линии связи (порта) на основе данных, содержащихся в заголовке пакета, данных, описывающих состояние маршрутизатора и сети в целом.

Эффективность алгоритмов характеризуется:
  • временем доставки пакетов
  • нагрузкой на сеть
  • затратами ресурсов маршрутизаторов (времени и памяти).

Для повышения эффективности желательно, чтобы каждый маршрутизатор имел информацию, как о топологии сети, так и состоянии узлов и связей между ними.

Классификация алгоритмов:

A. Одношаговые алгоритмы
  1. Простая маршрутизация – не изменяющаяся при изменении топологии и состояния сети
  • случайная – передача пакета на любой порт, кроме исходного;
  • лавинная – передача пакета на все порты, кроме исходного;
  • по предыдущему опыту – по принципу моста со счетчиками хопов;
  1. Фиксированная маршрутизация – по статически заданным таблицам маршрутизации
  • однонаправленная;
  • многонаправленная;
  1. Адаптивная маршрутизация – с учетом изменений состояния сети (+TTL)
  • локальная – только на основе информации о состоянии своих выходных каналов и очередях пакетов;
  • распределенная – на основе информации, получаемой от других узлов (регулярный обмен узлов таблицами маршрутизации);
  • централизованная – с выделенным центром маршрутизации, собирающем информацию о состоянии узлов и каналов и рассылающем ее всем узлам;
  • гибридная – централизованная+локальная (если путь в таблице один, то по нему, иначе – на основе длин очередей)

Б. От источника


Адаптивные алгоритмы:
  • Дистанционно-векторные (Distance Vector Algorithms) – рассылается вектор из метрик соседних сетей – широковещательный мусор (близко к мосту) - RIP
  • Состояния связей (Link State Algorithms) – каждый узел строит полный граф сети (передаются ребра графа router-router, router-network) – IS-IS, OSPF, NLSP

Маршрутизаторы:
  • Магистральные – модульные, 12-14 слотов, hot swap
  • Региональных отделений
  • Удаленных офисов

Локальных сетей