Секретный архив
Шерлока Холмса



Мухин С.В.

Метод сбора статистики при работе по стандартному каналу тональной частоты, предназначенному для передачи данных

С каждым годом растет количество передаваемой информации, но в тоже время для ее передачи используются до сих пор каналы связи, образованные аналоговыми системами. Эти системы изначально не предназначались для передачи цифровой информации, но тем не менее они настолько широко распространены в России, что их использование оправдывает себя. Кроме того, это выгодно экономически. Цифровые каналы стоят гораздо дороже, да и не везде они есть. Скорости аналоговых модемов растут и на сегодняшний момент максимально возможная скорость составляет 33600 бит/с, что не так мало. Но не на любом канале можно обеспечить такую скорость. Есть много разных мешающих причин. Как узнать, удовлетворит ли нас предлагаемый канал? Этой проблемой занимались начиная с появления первых систем по передачи информации, не менее актуальна она и сейчас.

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

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

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

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

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

1. Принципы по которым строится эксперимент по сбору статистики при передаче данных на каналах тональной частоты

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

Так как при передаче данных используются протоколы с разными видами модуляции, то рекомендуется чередовать при испытаниях на одном и том же канале. Для имитации потока данных в канале лучше всего использовать генератор псевдослучайных чисел. Рекомендациями МККТТ предлагается при низких скоростях использовать последовательность длинною 511 двоичных разрядов, а для высоких скоростей - 1048575 бит. Первая последовательность генерируется девятикаскадным регистром сдвига, в котором сигналы с выходов пятого и девятого каскадов складываются "по модулю два", а результат подается обратно на вход первого каскада. Во втором случае последовательность генерируется 20-каскадным регистром сдвига, в котором сигналы с выходов 20-го и 3-го каскадов складываются "по модулю 2" и подаются обратно на вход первого каскада. Использование генератора псевдослучайных чисел позволит легко восстановить переданное сообщение в месте приема с целью поразрядного контроля приходящей информации.

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

Для исследования каналов на их обоих концах необходимо следующее оборудование:
  1. Приборы для измерения параметров линии. Эти приборы должны измерять следующие характеристики: дрожание фазы, изменение частоты, групповое время прохождения, амплитудно-частотную характеристику, перерывы связи, скачкообразные изменения амплитуды, отношение сигнал/шум, нелинейные искажения, импульсные помехи, эхо принимающего и эхо передающего. Также по возможности должно быть протоколирование измерений. По возможности лучше пользоваться универсальными приборами, которые совмещают в себе возможности измерять все перечисленные выше характеристики, а также быть мобильными. Таким характеристикам удовлетворяет прибор TDA-3 (ранее, также, выпускалась модель TDA-2), выпускаемый московской фирмой НПП "Аналитик-ТС", а также и более совершенная модель TDA-5, производимая этой же фирмой, начиная с этого года.
  2. Модемы используемые для передачи данных должны поддерживать как можно больше протоколов передачи данных, а также возможность выбора определенного по желанию экспериментатора. Скорости должны меняться от 300 до 33600 бит/с. Кроме того, должна быть возможность регулировки выходного уровня. Таким требованиям удовлетворяют многие из выпускаемых ныне модемов, поэтому рекомендуется проводить исследования, используя различные их модели.
  3. Для сбора статистики передачи данных необходима программа, позволяющая передавать пакеты данных различной длинны, заполняемые генератором псевдослучайных чисел с возможностью восстановления на приеме. Эта программа, также, должна протоколировать результаты приема информации: время принятия последовательности, число ошибок в пакете, распределение ошибок в пакете побитно, число ошибок за время передачи, число безошибочно принятых символов. Кроме того, программа должна позволять задавать время передачи данных. (В рекомендациях МККТТ предлагается для этой цели временной интервал равный 15 минутам. Это же время было получено автором экспериментально.)
  4. Компьютеры классом не ниже, чем 386DX-40 с винчестером большой емкости, и большим быстродействием.

2. Протокол передачи данных по сбору статистики

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

2.1 Протоколы передачи данных

