Требования приложений. Сервисы, предоставляемые TCP и UDP

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

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

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

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

Время передачи: Гарантированное время доставки. И-телефония, виртуальные миры, телеконференции, многопользовательские комп игры. В приложениях, не являющихся приложениями реального времени, временные ограничения на доставку данных не являются столь принципиальными.

Приложения доставки Потеря Данных Скорость передачи Ограничение на время
Передача файлов Недопустима Эластичность Нет
Эл почта Недопустима Эластичность Нет
Работа с web-документами Недопустима Эластичность (несколько Кбит/с) Нет
Аудио и видео реального времени Допустима Аудио:несколько Кбит/с - 1Мбит/с Видео: 10Кбит/с-5Мбит/с Есть, сотни миллисекунд
Записанное потоковое аудио и видео Допустима также Есть, сотни миллисекунд
Интерактивные игры Допустима 1-10Кбит/с Есть, сотни миллисекунд
Обмен сообщениями в реальном времени Недопустима Эластичность Есть и нет

 

Протокол TCP: опирается на установление логического соединения и надежная передача данных.

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

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

Также включает контроль перегрузки.

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

Приложение Прикладной протокол Транспортный протокол
Эл почта SMTP TCP
Доступ с удаленного терминала Telnet TCP
Web HTTP TCP
Передача файлов FTP TCP
Удаленный файловый сервер NFS UDP или TCP
Потоковое мультимедиа Обычно фирменный , например Real Networks UDP или TCP
И-телефония Обычно фирменный , например Dialpad Как правило, UDP

Оба протокола не гарантируют время доставки.

Протокол HTTP

В «сердце» web находится протокол гипертекста HTTP, являющийся протоколом прикладного уровня. Реализуется с помощью двух программ: клиента и сервера, которые, находясь на разных оконечных системах обмениваются HTTP-сообщениями. Порядок обмена и содержание сообщений описаны в протоколе. Протокол определяет каким образом клиенты запрашивают web-страницы, а серверы осуществляют передачу этих страниц. Когда пользователь запрашивает web-страницу, браузер посылает серверу HTTP-запрос объектов, составляющих web-страницу. Сервер получает запрос и высылает ответные сообщения, содержащие требуемые объекты. Использует TCP в качестве протокола транспортного уровня. После завершения обслуживания клиентов сервер не сохраняет о них никакой инфы. Протокол HTTP является протоколом без запоминания состояния соединения.

Поддерживает постоянные и непостоянные соединения (1.0 только непостоянные). При непостоянном TCP получает лишь 1 объект, при постоянном - все.

Время оборота (RTT) - время, для однократного обмена сегментами. Включает в себя задержку распространения, ожидания и обработки. Суммарное время ответа: удвоенное время оборота и время передачи базового HTML-файла.

Постоянные соединения: с конвейеризацией, без конвейеризации (посылает новый запрос после завершения приема текущего объекта).

Формат HTTP-сообщения: сущ 2 типа сообщения: запросы и ответы.

Запрос:

Строка запроса Метод Sp URL sp Версия cr lf
Строки заголовка Имя заголовочного поля Sp Значение cr lf  
 
Имя заголовочного поля Sp Значение cr lf
Пустая строка cr Lf  
Тело объекта          

Первая строка - строка запроса, следующие - строки заголовка. Строка запроса содержит 3 поля: поле метода, поле URL и поле версии HTTP. Методы GET, HEAD, POST (слово для поиска(тело)).

Строки заголовка: User-Agent - агент пользователя (тип браузера сгенерировавшего запрос), Accept-Language - строка согласования данных.

Ответ:

Строка запроса Метод sp URL sp Информация состояния cr lf
Строки заголовка Имя заголовочного поля sp Значение cr lf  
 
Имя заголовочного поля sp Значение cr lf
Пустая строка cr lf  
Тело объекта          

Состоит из 3 частей: строка состояния, шести строк заголовка и тела сообщения. Тело содержит требуемый объект. Строка состояния образована из 3 полей: версия протокола, код состояния, информация состояния. Строки заголовка: The Date - дата и время создания ответа, Server - каким сервером создан ответ, Last-modified - дата и время создания или последнего изменения объекта, Content-Length - размер объекта в байтах, Content-type - тип объекта.

Поля кода состояния и информация о состоянии: 200 - ОК, 400 Bad Request (не возможна интерпретация запроса), 404 Not Found (не найден), 505 HTTP Version Not Supported (указанная версия сервером не поддерживается).

Аутентификация в HTTP, cookies, условный GET в HTTP.

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

