Что такое канальный уровень. Частотное, временное и фазовое разделение сигналов (каналов)


9) Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP.
10) Трансляция сетевых адресов: NAT и PAT.
11) Протоколы резервирования первого перехода: FHRP.
12) Безопасность компьютерных сетей и виртуальные частные сети: VPN.
13) Глобальные сети и используемые протоколы: PPP, HDLC, Frame Relay.
14) Введение в IPv6, конфигурация и маршрутизация.
15) Сетевое управление и мониторинг сети.

P.S. Возможно, со временем список дополнится.


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

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

Подведу я всю эту канитель к общему знаменателю и поделюсь примером, который я когда-то для себя вывел. У вас есть оконечное сетевое устройство. Не важно компьютер, ноутбук, планшет смартфон или еще что. Каждое из этих устройств работает по стеку TCP/IP. А значит, оно соблюдает его правила.

1) Прикладной уровень. Тут работает само сетевое приложение. То есть веб-браузер, который запускается, например с компьютера.

2) Транспортный уровень. У приложения или службы должен быть порт, который он слушает и по которому с ним можно связаться.

3) Сетевой уровень. Здесь присутствует IP-адрес. Его еще называют логическим адресом устройства в сети. При помощи него можно связаться с компьютером, на котором запущен этот самый браузер, а значит, и достучаться до самого приложения. Имея данный адрес, он является участником сети и может связываться с другими участниками

4) Канальный уровень. Это сама сетевая карточка или антенна. То есть передатчик и приемник. У него есть физический адрес для идентификации этой сетевой карты. Кабели, коннекторы тоже относятся сюда. Это среда, которая свяжет компьютер с другими участниками.

Начнем с самого нижнего уровня. Это канальный и физический уровень, если рассматривать с точки зрения модели OSI и уровень доступа, если смотреть с высоты стека протоколов TCP/IP. Пользуемся мы TCP/IP, поэтому я буду говорить с ее точки зрения. Уровень доступа, как вы поняли, объединяет в себе физический и канальный уровень.

Физический уровень. Или как его любят называть «электрический уровень». Задает параметры сигнала, а также какой вид и форму имеет сигнал. Если, например, используется Ethernet (который передает данные при помощи провода), то какая модуляция, напряжение, ток. Если это Wi-Fi, то какие использовать радиоволны, частоту, амплитуду. К этому уровню можно отнести сетевые карты, Wi-Fi антенны, коннекторы. На этом уровне вводится такое понятие, как биты. Это единица измерения передаваемой информации.

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

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

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

Забудьте сейчас про IP-адреса, модель OSI и стек протоколов TCP/IP. У вас есть 4 компьютера и коммутатор. На коммутатор внимания не обращайте, так как это обычная коробка для соединения компьютеров. У каждого компьютера есть свой MAC-адрес, который идентифицирует его в сети. Он должен быть обязательно уникальный. Хоть я и представил их 3-х значными, это далеко не так. Сейчас эта картинка только для логического понимания, а как это работает в реальной жизни, напишу чуть ниже.

Итак. Если один из компьютеров захочет что-то отправить другому компьютеру, то ему потребуется знать только MAC-адрес компьютера, на который он отправляет. Если верхнему левому компьютеру с MAC-адресом 111 захочется что-то отправить нижнему правому компьютеру, то он без проблем отправит это, если будет знать, что у адресата MAC-адрес 444.

Эти 4 компьютера образуют простенькую локальную сеть и одну канальную среду. Отсюда и название уровня. Но для корректной работы узлов в сетях TCP/IP, недостаточно адресации на канальном уровне. Важна еще адресация на сетевом уровне, которая всем известна, как IP-адресация.

Теперь вспоминаем про IP-адреса. И присвоим их нашим компьютерам.


Адреса я присвоил символически, чтобы на базовом уровне понять, как они работают. Вот эти две адресации (канальная и сетевая) работают в тесной связке между собой и по отдельности работать не смогут. Сейчас объясню почему. Мы в повседневной жизни работаем только с IP-адресами или именами, о которых была целая глава в предыдущей статье. С MAC-адресами мы фактически не работаем. С ними работают сами компьютеры. Сейчас смоделирую ситуацию. Я сижу за верхним левым компьютером с IP: 1.1.1.1 и MAC: 111. Захотел я связаться с нижним правым компом и проверить живой он или нет. Я смогу связаться с ним, если буду знать его IP-адрес. MAC-адрес мне его не интересен. Я знаю, что IP-адрес у него 1.1.1.4. И решаю воспользоваться утилитой ping (утилита проверки доступности узла).

Теперь важная вещь. Компьютер понимает, что он не знает MAC-адрес компьютера, доступность которого надо проверить. Для того, чтобы узнать MAC-адрес по IP-адресу, придумали протокол ARP. Я о нем напишу подробно позже. Сейчас я хочу, чтобы вы поняли зависимости MAC-адреса и IP-адреса. Итак, он на всю сеть начинает кричать: «Кто такой 1.1.1.4». Этот крик услышат все участники сети и, если найдется тот узел, который имеет данный IP-адрес, он отзовется. У меня такой компьютер присутствует и в ответ на этот крик, он ответит: «1.1.1.4 - это я. Мой MAC - 444». Мой компьютер получит это сообщение и сможет продолжить то, что я ему сказал.

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

Если вы когда-нибудь залезали в настройки сетевых адаптеров или прописывали статический адрес, который вам сообщал провайдер, то видели поле «маска подсети». Она записывается в том же формате, что и IP-адрес, основной шлюз и DNS. Это четыре октета разделенных между собой точками. Если вы этого никогда не видели, то можете открыть командную строку и набрать в ней ipconfig. Вы увидите, что-то похожее.


Это скриншот из командной строки моего ноутбука. Я сижу за домашней точкой доступа, у которой маска 255.255.255.0. Это, наверное, самая простая маска для объяснения и скорее всего у вас она точно такая же. В чем суть. Первые 3 октета (они фиксированы) показывают адрес сети, а 4 октет (он динамический) показывает адрес хоста. Иными словами, данная маска показывает, что нужно проверять первые 3 октета полностью, а четвертый может быть свободным от 0 - 255. Вообще это грубая формулировка. Потому, что с такой маской свободны будут от 1 до 254, где 0 уйдет под адрес сети, а 255 под широковещательный адрес. Но в любом случае это предел одной канальной среды. То есть, когда узлу надо отправить другому узлу сообщение, он берет его адрес и накладывает на него маску и если адрес сети (фиксированная часть) сходится с его адресом, то значит они в одной канальной среде. Объясняю на примере той же картинки.


Сижу я за верхним левым компом и хочу отправить нижнему правому. Знаю я и IP-адрес его и MAC-адрес. Мне надо понять, в одной канальной среде мы или нет. Его адрес 1.1.1.4 и маска 255.255.255.0. Маска мне говорит, что 3 октета фиксированы и не должны меняться, а четвертый может быть любым в пределах от 1 до 254. Я накладываю маску на его адрес и на свой адрес и смотрю совпадения и различия.


