Приложения и разбитые абстракции интернетов

Современное объединение вычислительных IP-сетей, ранее известное как “Интернет”, обладает интересными особенностями, которые прямо связаны с практической трактовкой термина “сетевая прозрачность” разработчиками приложений.

Например, ранее такой разработчик мог успешно использовать абстракцию TCP-сокета: если установлено соединение с некоторым удалённым узлом через такой абстрактный сокет, то просто пишем в сокет байты данных, предназначенные удалённому узлу, а читаем – данные, которые тот узел прислал. На этом “дуплексном” потоке можно строить прикладной протокол, реализующий уже сервис для конкретной задачи – например, отправку потокового видео, или какой-нибудь телеметрии. Сам этот верхнеуровневый протокол тут не важен. Важно, что подлежащий TCP-сокет рассматривается как транспорт с “сетевой прозрачностью” – то есть, этот сокет одинаково прозрачен для разных верхнеуровневых протоколов. Однако сейчас это уже далеко не всегда так: глобальная Сеть, если наблюдать с точки зрения описанных сокетов, оказывается непрозрачной именно для разных протоколов, которые уровнем выше сокета. Одна телеметрия проходит, а другая – уже нет. Какой-то протокол работает только в одну сторону. Но транспортный сокет (пусть, TCP) открыт один и тот же.

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

Теперь не просто уровни перемешиваются (я как-то про это писал отдельно), но особенности, проявляющиеся в результате анализа поведения сети за сокетом, на низком уровне, просачиваются на уровень верхний, который ранее считался “абстрактным”.

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

Адрес записки: https://dxdt.ru/2025/08/14/16114/

Похожие записки:



Далее - мнения и дискуссии

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