Пользователь
57,4
рейтинг
1 февраля 2013 в 16:23

Разработка → Звук диалапа



Финский инженер Оона Ряйсянен (Oona Räisänen) составила чёткую блок-схему с описанием всех звуков, которые издаёт диалап-модем при установке соединения. Горизонтальной оси соответствует время в секундах, вертикальной — частота звука в герцах.

Описание наложено непосредственно на спектрограмму. Для каждого звука помечен источник (наш модем или чужой) и объяснение, что значит конкретно этот сигнал.

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

Процедура начинается с гудка подключения к линии — такого же гудка, какой мы обычно слышим в телефонной трубке перед набором номера.



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

С пятой секунды начинается самое интересное: модемы начинают активно обмениваться «репликами», сообщая друг другу о своих возможностях и ограничениях. Это начало фазы 1 процесса рукопожатия. Первая фаза — самая длительная, она обычно оканчивается в районе 12-й секунды.



Затем модемы устраивают сеанс одновременной передачи данных, проверяя качество линии (фаза 2) и окончательно договариваются о приемлемой скорости соединения (фаза 3).



После окончания третьей фазы динамики модемов отключаются — и становится возможной передача данных по установленному соединению.

Диаграмму полного размера можно скачать на Dropbox, зеркало, перевод на русский язык (Ocelot).
Анатолий Ализар @alizar
карма
751,5
рейтинг 57,4
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

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

  • +12
    Ещё бы такое же но про записи программ для ZX-Spectrum на кассетах, хотя там наверно всё в разы проще.
    • –2
      Ага, там все проще. Там простой АЦП и ЦАП, да и просто гонят последовательность байт, все зависит от загрузчика, бывают нестандартные слегка. Там проще разобрать ПЗУ, код очень короткий.
      • +3
        Прям так данные на ЦАП и на кассету? безо всякой модуляции, даже софтверной? Странно, мне кажется должно быть как то сложнее. Ведь допустим другой магнитофон чуть тише прочитает запись и после АЦП например все байты будут на 1 меньше, т.е. было записано число 34, а стало 33. Думаю не всё так просто
        • +14
          Заинтересовало и нашел таки как это делалось :)
          Стандартный формат кодирования информации очень прост. Нули и единицы кодируются импульсами разной длительности, после которых следует пауза такой же длительности — около 244 микросекунд для нуля и около 489 микросекунд для единицы. За одну секунду может быть записано 1023 следующих подряд единицы, либо 2047 следующих подряд нуля. Так как нужные задержки обеспечиваются процессором, при отклонении тактовой частоты от номинальной возможна несовместимость с данными, записанными при стандартной тактовой частоте.
          Стандартные процедуры используют пилот-тон — длинный сигнал перед началом передачи данных, используемый для синхронизации, а также хранение каждой записи в виде двух блоков, каждый из которых имеет собственный пилот-тон — заголовка, содержащего название файла и параметры, необходимые для его загрузки, и собственно данных. Заголовок необходим при загрузке произвольных данных. В случае, когда заранее известно, какие данные будут загружаться (например, при загрузке игры), заголовки всех файлов, кроме загрузчика, могут отсутствовать. В процессе загрузки данных стандартными процедурами на бордюр выводятся разноцветные полосы, показывающие ход процесса загрузки.

          Описание (см. раздел «Технология»)
          • 0
            В процессе загрузки данных стандартными процедурами на бордюр выводятся разноцветные полосы, показывающие ход процесса загрузки.

            Насколько помню на бордер нельзя вывести полосы. Можно только поменять цвет всего бордера.
            Полосы – это оптический обман, когда цвет бордера меняется быстрее развертки.
            • +3
              Ну если уж совсем точно, в ULA (чипсет ZX-Spectrum) был регистр, ответственный за вывод цвета бордюра. Если быстро-быстро писать в этот регистр, то можно задавать цвет каждой TV-строки (для отдельных пикселей скорости Z80 всё-таки не хватало).
              Никакого оптического обмана не было, Спекки действительно выводил полосы.
              • 0
                Не только для строки, но короткими росчерками.

                А ещё был регистр, которым можно было отключить вывод основной картинки поверх бордюра, оставив только один бордюр на весь экран…
                • 0
                  На бордюре даже текст можно было писать, не помню сколько пикселей на такт получалось, но было реально сделать бегущую строку на весь экран, вместе с бордюром. Конечно буквы получались довольно широкие, были сложности с синхронизацией от модели к модели, но это было реально. Обычно все тюнилось под вариацию «Pentagon», по сути считался стандартом в Российской демосцене.
                  • 0
                    Я это даже видел в какой-то деме. Там было синхронизировано, ЕМНИП, с цветом основного экрана, так что текст бежал через бордюр И экран.

                    Но рисовать — да, я рисовал разные фоны, можно было атмосферы придать. Правильно намешав красный с жёлтым можно было сделать эффект «вечернего неба».
            • +1
              Иногда на бордюре даже рисовали. Правда из-за различных схемных решений картинка на бордюре не всегда точно совмещалась с изображением на основном поле.
              Фактически на борюре можно было рисовать, но посколько за цвет бордюра отвечал только один регистр, что весь вывод ложился на плечи процессора. Естественно, параллельно с этим чем-то заниматься затруднительно, но можно. Правда приходится учитывать каждый такт в стороннем «процессе».
          • 0
            Там вообще неспроста разница в два раза между нулями и единицами. Именно она даёт возможность практически без проблем считывать данные в случае достаточно большой девиации скорости ленты, или при отличающейся частоте процессора.

            Есть другой вариант (на «спектруме» из коробки не использовался) — когда нули и единицы кодируются соответствующим фронтом (из высокого в низкий или из низкого в высокий) — там длительность бит была абсолютно одинакова, и потому при тех же требованиях к полосе скорость загрузки выше.

            Есть ещё «самоподстраивающийся» вариант — где длительность импульса не была вкодирована, а измерялась как раз из пилот-тона.
      • 0
        Фактически не было никакого ЦАП-АЦП. Ну или, если угодно, то 1 битный :) В своё время я писал свой загрузчик с разными эффектами. Вот что представляет из себя файл на кассете:
        1. Сначала идёт пилот-сигнал довольно низкой частоты. У загловков длительность пилот-сигнала была 5 секунд, у блока данных два (каждый блок данных в стандартной форме сопровождался заголовком, а затем непосредственно блоком данных).
        2. Далее следовал синхросигнал, время импульса которого было намного меньше пилот-сигнала. Полупериоды его, если я правильно помню, были разной длительности. Но не суть.
        3. И уже потом шёл поток данных. Единица кодировалась импульсами в двое большей ширины, чем 0. Скважность импульсов всегда была 2. Кстати, тут я экспериментировал и делал «турбозагрузчик», когда за период передавалось 2 бита. Не знал я тогда, что такое спектр сигнала и как влияет на него скважность :) Но тогда это работало и программы грузились в 2 раза быстре. Интересно, прочитаются ли данные по прошествии 15 лет :)
        Ещё одной интересной особенностью была передача контрольного байта после завершения потока данных. Создавался он простым XOR всех байт блока данных. Тут я тоже экспериментировал с защитой от копирования. Достаточно добавить ещё один дополнительный импульс или байт после завершения передачи, как программы для копирования уходили в отказ, т.к. считали, что поток данных оборвался или контрольная сумма не сошлась. Загрузка же самой программы проиходила нормально, т.к. в загрузчике было описано какого объема будут все последующие файлы.
        • 0
          У меня была прошивка с поддержкой не только турбо, но и quick режима — в 4 раза быстрее. Игры грузились за минуту.

          Если грузились :)

          Зато это загрузчик цеплялся в запись мёртвой хваткой и читал даже то, что не могла прочитать «стандартная» прошивка. Ну, конечно, если речь не шла о кратковременном пропадании сигнала.
  • +52
    У меня было очень плохое модемное соединение в детстве, так я научился на слух определять не только протокол соединения, но и с какой именно скоростью подсоединяется модем.
    • +12
      угу, такая же тема, у меня связь рвалась доволно часто и приходилось переподключаться, поэтому и запоминались звуки))
    • +1
      У нас реально были случаи, когда голосом пошипев в трубку, на другой стороне модем устанавливал с тобой соединение, правда на очень маленько скорости :)
      • 0
        хакеры модемнета.
      • +17
        Сомнительно.
        • +3
          Таки возможно, подтверждаю. На 100 БОД можно соединиться практически без хендшейка. Первые модемы были сделаны очень просто, без всякого пробинга и номеронабирателя. Соответственно, если более современный модем это поддерживал, то соединение могло установиться, если в командах не было задано ограничение минимальной скорости.

          В 90х мне приходилось настраивать шпротстер чтобы он связывался по 100 БОД с одной древней рухлядью.
          • +9
            Может я чего-то не понимаю, но как модем может установить связь, если в шуме нет информации?
            • +1
              Если провести аналогию с блюбоксами то все вяжется, заданный порядок модуляции «шума» и есть информация для стыковки.
            • +1
              habrahabr.ru/post/60727/ Как вы думаете, такая штука вообще понимала о том, что происходит? Это именно что модулятор-демодулятор, чем и были модемы изначально.

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

              Представленный на видео модем — аналоговый, который модулирует единственный тон несущей передаваемой информацией. Так вот, если просвистеть равномерно с частотой этого тона, то современный модем может это принять как сигнал установления связи (потому что других сигналов такая рухлядь все равно не пошлет).
              • 0
                Но через несколько секунд все равно отвалится по таймауту? А нет записи такого соединения, было бы интересно?
                • 0
                  Ну отвалится конечно когда нибудь, по причине no carrier. Но вопрос то был в принципиальной возможности установить соединение, а не в возможности насвистеть туда «войну и мир»…
        • 0
          Я и сам бы не поверил, если не проделывал это лично и не один раз.
          • –1
            Мне аж интересно стало. Как и с какой частотой надо шипеть?
            • 0
              Это подбиралось экспериментально.

              Я в детстве-юности в такую игру играл. Нужно было как можно дольше продержать модем от кидания трубки общаясь с ним свистом-шипением.

              Получалось весьма забавно. Когда попадаешь в тон и модем на той стороне отвечает, пытаясь хэндшейкнутся с тобой на разными способами %)
    • 0
      Уже в середине нулевых пользовался диалапом, и не только для инета. Линия была фиговая, и с моей стороны больше 28800 ни с провайдером, ни с фидошными узлами не получалось (только пару раз «курьер» с той стороны как-то пробил 31200). Но на какой-то питерской BBS был модем, единственный соединявшийся всегда на 14400, при этом перед «шипением» выдавал серию звуков, похожих на старые часы с боем, только выше по тональности. Создавалось впечатление, что сисоп специально настроил для красоты и в ущерб производительности :)
      • 0
        Был у меня модем именно что на 14400, у него совсем другие звуки, нежели у более скоростных собратьев (со скоростью выше 19200).
        Более того, на 9600 и ниже звуки тоже другие. И ещё один вариант звуков на 300 и 100.
        Там целая история эволюции протоколов.
      • 0
        «Часы с боем» — это проверка доступности V.90
  • +8
    Не хватает плеера с соответствующим звуком поверх диаграммы
    • +16
      А я вот смотрю на диаграмму и звук сам собой всплывает в памяти!
      • 0
        Ожидал увидеть это сообщение первым=)
    • –3
      Включи звук по ссылке и открой диаграмму. Ваш К.О.)
  • +23
    Для тех, кто забыл звук соединения диалап-модема

    Скорее для тех кто не знает звука Dial-UP модема, забыть его невозможно а многие даже по «голосу» могут сказать что за модель там урчит. :)
    • +5
      А так же на какой скорость произошло соединение )
      • 0
        А если родному модему тяжело то и пообщаться с удалённым модемом лично — насвистывая в трубку )
  • +8
    Больше всего прикалывают субтитры для звуков на Wikimedia (Tuuu, pó pi pó pópó pi pó pó pi и так далее).
    Ностальгия!
    • 0
      Там ещё и русские есть xD
  • +1
    Не благодарите 8))
    www.youtube.com/watch?v=gsNaR6FRuO0
    • 0
      То же самое есть по ссылкам в топике.
      • 0
        Аааа! Проглядел этот абзац и начал читать сразу с описания подключения клинии! *пепел на голову*
    • 0
      Роквелл, v90, 56К :)
      • 0
        А что за звук в конце коннекта на V90, похожий на резкий затухающий удар по струне?

        Вот пример, , с 40 по 45 секунду дважды, откроется на 40 сразу.
        • 0
          Это один из вариантов V90. Насколько я помню такой вариант был у USR, 3com и Acorp модемов. Скорее всего один из вариантов пробинга echo cancellation. Но точно сказать не могу, надо смотреть.
          • 0
            у Зухеля моего тоже такой был. Я даже одно время думал, что это не реальный звук, что идёт в линию — а вроде «украшения», которое модем воспроизводит исключительно в динамик, для пользователя-меломана :)
            • +1
              Это как раз и есть та часть хендшейка, что пробовала соединиться на V.90 если предыдущие тесты линии показывали ее достаточное качество. Можно было соединиться на 38400 или около того, например. У меня скорости от 34 до 38 кбод как раз были ходовыми внутри АТС для связи с FIDO нодой.
  • +10
  • –4
    Теперь я во всех подробностях знаю, в чем суть моего телефонного звонка! Thanks!
  • 0
    Когда-то, ещё в фидо, узнал тонкости модемного соединения вот из этой статьи. А вот теперь удалось увидеть как это выглядит на картинке.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +18
    • 0
      Нокия уже не та(
    • +3
      Блин, на самом интересном остановились, пошел смотреть Т-3 с этого момента.
  • +3
    хм… на 56кбс подключении оно как то короче было, почти не было белого шума в конце. либо мой модем выключал динамик раньше
    • 0
      Да, я тоже заметил какой-то дабстеп в конце, у меня такого тоже не было никогда.
  • +1
    Где ж он раньше был, лет этак N назад, когда я в этой теме (по необходимости) разбирался?!!! :)
    • +2
      Финский же инженер, что вы… :)
  • –8
    Из серии «Чем заняться инженеру, когда ему нечем заняться»
    • –7
      Вот и у меня точно такое же ощущение. Не знаю, может быть, в силу ограниченности интеллекта, но я совершенно не могу представить, зачем это может быть нужно и какое практическое применение этому можно отыскать. Особенно, в 2013 году.
      • +3
        А должно быть практическое применение?
        • 0
          Это непростой вопрос. С одной стороны, хочется ответить, что конечно, должно быть, поскольку вещь или идея без возможности практического применения лишены смысла. С другой стороны, есть искусство, например, которое практической ценности не имеет. Но блок-схема, описывающая значения звуков модема, как мне кажется, на искусство не тянет, а, наоборот, имеет некоторый технический окрас, и, как следствие, должна иметь некую практическую ценность, как любое явление в технической сфере.
      • +6
        Затем же, зачем изучают классические алгоритмы и вообще историю науки. Протокол V34 вообще является одним из гениальных изобретений и работает практически на пределе возможностей линии. Достаточно сказать, что V21 от V34 с точки зрения передаваемых сигналов практически не отличается (БОДы практически одинаковые), но первый передает 300 бит/с, а второй до 33600. На той же полосе и тех же линиях.

        V90 кстати значительно проще чем V34, так что его предельные 56К достигаются отнюдь не адскими алгоритмами, а только при поддержке со стороны АТС (два 56К модема соединенные по телефону друг с другом будут таки работать на обычном V34/v42).

        Все эти вещи, решения которые принимали инженеры, математические основы и прочий матан отнюдь не выброшены на помойку и находят свое отражение в современных технологиях. Не было бы QAM, а иже с ним и DSSS — далеко не факт что вы могли бы радоваться «современному» WiFi, а не ходить с проводами по квартире.
        • 0
          Я подозревал, что всё далеко не так просто, как кажется на первый взгляд, потому и использовал формулировку про ограниченность интеллекта. Собственно, моё незнание описанного Вами можно, как мне кажется, отнести именно к ограниченности. Спасибо за экскурс. И аналогия с историей науки любопытная.
        • 0
          Ну вот не надо тёплое с мягким путать (в смысле примитивную FM-модуляцию v21 с TCM v.34).
          Ну и вообще, полоса пропускания традиционной аналоговой телефонной сети — от 300 до 3300 Гц. Т.е. 3000 Гц.
          При использовании в модемах 8-битных АЦП, если уровень шумов в линии меньше 0.4% (1/256), по теореме Котельникова теоретически максимальная скорость передачи 2х3000х8 = 48000 бод. То, что в реальности передавали до 56кбит/с при шумах значительно больше 0.4% — это действительно верх инженерного искусства!
          • 0
            С чего вы взяли что я путаю теплое с мягким? И в каком месте я про модуляцию сказал плохо? Я же говорил именно про эффективность использования полосы пропускания и о грамотном использовании имеющихся ресурсов. FM с TCM я не сравнивал, я сказал лишь что уровни сигналов в линии и их полоса та же, только там уже не примитивный FM, как вы говорите, а QAM/TCM.
          • 0
            56К к слову нельзя вообще таким макаром анализировать, потому что это протокол «ближнего» уровня, то есть только до АТС. И вообще использует дискретизацию цифровых АТС себе во благо, в то время как для V34 эти ступеньки губительны ибо рушат спектр нафиг.

            Сама же медь имеет куда бо́льшую полосу пропускания, нежели обычная полоса PSTN. Иначе бы xDSL вообще не работал.

            P.S: И вообще, мне кажется, что это таки вы путаете «теплоею с «мягким», а именно БОДы с CPS.
          • +1
            вообще-то насколько помню в этой теореме ширина несущей должна быть минимум вдвое ВЫШЕ ширины сигнала. Т.е. 3000 нужно в данном случае не удваивать, а ополовинивать.
      • +2
        Чем более разнообразна информация (осмысленная) на которой обучается мозг, тем выше качество принятия им решений в какой-то любой отдельно взятой области. Грубо говоря. Поэтому вопрос о «практической пользе» — не совсем корректен. Можно сказать, что практическая польза в развитии интеллекта. Особенно в 2013 году :)
        • 0
          Тоже вполне жизнеспособный вариант. =)
  • 0
    Если мне память не изменяет, то команда ATM2 позволяет иметь постоянно включенный динамик. А на многих модемах было расширение команд и ATM5 (кажется?) включал динамик при коннекте и ретрейнах (так что можно было сразу определить, это сайт тупит, или модем).
  • +6
    Порадовали субтитры к звуку набора в википедии :)

    • +15
      Перевел эти субтитры на русский, поправил рассинхронизацию и некоторые ошибки
  • +1
    Эпичны комменты к треку в статье (https://soundcloud.com/windytan-1/dial-up-modem-noises) — «sounds just like a skrillex remix!» и «make some noise .)»
  • +8
    Конечно хабр не место для анкдотов, но, простите, не могу удержатся:
    Один пpогpаммеp пpишел в гости к дpугому. Сидят, пиво попивают. Тут на кухню заваливает огpомный сеpый котяpа.
    — Это мой кот. Зовут Зухель.
    — Почему Зухель?
    — Смотpи. — беpет веник, тычет в кота. — Зухель! Коннект!
    (Кот): — Шшшшшшшшш…
    — О! 14400.
    • +2
      ну 14400 это сказки, а вот насвистеть 1200 none мог каждый уважающий себя сисоп )
      • +3
        Это же кот «насвистывал»
  • +3
    Раз уж тут так много интересного про звуки модемов собрано, давайте ещё вспомним и про то, какой замечательный эмбиент получается, если этот самый звук сильно замедлить: youtu.be/0sKtTQXvSlc
  • НЛО прилетело и опубликовало эту надпись здесь
  • +10
    Это принадлежит здесь.

    • 0
      Только тоновый набор пиликает не АТС, а телефон.
      • +1
        А как же callback?
        • 0
          Да, возможно. Все равно это делает модем на строне провайдера. Хотя, непонятно, что из себя представляют бабки — АТС или провайдера. Или и то, и другое.
  • –1
    Есть ещё вот такой прикольный мульт earthrise.us/.assets/swf/56k.swf
    Так сказать classic music for nerds
  • 0
    Спасибо за пост! Всегда было любопытно, о чем шипели древние модемы, но вот информации «по быстрому» найти не удавалось.
  • +8
    Перевел подписи на картинке:
    img-fotki.yandex.ru/get/4136/169536945.0/0_a1763_5fbf6560_orig
    • +1
      Замечательно. Пойду напечатаю, и на стенку.
    • +1
      Oh, I can do any of those modes as well. Except my V90/92 is digital.

      Имхо, более правильно было перевести как «за исключением V90/92 — они только цифровые».
  • 0
    Исходная статья на порядок лучше данной. Там все подробно разжевано, а здесь знаний хватило только на «вот здесь вы видите гудок, а здесь передаются данные» :)
  • +4
    Финский инженер Оона Райсанен (Oona Räisänen) составил

    Насколько я помню, по нормам русского языка, в случае разных родов составного подлежащего, сказуемое согласуется с первой из частей, но на всякий случай, Oona Räisänen — это она :)
  • +3
    Ох! Этот волшебный чарующий звука подключения, и легкая невесомая тишина установленного соединения =)
    • 0
      И волнующее чувство спешки: быстрее-быстрее открыть все нужные сайты и отключиться, ибо оплата то повременная.
      • 0
        Я примерно в таком стиле до сих пор интернет просматриваю. Сначала открываю все интересующие ссылки в отдельных вкладках, а потом их просматриваю.
        • 0
          Я тоже, не знаю, идёт ли это из тех времён, но мне так кажется удобнее.
    • 0
      И надпись: Подключено 56Кбит/с.
  • +1
    А мне ещё вот такой вариант нравится:

    www.youtube.com/watch?v=IF2v32xCD0Y
    • +2
      Здорово! Аж мурашки по коже :)
    • 0
      «Если проиграть звук соединяющегося модема замедлив его 33600 раз, то можно услышать усталый женский голос повторяющий „один, ноль, ноль, один, ноль“» (с) интернеты
  • +1
    Спасибо, очень порадовало. Писал софтмодем в 2002 году, 11 и 10 лет назад долго разглядывал подобные спектры на работе.
  • –2
    У меня давно такой звук в качестве рингтона установлен =)
    • 0
      Вряд ли такая реакция отменит моё желание слышать этот звук при входящем звонке =)
  • 0
    Своевременная и актуальная новость.

    Но за пост спасибо!
  • 0
    Хочу поставить как звук телефона. Интересно вот, а звуковой ряд конечен? Есть какие либо наиболее интересные варианты?
    • 0
      Модем продолжает шипеть «в уме» и дальше в процессе передачи данных (на то он и «мо-дем»), просто отключается динамик.
      • 0
        модулятор-демодулятор же, не? ;)

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