Красным подсвечено та область, которая отвечает за сеть. Как видим, у 2-х хостов она одинакова. Значит, они находятся в одной подсети.

Модернизирую сеть и покажу вам ее немного иначе.


Добавилась круглое устройство. Оно называется роутер или маршрутизатор. Слово всем знакомое. Основная его роль - это соединение сетей и выбор лучшего маршрута, о чем будет в дальнейшем рассказано более подробно. И добавился, справа, один коммутатор, с которым соединены 2 компьютера. Маска для всех устройств не изменилась (255.255.255.0).

Посмотрите внимательно на адреса всех устройств. Можно заметить, что у новых узлов и старых отличается 3-ий октет. Давайте разберемся с этим. Я также сижу за компом с MAC:111 и IP:1.1.1.1. Хочу отправить информацию одному из новых узлов. Давайте пусть это будет верхний правый компьютер с MAC:555 и IP:1.1.2.1. Накладываю маску и смотрю.


И тут уже другая картина. 3-ие октеты различаются, а значит, узлы находятся в разных сетях (правильнее подсетях). Для разрешения таких ситуации, в настройках каждой операционной системы есть основной шлюз. Его еще называют «шлюз последней надежды». Используется он, как раз, в том случае, когда нужно отправить информацию узлу, находящемся в другой канальной среде. Для моего компа адрес шлюза - 1.1.1.254. А для компьютера, которому я отправляю данные 1.1.2.254. Логика работы здесь простая. Если узлу, который находился в одной канальной среде, информация доходила напрямую, то для узла находящегося в другой канальной среде, путь будет через маршрутизатор.

Мой комп знает, что адрес шлюза 1.1.1.254. Он крикнет на всю сеть: «1.1.1.254 отзовись». Это сообщение получат все участники канальной среды, но ответит только тот, кто сидит за этим адресом. То есть маршрутизатор. Он отправит ответ, и только после этого мой комп отошлет данные до адреса 1.1.2.254. Причем обратите внимание. На канальном уровне данные будут отправлены на MAC:777, а на сетевом, на IP:1.1.2.1. Это значит, что MAC-адрес передается только в своей канальной среде, а сетевой адрес не меняется на всем своем пути. Когда маршрутизатор получит инфу, он поймет, что на канальном уровне она предназначалась ему, но когда увидит IP-адрес, то поймет, что он промежуточное звено и передать надо в другую канальную среду. Его второй порт смотрит в нужную подсеть. Значит, ему все пришло верно. Но он не знает MAC-адрес адресата. Он начинает так же кричать на всю сеть: «Кто такой 1.1.2.1?». И комп с MAC-адресом 555 отвечает ему. Думаю, что логика работы понятна.

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

Как я уже говорил, это уникальный идентификатор сетевого устройства. Он уникален и не должен нигде повторяться. Состоит он из 48 бит, из которых первые 24 бита - это уникальный идентификатор организации, который присваивается комитетом IEEE(Институт инженеров электротехники и электроники). А вторые 24 бита назначаются производителем оборудования. Выглядит это так.


Записывают его по-разному. Например:

1) 00-50-56-C0-00-08
2) 00:50:56:C0:00:08
3) 0050.56С0.0008

Как видите, один и тот же адрес можно записать разными способами. Еще обычно его не разделяют, а записывают слитно. Главное знать, что MAC-адрес всегда состоит из 48 бит и состоит из 12 букв и/или цифр. Посмотреть его можно разными способами. Например, в ОС Windows, открыв командную строку, ввести ipconfig /all. Многие производители еще записывают его на коробке или на обратной стороне корпуса устройства.


Так что можете посмотреть на свою Wi-Fi точку доступа и увидеть похожую запись. В самом начале я показал MAC-адреса 3-х значными цифрами, что не правда. В том контексте я их употреблял только для простоты объяснения, чтобы не путать вас длинными непонятными записями. Чуть ниже, когда речь дойдет до практики, вы увидите их такими, какие они на самом деле.

Раз мы разобрали адрес на канальном уровне, пришло время разобрать протокол, работающий на данном уровне. Самый популярный на сегодняшний момент протокол, используемый в локальных сетях - это Ethernet . IEEE описала его стандартом 802.3. Так что, все версии, которые начинаются с 802.3, относятся именно к нему. Например, 802.3z - это GigabitEthernet через волоконно-оптический кабель; 1 Гбит/с, а 802.3af - это электропитание через Ethernet (PoE - Power over Ethernet).

Кстати, я не сказал об организации IEEE (англ. Institute of Electrical and Electronics Engineers) . Эта организация разрабатывает стандарты ко всему, что относится к радиоэлектронике и электротехнике. На их сайте можно найти много документации по существующим технологиям. Вот, что они выдают по запросу «Ethernet»


Давайте разберем, из чего он состоит. Так как сам протокол старый (придуман в 1973 году), то он много раз модернизировался и менял свой формат. В Интернете можно найти все его варианты, но я приведу тот, который приводила Cisco, когда я учился.


1) Преамбула. Поле, используемое для указания начала кадра. То есть, чтобы приемник смог понять, где начало нового кадра. Раньше, когда использовалась топология с общей шиной и были коллизии, преамбула помогала предотвращать коллизии.

2) MAC-адрес получателя. Поле, куда записывается адрес получателя.

3) MAC-адрес отправителя. Соответственно сюда записывается адрес отправителя.

4) Тип (длина). В этом поле указывается вышестоящий протокол. Для IPv4 - это 0x0800, для ARP - 0x0806, а для IPv6 - 0x86DD. В некоторых случаях сюда может записываться длина поля данных кадра (следующее поле в заголовке).

5) Поле SNAP/LLC + данные. В этом поле содержатся данные, полученные с высших уровней (или полезные данные).

6) FCS (от англ. Frame Check Sequence - контрольная сумма кадра). Поле в котором подсчитана чек-сумма. По ней получатель понимает, побился кадр или нет.

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

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

IP (от англ. Internet Protocol). Протокол семейства TCP/IP, который был разработан в 80-х годах. Как я говорил ранее, используется для объединения отдельных компьютерных сетей между собой. Также важной его особенностью является адресация, которую называют

IP-адрес . На текущий момент существуют 2 версии протокола: IPv4 и IPv6. Пару слов о них:

1) IPv4. Использует 32-битные адреса, которые записываются в формате четырёх десятичных чисел (от 0 до 255), разделённых точками. Например, адрес 192.168.0.4. Каждое число разделенное точками называют октетом. Это самая популярная версия на сегодняшний день.

