Электронная библиотека » Марк Блау » » онлайн чтение - страница 9


  • Текст добавлен: 26 июня 2018, 17:41


Автор книги: Марк Блау


Жанр: Компьютеры: прочее, Компьютеры


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 9 (всего у книги 34 страниц) [доступный отрывок для чтения: 10 страниц]

Шрифт:
- 100% +
Мир протоколов

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

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

Первоначально крупные компании, такие как «Apple», «Novell», «Cisco», «IBM», «Microsoft», разрабатывали собственные протоколы для своего оборудования или для своих программ, совершенно не заботясь о совместимости с протоколами других компаний. Они не без основания надеялись, что их фирменные протоколы станут всемирными стандартами, если только удастся захватить значительную часть рынка средств межкомпьютерной связи. Однако «война стандартов» ни к чему хорошему не привела. Ни одна фирма не одержала победы, зато в области классификации стандартов воцарился полный хаос.

Тогда в дело вмешались те, кому по статусу было положено заниматься вопросами стандартизации. Уже упомянутая выше Международная организация по стандартизации (International Organization for Standardization, ISO) в 1984 году предложила всеобъемлющий стандарт, описывающий весь процесс обмена информацией между двумя компьютерами. Его назвали эталонной сетевой моделью взаимодействия открытых систем (Open System Interconnection, OSI).

Благодаря этой модели появилась возможность точно определить «место работы» любого протокола. То есть появилась возможность классификации протоколов по единственно верному признаку – по выполняемой ими функции. Кроме того, эталонная модель дала «руководство к действию» разработчикам новых протоколов. После 1984 года все, кто занимается разработкой новых устройств, новых протоколов и новых программ связи, придерживаются модели OSI.

Разработчики модели OSI разбили весь сложный процесс передачи информации между компьютерами на семь уровней. Каждый уровень отвечает за одну важную часть общего процесса и имеет соответствующее название. Каждый такой уровень достаточно самостоятелен. Это означает, что протоколы, работающие на этом уровне, «поддерживают отношения» только с двумя соседними уровнями, старшим и младшим. Не соседние уровни, как старшие, так и младшие, для них не существуют.

Как видим, в модели OSI поддерживается строгое правило, сформулированное в Средние века: «Вассал моего вассала – не мой вассал». Правило это распространяется не только вниз, но и вверх: «Сеньор моего сеньора – не мой сеньор».

Но и взаимодействие протоколов соседних уровней подчиняется строгим правилам невмешательства во «внутреннюю жизнь» соседа. Информация с уровня на уровень передается только с помощью стандартизированных запросов. Задал вопрос – получил ответ. Каким образом получен этот ответ, можно узнать, только перейдя на соответствующий уровень.

Это сделано для того, чтобы облегчить совместную работу специалистов. Например, те, кто занят непосредственной передачей данных по линии связи, должны быть большими знатоками радиофизики, телефонии, оптики. Их главная забота – обеспечить быстрый и правильный прием или передачу информации, которая на их уровне выглядит как последовательность сигналов. Использование этой информации на других уровнях поручается специалистам другого профиля, например сетевикам или программистам. А эти специалисты, заметим, не обязаны ничего знать о свойствах оптоволоконных кабелей или о том, как работает протокол Ethernet. А мои читатели об этом знать уже должны. Если забыли, вернитесь ненадолго назад, в Часть 1.

Я тешу себя мыслью, что кто-нибудь из моих юных читателей, став взрослым и умным, придумает какую-нибудь непредставимо новую Интернет-технологию. С чего ему придется начать в этом случае? Конечно, с создания нового Интернет-протокола. И благодаря этой книжке это ему будет сделать – не скажу, просто, но все же не слишком трудно.

Не все, что написано по правилам, правильно. Но все, что правильно, должно быть написано по правилам. Правила же уже сформулированы. Уже есть образец, по которому следует писать все протоколы. Этот образец – модель OSI. И этот образец моему читателю уже будет знаком.

Общее представление об эталонной сетевой модели OSI должен иметь каждый, кто работает в области Интернета. Эту модель следует не только знать, но хорошо обдумать и – не побоюсь этого слова – прочувствовать. Попробуем же сделать это вместе.

