Э. Таненбаум, Д. Уэзеролл - Компьютерные сети (1114668), страница 16
Текст из файла (страница 16)
Часто используется обратная связь от получателя к отправителю. Ее называютуправлением потоками. Иногда проблема состоит в том, что сеть перегружена, потомучто слишком много компьютеров хотят послать слишком большие объемы информации, и сеть не может передать все. Эту перегрузку сети называют скоплением. Однастратегия решения — требовать в таком случае от каждого компьютера уменьшенияего запросов. Это также может использоваться во всех уровнях.Интересно заметить, что сеть может предложить больше ресурсов, чем просто пропускная способность.
Для использования передачи видео в реальном времени, своевременность доставки имеет большое значение. Большинство сетей должно предоставитьсервис приложениям, которые хотят получить эту доставку в реальном времени в то жесамое время, когда они работают с приложениями, которые хотят получить высокуюпропускную способность. Качество службы — это механизмы, которые регулируютэти конкурирующие требования.Последняя главная проблема устройства сети — обеспечить сеть защитой от различных видов угроз.
Одна из угроз, которые мы упомянули ранее, — подслушиваниекоммуникаций. Механизмы, которые обеспечивают конфиденциальность, защищаютот этой угрозы, и они используются во многих уровнях. Механизмы для аутентификации препятствуют тому, чтобы кто-то исполнил роль кого-то другого. Они могли быиспользоваться, чтобы отличать поддельные банковские веб-сайты от реальных илипозволить сотовой связи проверять, что вызов действительно происходит из вашеготелефона, чтобы вы оплатили счет.
Другие механизмы для целостности предотвраща-1.3. Сетевое программное обеспечение 51ют тайные изменения сообщений, таких как изменение «снимите с моего счета $10» на«снимите с моего счета $1000». Все эти проекты основаны на криптографии, которуюмы изучим в главе 8.1.3.3. Службы на основе соединений и службыбез установления соединенийУровни могут предлагать вышестоящим уровням услуги двух типов: с наличием илиотсутствием установления соединения. В этом разделе мы рассмотрим, что означаеткаждый из этих типов и в чем состоит разница между ними.Типичным примером сервиса с установлением соединения является телефоннаясвязь.
Чтобы поговорить с кем-нибудь, необходимо поднять трубку, набрать номер,а после окончания разговора положить трубку. Нечто подобное происходит и в компьютерных сетях: при использовании сервиса с установлением соединения абонентсначала устанавливает соединение, а после окончания сеанса разрывает его. Этонапоминает трубу: биты сообщения влетают в один ее конец, а вылетают с другого.В большинстве случаев не возникает путаницы с последовательностью передачи этихбитов.В некоторых случаях перед началом передачи отправляющая и получающая машины обмениваются приветствиями, отсылая друг другу приемлемые параметрысоединения: максимальный размер сообщения, необходимое качество сервиса и др.В большинстве случаев одна из сторон посылает запрос, а другая его принимает, отвергает или же выставляет встречные условия. Линия — другое название соединениясо связанными ресурсами, такими как фиксированная пропускная способность.
Этоназвание происходит из истории телефонной сети, в которой линия была путем помедному проводу, который переносил телефонный разговор.Противоположный пример — сервисы без установления соединения, типичныйпример такой технологии — почтовые системы. Каждое письмо содержит полныйадрес назначения и проходит по некому маршруту, который совершенно не зависитот других писем. Есть различные названия для сообщений в различных контекстах;пакет — сообщение на сетевом уровне. Когда промежуточные узлы получают сообщение полностью перед пересылкой его к следующему узлу, это называют коммутациейс промежуточной буферизацией. Другой вариант, когда передача сообщения начинается прежде, чем оно будет полностью получено узлом, называют сквозной передачей.Обычно то письмо, которое отправлено раньше, в место назначения приходит раньше.Тем не менее возможна ситуация, что первое письмо задерживается и раньше приходитто, которое было послано вторым.Каждая служба характеризуется качеством обслуживания.
Некоторые службыявляются надежными, в том смысле, что они никогда не теряют данные. Обычно надежная служба реализуется при помощи подтверждений, посылаемых получателемв ответ на каждое принятое сообщение, так что отправитель знает, дошло очередноесообщение или нет. Процесс пересылки подтверждений требует некоторых накладныхрасходов и снижает пропускную способность канала. Впрочем, подобные затратыобычно не очень велики и окупаются, хотя иногда могут быть нежелательными.52 Глава 1. ВведениеТипичным примером необходимости надежной службы на основе соединенийявляется пересылка файлов.
Владелец файла хочет быть уверен, что все биты файлаприбыли без искажений и в том же порядке, в котором были отправлены. Вряд ликто-нибудь отдаст предпочтение службе, которая случайным образом искажает информацию, даже если передача происходит значительно быстрее.Надежные службы на основе соединений бывают двух типов: последовательностисообщений и байтовые потоки. В первом варианте сохраняются границы между сообщениями. Когда посылаются два сообщения размером по 1 Кбайт, то они прибываютв виде двух сообщений размером по 1 Кбайт и никогда как одно двухкилобайтноесообщение. При втором варианте связь представляет собой просто поток байтов, безразделения на отдельные сообщения. Когда 2048 байт прибывают к получателю, тонет никакой возможности определить, было это одно сообщение длиной 2 Кбайт, двасообщения длиной 1 Кбайт или же 2048 однобайтных сообщений.
Если страницыкниги посылаются по сети фотонаборной машине в виде отдельных сообщений, то,возможно, необходимо сохранить границы между сообщениями. С другой стороны,чтобы загрузить DVD-фильм, вполне достаточно потока байтов с сервера на компьютер пользователя. Границы сообщений внутри фильма не важны.Существуют системы, для которых задержки, связанные с пересылкой подтверждений, неприемлемы. В качестве примера такой системы можно назвать цифровуюголосовую связь и IP-телефонию. В данном случае предпочтительнее допуститьшумы на линии или искаженные слова, нежели большие паузы, вызванные отсылкойподтверждений и повторной передачей блоков данных.
Аналогично, при проведениивидеоконференции отдельные неправильные пикселы окажутся меньшей проблемой,нежели движение изображения резкими толчками; из-за того, что поток останавливается и начинает исправлять ошибки, мы видим дергающиеся и останавливающиесякадры.Не все приложения требуют установки соединения. Например, спаммеры рассылают рекламу по электронной почте большому количеству получателей. Спаммер,вероятно, не хочет устанавливать связь для пересылки каждого отдельного сообщения,а хочет отправить один объект.
Также не требуется в этом случае и 100-процентнаянадежность, особенно если это существенно увеличит стоимость. Все, что нужно, — этоспособ переслать сообщение с высокой вероятностью его получения, но без гарантии.Ненадежная (то есть без подтверждений) служба без установления соединения частоназывается службой дейтаграмм или дейтаграммной службой, по аналогии с телеграфной службой, также не предоставляющей подтверждений отправителю. Несмотрянизкую надежность, это — доминирующая форма в большинстве сетей по причинам,которые станут ясными позже.В других ситуациях бывает желательно не устанавливать соединение для пересылки сообщений, но надежность, тем не менее, существенна.
Такая служба называетсяслужбой дейтаграмм с подтверждениями. Она подобна отправке заказного письмас подтверждением получения. Получив подтверждение, отправитель уверен, чтописьмо доставлено адресату, а не потеряно по дороге. Примером являются текстовыесообщения на мобильных телефонах.Кроме того, существует служба запросов и ответов, в которой отправитель посылает дейтаграммы, содержащие запросы, и получает ответы от получателя.
Обычно1.3. Сетевое программное обеспечение 53модель запросов и ответов применяется для реализации общения в модели клиентсервер: клиент посылает запрос, а сервер отвечает на него. Например, пользовательмобильного телефона мог бы послать запрос в сервер карт, чтобы получить данныео карте для текущего местоположения. Обсуждавшиеся выше типы служб сведеныв таблицу на рис. 1.14.Рис. 1.14.
Шесть типов службКонцепция использования ненадежной связи поначалу может показаться несколько странной. В самом деле, почему это может возникать такая ситуация, когдавыгоднее предпочесть ненадежную связь надежной? Во-первых, надежное соединение (в том смысле, который был оговорен выше, то есть с подтверждением) не всегдаможно установить на данном уровне. Скажем, Ethernet не является «надежным»средством коммуникации. Пакеты при передаче могут искажаться, но решать этупроблему должны протоколы более высоких уровней. В частности, много надежныхслужб создано над ненадежной службой дейтаграмм. Во-вторых, задержки, связанныес отсылкой подтверждения, в некоторых случаях неприемлемы, особенно при передаче мультимедиа в реальном времени. Именно благодаря этим факторам продолжаютсосуществовать надежные и ненадежные соединения.1.3.4.
Примитивы службСлужба (сервис) формально описывается набором примитивов или операций, доступных пользователю или другому объекту для получения сервиса. Эти примитивызаставляют службу выполнять некоторые действия или служат ответами на действияобъекта того же уровня. Если набор протоколов входит в состав операционной системы (как часто и бывает), то примитивы являются системными вызовами.