2) IPv6. Использует 128-битные адреса, которые записываются в формате восьми четырехзначных шестнадцатеричных чисел (от 0 до F). Например, адрес 2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d. Каждое число разделенное точками называют хекстетом. На заре всеобщей компьютеризации появилась проблема. Стали заканчиваться IP-адреса и нужен был новый протокол, который смог бы обеспечить больше адресов. Так и появился в 1996 году протокол IPv6. Но благодаря технологии NAT, которая будет рассмотрена позже, была частична решена проблема нехватки адресов, и, в связи с этим, внедрение IPv6 затянулось по сегодняшний день.

Думаю понятно, что обе версии предназначены для одних и тех же целей. В этой статье будет разобран протокол IPv4. Про IPv6 будет написана отдельная статья.

Итак, протокол IP работает с блоком информации, который принято называть IP-пакет. Рассмотрим его структуру.


1) Версия. Протокол IPv4 или IPv6.

2) IHL (от англ. Internet Header Length - размер заголовка). Так как многие из показанных на картинке полей не фиксированы, то это поле считает размер заголовка.

3) Тип обслуживания. Обслуживает размер очередей QoS (Quality of Service - качество обслуживания). Делает он это при помощи байта, который указывает на определенный набор критериев (требование ко времени задержки, пропускной способности, надежности и т.д.)

4) Длина пакета. Размер пакета. Если IHL отвечает только за размер полей в заголовке (заголовком являются все поля на картинке, кроме поля данных), то длина пакета отвечает за весь пакет в целом, включая пользовательские данные.

5) Время жизни (TTL- Time To Live). Поле, используемое для предотвращения циклического пути пакета. При прохождении через маршрутизатор, значение уменьшается на единицу, и когда достигает нуля, пакет отбрасывается.

6) Протокол. Для какого вышестоящего протокола предназначается данный пакет (TCP, UDP).

7) Контрольная сумма заголовка. Здесь считается целостность полей заголовка. Не данных! Данные проверяются соответствующим полем на канальном уровне.

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

9) Смещение. Указывает, какому месту принадлежит фрагмент в оригинальном IP. Это значение всегда кратно восьми байтам.

10) Данные. Здесь как раз содержатся данные, полученные с вышестоящих уровней. Чуть выше я показал, что в Ethernet-кадре тоже есть поле данных. И в его поле данных будет включен данный IP-пакет. Важно помнить, что максимальный размер Ethernet-кадра равен 1500 байт, а вот размер IP пакета может быть 20 Кбайт. Соответственно весь пакет не вместится в поле данных Ethernet-кадра. Поэтому пакет делят и отправляют частями. И вот для этого используются 3 поля ниже.

11) Идентификатор. Это 4-х байтовое число, которое показывает, что все части разделенного пакета одно единое целое.

12) Флаги. Указывает, что это не единый, а фрагментированный пакет.

13) Смещение фрагмента. Сдвиг относительно первого фрагмента. То есть это нумерация, которая поможет собрать IP-пакет воедино.

14) IP-адрес отправителя и IP-адрес получателя. Соответственно эти 2 поля указывают от кого и для кого пакет.

Вот так выглядит IP-пакет. Конечно, для новичков значения многих полей покажутся не совсем понятными, но в дальнейшем это уложится в голове. Например: поле «Время жизни (TTL)». Его работа станет ясна, когда поймете, как работает маршрутизация. Могу дать совет, который я сам применяю. Если видите непонятный термин, выпишите его отдельно и, при наличии свободного времени, попробуйте разобрать. Если никак не лезет в голову, то отложите и вернитесь к его изучению чуть позже. Главное не забрасывать и в конечном итоге все таки добить.

Остался последний уровень из стека TCP/IP. Это транспортный уровень . Пару слов о нем. Он предназначен для доставки данных определенному приложению, которое он определяет по номеру порта. В зависимости от протокола, он выполняет разные задачи. Например, фрагментация файлов, контроль доставки, мультиплексирование потоками данных и управление ими. 2 самых известных протокола транспортного уровня - это UDP и TCP. Поговорим о каждом из них подробнее, и начну с UDP, в силу его простоты. Ну и по традиции показываю, из чего он состоит.


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

2) Порт назначения. Здесь указывается порт, который будет являться адресатом. Например, если клиент запрашивает страницу сайта, то порт назначения, по умолчанию, будет 80-ый (протокол HTTP).

3) Длина UDP. Длина заголовка UDP. Размер варьируется от 8 до 65535 байт.

4) Контрольная сумма UDP. Проверка целостности. Если нарушена, то просто отбрасывает без запроса о повторной отправки.

5) Данные. Здесь упакованы данные с верхнего уровня. Например, когда веб-сервер отвечает на запрос клиента и отправляет веб-страницу, то она будет лежать в этом поле.

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

Переходим к более сложному протоколу. Встречаем протокол TCP. Смотрим, из чего состоит, и пробегаем по каждому полю.


1) Порт источника и порт назначения. Выполняют те же роли, что и в UDP, а именно нумерация портов.

2) Порядковый номер. Номер, который используется для того, чтобы на другой стороне было понятно какой этот сегмент по счету.

3) Номер подтверждения. Это поле используется, когда ожидается доставка или подтверждается доставка. Для этого используется параметр ACK.

4) Длина заголовка. Используется для того, чтобы понять какой размер у TCP-заголовка (это все поля представленные на картинке выше, кроме поля данных), а какой у данных.

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

6) Флаги. В это поле устанавливаются специальные биты для установления или разрыва сессии.

7) Размер окна. Поле, указывающее, на сколько сегментов требовать подтверждения. Наверное, каждый из вас наблюдал такую картину. Вы скачиваете какой-то файл и видите скорость и время скачивания. И тут сначала он показывает, что осталось 30 минут, а через 2-3 секунды уже 20 минут. Еще спустя секунд 5, показывает 10 минут и так далее. Это и есть размер окна. Сначала размер окна устанавливается таким образом, чтобы получать больше подтверждений о каждом отправленном сегменте. Далее все идет хорошо и сеть не сбоит. Размер окна меняется и передается больше сегментов и, соответственно, требуя меньше отчетов о доставке. Таким образом, скачивание выполняется быстрее. Как только сеть даст краткий сбой, и какой то сегмент придет побитым, то размер опять изменится и потребуется больше отчетов о доставке. В этом суть данного поля.

8) Контрольная сумма TCP. Проверка целостности TCP-сегмента.

9) Указатель важности. Это смещение последнего октета важных данных относительно SEQ для пакетов с установленным флагом URG. В жизни применяется, когда необходимо осуществить контроль потока или состояния протокола верхнего уровня со стороны передающего агента (например, если принимающий агент может косвенно сигнализировать передающему, что не справляется с потоком данных).

10) Опции. Используется для каких нибудь расширенных или дополнительных параметров. Например, для параметра timestamp, который является своеобразной меткой, показывающей время произошедшего события.

