Лекции 2010-го года (1130544), страница 72
Текст из файла (страница 72)
Еслисеть-отправитель и сеть-получатель одного типа, то можно использовать методтуннелирования пакетов. Если же они разные, то этот прием не подходит. Можнопопробовать фрагментацию.696. Транспортный уровеньТранспортный протокол - это центральный протокол во всей иерархии протоколов.Именно он обеспечивает надежную передачу данных в сети от одного абонента к другому.Здесь мы подробно рассмотрим организацию, сервис, протоколы и производительность натранспортном уровне.6.1. СервисВ этом разделе мы рассмотрим, какие виды сервиса транспортный уровень предоставляетприкладному, как характеризуется качество предоставляемого сервиса, какобеспечивается доступ из прикладного уровня к транспортному, как выглядит интерфейстранспортного уровня со смежными уровнями.6.1.1.
Сервис для верхних уровнейОсновная цель транспортного уровня - обеспечить эффективный, надежный и дешевыйсервис для пользователей на прикладном уровне. Достижение этой цели - задача сервиса,предоставляемого сетевым уровнем. То, что выполняет работу транспортного уровня,называется транспортным агентом. Транспортный агент может располагаться в ядреоперационной системы, в отдельном процессе пользователя, в библиотеке сетевогоприложения или на карте сетевого интерфейса. В некоторых случаях оператор сети можетпредоставлять надежный транспортный сервис, при котором транспортный агентрасполагается на специальной интерфейсной машине на границе транспортной среды, ккоторой подключены абонентские машины.
На рисунке 6-1 показано взаимноерасположение сетевого, транспортного и прикладного уровней.Рисунок 6-1. Сетевой, транспортный и прикладной уровеньПодобно сетевому уровню, транспортный уровень также может поддерживать два видасервиса - ориентированный на соединения и без соединений. Транспортный сервис,ориентированный на соединение, имеет много общего с аналогичным сетевым сервисом.Адресация и управление потоком также схожи на обоих уровнях.Возникает вопрос: если сервис сетевого уровня столь схож с сервисом транспортного, тозачем выделять два разных уровня? Причина состоит в том, что сетевой уровень - эточасть транспортной среды, которой управляет оператор. Что будет, если сетевой уровеньпредоставляет ненадежный сервис, ориентированный на соединения? Предположим, чтоон часто теряет пакеты.
Что делать, если маршрутизатор время от времени отказывает?У пользователя такой транспортной среды отсутствуют средства для решения этихпроблем, в случае их возникновения. Нужно поверх сетевого пустить еще один уровень,который позволит исправлять качество сервиса сетевого уровня. Если транспортномууровню придет сообщение, что соединение на сетевом уровне неожиданно былоразорвано, то он может установить новое сетевое соединение, с помощью котороговыяснить, что произошло, какие данные были переданы, а какие нет, и т.п.Задача транспортного уровня в том, чтобы сделать сервис транспортного уровня дляприкладного более надежным, чем сетевого для транспортного. Другое важное свойствотранспортного уровня - прикладная программа, опираясь на транспортный сервис,становится независимой от сети и может работать в сети с любым сетевым сервисом.
И,наконец, с транспортным сервисом работает прикладная программа, а с сетевым –транспортный уровень. Поэтому интерфейс с транспортным уровнем должен бытьдружественным, удобным и эффективным.В силу приведенных доводов первые четыре уровня называют поставщикамитранспортного сервиса, а все, что выше четвертого, - пользователями транспортногосервиса.6.1.2. Качество сервисаМы уже встречались с понятием качества сервиса при рассмотрении сетевого уровня, гдерассматривали набор параметров, характеризующих это понятие. Транспортный уровеньпозволяет пользователю в момент установки соединения определить желаемые,допустимые и минимальные значения для различных параметров, характеризующихкачество сервиса.
Далее транспортный уровень сам будет решать, сможет ли он спомощью сетевого сервиса удовлетворить запросы пользователя, и до какой степени. Втаблице 6-2 перечислены основные параметры качества сервиса. Заметим, что лишьнемногие сети поддерживают все эти параметры.Таблица 6-2. Основные параметры качества сервиса на транспортном уровнеConnection establishment delay (Задержка установления соединения)Connection establishment failure probability (Вероятность сбоя при установлении соединения)Throughput (Пропускная способность)Transit delay (Задержка битов - при побитовой передаче)Residual error ratio (Коэффициент необнаруженных ошибок)Protection (Защита)Priority (Приоритет)Resilience (Устойчивость системы)• Connection establishment delay - задержка на установку соединения, определяетвремя между запросом на установку соединения и подтверждением егоустановки.• Connection establishment failure probability - вероятность, что соединение не будетустановлено за время, равное задержке на установку соединения.• Throughput - пропускная способность транспортного соединения, определяетколичество байт пользователя, передаваемого за секунду.• Transit delay - задержка на передачу, определяет время от момента, когдасообщение ушло с машины-отправителя, до момента, когда оно полученомашиной-получателем.• Residual error ration - доля ошибок при передаче.
Этот параметр определяетотношение числа сообщений, при передаче которых были ошибки, включаяпотерянные сообщения, к общему числу переданных сообщений. Теоретическиэтот параметр должен быть равен 0, если транспортный уровень надежнопередает сообщение.
На практике это не так.• Protection - этот параметр позволяет определить уровень защиты передаваемыхданных от несанкционированного доступа третьей стороной. Косвенно онопределяет, на какие затраты готов пойти пользователь для защиты своихданных от перехвата при передаче на транспортном уровне.• Priority – приоритет, позволяет пользователю указать степень важности для негоданного соединения среди остальных соединений.• Resilience – устойчивость, определяет вероятность разрыва транспортным уровнемсоединения в силу своих внутренних проблем или перегрузки.Параметры качества сервиса определяет пользователь в момент установлениятранспортного соединения, указывая для каждого из них желаемое и минимальноезначения. Если требуемое качество недостижимо, то транспортный уровень сразусообщает об этом пользователю, даже не обращаясь к получателю сообщения. При этомпользователя информируют, что попытка установить соединение прошла неудачно, и опричинах неудачи.
Процедура согласования параметров качества сервиса называетсясогласованием возможностей.6.1.3. Примитивы транспортного уровняПримитивы транспортного уровня позволяют пользователю получить доступ ктранспортному сервису. Транспортный сервис аналогичен сервису сетевого уровня.Однако между ними существует одно различие - сетевой сервис по природе своейненадежен. Задача транспортного сервиса как раз обеспечить надежную доставкусообщений. Два процесса, соединенные между собой, ничего не должны знать о том, какфизически они соединены. Один помещает данные на вход транспортного уровня, другойполучает их. Задача транспортного уровня скрыть и от получателя и от отправителя вседетали передачи, исправления ошибок и т.п.Теоретически транспортный сервис может быть как ориентированным на соединения, таки нет.
Однако дейтаграммный транспортный сервис - это редкость, поэтому мы будемрассматривать транспортный сервис, ориентированный на соединения.Другое важное различие между сетевым и транспортным сервисами состоит в том, кто ихиспользует. Сетевой сервис использует транспортный сервис, а вот транспортныйиспользует пользователь, т.е. прикладные программы. Поэтому транспортный сервисдолжен быть ориентирован на пользователя, удобным и простым в использовании.Общее представление о примитивах транспортного сервиса дает таблица 6-3.
Этот примерсодержит основные виды примитивов для установления соединения, передачи данных иразрыва соединения, что вполне достаточно для многих приложений.Таблица 6-3. Примитивы транспортного сервисаПримитивОтправляемый пакет TPDUЗначениеLISTEN(нет)Блокировка, пока какой-либо процесс непопытается установить соединениеCONNECTCONNECTION REQ.Активная попытка установить соединениеSENDSENDИнформация об отправкеRECEIVE(нет)Блокировка до поступления DATA TPDUDISCONNECT DISCONNECTION REQ.Данная сторона собирается прервать соединениеИспользование этих примитивов может быть продемонстрировано следующим образом.Сервер приложения выполняет примитив LISTEN, в результате чего он блокируется допоступления запросов от клиентов.
Клиент для установления соединения выполняетпримитив CONNECT. Транспортный агент на стороне клиента блокирует клиента ипосылает серверу пакет с запросом на установление соединения.Напомним, что транспортные агенты обмениваются пакетами, которые имеютспециальное название - Transport Protocol Data Unit (TPDU). Взаимосвязь между кадрами,пакетами и TPDU показана на рисунке 6-4.Рисунок 6-4. Взаимосвязь между кадрами, пакетами и TPDUПо примитиву CONNECT транспортный агент на стороне клиента шлет CONNECTIONREQUEST TPDU. Транспортный агент сервера, видя, что сервер заблокирован по LISTEN,разблокирует сервер и посылает CONNECTION ACCEPTED TPDU. После этоготранспортное соединение считается установленным и начинается обмен данными спомощью примитивов SENT и RECEIVE.По окончании обмена соединение должно быть разорвано.
Есть два варианта разрывасоединения: симметричный и асимметричный. Асимметричный разрыв предполагает, чтодля разрыва соединения одна из сторон посылает DISCONNECT TPDU. Получив этотTPDU, другая сторона считает соединение разорванным.При симметричном разрыве каждое направление закрывается отдельно. Когда однасторона посылает DISCONNECT TPDU, это значит, что с ее стороны больше данных небудет. На рисунке 6-5 показана диаграмма состояний при установлении и разрывесоединения. (Переходы, выделенные курсивом, вызываются прибытием пакета.Пунктирной линией обозначена последовательность состояний сервера, сплошной клиента.)Рисунок 6-5.