На встрече Владимира Путина с представителями организаций в сфере беспилотных авиационных систем был озвучен проект с говорящим названием "Интернет из России", который СМИ подхватили и стали декларировать как замена TCP/IP. Давайте разберемся, что было сказано на этой встрече, и реально ли можно говорить о замене TCP/IP. Технологическая справка Актуальна ли замена TCP/IP Откуда ноги растут Мировой опыт организации каналов связи для БПЛА Мировой опыт организации космических каналов связи Существует ли опасность в использовании иностранных сетевых протоколов Заключение Постараюсь кратко описать TCP/IP, что достаточно сложная задача, но я постараюсь. Изначально TCP/IP был создан в 1972 году как один протокол, но в 1978 году был разделен на два функциональных слоя IP и TCP. В последствии TCP/IP начал наполнятся новыми протоколами, в результате чего был сформирован стек протоколов TCP/IP. Стек протоколов TCP/IP состоит из четырех уровней сетевой модели (модель DOD) в отличии от модели OSI в котором 7 уровней. Сетевая модель определяет уровни взаимодействия слоев системы, каждый уровень содержит в себе заголовок (в соответствии со стандартом на протокол) и следующий уровень или данные. В итоге сетевой пакет представляет из себя матрешку из протоколов (например, Ethernet включает в себя IPv4, который включает в себя TCP, который включает в себя HTTP). Сетевая модель позволяет стандартизировать передачу данные от одного приложения до другого приложения, который располагается на другом физическом узле с использованием каналов связи между узлами. Для наглядности модели DOD разберем следующий пример: На стороне клиента приложение формирует данные для отправки на удалённый сервер. Данные передаются в сетевой стек операционной системы. При прохождении данных через сетевой стек операционной системы, сетевой драйвер и сетевую карту, данные оборачиваются в слои протоколов образуя сетевой пакет (В заголовках протоколов содержится информация от кого и кому назначен сетевой пакет). Исходя из адресов в заголовке протоколов сетевой пакет проходит от узла к узлу, пока не достигнет конечной цели. После того как сетевой пакет достигает сервера, он разворачиваться и используя информацию из заголовков протоколов доставляется необходимому приложению. Сервер обрабатывает полученные данные и формирует ответ, который аналогичным образом возвращается клиенту. Таким образом уровни сетевой модели обеспечивают необходимый набор данных в заголовках протоколов, что позволяет передавать данные через различные слои сетевого взаимодействия между приложениями находящихся на разных узлах. Рассмотрим только основные протоколы сетевого (IP) и транспортного (UDP и TCP) уровня. Задача протокола IP состоит в содержании информации необходимой для доставки сетевого пакета между двумя узлами сетевого взаимодействия. Для этого, в заголовке данного протокола содержится информация о IP-адресе отправителя и получателя. Для организации пересылки сетевых пакетов через множество узлов используется механизм маршрутизации на основе IP-адресов. Каждый узел участвующий в сетевом обмене содержит в себе таблицу маршрутизации, в которой есть информация куда необходимо пересылать сетевой пакет на основе IP-адреса. Таким образом сетевой пакет может проходить много промежуточных узлов и достигать конечную цель. Получатель такого сетевого пакета может спокойно на него ответить, поскольку в нем содержится IP-адрес отправителя. Данный протокол работает уже на уровне операционной системе и предназначен для перенаправления полученных данных в нужное приложение. Данная функция реализуется через порт отправителя и получателя в заголовке протокола UDP. На основании портов формируется сокет (IP-адрес и порт отправителя и IP-адрес и порт получателя) позволяющий точно определить сетевое взаимодействие между приложениями. Таким образом на одном компьютере с одним IP-адресам могут быть запущены различные приложения на разных портах, при этом информационные потоки не будут смешиваться, а будут поступать нужному приложению. В протоколе UDP отсутствует механизм гарантированной доставки данных, поэтому его обычно используют для передачи не критичной информации, где допускается их потеря (например, при видео или аудио вещании). Протокол TCP, выполняет такие же функции, как и протокол UDP. Помимо портов отправителя и получателя, в заголовке протокола TCP содержится: флаги для управления соединением и счетчики пакетов, которые обеспечивают учет и контроль доставки сетевых пакетов. Стек протоколов TCP/IP был разработан достаточно давно. В связи с чем, в него не заложены современные реалии, вот некоторые из них: Безопасность - данные в заголовке протоколов IP, UDP, TCP не защищены и могут быть подменены и изменены. Отсутствуют механизмы точной идентификации участника и приложения сетевого взаимодействия с данными в протоколах IP, UDP и TCP. Протокол TCP создает дополнительные сетевые пакеты для управления соединением. Протокол TCP работает не эффективно на нестабильных каналах связи, которые периодически разрываются (происходит обмен пакетами управления соединением и повторная пересылка потерянных пакетов). Существуют проблема с использованием белых IP-адресов в мобильных устройствах при подключении к разным провайдерам, которые находятся в разных выделенных IP-диапазонах. В больших IP-сетях маршрутизация на основе IP-адреса имеет свои недостатки, поэтому на уровне провайдеров используется маршрутизация по протоколу MPLS, что повышает производительность, надежность и гибкость в настройке. TCP/IP является фиксированным стандартом и должен обеспечивать совместимость со своими редакциями. На TCP/IP построены все операционные системы, программные библиотеки для различных языков программирования, сетевые приложения, сетевое и прочее оборудование. На текущий момент подавляющее большинство серверов, клиентов и каналов связи построено на базе TCP/IP, заменить которое становится неподъемной задачей. Имеющиеся недостатки и в TCP/IP можно компенсировать с помощью дополнительных технологий: применение различных протоколов, DNS, шифрованием, VPN, межсетевыми экранами, WAF, IPS, прокси и прочими сетевыми решениями Также TCP/IP достаточно хорошо исследован и предсказуем (выдержал проверку временем). Тем не менее, в новостях периодически появляется информация о создании новых протоколов на замену TCP/IP, из последнего: 2013 год - Google и протокол QUIC (о протоколе можно почитать тут). 2018 год - Huawei и китайские власти анонсируют протокол New IP (о протоколе можно прочитать тут). Информация о замене TCP/IP была сформулирована СМИ исходя из выступления представителя компании "Техноджет". Данная компания занимается спутниками, беспилотной авиацией и связью. Для понимания ситуации необходимо обратиться к первоисточнику (сайт Кремля). Ниже представлены ключевые тезисы из данной встречи: В докладе "Техноджет" речь шла о беспроводных каналах связи для спутников и летательных аппаратов. В своих разработках "Техноджет" использует собственные протоколы передачи данных. "Техноджет" создала технологические блоки для широкополосной системы спутниковой связи. У "Техноджет" есть план в развертывании наземного и спутникового сегмента проекта "Интернет из России". У "Техноджет" уже есть рабочий прототип протокола, который проходил испытания на закрытых объектах. По заявлениям "Техноджет", созданный ими протокол работает лучше, чем TCP/IP в их условиях эксплуатации (восстановление передачи данных для TCP/IP составляет 360 секунд; а для их протокола - 5,7 секунд). По заявлениям "Техноджет", новый протокол обеспечивает стабильные каналы связи для спутников и летательных аппаратов. Есть рабочий прототип протокола, который прошел испытания для организации связи со спутниками и летательными аппаратами. Протокол был испытан для объектов, которые постоянно перемещаются в пространстве. Исходя из особенностей применения между участниками сетевого взаимодействия возможны большие расстояния, что может приводить к задержкам при передаче данных. Для организации сетевого взаимодействия использовались беспроводные каналы связи, в связи с чем возможны потери сетевых пакетов из-за неблагоприятных условий окружающей среды. Все перечисленные условия эксплуатации накладывают ограничения на пропускную способность каналов связи. Название проекта "Интернет из России" говорит о желании использовать разработанный ими протокол не только в сетях Интранета, но и в сети Интернет. Поскольку изначально разработка протокола была связана с каналами связи, применяемых в спутниках и летательных аппаратах, то для начала необходимо посмотреть на мировой опыт в данном вопросе. В БПЛА применяются как цифровые, так и аналоговые каналы связи, либо их комбинация. Сравнение аналогового и цифрового каналов связи представлены в таблице. (Таблица удалена, поскольку характеристики и возможности аналогового и цифрового канала связи зависят от многих дополнительных параметров и используемых технологий. В отрыве от них производить сравнение не очень корректно). Аналоговый канал связи обычно используют для маленьких и быстрых БПЛА (гоночные БПЛА), где нужна минимальная задержка между получением видеосигнала и подачей управляющих команд. Если необходимо получать красивую видео картинку в большом разрешении, используют цифровые каналы связи. В цифровых каналах связи, на канальном и физическом уровне модели OSI обычно используют следующие протоколы: Bluetooth, ZigBee, Wi-Fi, LTE. На сетевом: IPv4. На канальном UDP или TCP. На уровне приложений как типовые протоколы, типа RTP/RTSP, так и специализированные, типа: MAVLink, DJI GO, Ardupilot. Видно, что производители коммерческих БПЛА за основу берут готовый стек TCP/IP, поскольку для него уже есть набор аппаратного обеспечения, чипов, контроллеров и программного обеспечения, что делает решение надежнее, проще и дешевле. Если говорить про некоммерческие БПЛА, производители могут разрабатывать проприетарные протоколы взаимодействия и для них создавать собственное оборудование и программное обеспечение. Такой подход позволяет избавится от технологических ограничений и недостатков, которые есть в типовых протоколах. Поскольку TCP/IP показал свою неэффективность при применении в космической связи, был разработан новый набор стандартов SCPS (Space Communications Protocol Specifications) (про него можно прочитать тут). SCPS представляет собой набор стандартов, разработанных для обеспечения эффективной передачи данных в спутниковых системах связи. Из SCPS можно выделить следующие протоколы: SCPS-NP (Network Protocol) - (аналог протокола IP), сетевой протокол который обеспечивает надежную передачу сетевых пакетов в условиях ограниченной пропускной способности и высокой задержки. SCPS-TP (Transport Protocol) - использует принцип протоколов TCP и UDP, но с учетом особенностей космический сетей связи. Протокол поддерживает: несколько режимов работы (с установкой соединения и без установки соединения), механизмы сжатия данных и шифрования. SCPS-ARQ (Automatic Repeat Request) - используется для контроля канала связи и повторной передачи данных в случае возникновения ошибки. Основная задача данного протокола, является обеспечение надежной передачи данных через ненадежные каналы связи. Эффективность применения SCPS по сравнению с TCP/IP представлен на графике (взят из статьи): Данные измерения производились на ненадежном канале связи, где периодически происходили обрывы. Давайте сначала посмотрим какие есть преимущества использования готовых стандартных международных протоколов, из основных: Стандарт уже создан, есть опыт практического использование. Большой парк готовых аппаратных решений, с низкой стоимостью (поскольку большой рынок). Разработаны программные составляющие (операционные системы, драйвера, библиотеки для языков программирования и программное обеспечения). Технологии отлажены и есть опыт эксплуатации. Большой набор экспертизы, документации и учебной литературы. Интеграция с решениями которые применяются во всем мире. Давайте попробуем предположить какие могут риски: Использование стандартных протоколов делает открытым механизмы сетевого взаимодействия. Что позволяет использовать готовые атаки для таких протоколов. Использование стандартных протоколов приводит к применению стандартного оборудования и программного обеспечения, которое разработано в других государствах. Данные разработки потенциально могут иметь в своем составе программные и аппаратные закладки. Отсутствует возможность в модификации и влияния на развитие сетевых протоколов. Существует зависимость от иностранных технологий. В результате всего вышеперечисленного, можно сделать следующие выводы: Для космических каналов связи, движущихся с большой скоростью объектов и прочих специфических условий эксплуатации, технология TCP/IP не очень подходит, но для этого уже есть технические решения. Проприетарные протоколы можно спокойно использовать в Интранет сетях, изолированных от Интернета. Перевод проприетарных протоколов из сети Интранет в Интернет, возможна только при условии кросс совместимости (т.е. оборудование и программное обеспечение построенное на проприетарных протоколов должно поддерживать работу с технологией TCP/IP). Замена TCP/IP на новый протокол в сети Интернет обречена на провал, поскольку весь мир плотно сидит на TCP/IP (сетевое оборудование, каналы связи, сетевой стек операционной системы, библиотеки и программное обеспечение). И тут много слоев, если ограничиться только заменой оборудования, то с операционными системами и программным обеспечением все еще сложнее (необходимо будет создавать промежуточный слой с эмуляцией TCP/IP или все переписывать на новый сетевой стек). Также необходимо переводить на новые технологии весь мир, и желательно делать это одновременно. Суверенитет от иностранных технологий дело конечно хорошее, но тут нужно подходить избирательно. Для государственных органов и критической инфраструктуры можно развивать новые технологии и оборудование, но для широких масс это может быть дорого, не востребовано и технологически сложно. На текущий момент достаточно мало информации, что это за зверь такой - проект "Интернет из России", чтобы делать какой-то более глубокий технический анализ. P.S. Стоит ли изобретать велосипед? Весьма риторический вопрос.  Инженер