Модель OSI и сетевые протоколы


27

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

  • На каком уровне OSI работает IS-IS?
  • Является ли HTML презентацией или протоколом приложения?
  • Являются ли VPN-туннели уровнем 2 или 3?

Как студент (или специалист в этом отношении) должен понимать связь между моделью OSI и протоколами, с которыми он / она работает?

Ответы:


35

Следует помнить два важных факта о модели OSI:

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

  2. Это не единственная модель. Существуют и другие модели, в частности пакет протоколов TCP / IP (RFC-1122 и RFC-1123), который намного ближе к тому, что используется в настоящее время.

Немного истории: вы, наверное, все слышали о первых днях создания сетей с коммутацией пакетов, включая ARPANET, предшественника Интернета. В дополнение к усилиям Министерства обороны США по созданию сетевых протоколов были также задействованы несколько других групп и компаний. Каждая группа разрабатывала свои собственные протоколы в совершенно новой области коммутации пакетов. IBM и телефонные компании разрабатывали свои собственные стандарты. Во Франции исследователи работали над собственным сетевым проектом под названием Киклады.

Работа над моделью OSI началась в конце 1970-х годов, главным образом как реакция на растущее влияние крупных компаний, таких как IBM, NCR, Burroughs, Honeywell (и другие) и их проприетарных протоколов и аппаратного обеспечения. Идея заключалась в том, чтобы создать открытый стандарт, который обеспечивал бы взаимодействие между различными производителями. Но поскольку модель ИСО была международной по своему охвату, она имела много конкурирующих политических, культурных и технических интересов. Потребовалось более шести лет, чтобы прийти к консенсусу и опубликовать стандарты.

Тем временем также была разработана модель TCP / IP. Это было просто, легко реализовать и, самое главное, это было бесплатно. Вы должны были купить стандартные спецификации OSI, чтобы создать программное обеспечение для него. Все внимание и усилия по развитию тяготеют к TCP / IP. В результате модель OSI так и не была реализована в виде набора протоколов, а TCP / IP стал стандартом для Интернета.

Дело в том, что все протоколы, используемые сегодня, это набор TCP / IP; протоколы маршрутизации, такие как RIP, OSPF и BGP; и протоколы ОС хоста, такие как Windows SMB и Unix RPC, были разработаны без учета модели OSI. Иногда они имеют некоторое сходство с этим, но стандарты OSI никогда не соблюдались при их разработке. Так что глупо пытаться встроить эти протоколы в OSI. Они просто не совсем подходят.

Это не значит, что модель не имеет значения; все еще хорошая идея изучить его, чтобы вы могли понять общие понятия. Концепция уровней OSI настолько вплетена в сетевую терминологию, что мы говорим о уровнях 1, 2 и 3 в повседневной сетевой речи. Определение уровней 1, 2 и 3, если немного щуриться, довольно хорошо согласовано. Только по этой причине это стоит знать.

Наиболее важные вещи, которые нужно понять о модели OSI (или любой другой):

  • Мы можем разделить протоколы на слои
  • Слои обеспечивают инкапсуляцию
  • Слои обеспечивают абстракцию
  • Слои отделяют функции от других

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

Каждая «функция» (в широком смысле) инкапсулирует слой (слои) над ней. Сетевой уровень инкапсулирует уровни над ним. Канальный уровень инкапсулирует сетевой уровень и т. Д.

Слои абстрагируют слои под ним. Вашему веб-браузеру не нужно знать, используете ли вы TCP / IP или что-то еще на сетевом уровне (как если бы было что-то еще). Для вашего браузера нижние уровни просто предоставляют поток данных. То, как этот поток удается показать, скрыто от браузера. TCP / IP не знает (или не заботится), используете ли вы Ethernet, кабельный модем, линию T1 или спутник. Он просто обрабатывает пакеты. Представьте, как трудно было бы разработать приложение, которое должно было бы справиться со всем этим. Уровни абстрагируют нижние уровни, поэтому разработка и эксплуатация программного обеспечения становятся намного проще.

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

Модель TCP / IP - это то, на чем был основан пакет протоколов TCP / IP (удивительно!). Он имеет только четыре уровня, и все, что выше транспорта, является просто «приложением». Его проще понять, и он предотвращает бесконечные вопросы, такие как «Это уровень сеанса или уровень представления?». Но это тоже просто модель, а некоторые вещи не нужны. он также хорошо вписывается в него, например, протоколы туннелирования (GRE, MPLS, IPSec и многие другие).

В конечном счете, модели представляют собой способ представления невидимых абстрактных идей, таких как адреса, пакеты и биты. Пока вы помните об этом, модель OSI или TCP / IP может быть полезна для понимания работы в сети.


1
Я всегда удивлялся, почему мы ссылаемся на модель OSI, когда во всей реальности модель TCP / IP отвечает всем требованиям.
Райан Фоли

5
@RyanFoley, правда во многих случаях. Однако, когда речь идет об устранении неполадок (и особенно об их обучении), лучше иметь отдельные физические уровни и уровни данных для решения проблем на каждом из них в отдельности. Например, полезно знать разницу в устройстве Cisco между интерфейсом, который работает вверх / вверх, тем, который вверх / вниз, и тем, который находится вниз / вниз.
YLearn

«Например, мы можем удалить очень известный протокол уровня 3, IP-версию 4, и заменить его IP-версией 6. Все остальное должно работать точно так же. Для вашего браузера или кабельного модема это не должно иметь значения. " К сожалению, это действительно имеет значение, потому что абстракции негерметичны. Приложения и транспортные протоколы должны знать об адресации, используемой интернет-протоколом.
Питер Грин