11) Данные. Практически тоже самое, что и в протоколе UDP. Здесь инкапсулированы данные с вышестоящего уровня.

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

Я открываю CPT и соберу схему, аналогичную одному из рисунков выше.


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

Открываю компьютер PC1 и пропишу сетевые настройки.


Не стал я мудрить с адресом и воспользовался самым простым, который постоянно на глазах:

1) IP-адрес - 192.168.1.1

Эту маску мы рассматривали выше. Напомню, что адрес сети у других хостов в той же локальной сети, должен быть 192.168.1, а адрес хоста может быть от 1 до 254.

Это адрес маршрутизатора, на который будут отправляться данные для хостов другой локальной сети.

Чтобы не было много однотипных картинок, я не буду приводить скриншоты остальных 3-х компьютеров, а только приведу их настройки.

PC2:
1) IP-адрес - 192.168.1.2
.
3) Основной шлюз - 192.168.1.254.

PC3:
1) IP-адрес - 192.168.1.3
2) Маска подсети - 255.255.255.0.
3) Основной шлюз - 192.168.1.254.

PC4:
1) IP-адрес - 192.168.1.4
2) Маска подсети - 255.255.255.0.
3) Основной шлюз - 192.168.1.254.

На данной настройке пока остановимся и посмотрим, как работает наша локальная сеть. Перевожу CPT в режим симуляции. Допустим, я сижу за компьютером PC1, и требуется проверить доступность PC4 командой ping. Открываю командную строку на PC1.


Как только нажимаю ENTER, на схеме появляются 2 конверта.


Один из них ICMP, с которым работает сама команда ping. Сразу открываю его и смотрю.


Вижу данные IP и ICMP. Тут нет ничего интересного, за исключением нескольких полей. А именно, цифра 4 в верхнем левом углу данных IP, которая говорит о том, что используется протокол IPv4. И 2 поля с IP-адресом источника и назначения (SRC:192.168.1.1 и DST:192.168.1.4).

Но тут ping сталкивается с проблемой. Он не знает MAC-адрес получателя. То есть, адрес канального уровня. Для этого он использует протокол ARP, который сможет опросить участников сети и узнать MAC-адрес. Мы про него вскользь говорили в предыдущей статье. Давайте поговорим о нем подробнее. Не буду изменять традиции. Картинку в студию!

1) Тип протокола канального уровня (Hardware type). Думаю понятно из названия, что тут указывается тип канального уровня. Мы пока рассматривали только Ethernet. Его обозначение в этом поле - 0x0001.

2) Тип протокола сетевого уровня (Protocol type). Тут, аналогично, указывается тип сетевого уровня. Код IPv4 - 0x0800.

3) Длина физического адреса в байтах (Hardware length). Если это MAC-адрес, то размер будет 6 байт (или 48 бит).

4) Длина логического адреса в байтах (Protocol length). Если это IPv4-адрес, то размер будет 4 байта (или 32 бита).

5) Код операции (Operation). Код операции отправителя. Если это запрос, то код 0001. В случае ответа - 0002.

6) Физический адрес отправителя (Sender hardware address). MAC-адрес отправителя.

7) Логический адрес отправителя (Sender protocol address). IP-адрес отправителя.

8) Физический адрес получателя (Target hardware address). MAC-адрес получателя. Если это запрос, то, как правило, адрес неизвестен и это поле остается пустым.

9) Логический адрес получателя (Target protocol address). IP-адрес получателя.

Теперь, когда мы знаем, из чего он состоит, можно посмотреть на его работу в CPT. Кликаю по второму конверту и наблюдаю следующую картину.


И вот протокол ARP во всей красе. На 2-ом уровне работает протокол Ethernet. Остановимся и посмотрим на его поля.

1) Преамбула - здесь битовая последовательность, которая говорит о начале кадра.

2) Далее идет MAC-адрес источника и получателя. В адресе источника записан MAC-адрес компьютера, который является инициатором, а в адресе получателя записан широковещательный адрес FF-FF-FF-FF-FF-FF (то есть для всех узлов в канальной среде).

3) Тип - здесь указан вышестоящий протокол. Код 0x806 означает, что выше стоит ARP. Я, если честно, не могу точно сказать, на каком уровне он работает. В разных источниках указано по-разному. Кто то говорит, что на 2-ом уровне OSI, а кто-то говорит, что на 3-ем. Я считаю, что он между ними работает. Так как тут есть адреса, присущие каждому из уровней.

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

Поднимаемся чуть повыше и здесь протокол ARP .

1) Hardware Type - код канального уровня. CPT убрала лишние нули и вставила 0x1 (тоже, что и 0x0001). Это Ethernet.
2) Protocol Type - код сетевого уровня. 0x800 - это IPv4.
3) HLEN - длина физического адреса. 0x6 означает 6 байт. Все верно (MAC-адрес занимает 6 байт).
4) PLEN - длина сетевого адреса. 0x4 означает 4 байта (IP-адрес занимает 4 байта).
5) OPCODE - код операции. 0x1 означает, что это запрос.
6) Source Mac - здесь MAC-адрес отправителя. Можно сравнить его с адресом в поле протокола Ethernet и убедиться в правильности.
7) Source IP - IP-адрес отправителя.
8) Target MAC - так как это запрос и канальный адрес не известен, то он пустой. CPT показала его нулями, что равносильно.
9) Target IP - IP-адрес получателя. Как раз тот адрес, который пингуем.


Протокол ARP опрашивает все хосты в локальной сети и только один отвечает на этот запрос. Это PC4. Посмотрим, чем он ответит.


Вот он выплевывает что-то на коммутатор. Открываю его и вижу некоторые изменения, а именно:

1) В поле источника протокола Ethernet теперь записан MAC-адрес PC4, а в поле назначения MAC-адрес инициатора, то есть PC1.
2) В поле OPCODE теперь значение 0x2, то есть ответ.
3) Поменялись поля логических и физических адресов в протоколе ARP. Source MAC и Destination MAC аналогичны тем, что в протоколе Ethernet. В поле Source IP - адрес 192.168.1.4 (PC4), а в поле Destination IP - адрес 192.168.1.1 (PC1).

Как только эта информация достигнет PC1, он сразу формирует ICMP-сообщение, то есть ping.


Открываю его и смотрю. Это блок данных, состоящий из работы 3-х протоколов: Ethernet, IP и Ping.

1) В Ethernet протоколе ничего нового, а именно MAC-адрес отправителя - PC1, MAC-адрес получателя - PC4, а в поле Type - 0x800 (протокол IPv4)
2) В IP протоколе, в поле Версия - 4, что означает протокол IPv4. IP-адрес отправителя - PC1, а IP-адрес получателя - PC4.
3) В ICMP протоколе, в поле Type - код 0x8 (эхо-запрос).

Посылает он эхо-запрос, а я смотрю, чем ответит PC4.


