Несколько протоколов могут работать совместно это так называемый или набор протоколов

Обновлено: 13.05.2024

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

Каждый набор протоколов показан как пара протоколов, потому что, как показано в модели рекурсивной архитектуры Интернета (RINA), рассмотренной в предыдущих лекциях, транспортные протоколы обычно входят в пары, причем каждый протокол в паре выполняет определенные функции. В этой серии лекций будут рассмотрены физические протоколы и протоколы передачи данных, как показано на рисунке 1. В частности, в этой лекции будут рассмотрены два широко используемых протокола для передачи данных "точка-точка" в сетях: Ethernet и WiFi (802.11).

ETHERNET

Многие из ранних механизмов, разработанных для того, чтобы позволить нескольким компьютерам совместно использовать один провод, были основаны на проектах, заимствованных из более ориентированных на телефонные технологии. Как правило, они фокусировались на передаче токенов и других более детерминированных схемах для обеспечения того, чтобы два устройства не пытались использовать одну общую электрическую среду одновременно. Ethernet, изобретенный в начале 1970-х Bob Metcalf (который в то время работал в Xerox), разрешал перекрывающиеся разговоры другим способом-с помощью очень простого набора правил для предотвращения большинства перекрывающихся передач, а затем разрешал любые перекрывающиеся передачи путем обнаружения и обратного отсчета.

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

МУЛЬТИПЛЕКСИРОВАНИЕ

Чтобы понять проблему мультиплексирования, с которой столкнулся Ethernet, когда он был впервые изобретен, рассмотрим следующую проблему: в сети с общим носителем вся общая среда представляет собой единую электрическую цепь (или провод).

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

CSMA/CD

В результате система, получившая название множественного доступа с контролем несущей и обнаружением коллизий (CSMA/CD), работает с использованием набора шагов:

  • Хост слушает среду, чтобы увидеть, есть ли какие-либо существующие передачи; это часть процесса со стороны оператора связи.
  • Узнав, что другой передачи нет, хост начнет сериализацию (передача битов сериями) битов кадра в сеть.

Эта часть проста - просто слушать перед передачей. Конечно, передачи двух (или более) хостов могут конфликтовать, как показано на рисунке 2. На рисунке 2:

  • В момент времени 1 (T1) A начинает передачу кадра на совместно используемый носитель. Для прохождения сигнала от одного конца провода к другому требуется некоторое время - это называется задержкой распространения.
  • В момент времени 2 (T2) C прослушивает сигнал на проводе и, не обнаружив его, начинает передачу кадра на совместно используемый носитель. В этот момент уже произошла коллизия, поскольку оба A и C передают кадр в один и тот же момент, но ни один из них еще не обнаружил коллизию.
  • В момент времени 3 (T3) два сигнала фактически сталкиваются в проводе, в результате чего они оба деформируются и, следовательно, не читаются.

Столкновение можно обнаружить в точке А в тот момент, когда сигнал от С достигает точки А, прослушав свой собственный сигнал, передаваемый по проводу. Когда сигнал от С достигнет А, А получит искаженный сигнал, вызванный комбинацией этих двух сигналов (результат столкновения). Это часть обнаружением столкновений (участок СD) работы локальные сети CSMA/CD.

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

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

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

Если каждый хост, подключенный к одному проводу, получает один и тот же сигнал примерно в одно и то же время (учитывая задержку распространения по проводу), как любой конкретный хост может знать, должен ли он на самом деле получать определенный кадр (или, скорее, копировать информацию внутри кадра из провода в локальную память)? Это работа Media Access Control (MAC).

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

А как насчет дубликатов MAC-адресов? Если несколько хостов, подключенных к одному и тому же носителю, имеют один и тот же физический адрес, каждый из них будет получать и потенциально обрабатывать одни и те же кадры. Существуют способы обнаружения повторяющихся MAC-адресов, но они реализуются как часть межслойного обнаружения, а не самого Ethernet;

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

(Поскольку MAC-адреса обычно перезаписываются на каждом маршрутизаторе, они должны быть уникальными только в сегменте или широковещательном домене. В то время как многие старые системы стремились обеспечить уникальность каждого сегмента или широковещательного домена, это обычно должно быть обеспечено с помощью ручной конфигурации, и поэтому в значительной степени было отказано в пользу попытки предоставить каждому устройству глобальный уникальный MAC-адрес, "вшитый" в чипсете Ethernet при создании.)

