OSI
Модель взаимодействия открытых систем OSI — идеологический фундамент стандартизации в сетях передачи данных.
![](https://www.google.com/images/icons/product/drive-32.png)
06:42 Взаимодействие удаленных и локальных процессов -1
![](https://www.google.com/images/icons/product/drive-32.png)
Взаимодействие удаленных и локальных процессов -2
Эталонная модель OSI (open systems interconnection basic reference model)— это описательная схема сети; предполагается что ее стандарты гарантируют совместимость и взаимодействие сетевых технологий различных типов.
OSI - Общие функции и проблемы
Олифер: Компьютерные сети. Принципы, технологии, протоколы PDF ст.109
Таненбаум "Компютерные Сети": Эталонные модели PDF ст.57
Курс Cisco CNNA 1-2: Стек протоколов TCP/IP PDF ст.437
Пятибратов: Вычислительные машины, и телекоммуникационные системы PDF ст.200
Race condition - состояние гонки (конкуренция) — ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода.Своё название ошибка получила от похожей ошибки проектирования электронных схем. Термин стандартно используемый для обозначения какой либо "конкуренции".
POSIX (portable operating system interface — переносимый интерфейс операционных систем) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API), библиотеку языка C и набор приложений и их интерфейсов. Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода
Host layers --> Уровень хост-машины, обеспечение точной доставки данных между компьютерами.
Media layers --> Уровень среды передачи данных, управление физической доставкой данных по сети.
Адресация, маршрутиризация ....
1:50 <------------- порты, сокеты
13:19 <----------- маршрутизация, способы --> маршрутиризации
19:00 <----------- модели соединений; "Connection-Oriented and Connectionless Service"
![](https://www.google.com/images/icons/product/drive-32.png)
![](https://www.google.com/images/icons/product/drive-32.png)
Интерфейс — формально определенная логическая и (или) физическая граница между взаимодействующими независимыми объектами. Интерфейс задает параметры, процедуры и характеристики взаимодействия объектов.
Наряду с внешними, электронные устройства могут использовать внутренние интерфейсы, определяющие логические и физические границы между входящими в их состав модулями. Так, известный интерфейс «общая шина» является внутренним интерфейсом компьютера, связывающим оперативную память, процессор и другие блоки компьютера.
Физический интерфейс (называемый также портом) — определяется набором электрических связей и характеристиками сигналов. Обычно он представляет собой разъем с набором контактов (типа RJ-45), каждый из которых имеет определенное назначение, например, это может быть группа контактов для передачи данных, контакт синхронизации данных и т. п. Пара разъемов соединяется кабелем, состоящим из набора проводов, каждый из которых соединяет соответствующие контакты. В таких случаях говорят о создании линии, или канала, связи между двумя устройствами. Надо заметить что термин "порт", точнее "сетевой порт" скорее более связан с адресацией чем с физическими разъемами, где он означает адрес процесса, адресуемого процесса, например:
ssh user@192.168.1.150:22 значение 22 (стандартное значение, которе обычно опускается, более того такая запись с указанием порта может приводить к ошибке: ssh: Could not resolve hostname....) это порт где на стороне сервера работает или "слушает" демон SSH, если вы используете не стандартные значения его надо указать явно через ключ -р: ssh user@192.168.1.150 -p 33, в URL адресах порт указывается через двоеточие как разделитель обязательно: http://www.example.com:8080/path/ в терминале можно и через пробел. но двоеточие будет корректно. По факту можно сказать, что номер порта это уникальный номер приложения.
Логический интерфейс (называемый также протоколом) — это набор информационных сообщений определенного формата, которыми обмени ваются два устройства или две программы, а также набор правил, определяющих логику обмена этими сообщениями. Протокол всегда - одноранговый интерфейс.
Термины «протокол» и «интерфейс» выражают одно и то же понятие — формализованное описание процедуры взаимодействия двух объектов, но в сетях за ними закрепили разные области действия:
протоколы - определяют правила взаимодействия модулей одного уровня в разных узлах.
интерфейсы - определяют правила взаимодействия модулей соседних уровней в одном узле (вертикальные протоколы в сетевых моделях).
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком протоколов, на эффективность взаимодействия устройств в сети влияет качество всей совокупности протоколов, составляющих стек, в частности то, насколько рационально распределены функции между протоколами разных уровней и насколько хорошо определены интерфейсы между ними.
PS: Из того что протокол является соглашением, принятым двумя взаимодействующими узлами сети, совсем не следует, что он обязательно является стандартом, в том смысле что "по другому никак", то есть хотите используйте, а не хотите напишите свой.
Программы/утилиты для настройки сетевых интерфейсов:
ifconfig - программа используется для назначения сетевого адреса, изменение настроек параметров сетевого адаптера и IP протокола. Она используется в большинстве *nix систем на этапе загрузки операци онной системы для настройки сетевых интерфейсов.
ip — утилита командной строки в Linux из пакета iproute2. Позволяет выполнять настройку сетевой подсистемы, универсальная утилита объединяющая функционал таких утилит, как ifconfig, route, arp. В общем и целом синтаксис таков: для выполнения какой-либо операции после команды ip указывается «объект» и команда (возможно с аргументами), которая должна быть выполнена для этого объекта.
Модели соединений: Connection-Oriented and Connectionless Service
Connection-oriented (model) или сервисы, обмен делится на три четко выраженные фазы: организация соединения, передача данных и разрыв соединения. Примерами таких систем являются ... Internet TCP, OSI, обычная телефонная связь.
Протоколы, ориентированные на соединение, перед отправкой первого бита данных, то есть до начала передачи, устанавливают сквозное соединение, практически так: вначале протокол транспортного уровня осуществляет передачу получателю специальных пакетов, с помощью которых другой участник соединения может определить, что к нему вскоре поступят данные, какие данные, включая все состояния для передачи данных, под "состоянием" подразумевается:
—требования к качеству обслуживания, путь, по которому будет проходить трафик через сеть, конкретные приложения, которые будут отправлять и получать данные, скорость, с которой данные могут отправляться, и т.д.
Как только соединение установлено и предварительные договоренности определены отправителем и получателем, данные могут быть переданы с минимальными издержками, ради чего собственно все и делалось.
Connectionless Service. Сервисы без установления соединения, объединяют данные, необходимые для передачи данных, с самими данными, передавая оба в одном пакете (или блоке данных протокола, датаграмме). Протоколы без установления соединения просто распространяют состояние, необходимое для передачи данных по сети, на каждое возможное устройство, которому могут потребоваться данные, в то время как модели, ориентированные на установление соединения, ограничивают состояние только теми устройствами, которые должны знать об определенном потоке пакетов. В результате сбои в работе одного устройства или канала в сети без установления соединения можно устранить, переместив трафик на другой возможный путь, а не переделывать всю работу, передачи трафика из источника в пункт назначения в случае сonnection-oriented сервисов. В режиме без установления соединения данные передаются в одном направлении от источника к месту назначения без проверки того, существует ли место назначения или нет, или если он готов принять сообщение. При этом аутентификация не требуется. Ярким примером службы без установления соединения является протокол UDP (User Datagram Protocol — протокол пользовательских датаграмм). И в чем разница:
В сервисе с установлением соединения необходима аутентификация, тогда как сервис без установления соединения не требует никакой аутентификации.
Протокол, ориентированный на установление соединения, устанавливает соединение и проверяет, получено ли сообщение или нет, и отправляет снова в случае возникновения ошибки, в то время как протокол обслуживания без установления соединения не гарантирует доставку сообщения.
Сервис с установлением соединения более надежен, чем сервис без установления соединения.
Сервисный интерфейс, ориентированный на соединение, основан на потоках, а без установления соединения - на основе сообщений, дейтаграм.
Курс CCNA 1: основы сетевых технологий ст.497
Большинство сетевых служб модели OSI используют системы доставки без установления соединения (протокол UDP), Они работают с каждым пакетом в отдельности и пересылают их в нужном направлении через сеть. Пакеты могут быть переданы по разным сетевым маршрутам и будут собраны вместе в сообщение только тогда, когда достигнут своего пункта назначения. и т.д..... (Курс Cisco CNNA 1-2 PDF)
PS: На практике, которая все упрощает, передачу данных, не углубляясь в часности принято делить на дейтаграмную и пакетную, но кому всетаки интересно — подробней
Вопрос; чем отличается дейтаграмма от пакета, ответ: практически ни чем, кроме того, что дейтаграмма несет в себе более полную информацию о пакете то есть "куда", "зачем", "кто", она более "самостоятельная", в отличии от пакетной передачи, где над пакетами существует некий, если можно так казать, "place holder", с целью организации потока и сервисов (TCP), от того дейтаграммная передача и более быстрая.
Можно ли дейтаграмму назвать пакетом — да, подразумевая что пакет это единый блок данных передаваемый по сети, поэтому на первый, как и на второй взгляд дейтаграмная передача предпочтительней если нас не сильно волнует гарантия доставки и это есть "общее" распространенное убеждение, в общем и целом как то так.
Если еще проще IP — пакеты, UDP — дейтограммы. Как и сокеты, то есть объекты представляющие из себя "конечную точку соединения" могут быть "пакетными", то есть потоковыми, то есть TCP сокетами и дейтаграмными, то есть UDP сокетами.
Difference between Connection-Oriented and Connectionless Service
Сетевой интерфейс — физическое или виртуальное устройство, предназначенное для передачи данных между программами через компьютерную сеть. Создаются сетевые интерфейсы соответствующими модулями ядра. Существует соглашение о наименовании интерфейсов, в соответствии с которым имя интерфейса состоит из префикса, характеризующего его тип, и числа, соответствующего номеру интерфейса данного типа в системе (виртуальные интерфейсы именуются с добавлением двоеточия и номера интерфейса(ethØ: № ). Например;
pppØ — соответствует первому интерфейсу PPP
eth1 — соответствует интерфейсу второго сетевого адаптера Ethernet.
Нумерация интерфейсов начинается с Ø (ноль часто опускается в обозначениях). Существует большое количество сетевых интерфейсов предназначеных для различных целей. Например:
lo (loØ) — интерфейс петли обратной связи (loopback).
eth — cетевой интерфейс к карте Ethernet.
ppp — cетевой интерфейс к каналу PPP (Point-to-Point Protocol).
wlan — cетевой интерфейс wi-fi адаптеров
Подинтерфейсы (программные интерфейсы):
bond подинтерфейс агрегации(объединения, присоединения, bond-связь) нескольких сетевых интерфейсов в единый логический или так: слияние нескольких сетевых соединений в одно параллельное, что позволяет увеличить пропускную способность канала и повысить отказоустойчивость сети в случае отказа одной из сетевых карт. (bonded интерфейс , k-max.bonding-debian , vasilisc.com/ethernet-bonding)
vlan — подинтерфейс виртуальной локальной сети
bridge — подинтерфейс соеденяющий 2 сегмента сети на канальном уровне
tun/tap — TAP эмулирует Ethernet устройство и работает на канальном уровне модели OSI,TUN (сетевой туннель) работает на сетевом уровне модели OSI, оперируя IP пакетами.
Некоторые параметры интерфейсов:
IP-адрес — адрес IP, соответствующий данному сетевому интерфейсу. Пакеты, отправленные по этому адресу, поступят на соответствующий интерфейс
Маска подсети — битовая маска, необходимая для вычисления маршрута передачи IP- пакета
Метрика — условная характеристика интерфейса, выраженная числом, соответствующая уровню затрат, "стоимости", при передаче информации через него. Руководствуясь метрикой маршрутиртзатор выбирает оптимальный маршрут.
Vlan-id — уникальный для vlan-интерфейса параметр, определяющий номер vlan.
Инкапсуляция / Декапсуляция
Термины используемые очень широко в вычислительной технике и програмировании, сетевые модели не исключения, процесс "заворачивания" и "разворачивания". Логическая капсула это кусок изолированного кода и способ доступа к данным внутри капсулы строго формализован и описан через методы доступа, наружу эта капсула предоставляе или не предоставляет строго определенный интерфейс как следствие эта капсула или объект, легко модифицируется, заменяется и т.д.
Когда передающая сторона готовит данные к передаче – это процесс инкапсуляции данных, и наоборот, когда принимающая сторона начинает обрабатывать входящую последовательность бит и формировать из нее сообщения – это процесс декапсуляции. Просто и понятно эту терминологию пришедшую из ОПП объясняет Александр Генадьевич Тормасов — Инкапсуляция/Декапсуляция 18:42
Сам по себе "standalone" протокол, не имеет практического применения, в чем можно убедиться заглянув в RFC — Request For Comments "тема для обсуждения", где он влачит заурядную жизнь в качестве "спецификации", НО в контексте стека он обретает смысл существования, проявляет свои преимущества и недостатки, "инкапсуляция" это своего рода "линкер" програмных модулей, вся суть протоколов стека заключена в заголовках, которые добавляются или убираются в зависимости от того, с какого уровня на какой переходят данные. Процесс добавления заголовка поверх существующего называется инкапсуляция данных, это когда данные движутся с более высокого уровня вниз (то есть при подготовке данных к передаче), процесс снятия заголовка называется декапсуляция данных, это когда данные движутся снизу вверх, то есть при приеме, реализован этот механизм в ядре как часть "сетевой подсистемы".
PS: Существено различать модель OSI и стек протоколов OSI: модель OSI является концептуальной схемой взаимодействия открытых систем, стек OSI представляет собой набор спецификаций конкретных протоколов, при том что стек OSI полностью соответствует модели OSI.
Олифер: Компьютерные сети. Принципы, , протоколы PDF ст.109
Стандартные стеки коммуникационных протоколов ст.124
Биты и боды ст.205
Общая идея протоколов всех уровней (кроме физического) состоит в том, что информационный блок каждого уровня содержит заголовок и информационное поле, и в том, что блок протокола вышележащего уровня помещается в информационное поле блока протокола расположенного сразу под ним нижележащего уровня.
Конечно один из ключевых вопросов сети является вопрос адресации, адресации узлов сети или адресации их сетевых интерфейсов, каждый узел сети на практике имеет несколько интерфейсов. но один естественно обязателен. По количеству "адресуемых" итерфейсов алреса делятся на:
Unicast (уникальный) для идентификации отдельных интерфейсов
Multicast (групповой) для идентификации группы интерфейсов, в результате данные помеченные групповым алресом доступны каждому из узлов входящих в группу. Multicast снижает нагрузку на промежуточное оборудование, посколку добавление новых пользователей не влечет за собой необходимость увеличения пропускной способности сети по общему маршруту до потребителей в отличии от unicast, что очевидно, используется: видеоконференцсвязь, радио, служебная рассылка и тд, не мало важная по нынешним временам форма широковещания. IPv6 к слову, не поддерживает broadcast, а работает исключительно с multicast.
Broadcast (широковещательный) всем, всем, всем.
Anycast (произвольная рассылка) то же что и multicast, с отличием что данные будут доставлены не всем узлам группы, а только одному, выбранному.
PS: И на первый взгляд с адресацией все более чем очевидно, но не однозначно, поэтому стоит изучить тему более предметно, например здесь:
Олифер: Компьютерные сети ст.59,
мистер Таненбаум более детально подходит к вопросу: Таненбаум "Компютерные Сети": Адресация ст.541,
Cisco раскрывает ее "Академически" Курс Cisco CNNA 1-2: Курс Cisco CNNA 1-2: Стек протоколов TCP/IP и IP адресация ст.450
1-7.Физический (Двоичная передача) --> Media layers
Ethernet • RS-232 • RS-422 • RS-449 • RS-485 • Serial port • PDH • SDH • OTN или DWDM
Физический уровень определяет электротехнические, механические, процедурные и функциональные характеристики активизации, деактивизации и поддержания "физического" канала между конечными системами. Спецификации физического уровня определяют такие характеристики, как уровни напряжений, временные параметры изменения напряжений, скорости физической передачи данных, максимальные расстояния передачи информации, физические разъемы, и другие подобные характеристики.
Принципиальными вопросами здесь являются следующие: какое напряжение должно использоваться для отображения единицы, а какое для нуля; сколько микросекунд длится бит; может ли передача производиться одновременно в двух направлениях; как устанавливается начальная связь и как она прекращается, когда обе стороны закончили свои задачи; из какого количества проводов должен состоять кабель и какова функция каждого провода. Вопросы разработки в основном связаны с механическими, электрическими и процедурными интерфейсами, а также с физическим носителем, лежащим ниже физического уровня. В общем и целом разговор ведется о среде передачи данных, на этом уровне возникает понятие "среда передачи","разделяемая среда", "домен коллизий", так же протоколы семейства CSMA(Carrier Sense Multiple Access)и им подобные которые рассматривает уже канальный уровень.
PS: Представление данных в виде электрических или оптических сигналов называется по другому "кодированием".Существуют различные способы кодирования двоичных цифр, например "потенциальный способ", при котором единице соответствует один уровень напряжения, а нулю — другой, или "импульсный способ", когда для представления используются импульсы различной полярности. В вычислительных сетях применяют как потенциальное, так и импульсное кодирование "дискретных данных", а также специфический способ представления данных — модуляцию когда дискретная информация представляется синусоидальным сигналом той частоты, которую хорошо передает имеющаяся линия связи. Потенциальное и импульсное кодирование применяется на каналах высокого качества, а модуляция на основе синусоидальных сигналов предпочтительнее в том случае, когда канал вносит сильные искажения в передаваемые сигналы.
Метод доступа к среде передачи Для стройности изложения и простоты понимания, всю историю о взаимодействии узлов сети в некой среде передачи, разделяемой среде (shared medium) надо начинать с методов или правил или протоколов, согласно которым узел сети получает доступ к этой самой среде и как правильно замечает комрад Карманов, которая накладывает свой "неизгладимый" отпечаток на черты протоколов реализуемые в данной среде.
Методов доступа по факту не так уж много и все они крутятся на способах временного разделения доступа к каналу, это "централизованные" и "децентрализованные", которые в свою очередь начинают делится на "детерменированные", "вероятносные" и пр...,но важно другое, важно то что на этом этапе не существует(практически) ни какой логики, все примитивно как шесть ножек таракана, самое расспространое исторически "первичное" это семейство протоколов CSMA алгоритмы которой "не обманешь" ни какими програмными выкрутасами, что сыграло свою роль для дальнейшего развития как будущих протоколов среды передачи данных так и способов как это среду надо делить между учасниками.
Протоколы CSMA как и сама технология "исторически" связана с "медной витой парой", то есть ни про какие радиволны или оптику, речи не идет и быть не может.
PS: Разделяемая среда (shared medium) — физическая среда передачи данных, к которой непосредственно подключено несколько передатчиков узлов сети и в каждый момент времени только один из передатчиков какого-либо узла сети получает доступ к разделяемой среде и использует ее для передачи данных приемнику другого узла, подключенному к этой же среде. Протоколы семейства CSMA — протоколы регулирующие доступ к разделяемой среде (Carrier Sense Multiple Access (CSMA) — вероятностный сетевой протокол канального (МАС) уровня). CSMA
.....Количество изменений информационного параметра несущего периодического сигнала в секунду измеряется в бодах. 1 бод равен одному изменению информационного параметра в секунду, более коректно bps — bit per second. Например, если такт передачи информации равен 0,1 секунды, то сигнал изменяется со скоростью 10 бод. Таким образом, скорость в бодах целиком определяется длительностью такта. Если проще бод — это количество знаков в секунду, они же "символы", они же "информационный параметр", но не бит-ов в секунду, важный аспект "теории вычислений" восходящий еще к машине Тьюринга которая работает со знаками но не с числами.
Олифер: Компьютерные сети. Биты и боды PDF ст.205
Таненбаум: Эфективность использования полосы частот PDF ст.146
![](https://www.google.com/images/icons/product/drive-32.png)
Емкость канала связи (capacity), она же "ширина канала" или пропускноая способностью, это максимально возможная скорость передачи информации по каналу. Спецификой этой характеристики является то, что она отражает не только параметры физической среды передачи , но и особенности выбранного способа передачи дискретной информации в этой среде. Например, емкость канала связи в сети Ethernet на оптическом волокне равна 10 Мбит/с. Эта скорость является предельно возможной для сочетания технологии Ethernet и оптического волокна но для того же самого оптического волокна можно разработать другую технологию передачи, отличающуюся способом кодирования данных, тактовой частотой и другими параметрами, которая будет иметь другую емкость. Технология Fast Ethernet обеспечивает передачу данных по тому же оптическому волокну с максимальной скоростью 100 Мбит/с, а технология Gigabit Ethernet — 1000 М бит/с, то есть с одной стороны, эта характеристика зависит от параметров физической среды, а с другой — определяется способом передачи данных. Следовательно, нельзя говорить о пропускной способности линии связи до того, как для нее определен протокол физического уровня. Передатчик коммуникационного устройства должен работать со скоростью, равной пропускной способности канала. Эта скорость иногда называется битовой скоростью передатчика (bit rate of transmitter).
Полоса пропускания (bandwidth) — термин который может ввести в заблуждение, потому что он используется в двух разных значениях. Во-первых, с его помощью могут характеризовать среду передачи. В этом случае он означает ширину полосы частот, непрерывный диапазон, которую линия передает без существенных искажений и из этого определения понятно происхождение термина. Во-вторых, термин «полоса пропускания» используется как синоним термина емкость канала связи. В первом случае полоса пропускания измеряется в герцах (Гц), во втором — в битах в секунду. Различать значения термина нужно по контексту и такое двойное использование термина «полоса пропускания» увы вошло во многие стандарты и книги.
К теме "терминология" можно добавить харакриристики возможностей передачи данных по каналу в одну или обе стороны, хотя это вероятно ни для кого не секрет, тем не менее физические каналы можно разделить, впрочем как и "связь" как таковую на:
Дуплексный канал это одновременная передача данных в обоих направлениях.
Полудуплексный канал тоже в обоих направлениях но не одновремено
Симплексный канал, то есть простой, передача информации в одном направлении
Не лишне иметь представление что такое "управление потоком (Flow Control)": часто по последовательной линии связываются два устройства, имеющих разное быстродействие. Примером может служить компьютер, и принтер, который не успевает их распечатывать. Если поток данных переполнится,они будут утрачены. Но можно управлять потоком данных, что позволяет при необходимости сокращать скорость передачи, это и есть Flow Control.
2-6.Канальный (Доступ к среде передачи данных Data Link) --> Media layers
Ethernet • PPPoE • PPP • L2F • 802.11 Wi-Fi • 802.16 WiMax • Token ring • ARCNET • FDDI • HDLC • SLIP • ATM • CAN • DTM • X.25 • Frame relay • Shortest Path Bridging • SMDS • STP • ERPS
https://intuit.ru/studies/Лекция 5: Канальный уровень сетевой модели OSI
В качестве основной можно выделить задачу обеспечения надежного транзита данных через физический уровень, по средствам адресации тоесть использования адресов управления доступом к среде передачи данных (MAC - Media Access Control). Канальный уровень (уровень передачи данных) определяет, что есть "пакет" физической информации, обеспечивает контроль за передачей данных без искажений, а при возникновении ошибок маскирует их от сетевого уровня (тем самым обеспечивая функционирование всей конструкции), уровень двояко определяемый физическими и программными свойствами сетевого интерфейса. Задача передачи данных физического уровня по "надежной" линии линии связи выпоняется при помощи разбиения входных данных на "кадры", обычный размер которых колеблется от нескольких сот до нескольких тысяч байт. Кадры данных передаются последовательно с обработкой кадров подтверждения, отсылаемых обратно получателем, чем и достигается "надежность". Канальный уровень решает вопросы физической адресации (в противоположность сетевой или логической адресации), вопросы топологии сети, дисциплины в канале связи (т.е. каким образом конечная система использует сетевой канал), вопросы уведомления об ошибках, упорядоченной доставки кадров, а также вопросы управления потоком данных. Комутаторы, свичи, сетевые мосты (в некотором смысле) - устройства не посредственно рассматриваемые в рамках уровня передачи данных. Одна из проблема, возникающая на уровне передачи данных (а также и на большей части более высоких уровней), — это вопрос управления потоком данных, как не допустить ситуации, когда быстрый передатчик заваливает приемник данными. Может быть предусмотрен некий механизм регуляции, который информировал бы передатчик о наличии свободного места в буфере приемника на текущий момент. В широковещательных сетях существует еще одна проблема уровня передачи данных: как управлять доступом к совместно используемому каналу. Эта проблема разрешается введением специального дополнительного подуровня уровня передачи данных (LLC Logical Link Control) — подуровня доступа к носителю или управление логической связью, именно подуровень LLC реализует связь с протоколами сетевого уровня, тогда как подуровень MAC определяет особенности доступа к физической среде, одно из узких мест в понимании канального уровня модели OSI, это наличие этих двух подуровней MAC и LLC рассматривать которые можно только совместно, то есть друг без друга они не существуют, что доступно объясняет т.Карманов в ниже представленном видео фрагменте (16:50), и хотя там приводится более сложный пример с модемом, но и в широковещательных сетях, то есть тех которые мы привычно называем LAN сети, сети одного широковещательного домена, где по средствам MAC и LLC уровней а в конечном итоге уровня канального решается вопрос однозначной идентификации учасника среды передачи данных и далее формированию ARP таблиц сетевого уровня, существование их совершенно логично. (а далее можно спорить о достоинствах и недостатках сетевых моделей, что вопрос скорее философский чем практический)
Канальный и физический уровни связаны столь тесно и рассматривать их по отдельности видимо не стоило, так и поступили составители модели DOD по принципу "не умножай сущности без необходимости".
3-5.Сетевой (Адреса и маршрутиризация) --> Media layers
IPv4 • IPv6 • IPsec • ICMP • IGMP • ARP • RARP • RIP2 • OSPF • EIGRP
Сетевой уровень — это комплексный уровень, который обеспечивает соединение и выбор маршрута между двумя конечными системами, которые могут находиться в географически разных сетях. Маршрутизаторы, роутеры, устройства не посредственно связанные с сетевым уровнем, "шлюзы" локальных сетей поскольку сетевой уровень занимается операциями подсетей. Важнейшим моментом здесь является определение маршрутов пересылки пакетов от источника к пункту назначения. Маршруты могут быть жестко заданы и редко меняться, либо, что чаще, меняться динамически, чтобы избегать отказавших компонентов, они могут задаваться в начале каждого соединения, например, терминальной сессии, подключения к удаленной машине, то есть маршруты могут быть статическими и динамическими, как и совмещать то и другое. Наконец, они могут быть в высокой степени динамическими, то есть вычисляемыми заново для каждого пакета с учетом текущей загруженности сети. Если в подсети одновременно присутствует слишком большое количество пакетов, то сетевые устройства могут не справляться с возросшей нагрузкой, разрешение подобной ситуации также является задачей сетевого уровня в соединении с более высокими уровнями, которые адаптируют загрузку. В общем и целом, сетевой уровень занимается предоставлением определенного "уровня сервиса" (задержки времени передачи, вопросы синхронизации и согласования и другие). При "транзите" пакета из одной сети в другую также может возникнуть ряд проблем, например способ адресации, применяемый в одной сети, может отличаться от принятого в другой, сеть может вообще отказаться принимать пакеты из-за большого размера MTU. Сети могут быть разнородны по своей физической реализации, wi-fi, оптика, "медь", как следствие могут различаться протоколы и т.д и т.п. Именно сетевой уровень должен разрешать все эти проблемы, позволяя объединять разнородные сети. В широковещательных сетях проблема маршрутизации очень проста, поэтому в них сетевой уровень очень примитивный или вообще отсутствует.
Можно резюмировать так; Сетевой уровень отвечает за обеспечение связи между узлами сети и отвечает на такие вопросы, как: «Где искать другие узлы сети?» и «Можно ли соединиться с каким-то конкретным узлом сети?». Задача этого уровня обеспечить непротиворечивый интерфейс для программ, использующих сетевые соединения, независимо от типа физического уровня.
Сетевой уровень интернета основан на использовании протокола IP, краеугольного протокола intetnet и всех современных сетевых моделей (OSI/DOD).
4-4.Транспортный (Связь между конечными устройствами) -- >Host layers
TCP(Crypt) • UDP • SCTP • DCCP • RDP/RUDP • RTP • GRE
Транспортный уровень сегментирует и повторно собирает данные в один поток. Если уровень приложений, сеансовый уровень и уровень представлений заняты прикладными вопросами, четыре нижних уровня решают задачу транспортировки данных. Транспортный уровень пытается обеспечить услуги по транспортировке данных, которые изолируют верхние уровни от деталей ее реализации. В частности, заботой транспортного уровня является решение таких вопросов, как выполнение надежной транспортировки данных через многосетевой комплекс. Предоставляя надежные услуги, транспортный уровень обеспечивает механизмы для установки, поддержания и упорядоченного завершения действия виртуальных каналов, обнаружения и устранения неисправностей транспортировки, а также управления информационным, потоком (с целью предотвращения переполнения одной системы данными от другой системы). http://opds.sut.ru/old/electronic_manuals
Транспортный уровень имеет дело с "реальными данными для реальных приложений". На транспортном уровне используются три основных протокола - ICMP, TCP и UDP.
5-3.Сеансовый (Связь между хостами) --> Host layers
ADSP • H.245 • iSNS • NetBIOS • PAP • RPC • L2TP • PPTP • RTCP • SMPP • SCP • ZIP • SDP
Сеансовый уровень устанавливает, управляет и завершает сеансы взаимодействия приложений. Сеансы состоят из диалога между двумя или более объектами представления (сеансовый уровень обеспечивает своими услугами уровень представлений). Сеансовый уровень синхронизирует диалог между объектами уровня представлений и управляет обменом информации между ними. В дополнение к основным функциям сеансовый уровень предоставляет средства для синхронизации участвующих в диалоге сторон, обеспечивает класс услуг и средства формирования отчетов об особых ситуациях, возникающих на сеансовом уровне, а также на уровнях приложений и представлений. Позволяет в ходе длинных передач сохранять информацию о состоянии этих передач в виде контрольных точек и в случае "отказа" предоставляет возможность вернуться к последней контр. точке, а не начинать все сначала. Функции этого уровня зачастую объеденены с функциями прикладного уровня и реализуются в одном протоколе.
6-2.Представления (Представление данных) --> Host layers
Уровень представлений отвечает за то, чтобы информация, посылаемая из уровня приложений одной системы, была читаемой для уровня приложений другой системы. При необходимости уровень представлений преобразовывает форматы данных пугем использования общего формата представления информации.
7-1.Прикладной (Сетевые процессы с приложениями) --> Host layers
BGP • HTTP(S) • DHCP • IRC • SNMP • DNS(SEC) • NNTP • XMPP • SIP • IPP • NTP • SNTP • Электронная почта (SMTP • POP3 • IMAP4) • Передача файлов (FTP • TFTP • SFTP • WebDAV) • SMB • Удалённый доступ (rlogin • Telnet • SSH • RDP)
Другие прикладные
Bitcoin • OSCAR • CDDB • Multicast FTP • Multisource FTP • BitTorrent • Gnutella • Skype
Уровень приложений — это самый близкий к пользователю уровень модели OSI. Он отличается от других уровней тем, что не предоставляет услуги ни одному другому уровню модели OSI и только обслуживает прикладные процессы, находящиеся вне пределов модели OSI. Примерами таких прикладных процессов могут служить программы работы с электронными таблицами, текстовые процессоры и программы работы банковских терминалов. Уровень приложений идентифицирует и устанавливает доступность предполагаемых партнеров для связи, синхронизирует совместно работающие прикладные программы, а также устанавливает договоренность о процедурах восстановления после ошибок и контроля целостности данных. Уровень приложений также определяет степень достаточности ресурсов для осуществления предполагаемой связи.
Приложения посылают запросы на открытие сетевых соединений, передают данные в сеть, получают данные из сети и обрабатывают эти данные. Веб-броузеры, клиенты электронной почты, серверы JSP и т. п. - все это сетевые приложения. Приложения взаимодействуют только с сетевым уровнем и с пользователем
![](https://www.google.com/images/icons/product/drive-32.png)
Таненбаум "Компютерные Сети" <-------- PDF
Cisco LAN Switching (Switched Ethernet) <-------- PDF Протоколы по уровням.doc
Канальный уровень
Кадры (фреймы) - это логически организованная структура, организованная канальным уровнем, в которую можно помещать данные, кадр содержит: заголовок(Header), данные(Data), и концевик, трейлер(CRC). Канальный уровень формирует кадры из пакетов как собственные протокольные еденицы данных. Канальный уровень помещает пакет в поле данных одного или нескольких кадров и заполняет собственной служебной информацией заголовок кадра
Пакет - это единица информации, передаваемая между устройствами сети как единое целое, пакет может содержать в себе несколько пакетов. Фреймы (кадры) представляют информацию, используемую на канальном уровне модели OSI, а пакеты чаще относятся к сетевому и транспортному уровню.
Сетевой уровень отправителя передает канальному уровню пакет (дейтаграмму), а также указание, какому узлу его передать. Канальный уровень создает кадр, который имеет поле данных и заголовок. Канальный уровень помещает (инкапсулирует) пакет в поле данных кадра и заполняет соответствующей служебной информацией заголовок кадра. Основной, важнейшей информацией заголовка кадра является адрес назначения, на основе которого коммутаторы сети будут продвигать (forvarding) пакет , канальный уровень фиксирует границы кадра, помещая специальную последовательность битов в его начало и конец, а затем добавляя к кадру контрольную сумму. Контрольная сумма вычисляется по некоторому алгоритму как функция от всех байтов кадра. На стороне получателя канальный уровень группирует биты, поступающие с физического уровня, в кадры, снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой, переданной в кадре. Если они совпадают, кадр считается правильным. Если же контрольные суммы не совпадают, фиксируется ошибка.
Дейтаграмма, датаграмма, сегмент (data-грамма, аналогия tele-грамма) - блок информации передаваемой через сеть, блок информации, посланный как пакет сетевого уровня, самодостаточный, независимый объект данных, содержащий информацию об отправителе и получателе данных (protocol data unit, PDU). В случае протокола IP, IP-дейтаграммы, в случае протокола UDP, UDP-дейтаграммы.
С первого взгляда в употребляемой терминологии: датаграммы, пакеты, кадры, фреймы, творится полный бардак, следует помнить, что во всех случаях разговор ведется о данных, потоках данных, блоках данных, на физическом уровне это электрические импульсы с фиксированными потенциалами и длинной, часто изображаемые в виде осцилограммы, на логических уровнях это грубо говоря поток нолей и единиц, то есть во всех случаях разговор ведется об одном и том же, от того понятия (при попытке их осмыслить) часто совпадают, но на то и существуют сетевые модели (описательные схемы) дабы развести понятие "данные" применительно к разным уровням (уровням абстакций по средствам инкапсуляции, верхних в нижние и декапсуляции в обратную сторону). В результате на канальном уровне IP "дейтаграмма" которая смогла поместиться в "кадр"(что далеко не всегда происходит), становится "кадром, фреймом", если не помещается то происходит фрагментация до установленного MTU (и вот тут не плохая статья по этому поводу) и четкой границы по смене определений нет и быть не может (да и зачем, так веселей). Вообщем формализация понятия "данные" в "сетях передачи данных", на каждом этапе их трансформации процесс не однозначный. Итого:
пакты чаще относят к транспортному уровню (хотя это спорно, термин "пакет" употребляется где ни попадя и в разных сочетаниях)
дейтаграммы к сетевому, транспортному (сегменты)
кадры к канальному (однозначно, наверно..)
PS: Как сообщает нам т.Олифер с супругой: "не стоит относиться к путанице в терминологии очень строго. Особенно это относится к различиям в терминологии традиционной телефонии и более новой области — компьютерных сетей. Процесс конвергенции только усугубил проблему терминологии, так как многие механизмы этих сетей стали общими, но сохранили за собой по паре (иногда и больше) названий, пришедших из каждой области. Кроме того, существуют объективные причины для неоднозначного понимания терминов." (ст.192) ..., да и какая разница в чем мерить в попугаях или мартышках, хотя в попугаях более впечатляет, конечно желательно понимать о чем идет речь, то есть исходя из контекста.
Cisco в своих "Сisco press", так формализует эти понятия:
Дейтаграмма (datagram) — Блок информации, посланный как пакет сетевого уровня,через передающую среду, без предварительного установления виртуального канала.
IP-дейтаграммы — основные информационные блоки в Internet. Термины ячейка, фрейм, сообщение, пакет и сегмент (cell, frame, message, packet и segment) также используются для описания логически сфуппированных блоков информации на разных уровнях эталонной модели OSI и в различных технологических циклах.
Пакет (packet) —Логически сгруппированный блок информации, который включает заголовок, содержащий контрольную информацию, и (обычно) пользовательские данные.
Термин "пакет" чаще всего употребляется в контексте блоков данных сетевого уровня. Термины "дейтаграмма", "фрейм", "сообщение" и "сегмент" (datagram, frame, message,segment) также используются для описания логически сфуппированных блоков информации на разных уровнях эталонной модели OSI и в различных технологических циклах.
А вот как определяет все это Charles M. Kozierok в своей великолепной книге The TCP/IP Guide (ст.71), снабженной кстати прекрасными "интуитивно понятными" схемами и по моему легко переводимой на русский. (во всяком случае google-translate делает это на раз, два , три)
Common Names For Messages
The most common terms that are used for messages are the following:
Packet: This term is considered by many to most correctly refer to a message sent by protocols operating at the network layer of the OSI Reference Model. So, you will commonly see people refer to “IP packets”. However, this term is commonly also used to refer generically to any type of message, as I mentioned at the start of this topic.
Datagram: This term is basically synonymous with “packet” and is also used to refer to network layer technologies. It is also often used to refer to a message that is sent at a higher level of the OSI Reference Model (more often than “packet” is).
Frame: This term is most commonly associated with messages that travel at low levels of the OSI Reference Model. In particular, it is most commonly seen used in reference to data link layer messages. It is occasionally also used to refer to physical layer messages, when message formatting is performed by a layer one technology. A frame gets its name from the fact that it is created by taking higher-level packets or datagrams and “framing” them with additional header information needed at the lower level.
Cell: Frames and packets, in general, can be of variable length, depending on their contents; in contrast, a cell is most often a message that is fixed in size. For example, the fixed-length, 53-byte messages sent in Asynchronous Transfer Mode (ATM) are called cells. Like frames, cells usually are used by technologies operating at the lower layers of the OSI model.
Protocol Data Unit (PDU) and Service Data Unit (SDU): These are the formal terms used in the OSI Reference to describe protocol messages. A PDU at layer N is a message sent between protocols at layer N. It consists of layer N header information and an encapsulated message from layer N+1, which is called both the layer N SDU and the layer N+1 PDU. After you stop scratching your head, see the topic on OSI model data encapsulation for a discussion of this that may actually make sense.
I should also point out that there are certain protocols that use unusual names to refer to their messages, which aren’t used elsewhere in the world of networking. One prominent example is the Transmission Control Protocol (TCP), which calls its messages segments.
http://citforum.ru/nets/protocols
https://www.intuit.ru/studies/
http://www.askit.ru/ethernet_frame.htm <-------------
(Формирование, сбор и анализ кадров)
Сервисы, предоставляемые сетевому уровню
Задача канального уровня заключается в предоставлении "сервисов" сетевому уровню, получаемых в результате преобразования не обработанного потока бит, поступающего с физического уровня, в поток кадров (фреймов), которые могут быть использованы сетевым уровнем. Основным сервисом является передача данных от сетевого уровня передающей машины сетевому уровню принимающей машины. На передающей машине работает "некий" процесс, который передает биты с сетевого уровня на канальный уровень для передачи их по назначению. Работа канального уровня заключается в передаче этих битов на принимающую машину, так чтобы они могли быть переданы сетевому уровню принимающей машины, канальный уровень наиболее очевидный, "простой" пример повышения уровня абстракции данных, или понижения.
Канальный уровень может предоставлять различные сервисы. Их набор может быть разным в разных протоколах. Обычно возможны следующие варианты, которые могут быть рассмотренны.
Сервис без подтверждений, без установки соединения.
Сервис с подтверждениями, без установки соединения.
Сервис с подтверждениями, ориентированный на соединение.
Сервис без подтверждений и без установки соединения заключается в том, что передающая машина посылает независимые кадры принимающей машине, и принимающая машина не посылает подтверждений о приеме кадров. Хороший пример канального уровня, предоставляющего сервис такого класса, — Ethernet. Никакие соединения заранее не устанавливаются и не разрывается после передачи кадров. Если какой-либо кадр теряется из-за шума в линии, то на канальном уровне не предпринимается никаких попыток восстановить его. Данный класс сервисов приемлем при очень низком уровне ошибок. В этом случае вопросы, связанные с восстановлением потерянных при передаче данных, могут быть оставлены верхним уровням. Он также применяется в линиях связи реального времени, таких как передача речи, в которых лучше получить искаженные данные, чем получить их с большой задержкой.
Следующим шагом в сторону повышения надежности является сервис с подтверждениями, без установки соединения. При его использовании соединение также не устанавливается, но получение каждого кадра подтверждается. Таким образом, отправитель знает, дошел ли кадр до пункта назначения в целости или потерялся. Если в течение установленного интервала времени подтверждения не поступает, кадр посылается снова. Такой сервис полезен в случае использования каналов с большой вероятностью ошибок, например, в беспроводных системах. Среди сервисов такого класса можно назвать, например, 802.11 (WiFi), предоставление подтверждений является скорее оптимизацией, чем требованием. Сетевой уровень всегда может послать пакет и ожидать подтверждения его доставки удаленной машине. Если за установленный период времени подтверждение не будет получено отправителем, сообщение может быть выслано еще раз.
Проблема при использовании данной стратегии заключается в том, что она зачастую оказывается неэффективной. Кадры обычно имеют жесткое ограничение максимальной длины, связанное с аппаратными требованиями, а также существует определенная задержка доставки. На сетевом уровне эти параметры неизвестны. Сетевой уровень может разбивать сообщения, скажем, на 10 кадров. В среднем, два из них потеряются по дороге. Передача сообщения таким методом может занять очень много времени. Если подтверждать получение отдельных кадров, то ошибки можно будет исправлять напрямую и гораздо быстрее. В таких надежных каналах, как, например, оптоволоконный кабель, накладные расходы на подтверждения на канальном уровне только снизят пропускную способность канала, однако для беспроводной связи (ненадежной по своей природе) такие расходы окупятся и уменьшат время передачи длинных сообщений.
Наиболее сложным сервисом, который может предоставлять канальный уровень, является ориентированный на соединение сервис с подтверждениями. При использовании данного метода источник и приемник, прежде чем передать друг другу данные, устанавливают соединение. Каждый посылаемый кадр нумеруется, а канальный уровень гарантирует, что каждый посланный кадр действительно принят на другой стороне канала связи. Кроме того, гарантируется, что каждый кадр был принят всего один раз и что все кадры были получены в правильном порядке. Таким образом, ориентированный на соединение сервис предоставляет процессам сетевого уровня эквивалент надежного потока битов. Он подходит для длинных ненадежных связей, таких как спутниковый канал или междугородное телефонное соединение. В службе без установления соединения возможно, что при потере подтверждения один и тот же кадр будет послан несколько раз и, следовательно, несколько раз получен. Это лишняя нагрузка на канал и неразумное расходование полосы пропускания.
При использовании ориентированного на соединение сервиса передача данных состоит из трех различных фаз. В первой фазе устанавливается соединение, при этом обе стороны инициализируют переменные и счетчики, необходимые для слежения за тем, какие кадры уже приняты, а какие — еще нет. Во второй фазе передаются кадры данных. Наконец, в третьей фазе соединение разрывается, и при этом освобождаются все переменные, буферы и прочие ресурсы, использовавшиеся во время соединения.
Что касается кадров, то канальный уровень использует различные методы формирования кадров, включая подсчет байтов, символьное и битовое заполнение. Протоколы канального уровня могут обладать возможностями контроля ошибок для обнаружения и исправления поврежденных кадров и повторной передачи потерянных. Во избежание опережения медленного приемника быстрым отправителем применяется управление потоком. Механизм скользящих окон широко используется для удобного объединения контроля ошибок и управления потоком. Для окна размером в один пакет применяется протокол с остановкой и ожиданием.
На сегодняшний день для "интернета" в качестве основного протокола линий «точка — точка» используется PPP. Он предоставляет сервис без установки соединения и без подтверждения. Для разделения кадров применяются флаговые байты, а для распознавания ошибок — коды CRC. С помощью этого протокола пакеты передаются по множеству типов соединений, включая каналы SONET в глобальных сетях и ADSL для домашних подключений.
Коммутация на канальном уровне, сетевые мосты
В общем и целом, среди множества возможных подходов к решению задачи коммутации абонентов в сетях выделяют два основополагающих, к которым относят коммутацию каналов и коммутацию пакетов (Ethernet - пример стандартной технологии с коммутацией пакетов), коммутация на канальном уровне по средствам аппаратных переключателей (просто мостов, свичей, коммутаторов), самый очевидный пример коммутации пакетов. Объединение(коммутация) сетей решается при помощи устройств именуемых мостами( bridges). Коммутаторы Ethernet — это современное название мостов; они обеспечивают функциональность, которая идет дальше классического Ethernet и концентраторов (хабов) Ethernet.
Если быть точным в определениях, разница между мостом и комутатором все же есть принято считать, что разница между мостом и коммутатором состоит в том, что мост в каждый момент времени может осуществлять передачу только одного потока кадров и только между двумя портами, а коммутатор способен одновременно передавать несколько потоков данных между любыми своими портами. Другими словами, мост передает кадры последовательно, а коммутатор параллельно (что не относится к виртуальным мостам (например Linux-bridg), но это вопрос терминологии). Видимо можно сказать проще, что мосты делят сеть на два сегмента или широковещательных домена, условно правый и левый, а коммутаторы - свичи это техническое продолжение мостов, то есть очень в общем это одно и тоже.
Мосты работают на канальном уровне. Они анализируют адреса, содержащиеся в кадрах этого уровня, и в соответствии с ними осуществляют маршрутизацию ("маршрутиризацию" канального уровня то есть кадров, "соответствующий адрес в соответствующий порт"). Поскольку мосты не исследуют сами данные, передающиеся в кадрах, то они одинаково хорошо справляются с пакетами IP, а также с другими типами пакетов, просто говоря , при получении из сети кадра (пакета) сверяет MAC-адрес назначения (Media Access Control) address - уникальный номер, используется для идентификации отправителя и получателя фрейма(кадра)) последнего и, если он не принадлежит данной подсети, передаёт кадр дальше в тот сегмент, которому предназначался данный кадр; если кадр принадлежит данной подсети, мост ничего не делает.
В отличие от мостов (комутаторов), концентратор (хаб, 1 уровень OSI), распространяет трафик от одного подключённого устройства ко всем остальным, коммутатор же передаёт данные только непосредственно получателю (исключение составляет широковещательный трафик всем узлам сети и трафик для устройств, для которых неизвестен исходящий порт коммутатора). Это повышает производительность и безопасность сети, избавляя остальные сегменты сети от необходимости (и возможности) обрабатывать данные, которые им не предназначались.
В отличие от мостов, маршрутизаторы (routers) анализируют адреса в пакетах и работают, основываясь на этой информации, поэтому они могут работать только с теми протоколами, для которых предназначены. Программное обеспечение маршрутизатора не интересуется адресами кадров как и не знает, откуда эти кадры взялись, маршрутизаторы соединяют сети на "основе"(если так можно сказать) сетевого уровня.
Кроме соединения сетей, естественным образом напрашивается задача противоположная, разделение одной физической локальной сети на несколько логических локальных сетей, так называемых виртуальных VLAN(Virtual LAN), задача успешно решенная средствами виртуализации и унаследовавшая все её достоинства и недостатки (по средством тех же мостов только "виртуальных", маркировкой кадров флагами виртуальной сети), задача столь часто встречающаяся в наше время.
Не полохо для понимания вопроса обратитьс к истории и собственно проблеме, решение которой и явило на свет все совершенства современного бытия, проблеме "домена коллизий". Разделяемой средой (shared medium) называется физическая среда передачи данных, к которой непосредственно подключено несколько передатчиков узлов сети. Причем в каждый момент времени только один из передатчиков какого-либо узла сети получает доступ к разделяемой среде и использует ее для передачи данных приемнику другого узла, подключенному к этой же среде. Протоколы, в которых станции прослушивают среду передачи данных и действуют в соответствии с этим, называются протоколами с контролем несущей. Один из них это - 1-настойчивый протокол CSMA (Carrier-Sense Multiple Access — множественный доступ с контролем несущей) Когда у станции появляются данные для передачи, она сначала прослушивает канал, проверяя, свободен он или занят. Если канал бездействует, то станция отправляет данные. В противном случае, когда канал занят, станция ждет, пока он освободится. Затем станция передает кадр. Если происходит столкновение, станция ждет в течение случайного интервала времени, затем снова прослушивает канал и, если он свободен, пытается передать кадр еще раз.
Такой протокол называется протоколом CSMA с настойчивостью 1, так как станция передает кадр с вероятностью 1, как только обнаружит, что канал свободен, и можно было бы ожидать, что коллизий вообще происходить не будет, за исключением редких случаев одновременной отправки, но это не так. Если две станции придут в состояние готовности в то время, когда передает какая-то третья станция, обе будут ждать, пока она не закончит передачу, после чего сами одновременно станут передавать, и в результате произойдет столкновение.
Вторым протоколом с опросом несущей является не настойчивый протокол CSMA. В данном протоколе предпринята попытка сдержать стремление станций начинать передачу, как только освобождается канал. Как и выше, прежде чем начать передачу, станция опрашивает канал. Если никто не передает в данный момент по каналу, станция начинает передачу сама. Однако если канал занят, станция не ждет освобождения канала, постоянно прослушивая его и пытаясь захватить сразу, как только он освободится, как в предыдущем протоколе. Вместо этого станция ждет в течение случайного интервала времени, а затем снова прослушивает линию. Очевидно, данный алгоритм должен привести к лучшему использованию канала и к большим интервалам ожидания, чем протокол CSMA с настойчивостью 1.
Третий, это протокол CSMA с настойчивостью p. Он применяется в дискретных каналах и работает следующим образом. Когда станция готова передавать, она опрашивает канал. Если канал свободен, она с вероятностью p начинает передачу. С вероятностью q = 1 – p она отказывается от передачи и ждет начала следующего такта. Этот процесс повторяется до тех пор, пока кадр не будет передан или какая-либо другая станция не начнет передачу. В последнем случае станция ведет себя так же, как в случае столкновения. Она ждет в течение случайного интервала времени, после чего начинает все снова. Если при первом прослушивании канала он оказывается занят, станция ждет следующего интервала времени, после чего применяется тот же алгоритм.
Следующее ухищерение по борьбе с не распределенным доменом коллизий еще более замысловато, это способность станций быстро распознавать коллизию и немедленно прекращать передачу (а не завершать ее), так как данные все равно искажены. Эта стратегия экономит время, и улучшается производительность канала. Такой протокол, называемый CSMA/CD (Carrier-Sense Multiple Access with Collision Detection — множественный доступ с контролем несущей и обнаружением коллизий), котрый и является основой чрезвычайно популярных LAN Ethernet (конкурентный Ethernet).
В протоколе CSMA/CD, так же как и во многих других протоколах локальных сетей, применяется следущая концептуальная модель: в момент времени t-0 одна из станций закончила передачу кадра. Все остальные станции, готовые к передаче, теперь могут попытаться передать свои кадры. Если две станции или более одновременно начнут передачу, то произойдет столкновение. Обнаружив коллизию, станция прекращает передачу, ждет случайный период времени, после чего пытается снова, при условии, что к этому моменту не начала передачу другая станция. Таким образом, наша модель протокола CSMA/CD будет состоять из чередования периодов конкуренции и передачи, а также периодов простоя канала (когда все станции молчат).
Однако проблема домена коллизий всеми этими "выкрутасами" решена быть не могла , решение пришло скорее в силу исторического развития Ethernet от классического до комутируемого - Switched Ethernet, с приходом "свитчей", устройств канального уровня, результатом явились сети Switched Ethernet работающие на скоростях 100, 1000 или 10 000 Мбит/с, которые носят названия Fast Ethernet, Gigabit Ethernet и 10-Gigabit Ethernet, по средствам которых "разделяемая среда" (в смысле среда возникновения коллизий, сегмент сети) не ограничивалась или регулировалась, а полностью исчезла. Ну и конечно следующим шагом по оптимизации Ethernet 802.3 явилась виртуализация потоков данных, то есть доп-заголовок продокола 802.1 Q, но это отдельная тема.
Сегодня на практике используется только коммутируемый Ethernet, на ряду с оптоволокном возможно наиболее значительная веха в истории развития "Интернета".
Итак, мосты, свичи, комутаторы (смотря каков контекст употребления): мосты функционируют на канальном уровне, точнее, на подуровне контроля доступа к среде передачи MAC, и тут полезно разобрать два подуровня MAC и LLC, следующее определение возможно наиболее полно:
Управление доступом к среде, проверка доступности разделяемой среды (media access control, MAC) — подуровень канального уровня модели OSI, согласно стандартам IEEE 802. MAC является одним из расширений модели OSI. IEEE, разделяет канальный уровень на два подуровня: подуровень управления доступом к среде (MAC) и подуровень управления логической связью (LLC - Logical Link Control ) одной из задач которого является установление логического соединения между узлами, нижним уровнем является MAC. Таким образом, MAC выступает в качестве интерфейса между подуровнем LLC и физическим(первым)уровнем. MAC обеспечивает адресацию и механизмы управления доступом к каналам. Адреса с которыми работает протокол канального уровня, используются для доставки кадров только в пределах этой сети (суммы сегментов сети), для перемещения пакетов между сетями применяются адреса следующего, сетевого уровня.
То что мосты позволяют хостам в различных локальных сетях (сегментах) взаимодействовать друг с другом, как если бы они находились в одной сети, это очевидно, а схематически работа моста выглядит следующим образом:
Пусть хост А из локальной сети Ethernet хочет передать пакет сетевого уровня хосту Б в локальной сети Token Ring (для большей наглядности функционала). Пакет передается подуровню LLC, а после добавления LLC-заголовка спускается на подуровень MAC, где получает заголовок и концевик. Получившийся блок данных передается по кабелю и в конце концов достигает моста. MAC-заголовок удаляется, и пакет (LLC-заголовок не трогается) передается MAC-подуровнем LLC-подуровню моста. После этого пакет проделывает путь в обратном порядке по сети Token Ring. Если бы пакет предназначался той же сети, что и хост А, то он был бы просто проигнорирован мостом.
Пакет прибывает из более высокого уровня и спускается на уровень MAC Ethernet. Он приобретает заголовок Ethernet (а также метку конца(концевик)). Этот кадр передается физическому уровню, выходит по кабелю и принимается мостом. В мосте кадр передается с физического уровня на уровень MAC Ethernet. Этот уровень расширяет обработку по сравнению с уровнем MAC Ethernet на станции. Он передает на ретранслятор, все еще в пределах уровня MAC. Функция ретрансляции моста использует только заголовок MAC Ethernet, чтобы определить, как обработать кадр. В нашем случае он передает кадр тому порту уровня MAC Ethernet, который используется для достижения станции D, и кадр продолжает свой путь.
В общем случае, ретрансляторы на некотором уровне могут переписать заголовки для этого уровня. Мост ни в коем случае не должен смотреть внутрь кадра и узнавать, что он переносит IP-пакет; это не важно для обработки мостом и нарушило бы иерархическое представление протокола. Также важно, что мост, имеющий k портов, будет иметь k экземпляров MAC-уровней и физических уровней. В нашем простом примере k = 2.
Проблемы существуют как при организации моста между двумя разными, так и между двумя одинаковыми локальными сетями. Что касается разнотипных локальных сетей, то это, например, несовпадение форматов кадров (блок данных канального уровня) не однотипных локальных сетей, различия в пропускной способности (например, Ethernet - 10 Мбит/с, а Token Ring - 4 или 16 Мбит/с) и максимальном размере кадров, и т.д. Конечно, в случае однотипных локальных сетей проблем меньше, но совсем без проблем не обойтись. Например, два сегмента Ethernet могут иметь разную загруженность, в этом случае буфер для пересылаемых в перегруженный сегмент кадров может переполниться, и мост будет вынужден отказываться от вновь поступающих пакетов.
Более простой пример, соединения однотипных сетей:
Решение о продвижении (forvarding) пакета принимается на основе таблиц коммутации (маршрутиризации, продвижения ..... в зависимости от рассматриваемого уровня), ставящей в соответствие адресам назначения пакетов информацию, однозначно определяющую следующий по маршруту транзитный или конечный узел, в качестве такой информации, в том числе, выступают идентификаторы интерфейсов данного коммутатора или адреса входных интерфейсов коммутаторов, следующих по маршруту.
ТИПЫ МОСТОВ
Наиболее часто применяемые это прозрачные мосты, термин «прозрачные» мосты объединяет большую группу устройств, поэтому их принято группировать в категории, базирующиеся на различных характеристиках изделий:
Прозрачные мосты (transparent bridges) объединяют сети с едиными протоколами канального и физического уровней модели OSI;
Транслирующие мосты (translating bridges) объединяют сети с различными протоколами канального и физического уровней;
Инкапсулирующие мосты (encapsulating bridges) соединяют сети с едиными протоколами канального и физического уровня через сети с другими протоколами.
Для "обычного" пользователя операционных систем наиболее часто встречается программная реализация мостов. Режим бриджинга присутствует в некоторых видах высокоуровневого сетевого оборудования и операционных систем, где используется для «логического объединения» нескольких портов в единое целое (с точки зрения вышестоящих протоколов), превращая указанные порты в виртуальный коммутатор. У Microsoft этот режим называется «подключения типа мост». В операционной системе Linux при объединении интерфейсов в мост создаётся новый интерфейс brN (N — порядковый номер, начиная с нуля — br0). Для создания мостов используется пакет bridge-utils, входящий в большинство дистрибутивов Linux.
ПРОЗРАЧНЫЕ МОСТЫ
Одним из стандартов на мосты является Transparent Bridging. Разработчики этого стандарта ставили перед собой задачу определения полностью прозрачного моста. С их точки зрения, купив мост для объединения двух локальных сетей, вам остается только подсоединить коннекторы к мосту, и все тут же должно начать работать. Никаких изменений в программном и аппаратном обеспечении, никакой настройки адресов, никакой загрузки маршрутных таблиц. Просто подключаете кабели, и готово.
Прозрачный мост работает в режиме приема всех пакетов (promiscuous mode).
При получении кадра мост должен принять решение об отбрасывании или пересылке кадра, причем в последнем случае многопортовый мост должен также решить, в какую локальную сеть переслать кадр. Последнее решение принимается на основе неупорядоченной таблицы адресов. Эта таблица устанавливает соответствие между всеми известными мосту адресами получателей и линиями (портами, сетями), по которым кадр надо отправить, чтобы он достиг адресата. Например, в таблице М2 хост А будет значиться как находящийся в сети 2, так как все, что мост М2 должен знать - это в какую сеть ему следует передать полученный кадр, чтобы тот в конце концов достиг адресата.
При первом включении моста все строки таблицы пусты. Мост не знает, какой адресат в какой сети находится, поэтому он использует алгоритм веерной рассылки (flooding algorithm): каждый полученный кадр с неизвестным адресатом пересылается во все сети, за исключением той, из которой он получен. Постепенно мост узнает, где какой адресат находится (процесс обучения - backward learning). После чего кадры пересылаются только в соответствующую локальную сеть.
Прозрачные мосты узнают о местонахождении адресатов с помощью алгоритма обратного обучения (backward learning). Как упоминалось выше, мост работает в режиме приема всех пакетов, поэтому он видит все кадры в каждой из подсоединенных к нему локальных сетей. Взглянув на адрес отправителя, мост может определить, через какую сеть какая машина доступна. Например, если мост 2 на рисунке видит, что кадр с адресом отправителя G получен из локальной сети 4, то он заносит в таблицу информацию, что все пакеты, предназначенные G, должны пересылаться в сеть 4.
Топология сети может изменяться в результате включения/выключения и перемещения мостов и хостов. Для учета этой динамики каждая адресная запись таблицы содержит время получения кадра. При получении кадра с уже известным мосту адресом отправителя запись о времени обновляется. Периодически мост просматривает таблицу и удаляет все записи, чей возраст старше нескольких минут. В результате, если компьютер отключается от одной сети и переносится в другую, то через несколько минут он снова сможет работать в сети без какого-либо вмешательства человека. Кроме того, если компьютер не посылает кадры в течение какого-то времени, то любой предназначеный ему трафик будет рассылаться во все сопредельные сети, пока он сам что-либо не передаст.
Таким образом, то, как мост поступает с кадром, зависит от того, из какой сети кадр получен и кому он адресуется:
Если отправитель и получатель находятся в одной сети, то кадр отбрасывается.
Если отправитель и получатель находятся в разных сетях, то кадр пересылается в сеть, через которую он может достигнуть получателя.
Если получатель неизвестен, то кадр рассылается во все сопредельные сети.
При определенных условиях кадры могут зацикливаться. Простом пример: Пусть две сети 1 и 2 соединены с помощью двух параллельных мостов М1 и М2 (например, для обеспечения избыточности или в силу необходимости). Если компьютер из сети 1 передает кадр неизвестному адресату, то сначала, например, М1, а затем М2 передают этот кадр в сеть 2 в соответствии с алгоритмом веерной рассылки. Вскоре М2 получает пересланную М1, а М1 - пересланную М2 в сеть 2 копию исходного кадра, адрес получателя которого неизвестен, и передают их поэтому обратно в сеть 1, и так до бесконечности.
Решение данной проблемы - в создании древовидной топологии (Spanning Tree), когда некоторые соединения между локальными сетями по существу игнорируются, причем из одной сети можно попасть в другую только одним путем. Для построения дерева мосты должны выбрать вначале корневой мост (он будет корнем дерева), что достигается путем рассылки широковещательных пакетов с серийным номером производителя (свича, эти номера уникальны, а любое сетевое устройство имеет свой ID, обычно это MAC адрес). Мост с наименьшим номером становится корневым. Далее, мосты определяют дерево с кратчайшими путями до корня. В случае выхода какого-либо моста из строя это дерево определяется заново
Протокол агрегирования каналов: EtherChannel
Cisco: Агрегация канала EtherChannel
Более замысловатая сетевая архитектура, использующая избыточные соединения. Ниже показаны два параллельных соединения между двумя мостами. Эта конструкция гарантирует, что, если одно соединение нарушено, сеть не будет разделена в два набора компьютеров, которые не могут общаться друг с другом.
Такое решение, однако, создает некоторые дополнительные проблемы, поскольку в топологии образуются кольца. В качестве примера, иллюстрирующего указанные проблемы, рассмотрим кадр, отправленный А с ранее неизвестным адресом назначения. Каждый мост, действуя по обычным правилам обработки кадров с неизвестным получателем, использует метод заливки. В данном примере это означает, что кадр из А попадает к мосту В1, F0 .
Мост посылает копии этого кадра во все остальные свои порты. Мы рассмотрим только порты, соединяющие В1 и В2 (хотя кадр будет послан и в другие). Так как из В1 в В2 есть два соединения, в В2 попадут две копии кадра. Они показаны на рис. как F1 и F2 . Вскоре после этого мост В1 получает эти кадры. Разумеется, он не знает (и не может знать), что это копии одного кадра, а не два разных кадра, посланных один за другим. Поэтому мост В2 отправляет копии кадра F1 во все свои порты. Так возникают F3 и F4, которые по двум соединениям отправляются обратно в В1. Мост В1 видит два новых кадра с неизвестным адресом назначения и копирует их снова. Этот цикл продолжается вечно.
Решение данной проблемы заключается в установлении связи между мостами и наложении на реальную топологию сети связующего дерева (spanning tree), достигающего каждого моста. В результате некоторые возможные соединения между мостами игнорируются с целью создания фиктивной бескольцевой топологии, которая является подмножеством реальной топологии
Чтобы построить связующее дерево, мосты применяют следующий распределенный алгоритм. Каждый мост периодически рассылает по всем своим портам конфигурационное сообщение своим соседям и обрабатывает сообщения, полученные от других мостов. Эти сообщения не передаются дальше, так как их цель — построение дерева, которое затем используется для пересылки, в некотором смысле тот же процесс обучения только для мостов (свичей). Автором распределенного алгоритма построения связующего дерева является Радья Перлман (Radia Perlman). Ее задачей было решить проблему объединения локальных сетей без циклов. Ей была дана неделя на решение этой задачи, но она придумала идею алгоритма связующего дерева за один день, так что у нее осталось время изложить ее в виде стихотворения (Perlman, 1985).
I think that I shall never see
A graph more lovely than a tree.
A tree whose crucial property
Is loop-free connectivity.
A tree which must be sure to span.
So packets can reach every LAN.
First the Root must be selected
By ID it is selected.
Least cost paths from Root are traced
In the tree these paths are placed.
A mesh is made by folks like me
Then bridges find a spanning tree.
Алгоритм связующего дерева стандартизован как IEEE 802.1D и используется уже много лет. В 2001 году он был пересмотрен для более быстрого нахождения нового связующего дерева после изменения топологии.
![](https://www.google.com/images/icons/product/drive-32.png)
![](https://www.google.com/images/icons/product/drive-32.png)
![](https://www.google.com/images/icons/product/drive-32.png)
![](https://www.google.com/images/icons/product/drive-32.png)
![](https://www.google.com/images/icons/product/drive-32.png)
Пока комитеты ISO спорили о своих стандартах, за их спиной менялась вся концепция организации сетей и по всему миру внедрялся протокол TCP/IP; И вот, когда протоколы ISO были наконец реализованы, выявился целый ряд проблем:
{
эти протоколы основывались на концепциях, не имеющих в современных сетях никакого смысла;
их спецификации были в некоторых случаях неполными;
по своим функциональным возможностям они уступали другим протоколам;
наличие многочисленных уровней сделало эти протоколы медлительными и трудными для реализации;
}
Сейчас даже самые ярые сторонники этих протоколов признают, что OSI постепенно движется к тому, чтобы стать маленькой сноской на страницах истории компьютеров.
— Эви Нэмет Эви Немет - Unix и Linux. Руководство системного администратора - 2012
PS:
Возможно следует заметить, что когда разговор идет о моделях OSI или TCP/IP, то разговор идет о "Эталонных моделях", некой парадигме не догмату (первообраз - парадейгма «порождающая модель») существование которой совершенно необходимо при рассмотрении, обсуждении и создании сетевых архитектур, что зачастую не понимается людьми не столкнувшимися с этим практически, ни модель OSI ни DOD, не являются неприложными стандартами для существования сети, единого стандарта нет и существование его в будущем весьма туманно.., а на практике если вспомнить, что стек TCP/IP является встроенным в большинство операционных систем, и Microsoft далеко не исключение, а для *nix систем он и вовсе "родной", то очевидно что модель DOD наиболее употребима, .. однако следует помнить, что это просто модель, описательная схема.
Сетевые модели суть навигаторы, по локализации вопросов возникающих при решении тех или иных проблем сети, способ взглянуть на работу сети как на логическую конструкцию, которой сеть и является, и не смотря на всю критику сетевой модели OSI (что без сомнения является признаком хорошего тона), она точно как и DOD несет ту же нагрузку и смысл, часто дополняя недостатки последней, иногда называется "справочная модель" (basic reference model).
SUN - The Network is the Computer — любая вычислительная система представляет собой сеть, узлы которой связаны трактами передачи данных.
![](https://www.google.com/images/icons/product/drive-32.png)
https://youtu.be/b5pDRxikcec <------- Flow Control
https://www.suse.com/products/ <---- SUSE
Модель SNA
https://ru.wikipedia.org/wiki/SNA
https://www.ibm.com/support/knowledgecenter/
Systems Network Architecture (системная сетевая архитектура) — разработанное компанией IBM в 1974 г., представляет общее описание структуры, форматов, протоколов, используемых для передачи информации между программами IBM и оборудованием, создавалось для объединения в глобальные сети мейнфреймов IBM.
SNA является семиуровневым стеком сетевых протоколов, близким, но не совпадающим с сетевой моделью OSI:
Physical Control — обеспечивает генерирование и кодирование электрических сигналов, работу физических интерфейсов, топологию сети и коммуникационную среду (например, кабель)
Data link control (DLC) — включает несколько протоколов канального уровня, в том числе Synchronous Data Link Control (SDLC, протокол управления синхронным каналом передачи данных) для иерархических сетей и Token Ring для одноранговых локальных сетей, соответствует канальному уровню (Data Link layer) OSI (однако не охватывает полностью функциональность Data Link layer OSI);
Path control — обеспечивает адресацию, маршрутизацию и фрагментацию/дефрагментацию пакетов данных, охватывая часть функций канального и сетевого уровней OSI;
Transmission control — обеспечивает управление соединениями, включая шифрование/дешифрование данных, обеспечивая функциональность, входящую в сетевой и транспортный уровень OSI;
Data flow control — уровень управления потоками данных, включая установление соединений, очерёдность передачи данных, приостановку передачи по требованию и групповой обмен. Включает функции транспортного и сессионного уровней OSI;
Presentation services — управление преобразованием данных различных форматов, разделением ресурсов и синхронизацией транзакций. Включает в себя часть функций сеансового уровня, уровня представления и прикладного уровня OSI;
Transaction services — уровень приложений управления распределённой обработки данных и управления.
![](https://www.google.com/images/icons/product/drive-32.png)