Перекосил у меня CPT, и пришлось перезапустить его. Только теперь ICMP конверт не светло-зеленового цвета, а смесь зеленого и синего. Но это без разницы. Это одни и те же данные.
Ну что же, смотрю, чем ответил PC4. Поля источника и назначения в протоколах Ethernet и IP поменялись местами. А в поле Type протокола ICMP изменилось значения с 0x8 на 0x0 (означает эхо-ответ).

Судя по логике, как только этот ответ достигнет PC1, в консоли PC1 должна появиться запись. Давайте проверим.


И действительно. Появилась запись о доступности PC4, размер данных (32 байта), задержка по времени (8 мс) и TTL или время жизни (128). TTL показывает, сколько маршрутизаторов преодолел пакет. У меня пакет гулял в пределах локальной сети, поэтому данное поле не изменилось.

По умолчанию пинг отправляет 4 запроса. Следовательно, PC1 сформирует еще 3 аналогичных ICMP. Показывать путь каждого пакета я не буду, а приведу финальный вывод консоли на PC1.


И как видите, действительно 4 ответа. Заметьте, что первый пришел с задержкой в 8 мс, а 3 последних в 4 мс. Это связано с работой протокола ARP, так как сначала PC1 не знал MAC-адрес PC4 и ждал, когда ему сообщат. Хотя в CPT встречается ситуация, что в режиме реального времени, первый пакет вообще теряется. Особенно часто это проявляется, когда проверяется доступность хоста, находящегося в другой канальной среде.

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

Открываю я компьютер с именем PC5 и пропишу сетевые настройки.


Заметьте, что сетевая адресация в первой канальной среде, была 192.168.1.X, а во 2-ой 192.168.2.X. При маске 255.255.255.0, это означает, что первые 3 октета фиксированы, а 4-ый октет в пределах от 1 до 254. И так как у нас 3-ие октеты различаются, то это разные канальные среды.

Привожу настройки PC6:

1) IP-адрес - 192.168.2.2
2) Маска подсети - 255.255.255.0
3) Основной шлюз - 192.168.2.254

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

1) Router>enable - переход в привилегированный режим
2) Router#configure terminal - переход в режим глобальной конфигурации
3) Router(config)#interface fastEthernet 0/0 - переходим к настройке порта 0/0, который смотрит на первую канальную среду
4) Router(config-if)#ip address 192.168.1.254 255.255.255.0 - вешаем на этот порт IP-адрес. Так как этот порт будет являться основным шлюзом для 1-ой канальной среды, то указываем ему тот IP, который прописали хостам
5) Router(config-if)#no shutdown - включаем этот интерфейс. По умолчанию все порты на цисковских маршрутизаторах выключены
6) Router(config-if)#exit - выходим из режима настройки fastEthernet 0/0
7) Router(config)#interface fastEthernet 0/1 - переходим к настройке порта 0/1, который смотрит на вторую канальную среду
8) Router(config-if)#ip address 192.168.2.254 255.255.255.0 - вешаем сюда адрес, который будет являться основным шлюзом для хостов во 2-ой канальной среде
9) Router(config-if)#no shutdown - аналогично включаем его
10) Router(config-if)#end - пишем команду, которая отбросит в привилегированный режим
11) Router#copy running-config startup-config - сохраняем настройки в памяти маршрутизатора

На этом этапе настройка маршрутизатора окончена. Немного забегу вперед и покажу полезную команду «show ip route». Она показывает все известные маршрутизатору сети и маршрут до них.

Исходя из этой таблицы, можно удостовериться, что он знает и про 1-ую канальную среду, и про 2-ую. Отлично. Осталось дело за малым - это проверить доступность PC5 из PC1. Пробую. Переключаю CPT в режим симуляции. Открываю командную строку и пингую 192.168.2.1.


Как только нажимаю ENTER, сразу появляется 2 конверта: ICMP и ARP. Остановимся и посмотрим на них подробнее. Сейчас может показаться, что передача между разными канальными средами ничем не отличается от передачи в одной канальной среде, но это не так. И сейчас вы это увидите.

Сначала посмотрим на ICMP.


Здесь пока в принципе ничего интересного. В поле источника - IP-адрес PC1, а в поле назначения - IP-адрес PC5.

Что же будет происходить дальше. PC1 видит, что проверяется доступность хоста, находящегося в другой канальной среде (путем наложения маски на свой IP-адрес и IP-адрес получателя). И кроме IP-адреса он не знает о получателе ничего. Соответственно в таком виде отправлять пакет ICMP нельзя. Зато он знает, что у него есть основной шлюз, который, скорее всего, знает что-то про канальную среду, в которой находится PC5. Но возникает еще одна сложность. Он знает IP-адрес шлюза (который я ему прописал в сетевых настройках), но не знает его MAC-адреса. Тут ему приходит на помощь протокол ARP, который опросит всех участников канальной среды и найдет его MAC-адрес. Посмотрим, как заполнены поля.


На канальном уровне (протокол Ethernet): Поле источника - MAC-адрес PC1, а в поле назначения - широковещательный адрес (то есть всем участникам).

И чуть повыше (протокол ARP):

1) SOURCE MAC - тот же PC1, а DESTINATION MAC пустой (его должен заполнить тот, для кого этот запрос предназначен).
2) SOURCE IP - адрес PC1, а вот DESTINATION IP - адрес основного шлюза.


3 компьютера отбросили пакет, и только маршрутизатор понял, что это для него. Смотрим, чем ответит.


Ethernet:

1) Source MAC - сюда он вставляет свой MAC-адрес (а именно MAC-адрес fastEthernet0/0).
2) Destination MAC - сюда записывает MAC-адрес PC1 (то есть того, кто запросил).
ARP:
1) Source MAC и Destination MAC аналогично записям в протоколе Ethernet.
2) Source IP - свой IP-адрес.
3) Target IP - IP-адрес PC1.


Как только ARP доходит от маршрутизатора к PC1, то сразу PC1 отсылает ICMP сообщение на маршрутизатор (или основной шлюз). И вот здесь прошу обратить особое внимание. А именно, на поля источника и назначения (и в протоколе Ethernet, и в протоколе IP).

1) SRC MAC: здесь указан MAC-адрес PC1.
2) DEST MAC: MAC-адрес маршрутизатора.
3) SRC IP: IP-адрес PC1.
4) DST IP: IP-адрес PC5.

Что это значит. Адреса на сетевом уровне (то есть IP-адреса) не меняются, чтобы знать от кого и кому предназначается информация. А адреса на канальном уровне (MAC-адреса) могут спокойно меняться, переходя из одной канальной среды в другую. Это очень важно понять и запомнить!

Смотрим, что происходит. Пакет доходит до маршрутизатора и сразу перечеркивается. А все из-за того, что он не знает MAC-адрес PC5. Теперь он формирует ARP-запрос и пытается его узнать. Привожу скриншот этого запроса.

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