Первое решение трудно реализовать в большинстве крупномасштабных сетей- ручная настройка MAC-адресов крайне редка в реальном мире вплоть до ее отсутствия. Второй вариант, по существу, означает, что MAC-адреса должны быть назначены отдельным устройствам, чтобы ни одно из двух устройств в мире не имело одного и того же MAC-адреса. Как такое возможно? Путем назначения MAC-адресов из центрального хранилища, управляемого через организацию стандартов. Рисунок 3 иллюстрирует это.

MAC-адрес разбит на две части: уникальный идентификатор организации (OUI) и идентификатор сетевого интерфейса. Идентификатор сетевомого интерфейса присваивается заводом-изготовителем микросхем для Ethernet. Компаниям, производящим чипсеты Ethernet, в свою очередь, присваиваются уникальный идентификатор организации Институтом инженеров электротехники и электроники (Institute of Electrical and Electronic Engineers -IEEE). До тех пор, пока организация (или производитель) назначает адреса чипсету с его OUI в первых трех октетах MAC-адреса и не назначает никаким двум устройствам один и тот же идентификатор сетевого интерфейса в последних трех октетах MAC-адреса, никакие два MAC-адреса не должны быть одинаковыми для любого набора микросхем Ethernet.

Два бита в пространстве OUI выделяются, чтобы сигнализировать, был ли MAC-адрес назначен локально (что означает, что назначенный производителем MAC-адрес был переопределен конфигурацией устройства), и предназначен ли MAC-адрес в качестве одного из следующих:

  • Unicast адрес, означает, что он описывает один интерфейс
  • Multicast-адрес , означает, что он описывает группу получателей

КОНЕЦ ЭПОХИ CSMA / CD

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

На рисунке 4 каждое устройство подключено к разному набору проводов, каждый из которых оканчивается одним коммутатором. Если сетевые интерфейсы на трех хостах ( A, B и C ) и сетевые интерфейсы коммутатора могут отправлять или получать в любой момент времени вместо того, чтобы делать и то, и другое, A может отправлять, пока коммутатор тоже отправляет. В этом случае процесс CSMA / CD все равно должен соблюдаться для предотвращения коллизий, даже в сетях, где только два передатчика подключены к одному проводу. Такой режим работы называется полудуплексом.

КОНТРОЛЬ ОШИБОК

CSMA/CD предназначен для предотвращения одного вида обнаруживаемой ошибки в Ethernet: когда коллизии приводят к искажению кадра. Однако в сигнал могут входить и другие виды ошибок, как и в любой другой электрической или оптической системе. Например, в кабельной системе с витой парой, если скрученные провода слишком сильно "разматываются" при установке коннектора, один провод может передавать свой сигнал другому проводу через магнитные поля, вызывая перекрестные помехи. Когда сигнал проходит по проводу, он может достигать другого конца провода и отражаться обратно по всей длине провода.

Как Ethernet контролирует эти ошибки? Оригинальный стандарт Ethernet включал в себя 32-битную циклическую проверку избыточности ( Cyclic Redundancy Check-CRC ) в каждом кадре, которая позволяет обнаруживать большой массив ошибок при передаче. Однако на более высоких скоростях и на оптических (а не электрических) транспортных механизмах CRC не обнаруживает достаточно ошибок, чтобы повлиять на работу протокола. Чтобы обеспечить лучший контроль ошибок, более поздние (и более быстрые) стандарты Ethernet включили более надежные механизмы контроля ошибок.

Например, Gigabit Ethernet определяет схему кодирования 8B10B, предназначенную для обеспечения правильной синхронизации часов отправителя и получателя; эта схема также обнаруживает некоторые битовые ошибки. Ten-Gigabit Ethernet часто реализуется аппаратно с помощью Reed-Solomon code Error Correction (EC) и системы кодирования 16B18B, которая обеспечивает прямое исправление ошибок ( FEC ) и синхронизацию часов с 18% -ными издержками.

Схема кодирования 8B10B пытается обеспечить наличие примерно одинакового количества битов 0 и 1 в потоке данных, что позволяет эффективно использовать лазер и обеспечивает встроенную в сигнал тактовую синхронизацию. Схема работает путем кодирования 8 бит данных (8B) в 10 передаваемых битов по проводу ( 10B ), что означает около 25% накладных расходов на каждый передаваемый символ. Ошибки четности одного бита могут быть обнаружены и исправлены, потому что приемник знает, сколько "0" и "1" должно быть получено.

МАРШАЛИНГ ДАННЫХ

