Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Лекции по компьютерным сетям.docx
Скачиваний:
7
Добавлен:
02.12.2018
Размер:
474.66 Кб
Скачать

Лекция 5. ТРАНСПОРТНЫЙ УРОВЕНЬ

§1 Общие сведения

§2 Установка соединения

§3 Разрыв соединения

Лекция 6. ПРИКЛАДНОЙ УРОВЕНЬ

§1 Общие сведения

§2 Служба имен доменов DNS

§3 Электронная почта

Основные определения

Маршрутизация почты

Протоколы доступа к серверам

Структура электронного письма

Почтовые рассылки

§4 WWW

Сторона клиента

Сторона сервера

URL

Cookie-файлы

Языки и протоколы

Лекция 5. ТРАНСПОРТНЫЙ УРОВЕНЬ

§1 Общие сведения

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

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

Примерами примитивов транспортной службы являются:

LISTEN (ожидать)

CONNECT (соединить)

SEND (послать)

RECEIVE (получить)

DISCONNECT (разъединить)

Сообщения, которыми обмениваются транспортные службы объединяются в модули TPDU (Transport Protocol Data Unit – модуль данных транспортного протокола). Модули помещаются в пакеты, которыми обмениваются сетевые уровни.

§2 Установка соединения

Для установки соединения одна транспортная сущность должна отправить запрос на соединение, а другая – подтверждение. Однако сеть может потерять, задержать или дублировать пакеты с запросом и подтверждением.

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

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

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

  2. Помещение в каждый пакет счетчика транзитных участков. Заключается в начальной установке счетчика с последующим его уменьшением на каждом маршрутизаторе. Сетевой протокол игнорирует все пакеты, значение счетчика которых дошло до нуля.

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

§3 Разрыв соединения

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

Асимметричный разрыв связи является внезапным и может привести к потере данных. Рассмотрим сценарий, показанный на рис. 6.9. После установки соединения хост 1 посылает TPDU-модуль, который успешно добирается до хоста 2. Затем хост 1 посылает другой TPDU-модуль. К несчастью, хост 2 посылает DR (запрос разъединения) прежде, чем прибывает второй TPDU-модуль. В результате соединение разрывается, а данные теряются.

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

Синие армии хотели бы синхронизировать свое выступление. Однако единственный способ связи заключается в отправке вестового пешком по долине, он может быть схвачен, а донесение потеряно (то есть приходится пользоваться ненадежным каналом). Спрашивается: существует ли протокол, позволяющий армиям синих победить?

Предположим, командир 1-й армии синих посылает следующее сообщение «Я предлагаю атаковать 29 марта, на рассвете. Сообщите ваше мнение». Теперь предположим, что сообщение успешно доставляется и что командир 2-й армии синих соглашается, а его ответ успешно доставляется обратно в 1-ю армию си­них. Состоится ли атака? Вероятно, нет, так как командир 2-й армии не уверен, что его ответ получен. Если нет, то 1-я армия синих не будет атаковать, и было бы глупо с его стороны в одиночку ввязываться в сражение.

Чтобы увидеть, какое отношение проблема двух армий имеет к разрыву соединения, просто замените слово «атаковать» на «разъединить». Если ни одна из сторон не готова разорвать соединение до тех пор, пока она не уверена, что другая сторона также готова к этому, то разъединение не произойдет никогда.

На практике к разрыву соединения разработаны четыре сценария разъединения, использующих «тройное рукопожатие». Хотя этот протокол и не безошибочен, обычно он работает успешно.

На рис. а показан нормальный случай, в котором один из пользователей посылает запрос разъединения DR, чтобы инициировать разрыв соединения. Когда он прибывает, получатель посылает обратно также запрос разъединения DR и включает таймер на случай, если запрос потеряется. Когда запрос прибывает, первый отправитель посылает в ответ на него TPDU-модуль с подтверждением АСК и разрывает соединение. Наконец, когда прибывает АСК, получатель также разрывает соединение. Разрыв соединения означает, что транспортная сущность удаляет информацию об этом соединении из своей таблицы открытых соединений и сигнализирует о разрыве соединения владельцу соединения (пользователю транспортной службы).

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

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

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

Лекция 6. ПРИКЛАДНОЙ УРОВЕНЬ