Ранее мы с вами уже изучали новые технологии хранения информации. Помимо важности сохранения данных, необходимо еще уметь их передать. Развитие технологий позволило создать множество методов передачи информации. И, казалось бы, уже есть все необходимое, можно просто совершенствовать. Однако ученые не были бы истинными учеными, если бы не стремились изобрести что-то новое. И так мы получили технологию VLC (visible light communication) — передача данных по видимому свету. Данный метод обладает как впечатляющими преимуществами, так и разочаровывающими недостатками. Ученым из университета науки и технологий Китая удалось усовершенствовать систему VLC благодаря разработанному ими новому протоколу TCP. Как работает новая система, какие она имеет плюсы и минусы, а также есть ли у нее будущее? Ответы на эти и другие вопросы мы и попытаемся найти ответы. Поехали.

Кратко: что такое VLC?



VLC (Visible Light Communicatio) — это технология передачи данных по видимому свету, которая является частью OWC (Optical wireless communications / Оптическая беспроводная связь). Звучит впечатляюще, футуристично и даже как-то нереально. У всех дома есть лампы, освещающие комнаты. Данная технология позволяет применять этот свет как каналы передачи данных. Для этого используется определенный диапазон видимого света — от 400 до 800 ТГц. В зависимости от типа лампы меняется и скорость передачи данных: люминесцентная лампа — 10 кбит/с, а светодиодная — до 500 Мбит/с. Для того, чтобы принять данные, в устройстве должен быть фотодиод, улавливающий оптические сигналы. В некоторых случаях для этого может быть достаточно и камеры смартфона.

VLC это очень многообещающая технология. Самым очевидным ее применением является повседневная жизнь. Устройства с такой технологией могут быть в частных домах, квартирах, общественных местах и т.д. Однако существуют определенные недостатки, которые замедляют процесс популяризации VLC технологии. Существует сложная задача — «заставить» систему VLC предоставлять хорошую восходящую линию связи (Uplink). Почему это сложно? Во-первых, мобильные устройства ограничены в плане энергопотребления и не могут быть оснащены энергоемкими источниками света. Во-вторых, для работы системы VLC необходим «четко» направленный луч. Соответственно, мобильные устройства, которые мы все время перемещаем и вращаем, не могут полноценно использовать технологию VLC.


Примерное графическое представление системы VLC в быту

Конечно, за последние годы различные исследовательские группы предложили использовать радиочастотные, инфракрасные и рефлексивные приёмопередатчики для решения проблемы аплинка VLC на физическом уровне. Однако из-за асимметричной модели, которая применяется в построении систем VLC с использованием вышеперечисленных подходов, возникают новые проблемы, в этот раз с совместимостью протоколов верхнего уровня.

Чтобы ликвидировать все эти недостатки и проблемы, исследователям пришлось создать гибридную систему VLC/Wi-Fi: нисходящая линия связи (downlink) VLC и восходящая линия связи Wi-Fi (uplink). Это позволило использовать стандартный протокол TCP. Все работает, как положено, но все же проблема есть — удобство и простота, а точнее их отсутствие. Такая гибридная система требует дополнительного оборудования, сложной маршрутизации, не говоря уже о специальном перепрограммировании сокетов. Все это, естественно, будет отталкивать пользователя, желающего пользоваться эффективной, но простой в эксплуатации системой.

DETCP

Поиски решения всех проблем исследователи решили проводить в протоколах транспортного уровня. По словам ученых использование стандартного протокола TCP неэффективно в гибридной системе VLC. Они предлагают использовать DETCP (decoupled разделенный TCP), который разделяет двунаправленную передачу TCP. То есть один TCP поток может использовать два соединения одновременно: основное соединение в качестве нисходящей линии связи и дополнительное соединение — восходящей. Таким образом DETCP позволит пользователю использовать VLC с какой-то другой линией связи для формирования гибридной двунаправленной системы без оглядки на их асимметрию. А дополнительное программирование сокетов и сложная маршрутизация канут в лету.