Модель OSI. Дом, в котором живут протоколы

В детстве одной из моих любимых книжек была «Детская энциклопедия». Та самая, первого советского издания, в десяти желтых томах. Мысленно листая сии «врата моей учености», я утверждаюсь в мысли, что книги для детей следует издавать с картинками. Потому что картинки эти до сих пор остались якорьками в моем сознании. Вспоминая какую-либо статью из «своей» «Детской энциклопедии», я в первую очередь вспоминаю забавные рисунки, сопровождавшие эту статью.

Рисунки были в основном черно-белые. Но попадались и цветные, на вклейках.

На одной такой вклейке изображался хлебозавод-автомат. Для большей наглядности завод был представлен в виде многоэтажного здания. На каждом этаже происходил определенный этап хлебопекарного производства. На всех этажах трудились автоматы, изображенные в виде смешных человечков. Они поднимали на верхний этаж мешки с мукой, высыпали муку и просеивали. Этажом ниже те же неутомимые человечки замешивали тесто и формировали заготовки для батонов. Эти заготовки опускались еще на один этаж, где находилась печь. С одной стороны в печь заходили белые кусочки теста, с другой появлялись поджаристые батоны. Батоны скатывались на самый нижний этаж, где остывали на большом кругу. Тут же проворные пареньки-автоматы грузили еще теплую продукцию на поддоны, задвигали поддоны в машину, и грузовик выезжал из ворот хлебозавода-автомата в магазин самообслуживания. В славные времена моего детства будущее называлось «Коммунизм» и рисовалось светлым, прекрасным и автоматизированным до самой последней мелочи.

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

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

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

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

Информация – штука невесомая. Особенно, если она передается по проводам в виде слабых импульсов тока. От одного этого сочетания слов – «импульс тока» – многих, кто не дружен с физикой, охватывает уныние. Ой, электричество – это же так сложно! Ой, этого мне никогда не понять, нечего и стараться!

А давайте представим, что носителями информации в конечном счете являются не электрические импульсы, а бумажные письма в конвертах стандартного размера. Условимся, что в один такой конверт можно помещать только один стандартный лист бумаги, зато писать на таком листе можно все что угодно и конвертов тоже может быть сколько угодно. В результате невидимые импульсы тока превратились во вполне реальные конверты. Носитель информации стал «весомым, грубым, зримым», как сказал поэт.

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

Для подготовки же информации к такой передаче – ничего не поделаешь – придется строить многоэтажные «заводы». Каждый этаж такого «завода» будет занят своим этапом переработки информации. При передаче – пошаговым преобразованием к виду, удобному для транспортировки, а на приеме – тоже пошаговым воссозданием документа, который удобно прочесть без всяких хлопот. Процессы кодировки и декодировки информации взаимно обратимы, в отличие от выпечки хлеба и замешивания теста. Даже ошибки, вкрадывающиеся при передаче информации по каналам связи, не нарушают этой обратимости, потому что, благодаря некоторой избыточности кода, они исправимы.

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

То есть, для того чтобы сделать очевидными и понятными процессы обработки информации, описываемые моделью OSI, мы придумали метафору, заменив обработку электрических сигналов обработкой почтовых отправлений. В дальнейшем все, что будет касаться описания этой метафорической модели, будет выделено курсивом.

Все же, что касается реальной модели OSI, будет напечатано обычным шрифтом.

Итак, представим себе один такой «завод» в виде восьмиэтажного здания. Мы находимся на самом верхнем этаже, в кабинете «босса». С верхотуры открывается захватывающий дух вид: зеленые холмы, голубое небо, на нем облака. Как на стандартных обоях для рабочего стола Windows ХР, только красивее.

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

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

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

– Вот что, – говорит босс, которого зовут, скажем, Энди Таккер, передавая курьеру несколько листков бумаги и какие-то фотографии. – Срочно необходимо переслать это письмо Джеффу Питерсу Отнеси его вниз, – и босс, имея в виду нижний, седьмой, этаж для ясности показывает пальцем в пол. – Парни там толковые, они знают, что делать.

Вслед за курьером спускаемся на лифте на один этаж вниз. Выходим из лифта и тут же видим большую надпись:

7. Application layer (Прикладной уровень)

