Отступление 1.
Модель OSI/ISO.Взаимодействие сетевых устройств описывает
Сетевая модель OSI. И в верхней части ей соответствует
Стек протоколов TCP/IP.
Это так, но такое понимание сильно ограничено.
Сетевая модель OSI - англ. open systems interconnection basic reference model — базовая эталонная модель взаимодействия открытых систем.
Теперь переведу с "русского" на русский.
Эталонная модель - это образцовый образец. Так переводятся фр. étalon и лат. modulus.
Значит, перед нами некий исходный (основной) образец взаимодействия... чего?
Что это за открытые системы? Если речь идёт о компьютерах, почему бы так и не сказать?
Вики даёт
несколько определений открытых систем, используемые в различных науках (физике, информатике, биологии и т.д.). И взаимодействовать они могут очень разнообразно. Правда, понять всё это красочное словоблудие непросто.
Но я полагаю, что за всеми этими словесными вуалями речь идёт просто об общении.
И сам по себе стандарт OSI/ISO вовсе не стандарт (в смысле, не образец для подражания), а итог глубоких наблюдений и рассуждений совсем не глупых людей за тем, как вообще происходит общение. И если физики наблюдают за вполне осязаемыми явлениями природы (Фи́зика: от др.-греч. φύσις — природа), то здесь (если вы почитаете стандарт) речь идёт о вещах сознания. Их нельзя измерить приборами, они над физикой (τὰ μετὰ τὰ φυσικά — «то, что после физики»). Это договорённости людей видеть в неких колебаниях электрических или световых волн определённые знаки (нули и единицы) из которых складываются буквы, слова, предложения и т.д.
Попробую описать своё понимание модели OSI на примере общения двух человек.
Первый уровень - Физический.Для нас это воздух. Наши голосовые связки дрожат и эта дрожь передаётся в воздушной среде барабанным перепонкам другого человека.
При взаимодействии компьютеров этой средой может быть медь (UTP, телефонный кабель), стекло (оптика) или эфир (в случае с радиосвязью).
Стандарт предъявляет требования как к среде передачи, так и к свойствам и качествам волн, распространяемых в этой среде.
Так говорят. Но от среды нельзя ничего требовать, можно лишь описать её свойства с той или иной степенью достоверности. Требовать можно только от других людей и лишь то, на что они способны повлиять. К примеру, сила и частота волн, которые будет вызывать созданное ими сетевое оборудование.
Так же стандарт описывает "сигнальные уровни логических дискретных состояний (нуля и единицы)".
Как обещал - перевожу:
Сигнал (фр. signal от лат. signum) - знак;
Ло́гос (греч. λόγος) — «слово», «мысль», «смысл», «понятие», «намерение»;
Дискретность (англ. discrete от лат. discretio) - отделение, разделение;
О чём здесь идёт речь?
Прежде нужно понять вот что: вселенная дрожит, но она безмолвна.
То, что мы называем "звук" - лишь особенность нашего восприятия. В действительности это дрожь газовой среды, в который мы живём. Точно так же свет - лишь малая область огромного пространства частот, с которыми дрожит та среда, что у греков называлась "светоносный эфир". Низкочастотные колебания этой среды мы воспринимаем телом как тепло.
Но всё это: звук, свет, тепло - уже понятия. Их нет в действительном мире, но они есть в нашем сознании.
Точно так же в мире природы нет нулей и единиц. Есть договор круга людей (в частности, производителей сетевого оборудования), которые своим
осознаванием придают
значение тем или иным изменениям передающей среды: 1/0, да/нет, правда/ложь. Дело не в названии, а в том, что отделив таким образом "свет от тьмы" и
дав им имена, мы получаем возможность поиграть с этими кирпичиками, создавая всё более и более сложные построения.
А вот телефонист и электрик об этом договоре не знает и для него это просто частотный шум без всякого значения.
На этом уровне не возможны протоколы. Протоколы описывают, как из нулей и единиц начинает устраиваться некий порядок -
космос из хаоса, говоря метафизически. Т.е. протоколы начинаются со второго уровня.
Но при этом
во многих источниках говорится о протоколах физического уровня: IEEE 802.15 (Bluetooth), IRDA, EIA RS-232, EIA-422, EIA-423, RS-449, RS-485, DSL, ISDN....
А в других источниках вы обнаружите, что эти же протоколы относят к канальному.
Пусть это не поставит вас в тупик: просто данные спецификации состоят из двух частей, раздельно описывающих оба уровня. Что же им, разорваться теперь?
Читаем дальше:
Каждому уровню с некоторой долей условности соответствует свой операнд — логически неделимый элемент данных, которым на отдельном уровне можно оперировать в рамках модели и используемых протоколов: на физическом уровне мельчайшая единица — бит, на канальном уровне информация объединена в кадры, на сетевом — в пакеты (датаграммы), на транспортном — в сегменты.
В примере с беседой двух человек этим неделимым понятийным кирпичиком на первом уровне является
звук.
Т.е. уже здесь, в самом начале, на физическом уровне мы, строго по Платону, переходим в мир идей - вечных и неизменных ;)
То ли ещё будет - ой-ой-ой...
Второй уровень - Канальный.Не забываем - от реальности мы оторвались ещё на первом уровне ;)
Поэтому речь идёт о следующем уровне
понятий.
В межчеловеческом общении неделимым кирпичиком этого уровня является буква.
Буква - это не звук, а
указатель на звук. Например, археологи часто находят глиняные таблички с письменами. Они могут их расшифровать и понять смысл написанного. Но они никогда не смогут с уверенностью сказать, как
звучат эти слова. Просто нет больше хранителей договора - людей, которые знали какому звуку соответствует тот или иной знак.
Но буква - не есть знак на бумаге. С точки зрения сознания- это совершенно определённый образ. Мы ведь всегда различаем, когда мы рычим, а когда говорим букву "Р", хотя звучит очень похоже.
То есть буква, это всё таки звук, но звук не простой. Из всего бесконечного многообразия звуков мы выделили несколько десятков с помощью всё того же фокуса
осознавания придав им особое значение.
Второй уровень сильно зависит от физической среды, и в живой речи подобен тембру, оттенку, особому звучанию, присущему только тебе: бас, баритон, тенор... Это данность природы и ты ничего не можешь с этим поделать. Но эта особенность никак не влияет на твоё понимание того, что тебе говорит собеседник.
Соединив две точки телефонным кабелем тебе придётся ставить xDSL-модемы; если это витая пара - твой выбор Ethernet; и т. д.
Но, собственно, до речи ещё далеко.
Пока мы лишь создаём основу, инструменты.
Читаем:
Любой протокол модели OSI должен взаимодействовать либо с протоколами своего уровня, либо с протоколами на единицу выше и/или ниже своего уровня. Взаимодействия с протоколами своего уровня называются горизонтальными, а с уровнями на единицу выше или ниже — вертикальными.
Вот так и с буквами: сами по себе они бессмысленны, но связывают нижний уровень (звуки) с вышестоящим (догадываетесь, каким?).
Если взять для примера протокол Ethernet, то в нём так же различают два уровня: нижний - MAC (media access control) - управляет доступом к физической среде. Верхний - LLC (англ. logical link control) - взаимодействует с сетевым.
Неделимой единицей здесь является
кадр, тело которого строится из мнимых нулей и единиц предыдущего уровня.
Мне никогда не требовалось глубоко погружаться в тонкости устройства второго уровня OSI, и для работы хватало простого образа вагонетки, к которой прилеплен листик с MAC-адресами отправителя и получателя. Ну и описью содержимого (CRC).
А может и разработчики протокола так же себе представляли, откуда вы знаете?
Третий уровень - Сетевой.И вот на сцене появляется первый из семейства протоколов TCP/IP.
Наконец то мы можем полностью забыть о тех жизненных трудностях, связанных с бренным материальным миром. Начиная с этого уровня наше общение совершенно не зависит от физической среды передачи. IP-пакет - всегда старый добрый IP-пакет. Отправляя его со своего компьютера на другой конец света, я пакую его в кадр Ethernet. По пути он может пройти через десятки сред и транспортом ему будут служить столько же
различных протоколов: оптика, спутник, WiFi, GSM и его много раз переложат из одного вида кадра в другой.
Это приятно. Мне достаточно запулить в сеть пакет с IP-адресом назначения и больше ни о чём не беспокоиться. Если, конечно, я не настройщик маршрутизаторов... Чёрт!
Протокол сетевого уровня (англ. Network layer) — протокол 3-его уровня сетевой модели OSI, предназначается для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и заторов в сети. На этом уровне работает такое сетевое устройство, как маршрутизатор.
Именно с этой черты начинается владычество IPTables.
Нужно отметить, что подгрузив удобный и полезный костыль в виде модуля (-m mac), всё таки можно заставить IPTables подглядывать MAC-адрес источника (
единственный ключ: --mac-source) и в RouterOS это работает прозрачно... Но сила и предназначение IPTables в работе с семейством TCP/IP.
Читаем:
Все протоколы транспортного уровня используют Internet Protocol (IP) для доставки данных от источника к получателю. IP - это межсетевая служба, не устанавливающая соединение при передаче данных, без гарантии доставки пакетов. IP-пакеты могут прийти к получателю поврежденными, продублированными, в перепутанном порядке или вообще не быть доставлены. За надежную доставку данных отвечают вышестоящие уровни. В обязанности IP протокола входит только обеспечение адресации в сети и связанные с ней функции.
Доставка пакетов IP протоколом без установления соединения является фундаментальной и характерной особенностью архитектуры интернета.
IP-пакет по устройству похож на кадр Ethernet: у него так же есть заголовок с адресами отправителя и получателя и есть "багажный отсек", в котором он везёт свой ценный груз - пакет TCP.
С точки зрения человеческого общения, кирпичиком этого уровня я бы назвал
слог. Когда ребёнок учится говорить, первое, что он делает - пытается собрать буквы в слога так, что бы они
звучали правильно - лишь это имеет значение. В этом смысле слог самодостаточен. Попробуйте последовательно произнести буквы, составляющие слог, и вы поймёте, что слог - это не то же самое, что совокупность букв.
Возникает лишь два вопроса:
1. Зачем городить огород с таки количеством вложений? Неужели нельзя просто взять и отправить один пакет с полным адресом, как например, мы делаем с письмами?
2. Что же это всё таки за таинственная вертикаль, которую "умом не понять, аршином общим не измерить"? Ведь если мы в жизни запакуем пакет в пакет и ещё раз в пакет, мы говорим - это внешний пакет, а это внутренний. Но мы не говорим, дескать это низкоуровневый, а этот вот - на более высоком погосте.
Боюсь, что мне придётся сделать ещё одно отступление, и кратко пройтись по устройству компьютера.