На сегодняшний день большинство терминалов обладают несколькими интерфейсами. Для решения проблемы с множественной адресацией Internet Engineering Task Force (IETF / инженерный совет интернета) предложил модификацию для протокола TCP под названием MPTCP — multipath TCP (многопутевой TCP). Он позволяет одному соединению передавать пакеты по нескольким путям одновременно. Исследователи технологии VLC решили применить эту модификацию и для своего протокола. Результатом стал протокол MP-DETCP.

Основы идеи протокола DETCP

Самым распространенным протоколом транспортного уровня является именно TCP, поскольку он позволяет осуществлять стабильную и надежную передачу данных. Однако есть ограничения — все плюсы TCP будут полноценно реализованы только в том случае, если физическое соединение дает возможность полноценно использовать двунаправленную передачу данных. В случае с VLC, система может предоставлять только нисходящую линию связи, ведущую к однонаправленному сетевому интерфейсу. Таким образом TCP не может полностью использовать все возможности передачи данных.

Протокол DETCP создан специально, чтобы решить эту проблему, то есть реализовать передачу данных на гибридной системе, состоящей из двух независимых соединений, будь то однонаправленные, двунаправленные или смешанные соединения.

Со слов исследователей самыми важными целями протокола DETCP являются:

  • разделение двунаправленной передачи TCP на две однонаправленные передачи, осуществляемые на двух независимых физических соединениях и в соответствии с настройками пользователя;
  • сделать протокол применимым без необходимости вносить изменения в существующие приложения, которые используют стандартный протокол TCP.

Архитектура соединения

Сокет используется стандартным TCP протоколом для идентифицирования пары конечных точек каждого хоста. Таким образом, связь привязана к определенному физическому соединению, обозначенному сокетом. Однако, в такой однонаправленной системе как VLC, существующая структура TCP соединения не может обеспечить передачу данных в каждом направлении между хостами из-за того, что однонаправленное соединение не может сформировать обмен/передачу circuit данными.

Для решения этой проблемы протокол DETCP использует иную архитектуру соединений, нежели TCP. В данной системе есть два физических соединения, которые отвечают за TCP, и совместно отвечают за передачу.


Архитектура DETCP (справа) и TCP (слева):

  • SIP (source IP address) — исходный IP-адрес;
  • OSIP (original source IP address) — основной исходный IP-адрес;
  • CSIP (complementary source IP address) — дополнительный исходный IP-адрес;
  • DIP (destination IP address) — IP-адрес назначения;
  • ODIP (original destination IP address) — основной IP-адрес назначения;
  • CDIP (complementary destination IP address) — дополнительный IP-адрес назначения.


На уровне соединения передача данных по-прежнему двунаправленная, но на уровне канала есть две отдельных передачи, направленных в разные стороны.

Идентификация соединения

В стандартном протоколе TCP каждое соединение идентифицируется 4-мерным кортежем (адрес источника, порт источника, адрес назначения и порт назначения). Суть данного механизма управления заключается в том, что TCP-связь создается на одном соединении. А поскольку DETCP это совокупность работы двух соединений, то необходим 6-мерный кортеж (основной адрес источника, дополнительный адрес источника, порт источника, основной адрес назначения, дополнительный адрес назначения и порт назначения).

Дабы система соответствовала второй задаче, которую перед собой поставили исследователи, структура сокетов осталась неизменной. Потому необходимо было найти другой способ включить дополнительный адрес в стек протоколов. Посему было решено использовать конфигурационный файл ядра. Пользователь мог указывать дополнительные адреса в нем, что реализовывало 6-мерный кортеж с основной стандартной парой сокетов и дополнительными адресами. Таким образом DETCP гарантировал совместимость с протоколами прикладного уровня.

Инициирование открытия и закрытия соединения

