Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы 1-63.doc
Скачиваний:
12
Добавлен:
22.04.2019
Размер:
1.45 Mб
Скачать

19. Служебные ip протоколы. Транспортный уровень.

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

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

Транспортный уровень Internet реализуется ТСР и Протоколом Дейтаграмм Пользователя (User Datagram Protocol - UDP).

ТСР обеспечивает транспортировку данных с установлением соединения, в то время как UDP работает без установления соединения.

Транспортный уровень. На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Работа транспортного уровня заключается в том, чтобы обеспечить приложениям или верхним уровням стека - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное - способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.

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

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

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

Маршрутная информация, может быть:

  • Статической (маршрутные таблицы прописываются вручную)

  • Динамической (маршрутную информацию распространяют специальные протоколы)

Протоколы динамической маршрутизации:

  • RIP (Routing Information Protocol) - протокол передачи маршрутной информации, маршрутизаторы динамически создают маршрутные таблицы.

  • OSPF (Open Shortest Path First) - протокол "Открой кротчайший путь первым", является внутренним протоколом маршрутизации.

  • IGP (Interior Gateway Protocols) - внутренние протоколы маршрутизации, распространяет маршрутную информацию внутри одной автономной системе.

  • EGP (Exterior Gateway Protocols) - внешние протоколы маршрутизации, распространяет маршрутную информацию между автономными системами.

  • BGP (Border Gateway Protocol) - протокол граничных маршрутизаторов.

Протокол ICMP

ICMP (Internet Control Message Protocol) - расширение протокола IP, позволяет передавать сообщения об ошибке или проверочные сообщения.

  Другие служебные IP-протоколы

IGMP (Internet Group Management Protocol) - позволяет организовать многоадресную рассылку средствами IP.

RSVP (Resource Reservation Protocol) - протокол резервирования ресурсов.

ARP (Address Resolution Protocol) - протокол преобразования IP-адреса и адреса канального уровня.

Служебные IP-протоколы.

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

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

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

На транспортном уровне работают два основных протокола: UDP и TCP.

20. ТСР-протокол. Установка соединения. Протоколы UDP и RTP.

Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования виртуальных соединений.TCP - дуплексный транспортный протокол с установлением соединения. Его функции: упаковка и распаковка пакетов на концах транспортного соединения; установление виртуального канала путем обмена запросом и согласием на соединение; управление потоком - получатель при подтверждении правильности передачи сообщает размер окна, т.е. диапазон номеров пакетов, которые получатель готов принять; помещение срочных данных между специальными указателями, т.е. возможность управлять скоростью передачи. В TCP имеется программа-демон, которая постоянно готова к работе и при приходе запроса генерирует свою копию для обслуживания создаваемого соединения, а сама программа-родитель ждет новых вызовов. Схема установления соединения в одноранговых сетях такова: инициатор соединения обращается к своей ОС, которая в ответ выдает номер протокольного порта и посылает сегмент получателю. Тот должен подтвердить получение запроса и послать свой сегмент-запрос на создание обратного соединения (так как соединение дуплексное). Инициатор должен подтвердить создание обратного соединения. Получается трехшаговая процедура (handshake) установления соединения. Во время этих обменов партнеры сообщают номера байтов в потоках данных, с которых начинаются сообщения. На противоположной стороне счетчики устанавливаются в состояние на единицу больше, чем и обеспечивается механизм синхронизации в дейтаграммной передаче, реализуемой на сетевом уровне. После установления соединения начинается обмен. При этом номера протокольных портов включаются в заголовок пакета. Каждое соединение (socket) получает свой идентификатор ISN. Разъединение происходит в обратном порядке.

Примечание: ISN в TCP/IP не используется, но предусмотрен в UNIX, так как может потребоваться в других протоколах.

Структура ТСР-пакета (в скобках указано число битов):

  • порт отправителя (16);

  • порт получателя (16);

  • код позиции в сообщении, т.е. порядковый номер первого байта в поле данных (32);

  • номер следующего байта (32);

  • управление (16);

  • размер окна (16), т.е. число байт, которое можно послать до получения подтверждения;

  • контрольная сумма (16);

  • дополнительные признаки, например срочность передачи (16);

  • опции (24);

  • заполнитель (8);

  • данные.

