Встроенный стек tcp ip что это

Введение в протоколы TCP/IP

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

Что это такое

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

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

TCP – аббревиатура, которая расшифровывается как Transfer Control Protocol. То есть по сути это специальный протокол, который управляет передачей. Он создан для установки и поддержания надежного соединения между устройствами. Именно он отвечает за передачу данных, контролирует объем передаваемых файлов и выполняет новую отправку при возникновении сбоев.

Характеристики протокола TCP заключаются в следующем:

  • Реализация взаимодействия на уровне логического соединения.
  • Организация потоковой отсылки данных.
  • Двунаправленная взаимосвязь.
  • Функция отправки отдельных пакетов данных.
  • Использование принципа «скользящего окна» для увеличения скорости передачи.

Другой протокол – IP – расшифровывается как «Интернет протокол». Он является базовым для архитектуры передачи файлов и необходим для отправки сетевого пакета по необходимому адресу. Все данные предварительно делятся на несколько пакетов, которые отправляются независимо друг от друга до конечного адресата.

Основными характеристиками протокола IP является следующее:

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

Стек сетевых протоколов требуется для поддержания связи компьютеров (хостов), которые подключены к сети. Главная особенность такого набора – аппаратная независимость, которую невозможно получить при использовании других сетевых технологий. То есть TCP/IP не зависит от характеристик аппаратного обеспечения, что позволяет организовать обмен данными между сетями с разными технологиями передачи. За счет использования IP-адресов поддерживается соединение между двумя любыми устройствами.

В протоколах предусмотрено выполнение ряда команд. Например:

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

По сути стек протоколов TCP/IP является сетевой моделью, в которой описывается весь процесс передачи цифровых данных. До появления этого набора (в 70-е годы прошлого века) передача информации из одной сети в другую была невозможна. Разработка стека помогла решить эту проблему.

Разрабатывалось семейство протоколов под руководством Министерства обороны США, поэтому иногда его называют DoD-системой. Многие специалисты отмечают сходство системы с протоколами OSI, так как обе они строятся по принципу деления на уровни и выполнение отдельных функций на каждом из них.

Общие термины и понятия

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

Для использования протоколов потребуется установка TCP/IP. Это – специальное программное обеспечение, необходимое для настройки сети. Оно устанавливается вместе с базовой операционной системой, то есть дополнительных программ не потребуется.

Настройка протоколов подразумевает процесс установки базовой ОС и не требует от пользователя дополнительных действий.

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

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

Еще один термин, который нельзя не упомянуть, это демоны TCP/IP (то есть серверы). Они представляют собой процессы, работающие в фоновом режиме и выполняющие запросы других процессов.

Назначение протокола TCP/IP

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

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

Такая процедура уменьшает объем информации, которую можно передавать в единицу времени, однако позволяет добиться надежности передачи.

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

Форматы протоколов

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

  • IPv4. Представляет собой 32-битное число. Представление адресов в такой форме достаточно удобное – оно представляет собой 4 группы десятичных чисел (но строго от 0 до 255), которые разделяются точками. Например: 188.227.9.194.
  • IPv6. Такой формат подразумевает использование 128-битного числа. Адреса формируются в виде 8 групп, в каждой из которых имеется 4 шестнадцатеричные цифры. Разделяются группы двоеточием. Например: 2001:0058:0db8:0074:1c60:2c18:1025:2b5f.

Уровневая модель протоколов

При рассмотрении модели TCP/IP нельзя обойти внимание и уровни, на которые она разделена. Интересно, что количество уровней регламентируется стандартом RFC. Этот стандарт выделяет 4 уровня (или ступени):

  • канальный;
  • сетевой (или межсетевой);
  • транспортный;
  • прикладной.

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

1. Канальный.

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

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

2. Межсетевой.

Этот уровень стека протоколов TCP/IP занимается соединением существующих локальных сетей в глобальную. В этом случае под локальными сетями понимают индивидуальные сети на каждом устройстве. Internet layer регламентирует передачу данных по множеству сетей, что позволяет наладить взаимодействие между разными системами.

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

3. Транспортный.

На этой ступени функционируют протоколы TCP и UDP, которые отвечают за отправку и доставку данных.

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

А вот протокол UDP, используемый на transport layer, является менее надежным. Занимается он отправкой автономных датаграмм, однако не гарантирует их 100% получение. Данные могут быть утеряны или доставлены в неверном порядке. По этой причине UDP не используется в тех случаях, когда необходима надежная передача. Применение этого протокола допустимо только тогда, когда потеря данных не будет критичной для работы приложения. Также UDP требуется в тех случаях, когда невозможно по каким-либо причинам сделать повторный запрос данных.