Протокол Заголовок Проверочная комбинация, тип Передача в окне Длина пакета
X.25 3 байта CRC16 2 байта да 16, 32, 64, 128, 256, 512, 1024, 2048, 4096
XMODEM 3 байта: головная метка 1, номер блока -2 Контрольная сумма 1 байт нет 128
XMODEM-CRC 3 байта: головная метка 1, номер блока -2 Контрольная сумма 1 байт или CRC16 2 байта нет 128
XMODEM-1K, YMODEM, YMODEM-G 3 байта: головная метка 1, номер блока -2 Контрольная сумма 1 байт или CRC16 2 байта нет 128 или 1024
MEGAlink 3 байта: головная метка 1, номер блока -2 CRC16 2 байтa CRC32 4 байта да 128, 256, 512, 1024
ZMODEM 5 байт: тип кадра 1 байт, позиция флага 4 байта CRC16 2 байта CRC32 4 байта да 32, 64, 128, 256, 512, 1024

где CRC - циклический проверочный код

Все эти протоколы требуют подтверждения принятого пакета (пакетов, если передача ведется в окне) за исключением Ymodem-G, который просит повторить принятый пакет только в случае неправильной контрольной суммы, иначе подтверждения принятой информации не происходит. В случае ошибочной контрольной последовательности, не полностью принятого пакета (пакетов) или же по истечению времени, ошибочно принятый пакет (пакеты) должны быть повторены. Размер пакета не меняется в процессе передачи данных у всех протоколов за исключением Zmodem, который подстраивается под канал путем увеличения длинны пакета, когда канал хороший, и ее уменьшения, в случае, когда качество канала ухудшается. Протоколы SeaLink, и многие другие, не рассматриваются в данной статье, так как являются расширениями протокола Xmodem. Протокол Kermit, так же не рассматривается, так как является сильно отличным от перечисленных выше протоколов.

Из приведенных выше протоколов передачи данных видно, что заголовок составляет в основном 3 байта, проверочная комбинация 2 байта (у Zmodem есть возможность использовать 4-байтную проверочную комбинацию, а у Xmodem 1-байтную контрольную сумму), размер блока данных составляет 128 или 1024 байт (у Zmodem длинна блока данных может равняться, также, 32, 64, 256, 512, а у X.25 еще и 16, 2048, 4096). У Zmodem и X.25 передача может вестися в окне. 1-байтная контрольная сумма представляющая собой остаток от деления на 255 суммы значений кодов ASCII знаков, входящих в блок данных позволяет обнаружить 99.6% всех ошибок, в отличии от обычной асинхронной проверки паритета (95%). 2-байтная проверка CRC-16 гарантирует обнаружение всех одиночных и двойных ошибок, всех нечетных ошибок, всех пакетных ошибок длинной 16 и менее; 99.9969% всех 17-битных пакетов ошибок и 99.9984% всех возможных более длинных пакетов ошибок. При использовании 4-байтной CRC-32 только один из 4 294 967 296 (232) плохих пакетов может иметь правильную CRC.

Вычисление значения кода CRC производится методом деления полиномов: "полинома-сообщение" на "полином-генератор". В алгоритме CRC-16 в качестве " полинома-генератора" используется следующие выражение:

X16 + X12 + X5 + 1;

а в алгоритме CRC-32 в качестве " полинома-генератора" используется следующие выражение:

X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X + 1.

После деления "полинома-сообщения" на "полином-генератор" частное отбрасывается, а остаток используется как значение кода CRC для данного пакета данных.

Таким образом, исходя из перечисленного выше, протокол для сбора статистики должен выполнять следующие требования: иметь заголовок 3 байта (первый байт - начало заголовка, два других - порядковый номер пакета); длинна пакета данных может равняться 16...4096 байт; проверочная комбинация 1, 2 или 4 байта; передача может вестись в окне. Последние три параметра выбираются пользователем, таким образом, необходима договоренность на обоих концах о параметрах передачи путем разговора, либо путем передачи этих параметров в нулевом пакете. Последнее предпочтительнее.

3. Описание протокола передачи данных для сбора статистики

Последовательность действий, которые выполняются при исполнении протокола можно видеть на рисунке 1.

Передающая ЭВМ начинает передачу данных только после того, как примет от принимающей ЭВМ знак S (hex 53). Принимающая ЭВМ передает этот знак до тех пор, пока не начнется передача данных. Если передача данных не начинается после 10 переданных знаков S, то возобновление процесса возможно лишь в ручную.

После приема знака S передающая ЭВМ посылает знак начала заголовка SOH (Start of Header (hex 01)), а за ним два номера блока (настоящий номер и дополнение по "единицам" этого номера), блок данных и проверочную комбинацию.