Парни здесь действительно толковые. Они быстро разобрались, что к чему. Во-первых, отыскали в своей базе данных, кто такой Джефф Питере. Оказалось, что он – приятель нашего босса. Джефф этот оказался, слава богу, жив и здоров: почта, отправленная ему раньше, назад возвращена не была. А вот и его адрес! Листочек с найденным адресом положили в специальную коробку, которая повезет письмо босса на обработку по нижним этажам-уровням. В ту же коробку положили переданные боссом бумаги, скрепив их вместе. Фотографии легли сверху, отдельно от печатных листов.

– Готово, – сказал паренек, обработавший заказ.

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

Прикладной уровень в модели OSI находится ближе всего к пользователю и, соответственно, максимально удален от физических носителей информации. Здесь никто не знает ни о том, по каким проводам передаются сигналы, ни о том, каковы их электрические характеристики, ни о том, какие Интернет-адреса у компьютера-отправителя и компьютера-получателя. На этом уровне решаются вопросы переноса файлов, обмена почтовыми сообщениями и управления сетью. К прикладному уровню обращаются приложения – любые программы, с которыми работает пользователь. Это могут быть браузеры, почтовые программы, скайп и многие другие. На прикладном уровне решаются вопросы поиска почтовых адресов и производится подготовка информации к дальнейшей обработке, которая происходит на следующем, более низком уровне. Например, если требуется послать электронное письмо, на прикладном уровне проверяется наличие электронного адреса получателя, формируется текст письма и, при необходимости, к этому тексту присоединяются файлы. С прикладного уровня вся информация передается на более низкий уровень. При этом она снабжается специальным заголовком. В заголовке шифруются все действия, которые были произведены на этом уровне. На всех последующих уровнях после обработки информации к ней будет добавлен заголовок данного уровня.

Для чего добавляются заголовки? Дело в том, что после передачи по каналу связи сообщение поступит в принимающий компьютер и станет «подниматься» от уровня к уровню. На каждом уровне необходимо будет произвести расшифровку сообщения, то есть проделать действия, обратные тем, что делались на передающем компьютере при прохождении сообщения «сверху вниз». Информация о том, какие изменения были произведены на передающем компьютере, сохраняется как раз в заголовке соответствующего уровня. После расшифровки заголовок данного уровня удаляется. Расшифрованная информация поднимается на следующий уровень, где снова читается соответствующий заголовок и производится следующий этап расшифровки. Когда принятая информация достигает верхнего, прикладного, уровня, она уже полностью расшифрована и все заголовки удалены.

6. Presentation layer (Уровень представления)

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

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

Вернемся к нашей метафоре. Что же происходит на 6-м этаже нашего восьмиэтажного «завода» по преобразованию информации?

Оказавшись на этом уровне, мы увидим, что здесь кипит работа по преобразованию документов, полученных с верхнего, прикладного, уровня. В результате вместо нескольких листков текста и фотографий, которые босс поручил срочно переслать своему приятелю, появляется множество пронумерованных листов бумаги стандартного формата, заполненных какими-то непонятными цифрами. Для того чтобы спустить эти листки на нижний, 5-й, этаж, понадобится уже коробка большего размера, куда кроме листков будет помещен ярлык, полученный с 7-го этажа, и ярлык с 6-го этажа. Чтобы не повторяться: на каждом этаже после обработки будет добавляться ярлык с записью всех операций преобразования информации на данном этаже. Таким образом, когда информация спустится на первый этаж, ее будут сопровождать шесть ярлыков, по одному с каждого из пройденных этажей.

5. Session layer (Сеансовый уровень)

Сеанс, или сессия, – это соединение между двумя компьютерами, в ходе которого происходит передача всей необходимой информации. При этом сеанс (или сессия) идет в режиме диалога. Передатчик то и дело спрашивает приемник: «Как понял?» В ответ на этот вопрос приемник посылает некоторую контрольную информацию. Если в ходе диалога выясняется, что передача произведена неверно или не полностью, считается, что данный сеанс не удался и его следует повторить либо инициировать новый сеанс. О том, что такое сессия, мы уже говорили, когда рассматривали пример устной коммуникации.

