Протоколы как средство общения

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

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

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

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

Причем один язык ничего не знал о существовании другого, – это обеспечивало полную взаимную независимость. В самом деле, для получения файла с сервера достаточно отдать команду “«Получить Файл» («Имя Файла»)”, совершенно не интересуясь, как и чем было создано соединение между двумя компьютерами, – достаточно лишь знать, что оно есть и все.

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

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

 

Пакеты – кванты информации

В основе языка лежат слова. Слова состоят из букв. Буквы – из звуков. Единицей сетевых сообщений является пакет. Сетевое сообщение, по сути, ничем не отличается от обычного письма. Транзитные узлы изучают конверт и передают его по цепочке друг другу, пока, наконец, оно не окажется у получателя (или возвратится назад, к отправителю).

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

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

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

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

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

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

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

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

 

Дерево протоколов

Прежде чем продолжать повествование о протоколах, необходимо рассмотреть какие задачи приходится решать при установке соединения.

В первую очередь можно назвать маршрутизацию – выбор маршрута, по которому будет отправлен пакет. Ведь получатель может находиться и на другом континенте (и даже в космосе!), соединенный с отправителем множеством подсетей, часть которых в какой-то конкретный момент времени может оказаться неработоспособной, и тогда придется направлять пакеты «объездным» путем.

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

Очевидно, фрагментация влечет за собой необходимость контроля целостности дейтаграммы (все ли пакеты были доставлены) и наличие механизма запросов для повторной пересылки пакетов.

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

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

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

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

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

Ниже всех находится так называемый сетевой уровень. В Internet он реализован двумя протоколами IP (Internet Protocol) и ICMP (Internet Control Message Packet).

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

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

Транспортный уровень реализован поверх сетевого. Это означает, что для своих нужд он использует результаты работы протоколов нижнего уровня. В Internet он реализован в протоколах TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). В задачи транспортных протоколов входит обеспечение надежной и достоверной доставки данных через сеть. Сюда же относятся механизмы установки, поддержания и упорядочивания закрытия каналов соединения; обнаружение и устранения неисправностей передачи.

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

Может показаться, что UDP «плохой» протокол. Частично это так и есть, поэтому в подавляющем большинстве случаев используется надежный виртуальный канал связи, создаваемый TCP.

Однако UDP оказывается заметно шустрее TCP, поскольку не требует накладных расходов на поддержание соединения. Он используется, когда необходимость в дополнительном сервисе транспортного уровня отсутствует, а достоверность передачи не требуется. На нем в частности, реализован протокол обращений к DNS (Domain Name Space).

Наконец, прикладной уровень обеспечивает высокоуровневый интерфейс между сетевыми приложениями. Сюда относится множество протоколов работы с почтой (POP3, SMTP, IMAP), сетевыми новостями (NNTP), файлами (FTP) и так далее.

 

Что такое порт?

Физические порты ввода-вывода хорошо известны и интуитивно понятны. Может быть, нечто аналогично есть и в Internet? На самом же деле, с сетевой точки зрения порт – не более чем одно из полей заголовка пакета (в действительности их даже два – порт отправителя и порт получателя).

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

Такая схема обеспечивает совместную работу множества приложений, так, например, на одном и том же компьютере, имеющим всего один IP адрес, могут быть установлены почтовый сервер, сервер новостей, WEB-сервер, FTP-сервер. И никаких конфликтов и разборок «это чей пакет?» между ними не будет.

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

Прочная ассоциация порт-протокол привела к тому, что эти два термина стали частенько путать. Фраза «свяжись с сервером по сто десятому порту» – подразумевает «свяжись с сервером по протоколу POP3». На самом деле, почтовый сервер может быть настроен и на другой порт, значение которого каким-то образом будет сообщено клиенту.

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

 

Тесты

 

1. Укажите три основных требования к вычислительным сетям

1:производительность

2:пропускная способность

3:надежность

4:параллельность

5:емкость

 

2. Множество компьютеров, связанных каналами передачи информации и находящиеся в пределах одного здания, называется …

1:локальной компьютерной сетью

2:глобальной компьютерной сетью

3:информационной системой с гиперсвязью

4:региональной компьютерной сетью

3. Укажите поисковую систему в сети Интернет

1:Google

2:THE BAT

3:FileSearch.ru

4:Gov.ru

 

4. Поток сообщений в сети передачи данных определяется

1:трафиком

2:треком

3:трассой

4:объемом памяти канала передачи сообщений

 

5. Определите сервис Интернет, который не имеет собственного протокола и
программы-клиента

1:списки рассылки

2:e-mail

3:www

4:ICQ

 

6. Компьютер, подключенный к Интернету, обязательно имеет …

1:IP-адрес

2:Web- страницу

3:E-mail (электронную почту)

4:доменное имя

 

7. Адресом электронной почты может быть …

1:avgust@basa.mmm.ru

2:http://gov.nicola

3:avgust@basa.mmm.ru/ivanov/mail

4:mail.ru@egorov/mail

 

8. Программа-браузер Internet Explorer позволяет …

1:открывать и просматривать Web-страницы

2:редактировать графические изображения

3:создавать документы

4:редактировать Web-страницы

 

9. HTML (Hyper Text Markup Language) является …

1:языком разметки гипертекстовых документов и Web-страниц

2:сервером Интернета

3:службой передач файлов

4:средством просмотра Web-страниц

 

10. Прикладному уровню модели OSI соответствуют протоколы стека TCP/IP-…

1:HTTP

2:TCP

3:IP

4:Ethernet

 

11. Транспортному уровню модели OSI соответствуют протоколы стека TCP/IP-…

1:TCP

2:UDP

3:IP

4:ICMP

 

12. Сетевому уровню модели OSI соответствуют протоколы стека TCP/IP-…