Вначале посылается нулевой пакет длинной 16 байта содержащий следующие данные разделенные пробелом: размер блоков данных, который будет использоваться в данном сеансе в символах: 16, 32, 64, 128, 512, 1024, 2048, 4096 (от 16 до 4096 байт); тип проверочной комбинации в виде символов 1, 2 или 4 (контрольная сумма, CRC-16 или же CRC-32); число пакетов передаваемых в окне: 1, 2, 4. Неиспользуемые байты в блоке данных заполняются нуль-символами NUL (Null Character (hex 00)). Завершается пакет CRC-32. Эти данные принимающая ЭВМ берет за основу и в дальнейшем их использует.

Принимающая ЭВМ вычисляет собственную проверочную комбинацию и сравнивает ее с принятой проверочной комбинацией. Если сравниваемые значения различны или прошло 10 секунд и не завершен прием блока, принимающая ЭВМ посылает передатчику знак NAK (Negative Acknowledge (hex 15)), а за ним номера тех пакетов с их дополнениями до "единиц" через пробел, которые были приняты не верно, для запроса их повторной передачи последнего пакета. Это же действие происходит, если сумма двух байт принятого пакета не равна FF. Если пакет принят правильно, то принимающая ЭВМ посылает знак ACK (Acknowledge (hex 06)), а если следующий пакет не поступил в течение 10 секунд, приемник может повторно послать знак ACK. Процесс повторной передачи повторяется, до тех пор, пока пакет не будет правильно принят или не будет выполнено 10 попыток передачи пакета. В противном случае передача данных прерывается и ее можно будет возобновить только в ручную.

В протоколе использование двух кратной передачи номера исключает возможность передачи одного и того же пакета в случае потери подтверждающего сообщения. Повторно принятые пакеты отбрасываются. После успешного завершения передачи посылается знак EOT (End of Transmission (hex 04)). для сообщения об окончании работы протокола.

Описанные выше действия предназначены для работы протокола без окна. Когда передача данных идет в окне и какие то из пакетов приняты не правильно, запрос об их повторной передаче следующий: принимающая ЭВМ посылает передатчику знак NAK, а за ним номера тех пакетов с их дополнениями до "единиц" через пробел, которые были приняты не верно. Завершается их перечисление знаком ETX (End of Text Character (hex 03)).

Перерыв в передаче пакета более 1 секунды надо считать перерывом связи. Для перерыва связи используется последовательность из нескольких (обычно от 3 до 5) символов CAN (Cancel (hex 18)). Данные передаются по 8 бит без проверочного бита и с одним стоповым битом.

ПЕРЕДАТЧИК ПРИЕМНИК
  S
SOH 00 FF 1024 2 1 NUL[8] CRC CRC CRC CRC  
  ACK
SOH 01 FE ДАННЫЕ[1024] CRC CRC  
  ACK
SOH 02 FD ДАННЫЕ[1024] CRC CRC  
  NAK
SOH 02 FD ДАННЫЕ[1024] CRC CRC  
  NAK
SOH 02 FD ДАННЫЕ[1024] CRC CRC  
  ACK
EOT  
  ACK

Рис.1. Пример работы StatMODEMA

4. Генератор псевдослучайных чисел

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

  1. En+1={11*En+P};
  2. En+1={e(En+P)};
  3. En+1={10(En+P)};
  4. En+1={(P-2+En)2};
  5. En+1=1/P*arccos[cos(En*109)];
  6. En+1={37*En+1};
  7. En+1={11*(En+P)}.

Скобки {} означают, что необходимо выделить дробную часть из полученного результата. Числа En, где n>=0 находятся в интервале от 0 до 1. Таким образом, при умножении En+1 на 256 можно получить последовательность псевдослучайных чисел от 0 до 255, то есть последовательность ASCII кодов, которые можно использовать в дальнейшем для передачи по каналу в эксперименте. Но к сожалению некоторые из этих генераторов имеют тенденцию к зацикливанию при некоторых значениях E0, что не удобно. Поэтому был проведем эксперимент для проверки каждого из перечисленных выше генераторов псевдослучайных чисел для выяснения длинны ряда до повторения, на равномерность, зацикливание, для чего была составлена программа на языке Borlandc C++ версии 3.1. Исследования проходили на ЭВМ 486DX4-100. В качестве стартовых использовались числа от 0 до 1 с шагом 0.0001. Период проверялся до 10000 члена ряда для каждого стартового числа.