Ethernet передает данные пакетами и кадрами : пакет состоит из преамбулы, кадра и любой конечной информации. Фрейм содержит заголовок, который состоит из полей фиксированной длины и переносимых данных. На рисунке 5 показан пакет Ethernet.

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

Поле type представляет особый интерес, поскольку оно предоставляет информацию для следующего уровня-протокола, предоставляющего информацию, переносимую в поле data - для идентификации протокола. Эта информация непрозрачна для Ethernet-чипсет Ethernet не знает, как интерпретировать эту информацию (только где она находится) и как ее переносить. Без этого поля не было бы последовательного способа для передачи переносимых данных в правильный протокол верхнего уровня, или, скорее, для правильного мультиплексирования нескольких протоколов верхнего уровня в кадры Ethernet, а затем правильного демультиплексирования.

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

10.2 Необходимость нескольких протоколов

Мы уже говорили, что протоколы позволяют специфицировать или понимать взаимодействие, не зная детали сетевого оборудования конкретного производителя. Они являются для компьютерного взаимодействия тем же самым, чем являются языки программирования для вычислений. Теперь вам должно быть понятно, насколько верна эта аналогия. Как язык ассемблера, некоторые протоколы описывают взаимодействие по физической сети. Например, детали формата кадра Etherneta, политика доступа к сети, обработка ошибок в кадрах вместе составляют протокол, описывающий взаимодействие по Ethernetу. Аналогично, детали IP-адресов, формат дейтаграммы, понятие ненадежной доставки, без установления соединения составляют Межсетевой Протокол.

  • Сбой оборудования. ГВМ или шлюз может перестать работать либо из-за аварии оборудования, либо из-за краха операционной системы. Канал передачи данных может перестать работать или может быть неожиданно отключен. Протокольному ПО нужно распознавать такие сбои и восстанавливаться после них, если это возможно.
  • Перегрузка сети. Даже, если все оборудование и ПО работает корректно, сети имеют конечную пропускную способность, которая может быть превышена. Протокольному ПО нужно знать способы, которыми перегруженная машина может подавить остальной траффик.
  • Задержка или потеря пакетов. Иногда пакеты сильно задерживаются или теряются. Протокольному ПО нужно узнавать о таких ошибках или адаптироваться к большим задержкам при передаче.
  • Ошибки в данных. Электрические или магнитные помехи или ошибки оборудования могут вызвать ошибки передачи, разрушающие передаваемые данные. Протокольному ПО надо узнавать о таких ошибках и восстанавливаться после них.
  • Дублирование данных или нарушение последовательности. Сети, предоставляющие несколько путей передачи, могут доставлять данные не по порядку или доставлять дубликаты пакетов. Протокольному ПО надо переупорядочивать пакеты и удалять дубли.

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

10.3 Концептуальные уровни протокольного ПО

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

Рисунок 10.1 Концептуальная организация протокольного ПО в виде уровней.

Рисунок 10.2 Сопоставление разделения на концептуальные уровни (а) и реальной ситуации с организацией ПО, использующей несколько сетевых интерфейсов ниже IP и несколько протоколов выше него (б).

10.4 Возможности уровней

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

10.4.1 Семиуровневая справочная модель ВОС

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

Рисунок 10.4 Семиуровневая справочная модель ВОС для протокольного ПО.

Модель ВОС, созданная для описания протоколов одной сети, не содержит специального уровня для межсетевой маршрутизации, имеющегося в стеке протоколов TCP/IP.

10.5 Х.25 МККТТ и его связь с моделью ВОС

Схема разделения на уровни ВОС, хотя и разрабатывалась как концептуальная модель, а не руководство для реализаций, является основой для нескольких реализаций протоколов. Среди протоколов, связанных с моделью ВОС, набор протоколов, известный как Х.25, является вероятно самым популярным и широко используемым. Х.25 был создан как рекомендация Международного Консультативного Комитета по Телефонии и Телеграфии( МККТТ), международной организации, вырабатывающей стандарты для международных телефонных служб. Х.25 используется сетями передачи данных общего пользования в Европе и США.

  • Физический уровень. Х.25 определяет стандарт для физического соединения между ГВМ и сетевыми коммутаторами пакетов, а также процедуры, используемые для передачи пакетов от одной машины к другой. В справочной модели уровень 1 определяет физическое соединение, включая электрические параметры, такие как напряжение и ток. Соответствующий протокол, Х.21, содержит его детальное описание, и используется сетями передачи данных общего пользования.
  • Канальный уровень. Уровень 2 в протоколе Х.25 определяет, как данные передаются между ГВМ и пакетным коммутатором, к которому он присоединен. Х.25 использует термин кадр для обозначения элементарного блока данных, передаваемого между ГВМ и коммутатором пакетов( важно понимать, что определение кадра в Х.25 отличается от того, которое мы используем). Так как собственно оборудование доставляет только поток бит, протокол уровня 2 должен определить формат кадров и указать, как две машины будут определять границы кадров. Так как ошибки передачи могут разрушить данные, протокол уровня 2 включает обнаружение ошибок( то есть, контрольную сумму кадра). Наконец, так как передача не является надежной, протокол уровня 2 определяет обмен подтверждениями, позволяющий двум машинам узнавать, когда кадр успешно передан.