1:IP

2:TCP

3:HTTP

4:POP3

 

13. FireWall - это

1:Тоже самое что и брэндмауэр

2:Тоже самое что и Интернет браузер

3:Это почтовая программа

4:Это графический редактор

 

14. Secure Sockets Layer

1:Обеспечивает безопасную передачу данных

2:Не использует шифрование данных

3:Не может использовать шифрование с открытым ключом

4:Это не протокол, программа

 

15. Для хранения файлов, предназначенных для общего доступа пользователей сети, используется …

1:файл-сервер

2:рабочая станция

3:коммутатор

4:принт-сервер

 

16. Протокол компьютерной сети – это …

1:набор правил, определяющий характер взаимодействия различных компонентов сети

2:последовательная запись событий, происходящих в компьютерной сети

3:сетевая операционная система

4:программа, устанавливающая связь между компьютерами в сети

 

17. В модели взаимодействия охранных систем (OSI) уровень, обеспечивающий поддержку прикладных процессов конечных пользователей, получил название

1:прикладной

2:представительский

3:сеансовый

4:транспортный

 

18. Какая программа является почтовым клиентом?

1:Outlook Express

2:Google

3:Internet Explorer

4:PhotoShop

 

19. Что такое WWW?

1:World Wide Web

2:Wild West World

3:We Were Well

4:World Wild Web

 

20. Программа The Bat это:

1:Клиент для работы с электронной почтой

2:Графический редактор

3:Интернет-браузер

4:Консольная программа настройки операционной системы

 

21. Укажите верные утверждения

1:В электронное письмо можно вкладывать файлы

2:Электронное письмо может содержать только текст

3:Электронное письмо одновременно можно послать только одному адресату

4:Электронное письмо можно отправить сразу всем указав адрес «*»

 

22. Протокол FTP это:

1:File Transfer Protocol

2:Folder Transfer Protocol

3:File and Text Protocol

4:Flash Transfer Protocol

 

23. RFC это

1:Request for Comments - документ из серии пронумерованных информационных документов Интернета, содержащих технические спецификации и Стандарты

2:Request for Comments – помощь в Интернете для начинающих пользователей

3:Request for Contract – необходимость заключения контракта для доступа документам в сети Интернет

4:Read First Comment – призыв читать все документы и комментарии с начала.

 

24. Протокол IMAP используется для

1:Доступа к почтовому серверу

2:Доступа к Интернет страницам

3:Для поиска информации на поисковых серверах

4:Для картографирования Интернет

 

25. Сеть класса C может содержать

1:254 компьютера

2:253 компьютера

3:255 компьютеров

4:256 компьютеров

 

26. Укажите правильный адрес в сети класса С для широковещательных сообщений

1:192.168.0.255

2:192.168.0.0

3:192.168.0.1

4:192.168.0.127

 

27. Адрес 127.0.0.1

1:Используется для связи с самим собой

2:Используется для связи с коневым DNS сервером

3:Используется для широковещательной связи

4:Используется как шлюз по умолчанию

 

28. Клиентами, в распределенной вычислительной среде являются:

1:пользователь

2:прикладная программа, работающая в интересах пользователя для предоставления услуг с сервера в сети

3:взломщик

4:хакер

 

29. Выберите верные утверждения:

1:Для доступа в Интернет необходима поддержка TCP/IP

2:Для доступа в Интернет можно использовать локальную сеть

3:Для доступа в Интернет обязательно необходим модем

4:Для доступа в Интернет необходима поддержка протоколов POP3/SMTP

 

30. Укажите два компонента сетевого программного обеспечения

1:сетевая операционная система

2:сетевые приложения

3:программы управления файловой структурой

4:маршрутизаторы, серверы

5:коммутаторы, разветвители

 

31. Какие программы являются почтовыми клиентами:

1:Outlook Express

2:The Bat

3:Internet Explorer

4:PhotoShop

 

32. Для отправки электронной почты используются протоколы:

1:SMTP

2:POP3

3:IMAP

4:FTP

 

33. Функции сетевой карты:

1:Обнаружение конфликтных ситуаций и контроль состояния сети

2:Преобразование информации из параллельного кода в последовательный и обратно

3:Идентификация своего адреса в принимаемом пакете

4:Ограничение распространения кадров с неизвестными адресами назначения

34. Укажите три типа протоколов, которые используются в сети Интернет для передачи данных, …

1:HTTP (Hipertext Transfer Protocol)

2:FTP (File Transfer Protocol)

3:TCP/IP (Transmission Control Protocol/ Internet Protocol)

4:DNS (Domain Name System)

5:E-mail (Electronic mail)

 

35. Укажите три составные части унифицированного указателя ресурса (URL) в сети Интернет …

1:название службы (протокола)

2:доменное имя сервера

3:полный путь к файлу на Web-сервере

4:адрес E-mail

5:тип вычислительной сети

 

36. Укажите три основные службы сети Интернет …

1:электронная почта

2:World Wide Web

3:Телеконференции (Usenet)

4:HTML (Hyper Text Markup Language)

5:TCP/IP (Transmission Control Protocol/ Internet Protocol)

 

37. Укажите две возможности, которые предоставляет программа Internet Explorer

1:открывать и просматривать Web-страницы

2:перемещаться между документами в Web-пространстве

3:осуществлять голосовую и видеосвязь в сети

4:создавать документы

5:редактировать интернет-страницы

 

38. Укажите три основные возможности, которые предоставляет пользователю локальная вычислительная (компьютерная) сеть

1:совместное использование аппаратных ресурсов

2:совместное использование программных ресурсов

3:обеспечение совместного доступа к ресурсам данных

4:подключение персонального компьютера к данным Internet и просмотра гипертекстовых документов

5:обеспечение информационной безопасности большого числа компьютеров