4. Прикладной.

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

Читайте также:  Кто подключен к wlan

Application layer существует для большинства программ, которые обмениваются файлами с нижними уровнями по уже существующим соединениям. Чаще всего для приложений создаются новые протоколы: например, HTTP – для отправки гипертекста, FTP – для отправки файлов и т. д.

Что такое стек

Теперь вернемся к вопросу о том, что такое «стек». Почти каждому пользователю знаком протокол Ethernet. В нем каждое устройство и адресат снабжаются MAC-адресом – он является идентификатором машины. Этот адрес объединяется с типом используемых данных и самими файлами. Фрагмент этих данных называют фреймом (frame). Стоит отметить, что MAC-адрес всегда уникален и не повторяется ни на одном устройстве, так как дубли могут привести к возникновению серьезных сетевых проблем.

Изучая уровневую структуру, становится очевидным, что выполнить передачу данных между двумя устройствами напрямую – невозможно. То есть, сначала все фрагменты файлов должны попасть на межсетевой уровень, где каждый компьютер получает IP-адрес. Далее на транспортном уровне происходит передача отдельных частей информации при помощи протокола TCP или UDP.

На каждом отдельном уровне к имеющимся файлам присоединяется и различная служебная информация. Например, она содержит указание порта на прикладном уровне, который служит для распознавания приложения. Дополнительную информацию могут добавлять разные протоколы: Ethernet, IP, TCP и т. д. Именно такая вложенность данных и называется стеком, а само название семейства протоколов TCP/IP – образовано по аббревиатурам двух основных протоколов.

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

Изначально стек протоколов «ТСП/ИП» разработан в 1972 году на основе Network Control Protocol, но только спустя 4 года создана передача данных с применением протокола TCP. К концу 80-х было выделено две отдельные функции – TCP и IP. И уже к 1983 году удалось полностью перейти на современный протокол, что и считается отправной точкой развития Интернета.

Сравнение с моделью OSI

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

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

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

Выводы

Стек модели TCP/IP контролирует взаимодействие различных уровней системы. Ключевыми в нем являются сами протоколы, которые встраиваются друг в друга и обеспечивают передачу данных. Однако если сравнивать модель с OSI, то ее архитектура более простая. Также стоит отметить, что стандарты протоколов постоянно обновляются, в то время как принцип действия TCP/IP остается неизменным.

Надеемся, что вы разобрались в том, что такое TCP/IP и в чем заключаются принципы его работы. Если у вас остались вопросы по теме, то специалисты Xelent обязательно ответят на них.

Источник

Базовые принципы построения IP-сетей для встраиваемых систем

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

Известно множество вариантов построения сети. Сетевые платформы могут быть реализованы как с помощью беспроводных технологий (Bluetooth, ZigBee, мобильная связь 3G, Wi-Fi и т.д.), так и с помощью проводных технологий (TCP/IP over Ethernet, CAN, Modbus, Profinet и др.). Однако сетевой технологией, которая полностью изменила современные возможности коммуникации, является Internet Protocol (IP).

Сетевые технологии

Основой системы коммуникаций, которой мы пользуемся каждый день, является коммутируемая телефонная сеть общего пользования (Public Switched Telephone Network — PSTN) — глобальный массив взаимосвязанных телефонных сетей общего пользования. Эта сеть с коммутацией каналов раньше была телефонной системой с фиксированными аналоговыми линиями. Сегодня аналоговые каналы постепенно уступают место цифровым, а в сети кроме фиксированных телефонов появились и мобильные устройства.

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

Рис. 1. Коммутируемая телефонная сеть общего пользования (PSTN)
Рис. 2. Cеть с пакетной коммутацией

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

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

На рисунке 2 показана сеть с пакетной коммутацией, в которой терминальные устройства являются крайними точками сетевого соединения и называются либо хостами (host), либо устройствами. Элементы сети, пересылающие пакеты от источника к приемнику называются узлами. Пакеты пересылаются от узла к узлу, а сетевой сегмент (хоп) представляет собой сегмент пути между двумя узлами. Каждый пакет обрабатывается каждым узлом на маршруте между источником и приемником. В IP-сети узлы называют маршрутизаторами.

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

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

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

– сетевая передача пакетов с промежуточным хранением;

– пакеты имеют максимальную длину;

– длинные сообщения разбиваются на несколько пакетов (процесс фрагментации);

– в каждом пакете содержатся адреса источника и приемника.

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