Нужно отметить, что каждый байт сообщения получает уникальный порядковый номер. Отсюда вытекает одно из ограничений на максимально допустимую в протоколе TCP/IP пропускную способность. Это ограничение составляет (232 байта) / (время жизни дейтаграммы), так как для конкретного соединения в сети не должно одновременно существовать более одного байта с одним и тем же номером.

Еще более жесткое ограничение возникает из-за представления размера окна всего 16-ю битами. Это ограничение заключается в том, что за время Tv прохождения пакета от отправителя к получателю и обратно в сеть может быть направлено не более 216 информационных единиц конкретного сообщения. Поскольку обычно такой единицей является байт, то имеем (216*8 бит) / Tv . Так, для каналов со спутниками на геостационарных орбитах Tv составляет около 0,5 с и ограничение скорости будет около 1 Мбит/с. Заметно увеличить этот предел можно, если в качестве информационной единицы использовать С байт, С>1. В ТСР повторная передача пакета происходит, если в течение оговоренного интервала времени Тm (тайм-аута) не пришло положительное подтверждение. Следовательно, не нужно посылать отрицательные квитанции. Обычно Tm=2*t , где t - некоторая оценка времени прохождения пакета туда и обратно. Это время периодически корректируется по результату измерения Tv, а именно t := 0,9*t + 0,1*Tv. Попытки повторных передач пакета не могут продолжаться бесконечно, и при превышении интервала времени, устанавливаемого в пределах 0,5...2,0 мин, соединение разрывается. Размер окна регулируется следующим образом. Если сразу же после установления соединения выбрать завышенный размер окна, что означает разрешение посылки пакетов с высокой интенсивностью, то велика вероятность появления перегрузки определенных участков сети. Поэтому используется алгоритм так называемого медленного старта. Сначала посылается один пакет и после подтверждения его приема окно увеличивается на единицу, т.е. посылаются два пакета. Если вновь положительное подтверждение (потерь пакетов нет), то посылаются уже четыре пакета и т.д. Скорость растет, пока пакеты проходят успешно. При потере пакета или при приходе от протокола управления сигнала о перегрузке размер окна уменьшается и далее опять возобновляется процедура линейного роста размера окна. Медленный старт снижает информационную скорость, особенно при пересылке коротких пакетов, поэтому стараются применять те или иные приемы его улучшения.

Порты и установление TCP-соединений

В протоколе TCP также, как и в UDP, для связи с прикладными процессами используются порты. Номера портам присваиваются аналогичным образом: имеются стандартные, зарезервированные номера (например, номер 21 закреплен за сервисом FTP, 23 - за telnet), а менее известные приложения пользуются произвольно выбранными локальными номерами. Однако в протоколе TCP порты используются несколько иным способом. Для организации надежной передачи данных предусматривается установление логического соединения между двумя прикладными процессами. В рамках соединения осуществляется обязательное подтверждение правильности приема для всех переданных сообщений, и при необходимости выполняется повторная передача. Соединение в TCP позволяет вести передачу данных одновременно в обе стороны, то есть полнодуплексную передачу. Соединение в протоколе TCP идентифицируется парой полных адресов обоих взаимодействующих процессов (оконечных точек). Адрес каждой из оконечных точек включает IP-адрес (номер сети и номер компьютера) и номер порта. Одна оконечная точка может участвовать в нескольких соединениях. Установление соединения выполняется в следующей последовательности:

-При установлении соединения одна из сторон является инициатором. Она посылает запрос к протоколу TCP на открытие порта для передачи (active open).

-После открытия порта протокол TCP на стороне процесса-инициатора посылает запрос процессу, с которым требуется установить соединение.

-Протокол TCP на приемной стороне открывает порт для приема данных (passive open) и возвращает квитанцию, подтверждающую прием запроса.

-Для того чтобы передача могла вестись в обе стороны, протокол на приемной стороне также открывает порт для передачи (active port) и также передает запрос к противоположной стороне.

-Сторона-инициатор открывает порт для приема и возвращает квитанцию. Соединение считается установленным. Далее происходит обмен данными в рамках данного соединения.