Транспортный уровень в osi и tcp подробный разбор с примерами
Содержание:
Уровни
Представим себе, что у нас есть два компьютера. Один принадлежит Василию, а второй Диме. Они подключены к одной сети. Василий отправил письмо напрямую к Диме. Теперь встает вопрос – а как теперь это письмо передать по сетевому кабелю? Как мы можем вспомнить компьютер может понимать только одну информацию – нулей (0) и единиц (1).
Также и по кабелю мы не можем передать информацию в обычном буквенном виде. И то если письмо содержит только буквы. Тогда встает вопрос о том, чтобы как-то перевести данное письмо на второе устройство. Именно для этих целей и нужна эталонная модель OSI с 7 уровнями.
При отправке письма информация проходит 7 стадий от верхнего к нижнему уровню, чтобы перевести его в обычные биты. Далее эти биты передаются по кабелю к компьютеру Димы. И уже его устройство делает обратный процесс – перевод битов в понятное для человека письмо.
При этом чаще всего используются протоколы TCP/IP. Когда вы будете читать любую информацию по данной теме, смотреть таблицы, то помните, что сейчас используются именно протоколы модели TCP/IP. Те же протоколы, которые описаны в таблицах, есть, но они уже давно устарели и являются просто ознакомительной информацией.
Давайте взглянем на все уровни OSI 7, и вам станет немного понятнее, о чем я говорю:
- Уровень 7 – Прикладной – application.
- Уровень 6 – Представительский – presentation.
- Уровень 5 – Сеансовый – session.
- Уровень 4 – Транспортный – transport.
- Уровень 3 – Сетевой –
- Уровень 2 – Канальный – data link.
- Уровень 1 – Физический – physical layer.
Нумерация идет сверху вниз от высокого до низшего уровня: от седьмого прикладного уровня до первого – физического.
Каждый уровень выполняет определенные цели для перевода информации из одного вида в другой. Также вы можете видеть, что информация передается в разном виде. Почти у каждого уровня есть свой PDU (protocol data unit) или единица измерения информационных данных. Например, на физическом (самом низком уровне) – это обычные биты или последовательность нулей и единиц, которые уже можно передавать по кабелю.
Почти каждый сетевой уровень оперирует своими протоколами данных. Можно посмотреть примерную последовательность перехода информации от одного вида PDU в другой:
- С седьмого по пятый уровень – идет операция с данными.
- Далее на транспортном уровне данные переводятся в сегменты или дейтаграммы.
- На сетевом уровне они переводятся в пакеты.
- Далее идет перевод в кадры или фреймы.
- Ну и в самом конце вся информация переводится в обычные биты.
Также, исходя из таблицы, вы можете заметить два названия:
- Media Layers (нижние уровни) – чаще всего уже используются в коммутаторах, маршрутизаторах, хабах – где идет задача передачи информации по кабелю.
- Host Layers (верхние уровни) – используются уже на самих устройствах: телефонах, планшетах, компьютерах, ноутбуках и т.д.
Это примерное разделение всех уровней на две градации. Самые интересные из уровней – это как раз класс «Media Layers», так как ими чаще всего и оперируют сетевые инженеры. И они же за них отвечают головой.
Что такое модель OSI?
Модель OSI (Open Systems Interconnection model) — это сетевая модель стека сетевых протоколов OSI/ISO. С помощью данной модели различные сетевые устройства могут взаимодействовать друг с другом. Модель определяет различные уровни взаимодействия систем. Каждый уровень выполняет определённые функции при таком взаимодействии.
В данной статье мы рассмотрим назначение уровней эталонной модели osi, с подробным описанием каждого из семи уровней модели.
Процесс организации принципа сетевого взаимодействия, в компьютерных сетях, довольно-таки сложная и непростая задача, поэтому для осуществления этой задачи решили использовать хорошо известный и универсальный подход — декомпозиция.
Декомпозиция — это научный метод, использующий разбиение одной сложной задачи на несколько более простых задач — серий (модулей), связанных между собой.
Многоуровневый подход:
- все модулей дробятся на отдельные группы и сортируются по уровням, тем самым создавая иерархию;
- модули одного уровня для осуществления выполнения своих задач посылает запросы только к модулям непосредственно примыкающего нижележащего уровня;
- включается работу принцип инкапсуляции – уровень предоставляет сервис, пряча от других уровней детали его реализации.
На Международную Организацию по Стандартам (International Standards Organization, ISO, созданная в 1946 году) возложили задачу создания универсальной модели, которая четко разграничит и определит различные уровни взаимодействия систем, с поименованными уровнями и с наделением каждого уровня своей конкретной задачи. Эту модель назвали моделью взаимодействия открытых систем (Open System Interconnection, OSI) или моделью ISO/OSI .
Эталонная Модель Взаимосвязи Открытых Систем (семиуровневая модель osi) введена в 1977 г.
После утверждения данной модели, проблема взаимодействия была разделена (декомпозирована) на семь частных проблем, каждая из которых может быть решена независимо от других.
Модель TCP IP
Модель TCP/IP немного отличается от модели OSI, если говорить конкретней в данной модели объединили некоторые уровни модели OSI и их здесь всего 4:
- Прикладной;
- Транспортный;
- Сетевой;
- Канальный.
На картинке представлено отличие двух моделей, а также еще раз показано на каких уровнях работают всем известные протоколы.
Говорить о сетевой модели OSI и конкретно про взаимодействие компьютеров в сети можно долго и в рамках одной статьи это не уместить, да и будет немного не понятно, поэтому здесь я попытался представить как бы основу этой модели и описание всех уровней. Главное понимать, что все это действительно так и файл, который Вы отправили по сети проходит просто «огромный» путь, перед тем как попасть к конечному пользователю, но это происходит на столько быстро, что Вы этого не замечаете, во многом благодаря развитым сетевым технологиям.
Надеюсь все это, Вам поможет понимать взаимодействие сетей.
Нравится3Не нравится
Масштабируемость Ethernet
Оказывается, Ethernet и другие технологии канального уровня не подходят для создания крупной сети, которая может охватить весь мир из-за того, что у них есть существенные ограничения по масштабируемости.
Давайте рассмотрим существующие ограничения. Коммутаторы изернет для передачи кадра пользуются таблицами коммутации. И эта таблица должна содержать все MAК-адреса компьютеров в сети. Если для локальной сети это можно сделать, то для глобальной сети, в которой несколько миллиардов устройств, никакому коммутатору не хватит памяти, чтобы хранить подобную таблицу. И искать нужный порт в такой огромной таблице будут очень долго.
Следующая проблема в том, что если коммутатор не понимает куда отправлять кадр, он передает его на все порты, надеясь, что где-то там находиться получатель. Такой подход тоже работает в локальных сетях, но в глобальных сетях не работает. Если в интернет мы не знаем куда отправить пакет и будем пересылать всем компьютерам в интернете, то через некоторое время, мы засорим сеть такими мусорными пакетами и это приведет к отказу в обслуживании.
Другая проблема это отсутствие дублирующих путей между коммутаторами. В Ethernet у нас всегда должно быть одно соединение, чтобы не образовалось кольца, иначе сеть будет перегружена широковещательным штормом. В Ethernet есть технология STP, которая позволяет создавать несколько связей между коммутаторами, но в каждый момент времени активно всего одно соединение.
Рассмотрим пример, в нашей сети есть несколько коммутаторов. Они соединены между собой и есть такое соединение, которое приводит к образованию кольца.
В сети запускается протокол STP, коммутаторы выбирают корневой. Рассчитывают расстояние до корневого и отключают одно из соединений.
Если коммутаторы используются для построения локальной сети, где расстояние между коммутаторами небольшое, то такой подход работает отлично. Но, предположим, что мы строим глобальную сеть и если мы хотим отправить данные из Екб в Челябинск, который является соседним городом и расположен близко, то на уровне Ethernet мы это сделать не сможем, потому что прямое соединение отключено протоколом STP.
Необходимо передавать данные через другие города, расстояние гораздо больше, поэтому скорость передачи будет существенно ниже. От этого хотелось бы избавиться.
Масштабируемость на сетевом уровне
Что делает сетевой уровень, чтобы обеспечить масштабирование и построить такую сеть, которая способна объединить все компьютеры во всем мире, например сеть интернет.
- Первое это агрегация адресов. Сетевой уровень работает не с отдельными адресами, а с группами адресов, которые объединяются и такие блоки адресов называются сетью.
- Пакеты, для которых путь доставки неизвестен на сетевом уровне отбрасываются. Это обеспечивает защиту составной сети от циркуляции мусорных пакетов.
- И возможность наличия нескольких активных путей в сети. Это является одной из причин создания сетей с пакетной коммутацией. В нашей сети всегда есть некое количество активных путей между отправителем и получателем. И данные могут пройти по любому из этих путей. В том числе, если один путь выйдет из строя, то другой путь останется доступным. Но если у нас есть несколько путей, то на сетевом уровне появляется задача маршрутизации. То есть, на каждом этапе мы должны определять, по какому пути мы отправим ту или иную порцию данных.
Сравнение с моделью TCP / IP
Несмотря на то, что в модели OSI используется другая концепция слоев, эти уровни часто сравнивают со схемой слоев OSI следующим образом:
- Уровень приложений Интернета отображается на уровень приложений OSI, уровень представления и большую часть уровня сеанса.
- TCP / IP , транспортный уровень отображает к изящным тесной зависимости от уровня сеанса OSI, а также транспортного уровня OSI.
- Интернет — слой выполняет функцию , как те , в подмножестве сетевого уровня OSI.
- В канальном уровне соответствует канальному OSI и могут включать в себя то же функцию , как на физическом уровень, а также некоторые протоколы сетевого уровня в ЕМ.
Эти сравнения основаны на исходной семиуровневой модели протокола, определенной в ISO 7498, а не на уточнениях внутренней организации сетевого уровня.
Набор протоколов OSI, который был указан как часть проекта OSI, многими считался слишком сложным, неэффективным и в значительной степени нереализуемым. Применяя подход к сети, основанный на «обновлении погрузчика», он предусматривал устранение всех существующих сетевых протоколов и их замену на всех уровнях стека. Это затрудняло внедрение и встречало сопротивление со стороны многих поставщиков и пользователей, вкладывающих значительные средства в другие сетевые технологии. Кроме того, протоколы включали так много дополнительных функций, что реализации многих поставщиков не могли взаимодействовать.
Хотя модель OSI все еще часто упоминается, набор протоколов Интернета стал стандартом для сетей. Прагматичный подход TCP / IP к компьютерным сетям и независимой реализации упрощенных протоколов сделал его практической методологией. Некоторые протоколы и спецификации в стеке OSI остаются в использовании, одним из примеров является IS-IS , который был указан для OSI как ISO / IEC 10589: 2002 и адаптирован для использования в Интернете с TCP / IP как RFC .
Принцип работы
Для удобства представления работы 7-ми уровней модели OSI давайте посмотрим на картинку ниже.
У нас есть два компьютера, которые на определенном уровне могут взаимодействовать только по протоколам. Можно сказать – это определенные вид данных, который понятен компьютерам на выделенном уровне. Например, на физическом уровне модели OSI используются протоколы, а данные передаются битами. На том же канальном уровне модели OSI информация передается кадрами используя свои протоколы.
Но для перевода информации от одного уровня к другому используются специальные службы
Также обратите внимание, что на транспортном уровне данные впервые разбиваются на сегменты. Каждый сегмент имеет «нумерованную» метку
Данная метка нужна, чтобы второе принимающее устройство поняло – в каком порядке склеивать эти сегменты, чтобы получить нужные данные. Далее на других уровнях идет разбиение на пакеты, кадры и в самом конце на биты. Пакеты, кадры также имеют свои очередные метки.
- Первые 3 верхних уровня: прикладной, представительский и сеансовый – оперируют данными почти в чистом виде. Поэтому про них говорить нет смысла. Но я напишу о них пару строк в самом конце статьи.
- Далее на транспортном уровне OSI с помощью служб данные переходят в Сегменты (Дейтаграммы). Посмотрите внимательно как это происходит. Идет разбиение на несколько сегментов. Каждому сегменту приписывается заголовок, которые нужен для того, чтобы знать в каком порядке нужно соединять данные сегменты в будущем. Можно сказать, что сегмент – это фрагмент данных с заголовком.
- На этом этапе из транспортного уровня сегменты переводятся в пакеты. Это происходит достаточно просто – каждому сегменты, приписывается свой заголовок пакета. Наверное, вы уже заметили, что наша информация растет в размерах. Как раз из-за дописания заголовков. В итоге пакеты имеют больший размер чем сегменты.
- Далее информация из пакетов переходит на нижележащий канальный уровень. И так давайте перечислим все то, что у нас тут есть:
- Сегменты – данные с заголовком сегмента.
- Заголовок пакета, который расположен выше сегмента.
- Заголовок кадра, который приписывается пакету.
- Подсчитывается контрольная сумма и приписывается каждой доле информации. Она необходима для того, чтобы принимающая информация поняла, что получила нужную информацию. В общем для проверки. Если контрольная сумма будет неправильной, то принимающий компьютер может запросить повторную отправку данных.
- Ну и в самом конце все кадры будут переведены в биты и отправлены по кабелю.
Весь этот процесс запаковки данных называется инкапсуляцией данных. Когда информация дойдет до принимающего компьютера начнется обратный процесс – декапсуляции данных, которая проходит по той же схеме, только в обратно порядке.
Общая характеристика модели OSI
https://youtube.com/watch?v=DcV3HY6lFP4%3F
В связи с затянувшейся разработкой протоколов OSI, в настоящее время основным используемым стеком протоколов является TCP/IP, разработанный ещё до принятия модели OSI и вне связи с ней.
К концу 70-х годов в мире уже существовало большое количество фирменных стеков коммуникационных протоколов, среди которых можно назвать, например, такие популярные стеки, как DECnet, TCP/IP и SNA. Подобное разнообразие средств межсетевого взаимодействия вывело на первый план проблему несовместимости устройств, использующих разные протоколы. Одним из путей разрешения этой проблемы в то время виделся всеобщий переход на единый, общий для всех систем стек протоколов, созданный с учетом недостатков уже существующих стеков. Такой академический подход к созданию нового стека начался с разработки модели OSI и занял семь лет (с 1977 по 1984 год). Назначение модели OSI состоит в обобщенном представлении средств сетевого взаимодействия. Она разрабатывалась в качестве своего рода универсального языка сетевых специалистов, именно поэтому её называют справочной моделью.В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представления, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень имеет дело с совершенно определенным аспектом взаимодействия сетевых устройств.
Приложения могут реализовывать собственные протоколы взаимодействия, используя для этих целей многоуровневую совокупность системных средств. Именно для этого в распоряжение программистов предоставляется прикладной программный интерфейс (Application Program Interface, API). В соответствии с идеальной схемой модели OSI приложение может обращаться с запросами только к самому верхнему уровню — прикладному, однако на практике многие стеки коммуникационных протоколов предоставляют возможность программистам напрямую обращаться к сервисам, или службам, расположенных ниже уровней. Например, некоторые СУБД имеют встроенные средства удаленного доступа к файлам. В этом случае приложение, выполняя доступ к удаленным ресурсам, не использует системную файловую службу; оно обходит верхние уровни модели OSI и обращается непосредственно к ответственным за транспортировку сообщений по сети системным средствам, которые располагаются на нижних уровнях модели OSI. Итак, пусть приложение узла А хочет взаимодействовать с приложением узла В. Для этого приложение А обращается с запросом к прикладному уровню, например к файловой службе. На основании этого запроса программное обеспечение прикладного уровня формирует сообщение стандартного формата. Но для того, чтобы доставить эту информацию по назначению, предстоит решить еще много задач, ответственность за которые несут нижележащие уровни. После формирования сообщения прикладной уровень направляет его вниз по стеку уровню представления. Протокол уровня представления на основании информации, полученной из заголовка сообщения прикладного уровня, выполняет требуемые действия и добавляет к сообщению собственную служебную информацию — заголовок уровня представления, в котором содержатся указания для протокола уровня представления машины-адресата. Полученное в результате сообщение передается вниз сеансовому уровню, который, в свою очередь, добавляет свой заголовок и т. д. (Некоторые реализации протоколов помещают служебную информацию не только в начале сообщения в виде заголовка, но и в конце в виде так называемого концевика.) Наконец, сообщение достигает нижнего, физического, уровня, который, собственно, и передает его по линиям связи машине-адресату. К этому моменту сообщение «обрастает» заголовками всех уровней.
Физический уровень помещает сообщение на физический выходной интерфейс компьютера 1, и оно начинает своё «путешествие» по сети (до этого момента сообщение передавалось от одного уровню другому в пределах компьютера 1). Когда сообщение по сети поступает на входной интерфейс компьютера 2, оно принимается его физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатывает заголовок своего уровня, выполняя соответствующие функции, а затем удаляет этот заголовок и передает сообщение вышележащему уровню. Как видно из описания, протокольные сущности одного уровня не общаются между собой непосредственно, в этом общении всегда участвуют посредники — средства протоколов нижележащих уровней. И только физические уровни различных узлов взаимодействуют непосредственно.
Эталонная модель OSI
Начальная стадия развития сетей LAN, MAN и WAN имела во многих отношениях хаотический характер. В начале 80-х годов XX века резко увеличились размеры сетей и их количество. По мере того как компании осознавали, что, используя сетевые технологии, они могут сэкономить значительные средства и повысить эффективность своей работы, они создавали новые сети и расширяли уже существовавшие с той же быстротой, с какой появлялись новые сетевые технологии и новое оборудование.
Однако к середине 80-х годов эти же компании стали испытывать трудности с расширением уже существующих сетей. Сетям, использовавшим различные спецификации и реализованным различными способами, стало все труднее осуществлять связь друг с другом. Компании, оказавшиеся в такой ситуации, первыми осознали, что необходимо отходить от использования фирменных (proprietary) сетевых систем.
Для решения проблемы несовместимости сетей и их неспособности осуществлять связь друг с другом международная организация по стандартизации (International Organization for Standardization — ISO) разработала различные сетевые схемы, такие, как DECnet, системная сетевая архитектура (Systems Network Architecture — SNA) и стек протоколов TCP/IP. Целью создания таких схем была разработка некоторого общего для всех пользователей набора правил работы сетей. В результате этих исследований организация ISO разработала сетевую модель, которая смогла помочь производителям оборудования создавать сети, совместимые друг с другом и успешно взаимодействовавшие. Процесс подразделения сложной задачи сетевой коммуникации на отдельные более мелкие можно сравнить с процессом сборки автомобиля.
Процесс проектирования, изготовления деталей и сборки автомобиля, если его рассматривать как единое целое, является весьма сложным. Маловероятно, что нашелся бы специалист, который смог бы решить все требуемые задачи при сборке автомобиля: собрать машину из случайным образом подобранных деталей или, скажем,
при изготовлении конечного продукта непосредственно из железной руды. По этой причине проектированием автомобиля занимаются инженеры»проектировщики, инженеры-литейщики проектируют формы для литья деталей, а сборочные инженеры и техники занимаются сборкой узлов и автомобиля из готовых деталей.
Эталонная модель OSI (OSI reference model), обнародованная в 1984 году, была описательной схемой, созданной организацией ISO. Эта эталонная модель предоставила производителям оборудования набор стандартов, которые обеспечили большую совместимость и более эффективное взаимодействие различных сетевых технологий и оборудования, производимого многочисленными компаниями во всем мире.
Эталонная модель OSI является первичной моделью, используемой в качестве
основы для сетевых коммуникаций.
Хотя существуют и другие модели, большинство производителей оборудования и программного обеспечения ориентируются на эталонную модель OSI, особенно когда желают обучить пользователей работе с их продуктами. Эталонная модель OSI в настоящее время считается наилучшим доступным средством обучения пользователей принципам работы сетей и механизмам отправки и получения данных по сети.
Эталонная модель OSI определяет сетевые функции, выполняемые каждым ее уровнем
Что еще более важно, она является базой для понимания того, как информация передается по сети. Кроме того, модель OSI описывает, каким образом информация или пакеты данных перемещается от программ»приложений (таких, как электронные таблицы или текстовые процессоры) по сетевой передающей среде (такой, как провода) к другим программам»приложениям, работающим на другом компьютере этой сети, даже если отправитель и получатель используют разные виды передающих сред
Модель OSI и реальные протоколы
Семиуровневая модель OSI является теоретической, и содержит ряд недоработок. Были попытки строить сети в точном соответствии с моделью OSI, но созданные таким образом сети были дорогими, ненадёжными и неудобными в эксплуатации. Реальные сетевые протоколы, используемые в существующих сетях, вынуждены отклоняться от неё, обеспечивая непредусмотренные возможности, поэтому привязка некоторых из них к уровням OSI является несколько условной: некоторые протоколы занимают несколько уровней модели OSI, функции обеспечения надёжности реализованы на нескольких уровнях модели OSI.
Основная недоработка OSI — непродуманный транспортный уровень. На нём OSI позволяет обмен данными между приложениями (вводя понятие порта — идентификатора приложения), однако, возможность обмена простыми датаграммами (по типу UDP) в OSI не предусмотрена — транспортный уровень должен образовывать соединения, обеспечивать доставку, управлять потоком и т. п. (по типу TCP). Реальные же протоколы реализуют такую возможность.
Семейство TCP/IP
Семейство TCP/IP имеет три транспортных протокола: TCP, полностью соответствующий OSI, обеспечивающий проверку получения данных, UDP, отвечающий транспортному уровню только наличием порта, обеспечивающий обмен датаграммами между приложениями, не гарантирующий получения данных и ICMP, используемый для внутренних нужд обеспечения работы; остальные также не являются транспортными протоколами.)
Семейство IPX/SPX
В семействе IPX/SPX порты (называемые «сокеты» или «гнёзда») появляются в протоколе сетевого уровня IPX, обеспечивая обмен датаграммами между приложениями (операционная система резервирует часть сокетов для себя). Протокол SPX, в свою очередь, дополняет IPX всеми остальными возможностями транспортного уровня в полном соответствии с OSI.
В качестве адреса хоста IPX использует идентификатор, образованный из четырёхбайтного номера сети (назначаемого маршрутизаторами) и MAC-адреса сетевого адаптера.
Межуровневые функции
Межуровневые функции — это сервисы, которые не привязаны к данному уровню, но могут влиять на более чем один уровень. Некоторые ортогональные аспекты, такие как управление и безопасность , охватывают все уровни (см. Рекомендацию ITU-T X.800). Эти услуги направлены на улучшение триады ЦРУ — конфиденциальность , целостность и доступность — передаваемых данных. На практике межуровневые функции являются нормой, поскольку доступность услуги связи определяется взаимодействием между сетевым дизайном и протоколами управления сетью .
Конкретные примеры межуровневых функций включают следующее:
Служба безопасности (электросвязь), как определено в рекомендации ITU-T X.800.
Функции управления, т. Е. Функции, которые позволяют настраивать, создавать экземпляры, отслеживать, завершать обмен данными между двумя или более объектами: существует специальный протокол уровня приложений, общий протокол информации управления (CMIP) и соответствующая ему служба, служба общей информации управления (CMIS ), они должны взаимодействовать с каждым слоем, чтобы иметь дело со своими экземплярами.
Многопротокольная коммутация по меткам (MPLS), ATM и X.25 — это протоколы 3a. OSI подразделяет сетевой уровень на три подуровня: 3a) доступ к подсети, 3b) зависимая от подсети конвергенция и 3c) независимая от подсети конвергенция. Он был разработан для предоставления унифицированной службы передачи данных как для клиентов с коммутацией каналов, так и для клиентов с коммутацией пакетов, которые обеспечивают модель обслуживания на основе дейтаграмм . Его можно использовать для передачи множества различных видов трафика, включая IP-пакеты, а также собственные кадры ATM, SONET и Ethernet
Иногда можно увидеть ссылку на слой 2.5.
Перекрестное планирование MAC и PHY важно в беспроводных сетях из-за изменяющегося во времени характера беспроводных каналов. Путем планирования передачи пакетов только в благоприятных условиях канала, что требует, чтобы MAC-уровень получал информацию о состоянии канала с PHY-уровня, пропускная способность сети может быть значительно улучшена, и можно избежать потерь энергии.