Для чего нужен транспортный уровень
Назначение Транспортного Уровня
Транспортный уровень обеспечивает сегментацию данных и контроль, необходимый для пересборки получаемых в процессе сегментации фрагментов в различные коммуникационные потоки. Его главные обязанности для достижения этого включают:
Отслеживание Отдельных Диалогов
Любой хост может иметь множество приложений, которые осуществляют коммуникацию через сеть. Каждое из этих приложений будет общаться с одним или более приложениями на удаленных хостах. Обязанностью Транспортного уровня является поддержка нескольких коммуникационных потоков между этими приложениями.
Сегментация Данных
Когда каждое приложение создает поток данных, который необходимо послать удаленному приложению, эти данные должны быть подготовлены в виде управляемых фрагментов для отправки через сетевое соединение. Протоколы Транспортного уровня описывают службы, которые сегментируют эти данные из Прикладного уровня. Это включает инкапсуляцию, требуемую для каждого фрагмента данных. Каждый кусочек данных приложения требует наличия заголовков, которые должны добавляться на Транспортном уровне, чтобы идентифицировать, к какой коммуникации он принадлежит.
Пересборка Сегментов
На получающем хосте каждый фрагмент данных может быть направлен соответствующему приложению. Дополнительно, эти отдельные кусочки данных должны быть реконструированы в завершенный поток данных, который будет иметь смысл для Прикладного уровня. Протоколы Транспортного уровня описывают, как информация заголовков Транспортного уровня используется для пересборки кусков данных в потоки, которые будут переданы Прикладному уровню.
Идентификация Приложений
Для того чтобы передать потоки данных правильным приложениям, Транспортный уровень должен идентифицировать приложения назначения. Чтобы добиться этого, Транспортный уровень назначает приложению идентификатор. Протоколы TCP/IP называют этот идентификатор номером порта. Каждый программный процесс, которому необходим доступ к сети, имеет номер порта, уникальный для данного хоста. Этот номер порта используется в заголовке Транспортного уровня, чтобы идентифицировать, с каким приложением связан этот фрагмент данных.
Транспортный уровень является связью между Прикладным уровнем и нижележащим уровнем, ответственным за сетевую передачу. Этот уровень принимает данные от различных диалогов и передает их вниз к низшим уровням в виде управляемых кусков, которые могут быть в итоге мультиплексированы по сетевому соединению.
Приложениям нет необходимости знать все детали работы сети, которую они используют. Приложения генерируют данные, которые посылаются от одного приложения другому, не заботясь о типе хоста назначения, типе сетевого соединения, через которое должны быть переданы данные, о маршруте, по которому эти данные пойдут, о заторах связи или о размере сети.
С другой стороны, нижележащие уровни не знают о том, что существует несколько приложений, передающих данные по сети. В их обязанность входит доставка данных соответствующему устройтву. Транспортный уровень затем сортирует эти кусочки данных прежде, чем доставить их нужному приложению.
Требования Данных Различаются
Поскольку различные приложения имеют различные требования, существует несколько протоколов Транспортного уровня. Для некоторых приложений сегменты должны прибывать в определенном порядке для успешной обработки. А в некоторых данные могут быть получены в произвольном порядке, чтобы их можно было использовать. В других ситуациях приложение может пережить некоторую потерю информации во время передачи через сеть.
В современных конвергированных (объединенных) сетях приложения с чрезвычайно отличающимися транспортными требованиями могут осуществлять коммуникацию по одной и той же сети. Различные протоколы Транспортного уровня имеют разные правила, позволяющие устройствам обрабатывать эти многообразные требования данных.
Некоторые протоколы предоставляют только базовые функции для эффективной доставки фрагментов данных между соответствующими приложениями. Эти типы протоколов полезны для приложений, чьи данные чувствительны к задержкам.
Другие протоколы Транспортного уровня описывают процессы, которые обеспечивают дополнительные возможности, такие как гарантированная доставка между приложениями. Тогда как эти дополнительные функции обеспечивают более надежную коммуникацию на Транспортном уровне между приложениями, они имеют дополнительные накладные расходы и предъявляют более высокие требования к сети.
Транспортный уровень в OSI и TCP подробный разбор с примерами
Транспортный уровень это 4 уровень в модели взаимодействия открытых систем и 3 уровень в модели TCP/IP.
На канальном уровне мы научились передавать данные между компьютерами, либо по проводам, либо без проводов. На сетевом уровне узнали как строятся составные сети на основе разных технологий канального уровня.
Есть задача, на компьютер который подключен к составной сети приходит пакет. На компьютере работает много сетевых приложений, это может быть электронная почта, скайп, браузер и какие-нибудь другие приложения. На необходимо понять, какому приложению нужно отправить этот пакет. Взаимодействие сетевых приложений и занимается транспортный уровень.
Задачи транспортного уровня (ТУ)
Задача транспортного уровня это передача данных между процессами на разных хостах. На транспортном уровне необходимо обеспечить адресацию. Нам нужно знать для какого процесса назначен тот или иной пакет. Важной задачей ТУ является обеспечение надежности передачи данных. ТУ может предоставлять надежность более высокую, чем надежность сети которая используется для передачи данных. С другой стороны ТУ может и не предоставлять дополнительный уровень надежности, все зависит от требований конкретного приложения.
Модель OSI
Полностью модель взаимодействия открытых систем выглядит так, как показано на рисунке ниже.
Отдельно выделяются хосты, это устройства, где работают полезные пользовательские программы. И сетевое оборудование, такое как маршрутизаторы, коммутаторы и другие сетевые устройства. На сетевом оборудовании есть только 3 уровня: физический, канальный и сетевой. Уровни начиная с транспортного работают только на хостах.
Важной особенностью транспортного уровня является прямое взаимодействие с транспортным уровнем на другом компьютере.
На всех остальных уровнях взаимодействие идет, по звеньям цепи, данные передаются от одного сетевого устройства к другому и так пока не дойдут до нужного хоста.
Транспортный уровень обеспечивает сквозное соединение. Между двумя взаимодействующими хостами может находиться большое количество сетевых устройств, но они не влияют на работу транспортного уровня, поэтому ТУ называется сетенезависимым. Он позволяет скрыть от разработчиков приложений детали сетевого взаимодействия.
Адресации. Порты
Для адресации на транспортном уровне используются порты. Это просто число от 1 до 65 535. Номера у процессов на одном хосте не должны повторяться, иначе мы не сможем понять к какому конкретно процессу отправить пришедший пакет.
Записываются порты, следующим образом 192.168.1.3 :80. Выделенные жирным это IP-адрес, а 80 — это порт. Чтобы в интернете подключиться к какому-нибудь сервису и к службе необходимо указать ip адрес и соответствующий порт.
Типы портов
Если мы хотим подключиться к какому-нибудь сервису в интернете нам нужно знать не только ip адрес, но и порт. Поэтому договорились, что популярные сервисы будут работать на одних и тех же портах. Эти порты называются хорошо или широко известные порты 1-1024.
Ограничение, запускать сервисы работающие на хорошо известных портам могут только пользователи с правами администратора.
Если вы разрабатываете свой сервис, и хотите, чтобы пользователи знали на каком порту он работает, вы можете зарегистрировать этот порт в организации IANA и выбрать себе порт из диапазона зарегистрированные. Но нужно смотреть, чтобы этот порт не был зарегистрирован никаким другим разработчиком приложения.
Использование, как хорошо известных портов, так и зарегистрированных это просто договоренность. Например Web сервер может работать не только на 80 порту, но и на любом другом. Часто используется support номер 88 или 8080. При этом, когда вы подключаетесь к такому веб-серверу Вы должны указать порт на котором он работает.
Динамические порты назначаются операционной системой клиентом. Клиенту, точно также, как и серверу необходим не только ip адрес, но и порт. В случае с клиентом номер порта не имеет принципиального значения, так как клиент отправляет запрос серверу и сервер в запросе увидит, как ip адрес клиента, так и его порт. Поэтому, операционная система назначает клиентам порты автоматически из диапазона динамических портов.
IP-адреса и порты
Рассмотрим пример сетевого взаимодействия с использованием ip адресов и портов. Есть сервер на котором работает web сервер на порту №80. И есть клиент, который хочет подключиться к этому веб серверу.
Клиент открывает браузер, операционная система автоматически назначает ему порт 50298. Браузер выполняет соединение с веб сервером, запрашивает веб страницу. Web сервер отправляет ему эту страницу.
Предположим, что дальше клиент решил открыть еще один браузер и зайти на тот же самый сервер, на ту же самую веб-страницу. Операционная система автоматически назначила браузеру порт 50302. Браузер соединяется с веб-сервером, Web сервер видит в запросе не только ip клиента, но и его порт. Поэтому, когда приходит ответ он отправляется именно в тот браузер, из которого был направлен запрос, а не в другой браузер. Благодаря использованию не только ip адресов, но и портов, никакой путаницы не будет.
Надежность на транспортном уровне
Важной особенностью ТУ является то, что он может обеспечить более высокую надежность, чем сеть которая используется для передачи данных. В настоящее время это эффективно на практике, потому что используются надежные каналы связи, ошибки в этих КС происходят редко. Поэтому можно строить сеть ненадежную, которая будет стоить дешево, а ошибки, так как они возникают редко, можно исправлять программно на хостах транспортного уровня.
В модели OSI предусмотрено много различных вариантов обеспечения надежности на транспортном уровне, но на практике, чаще всего используются две возможности.
Протоколы транспортного уровня TCP/IP
В стеке протоколов tcp на ТУ используется два протокола TCP и UDP. Tcp это протокол, который обеспечивает надежность доставки. Он обеспечивает гарантию доставки и гарантию порядка следования сообщений. Протокол udp не гарантирует доставку данных, но зато работает быстрее, чем протокол tcp.
Заключение
Для взаимодействия с ТУ используется интерфейс сокетов. Многие сетевые приложения взаимодействуют с ТУ. Хотя сейчас все более популярными становятся разработка сетевых приложений, которые взаимодействуют не с транспортным, а с прикладным уровнем.
Сетевая Модель OSI — разберем каждый из 7 уровней
В данной статье, мы разберемся, что такое сетевая модель OSI, из каких уровней она состоит, и какие функции выполняет. Итак, предмет разговора является некой моделью взаимодействия эталонов, определяющих последовательность обмена данных, и программ.
Аббревиатура OSI Open Systems Interconnection, означает модель взаимодействия открытых систем. Для решения задачи совместимости разнообразных систем, организация по стандартизации выпустила в 1983 г. эталон модели OSI. Она описывает структуру открытых систем, их требования, и их взаимодействие.
Open system – это система, составлена согласно открытым спецификациям, которые доступны каждому, а также соответствуют определенным стандартам. Например, ОС Windows считается open system, потому что она создана на основе открытых спецификаций, которые описывают деятельность интернета, но начальные коды системы закрыты.
Достоинство в том, что есть возможность построить сеть из устройств от разных изготовителей, если нужно, заменить ее отдельные компоненты. Можно без проблем, объединить несколько сетей в одну целую.
Согласно рассматриваемой нами модели, необходимо, чтобы вычислительные сети состояли из семи уровней. Вследствие того, что модель не описывает протоколы, определяемые отдельными стандартами, она не является сетевой архитектурой.
К сожалению, с практической точки зрения, модель взаимодействия открытых систем не применяется. Её особенность заключается в овладении теоретическими вопросами сетевого взаимодействия. Именно поэтому в качестве простого языка для описания построения разных видов сети используется эта модель.
Уровни модели OSI
Базовая структура представляет собой систему, состоящую из 7 уровней. Возникает вопрос, за что отвечают семь этапов и зачем модели, такое количество уровней? Все они отвечают за определенную ступень процесса отправки сетевого сообщения, а также содержат в себе определенную смысловую нагрузку. Шаги выполняются, сепаративно друг от друга и не требует повышенного контроля, со стороны пользователя. Не правда ли, удобно?
Нижние ступени системы с первой по третью, управляют физической доставкой данных по сети, их называют media layers.
Остальные, уровни способствуют обеспечению точной доставки данных между компьютерами в сети, их называют хост-машины.
Прикладной – это ближайший уровень к юзеру. Его отличие от других в том, что он не предоставляет услуги другим ступеням. Обеспечивает услугами прикладные процессы, которые лежат за пределами масштаба модели, например, передача базы данных, голоса, и другое.
Физический уровень (PHYSICAL)
Данный этап устроен сравнительно проще других, ведь кроме единиц и нулей в нем нет других систем измерений, данный уровень не анализирует информацию и именно поэтому является самым нижним из уровней. На нем в основном осуществляется передача информации. Главный параметр загруженности – бит.
Основная цель физического уровня представить нуль и единицу в качестве сигналов, передаваемые по среде передачи данных.
Например, есть некий канал связи (КС), отправляемое сообщение, отправитель и соответственно получатель. У КС есть свои характеристики:
В качестве канала передачи информации используются:
Очень редко возникают ошибки в оптических кабелях, так как повлиять на распространение света сложно. В медных кабелях, ошибки возникают, но достаточно редко, а в беспроводной среде, ошибки возникают очень часто.
Канальный уровень (DATA LINK)
Следующая станция, которую посетит информация, напомнит таможню. А именно IP-адрес будет сравнен на совместимость со средой передачи. Здесь также выявляются и исправляются недочеты системы. Для удобства дальнейших операций, биты группируются в кадры – frame.
Цель канального уровня – передача сообщений по КС – кадров.
Задачи data link
На канальном уровне выявляются и исправляются ошибки. При обнаружении таковой проводится проверка правильности доставки данных, если неправильно, то кадр отбрасывается.
Исправление ошибок, требует применение специальных кодов, которые добавляют избыточную информацию в передаваемые данные.
Повторная отправка данных, применяется совместно с методом обнаружения ошибок. Если в кадре обнаружена ошибка, он отбрасывается, и отправитель направляет этот кадр заново.
Обнаружить и исправить ошибки
Практика показала эффективность следующих методов, если используется надежная среда для передачи данных (проводная) и ошибки возникают редко, то исправлять их лучше на верхнем уровне. Если в КС ошибки происходят часто, то ошибки необходимо исправлять сразу на канальном уровне.
Функции данного этапа в компьютере осуществляют сетевые адаптеры и драйверы, подходящие к ним. Через них и происходит непосредственный обмен данными.
Некоторые протоколы, используемые на канальном уровне, это HDLC, Ethernet применяющая шинную топологию и другие.
Сетевой уровень (NETWORK)
Этап напоминает процесс распределения информации. К примеру, все пользователя делиться на группы, а пакеты данных расходятся в соответствии с IP адресами, состоящими из 32 битов. Именно благодаря работе маршрутизаторов на этой инстанции, устраняются все различия сетей. Это процесс так называемой логической маршрутизации.
Основная задача состоит в создании составных сетей построенных на основе сетевых технологий разного канального уровня: Ethernet, Wi-Fi, MPLS. Сетевой уровень — это «основа» интернета.
Назначение сетевого уровня
Мы можем передавать информацию от одного компьютера к другому через Ethernet и Wi-Fi, тогда зачем нужен еще один уровень? У технологии канального уровня (КУ) есть две проблемы, во-первых, технологии КУ отличаются друг от друга, во-вторых, есть ограничение по масштабированию.
Какие могут быть различия в технологиях канального уровня?
Различный уровень предоставляемого сервиса, некоторые уровни гарантируют доставку и необходимый порядок следования сообщений. Wi-Fi просто гарантирует доставку сообщения, а Ethernet нет.
Разная адресация, по размеру, иерархии. Сетевые технологии могут поддерживать широковещание, т.е. есть возможность отправить информацию всем компьютерам в сети.
Может различаться максимальный размер кадра (MTU), например, в изернете 1500, а в вай-фай 2300. Как можно согласовывать такие различия на сетевом уровне?
Можно предоставлять разный тип сервиса, например, кадры из Вай-Фай принимаются с отправкой подтверждения, а в Ethernet отправляются без подтверждения.
Для того чтобы согласовать разницу адресаций, на сетевом уровне, вводятся глобальные адреса, которые не зависят от адресов конкретных технологий (ARP для TCP/IP) канального уровня.
Чтобы передавать данные через составные сети, у которых разный размер передаваемого кадра, используется фрагментация. Рассмотрим пример, первый компьютер передает данные второму, через 4 промежуточные сети, объединенные 3-ми маршрутизаторами. У каждой сети разный MTU.
Компьютер сформировал первый кадр и передал его на маршрутизатор, маршрутизатор проанализировал размер кадра, и понял, что передать полностью его через сеть 2 нельзя, потому что mtu2 у него слишком мал.
Маршрутизатор разбивает данные на 3 части и передает их отдельно.
Следующий маршрутизатор объединяет данные в один, большой пакет, определяет его размер и сравнивает с mtu сети 3. И видит, что один пакет MTU3 целиком передать нельзя (MTU3 больше, чем MTU2, но меньше, чем MTU1) и маршрутизатор разбивает пакет на 2 части и отправляет следующему маршрутизатору.
Последний маршрутизатор объединяет пакет и отправляет получателю целиком. Фрагментация занимается объединением сетей и это скрыто от отправителя и получателя.
Как решается проблема масштабируемости на сетевом уровне?
Работа ведется не с отдельными адресами, как на канальном уровне, а с блоками адресов. Пакеты, для которых не известен путь следования отбрасываются, а не пересылаются обратно на все порты. И существенное отличие от канального, возможность нескольких соединений между устройствами сетевого уровня и все эти соединения будут активными.
Задачи сетевого уровня:
Маршрутизация
Поиск пути отправки пакета между сетями через транзитные узлы – маршрутизаторы. Рассмотрим пример выполнения маршрутизации. Схема состоит из 5 маршрутизаторов и двух компьютеров. Как могут передаваться данные от одного компьютера к другому?
В следующий раз данные могут быть отправлены другим путем.
В случае поломки одного из маршрутизатора, ничего страшного не произойдет, можно найти путь в обход сломанного маршрутизатора.
Протоколы, применяемые на этом этапе: интернет протокол IP; IPX, необходимый для маршрутизации пакетов в сетях и др.
Транспортный уровень (TRANSPORT)
Есть следующая задача, на компьютер, который соединен с составной сетью приходит пакет, на компьютере работает много сетевых приложений (веб-браузер, скайп, почта), нам необходимо понять какому приложению нужно передать этот пакет. Взаимодействием сетевых приложений занимается транспортный уровень.
Задачи транспортного уровня
Отправка данных между процессами на разных хостах. Обеспечение адресации, нужно знать для какого процесса предназначен тот или другой пакет. Обеспечение надежности передачи информации.
Модель взаимодействия open system
Хосты — это устройства где функционируют полезные пользовательские программы и сетевое оборудование, например, коммутаторы, маршрутизаторы.
Особенностью транспортного уровня является прямое взаимодействие одного компьютера с транспортным уровнем на другом компьютере, на остальных уровнях взаимодействие идет по звеньям цепи.
Такой уровень обеспечивает сквозное соединение между двумя взаимодействующими хостами. Данный уровень независим от сети, он позволяет скрыть от разработчиков приложений детали сетевого взаимодействия.
Для адресации на транспортном уровне используются порты, это числа от 1 до 65 535. Порты записываются вот так: 192.168.1.3:80 (IP адрес и порт).
Особенности транспортного уровня
Обеспечение более высокой надежности, в отличии от сети, которая используется для передачи данных. Применяются надежные каналы связи, ошибки в этих КС происходят редко, следовательно, можно строить надежную сеть, которая будет стоить дешево, а ошибки можно исправлять программно на хостах.
Транспортный уровень гарантирует доставку данных, он использует подтверждение от получателя, если подтверждение не пришло транспортный снова отправляет подтверждение данных. Гарантия следования сообщений.
Сеансовый уровень (SESSION)
Сеансовый (сессия) – это набор сетевых взаимодействий, целенаправленных на решение единственной задачи.
Сейчас сетевое взаимодействие усложнилось и не состоит из простых вопросов и ответов, как было раньше. Например, Вы загружаете веб страничку, чтобы показать в браузере, сначала нужно загрузить сам текст веб страницы (.html), стилевой файл (.css), который описывает элементы оформления веб страницы, загрузка изображений. Таким образом, чтобы выполнить задачу, загрузить веб страницу, необходимо реализовать несколько, отдельных сетевых операций.
Сеансовый определяет, какая будет передача информации между 2-мя прикладными процессами: полудуплексной (по очередная передача и прием данных); или дуплексной (одновременная передача и прием информации).
Уровень представления данных (PRESENTATION)
Функции – представить данные, передаваемых между прикладными процессами, в необходимой форме.
Для описания этого уровня, используют автоматический перевод в сети с различных языков. Например, Вы набираете номер телефона, говорите на русском, сеть автоматом переводит на французский язык, передает информацию в Испанию, там человек поднимает трубку и слышит Ваш вопрос на испанском языке. Это задача, пока не реализована.
Для защиты отправляемых данных по сети используется шифрование: secure sockets layer, а также transport layer security, эти технологии позволяют шифровать данные которые отправляются по сети.
Протоколы прикладного уровня используют TSL/SSL и их можно отличить по букве s в конце. Например, https, ftps и другие. Если в браузере Вы видите, что используется протокол https и замок, это значит, что производится защита данных по сети при помощи шифрования.
Прикладной уровень (APPLICATION)
Необходим для взаимодействия между собой сетевых приложений, таких как web, e-mail, skype и тд.
По сути, представляет собой комплект спецификаций, позволяющих пользователю осуществлять вход на страницы для поиска нужной ему информации. Проще говоря, задачей application является обеспечение доступа к сетевым службам. Содержимое этого уровня очень разнообразно.
Функции application:
Видео о всех уровнях модели OSI
Заключение
Анализ проблем с помощью сетевых моделей OSI поможет быстро найти и устранить их. Недаром работа над проектом программы, способной выявить недочеты имея при этом сложное ступенчатое устройство, велась достаточно долго. Данная модель является в действительности эталоном. Ведь в одно время с ней велись работы по созданию других протоколов. Например, TCP/IP. На сегодняшний день, они довольно часто применяются.