Авторизация: авторизация - механизм при котором сервер предлагает ввести имя пользователя и пароль доступа к своему инф пространству. Запрос производится с помощью особых заголовков и кодов состояния. (клиент формирует запрос, получает ответ с кодом 401 - Autorization Required, в спец строке WWW-Authenticate: заголовка содержится описание метода проведения авторизации, как правило ввод имени пользователя и пароля. получив такое сообщение клиент запрашивает у пользователя имя и пароль, генерирует новый запрос, со строкой Authorization: с введенными пользователем данными. Продолжает отсылать имя и пароль для всех запрашиваемых объектов (имя и пароль кэшируются). Такой механизм не позволяет организовать надежную защиту данных сервера от несанкционированного доступа.

Cookie: Объекты cookie являются альтернативным авторизации средством идентификации пользователей. Наличие компонентов: 1) заголовочная cookie-строка в ответном сообщении сервера; 2) заголовочная cookie-строка в запросе клиента; 3) cookie-файл, находящийся на стороне клиента и обрабатываемый браузером; 4) удаленная БД, расположенная на web-сайте.

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

GET с условием: Web-кэширование, т.е. сохранение уже загруженных объектов способно ощутимо сократить время загрузки web-страниц и сетевой трафик. Кэширование может осуществляться клиентом и промежуточным кэш-сервером.

Кэширование порождает новую проблему: содержимое кэшированного объекта постоянно устаревает. метод GET с условием - средство, предусмотренное протоколом HTTP позволяющее при необходимости обновлять кэшированные объекты. Содержит строку заголовка: If-Modified-Since: - осуществить пересылку объекта если с момента предыдущей пересылки Last-Modified, был изменен. Если изменения не было, то получим 304 - Not Modified с пустым телом, это означает ,что можно использовать кэшированный объект.

 

 

Протокол FTP.

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

Модель использования: User Interfase User

 

Server

PI постоянное Client PI

команда - ответ управляющее соединение (control connection)

 

ФС Server Client

DTP временное DTP ФС

 

 

DTP - data transfer process

PI - protocol Interpreter

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

FTP сеанс начинается с установления управляющего соединения между клиентом с удаленным хостом (сервером) через порт 21 (передача имени и пароль, команды сметы каталога и обмена файлами). Когда сервер получает команду передачи или приема файла, он устанавливает с клиентом TCP-соединение данных, осуществляет файловый обмен, и закрывает соединение. Каждое соединение позволяет передать только 1 файл, при этом управляющее открыто в течении всего сеанса. Во время FTP-сеанса серверу необходимо иметь инфу о пользователе. Как правило управляющее соединение связно со специальной учетной записью пользователя. Кроме того, сервер должен следить за текущим каталогом, в котором работает пользователь. Необходимость затрат приводит к снижению FTP-сеансов, одновременно поддерживаемых сервером. Имя команды представляет собой 4 символа в верхнем регистре, за которыми следуют параметры: USER username:, PASS password:, LIST: (запрос к серверу на передачу имен всех файлов, находящихся в текущем каталоге, передача списков файлов происходит с использованием непостоянного соединения данных), RETR filename: (передача файла с указанным именем, сервер в ответ должен установить соединение данных и начать передачу), STOR filename: (передача файла от пользователя в текущий каталог удаленного хоста). Ответ представляет собой трехзначное число, иногда сопровождаемое небольшим текстовым пояснением.

 

 

Протокол SMTP.

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

SMTPserver SMTP SMTP-server

SMTP UA

User POP3

agent IMAP IMAP

POP3 mailbox mailbox у провайдера

web

сервер

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

1) SMTP-клиент пытается установить TCP-соединение с поротом 25 сервера, если сервер не отвечает, попытка повторяется. 2) после установления соединения - обмен рукопожатиями на транспортном уровне (определение адресов почтовых ящиков отправителя и получателя). 3) передача данных.

Если у клиенты есть ещё сообщения для того же сервера, то все они пересылаются последовательно через тоже соединение.

Формат сообщений: Заголовок - адрес отправителя, получателя (From: To: - обязательные, Subject: - необязательное, тело сообщение, отделенное от заголовка пустой строкой.

бинарный объект - это не текст, в котором встречаются коды < 32, кроме CR LF.

MIME - многоцелевое расширение почты И. Заголовки MIME: Content-Type: (позволяет провести соответствующую обработку), Content-Transfer-Encoding: (тип кодирования передаваемого объекта). В настоящее время выделено 7 основных типов. Пример: text, image, application.

multipart - тело сообщения содержит разную информацию.



16
  • Далее ⇒