Передача пакетов с промежуточным хранением означает:

– хранение каждого поступающего пакета;

– считывание адреса приемника в пакете;

– обращение к таблице маршрутизации для определения следующего сетевого сегмента;

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

Сегодня большая часть капитальных затрат в сетевой инфраструктуре тратится на оборудование поддержки сервиса передачи данных. Две технологии, которые получили большую часть инвестиций — это Ethernet и Internet Protocol (IP). Эти инвестиции гарантируют, что в ближайшем будущем наши телефонные службы будут работать исключительно с помощью технологии Voice over IP (VoIP), а телевидение — с помощью IP-сетей (IPTV). Звук, видео и все сервисы реального времени, имеющие дело с критичными по срокам данными, будут зависеть от IP-технологии.

Internet Protocol быстро становится распространенной сетевой технологией. Набором протоколов, которые связаны с этой технологией и используются множеством устройств, является стек протоколов TCP/IP.

Что такое стек протоколов TCP/IP?

Пакет протоколов Internet Protocol (называемый также пакетом сетевых протоколов) — это набор коммуникационных протоколов, на базе которых работает интернет и большинство коммерческих сетей. Его также называют стеком протоколов TCP/IP по названию двух наиболее важных протоколов, которые в него входят: Transmission Control Protocol (TCP) и Internet Protocol (IP).Будучи главными сетевыми протоколами, они не являются единственными в этом наборе.

7-уровневая модель OSI

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

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

Уровень — группа связанных коммуникационных функций:

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

– уровни обеспечивают модульность и упрощают разработку и модификацию.

Протокол — правила, устанавливающие, каким образом объекты уровня взаимодействуют между собой для реализации желаемых услуг:

– в каждом уровне может быть несколько протоколов.

Приложение — то, что вызывается конечным пользователем для выполнения функции. Уровень приложения находится на самом верху стека протоколов.

Международная организация по стандартизации (ISO) в 1977 г. разработала 7-уровневую модель взаимодействия открытых систем (Open Systems Interconnection — OSI). На рисунке 3 представлена эталонная модель OSI, состоящая из двух главных компонентов: абстрактной сетевой модели и набора специальных протоколов.

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

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

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

Сеансовый уровень управляет диалогами (сеансами) между компьютерами, а также устанавливает, контролирует и прерывает соединения между локальным и удаленным приложениями. Раньше сеансы имели большое значение в больших ЭВМ и миникомпьютерах. Однако с появлением IP-сетей этот протокол был заменен новым механизмом соединений между приложением и стеком TCP/IP.

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

Строго говоря, хотя сеансовый уровень и уровень представления существуют в стеке TCP/IP, они используются не очень часто, исключение составляют только более старые протоколы. Например, на уровне представления работают следующие протоколы:

– многоцелевые протоколы расширения электронной почты интернет (Multipurpose Internet Mail Extensions — MIME) для кодирования электронной почты;

– стандарт внешнего представления данных (eXternal Data Representation — XDR);

– протокол защищенных сокетов (Secure Socket Layer — SSL);

– протокол безопасного соединения на транспортном уровне (Transport Layer Secure — TLS);

На сеансовом уровне представлены такие протоколы как:

– сетевая базовая система ввода-вывода (Network Basic Input/Output System — (NetBIOS);

– протокол объявления сеанса (Session Announcement Protocol — SAP).

Примерами протоколов уровня приложения являются Telnet, File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP) и Hypertext Transfer Protocol (HTTP).

Применение модели OSI к TCP/IP

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

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

Спецификации стека протоколов TCP/IP определяются рабочей группой по стандартам для сети Интернет (Internet Engineering Task Force — IETF). IETF описывает методы, режимы, исследования и новые решения для пакета протоколов TCP/IP и Internet Protocol в документах, которые называются запросами на комментарии и предложения (Request for Comments — RFC1). Полный список документов RFC доступен на сайте www.faqs.org/rfcs/.

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

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

В наборе IP-протоколов за обнаружение и коррекцию ошибок данных, кроме простого контроля с использованием циклического избыточного кода (Cyclic Redundancy Check – CRC), отвечают протоколы выше второго уровня, в частности протоколы уровня 4. Однако в настоящее время в связи с быстрым проникновением на рынок новых беспроводных технологий допущение о надежности уровня 2 больше не является корректным. Системы беспроводной передачи данных являются весьма чувствительными к помехам, в результате чего увеличивается частота битовых ошибок. В IP-протоколах, в особенности в протоколах уровня 2, должны быть предусмотрены меры, которые помогают устранению этой проблемы. Есть ряд рекомендаций и улучшений к стандартному стеку TCP/IP. Например, документ RFC 2018 описывает улучшения характеристик выборочного подтверждения приема при потере нескольких пакетов из одной области данных.

