- •3 . Классификация сетей. Локальные сети, глобальные сети.
- •4.Ключевые аспекты организации уровня передачи данных. Обнаружение и исправление ошибок.
- •5. Ключевые аспекты организации уровня передачи данных. Обработка ошибок.
- •6. Ключевые аспекты организации уровня передачи данных.Сервисы, предоставляемые сетевому уровню
- •7. Ключевые аспекты организации уровня передачи данных. Формирование кадра.
- •8. Подуровень управления доступом к среде. Коммутация на уровне передачи данных. Повторители, концентраторы, мосты, коммутаторы, маршрутизаторы и шлюзы.
- •9. Подуровень управления доступом к среде. Коммутация на уровне передачи данных.Мосты между .X и .У
- •10. Подуровень управления доступом к среде. Проблема распределения канала. Динамическое распределение каналов
- •11. Подуровень управления доступом к среде. Проблема распределения канала. Протоколы без столкновений
- •12. Подуровень управления доступом к среде. Проблема распределения канала. Протоколы множественного доступа с контролем несущей.
- •13. Подуровень управления доступом к среде. Проблема распределения канала. Протоколы с ограниченной конкуренцией
- •14. Подуровень управления доступом к среде. Проблема распределения канала. Статическое распределение канала
- •15. Подуровень управления доступом к среде. Сети Ethernet.
- •16. Подуровень управления доступом к среде. Сеть Ethernet. Манчестерский код.
- •17. Подуровень управления доступом к среде. Сеть Ethernet. Протокол подуровня управления доступом к среде в Ethernet
- •18. Подуровень управления доступом к среде. Сеть Ethernet. Кабели Ethernet.
- •19. Подуровень управления доступом к среде. Система aloha
- •20. Прикладной уровень. Архитектура www
- •21. Прикладной уровень. Служба имен доменов dns.
- •22. Прикладной уровень. Служба доменов dns. Записи ресурсов
- •23. Прикладной уровень. Служба доменов dns. Пространство имен dns
- •24. Прикладной уровень. Служба доменов dns. Серверы имен
- •25. Прикладной уровень. Электронная почта. Архитектура и службы
- •26. Прикладной уровень. Электронная почта. Доставка сообщений
- •27. Прикладной уровень. Электронная почта. Пересылка писем
- •28. Проектирование сетевого уровня. Реализация сервиса без установления соединения.
- •29. Проектирование сетевого уровня. Сервисы, предоставляемые транспортному уровню.
- •30. Проектирование сетевого уровня. Сравнение подсетей виртуальных каналов и дейтаграмных подсетей.
- •31. Сетевой уровень в Интернете. Ip-адреса
- •Ip адрес
- •32. Сетевой уровень в Интернете. Управляющие протоколы Интернета.
- •33. Сетевой уровень в Интернете. Протокол ip.
- •34. Сетевой уровень. Алгоритмы маршрутизации. Выбор кратчайшего пути. Заливка.
- •35. Сетевой уровень. Управляющие алгоритмы маршрутизации. Выбор кратчайшего пути. Маршрутизация по вектору расстояний.
- •36. Сетевой уровень. Управляющие алгоритмы маршрутизации. Выбор кратчайшего пути. Маршрутизация с учётом состояния линий.
- •37. Службы и протоколы.
- •38. Службы на основе соединений и службы без установления соединений
- •39. Службы на основе соединений и службы без установления соединений
- •40. Транспортная служба. Примитивы транспортной службы.
- •41. Транспортная служба. Сокеты Беркли.
- •42. Транспортная служба. Услуги, предоставляемые верхним (транспортным) уровнем.
- •43. Транспортные протоколы Интернета: tcp
- •44. Транспортные протоколы Интернета: tcp Протокол tcp.
- •45. Транспортные протоколы Интернета: tcp. Модель службы tcp
- •46. Транспортные протоколы Интернета: tcp. Основы tcp
- •47. ТпИ: udp Вызов удаленной процедуры
- •48. ТпИ: udp Основы
40. Транспортная служба. Примитивы транспортной службы.
Функции транспортного уровня состоят в установлении транспортного соединения между точками доступа, транспортировке данных по этому соединению, управлении потоком данных, исправлении ошибок транспортировки. Эти функции реализуются на трех разных этапах: этапе установления соединения, этапе переноса данных и этапе терминации соединения.
Примитивы транспортной службы.
Чтобы пользователи могли получить доступ к транспортной службе, транспортный уровень должен совершать некоторые действия по отношению к прикладным программам, т е предоставлять интерфейс транспортной службы. У всех транспортных служб есть свои интерфейсы.
Примитивы:
LISTEN (ОЖИДАТЬ) –Блокировать сервер, пока какой-либо процесс не попытается соединиться
CONNECT (СОЕДИНИТЬ) - ЗАПРОС СОЕДНИНЕНИЯ. Активно пытаться установить соединение.
SEND (ПОСЛАТЬ) – ДАННЫЕ. Послать информацию
RECEIVE (ПОЛУЧИТЬ) – Блокировать сервер, пока не прибудут данные
DISCONNECT (РАЗЪЕДИНИТЬ) – ЗАПРОС РАЗЪЕДИНЕНИЯ. Прервать соединение.
Чтобы понять, как могут быть использованы эти примитивы, рассмотрим приложение, состоящее из сеpвеpа и нескольких удаленных клиентов. Вначале сервер выполняет примитив LISTEN — обычно для этого вызывается библиотечная процедура, которая обращается к системе. В результате сервер блокируется, пока клиент не обратится к нему. Когда клиент хочет поговорить c сервером, он выполняет приметив CONNECT. Транспортный объект выполняет этот примитив, блокируя обратившегося к нему клиента и посылая пакет серверу. Поле даннх пакета сожержит сообщение транспортного уровня, адресованное транспортному объекту сервера.
Следует сказать пару слов o терминологии. За неимением лучшего термина, для сообщений, посылаемых одной транспортной сущностью другой транспортной сущности, нам придется использовать несколько неуклюжее сокращение TPDU (Transport Protocol Data Unit —модуль данных транспортного протокола). Модули данных, которыми обмениваются транспортные уровни, помещаются в пакеты (которыми обмениваются сетевые уровни). Эти пакеты, в свою очередь, содержатся в кадрах, которыми обмениваются уровни передачи данных. Получив кадр, уровень передачи данных обрабатывает заголовок кадра и передаёт содержимое поля полезной нагрузки кадра наверх, сетевой сущности. Сетевая сущность обрабатывает заголовок пакета и передаёт содержимое поля полезной нагрузки пакета наверх, транспортной сущности. Эта вложенность проиллюстрирована на рис. :
Итак, вернемся к нашему примеру общения клиента и сервера. B результате запроса клиента CONNECT серверу посылается модуль данных тpaнспоpтнoгo протокола, содержащий CONNECTION REQUEST (запрос соединения). Когда он пpибывает, транспортная сущность проверяет, заблокирован ли сервер пpимитивом LISTEN (то есть заинтересован ли сеpвеp в обработке запросов). Затем она разблокирует сервер и посылает обратно клиенту модуль данных CONNECTION ACCEPTED (соединение принято). Получив этот модуль, клиент разблокируется, после чего соединение считается установленным.
Теперь клиент и сервер могут обмениваться данными с помощью примитивов SEND и RECEIVE. В простейшем случае каждая из сторон может использовать блокирующий примитив RECEIVE для перехода в режим ожидания модуля данных, посылаемого противоположной стороной при помощи примитива SEND. Когда модуль данных пpибывaет, получатель разблокируется. Затем oн может обработать полученный модуль и послать ответ. Такая схема прекрасно работает, пока обе стороны помнят, чей чеpед посылать, а чей — принимать.
Обратите внимание на то, что на сетевом уровне даже простая однонаправленная пересылка данных оказывается сложнее, чем на транспортном уровне. Каждый пocлaнный пакет данных будет, в конце концов, подтвержден. Пакеты, содержащие управляющие модули данных, также подтверждаются, явно или неявно. Эти подтверждения управляются транспортными сущностям при помощи протокола сетевого уpовня и не видны пользователям транспортного уровня. Аналогично транспортным сущностям нет необходимости бecпокоиться о таймерах и повторных передачах. Все эти механизмы не видны пользователям транспортного уровня, для которых соединение представляется надёжным битовым каналом. Один пользователь помещает в канал биты, которые появляются на другом конце канала. Эта способность скрывать сложность от пользователей свидетельствует о том, что многоуровневые протоколы являются довольно мощным инструментом.
Когда соединение больше не требуется, оно должно быть разорвано, чтобы можно было освободить место в таблицах двух транспортных сущностей. Разъединение существует в двух вариантах: симметричном и асимметричном. В асимметричном варианте любой пользователь транспортной службы может вызвать примитив DISCONNECT, в результате чего удаленной транспортной сущности будет послан управляющий модуль TDU DISCONNECTION REQUEST (запрос разъединения). После получения модуля TPDU удаленной транспортной сущностью соединение разрывается.
B симметричном варианте каждое направление закрывается отдельно, независимо от другого. Когда одна сторона выполняет примитив DISCONNECT, это означает, что у нее больше нет данных для передачи, но что она все еще готова принимaть данные от своего партнера. В этой схеме соединение разрывается, когда обе стороны выполняют примитив DISCONNECT.
Диаграмма состояний для установки и разрыва соединения показана на рис. 6.3. Каждый переход вызывается каким-то событием или примитивом, выполненным локальным пользователем транспортной службы или входящим пакетом. Для простоты мы будем считать, что каждый модуль TPDU подтверждается отдельно. Мы также предполагаем, что используется модель симметричного раъединения, в которой клиент делает первый ход.