Эксперимент показал, что наиболее равномерное распределение в интервале от 0 до 1 имеет генератор 6, а наиболее редко зацикливается генератор под номером 7.

Кроме перечисленных генераторов псевдослучайных чисел можно предложить генератор построенный по методу середины квадрата, суть которого заключается в следующем. Возьмем произвольное целое число k1 из интервала 0 < k 1 < 10000. Это будет первое число. Возведем его в квадрат и возьмем 4 средних разряда. Если, например, k1=2251, то возведя его в квадрат, получим ki2=05067001, поэтому ki+1=0670.

Чтобы получить последовательность распределенную между 0 и 1, надо положить xi=ki/10000.

Этот метод не дает равномерное распределение между 0 и 1, но к сожалению имеет тенденцию к зацикливанию, и чаще всего, зацикливается на 0. Кроме того, период у этого генератора не большей (до 100 членов ряда).

Таким образом, в дальнейшем будем использовать генератор псевдослучайных чисел: En+1={37*En}.

На основании требований перечисленных выше была разработана программа на языке Turbo C по сбору статистической информации на каналах передачи данных, которая работает под управлением MS DOS с любым из четырех последовательных портов.

5. Проведение эксперимента

5.1.1. Коммутируемое соединение

При помощи TDA-2,3,5 производим набор номера нужного нам абонента и устанавливаем соединение. Затем в течение 10-15 минут снимаем характеристики установленного соединения (Подбираем такой уровень на передачу, чтобы отношение сигнал шум было, по возможности, большим. Этот уровень устанавливаем у модема). В дальнейшем, не разрывая соединения отключаем TDA-2,3,5 и подключаем модемы, которые будут работать в режиме передачи данных, как по "выделенному каналу", в течение 30 минут (сначала информацию передает один 15 минут, остальное время - другой). Далее вновь снимаются характеристики и соединение разрывается. Смотри рис. 2, 3.

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

Рис. 2 Учрежденческая АТС - учрежденческая АТС

Рис. 3 Учрежденческая АТС - выделенный канал

5.1.2. Выделенный канал

При помощи TDA-2,3,5 в течение 10-15 минут снимаем характеристики данного канала. Уровень на передачу ставим такой, чтобы на входе в каналообразующую аппаратуру он равнялся 28дБ. Этот же уровень и устанавливаем у модемов. Затем отключаем TDA-2,3,5 и подключаем модемы, которые будут работать в режиме передачи данных, в течение суток или более с интервалом 15 минут (сначала информацию передает один 15 минут, затем другой 15 минут).

Как только канал станет портиться либо улучшаться (это станет ясно из среднего числа принятых с ошибками блоков за определенное время, например за 5 минут) передача данных должна прерваться и произвестись измерение канала. После измерения канала, передача данных должна возобновиться. Смотри рис. 3, 4.

Рис. 4 Выделенный канал - выделенный канал

5.1.3. Прямые провода

Здесь действия происходят аналогично действиям п.5.1.2. за исключением того, что уровень на передачу у модема устанавливается таким, чтобы отношение сигнал шум было, по возможности, большим. Смотри рис. 5.

Рис. 5 Прямые провода

5.1.4. Связь через имитатор телефонного канала

В этом случае у имитатора телефонного канала, например Sim-3, устанавливаются такие значения характеристик канала, которые необходимо исследовать. Порядок сбора статистики при этом остается такой же, как и в пункте 5.1.2. Смотри рис. 6.

Рис. 6 Связь через Sim-3

На выделенном канале и прямых проводах у модема поочередно устанавливаются различные протоколы на передачу данных (V.21, V.22, V.22bis...V.34), включая фирменные (V.32terbo, ZyX, HST, PEP и другие). На коммутируемом соединении устанавливается максимально возможный протокол.

6. Правила сбора статистики и обработка данных

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

Таким образом, проанализировав протокол передачи данных можно получить следующие результаты:

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


Выше представлен первоначальный вариант статьи опубликованной в:

Мухин С.В. Метод сбора статистики при работе по стандартному каналу тональной частоты//Методы оценки систем и передачи данных//Сб. науч. тр. - М: - 1999. - с. 84 - 97.




Назад





Домой Гостевая книга Письмо Артур Конан Дойл Попытка (сказки)
1997-2014
Завтрак связиста