Как работает стек протоколов TCP/IP?

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

При реализации стека TCP/IP специалист по встраиваемым системам начинает с физического уровня, т.к. в большинстве случаев, аппаратная часть является вновь разработанной. Во-первых, разработчик должен определить технологию локальной сети, которую предполагается использовать. Затем следует реализовать и протестировать драйвер платы сетевого интерфейса (Network Interface Card — NIC) или контроллера канала связи (Data Link Controller — DLC).

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

Уровень 1: физический уровень

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

На физическом уровне используются следующие технологии обработки битов:

– метод подачи сигналов;

– метод уровней напряжения;

– измерение времени передачи бита.

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

– сеть Ethernet: кабель с витыми парами категории 5, коаксиальный кабель или оптоволоконный кабель (в соответствии со спецификацией IEEE 802);

– беспроводная сеть: частота, модуляция (Bluetooth радио, Wi-Fi IEEE 802.11 и др.);

– цифровой абонентский шлейф (Digital Subscriber Loop — DSL), который предоставляется оператором телефонной линии для передачи высокоскоростного интернет-трафика по телефонной линии между АТС и клиентом. Это нестандартное оборудование;

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

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

Уровень 2: канальный уровень

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

Канальный уровень поддерживает различные протоколы передачи, в том числе:

– Asynchronous Transfer Mode (ATM);

Первой задачей специалиста по встраиваемым системам является разработка и тестирование программного обеспечения, которое управляет сетевой платой (драйвер сети), используемой на канальном уровне. Хотя на этом уровне существует несколько сетевых технологий, Ethernet, как протокол уровня 2, затмевает собой все остальные. Согласно исследованиям компании Infonetics Research, более 95% всего трафика данных создается и завершается в портах Ethernet. Редко, когда технология оказывается столь простой, гибкой, эффективной и распространенной. Для встраиваемых систем Ethernet также является наиболее предпочтительной технологией уровня 2.

Ethernet

Учитывая повсеместное доминирование технологии Ethernet, IP и Ethernet связаны очень тесно. Успех технологии Ethernet объясняют следующие факторы:

– простая и в то же время надежная технология;

– открытый и универсальный стандарт;

– эффективная по затратам технология;

– широко распространенная технология;

– широкий диапазон скоростей передачи: 10, 100, 1000 Мбит/с, 24 Гбит/с и более;

– работа с медными, коаксиальными, оптоволоконными кабелями и беспроводными линиями.

В сети Ethernet сетевая интерфейсная плата соединяет хост с локальной сетью. Каждая сетевая плата Ethernet имеет уникальный адрес из линейного адресного пространства. Учитывая, что локальная сеть обычно занимает сравнительно небольшое пространство, в ней используется более высокая скорость передачи данных, чем в глобальной сети. Ethernet и другие протоколы уровня 2 позволяют разработчикам создавать локальные сети. Кадры с данными передаются в среду физического уровня (медный, коаксиальный, оптоволоконный и радиочастотный интерфейсы). Сетевые карты прослушивают эту физическую среду с передаваемыми кадрами, имеющими уникальные адреса локальной сети, которые называются адресами управления доступом к среде передачи (Media Access Control — MAC).

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

В последние несколько лет Ethernet проявил себя и как конкурентоспособная альтернатива для глобальных сетей из-за быстрого внедрения дуплексной оптоволоконной технологии Gigabit Ethernet. Успех стандарта 802.11 (Wi-Fi) также выдвинул Ethernet в качестве преобладающей технологии для беспроводных сетей, т.к. в этих сетях используется Ethernet-интерфейс между уровнями 3 и 2.

Технология Ethernet определена в стандарте IEEE 802.3. Ethernet на витой паре используется в локальных сетях, а оптоволоконный Ethernet, в основном, используется в глобальных сетях, что, таким образом, делает его наиболее распространенной технологией для проводных сетей. С конца 1980-х гг. Ethernet вытеснил такие конкурирующие стандарты локальных сетей, как Token Ring, Fiber Distributed Data Interface (FDDI) и Attached Resource Computer NETwork (ARCNET). В последнее время технология Wi-Fi стала преобладающей в домашних сетях и в небольших офисах и еще больше расширила присутствие Ethernet. Технология WiMAX (IEEE 802.16) также будет способствовать дальнейшему господству Ethernet. Эта технология используется в беспроводных сетях аналогично Wi-Fi, но способна обеспечить широкополосный доступ на расстояние до 50 км для фиксированных станций и до 5…15 км для мобильных станций.