В случае нашей метафоры сеанс представляет вся коробка, поступившая с 6-го этажа. В этой коробке полностью помещается информация, которую следует переправить в другую башню, обслуживающую Джеффа Питерса. Все листочки, находящиеся в этой коробке, перенумерованы на предыдущем, 6-м, этаже. На 5-м этаже у информационного конвейера стоит милая девушка, которая отсчитывает в коробке, скажем, тысячу карточек и разделяет их специальным вкладышем красного цвета. Еще тысяча карточек – еще один разделитель.

– Чем вы заняты, мисс? – спрашиваем мы у нее.

– Я расставляю контрольные точки (checkpoints), – отвечает она с улыбкой.

Для чего нужны контрольные точки, добавляемые в информационный массив на сеансовом уровне? Дело в том, что если в ходе сеанса будет обнаружена ошибка передачи, то потребуется повторить передачу всех данных. Обидно, если ошибка «выскочит» в конце, когда почти вся информация уже передана! Повторять придется все – с самого начала. Если же в массиве данных были заранее расставлены контрольные точки и будет происходить контроль правильности передачи данных от одной контрольной точки до другой (такой контроль происходит на более низком, транспортном, уровне), то количество данных, которые придется передать повторно, резко снизится. Повторную передачу можно будет начинать только от предыдущей контрольной точки.

4. Transport layer (Транспортный уровень)

Что мы увидим, спустившись на 4-й этаж? Мы увидим, как информацию готовят к процессу транспортировки. Ребята-упаковщики живо опустошают коробку, пришедшую сверху, с сеансового уровня, и раскладывают ее содержимое по стандартным контейнерам-пакетам.

На транспортном уровне формируются информационные пакеты, которые затем будут передаваться по Сети. Размер пакетов не стандартизирован. Каждый протокол выбирает его по своему усмотрению.

Одна из главных функций транспортного уровня – отслеживание доставки пакета получателю. За тем, чтобы все пакеты были доставлены адресату, на транспортном уровне следит один из важнейших протоколов, который без преувеличения можно назвать «тягловой силой» всего Интернета. Напомним, что этот протокол называется Протоколом управления передачей (Transmission Control Protocol – TCP).

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

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

3. Network layer (Сетевой уровень)

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

Опытный пожилой диспетчер прокладывает информационный маршрут, пользуясь огромной картой, занимающей всю стену. На карте – все «информационные башни», между которыми может пересылаться информация. Все башни пронумерованы, каждая башня имеет свой адрес, определяющий ее положение на общей карте.

Диспетчер наизусть знает, где какая башня находится. Опыт – великое дело! А если вдруг он что-то позабудет, не беда. Специальный справочник (толстенная книга!) поможет ему отыскать необходимый адрес.

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

Иногда, правда, приходится потрудиться, изменить маршрут из-за каких-либо помех на дорогах. Более того, часть информационного груза можно послать по одной дороге, а часть – по другой.

Но вот готово – маршрут проложен. Он фиксируется в маршрутном листе и вместе с грузом опускается на второй этаж, где его уже поджидают водители.

Надо сказать, что только что описанная процедура прокладки информационного маршрута один к одному совпадает с процедурой, которой пользуются работники обычной почты при сортировке корреспонденции.

Каждый компьютер, подключенный к Интернету, характеризуется своим уникальным номером-адресом, который, как мы уже знаем, называется физическим Интернет-адресом (IP Address). Этому же адресу может соответствовать запись в виде, понятном человеку, – логический адрес или доменное имя. Компьютер оперирует с физическим адресом. Преобразование логического адреса в физический происходит как раз на сетевом уровне. Как это делается, будет рассказано в разделе «Система доменных имен (DNS)». Наиболее часто используемые адреса хранятся в специальной памяти компьютера, которая называется кэш-памятью (от английского «cache» – «прятать»). Кэш-память позволяет серьезно сэкономить время, необходимое для «прокладки маршрута».

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

На сетевом уровне работает протокол, который, напомним, называется межсетевым протоколом (Internet Protocol – IP). По названию этого протокола вся большая Сеть, составленная из маленьких локальных сетей, называется Интернетом. И всей своей глобальностью Интернет обязан именно этому протоколу.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 | Следующая
  • 0 Оценок: 0

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации