Как компьютеры взаимодействуют в сети
В предыдущей главе вы узнали, что такое компьютерные сети, познакомились с основными типами сетей и поняли, как компьютеры (точнее, работающие на них программы) общаются друг с другом в сети. Теперь рассмотрим принципы взаимодействия компьютеров в сети более подробно.
Чтобы общаться, люди чаще всего используют устную речь. Однако такое непосредственное общение возможно, только если собеседники находятся рядом друг с другом и только в воздушной среде. Но представьте себе, что надо передать данные вашему товарищу, который живет в другом городе, а тем более — в другой стране. Здесь уже не обойтись без целого ряда определенных действий: нужно написать текст на листе бумаги, подписать его, вложить в конверт, указать на нем адреса отправителя и получателя, наклеить марку и отдать почтальону (или бросить в почтовый ящик). Дальнейшая судьба этого письма зависит уже не от вас, а от почтовой службы. Каким-либо способом — на поезде, корабле, самолете или как-то иначе, но письмо доходит до страны и города, где живет ваш друг, затем доставляется в его почтовое отделение и, наконец, попадает к нему в почтовый ящик. Только тогда ваш адресат получает возможность открыть конверт и прочитать ваше сообщение. Заметим, что если какая-либо из стадий доставки не сработает, например, из-за отсутствия почтальона или различий в
Как компьютеры взаимодействуют в сети
правилах записи адресов в разных странах, то информация до вашего друга так и не дойдет.
Точно так же поступают и компьютеры при общении в сети. Способов непосредственного общения у них нет — разговаривать друг с другом компьютеры пока еще не научились. Поэтому, чтобы общаться, им приходится прибегать к целому ряду последовательно выполняемых процедур, называемых сетевыми протоколами. Чтобы протоколы работали надежно и согласованно, каждая операция в них строго регламентируется. А чтобы программы и оборудование разных производителей могли взаимодействовать друг с другом, протоколы должны соответствовать определенным промышленным стандартам.
Протокол— набор правил и процедур, регулирующих порядок взаимодействия компьютеров в сети.
За долгие годы существования компьютерных сетей было создано великое множество различных протоколов — как открытых (опубликованных для бесплатного применения), так и закрытых (разработанных коммерческими компаниями и требующих лицензирования для их использования). Однако все эти протоколы принято соотносить с так называемой эталонной моделью взаимодействия открытых систем (Open Systems Interconnection Reference Model), или просто моделью OSI. Ее описание было опубликовано в 1984 г. Международной организацией по стандартизации (International Standards Organization, ISO), поэтому для нее часто используется другое название — модель ISO/OSI. Эта модель представляет собой набор спецификаций, описывающих сети с неоднородными устройствами, требования к ним, а также способы их взаимодействия.
Структура модели OSI
Модель OSI имеет вертикальную структуру, в которой все сетевые функции распределены между семью уровнями (рис. 2.1). Каждому такому уровню соответствуют строго определенные операции, оборудование и протоколы.
Реальное взаимодействие уровней, т. е. передача информации внутри одного компьютера, возможно только по вертикали и только с соседними уровнями (выше- и нижележащими).
Логическое взаимодействие (в соответствии с правилами того или иного протокола) осуществляется по горизонтали — с аналогичным уровнем другого компьютера на противоположном конце линии связи. Каждый более высокий уровень пользуется услугами нижележащего уровня, зная, в каком виде и каким способом (т. е. через какой интерфейс) нужно передать ему данные.
Заключение.
И так мы рассмотрели модель взаимодействия открытых систем (Open Systems Interconnection, OSI) , это одна из эталонных моделей организации компьютерных сетей которая является юридическим стандартом, ее приняла международная организация по стандартизации (International Organization for Standardization, ISO) .
Согласно модели OSI компьютерные сети должны состоять из семи уровней, подробное описание которых содержится в модели. Протоколы в эту модель не включены, а приняты в виде отдельных стандартов. Однако ни сами протоколы, ни модель взаимодействия открытых систем на практике не используются, однако с помощью этой модели очень удобно описывать логику работы компьютерный сетей.
На практике для построения сетей используется эталонная модель и стек протоколов TCP/IP .
Учебный курс. Компьютерные сети. Андрей Созыкин.
Порядок от старшего к младшему (англ. big-endian — с большого конца) — Этот порядок подобен привычному порядку записи (например арабскими цифрами) «слева-направо» , например, число сто двадцать три было бы записано при таком порядке как 123. В этом же порядке принято записывать байты в технической и учебной литературе, если другой порядок явно не обозначен.
Порядок от младшего к старшему (англ. little-endian — с малого конца) — Это обратный привычному порядку записи чисел арабскими цифрами, например, число сто двадцать три было бы записано при таком порядке как 321. Иными словами этот порядок подобен правилу записи «справа-налево».
Модель сетевого взаимодействия OSI
Современные сети построены по многоуровневому принципу. Сетевое взаимодействие компьютеров в сети описывается с помощью эталонной модели взаимодействия открытых систем OSI (Open System Interconnect). Она была разработана в начале 80-х годов международной организацией по стандартизации ISO как архитектурная модель передачи информации по сети. Модель регламентирует взаимодействие локальных и глобальных сетей, создает основу для стандартизации программных и аппаратных средств. Такой подход обеспечивает возможности передачи информации между различными типами локальных и глобальных сетей, позволяет устройствам одного производителя взаимодействовать с устройствами других производителей. Не все разработчики сетевого оборудования и программного обеспечения в точности следуют этой модели, однако она дает основы для понимания способов взаимодействия сетевых компонент.
Модель описывает структуру уровней сети, каждый из которых обеспечивает выполнение определенной части сетевых функций при обмене данными между компьютерами. Модель подразделяет работающее оборудование и процессы, происходящие при объединении компьютеров в сеть, в соответствии с логикой их работы. Каждый из уровней выполняет свою специфическую задачу, тем самым, обеспечивая функционирование всей системы в целом.
Под открытыми системами в рассматриваемом контексте понимают локальные и глобальные сети, построенные на основе доступных для всех (открытых) правил и спецификаций. Стандарт описывает структуру самих открытых систем, требования к ним, их взаимодействие. Модель OSI (рис.1.) состоит из семи уровней, каждый из которых представляет определенный этап процесса сетевой коммуникации. На каждом уровне действует протокол — набор правил и соглашений, регламентирующий обмен информацией по сети. Модули, реализующие протоколы соседних уровней и находящиеся в одном узле, также взаимодействуют друг с другом в соответствии с четко определенными правилами и с помощью стандартизированных форматов сообщений. Эти правила принято называть интерфейсом. Интерфейс определяет сервисы, предоставляемые данным уровнем соседнему уровню. В сущности, протокол и интерфейс выражают одно и то же понятие, но традиционно в сетях за ними закреплены разные области действия: протоколы определяют правила взаимодействия модулей одного уровня в разных узлах, а интерфейсы – модулей соседних уровней в одном узле. Средства каждого уровня должны обрабатывать, во-первых, свой собственный протокол, а во-вторых, интерфейсы с соседними уровнями.
Компьютеры, участвующие в обмене, должны работать по одним и тем же протоколам, чтобы в результате передачи вся информация восстанавливалась в первоначальном виде. Сетевые протоколы управляют разными аспектами передачи информации: физической связью, доступом к различным ресурсам, разбиением передаваемого сообщения на пакеты, выбором маршрута для передачи данных, выявлением ошибок и др. Группы сходных протоколов, имеют имена, соответствующие уровню модели OSI, на котором работают: сетевой, транспортный и т.п.
Нормативы OSI описывают следующие моменты функционирования сети:
· взаимодействие сетевых устройств, в том числе устройств, использующих разные протоколы;
· принципы действия и способы физического соединения сетевых устройств;
· методы обеспечения правильности передачи данных;
· способы поддержания непрерывного потока данных в сетевых устройствах;
· способы представления данных в виде электрических сигналов при передаче по сетевой среде.
Многоуровневая структура используется для упрощения и упорядочения большого количества протоколов, создания сетевых систем из модулей программного обеспечения, выпущенных разными производителями. Цель нижестоящего уровня – предоставление услуг вышестоящему. Каждый уровеньвзаимодействует только с теми уровнями, которые находятся рядом с ним (выше и ниже него). Верхний уровень моделисоответствует работающему в данный момент приложению, нижний – непосредственной передаче сигналов по каналу связи.
Потоки информации в модели организованы так, что каждый уровень предполагает, что он напрямую взаимодействует с одноименным уровнем другого узла. Как показано на рис.1., сетевой уровень компьютера 1 считает, что он взаимодействует с сетевым уровнем компьютера 2. Между одноименными уровнями компьютеров сети существует виртуальная (логическая) связь. Реальную же, физическую связь (кабель, радиоканал) абоненты одной сети имеют только на самом нижнем, физическом уровне. В передающем компьютере информация проходит все уровни, начиная с верхнего и заканчивая нижним. В принимающем компьютере полученная информация совершает обратный путь: от нижнего уровня к верхнему.
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком коммуникационных протоколов.
Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней – как правило, чисто программными средствами.
Согласно модели, средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень имеет дело с одним определенным аспектом взаимодействия сетевых устройств. Взаимодействие компонентов модели OSI можно проиллюстрировать на следующем примере. Пусть приложение обращается с запросом к прикладному уровню, например к файловой службе. На основании этого запроса программное обеспечение прикладного уровня формирует сообщение стандартного формата. Обычное сообщение состоит из заголовка и поля данных. Заголовок содержит служебную информацию, которую необходимо передать через сеть прикладному уровню машины-адресата, чтобы сообщить ему, какую работу надо выполнить. В рассматриваемом случае заголовок должен содержать служебную информацию о месте нахождения файла и о типе операции, которую необходимо над ним выполнить. Поле данных сообщения может быть пустым или содержать данные, которые необходимо записать в удаленный файл. Для того чтобы доставить эту информацию по назначению, необходимо пройти ряд этапов, выполняемых нижележащими уровнями.
После формирования сообщения прикладной уровень направляет его вниз по стеку представительному уровню. Протокол представительного уровня на основании информации, полученной из заголовка прикладного уровня, выполняет требуемые действия и добавляет к сообщению собственную служебную информацию – заголовок представительного уровня, в котором содержатся указания для протокола представительного уровня машины-адресата. Полученное в результате сообщение передается вниз сеансовому уровню, который в свою очередь добавляет свой заголовок, и т.д. Наконец, сообщение достигает нижнего, физического уровня, который собственно и передает его по линиям связи машине-адресату. К этому моменту к сообщению добавлены заголовки и концевики всех уровней.
Когда сообщение по сети поступает на компьютер-адресат, оно принимается ее физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатывает заголовок со служебной информацией своего уровня, выполняя соответствующие данному уровню функции, а затем удаляет этот заголовок и передает сообщение вышележащему уровню.
Физический уровень описывает физические среды передачи данных (коаксиальный кабель, витая пара, оптоволоконный кабель), преобразует данные в передаваемый сигнал (биты), соответствующий среде. Этот уровень распознает физическую структуру сети, учитывает характеристики физических сред: полосу пропускания, помехозащищенность, волновое сопротивление и другие, определяет уровни напряжения или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме этого, здесь стандартизуются типы разъемов и назначение каждого контакта. Функции физического уровня реализуются во всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером.
Одной из задач канального уровня является проверка доступности среды передачи в том случае, если используются разделяемые линии связи. Другой задачей является реализация механизмов обнаружения и коррекции ошибок. Для этого биты группируются в наборы, называемые кадрами (frames), содержащие поля с адресной и управляющей информацией. Фрейм содержит признак начала кадра, адрес устройства или передающего узла, отправляющего кадр ( адрес источника), адрес устройства или принимающего узла, получающего кадр (адрес назначения), управляющую информацию для контроля коммуникационного процесса, данные, информацию для обнаружения ошибок (контрольные данные), трейлер (концевик) или признак конца кадра. Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность битов в начало и конец каждого кадра. При этом путем обработки всех байтов кадра вычисляется контрольная сумма и добавляется к нему. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальные уровни двух устройств связаны логически благодаря используемым протоколам. Протоколы канального уровня обеспечивают доставку кадра между любыми двумя узлами локальной сети той топологии, для которой они разработаны. Они используются компьютерами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются сетевыми адаптерами. Они реализуют различные протоколы локальных сетей, в зависимости от этого делятся на адаптеры Ethernet, Token Ring, FDDI и т.д.
Канальный уровень содержит два важных подуровня: более высокий – управление логическим соединением (logical link control, LLC) и более низкий – протокол управления доступом к передающей среде (media access control, MAC). Подуровень LLC обеспечивает надежность коммуникаций путем установки канала передачи данных между двумя узлами поддержки устойчивости этого канала. Подуровень MAC распознает физический адрес (адрес устройства), называемый MAC-адресом, содержащийся в каждом кадре. Например, на каком-либо компьютере подуровень МАС проверяет каждый кадр, поступающий на него, и передает его более высокому уровню только в том случае, если адрес совпадает. В противном случае кадр отбрасывается.
Для обеспечения качественной транспортировки сообщений в сетях любых топологий и технологий возможностей канального уровня оказывается недостаточно, поэтому в модели OSI решение этой задачи возлагается на два следующих уровня – сетевой и транспортный.
Сетевой уровень служит для доставки данных между сетями, которые могут использовать различные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связей, например, отличаться технологией. Функции сетевого уровня достаточно разнообразны. Одной из главных является задача выбора наилучшего пути передачи сообщений между сетями – задача маршрутизации. Выбор маршрута может осуществляться как по суммарной длине пути передачи, так и по другим критериям, например надежности передачи. Решаются также задачи согласования разных технологий, упрощения адресации в крупных сетях и защита от нежелательного трафика между сетями.
На сетевом уровне определяется два вида протоколов: сетевые (routed protocols), реализующие продвижение пакетов через сеть, и протоколы маршрутизации (routing protocols). Протоколы сетевого уровня реализуются программными модулями операционной системы, а также программными и аппаратными средствами маршрутизаторов.
На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Транспортный уровень обеспечивает приложениям или верхним уровням стека – прикладному и сеансовому – передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное – способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.
Рис.1. Модель взаимодействия открытых систем OSI.
Выбор класса сервиса транспортного уровня определяется, с одной стороны, тем, в какой степени задача обеспечения надежности решается самими приложениями и протоколами более высоких, чем транспортный, уровней, а с другой стороны, этот выбор зависит от того, насколько надежной является система транспортировки данных в сети, обеспечиваемая уровнями, расположенными ниже транспортного – сетевым, канальным и физическим. Так, например, если качество каналов передачи связи очень высокое и вероятность возникновения ошибок, не обнаруженных протоколами более низких уровней, невелика, то целесообразно использовать один из более простых сервисов транспортного уровня, не предусматривающих проверки правильности доставки пакетов, квитирование и другие способы повышения надежности. Протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети – компонентами их сетевых операционных систем.
Нижние уровни модели OSI решают транспортные задачи. Их так и называют — транспортной подсистемой. Эти уровни реализуются в виде аппаратных средств и программного обеспечения. Три верхних уровня работают с приложениями. Процессы, протекающие на уровне пользователя и приложения, взаимодействуют с коммуникационными компонентами прикладного программного обеспечения.
Сеансовый уровень обеспечивает управление сеансом обмена данными: фиксирует, какая из сторон является активной в текущий момент, предоставляет средства синхронизации, передает запросы и сообщения приложений, находящихся на разных компьютерах. На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоколов, хотя функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе.
Уровень представления связан с формой передаваемой по сети информации, содержание остается неизменным. Средства этого уровня позволяют протоколам прикладного уровня преодолеть различия в представлении текста, данных или кодах символов, например кодов ASCII. Функции уровня гарантируют, что информация, передаваемая прикладным уровнем одной системы, будет прочитана прикладным уровнем другой системы. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому обеспечивается секретность обмена данными, а также сжатие, распаковка, кодирование. Примером одного из протоколов является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня.
Прикладной уровень — это набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также сетевым службам, таким как передача файлов (протокол FTP), электронная почта (протокол SMTP) и др.