После истечения времени ожидания, он формирует второе ICMP, ответ которого уже дойдет без проблем, так как MAC-адреса известны. Следом он сформирует 3-ье и 4-ое ICMP. Привожу конечный итог.


И если внимательно присмотреться, то можно заметить, что TTL снизился на единицу и теперь равен 127. Это произошло из-за того, что пакет преодолел один транзитный участок (маршрутизатор).

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

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

Начну, как всегда, с простого. И это протокол UDP. Как я уже говорил выше, он используется для того, чтобы передать данные определенному протоколу вышестоящего уровня. Делает он это при помощи портов. Один из протоколов, работающих с UDP - это TFTP(Trivial File Transfer Protocol). Протокол этот мы рассматривали в предыдущей статье. Поэтому трудностей возникнуть не должно. Для демонстрации потребуется добавить в сеть сервер с включенной службой TFTP.

Настройки сервера следующие:

1) IP-адрес - 192.168.1.5
2) Маска подсети - 255.255.255.0
3) Основной шлюз - 192.168.1.254

Служба TFTP включена по умолчанию, но лучше проверить. Далее переключаю CPT в режим симуляции и попробую сохранить конфигурацию маршрутизатора на TFTP-сервер:

1) Router>enable - переход в привилегированный режим.
2) Router#copy startup-config tftp: - пишу команду copy (то есть скопировать), далее startup-config (что именно скопировать) и tftp: (куда скопировать).
3) Address or name of remote host ? 192.168.1.5 - выходит сообщение с запросом адреса или имени сервера, где я пишу его адрес.
4) Destination filename ? - следом он спрашивает, под каким именем его сохранить на сервере и предлагает стандартное имя. Меня это устраивает, и я жму ENTER.


Сразу маршрутизатор формирует 2 конверта. Один из них - это перечеркнутый TFTP, а второй ARP. Думаю, догадались, что перечеркнут он из-за того, что не знает MAC-адрес сервера.

Пропущу я момент работы ARP, так как мы вдоволь на него насмотрелись.


Давайте подробнее разберем, что маршрутизатор отправляет на сервер.

Ethernet:
1) Source MAC - адрес маршрутизатора.
2) Destination MAC - адрес сервера.
3) Type - 0x800 (означает, что выше работает протокол IP).

IP:
1) Protocol - 0x11 (означает, что выше работает протокол UDP).
2) Source IP - адрес маршрутизатора.
3) Destination IP - адрес сервера.

UDP:
1) Source Port - динамически созданный порт (1025).
2) Destination Port - порт, который слушает TFTP-сервер (зарезервированный 69 порт).

TFTP:
Здесь находятся сами данные.

Так и работает протокол UDP. Он не устанавливает сессии, не требует подтверждения доставки, а если что-то потеряется, он не запрашивает повторно. Его работа - это указать номер порта и отправить. Что там будет происходить дальше, его не интересует. Но возникают случаи, когда это не устраивает и все эти параметры критически важны. Тогда на помощь приходит протокол TCP. Рассмотрим его на примере использования веб-сервера и веб-клиента. Веб-сервером у нас будет тот же TFTP-сервер. Включаем службу HTTP и запросим страницу с компьютера PC1. Не забываем переключить CPT в режим симуляции!


Набираю адрес веб-сервера и нажимаю ENTER.

Перед тем как продолжить, я расскажу про установление TCP-сессии. Постараюсь изложить этот процесс максимально просто. Этот процесс называют «трехстороннее рукопожатие» или «handshake». В чем суть. Клиент отправляет TCP-сегмент с флагом «SYN». Получив сегмент, сервер принимает решение. Если он согласен установить соединение, то он отправляет ответный сегмент с флагом «SYN+ACK». Если не согласен, то отправляет сегмент с флагом «RST». Далее клиент смотрим на ответный сегмент. Если там стоит флаг «SYN+ACK», то он в ответ отправляет сегмент с флагом «ACK» и устанавливается соединение. Если же там стоит флаг «RST», то он прекращает попытки соединения. После того, как потребуется разорвать установившееся соединение, клиент формирует и отправляет TCP-сегмент с флагом «FIN+ACK». Сервер на этот сегмент отвечает аналогичным флагом «FIN+ACK». И наконец, клиент отправляет последний TCP-сегмент с флагом «ACK». Сейчас вы увидите, как это работает на практике.

Переключаю внимание на сеть и вижу, как PC1 формирует TCP-сегмент.


Поля протоколов Ethernet и IP я рассматривать не буду, так как тут ничего нового, за исключением поля Protocol в протоколе IP. Там стоит значение - 0x6. Это говорит о том, что выше используется протокол TCP.

А вот в TCP уже поинтереснее.

1) Source Port - 1025 (это динамически сгенерированный порт веб-клиента).
2) Destination Port - 80 (это зарезервированный порт протокола HTTP).
3) Flag - SYN (запрос на установление сессии)

Смотрим, чем ответит веб-сервер.


Меняет он номера портов местами и отправляет сегмент с флагом «SYN+ACK».

Как только клиент получает этот сегмент, он сразу формирует 2 сообщения. Один из них TCP-сегмент, представленный ниже, который отправляется с флагом «ACK».

А второй - HTTP, где указана версия протокола, какая страница и адрес сервера.


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


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


Сервер согласен разорвать соединение и в ответ отправляет сегмент с аналогичным флагом «FIN+ACK».