10.5.1 Модель уровней Интернета TCP/IP

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

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

10.6 Различия между схемами Х.25 и Интернетом

Существует два тонких и важных различия между схемой разделения на уровни TCP/IP и Х.25. Первое различие связано с надежностью, в то время как второе - с местонахождением интеллектуальных функций в системе.

10.6.1 Надежность на канальном уровне и межконцевая надежность.

Одно из основных различий между протоколами TCP/IP и Х.25 состоит в их подходах к обеспечению сервиса надежной пердачи данных. В модели Х.25 протокольное ПО обнаруживает и обрабатывает ошибки на всех уровнях. На канальном уровне сложные протоколы гарантируют, что передача между ГВМ и пакетным коммутатором, к которому он присоединен, будет корректной. К каждому передаваемому элементу данных присоединяется контрольная сумма, и получатель подтверждает каждый принятый кусок данных. Протокол канального уровня включает таймаут и алгоритм повторной передачи, защищающие от потери данных и обеспечивающие автоматическое восстановление после сбоев или рестартов оборудования.

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

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

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

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

10.6.2 Местонахождение средств управления.

Другое различие между моделью Х.25 и TCP/IP появляется при определении местонахождения средств управления работой. Как правило, в сетях, использующих Х.25, подразумевается, что сеть - это утилита, обеспечивающая транспортное средство. Производитель, предоставляющий средство, управляет доступом к сети и следит за траффиком для учета работы пользователей. Поставщик сетевого сервиса решает такие проблемы, как маршрутизация и управление потоком внутренним образом, делая процесс передачи данных надежным. При таком подходе на долю ГВМ мало что остается. Короче говоря, сеть - это сложная, независимая система, к которой могут присоединяться относительно простые ГВМ; сами ГВМ мало участвуют в работе сети.

10.7 Принцип разделения протоколов на уровни

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

Протоколы, разнесенные по уровням, разрабатываются таким образом, что назначение на уровне N получает точно такой объект, который был послан отправителем на уровне N.

Рисунок 10.6 иллюстрирует, как работает принцип разделения на уровни:

10.7.1 Разделение на уровни в среде интернета TCP/IP

Рисунок 10.7 Принцип разделения на уровни при использовании шлюза. Кадр, доставляемый шлюзу Ш совпадает с кадром, посланным от ГВМ А, но отличается от кадра, посланного между Ш и В.

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

1) Протоколы. Основные понятия и принципы взаимодействия. Стек протоколов.

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

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


Наиболее распространённой системой классификации сетевых протоколов является так называемая модель OSI, в соответствии с которой протоколы делятся на 7 уровней по своему назначению — от физического (формирование и распознавание электрических или других сигналов) до прикладного (API для передачи информации приложениями).

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

Стек протоколов — набор взаимодействующих сетевых протоколов.

Наиболее популярные стеки протоколов: TCP / IP , IPX / SPX , NetBIOS / SMB , DECnet , SNA и OSI . Большинство протоколов (все из перечисленных, кроме SNA ) одинаковы на физическом и канальном уровне, но на других уровнях как правило используют разные протоколы.

2) Стандартные стеки коммутационных протоколов O SI /TCP.

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

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

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

Стек OSI - международный, независимый от производителей, стандарт. Его поддерживает правительство США в своей программе GOSIP. Тем не менее, стек OSI более популярен в Европе, а не в США, так как в Европе меньше установлено старых сетей, использующих свои собственные протоколы. Большинство организаций пока только планируют переход к стеку OSI, и очень немногие приступили к созданию пилотных проектов. Одним из крупнейших производителей, поддерживающих OSI, является компания AT&T, ее сеть Stargroup полностью базируется на этом стеке.