Ну вот почему модели только модели.
Рон Магистраль

1
joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions Мы создаем абстракции, чтобы скрыть некрасивые детали базовой вещи, но некоторые детали базовой вещи просачиваются и вызывают проблемы. Одной из таких вещей, которая просачивается прямо на вершину стека, является система адресации.
Питер Грин

2

Здесь есть некоторая путаница. То, что функция не соответствует слою, не означает, что это не так. OSI является гибким и позволяет объектам и подуровням отображать практические реализации на модели. Некоторые функции уровня также могут дублироваться на других уровнях. Также обработка не должна происходить на прикладном уровне. Наконец, OSI была не просто моделью, она была полностью реализована некоторыми производителями. Я работал над проектом DEC. Практичность означает, что только некоторые части OSI используются сегодня.


1

Все протоколы маршрутизации IGP (внутренние шлюзы) работают на уровне 3. Внешний BGP работает на уровне 4, а внутренний - на уровне 3.

Физический уровень - имеет дело с аппаратными сетевыми устройствами, такими как ноутбуки, мобильные телефоны, настольные компьютеры. Уровень 1, как известно, является областью коллизий, PDU уровня 1 (единица данных протокола - биты).

Уровень данных / связи - этот уровень относится к коммутаторам уровня 2, широковещательным доменам, VLANS, STP, VTP. Протокольная единица данных этого уровня называется кадрами.

Сетевой уровень - это когда происходит маршрутизация, большинство протоколов маршрутизации работает на этом уровне. Это также называется IP-уровнем, на котором VLANS взаимодействуют. PDU для этого уровня называется пакетами.

Транспортный уровень - Транспортный уровень имеет дело с портами TCP и UDP, где пакеты с уровней 3 отправляются на их порты назначения. Важно помнить, что TCP является протоколом, ориентированным на установление соединения, в то время как UDP является протоколом, не ориентированным на установление соединения (негарантированная доставка данных). PDU для этого уровня - датаграммы.

Сеансовый уровень - Сеансовый уровень - это место, где пакеты инкапсулированы от декапсуляции с уровня 3. Этот уровень имеет дело с несколькими языками программирования на стороне сервера, где вы можете создавать программные приложения и преобразовывать их в ->

Уровень Презентации. Этот слой относится к кодам на стороне клиента, которые вы видите в своем веб-браузере, или когда вы щелкаете правой кнопкой мыши и просматриваете источник, в основном это коды HTM / CSS / Javascript, которые позволяют вам просматривать ->

Прикладной уровень - это где GUI (графический интерфейс пользователя) переводит коды HTML / CSS с уровня 6 на этот уровень. То, что вы видите в своем веб-браузере, - это графический интерфейс пользователя. Уровень 5,6,7 PDU называется сообщением.

Я надеюсь, что они отвечают на все вопросы, связанные с OSI.

На каком уровне OSI работает IS-IS? - Уровень 3
Является ли HTML презентацией или протоколом приложения? - Презентация
Являются ли VPN-туннели уровнем 2 или 3? -> L2TP - это уровень 2 -> VPN-туннели обычно работают на уровне 3, таком как IPSEC.


1
Это не отвечает ОП; он никогда не спрашивал, что делает каждый слой, он спрашивал, что кто-то должен понимать о базовых концепциях.
Райан Фоли

1
Информативно это здорово, но это сайт проблемы / решения. Ваш ответ будет замечательным, если бы вопрос был «Каковы различные уровни модели OSI и что каждый из них делает?» , Речь идет об основах поддержки модели OSI, а не о модели OSI напрямую. Отличное понимание, но плохой ответ на этот конкретный вопрос.
Райан Фоли

5
Крис, я ценю ваши ответы, и в значительной степени вы правы. Но ISIS работает поверх IP, это делает это уровнем 4? Как насчет BGP? Он работает поверх TCP. Это слой 5? Моя точка зрения заключается в том, что, хотя вы можете втиснуть протоколы в слои, они на самом деле не подходят. Если вы посмотрите на спецификацию уровня представления OSI, я не думаю, что HTML вполне подойдет. Даже OSI признал, что уровень 2 был слишком широким, и им пришлось разделить его на два подуровня.
Рон Трунк

2
Модель OSI - это просто теоретическая модель. Даже если протокол <имя здесь> использует пакеты (L2 | L3), он также является частью L7, поскольку он является приложением и должен вычислять таблицу маршрутизации и, возможно, промежуточный уровень. Не все черное и белое.
Мулаз

3
@ Рон, ISIS не является родным протоколом IP. OSPF есть. (Просто чтобы добавить больше путаницы. :-))
Джон Дженсен

1

HTTP (не HTML) имеет как презентационный, так и прикладной уровень. VPN-туннели добавляют слои наложения к существующему стеку: это может быть либо уровень 2, либо уровень 3, в зависимости от их вида. Тогда вы сможете увидеть этот добавленный слой (и) дважды в пакете.


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

0

Одной из немногих вещей, которые на самом деле относятся к модели OSI, являются сертификаты X.509 и большие куски LDAP, пришедшие из X.500. Другая вещь - X.400 для обмена сообщениями, MS Exchange имел это по крайней мере в 5.5, не уверенный, включали ли это более поздние версии.

Итак, OSI - это модель, в сетевой области она проиграла гонку против TCP / IP, и я действительно не понимаю, почему это все еще преподается студентам. Попытка поместить вещи как MPLS в эту модель не имеет никакого смысла.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.