Процессы инициирования открытия и закрытия соединения DETCP и TCP очень похожи. Использовался механизм «рукопожатия», поскольку он самый эффективный. Однако было внедрено два важных изменения, которые и отличают DETCP от TCP:

  • Поскольку локальный дополнительный адрес неизвестен удаленному хосту до установления соединения, а для каждого хоста требуется полная информация об адресе для выполнения разделенной передачи, параметр TCP был добавлен для информирования удаленного хоста о дополнительных адресах в процессе инициации соединения.
  • Характеристика разделения отображается как на этапе инициации открытия, так и на этапе закрытия соединения. На изображении ниже продемонстрирован процесс трехстороннего рукопожатия, координированного 6-мерным кортежем.


Трехстороннее рукопожатие, координированное 6-мерным кортежем, на этапе инициации открытия соединения

Передача данных

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

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

К примеру, сервер отправляет пакет данных клиенту через даунлинк, а клиент отправляет ответ через аплинк. В такой ситуации, адреса полученные из отклика это адреса аплинка, а для сервера соединение связано с адресами даунлинка. Это несоответствие приводит к ошибкам в передаче пакетов. Для того, чтобы избежать подобных проблем, исследователи добавили опцию TCP.

Работа DETCP протокола

Предварительно необходимо провести настройку интерфейса. Протокол DETCP позволяет пользователю назначать через конфигурационный файл направление для определенного интерфейса (“Out,” “In,” “Two-Way”). Когда интерфейс, связанный с сокетом, устанавливается как однонаправленный интерфейс, пользователю необходимо назначить другой интерфейс в качестве дополнительного интерфейса. Совокупность всех четырех интерфейсов определяют весь процесс соединения.


Диаграмма состояния DETCP (слева использование дополнительного соединения для отправки пакетов, справа — основного соединения для отправки пакетов)

В конце предыдущего параграфа сказано об использовании определенной опции TCP. Этой опцией является CPT_ADDR, созданная специально для обеспечения правильного процесса передачи данных.

Каждый передаваемый пакет состоит из:

  • SYN (клиент к серверу) — дополнительный IP-адрес клиента;
  • SYN / ACK (сервер к клиенту) — дополнительный IP-адрес сервера.


Принцип разделения работает на всех этапах передачи данных (инициация открытия соединения, передача данных и инициация закрытия соединения).


Инициация открытия соединения:

  • SYN (клиент к серверу) — основное соединение;
  • SYN / ACK (сервер к клиенту) — дополнительное соединение;
  • ACK (клиент к серверу) — основное соединение.

Передача данных:

  • Пакеты от клиента к серверу — основное соединение;
  • Пакеты от сервера к клиенту — дополнительное соединение.


Закрытие соединения:

  • FIN (клиент к серверу) — основное соединение;
  • ACK (сервер к клиенту) — дополнительное соединение;
  • FIN (сервер к клиенту) — дополнительное соединение;
  • ACK (клиент к серверу) — основное соединение.


Экспериментальное тестирование и оценка результатов


Внешний вид реализации гибридной системы

Для проведения тестов протоколов DETCP и MP-DETCP, они были внедрены в ядро Linux. Гибридная система состояла из VLC (в качестве даунлинка, 20 м) и Ethernet-соединение (в качестве аплинка, 100 м). Пропускная способность всех каналов, подключенных к роутеру и системе VLC, была установлена на уровне 100 Мбит/с.


Сетевая топология DETCP: вверху — дополнительный аплинк, внизу — даунлинк VLC.


Сетевая топология MP-DETCP:
  • Соединения А и D — даунлинк VLC;
  • Соединения В и Е — дополнительные соединения;
  • Соединения С и F — Ethernet подпоток.


Тест доступности

Для начала необходимо было проверить может ли DETCP эффективно использовать доступную полосу в среде гибридной системы. Для проверки устойчивости DETCP к плохой производительности дополнительных соединений аплинк клиента был настроен так, чтобы терялись некоторые пакеты данных. Это, своего рода, стресс-тест.



График, представленный выше, демонстрирует высокую производительность и эффективность DETCP в гибридной системе. Пропускная способность канала была использована на 95%, при этом потери пакетов не было обнаружено. Когда же процент потери пакетов был от 0,5 до 2,0, степень утилизации канала снизился до 92%. Однако работа DETCP продолжила быть стабильной и эффективной. Только при повышении процента потери пакетов до 5 производительность DETCP начала сильно снижаться.

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

Факторы, влияющие на производительность

Для проверки системы и DETCP необходимо, прежде всего, определить какие именно факторы будут влиять на их производительность. Оперируя этими факторами, можно увидеть как будет меняться производительность.

Фактор №1: потеря пакетов

Интерфейс был сконфигурирован таким образом, чтобы в случайном порядке терялось от 0% до 4% пакетов данных.



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

Фактор №2: задержка передачи данных

Для проверки воздействия этого фактора задержка была установлена от 0 до 100 мс.



На графике выше видна взаимосвязь пропускной способности и задержки передачи данных. Когда последняя меньше 20 мс, пропускная способность сохраняет стабильность, а полоса используется полностью. Если же задержка достигает 50 мс, средняя пропускная способность значительно снижается. При задержке в 100 мс пропускная способность падает на целых 35%, и передача пакетов становится неустойчивой.

Фактор №3: переупорядочивание пакетов

Заключительный фактор проверки это переупорядочивание пакетов: часть пакетов будут переданы с задержкой, а часть, так сказать, своевременно.



Диаграмма выше демонстрирует явную взаимосвязь пропускной способности и переупорядочивания пакетов. Все тесты показали значительное снижение пропускной способности. Однако при увеличении задержки, снижение происходило не линейно. Так при задержке в 10 мс, а процент переупорядоченных пакетов равен 5%, снижение пропускной способности происходит постепенно и незначительно. Однако при 10% или 20% показатели просто обрушились.

Показатели пропускной способности при 5% переупорядоченных пакетов с 10 мс задержкой примерно соответствуют показателям при 10% и задержка в 5 мс или же 20% и задержка в 2 мс.

Как вывод, для стабильной и эффективной работы системы, ей необходимо контролировать как число переупорядоченных пакетов, так и время задержки.

При ухудшении производительности даунлинка VLC в системе, где аплинк представлен в виде двунаправленного соединения, как оптового или Wi-Fi, стоит рассмотреть возможность вернутся к использованию стандартного однонаправленного TCP, работающего на аплинке. Это может быть эффективным способом улучшить надежность системы, когда сильно снижается производительность VLC даунлинка.

Сравнение производительности

Одной из основных задач многопоточности является увеличение пропускной способности. В этом тесте проверяются показатели MP-DETCP и DETCP при одинаковых условиях соединений. Результаты регистрируются, когда коэффициент потерь данных изменяется от 0% до 4%.



Диаграмма выше демонстрирует, что хоть производительность VLC и уступает DETCP, MP-DETCP все же демонстрирует высокий показатель утилизации полосы. Когда данные передаются без потери пакетов, достигается показатель в 115 Мбит/с, что подтверждает способность MP-DETCP предоставлять эффективное и производительное соединение. При росте коэффициента потери пакетов, пропускная способность VLC сильно снижается. В это время тот же показатель Ethernet-соединения также незначительно падает. Однако общая пропускная способность осталась на достаточно высоком уровне. Это означает, что при повреждении и блокировке VLC соединения передача данных будет завершена по другому соединению.

Выводы исследователей

Для решения проблемы передачи данных в системе VLC, исследователи предложили использовать протокол DETCP для разделения двунаправленной передачи. Основываясь на этом можно сказать, что использование MP-DETCP усовершенствует производительность гибридной системы VLC. Протоколы DETCP и MP-DETCP весьма успешно прошли тесты на производительность и надежность, продемонстрировав эффективность разделения соединений.

Реализация новых протоколов послужит основой для дальнейших исследований сетевых технологий. В том числе исследований в области гибридизации различных физических соединений для получения систем с высокой степенью производительности и пропускной способности.

Ознакомиться с деталями исследований вы можете с помощью доклада по этой ссылке

Эпилог

Любая технология требует «полирования», прежде чем ее можно назвать эффективной. В случае с новыми протоколами DETCP и MP-DETCP, работы еще непочатый край. Однако результаты экспериментов уже можно назвать впечатляющими. Система VLC сейчас крайне популярна среди исследователей, но не среди пользователей. Такой порядок вещей может измениться в ближайшие годы. И тогда перегоревшая лампочка будет означать не только отсутствие освещения, но и Интернета.

Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?

Комментарии (5)


  1. mr_tron
    02.05.2018 13:37
    +1

    Какое-то безумие. Они не на том уровне разделяют каналы. Дорого ставить сложную систему маршрутизации? А перепилить ВЕСЬ софт и стандартные библиотеки языков, которые работают на tcp на другой протокол конечно не дорого?
    Возьмите cjdns, установите на все лампочки, роутеры и клиентские устройства. Впилите в cjdns поддержку разделения входящих и исходящих каналов с автоматическим выбором более быстрого канала для каждого случая и вот у вас хренакс-хренакс всё работает. И даже соединение не отваливается когда свет выключили — только скорость падает.
    Это на порядки дешевле и разумнее.


  1. Murimonai
    03.05.2018 08:31

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


  1. alexdora
    03.05.2018 13:57

    Это чисто гиковская идея, изучение ради изучения на ближайшие лет 20-ть. Почему? Возьмем в пример передачу информации по оптике. Только спустя 5-6 лет можно за разумные деньги купить оптический ресивер (я имею ввиду 1-10gbit карта с оптическими выходами сейчас стоит сущие копейки и её может позволить каждый при желании, более того при желании кабель по-сути резиновый). Я говорю об этом т.к передача по оптике сама по себе технологически проще (банально ты втыкаешь кабель в гнездо, где направленный луч передает по оптическому кабелю информацию). А тут даже проблема не в самом передатчике или протоколе, а в приемнике и среде в которой это все идет.
    В статье указан какой-то практический смысл и большущий интерес к технологии, но я его если быть совсем честным – не вижу. Просто поразмыслив на эту тему, можно придти к выводу что поставить радиоточку (вайфай или что-то еще) значительно проще, дешевле, надежнее. Нужна большая полоса? – бахнуть деньги в сжатие и новые стандарты. И это будут значительно меньшие деньги, нежели создание абсолютно новых устройств для приема/передачи.
    Единственная технология которая достойна какого-то педалирования в сфере беспроводной передачи с помощью света – лазерная передача данных точка-точка. И лет 10 назад уже были штуки которые способны бить 100мбит по прямой, но стоимость устройств тогда была просто космическим. Сейчас не знаю, надо смотреть и изучать.


    1. mr_tron
      03.05.2018 14:33

      Ну как… Сжатием уже особо ничего не выжмешь. Особенно в общем случае. Видосики ещё можно дальше утрамбовывать, но тоже уже не в разы, а остальное — десяток процентов от силы добавить.
      Радиоточка тоже близится к лимиту пропускной способности. Теорема котельникова поджимает.


  1. saege5b
    03.05.2018 19:49

    Непонятна физика.
    Ладно, при прямом наблюдении лампы — ещё во что-то верится.
    А при диффузном отражении? А если у меня 5-10 источников света?
    Вспоминая времена ИК-портов, я слабо верю что будет стабильный поток данных в любых условиях. Скорее будет некий фен-шуй, который с комфортом будет иметь мало общего.