И наконец, клиент формирует последний TCP-сегмент с флагом «ACK» и закрывает соединение.

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

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

  • tcp/ip
  • icmp
  • Добавить метки

    (двухузловой).

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

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

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

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

    Стандарты и протоколы передачи данных

    • Econet,
    • Ethernet Automatic Protection Switching (EAPS),
    • IEEE 802.2 (provides LLC functions to IEEE 802 MAC layers),
    • Link Access Procedures, D channel (LAPD),
    • LocalTalk,
    • Multiprotocol Label Switching (MPLS),
    • Serial Line Internet Protocol (SLIP) (obsolete),

    В программировании доступ к этому уровеню предоставляет драйвер сетевой платы. В операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS . [значимость факта? ]


    Wikimedia Foundation . 2010 .

    Смотреть что такое "Канальный уровень" в других словарях:

      канальный уровень - Второй уровень эталонной модели ISO/OSI, обеспечивающий базовые коммуникационные сервисы. Канальный уровень CAN определяет кадры данных, удаленного запроса, ошибки и перегрузки. … …

      канальный уровень стека связи (сети и системы связи) - Уровень канала передачи данных. [ГОСТ Р 54325 2011 (IEC/TS 61850 2:2003)] EN data link layer layer 2 of the OSI reference model for Open Systems Interconnection, responsible for the transmission of data over a physical medium. After establishment … Справочник технического переводчика

      канальный уровень сетевого протокола - — Тематики электросвязь, основные понятия EN link layer of network protocol function … Справочник технического переводчика

      уровень канала передачи данных - канальный уровень уровень звена данных — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом Синонимы канальный уровеньуровень звена данных EN data link layer… … Справочник технического переводчика

      уровень звена данных - Ндп. канальный уровень Уровень взаимосвязи открытых систем, обеспечивающий услуги по обмену данными между логическими объектами сетевого уровня, протокол управления звеном данных, формирование и передачу кадров данных [ГОСТ 24402 88] Недопустимые … Справочник технического переводчика

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

      Сетевая модель OSI (базовая эталонная модель взаимодействия открытых систем, англ. Open Systems Interconnection Basic Reference Model) абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов. Представляет уровневый подход к… … Википедия

      Уровень звена данных - 26. Уровень звена данных Ндп. Канальный уровень Data link layer Уровень взаимосвязи открытых систем, обеспечивающий услуги по обмену данными между логическими объектами сетевого уровня, протокол управления звеном данных, формирование и передачу… … Словарь-справочник терминов нормативно-технической документации

      - (англ. Session layer) 5 й уровень сетевой модели OSI, отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией,… … Википедия

    Канальный уровень (data link layer) является первым уровнем (если идти снизу вверх), который работает в режиме коммутации пакетов. На этом уровне PDƯ обычно носит название кадр (frame).

    Функции средств канального уровня определяются по-разному для локальных и глобальных сетей.

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

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

    протоколы) могут служить широко распространенные протоколы РРР и HDLC. На основе двухточечных связей могут быть построены сети произвольной топологии.

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

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

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

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

    Однако прежде, чем переправить кадр физическому уровню для непосредственной передачи данных в сеть, канальному уровню может потребоваться решить еще одну важную задачу. Если в сети используется разделяемая среда, то прежде чем физический уровень начнет передавать данные, канальный уровень должен проверить доступность среды. Функции проверки доступности разделяемой среды иногда выделяют в отдельный подуровень управления доступом к среде (Media Access Control, MAC).

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

    только обнаружение ошибок, но и исправление их за счет повторной передачи поврежденных кадров. Однако эта функция не является обязательной и в некоторых реализациях канального уровня она отсутствует, например в Ethernet, Token Ring, FDDI и Frame Relay.

    Протоколы канального уровня реализуются компьютерами, моотами, коммутаторами и маршрутизаторам и, В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов/

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

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

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

    Еще по теме Канальный уровень:

    1. УРОВЕНЬ БОЛЕЗНЕЙ ЧЕЛОВЕКА - ЭТО УРОВЕНЬ ЕГО ОТКЛОНЕНИЯ ОТ СВОЕГО РУСЛА. ЗДОРОВЬЕ ЧЕЛОВЕКА - ЭТО ПОКАЗАТЕЛЬ НАХОЖДЕНИЯ ЧЕЛОВЕКА В СВОЕМ РУСЛЕ

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

    Процесс передачи информации

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

    Информационные сообщения

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

    Информационные сигналы

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

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

    Аналоговые и цифровые сигналы

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

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

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

    Каналы передачи информации

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

    ИИ - ПС - (КИ) - КК - М - ЛПИ - ДМ - ДК - ДИ - ПС

    ИИ - источник информации: человек либо иное живое существо, книга, документ, изображение на неэлектронном носителе (холст, бумага) и т.д.

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

    КИ - кодер информации в информсигнале для сокращения объема (сжатия) информации с целью повысить скорость ее передачи или сократить полосу частот, требуемую для передачи. Данное звено необязательно, что показано скобками.

    КК - канальный кодер для повышения помехозащищённости информсигнала.

    М - сигнальный модулятор для изменения характеристик промежуточных сигналов-носителей в зависимости от величины информсигнала. Типичный пример - амплитудная модуляция сигнала-носителя высокой несущей частоты в зависимости от величины низкочастотного информсигнала.

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

    ДМ - демодулятор для отделения информсигнала от сигнала-носителя. Присутствует только при наличии М.

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

    ДИ - декодер информации. Присутствует только при наличии КИ.

    ПИ - приемник информации (компьютер, принтер, дисплей и т. д.).

    Если передача информации двусторонняя (канал дуплексный), то по обе стороны ЛПИ имеются блоки-модемы (МОдулятор-ДЕМодулятор), объединяющие в себе звенья М и ДМ, а также блоки-кодеки (КОдер-ДЕКодер), объединяющие кодеры (КИ и КК) и декодеры (ДИ и ДК).

    Характеристики каналов передачи

    К основным отличительным чертам каналов относятся пропускная способность и помехозащищенность.

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

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

    Пропускная способность канала равна максимальному количеству двоичных символов (кбит), передаваемых им при отсутствии помех за одну секунду. Для различных каналов она варьируется от нескольких кбит/с до сотен Мбит/с и определяется их физическими свойствами.

    Теория передачи информации

    Клод Шеннон является автором специальной теории кодирования передаваемых данных, открывшим методы борьбы с шумами. Одна из основных идей этой теории заключается в необходимости избыточности передаваемого по линиям передачи информации цифрового кода. Это позволяет при потере какой-то части кода в процессе его передачи восстановить потерю. Такие коды (цифровые информсигналы) называются помехоустойчивыми. Однако избыточность кода нельзя доводить до слишком большой степени. Это ведёт к тому, что передача информации идет с задержками, а также к удорожанию систем связи.

    Цифровая обработка сигналов

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

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

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

    Примером протокола физического уровня может служить спецификация l0-Base-T технологии Ethernet, которая определяет в качестве используемого кабеля неэкранированную витую пару категории 3 с волновым сопротивлением 100 Ом, разъем RJ-45, максимальную длину физического сегмента 100 метров, манчестерский код для представления данных в кабеле, а также некоторые другие характеристики среды и электрических сигналов.

    Канальный уровень

    На физическом уровне просто пересылаются биты. При этом не учитывается, что в некоторых сетях, в которых линии связи используются (разделяются) попеременно несколькими парами взаимодействующих компьютеров, физическая среда передачи может быть занята. Поэтому одной из задач канального уровня (Data Link layer) является проверка доступности среды передачи. Другой задачей канального уровня является реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frames) . Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность бит в начало и конец каждого кадра, для его выделения, а также вычисляет контрольную сумму, обрабатывая все байты кадра определенным способом и добавляя контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровень может не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок не является обязательной для канального уровня, поэтому в некоторых протоколах этого уровня она отсутствует, например, в Ethernet и frame relay.

    В протоколах канального уровня, используемых в локальных сетях, заложена определенная структура связей между компьютерами и способы их адресации. Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя узлами локальной сети, он это делает только в сети с совершенно определенной топологией связей, именно той топологией, для которой он был разработан. К таким типовым топологиям, поддерживаемым протоколами канального уровня локальных сетей, относятся общая шина, кольцо и звезда, а также структуры, полученные из них с помощью мостов и коммутаторов. Примерами протоколов канального уровня являются протоколы Ethernet, Token Ring, FDDI, l00VG-AnyLAN.

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

    В глобальных сетях, которые редко обладают регулярной топологией, канальный уровень часто обеспечивает обмен сообщениями только между двумя соседними компьютерами, соединенными индивидуальной линией связи. Примерами протоколов «точка-точка» (как часто называют такие протоколы) могут служить широко распространенные протоколы РРР и LAP-B. В таких случаях для доставки сообщений между конечными узлами через всю сеть используются средства сетевого уровня. Именно так организованы сети Х.25. Иногда в глобальных сетях функции канального уровня в чистом виде выделить трудно, так как в одном и том же протоколе они объединяются с функциями сетевого уровня. Примерами такого подхода могут служить протоколы технологий АТМ и frame relay.

    В целом канальный уровень представляет собой весьма мощный и законченный набор функций по пересылке сообщений между узлами сети. В некоторых случаях протоколы канального уровня оказываются самодостаточными транспортными средствами и могут допускать работу поверх них непосредственно протоколов прикладного уровня или приложений, без привлечения средств сетевого и транспортного уровней. Например, существует реализация протокола управления сетью SNMP непосредственно поверх Ethernet, хотя стандартно этот протокол работает поверх сетевого протокола IP и транспортного протокола UDP. Естественно, что применение такой реализации будет ограниченным - она не подходит для составных сетей разных технологий, например Ethernet и Х.25, и даже для такой сети, в которой во всех сегментах применяется Ethernet, но между сегментами существуют петлевид-ные связи. А вот в двухсегментной сети Ethernet, объединенной мостом, реализация SNMP над канальным уровнем будет вполне работоспособна.

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

    Сетевой уровень

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

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

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

    Внутри сети доставка данных обеспечивается соответствующим канальным уровнем, а вот доставкой данных между сетями занимается сетевой уровень, который и поддерживает возможность правильного выбора маршрута передачи сообщения даже в том случае, когда структура связей между составляющими сетями имеет характер, отличный от принятого в протоколах канального уровня. Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор - это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями, илихопов (от hop - прыжок), каждый раз выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет.

    На рис. 1.27 показаны четыре сети, связанные тремя маршрутизаторами. Между узлами А и В данной сети пролегают два маршрута: первый через маршрутизаторы 1 и 3, а второй через маршрутизаторы 1, 2 и 3.

    Рис. 1.27. Пример составной сети

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

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

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

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

    На сетевом уровне работают протоколы еще одного типа, которые отвечают за отображение адреса узла, используемого на сетевом уровне, в локальный адрес сети. Такие протоколы часто называют протоколами разрешения адресов - Address Resolution Protocol, ARP . Иногда их относят не к сетевому уровню, а к канальному, хотя тонкости классификации не изменяют их сути.

    Примерами протоколов сетевого уровня являются протокол межсетевого взаимодействия IP стека TCP/IP и протокол межсетевого обмена пакетами IPX стека Novell.

    Транспортный уровень

    На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Транспортный уровень (Transport layer) обеспечивает приложениям или верхним уровням стека - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное - способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.

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

    Как правило, все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети - компонентами их сетевых операционных систем. В качестве примера транспортных протоколов можно привести протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell.

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

    Сеансовый уровень

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

    Представительный уровень

    Представительный уровень (Presentation layer) имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например кодов ASCII и EBCDIC. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных служб. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня стека TCP/IP.

    Прикладной уровень

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

    Существует очень большое разнообразие служб прикладного уровня. Приведем в качестве примера хотя бы несколько наиболее распространенных реализации файловых служб: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.

    Сетезависимые и сетенезависимые уровни

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

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

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

    Транспортный уровень является промежуточным, он скрывает все детали функционирования нижних уровней от верхних. Это позволяет разрабатывать приложения, не зависящие от технических средств непосредственной транспортировки сообщений. На рис. 1.28 показаны уровни модели OSI, на которых работают различные элементы сети. Компьютер с установленной на нем сетевой ОС взаимодействует с другим компьютером с помощью протоколов всех семи уровней. Это взаимодействие компьютеры осуществляют опосредовано через различные коммуникационные устройства: концентраторы, модемы, мосты, коммутаторы, маршрутизаторы, мультиплексоры. В зависимости от типа коммуникационное устройство может работать либо только на физическом уровне (повторитель), либо на физическом и канальном (мост), либо на физическом, канальном и сетевом, иногда захватывая и транспортный уровень (маршрутизатор). На рис. 1.29 показано соответствие функций различных коммуникационных устройств уровням модели OSI.

    Рис. 1.28. Сетезависимые и сетенезависимые уровни модели OSI

    Рис.1.29. Соответствие функций различных устройств сети уровням модели OSI

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

    1.3.4. Понятие «открытая система»

    Модель OSI, как это следует из ее названия (Open System Interconnection), описывает взаимосвязи открытых систем. Что же такое открытая система?

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

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

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

    Для реальных систем полная открытость является недостижимым идеалом. Как правило, даже в системах, называемых открытыми, этому определению соответствуют лишь некоторые части, поддерживающие внешние интерфейсы. Например, открытость семейства операционных систем Unix заключается, кроме всего прочего, в наличии стандартизованного программного интерфейса между ядром и приложениями, что позволяет легко переносить приложения из среды одной версии Unix в среду другой версии. Еще одним примером частичной открытости является применение в достаточно закрытой операционной системе Novell NetWare открытого интерфейса Open Driver Interface (ODI) для включения в систему драйверов сетевых адаптеров независимых производителей. Чем больше открытых спецификаций использовано при разработке системы, тем более открытой она является.

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

    Если две сети построены с соблюдением принципов открытости, то это дает следующие преимущества:

      возможность построения сети из аппаратных и программных средств различных производителей, придерживающихся одного и того же стандарта;

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

      возможность легкого сопряжения одной сети с другой;

      простота освоения и обслуживания сети.

    Ярким примером открытой системы является международная сеть Internet. Эта сеть развивалась в полном соответствии с требованиями, предъявляемыми к открытым системам. В разработке ее стандартов принимали участие тысячи специалистов-пользователей этой сети из различных университетов, научных организаций и фирм-производителей вычислительной аппаратуры и программного обеспечения, работающих в разных странах. Само название стандартов, определяющих работу сети Internet - Request For Comments (RFC), что можно перевести как «запрос на комментарии», - показывает гласный и открытый характер принимаемых стандартов. В результате сеть Internet сумела объединить в себе самое разнообразное оборудование и программное обеспечение огромного числа сетей, разбросанных по всему миру.
    При использовании материалов сайта ссылка на проект обязательна.
    All rights reserved. ©2006