7 уровней модели osi
Содержание:
Недостатки OSI
Семиуровневая модель OSI считается устаревшей. На момент выхода она уже не поддерживала все актуальные стандарты, а сейчас эта проблема стала более выраженной. Поэтому современные компании ориентируются на TCP/IP. Еще один недостаток модели – плохо проработанная технология. Протоколы OSI дублируют друг друга, распределение функций немного странное.
При построении сети используются не все уровни модели ОСИ. Обычно для настройки оборудования инженерам нужно знать первые 4 уровня. L5 и L6 при работе с реальными сетями практически не применяются.
Модель ISO/OSI является закрытой. Её в основном использовали телекоммуникационные компании Франции, США, Англии
В тоже время стек протоколов TCP/IP разрабатывался как открытая модель, что и привлекло внимание разработчиков по всему миру.
Модель OSI
В 1978 году International Standards Organization (ISO) выпустила набор спецификаций, описывающих архитектуру сети с неоднородными устройствами. Исходный документ относился к открытым системам, чтобы все они могли использовать одинаковые протоколы и стандарты для обмена информацией. Каждый профессионал в области компьютерных сетей должен знать основные организации, разрабатывающие сетевые стандарты, и их вклад в развитие сетей.
В 1984 году ISO выпустила новую версию своей модели, названную эталонной моделью взаимодействия открытых систем (Open System Interconnection reference model, OSI). Версия 1984 года стала международным стандартом: именно ее спецификации используют производители при разработке сетевых продуктов, именно ее придерживаются при построении сетей.
Эта модель — широко распространенный метод описания сетевых сред. Являясь многоуровневой системой, она отражает взаимодействие программного и аппаратного обеспечения при осуществлении сеанса связи, а также помогает решить разнообразные проблемы.
Многоуровневая архитектура
В модели OSI сетевые функции распределены между семью уровнями. Каждому уровню соответствуют различные сетевые операции, оборудование и протоколы.
- Прикладной уровень
- Представительский уровень
- Сеансовый уровень
- Транспортный уровень
- Сетевой уровень
- Канальный уровень
- Физический уровень
Это и есть многоуровневая архитектура модели OSI. На каждом уровне выполняются определенные сетевые функции, которые взаимодействуют с функциями соседних уровней, вышележащего и нижележащего. Например, Сеансовый уровень должен взаимодействовать только с Представительским и Транспортным уровнем и т.п. Все эти функции подробно описаны.
Нижние уровни — Физический и Канальный — определяют физическую среду передачи данных и сопутствующие задачи (такие, как передача битов данных через плату сетевого адаптера и кабель). Самые верхние уровни определяют, каким способом осуществляется доступ приложений к услугам связи. Чем выше уровень, тем более сложную задачу он решает.
Каждый уровень предоставляет несколько услуг (т.е. выполняет несколько операций), подготавливающих данные для доставки по сети на другой компьютер. Уровни отделяются друг от друга границами — интерфейсами. Все запросы от одного уровня к другому передаются через интерфейс. Каждый уровень использует услуги нижележащего уровня.
Масштабируемость Ethernet
Оказывается, Ethernet и другие технологии канального уровня не подходят для создания крупной сети, которая может охватить весь мир из-за того, что у них есть существенные ограничения по масштабируемости.
Давайте рассмотрим существующие ограничения. Коммутаторы изернет для передачи кадра пользуются таблицами коммутации. И эта таблица должна содержать все MAК-адреса компьютеров в сети. Если для локальной сети это можно сделать, то для глобальной сети, в которой несколько миллиардов устройств, никакому коммутатору не хватит памяти, чтобы хранить подобную таблицу. И искать нужный порт в такой огромной таблице будут очень долго.
Следующая проблема в том, что если коммутатор не понимает куда отправлять кадр, он передает его на все порты, надеясь, что где-то там находиться получатель. Такой подход тоже работает в локальных сетях, но в глобальных сетях не работает. Если в интернет мы не знаем куда отправить пакет и будем пересылать всем компьютерам в интернете, то через некоторое время, мы засорим сеть такими мусорными пакетами и это приведет к отказу в обслуживании.
Другая проблема это отсутствие дублирующих путей между коммутаторами. В Ethernet у нас всегда должно быть одно соединение, чтобы не образовалось кольца, иначе сеть будет перегружена широковещательным штормом. В Ethernet есть технология STP, которая позволяет создавать несколько связей между коммутаторами, но в каждый момент времени активно всего одно соединение.
Рассмотрим пример, в нашей сети есть несколько коммутаторов. Они соединены между собой и есть такое соединение, которое приводит к образованию кольца.
В сети запускается протокол STP, коммутаторы выбирают корневой. Рассчитывают расстояние до корневого и отключают одно из соединений.
Если коммутаторы используются для построения локальной сети, где расстояние между коммутаторами небольшое, то такой подход работает отлично. Но, предположим, что мы строим глобальную сеть и если мы хотим отправить данные из Екб в Челябинск, который является соседним городом и расположен близко, то на уровне Ethernet мы это сделать не сможем, потому что прямое соединение отключено протоколом STP.
Необходимо передавать данные через другие города, расстояние гораздо больше, поэтому скорость передачи будет существенно ниже. От этого хотелось бы избавиться.
Масштабируемость на сетевом уровне
Что делает сетевой уровень, чтобы обеспечить масштабирование и построить такую сеть, которая способна объединить все компьютеры во всем мире, например сеть интернет.
- Первое это агрегация адресов. Сетевой уровень работает не с отдельными адресами, а с группами адресов, которые объединяются и такие блоки адресов называются сетью.
- Пакеты, для которых путь доставки неизвестен на сетевом уровне отбрасываются. Это обеспечивает защиту составной сети от циркуляции мусорных пакетов.
- И возможность наличия нескольких активных путей в сети. Это является одной из причин создания сетей с пакетной коммутацией. В нашей сети всегда есть некое количество активных путей между отправителем и получателем. И данные могут пройти по любому из этих путей. В том числе, если один путь выйдет из строя, то другой путь останется доступным. Но если у нас есть несколько путей, то на сетевом уровне появляется задача маршрутизации. То есть, на каждом этапе мы должны определять, по какому пути мы отправим ту или иную порцию данных.
Сравнение названий и номеров уровней OSI и TCP/IP
С концептуальной точки зрения модель OSI имеет много общего с моделью TCP/IP. Она содержит уровни, и каждый уровень определяет набор типовых сетевых функций. Как и в случае с TCP/IP, каждый уровень OSI относится к нескольким протоколам и стандартам, которые реализуют функции, определенные этим уровнем. В других случаях, как и в случае TCP/IP, комитет OSI не создавал новые протоколы или стандарты, а вместо этого ссылался на другие протоколы, которые уже были определены. Например, IEEE определяет стандарты Ethernet, поэтому комитет OSI не тратил время на определение нового типа Ethernet; он просто ссылался на стандарты IEEE Ethernet.
Сегодня модель OSI можно использовать как стандарт для сравнения с другими сетевыми моделями. На рисунке 1 сравнивается семиуровневая модель OSI с четырехуровневой и пятиуровневой моделями TCP/IP.
Рисунок 1 – Модель OSI в сравнении с двумя моделями TCP/IP
Обратите внимание, что используемая сегодня модель TCP/IP в правой части рисунка использует те же названия уровней, что и OSI на нижних уровнях. Функции, как правило, также совпадают, поэтому при обсуждении сети и чтении сетевой документации думайте об этих четырех нижних уровнях как об эквивалентных по названию, количеству и значению
Несмотря на то, что сегодня в мире используется TCP/IP, а не OSI, мы, как правило, используем нумерацию уровней OSI. Например, когда речь идет о протоколе прикладного уровня (уровня приложений) в сети TCP/IP, мир по-прежнему называет этот протокол «протоколом уровня 7» (Layer 7 protocol). Кроме того, в то время как TCP/IP включает больше функций на уровне приложений, OSI разбивает его на сеансовый уровень, уровень представления и прикладной уровень. В большинстве случаев никто не заботится о различиях, поэтому вы, возможно, увидите такие фразы, как «протокол уровня 5–7» (Layer 5–7 protocol), опять же с использованием нумерации OSI.
Для целей данной серии статей необходимо знать соответствие между пятиуровневой моделью TCP/IP и семиуровневой моделью OSI, показанное на рисунке 1, и знать, что ссылка на уровень 7 на самом деле соответствуют уровню приложений модели TCP/IP.
Общее определение термина пакет
Для описания фрагментов информации, передаваемых по сети, применяются термины: пакет, дейтаграмма, фрейм, сообщение и сегмент. Все они по сути имеют один и тот же смысл, но относятся к разным уровням модели OSI. Например, пакет можно рассматривать как конверт с письмом. Чтобы отправить этот конверт по почте, необходимо выполнить ряд требований (рис.1), которые перечислены ниже.
-
- Подготовить почтовое вложение. Эта составляющая почтового отправления представляет собой письмо, например, с фотографией новорожденного сына, отправляемой дяде Джо.
- Написать на конверте адрес отправителя. Эта составляющая служит в качестве обратного адреса, который должен быть написан на стандартном конверте. Адрес указывает, от которого поступило сообщение, и необходим даже просто на тот случай, если возникнут проблемы с доставкой письма.
- Написать на конверте адрес получателя. Эта составляющая представляет собой адрес дяди Джо, без которого письмо невозможно доставить намеченному получателю.
- Пройти через систему проверки. Эта составляющая представляет собой штемпель на почтовой марке. Он подтверждает, что письмо отправлено с соблюдением всех требований и соответствует стандартам почтовой службы.
Рис.1. Обязательные составляющие обычного письма.
Передача сетевого пакета фактически происходит по таким же принципам, как и отправка обычного письма. Рассмотрим в качестве примера сообщение электронной почты, которое показано на рис.2. Для его доставки адресату необходимо такая же информация, как и для обычного письма (а также некоторые другие компоненты, которые рассматриваются в данной главе). эта информация описана ниже.
-
- Почтовое вложение. Этот компонент представляет собой передаваемые данные, допустим, электронное письмо дяде Джо с сообщением о рождении сына.
- Адрес отправителя. Этот компонент служит в качестве обратного адреса для электронного письма. Он позволяет узнать от кого поступило сообщение, даже просто на тот случай, если возникнет проблема при доставке электронной почты.
- Адрес получателя. Этот компонент представляет собой адрес электронной почты дяди Джо и необходим для правильной доставки электронной почты.
- Информация для системы проверки. Если речь идет о пакете, то этот компонент представляет собой определенную информацию для системы контроля ошибок. В данном случае применяется контрольная последовательность фрейма (Frame Check Sequence — FCS). Такую последовательность можно рассматривать как результат вычислений, выполненных над содержимым пакета с помощью некоторой математической формулы. Если вычисления FCS в пункте назначения {на компьютере дяди Джо) дадут правильный результат, это будет означать, что данные в пакете являются действительными и должны быть приняты. А если результаты вычислений окажутся неправильными, сообщение будет отброшено.
Рис.2. Основные компоненты пакете.
Далее понятие пакета применяется для иллюстрации процесса прохождения данных сверху вниз по уровням модели OSI, затем по физическому кабелю, а после этого снизу вверх по уровням модели OSI. Пока они не поступят в виде нового сообщения во входной почтовый ящик дяди Джо.
Уровни
Уровень 1. Физический. Включает физические аспекты передачи двоичной информации по линии связи. Детально описывает, например, напряжения, частоты, природу передающей среды. Этому уровню вменяется в обязанность поддержание связи и приём-передача битового потока. Безошибочность желательна, но не требуется.
Уровень 2. Канальный. Обеспечивает безошибочную передачу блоков данных первый через уровень, который при передаче может искажать данные. Этот уровень должен определять начало и конец кадра в битовом потоке, формировать из данных, передаваемых физическим уровнем, кадры или последовательности кадров, включать процедуру проверки наличия ошибок и их исправления. Этот уровень (и только он) оперирует такими элементами, как битовые последовательности, методы кодирования, маркеры. Он несёт ответственность за правильную передачу данных (пакетов) на участках между непосредственно связанными элементами сети. Обеспечивает управление доступом к среде передачи.
Уровень 3. Сетевой. Этот уровень пользуется возможностями, предоставляемыми вторым уровнем, для обеспечения связи любых двух точек в сети. Этот уровень осуществляет проводку сообщений по сети, которая может иметь много линий связи, или по множеству совместно работающих сетей, что требует маршрутизации, т.е. определения пути, по которому следует пересылать данные. Маршрутизация производится на этом же уровне. Выполняет обработку адресов, а также мультиплексирование и демультиплексирование. Основной функцией программного обеспечения на этом уровне является выборка информации из источника, преобразование её в пакеты и правильная передача в точку назначения.
Уровень 4. Транспортный. Регламентирует пересылку данных между процессами, выполняемыми на компьютерах сети. Завершает организацию передачи данных: контролирует на сквозной основе поток данных, проходящий по маршруту, определённому третьим уровнем: правильность передачи блоков данных, правильность доставки в нужный пункт назначения, их комплектность, сохранность, порядок следования. Собирает информацию из блоков в её прежний вид. Или же оперирует с дейтаграммами, то есть ожидает отклика-подтверждения приёма из пункта назначения, проверяет правильность доставки и адресации, повторяет посылку дейтаграммы, если не пришёл отклик.
Уровень 5. Сеансовый. Координирует взаимодействие связывающихся процессов: устанавливает связь, взаимодействует, восстанавливает аварийно оконченные сеансы. Он координирует не компьютеры и устройства, а процессы в сети, поддерживает их взаимодействие. То есть управляет сеансами связи между процессами прикладного уровня. Этот же уровень ответственен за картографию сети. Фактически он преобразовывает адреса, удобные для людей, в реальные сетевые адреса, например, в Internet это соответствует преобразованию региональных (доменных) компьютерных имён в числовые адреса глобальной, и наоборот.
Уровень 6. Представления данных. Этот уровень имеет дело с синтаксисом и семантикой передаваемой информации. Здесь устанавливается взаимопонимание двух сообщающихся компьютеров относительно того, как они представляют и понимают по получении передаваемую информацию. На данном этапе решаются такие задачи, как перекодировка текстовой информации и изображений, сжатие и распаковка, поддержка сетевых файловых систем (NFS), абстрактных структур данных.
Уровень 7. Прикладной. Обеспечивает интерфейс между пользователем и сетью, делает доступными для человека всевозможные услуги. На этом уровне реализуется, по крайней мере, пять прикладных служб: передача файлов, удалённый терминальный доступ, электронная передача сообщений, справочная служба и управление сетью. В конкретной реализации определяется пользователем согласно его необходимости и требованиям.
Уровни эталонной модели
Уровни эталонной модели OSI представляют из себя вертикальную структуру, где все сетевые функции разделены между семью уровнями. Следует особо отметить, что каждому такому уровню соответствует строго описанные операции, оборудование и протоколы.
Взаимодействие между уровнями организовано следующим образом:
- по вертикали — внутри отдельно взятой ЭВМ и только с соседними уровнями.
- по горизонтали — организовано логическое взаимодействие — с таким же уровнем другого компьютера на другом конце канала связи (то есть сетевой уровень на одном компьютере взаимодействует с сетевым уровнем на другом компьютере).
Так как семиуровневая модель osi состоит из строгой соподчиненной структуры, то любой более высокий уровень использует функции нижележащего уровня, причем распознает в каком именно виде и каким способом (т.е. через какой интерфейс) нужно передавать ему поток данных.
Рассмотрим, как организуется передача сообщений по вычислительной сети в соответствии с моделью OSI. Прикладной уровень — это уровень приложений, то есть данный уровень отображается у пользователя в виде используемой операционной системы и программ, с помощью которой выполняется отправка данных. В самом начале именно прикладной уровень формирует сообщение, далее оно передается представительному уровню, то есть спускается вниз по модели OSI. Представительный уровень, в свою очередь, проводит анализ заголовка прикладного уровня, выполняет требуемые действия, и добавляет в начало сообщения свою служебную информацию, в виде заголовка представительного уровня, для представительного уровня узла назначения. Далее движение сообщения продолжается вниз, спускается к сеансовому уровню, и он, в свою очередь, также добавляет свои служебные данные, в виде заголовка вначале сообщения и процесс продолжается, пока не достигнет физического уровня.
Следует отметить, что помимо добавления служебной информации в виде заголовка вначале сообщения, уровни могут добавлять служебную информацию и в конце сообщения, который называется «трейлер».
Когда сообщение достигло физического уровня, сообщение уже полностью сформировано для передачи по каналу связи к узлу назначения, то есть содержит в себе всю служебную информацию добавленную на уровнях модели OSI.
Помимо термина «данные» (data), которое используется в модели OSI на прикладном, представительном и сеансовом уровнях, используются и другие термины на других уровнях модели OSI, чтобы можно было сразу определить на каком уровне модели OSI выполняется обработка.
В стандартах ISO для обозначения той или иной порции данных, с которыми работают протоколы разных уровней модели OSI, используется общее название — протокольный блок данных (Protocol Data Unit, PDU). Для обозначения блоков данных определенных уровней часто используются специальные названия: кадр (frame), пакет (packet), сегмент (segment).
Модель OSI
Эталонная модель OSI являет собой 7-уровневую сетевую иерархию созданную международной организацией по стандартам (ISO). Представленная модель на рис.1 имеет 2 различных модели:
- горизонтальная модель на основе протоколов, реализующую взаимодействие процессов и ПО на разных машинах
- вертикальную модель на основе услуг, реализуемых соседними уровнями друг другу на одной машине
В вертикальной — соседние уровни меняются информацией с помощью интерфейсов API. Горизонтальная модель требует общий протокол для обмена информацией на одном уровне.
Рисунок — 1
Модель OSI описывает только системные методы взаимодействия, реализуемые ОС, ПО и тд. Модель не включает методы взаимодействия конечных пользователей. В идеальных условиях приложения должны обращаться к верхнему уровню модели OSI, однако на практике многие протоколы и программы имеют методы обращения к нижним уровням.
Физический уровень
На физическом уровне данные представлены в виде электрических или оптических сигналов, соответствующие 1 и 0 бинарного потока. Параметры среды передачи определяются на физическом уровне:
- тип разъемов и кабелей
- разводка контактов в разъемах
- схема кодирования сигналов 0 и 1
Самые распространенные виды спецификаций на этом уровне:
- EIA-RS-232-C, CCITT V.24/V.28 — параметры несбалансированного последовательного интерфейса
- EIA-RS-422/449, CCITT V.10 — параметры сбалансированного последовательного интерфейса
- IEEE 802.3 — Ethernet
- IEEE 802.5 — Token ring
На физическом уровне нельзя вникнуть в смысл данных, так как она представлена в виде битов.
Канальный уровень
На этом канале реализована транспортировка и прием кадров данных. Уровень реализует запросы сетевого уровня и использует физический уровень для приема и передачи. Спецификации IEEE 802.x делят этот уровень на два подуровня управление логическим каналом (LLC) и управление доступом к среде (MAC). Самые распространенные протоколы на этом уровне:
- Протокол последовательной передачи HDLC
- IEEE 802.2 LLC и MAC
- Ethernet
- Token Ring
- FDDI
- х 25
- Frame Relay
Также на этом уровне реализуется обнаружение и исправление ошибок при передаче. На канальном уровне пакет помещается в поле данных кадра — инкапсуляция. Обнаружение ошибок возможно с помощью разных методов. К примеру реализация фиксированных границ кадра, или контрольной суммой.
Сетевой уровень
На этом уровне происходит деление пользователей сети на группы. Здесь реализуется маршрутизация пакетов на основе MAC-адресов. Сетевой уровень реализует прозрачную передачу пакетов на транспортный уровень. На этом уровне стираются границы сетей разных технологий. Маршрутизаторы работают на этом уровне. Пример работы сетевого уровня показан на рис.2 Самые частые протоколы:
- ПIP
- IPX
- X 25
- CLNP
Рисунок — 2
Транспортный уровень
На этом уровне потоки информации делятся на пакеты для передачи их на сетевом уровне. Самые распространенные протоколы этого уровня:
- TCP — протокол управления передачей
- NCP
- SPX
- TP4
Сеансовый уровень
На этом уровне происходит организация сеансов обмена информацией между оконечными машинами. На этом уровне идет определение активной стороны и реализуется синхронизация сеанса. На практике многие протоколы других уровней включают функцию сеансового уровня.
Уровень представления
На этом уровне происходит обмен данными между ПО на разных ОС. На этом уровне реализовано преобразование информации (кодирование, сжатие и тд) для передачи потока информации на транспортный уровень. Протоколы уровня используются и те, что используют высшие уровни модели OSI.
Прикладной уровень
Прикладной уровень реализует доступ приложения в сеть. Уровень управляет переносом файлов и управление сетью. Используемые протоколы:
- FTP/TFTP — протокол передачи файлов
- X 400 — электронная почта
- Telnet
- smtp
- CMIP — управление информацией
- SNMP — управление сетью
- NFS — сетевая файловая система
- FTAM — метод доступа для переноса файлов
Сетевые уровни модели OSI
Физический
Отвечает за физическую передачу данных между устройствами на большие и не очень расстояния. Он описывает виды сигналов и способы их обработки для разных сред передачи: проводов (витой пары и коаксиала), оптического волокна, радиолинии (wi-fi и bluetooth), инфракрасного канала. Единицы данных на этом уровне – биты, преобразованные в электрические импульсы, свет, радиоволны и т.д. Также тут фиксируются типы разъемов, их распиновка.
Устройства, работающие на физическом уровне модели ОСИ (OSI Model): повторители сигнала, концентраторы (хабы). Это наименее «интеллектуальные» устройства, задачей которых является усиление сигнала или его разветвление без какого-либо анализа и модификации.
Канальный
Находясь над физическим, должен «опустить» правильно оформленные данные в среду передачи, предварительно приняв их от верхнего уровня. На приемном конце протоколы канального уровня «поднимают» информацию из физики, проверяют полученное на наличие ошибок и передают выше по стеку протоколов.
Для осуществления процедур проверки необходимо, во-первых, сегментировать данные для передачи на порции (кадры), во-вторых, дополнять их служебной информацией (заголовками).
Также тут впервые всплывает понятие адреса. Здесь – это MAC (англ. Media Access Control) адрес – шестибайтовый идентификатор сетевого устройства, необходимый для указания в кадрах в качестве получателя и отправителя при передаче данных в рамках одного локального сегмента.
Устройства: сетевой мост (bridge), коммутатор. Их преимущественное отличие от «нижних» устройств – ведение таблиц MAC адресов по своим портам и рассылка/фильтрация трафика уже только по необходимым направлениям.
Сетевой
Объединяет целые сети. Решает глобальные логистические задачи по передаче данных между разными сегментами больших сетей: маршрутизацию, фильтрацию, оптимизацию и контроль качества.
Единица передаваемой информации – пакеты. Адресация узлов и сетей производится присвоением им 4-байтовых номеров – IP (англ. Internet Protocol) адресов, иерархически организованных, и позволяющих гибко настраивать взаимную логическую видимость сегментов сетей.
Также здесь появляются и привычные символьные имена узлов, за соответствие которых IP адресам отвечают протоколы сетевого уровня. Устройства, работающие на этом этаже модели OSI – маршрутизаторы (роутеры, шлюзы). Реализуя в себе все три первых уровня стека протоколов, они объединяют собой разные сети, перенаправляют пакеты из одной в другую, выбирая по определенным правилам их маршрут, ведут статистику передачи, обеспечивают безопасность за счет таблиц фильтрации.
Транспортный
Транспортировка в этом случае подразумевается логическая (так как за физическую отвечает 1 ступень стека): установление соединения с противоположным узлом на соответствующем уровне, подтверждение доставки полученных данных, контроль их качества. Так работает протокол TCP (англ. Transmission Control Protocol). Передаваемая порция информации – блок или сегмент.
Для передачи же потоковых массивов (датаграмм) используется протокол UDP (англ. User Datagram Protocol).
Адрес – десятичный номер виртуального программного порта конкретной рабочей станции или сервера.
Сеансовый
Управляет процессом передачи в терминах пользовательского доступа. Ограничивает время соединения (сессии) одного узла с другим, контролирует права доступа, синхронизирует начало, конец обмена.
Представительский
Полученные снизу – из сессии – данные необходимо правильно представить конечному пользователю или приложению. Корректная декодировка, декомпрессия данных, если браузер экономил ваш трафик — эти операции выполняются на предпоследнем шаге.
Прикладной
Прикладной или уровень прикладных приложений. Серфинг в браузере, получение и отправка почты, доступ к другим узлам сети посредством удаленного доступа – вершина сетевой модели OSI.
Методы выделения кадров
Чтобы определить, где в потоке бит начинаются и заканчиваются отдельные frame, были придуманы следующие методы:
- Указание количества байт;
- Вставка байтов (byte stuffing) и битов (bit stuffing);
- Средства физического уровня.
Указатель количества байт
Наипростейший способ определить, где начинается и заканчивается кадр — добавлять длину этого кадра в начало кадра. Например, на картинке ниже показано 3 кадра выделенных разным цветом. В начале каждого кадра указано количество байт. Синим цветом — 6, желтым — 8, зеленым — 4.
Этот метод прост в реализации, но есть недостаток, искажение данных при передаче по сети. Например, при передаче первого кадра появилось искажение и вместо длины кадра шесть байт, получатель получил семь байт.
Получатель посчитает, что семь это длина кадра. Далее идет длина следующего кадра. Здесь она два байта, затем длина следующего кадра семь. Если у нас произошла хоть одна ошибка, то будет нарушена последовательность чтений. Следовательно такой метод на практике не годится к применению.
Вставка byte и bit
Чтобы определить начало и конец кадра, в начале и конце каждого кадра используют специальные последовательности байт или бит. Вставка байтов применялась в протоколах BSC компании IBM, в котором отправлялись обычные текстовые символы.
Перед передачей каждого фрейма добавлялись байты DLE STX (start of text), а после окончания передачи фрейма DLE ETX (end of text). Проблема может возникнуть в том, что в данных тоже может встретиться точно такая же последовательность.
Чтобы отличать последовательность, которая встречается в данных от управляющих символов используются Escape последовательности. В протоколе BSC это тоже последовательность символов DLE (data link escape). Если какая-то последовательность управляющих символов встречается в данных перед ними добавляются escape последовательности DLE, чтобы протокол понимал, что в реальности это данные, а не управляющие символы.
Вставка битов применяется в более современных протоколах, таких как HDLC и PPP. Здесь перед началом и концом каждого кадра добавляется последовательность бит состоящая из 01111110. Может возникнуть проблема, если в данных встречаются подряд идущие 6 или более единиц. Чтобы решить эту задачу в данные, после каждых пяти последовательно идущих 1 добавляется 0. Затем, как получатель прочитал 5 последовательно идущих 1 и встретил 0, то он, этот 0 игнорирует.
Средства физического уровня
Другой вид определения начала и конца кадра, это использование средств физического уровня и он применяется в технологии Ethernet. В первом варианте технологии ethernet использовалась преамбула — это последовательность данных, которая передается перед началом каждого кадра. Она состоит из 8 байт. Первые семь байт состоят из чередующихся 0 и 1: 10101010. Последний байт содержит чередующиеся 0 и 1, кроме двух последних бит в котором две единицы. И именно такая последовательность говорит, что начинается новый кадр.
В более старых версиях используется избыточное кодирование, позволяющее определить ошибки, но при этом не все символы являются значащими. В технологии Fast Ethernet применили эту особенность кода и используют символы, которые не применяются для представления данных в качестве сигналов о начале и конце кадра.
Перед отправкой каждого кадра передаются символы J (11000) и K (10001), а после окончания отправки кадра передается символ T (01101).
Надежность на транспортном уровне
Важной особенностью ТУ является то, что он может обеспечить более высокую надежность, чем сеть которая используется для передачи данных. В настоящее время это эффективно на практике, потому что используются надежные каналы связи, ошибки в этих КС происходят редко
Поэтому можно строить сеть ненадежную, которая будет стоить дешево, а ошибки, так как они возникают редко, можно исправлять программно на хостах транспортного уровня.
В модели OSI предусмотрено много различных вариантов обеспечения надежности на транспортном уровне, но на практике, чаще всего используются две возможности.
- Во-первых ТУ может гарантировать доставку данных. Так как сеть у нас не надежная, некоторые пакеты могут потеряться. Чтобы гарантировать доставку ТУ использует подтверждение. Если через определенное время не пришло подтверждение, то тот же самый пакет отправляется снова.
- Во-вторых ТУ может гарантировать порядок следования сообщений. Так как у нас сеть с пакетной коммутацией, разные пакеты могут пойти через разные маршрутизаторы. И может случиться так, что пакет, который был отправлен позже придет к получателю раньше. Чтобы решить эту проблему на ТУ используется нумерация сообщений.