Уровень 3: сетевой уровень

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

Когда необходимо соединить вместе несколько локальных сетей, используют протоколы уровня 3 и соответствующее оборудование (маршрутизаторы), как показано на рисунке 4. Две локальные сети соединены вместе с помощью «облака», в котором находятся узлы уровня 3 (маршрутизаторы), используемые для пересылки кадров между локальными сетями. Устройство уровня 2 (Ethernet-коммутатор) подсоединено к маршрутизатору уровня 3 для того, чтобы получить доступ к более крупной сети. Сетевой уровень упаковывает кадры в пакеты и передает их от одного устройства к другому. Он перемещает пакеты по множеству каналов и/или множеству сетей. На рисунке 4 не показаны сетевые связи между узлами в облаке.

Рис. 3. 7-уровневая модель OSI

Узлы совместно выполняют алгоритмы маршрутизации для определения пути через сеть. Уровень 3 — это уровень объединения различных технологий уровня 2. Даже если все хосты используют для доступа в эти сети различные технологии уровня 2, все они имеют общий протокол. В IP-сети это обеспечивается на уровне IP-пакета и известного IP-адреса, который используется в алгоритме маршрутизации.

Мы уже знаем, что такое устройство, как встраиваемая система, требует MAC-адрес для доступа в локальную сеть. Теперь мы видим также, что в сети, состоящей из сетей, использующих IP-технологию, каждому устройству также нужен IP-адрес. Более подробная информация о требованиях к конфигурации IP-адреса изложена в [1].

Каналы, показанные на рисунке 5, отражают тот факт, что данные, передаваемые между двумя хостами в сети, сформированы в структуры, которые относятся только к определенным уровням стека TCP/IP. Информация, которая содержится в пакетах, инкапсулированных в кадрах, обрабатывается сетевым уровнем. При передаче пакетов сетевой уровень захватывает данные, полученные от вышестоящего уровня, и формирует пакет, содержащий информацию уровня 3 (IP-адрес и другие данные, образующие заголовок уровня 3). Сетевой уровень после приема пакета должен проверить его содержимое и решить, что делать с ним дальше. Наиболее вероятным действием является передача его на вышестоящий уровень.

Рис. 4. Взаимодействие локальных сетей

Уровень 4: транспортный уровень

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

1. Протокол управления передачей (Transmission Control Protocol — TCP) — обеспечивает надежную передачу потоков и выполняет:

– восстановление после сбоя;

– планирование передачи пакетов.

2. Протокол датаграмм пользователя (User Datagram Protocol — UDP) — обеспечивает быструю одноблочную передачу.

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

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

Рис. 5. Сетевой уровень взаимодействия

Уровни 5-6-7: уровни приложения

Именно на уровне приложения специалист по встраиваемым системам реализует основные функции системы. Приложение — это программные средства, которые взаимодействуют со стеком TCP/IP и содержат либо базовый сетевой сервис, такой как передача файлов и электронная почта, либо клиентское приложение. Более подробное описание приложения и сервисов, которые могут быть использованы как модули расширения к стеку TCP/IP, содержится в [1].

Для разработки клиентского приложения инженер по встраиваемым системам должен знать интерфейс между приложением и стеком TCP/IP, который называют интерфейсом сокета. Этот интерфейс позволяет разработчику открывать сокет, пересылать данные, используя сокет, принимать данные в сокет и т.д. Использование и программирование сокетов подробно описано в [1].

Интерфейс между уровнем приложения и транспортным уровнем часто является точкой разграничения стека TCP/IP. Переходом между уровнем приложения (уровни 5-6-7) и уровнем 4 является интерфейс сокета. Приложением может быть как стандартное приложение, такое как FTP или HTTP и/или специализированное для встраиваемой системы приложение, которое следует разработать. Как было сказано выше, пользовательские данные, передаваемые от хоста источника к хосту приемника, должны проходить через много уровней и по одному или многим сетевым каналам.

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

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

1. Christian Legare. µC/TCP-IP: The Embedded Protocol Stack//MicriumPress, 2010.

2. Michael Barr. TCP/IP and UDP/IP for Embedded Systems//www.netrino.com.

3. TCP/IP Networking Basics//Netgear, Inc. September, 2005.

Источник

Adblock
detector
Рис. 6. Уровни 3 и 4