Стек TCP/IP. Стек был разработан по инициативе Министерства обороны США более 20 лет назад для связи экспериментальной сети ARPAnet с другими сетями как набор общих протоколов для разнородной вычислительной среды. Большой вклад в развитие стека TCP/IP, который получил свое название по популярным транспортным протоколам IP и TCP, внес университет Беркли, реализовав протоколы стека в своей версии ОС UNIX. Популярность этой операционной системы привела к широкому распространению протоколов TCP, IP и других протоколов стека. Этот стек используется для связи компьютеров всемирной информационной сети Internet. Организация Internet Engineering Task Force (IETF) вносит основной вклад в совершенствование стандартов стека, публикуемых в форме спецификаций RFC.

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

За долгие годы использования в сетях различных стран и организаций стек TCP/IP вобрал в себя большое количество протоколов прикладного уровня. К ним относятся такие популярные протоколы как протокол пересылки файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы доступа к удаленной информации, такие как Mosaic, и многие другие.

3) Протоколы транспортного уровня UDP и TCP их характеристики и применение.

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

В качестве протоколов транспортного уровня в сети Internet могут быть использованы два протокола:

· UDP (User Datagram Protocol)

· TCP (Transmission Control Protocol)

Транспортный протокол UDP

Руководство по стеку протоколов TCP/IP для начинающих

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

Основы TCP/IP

Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть — интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую, с целью обеспечить такую возможность был разработан стек интернет-протоколов также известный как TCP/IP.

Разработкой этих протоколов занималось Министерство обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:


Уровневая модель TCP/IP

Три верхних уровня — прикладной, транспортный и сетевой — присутствуют как в RFC, так и у Таненбаума и других авторов. А вот стоит ли говорить только о канальном или о канальном и физическом уровнях — нет единого мнения. В RFC они объединены, поскольку выполняют одну функцию. В статье мы придерживаемся официального интернет-стандарта RFC и не выделяем физический уровень в отдельный. Далее мы рассмотрим четыре уровня модели.

Канальный уровень (link layer)

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

Этот уровень также вычисляет максимальное расстояние, на которое пакеты возможно передать, частоту сигнала, задержку ответа и т.д. Все это — физические свойства среды передачи информации. На канальном уровне самым распространенным протоколом является Ethernet, но мы рассмотрим его на примере в конце статьи.

Межсетевой уровень (internet layer)

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

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

Маска подсети и IP-адреса


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

Протокол интернета — IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Он имеет два подвида, первым был принят IPv4 (IP version 4, версии 4) в 1983 году.

IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2 32 ). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает его класс, классов всего 4: A, B, C, D.

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

Так как IPv6 адреса длинные, их разрешается сокращать по следующим правилам: ведущие нули допускается опускать, например в адресе выше :00FF: позволяется записывать как :FF:, группы нулей, идущие подряд тоже допустимо сокращать и заменять на двойное двоеточие, например, 2DAB:FFFF::01AA:00FF:DD72:2C4A. Допускается делать не больше одного подобного сокращения в адресе IPv6.

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

ICMP и IGMP


ICMP никогда не вызывается сетевыми приложениями пользователя, кроме случаев диагностики сети, к примеру, пинг (ping) или traceroute (tracert). ICMP не передает данные, это отличает его от транспортных TCP и UDP, расположенных на L3, которые переносят любые данные. ICMP работает только с IP четвертой версии, с IPv6 взаимодействует ICMPv6.

Сетевые устройства объединяются в группы при помощи IGMP, используемый хостами и роутерами в IPv4 сетях. IGMP организует multicast-передачу информации, что позволяет сетям направлять информацию только хостам, запросившим ее. Это удобно для онлайн-игр или потоковой передаче мультимедиа. IGMP используется только в IPv4 сетях, в сетях IPv6 используется MLD (Multicast Listener Discovery, протокол поиска групповых слушателей), инкапсулированный в ICMPv6.

Транспортный уровень (transport layer)

Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.

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

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

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

Протоколы L3 не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.

Прикладной уровень (application layer)

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

Зачем нужен порт и что означает термин сокет

IP присваивается каждому компьютеру межсетевым уровнем, но обмен данными происходит не между компьютерами, а между приложениями, установленными на них. Чтобы получить доступ к тому или иному сетевому приложению недостаточно только IP, для идентификации приложений применяют порты. Комбинация IP-адреса и порта называется сокетом или гнездом (socket). Поэтому обмен информацией происходит между сокетами. Нередко слово сокет употребляют как синоним для хоста или пользователя, также сокетом называют гнездо подключения процессора.

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


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

Стек протоколов, снова канальный уровень

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

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

Point-to-Point протоколы


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

У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.

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

Заключение

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

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

Читайте также: