- Чем развлечься в самоизоляции, или передаем данные с помощью звуковой карты
- Частотная модуляция (FSK, Frequency Shift Keying)
- Фазовая модуляция (PSK, Phase Shift Keying)
- SSTV (Slow Scan Television)
- Дополнение: частотная и временная характеристики
- Заключение
- Основы надежной передачи данных
- Протокол транспортного уровня
- Принципы надежной передачи данных
- Надежная передача данных по совершенно надежному каналу
- Надежная передача данных по каналу с возможными ошибками
- Надежная передача данных по ненадежному каналу, допускающему искажение и потерю пакетов
- Протокол надежной передачи данных с конвейеризацией
- Возвращение на N пакетов назад — протокол скользящего окна
- Выборочное повторение
- Пример
- Передача данных: фантастическая скорость и новые методы
- Старый добрый кабель
- Электрическая лампочка для передачи данных
- pCell: миф или реальность?
- LLCD, или зачем нужен лазер
- Из мозга в мозг
- Тело-проводник
- Сквозь всю вселенную
- С помощью водки
- Мясные коммуникации
- Великий советский интернет
Чем развлечься в самоизоляции, или передаем данные с помощью звуковой карты
После недавней публикации про передачу OFDM, стало интересно проверить, каким способом эффективнее всего передавать данные по воздуху. Мы попробуем разные виды модуляции, и посмотрим какие из них лучше подойдут для передачи данных из одного конца квартиры или офиса в другой. Для тестов будет достаточно ноутбука, смартфона и программы MultiPSK.
Для тех кому интересно как это работает, продолжение под катом.
Для тестов мы воспользуемся программой MultiPSK, которая удобна тем, что поддерживает огромное количество разных стандартов связи, как любительских (они доступны как на прием, так и на передачу), так и профессиональных (доступен только прием). Разумеется, чтобы не делать статью гигантской, я выберу лишь наиболее популярные виды модуляции, и мы посмотрим что из этого получится. Изначально MultiPSK предназначена для радиосвязи, для чего звуковая карта должна подключаться к приемнику или передатчику, но ничего не запрещает воспроизводить сигнал прямо из колонок. Тест будет будет довольно простым — простой текст «1234567890» кодируется разными способами, сигнал проигрывается на ПК, и записывается смартфоном в другом конце квартиры. Разумеется, повторить нижеописанные опыты может любой желающий, никакого специального оборудования для этого не требуется.
Let’s get started.
Частотная модуляция (FSK, Frequency Shift Keying)
Как нетрудно догадаться из названия, суть модуляции заключается в изменении частоты сигнала. Простейший способ, доступный в MultiPSK, это RTTY. В данном случае мы передаем данные с помощью переключения между двумя частотами с определенной скоростью. На спектре это видно весьма наглядно. Посмотрим, что происходит с сигналом при его передаче по воздуху. Сверху исходный сигнал, снизу принятый:
Помимо очевидного затухания, есть более неочевидное изменение амплитуды — сигнал стал «рваным», на выходе получилось что-то вроде биений. Интересно то, что проявляются они в моменты смены частоты, в моменты когда частота не меняется, изменения амплитуды минимальны. С чем это связано, сказать сложно.
Кстати о спектре, он исказился, хотя в принципе, форму сигнала угадать можно:
Посмотрим, сможет ли MultiPSK декодировать записанный звук. Увы, нет, на выходе лишь «мусор». Разные попытки нормализации и фильтрации к успеху также не привели:
Следующий сигнал, который интересно попробовать — MFSK, частотная модуляция, в которой количество частот больше 2х. Картинка «до» и «после» передачи примерно похожа на предыдущий результат.
Мы также видим биения амплитуды, возникающие вероятно, в процессе переотражения звука. Но есть заметный плюс — при большем количестве частот, декодирование сигнала происходит гораздо увереннее. За исключением «мусора» в паузе между сигналами, сами данные принимаются без ошибок.
Возможно, это также связано со скоростью передачи или другим алгоритмом декодирования, но результат довольно-таки интересен.
Фазовая модуляция (PSK, Phase Shift Keying)
Следующий вид модуляции — фазовая, при которой передается синусоидальный сигнал, а информация кодируется изменением фазы.
Сигнал BPSK «до» и «после» передачи:
Результат распознавания: определилось где-то 20-40% символов, из строки 1234567890, как можно видеть, можно различить 3, 4, 7 и 9.
Спектр не показан, т.к. для фазовой модуляции BPSK он представляет собой практически прямую линию.
Общая идея, я думаю, понятна, и более сложные виды сигналов рассматривать смысла нет — понятно что устойчивого декодирования не будет. Однако, чисто для «спортивного интереса», рассмотрим аналоговый сигнал.
SSTV (Slow Scan Television)
Этот режим по своей сути напоминает факс, и изменение частоты здесь кодирует яркость или цвет картинки во времени. Интересно посмотреть, насколько исказится изображение после передачи, и останется ли оно читабельным.
Сигнал «до» и «после»:
Картинка с котиком, и попытка её приема:
При должной фантазии, контур котика наверное можно угадать. Хотя если передавать что-нибудь попроще, типа «черного квадрата», наверное распознать изображение будет легче. Кстати, в этом один из плюсов аналоговой передачи данных перед цифровой — там где «цифра» уже перестанет работать, в аналоге, среди шумов, человеческий глаз или ухо вполне может уловить полезный сигнал.
Дополнение: частотная и временная характеристики
Кстати об аналоговом сигнале, как подсказали в комментариях, проверить амплитудно-частотную характеристику «канала передачи» можно, если воспроизвести белый шум и изменяющийся по высоте тон. Такой сигнал несложно сгенерировать в любом аудио-редакторе. Для теста файл был проигран в одном конце квартиры, а запись сделана в другом. Результат довольно интересен, как интересно и то, что высокие частоты не слышны вообще (в моем случае граница где-то 14КГц), а передача данных на них в принципе еще возможна:
И наконец, не менее интересный результат получается, если сгенерировать короткий звуковой импульс:
При подаче импульса длиной 0.01с, «эхо» длится практически в 10 раз дольше. Разумеется, это также должно учитываться при выборе скорости передачи данных.
Заключение
Как можно видеть, передача звука по воздуху (как наверное и через воду), это не так уж просто, из-за переотражений, затуханий и прочих эффектов. Несмотря на кажущуюся «несерьезность» задачи, надежно передать данные даже на 10 метров не так-то просто из-за искажений сигнала. Метод частотной модуляции MFSK оказался самым стабильным. И похоже, аналогичные опыты проводил не только я, статья о протоколе активации Яндекс-станции говорит о том, что в ней используется такой же способ передачи данных. Ну а в целом, чем проще модуляция и меньше скорость, тем больше шансов, что данные будут приняты без ошибок.
Желающие могут дальше поэскпериментировать самостоятельно, программу MultiPSK легко найти в интернете, количество поддерживаемых ею стандартов передачи довольно велико.
Источник
Основы надежной передачи данных
Тем, кто стремится разобраться в сетях и протоколах, посвящается.
В статье рассматриваются основы надежной передачи данных, реализуются примеры на Go, в том числе UDP и TCP . По мотивам раз, два, три и книги «Компьютерные сети. Нисходящий подход», а то все обсуждают только Танненбаума и Олиферов.
Протокол транспортного уровня
Обеспечивает логическое соединение между прикладными процессами, выполняющимися на разных хостах. Логическое соединение с точки зрения приложений выглядит как канал, непосредственно соединяющий процессы.
Протоколы транспортного уровня поддерживаются конечными системами, но не сетевыми маршрутизаторами (кроме — DPI). На стороне отправителя транспортный уровень преобразует данные прикладного уровня, которые получает от передающего прикладного процесса, в пакеты транспортного уровня, называемые сегментами.
Это делается разбиением (при необходимости) сообщений прикладного уровня на фрагменты и добавлением к каждому из них заголовка транспортного уровня.
Далее транспортный уровень передает сегмент сетевому уровню отправителя, где сегмент инкапсулируется в пакет сетевого уровня (дейтаграмму) и отсылается. На принимающей стороне сетевой уровень извлекает сегмент транспортного уровня из дейтаграммы и передает его вверх транспортному уровню. Далее транспортный уровень обрабатывает полученный сегмент таким образом, чтобы его данные стали доступны приложению-получателю.
Принципы надежной передачи данных
Надежная передача данных по совершенно надежному каналу
Простейший случай. Отправляющая сторона просто принимает данные от верхнего уровня, создает содержащий их пакет и отправляет его в канал.
Надежная передача данных по каналу с возможными ошибками
Следующим этап — это предположение, что все переданные пакеты получены в том порядке, в котором они были отправлены, но биты в них могут быть повреждены, в связи с тем, что канал иногда передает данные с искажениями.
В таком случае применяются механизмы:
- обнаружения ошибки;
- обратной связи;
- повторной передачи.
Протоколы надежной передачи данных, обладающие подобными механизмами многократного повторения передачи, называются протоколами с автоматическим запросом повторной передачи (Automatic Repeat reQuest, ARQ).
Дополнительно, стоит предусмотреть возможность ошибок и в квитанциях, когда принимающая сторона не получит никакой информации о результатах передачи последнего пакета.
Решение этой задачи, используемое в том числе в TCP, состоит в добавлении в пакет данных нового поля, содержащего порядковый номер пакета.
Надежная передача данных по ненадежному каналу, допускающему искажение и потерю пакетов
Одновременно с искажениями, к сожалению, в сети присутствует потеря пакетов.
И для решения этой задачи требуются механизмы:
- определения факта потери пакетов;
- повторной доставки потерянных пакетов принимающей стороне.
Дополнительно, кроме потери пакета, необходимо предусмотреть возможность потери квитанции или, если ничего не потеряно, ее доставки со значительной задержкой. Во всех случаях производится одно и то же: повторная передача пакета. Для контролирования времени в данном механизме используется таймер отсчета, который позволяет определить окончание интервала ожидания. Так в пакете net параметр TCPKeepAlive установлен на 15 секунд по умолчанию:
Передающей стороне необходимо запускать таймер каждый раз при передаче пакета (как при первой, так и при повторной), обрабатывать прерывания от таймера и останавливать его.
Итак, мы ознакомились с ключевыми понятиями протоколов надежной передачи данных:
- контрольными суммами;
- порядковыми номерами пакетов;
- таймерами;
- положительными и отрицательными квитанциями.
Но и это не все!
Протокол надежной передачи данных с конвейеризацией
В том варианте, который мы уже рассмотрели, протокол надежной доставки очень неэфективен. Он начинает «тормозить» передачу, обеспечиваемую каналом связи, при увеличении RTT . Для повышения его эффективности, лучшей утилизации пропускной способности канала связи применяют конвейеризацию.
Применение конвейеризации приводит к:
- увеличению диапазона порядковых номеров, поскольку все отсылаемые пакеты (за исключением повторных передач) должны быть однозначно идентифицируемы;
- необходимости в увеличении буферов на передающей и принимающей сторонах.
Диапазон порядковых номеров и требования к размерам буферов зависят от действий, предпринимаемых протоколом в ответ на искажение, потерю и задержку пакета. В случае конвейеризации существуют два метода исправления ошибок:
- возвращение на N пакетов назад;
- выборочное повторение.
Возвращение на N пакетов назад — протокол скользящего окна
Отправитель должен поддерживать три типа событий:
- вызов протоколом более высокого уровня. Когда «сверху» вызывается функция отправки данных, передающая сторона сначала проверяет степень заполнения окна (то есть наличие N посланных сообщений, ожидающих получения квитанций). Если окно оказывается незаполненным, новый пакет формируется и передается, а значения переменных обновляются. В противном случае передающая сторона возвращает данные верхнему уровню, и это является неявным указанием, что окно заполнено. Обычно верхний уровень предпринимает повторную попытку передачи данных через некоторое время. В реальном приложении отправитель, скорее всего, либо буферизовал бы данные (вместо немедленной отсылки), либо имел механизм синхронизации (например, семафор или флаг), который позволял бы вышестоящему уровню вызывать функцию отправки данных только при незаполненном окне.
- получение подтверждения. В протоколе для пакета с порядковым номером N выдается общая квитанция, указывающая на то, что все пакеты с порядковыми номерами, предшествующими N, успешно приняты.
- истечение интервала ожидания. Для определения фактов потерь и задержек пакетов и квитанций протокол использует таймер. Если интервал ожидания истекает, передающая сторона повторно отправляет все посланные неподтвержденные пакеты.
Выборочное повторение
Когда размер окна и произведение пропускной способности на задержку распространения велики, в конвейере может находиться большое количество пакетов. В таком случае ошибка отдельного пакета может вызвать повторную передачу большого количества пакетов, большинство из которых не требовались.
Пример
Лучшие теоритические практики собраны в практической реализации TCP. А если кто-то знает, как лучше — welcome.
Источник
Передача данных: фантастическая скорость и новые методы
Иллюстрация световых сигналов, посылаемых через оптическое волокно (с)
Вы знаете, в чем интернет будет нуждаться всегда? В бо́льшей пропускной способности. Судите сами: на подходе «домашняя» революция с 4K-фильмами на сотни гигабайт. За волной видеоконтента или параллельно с ней будет развиваться виртуальная реальность. Рост скорости – это не единственное направление исследований. Сегодня мы расскажем вам о способах передачи данных, которые пока выглядят настоящей фантастикой, но тем не менее могут быть реализованы в ближайшем будущем.
Старый добрый кабель
Исследователи из Датского технического университета в 2014 году передали данные по единственному волоконно-оптическому кабелю на скорости 43 Тбит/с. Ученые использовали оптоволокно с несколькими сердцевинами. Тем не менее скорости 100 Тбит/с удалось достичь еще в 2011 году двумя способами: через оптоволоконную жилу, состоящую из семи отдельных волокон, каждое из которых обеспечивало скорость 15,6 Тбит/с; во втором случае данные «упаковывались» за счет использования лазерных лучей разного спектра, с разной амплитудой и фазами излучения – всего использовалось 370 отдельных лучей.
Выжать все возможное из одного кабеля оптоволокна постаралась научная группа ученых Голландии и США, передав данные на 1 километр со скоростью 255 Тбит/с. Исследователи использовали оптическое 7-сердцевинное волокно (на картинке выше оно изображено слева). В чем же разница с обычным волокном? Всё просто, здесь свет проходит в каждой сердцевине, независимо от других. Черные точки на картинке – воздушные прослойки, изолирующие сердцевины друг от друга. Используя эту технологию, в сентябре 2012 года удалось достигнуть реальной скорости передачи в один петабит в секунду по кабелю с 12 световодными каналами на расстояние 52,4 км.
Электрическая лампочка для передачи данных
Несколько лет назад появилась оптическая технология беспроводной передачи данных Li-Fi (сокращенно от Light Fidelity), при которой приемо-передающее устройство, ничем не отличимое от обычной лампочки, мигает с очень большой частотой, передавая информацию вместе со световым потоком. Прием и передача информации в Li-Fi проводится на скоростях около 150 Мбит/с. А вот технология Li-Fi, основанная на лазерных светодиодах, позволяет повысить скорости передачи информации до 100 Гбит/с. Минус у такого устройства только один – за пределами комнаты оно не работает.
pCell: миф или реальность?
Технология pCell должна решить проблему нехватки частот в спектре, дав возможность каждому мобильному устройству работать со всей полосой частот, которую предоставляет базовая станция, независимо от степени загруженности. По данным авторов проекта из американского стартапа Artemis Networks, pCell обеспечит скорость в 50 раз больше текущих сетей 4G LTE, используя тот же диапазон частот и существующие смартфоны. Возможно ли это? В конце прошлого года стало известно, что Nokia Networks начнет тестирование технологии pCell. Нам осталось дождаться только обнародования результатов исследования.
LLCD, или зачем нужен лазер
В 2013 году успешно стартовал зонд LADEE, на котором установлена система двусторонней лазерной связи Lunar Laser Communication Demonstration (LLCD). В результате удалось достичь скорости передачи данных 622 Мбит/с с аппарата на наземную станцию и 20 Мбит/с с наземной станции на аппарат, находившийся на расстоянии 385 000 км от Земли.
Возможно ли использовать аналогичную лазерную связь на Земле? Конечно. Еще в 2011 году были опубликованы результаты эксперимента по передаче данных на направленном лазерном луче с потрясающей скоростью 26 Тбит/с на расстояние 50 км. А дальше начинаются сложности с тем, что луч должен быть направленным. В условиях городской застройки это ограничение практически нивелирует плюсы от скорости.
Из мозга в мозг
Один из самых фантастических методов передачи информации строится на простом допущении: зачем нам нужны дополнительные каналы, если в конечном счете речь идет об обмене информации между одним человеком и другим. А что если сразу соединить два мозга?
Нейрофизиологи из лаборатории Университета Дьюка объединили мозги трех обезьян в «локальную сеть». Обезьяны, с помощью нейроинтерфейса и семи сотен электродов, встроенных в двигательную кору мозга, контролировали движение виртуальной руки на экране компьютера. Каждое животное отвечало за управление двумя из трех осей движения руки – X и Y, X и Z, Y и Z. Животные научились совместно обмениваться информацией о положении «руки» на экране и корректировать ее движение.
Тело-проводник
Телекоммуникационная компания NTT DoCoMo разработала технологию Human Area Networking, при которой небольшой передатчик создает вокруг человеческой кожи электромагнитное поле. Для снятия сигнала на другом участке кожи используется чувствительный оптический датчик, принимающий сигнал на скорости около 10 Мбит/с. Человеческое тело, пропускающее через себя информацию, позволяет реализовывать интересные технологические решения. Как вам идея отправить документ на печать, взяв в руки флешку и прикоснувшись к принтеру?
Сквозь всю вселенную
Команда физиков Национальной ускорительной лаборатории им. Энрико Ферми (США) в 2012 году предложила способ передать данные сквозь любой объект: при помощи нейтрино, фундаментальной частицы, чрезвычайно слабо взаимодействующей с материей. Благодаря нейтрино ученым удалось передать данные через 240 метров горной породы – недоступный показатель для любых других беспроводных технологий. Впрочем, скорость передачи данных составила всего 0,1 бит в секунду, но в будущем подобный способ можно будет использовать для связи с далекими космическими объектами.
С помощью водки
Да, существует и такой необычный способ передачи данных, пригодный для использования в среде, затрудняющей применение электромагнитных волн. В основе метода лежит молекулярная система, имитирующая работу с помощью летучих химических соединений. Специалисты использовали пары водки для передачи двоичного кода: наличие пара – 1, а отсутствие — 0. Сообщение пересылалось с помощью настольного вентилятора к датчику, анализирующему концентрацию алкоголя в воздухе.
Мясные коммуникации
В Университете Иллинойса поставили эксперимент по передаче ультразвуковых сигналов через ткани животного со скоростью до 30 Мбит/с – это рекорд в передаче данных через мясо!
В основу метода легла технология передачи сигнала под водой. Используя 5 МГц-датчик для отправки сигнала через мясо в резервуаре с водой, в котором находился гидрофон для его приема, удалось передать сигнал со скоростью 20-30 Мбит/c. В будущем эта технология поможет вести прямую трансляцию из тела пациента или обновлять программное обеспечение человеческих имплантатов.
Великий советский интернет
Идею передавать данные при помощи трубопровода придумали еще в Советском союзе. Современные технологии значительно усовершенствовали метод. Компания Nethercomm еще десять лет назад запатентовала технологию Broadband-in-Gas (BiG) для передачи сигнала по радиоформату UWB (Ultra Wide Band) на скорости до 10 Гбит/с. В трубопроводной сети монтируется цепь ретрансляторов радиосигнала, передающегося в диапазоне UWB. Из-за ретрансляторов, установленных внутри трубы, использовать эту технологию внутри водопроводных труб нельзя. Радиосигнал передается внутри имеющихся труб параллельно с потоком бытового газа.
Описанные выше способы передачи данных изменят мир в самое ближайшее время. Возможно, что широкие каналы между континентами позволят перенести все data-центры в одно благоприятное место – в Антарктиду, например, для естественного охлаждения. Связь с дальними космическими объектами может стать доступной на высоких скоростях. Обычный проводной интернет (впрочем, как и мобильный) достигнет невероятной скорости.
Мы не знаем наверняка, каким именно путем будет развиваться отрасль. Не исключено и то, что все описанные методы померкнут на фоне новых исследований в ближайшее десятилетие. В любом случае времена меняются, а значит, будут и другие невероятные скорости передачи данных.
Источник