Аналитика
И всё же ISO/OSI или TCP/IP?

И всё же ISO/OSI или TCP/IP?

Войны стандартов – скандалы, интриги, расследования

И всё же, ISO/OSI или же примитивнейший TCP/IP. Какая модель интернета для нас лучше? Какая лучше отражает суть вещей?

Начнём с последней – ибо она также начинает своё название с более высокоуровневого протокола – TCP. Если мы такие бравые и отметаем всякие IPX-ы, и только сам IP – internet protocol для нас является протоколом интернета, то и стек нам стоит назвать IP/TCP – ибо сначала мы получаем IP-пакет, в котором с большой вероятностью мы увидим TCP. Один из (их много, да... до сих пор придумывают подверсии).

Ooo-Key, докопались до названия – уже хорошо – можно влепить "минус". Далее – примитивнейшее представление по первом уровне – сразу "канальный". Не понять этим "слесарям", что не сразу пакеты прилетают в виде ethernet-фреймов или же уже своих wifi-фреймов, или в иных других вариациях в других физических устройствах.

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

Но ведь есть сторонние разработчики оборудования... Да, и в этой среде я работал. Всё заканчивается тем, что если нам нужно продавать – мы садимся на Ethernet и через всякие фреймворки от производителя фигачим так называемую zero-copy обработку пакетов. Netmap, pf_ring, новый хитровыделанный сокет – всё с оглядкой на Ethernet. С MESH ситуация чуть-чуть иная, но не далеко. Короче, можно было делать Eth/IP/TCP.

IP... прибили его гвоздями. Нет, ну нормальные вообще люди? У нас же есть всё тот же IPX, который... который туннелируется через IP, а скорее TCP различными староверами для игры в star craft по сетке, а то и в war craft 2. Что таить греха – сетевое оборудование сильно привязано к сетевому протоколу – сейчас (да и пару десятилетий назад) проще было поддержать именно IP. И опять "сантехники" ни разу не в проигрыше.

TCP... Ну здесь то облажались ребята – со стриммингом и UDP подрос, да и, как минимум, про ICMP забывать не надо! А они и не забыли. Сделали union-ы под разные транспорты, отдельную обработку (участки стейт-машины), но название такое. Нет, ну может они совсем "ораклы" и скоро всё вытеснит TCP, хотя... Их уже это не волнует. Минус за путающее название – я привереда.

Ну хорошо, думают разработчики – IP есть, порт захватили – можно и работать! Но "нет" – говорят нам ребята из ISO / OSI – до уровня приложения вам осталось ещё сделать 2 прослойки: сеансовый уровень и уровень представительский.

И как безопасник в прошлом, я понимаю прекрасных авторов ISO/OSI – очень круто на уровне той же операционки иметь слой безопасности. Захотели – "заказали" шифрованное соединение, нет – обычное. Но вся петрушка в том, что ОСь плевала на сетевую безопасность. Тот же Windows NT "освободили" от многих средств обеспечения безопасности в пользу скорости работы. Linux – вообще смешно: делали "на коленке", чтобы "работало". Поэтому для заинтересованных лиц появились библиотеки для работы с шифрованием, а не сетевой слой. Используются они в самих программах – свою безопасность другим не доверяют. "Сантехники" будто знали, как устроен мир...

Уровень представления... О как прекрасен (антиутопично-ужасен, как во времена ie6) был бы мир, если бы форматы передачи данных зафиксировали... Не заботиться о REST/Graph, JSONRPC/XMLRPC и прочих больных фантазиях разработчиков, но нет. У нас есть 14 протоколов – надо их все объединить – у нас есть 15 протоколов... Два джуна писали API...

Наверное, неистребимо желание разработчика придумать своё API. Правильное, добротное, годное. Но только для него одного оно такое... Потому и есть куча decode/encode библиотек. Опять же – библиотек. Не часть сетевого стека ОСи, а подключённых программой возможностей. И тут я перестаю предполагать навыки предвидения "сантехников" и пытаюсь вступить в них.

Ведь даже Tor, который создан для создания уровня безопасного транспорта, того самого сессионного уровня, должен делать свой браузер, чтобы им пользовались. Не стать драйвером системы, чтобы шифровать, а делать отдельный продукт. Тут либо массонский заговор (см. первые версии ip v6), либо технологическая необходимость (во что, столкнувшись, я больше верю).

По факту – в очередной раз "Человек-топор" победил – делай просто! Ну а ISO/OSI – довольно интересная концепция для учебников по "истории информатики".

Также может быть вам интересно:

Скрытая угроза. Git и зловреды уже на серверах

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

Читать »

В Python 3.8 избавятся от терминов "master" и "slave"

Как активисты борются со словами вместо борьбы за свободу

Читать »
Фото Как сделать свою middleware в Django (с примерами)

Как сделать свою middleware в Django (с примерами)

Middleware или "промежуточное программное обеспечение" - элегантный способ установить общие правила обработки запросов и ответов приложения. Давайте напишем парочку middleware, чтобы понять, как они работают.

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

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

Фото Шаблон разработки ПО — Model View Controller (MVC)

Шаблон разработки ПО — Model View Controller (MVC)

MVC - один из самых распространённых архитектурных шаблонов разработки. Часто используется в различных фреймворках. В том числе и в Django.

Фото Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable

Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable

Исследователи сумели пройти code-review с реквестами в ядро Linux, заведомо содержащими добавление уязвимостей.

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система прав доступа для пользователей - давайте её рассмотрим!

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django - своя регистрация на сайте

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

Фото Пользователи и авторизация (логин) в Django, кастомизация пользователя

Пользователи и авторизация (логин) в Django, кастомизация пользователя

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

Фото И снова sudo, и снова "решето"

И снова sudo, и снова "решето"

В утилите sudo была исправлена очередная уязвимость.