Заканчивается сообщение комбинацией символов

Обновлено: 04.07.2024

Тема 5. Защита от ошибок в системах связи

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

В общей структурной схеме СПДС задачу защиты от ошибок выполняет кодер и декодер канала, который иногда называют УЗО.

5.1 Понятие о корректирующих кодах

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

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

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

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

Перебрав все возможные пары разрешенных комбинаций рассматриваемого кода можно найти минимальное расстояние Хемминга d0.

Минимальное расстояние d0 - называется кодовым расстоянием

Кодовое расстояние определяет способность кода обнаруживать и исправлять ошибки.

У простого кода d0=1 – он не обнаруживает и не исправляет ошибки. Так как любая ошибка переводит одну разрешенную комбинацию в другую.

В общем случае справедливы следующие соотношения

– для обнаруживающей способности

– для исправляющей способности

Линейные коды.

Двоичный блочный код является линейным если сумма по модулю 2 двух кодовых слов является также кодовым словом.

Линейные коды также называют групповыми.

Введем понятия группы.

Множество элементов с определенной на нем групповой операцией называется группой, если выполняется следующие условия:

1. Замкнутость gig j= gk G в результате операции с двумя элементами группы получается третий, так же принадлежащий этой группе.
2. Ассоциативность (сочетательность) (gigj) gk = gi (gj gk)
3. Наличие нейтрального элемента gj e = gj
4. Наличие обратного элемента. gi (gi) -1 = e

Если выполняется условие gi gj = gj gi, то группа называется коммутативной.

Множество кодовых комбинаций n-элементного кода является замкнутой группой с заданной групповой операцией сложение по модулю 2.

Поэтому используя свойство замкнутости относительно операции 2, множество всех элементов можно задать не перечислением всех элементов, а производящей матрицей.

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

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

5.2 ЦИКЛИЧЕСКИЕ КОДЫ

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

если некоторая кодовая комбинация принадлежит циклическому коду, то комбинация полученная циклической перестановкой исходной комбинации (циклическим сдвигом), также принадлежит данному коду.

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

Синдромом ошибки в этих кодах является наличие остатка от деления принятой кодовой комбинации на производящий полином.

Эти свойства используются при построении кодов, кодирующих и декодирующих устройств, а также при обнаружении и исправлении ошибок.

Представление кодовой комбинации в виде многочлена.

Описание циклических кодов и их построение удобно проводить с помощью многочленов (или полиномов).

В теории циклических кодов кодовые комбинации обычно представляются в виде полинома. Так, n-элементную кодовую комбинацию можно описать полиномом (n-1) степени, в виде

где =, причем = 0 соответствуют нулевым элементам комбинации, а = 1 - ненулевым.

Запишем полиномы для конкретных 4-элементных комбинаций

Действия над многочленами.

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

Следует отметить, что действия над коэффициентами полинома (сложение и умножение) производятся по модулю 2.

Рассмотрим операцию деления на следующем примере:

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

Отметим, что запись кодовой комбинации в виде многочлена, не всегда определяет длину кодовой комбинации. Например, при n = 5, многочлену соответствует кодовая комбинация 00011.

Алгоритм получения разрешенной кодовой комбинации циклического кода из комбинации простого кода

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

Требуется определить разрешенную кодовую комбинацию циклического кода (n, k).

Формирование базиса (производящей матрицы) циклического кода

Формирование базиса циклического кода возможно как минимум двумя путями.

Вариант первый.

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

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

Вариант второй.

В данном случае код будет неразделимым.

Получив базис ЦК, можно получить все разрешенные комбинации, проводя сложение по модулю 2 кодовых комбинаций базиса в различных сочетаниях и плюс НУЛЕВАЯ.

Циклические коды достаточно просты в реализации, обладают высокой корректирующей способностью (способностью исправлять и обнаруживать ошибки) и поэтому рекомендованы МСЭ-Т для применения в аппаратуре ПД. Согласно рекомендации V.41 в системах ПД с ОС рекомендуется применять код с производящим полиномом

Построение кодера циклического кода

Рассмотрим код (9,5) образованный полиномом

Разрешенная комбинация циклического кода образуется из комбинации простого (исходного) кода путем умножения ее на и прибавления остатка R(x) от деления на образующий полином.

Для реализации операции добавления нулей используется r-разрядный регистр задержки.

Как видим из примера, процедура деления одного двоичного числа на другое сводится к последовательному сложению по mod2 делителя [10011] с соответствующими членами делимого [10101], затем с двоичным числом, полученным в результате первого сложения, далее с результатом второго сложения и т.д., пока число членов результирующего двоичного числа не станет меньше числа членов делителя.

Это двоичное число и будет остатком .

Построение формирователя остатка циклического кода

Структура устройства осуществляющего деление на полином полностью определяется видом этого полинома. Существуют правила позволяющие провести построение однозначно.

Сформулируем правила построения ФПГ.

  1. Число ячеек памяти равно степени образующего полинома r.
  2. Число сумматоров на единицу меньше веса кодирующей комбинации образующего полинома.
  3. Место установки сумматоров определяется видом образующего полинома.

Сумматоры ставят после каждой ячейки памяти, (начиная с нулевой) для которой существует НЕнулевой член полинома. Не ставят после ячейки для которой в полиноме нет соответствующего члена и после ячейки старшего разряда.

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

Структурная схема кодера циклического кода (9,5)

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

Рассмотрим работу этой схемы

1. На первом этапе К1– замкнут К2 – разомкнут. Идет одновременное заполнение регистров задержки и сдвига информ. элементами (старший вперед!) и через 4 такта старший разряд в ячейке №4

2. Во время пятого такта К2 – замыкается а К1 – размыкается с этого момента в ФПГ формируется остаток. Одновременно из РЗ на выход выталкивается задержание информационные разряды.

За 5 тактов (с 5 по 9 включительно) в линию уйдут все 5-информационных элемента. К этому времени в ФПГ сформируется остаток

3. К2 – размыкается, К1 – замыкается и в след за информационными в линию уйдут элементы проверочной группы.

4. Одновременно идет заполнение регистров новой комбинацией.

Второй вариант построения кодера ЦК.

Рассмотренный выше кодер очень наглядно отражает процесс деления двоичных чисел. Однако можно построить кодер содержащий меньшее число элементов т.е. более экономичный.

Устройство деления на производящий полином можно реализовать в следующем виде:

За пять тактов в ячейках будет сформирован такой же остаток от деления, что и в рассмотренном выше Формирователе проверочной группы. (ФПГ).

За эти же 5 тактов информационные разряды, выданные сразу на модулятор.

Далее в след за информационными уходят проверочные из ячеек устройств деления.

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

Окончательно структурная схема экономичного кодера выглядит так.

- На первом такте Кл.1 и Кл.3 замкнуты, информационные элементы проходят на выход кодера и одновременно формируются проверочные элементы.

- После того, как в линию уйдет пятый информационный элемент, в устройстве деления сформируются проверочные;

- на шестом такте ключи 1 и 3 размыкаются (разрываются обратная связь), а ключ 2 замыкается и в линию уходят проверочные разряды.

Ячейки при этом заполняются нулями и схема возвращается в исходное состояние.

Определение ошибочного разряда в ЦК.

Пусть А(х)-многочлен соответствующий переданной кодовой комбинации.

Н(х)- многочлен соответствующей принятой кодовой комбинацией.

Тогда сложение данных многочленов по модулю два даст многочлен ошибки.

E(x)=A(x) H(x)

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

Остаток – полученный от деления принятого многочлена H(x) на производящей Pr(x) равен остатку полученному при делении соответствующего многочлена ошибок E(x) на Pr(x)

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

Алгоритм определения ошибки.

Пусть имеем n-элементные комбинации (n = k + r) тогда:

1. Получаем остаток от деления Е(х) соответствующего ошибке в старшем разряде [1000000000], на образующей поленом Pr(x)

2. Делим полученный полином Н(х) на Pr(x) и получаем текущий остаток R(x).

3. Сравниваем R0(x) и R(x).

- Если они равны, то ошибка произошла в старшем разряде.

- Если "нет", то увеличиваем степень принятого полинома на Х и снова проводим деления

в) Опять сравниваем полученный остаток с R0(x)

- Если они равны, то ошибки во втором разряде.

- Если нет, то умножаем Н(х)х 2 и повторяем эти операции до тех пор, пока R(X) не будет равен R0(x).

Ошибка будет в разряде соответствующем числу на которое повышена степень Н(х) плюс один.

Например: то номер ошибочного разряда 3+1=4

Пример декодирования комбинации ЦК.

Положим, получена комбинация H(х)=111011010

Проанализируем её в соответствии с вышеприведенным алгоритмом.

Реализуя алгоритм определения ошибок, определим остаток от деления вектора соответствующего ошибке в старшем разряде Х 8 на производяший полином P(x)=X 4 +X+1

X 8 +X 5 +X 4 x 4 +x+1

Разделим принятую комбинацию на образующий полином

Полученный на 9-м такте остаток, как видим, не равен R0(X). Значит необходимо умножить принятую комбинацию на Х и повторить деление. Однако результаты деления с 5 по 9 такты включительно будут такими же, значит необходимо продолжить деление после девятого такта до тех пор, пока в остатке не будет R0(Х). В нашем случае это произойдет на 10 такте, при повышении степени на 1. Значит ошибки во втором разряде.

Декодер циклического кода с исправлением ошибки

Если ошибка в первом разряде, то остаток R0(X)=10101 появления после девятого такта в ячейках ФПГ.

Если во втором по старшинству то после 10 го ;
в третьем по старшинству то после 11 го ;
в четвертом по старшинству то после 12 го
в пятом по старшинству то после 13 го
в шестом по старшинству то после 14 го
в седьмом по старшинству то после 15 го
в восьмом по старшинству то после 16 го
в девятом по старшинству то после 17 го .

На 10 такте старший разряд покидает регистр задержки и проходит через сумматор по модулю 2.

Если и этому моменту остаток в ФПГ=R0(X), то логическая 1 с выхода дешифратора поступит на второй вход сумматора и старший разряд инвертируется.

В нашем случае инвертируется второй разряд на 11 такте.

5.3 Выбор образующего полинома

Рассмотрим вопрос выбора образующего полинома, который определяет корректирующие свойства циклического кода. В теории циклических кодов показано, что образующий полином представляет собой произведение так называемых минимальных многочленов mi(x), являющихся простыми сомножителями (то есть делящимся без остатка лишь на себя и на 1) бинома x n + 1:

где j = d0 2 =( 2tu.ош+1) – 2 = 2 tи.ош – 1.

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

для любых значений l и tи.ош существует циклический код длины n =2 l – 1, исправляющий все ошибки кратности tи.ош и менее, и содержащий не более проверочных элементов.

Так как , то откуда . (**)

Очевидно, что для уменьшения времени передачи кодовых комбинаций, r следует выбирать как можно меньше. Пусть, например, длина кодовых комбинаций n = 7, кратность исправляемых ошибок tи.ош =1. Из (**) получим r = 1 . log2 ( 7+1 )=3.

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

Электронная почта во многом похожа на обычную почтовую службу.

Отправка и получение почты

Основные протоколы:

SMTP (Simple Mail Transfer Protocol) - простой протокол передачи почты, используется для отправки почты, как клиентом на сервер, так и сервером на другой сервер.

POP3 (Post Office Protocol) - используется для приема почты клиентом с сервера.

IMAP 4 (Internet Message Access Protocol) -

UUCP (Unix-Unix-CoPy) - используется для отправки и приема почты, как клиентом на(с) сервер(а), так и сервером на другой сервер. В данное время почти не используется, поэтому рассматривать не будем.

Первый стандарт - RFC0724 (Proposed official standard for the format of ARPA Network messages D. Crocker, K.T. Pogran, J. Vittal, D.A. Henderson May-12-1977).

Последняя версия - RFC2822 (Internet Message Format P. Resnick, Ed. April 2001).

Текстовая (ASCII) информация может передаваться, как есть.

base64 - кодирует из набор 00-FFв ASCII, чтобы можно было передавать по SMTP (кодируют бинарные файлы).

7bit - не кодирует, указывает, что код ASCII.

8bit - указывает, что не только символы ASCII.

quoted-printable - используется для кодирования национальных языков, символов второй части таблицы ("А" - "=3D").

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


From: // адрес отправителя
To:


From: dima@dionis.kfti.knc.ru
To: igor@dionis.kfti.knc.ru
Subject: С новым годом!
Received: by nmc.tatarstan.ru; Fri, 06 Dec 2002 13:53:32 +0300 (msk)
Received: by kabmin.kazan.su; Fri, 06 Dec 2002 13:48:16 +0400 (MSK)
Received: by nmc.tatarstan.ru; Thu, 05 Dec 2002 18:47:11 +0300 (msk)
Received: from spider.ts by nmc.tatarstan.ru with SMTP; Thu, 05 Dec 2002 18:37:26 +0300 (msk)
Received: (qmail 3541 invoked from network); 5 Dec 2002 15:38:24 -0000
Received: from unknown (HELO mvv) (192.168.103.44) by spider.ts with SMTP; 5 Dec 2002 15:38:21 -0000
Organization: Techoserv A/S
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Dipost Crypto (v2.50C)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-Copy-From: gena@kabmin.tatarstan.ru
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="---Factor Dimail---"

Посылаю файл wget.tgz

--BANNERBANK_280830843726477
Content-Type: application/octet-stream; name="wget.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="wget.tgz"

H4sICHc5pzYAA3dnZXQxNTMudGFyAOw8a1PbyLL7NfoVfSC1GAoZm+eGbLYg
PBJXwFDYSTZ1zqlkLI3tucga7WiE8X44v/1290iybCBx2GzOrbpxbYwlzXT3
9Lt7RjseSOs36zv1rY2f/q4PbDf2dnYA/+41t/fwL36am+6v+zQAdncbzZ3G
.
.
.
vUav0Wv0Gr1Gr9Fr9Hr61/8PvGbSyABoGgA=

8.2.1.Некоторые поля заголовка:

From - адреса отправителей.

To - адрес получателя.

Reply-To - адрес для ответа.

X-Mailer - тип и версия почтовой программы клиента.

Comments - комментарии.

Priority - приоритетность.

Organization - название организации отправителя

MIME-Version - поле для идентификации стандарта MIME, значит письмо использует MIME.

Content-Type - тип и подтип MIME (text/html,audio/midi).

Content-Transfer-Encoding - идентификатор типа кодировки (base64, quoted-printable, 7bit, 8bit, binary и т.д.).

base64 - кодирует из набор 00-FFв ASCII, чтобы можно было передавать по SMTP (кодируют бинарные файлы).

7bit - не кодирует, указывает что код ASCII.

8bit - указывает, что не только символы ASCII.

quoted-printable - используется для кодирования национальных языков, символов второй части таблицы ("А" - "=3D").

8.3 Протокол SMTP

Первый стандарт - RFC0788 (Simple Mail Transfer Protocol J. Postel Nov-01-1981).

Последняя версия - RFC2821 (Simple Mail Transfer Protocol J. Klensin, Ed. April 2001).

Simple Mail Transfer Protocol - протокол высокого уровня (а именно, уровня приложений), используется для отправки почты, как клиентом на сервер, так и сервером на другой сервер.

Порт по умолчанию - 25.

8.3.1 Модель протокола

События работы SMTP протокола:

Клиент инициирует соединение с сервером

Клиент посылает запросы на обслуживание

Сервер отвечает на эти запросы

Модель протокола SMTP

8.3.2 Последовательность команд SMTP

Протокол SMTP оговаривает последовательность SMTP-команд

R - сервер (receive)

8.3.3 Некоторые команды SMTP

Обязательные команды (команды которые должны присутствовать всегда)

HELO - Открытие сеанса связи (hello).

MAIL - Начинает почтовую транзакцию, которая завершается передачей данных в один или несколько почтовых ящиков (mail).

RSET - Прерывает текущую почтовую транзакцию (reset).

NOOP - Требует от получателя не предпринимать никаких действий, а только выдать ответ ОК. Используется главным образом для тестирования.(No operation).

QUIT - Закрытие сеанса связи.

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

SEND - Начинает почтовую транзакцию, доставляющую данные на один или несколько терминалов (а не в почтовый ящик).

SOML - Начинает транзакцию MAIL или SEND, доставляющую данные на один или несколько терминалов или в почтовые ящики.

SAML - Начинает транзакцию MAIL и SEND, доставляющие данные на один или несколько терминалов и в почтовые ящики.

8.3.4 Синтаксис некоторых команд SMTP

Команды, MAIL, SEND, SOML и SAML, имеют одинаковый синтаксис:

(CRLF) возврат каретки.

Примечание: Команды SEND, SOML и SAML дополнительны и используются довольно редко.

Синтаксис RCPT похож на синтаксис команды MAIL:

Однако, в отличие от MAIL, аргумент RCPT начинается со слова .

Каждая цифра в коде ответа имеет определенный смысл. Первая цифра означает, было ли выполнение команды успешно (2), неуспешно (5) или еще не закончилось (3). Как указано в приложении Е документа RFC 821, простой SMTP-клиент может анализировать только первую цифру в ответе сервера, и на основании ее продолжать свои действия. Вторая и третья цифры кода ответа разъясняют значение первой. Если вы разрабатываете SMTP-приложение, обязательно изучите конструкцию всех кодов SMTP-ответа.

Можно использовать промежуточные сервера для доставки почты получателю.

При этом параметры To, From и Cc остаются без изменений.

8.3.7 Резервные почтовые серверы (relay)

В случае если основой сервер не доступен, почта может быть отправлена на резервный, который задается в записях MX (DNS). Резервный сервер хранит почту (клиент ее получить не может) до тех пор, пока не заработает основной сервер, как только основной заработает, резервный передает всю накопившеюся почту. Резервных серверов может быть достаточно много. Как правила несколько разных серверов являются резервными по отношению к друг другу.

Когда основной сервер не доступен, почта передается на резервный,
когда основной сервер становится доступен, резервный передает почту основному.

Отправим письмо через Telnet.

Клиенту необходимо ввести следующие строки:


    DATA
    DATE: 27-Oct-2003 12:48:32
    FROM: Влад Богомолов
    SUBJECT: С новым годом!
    To:

Подключение и отправка письма telnet'ом (UNIX) на сервер SMTP (Дионис)

Подключение и отправка письма telnet'ом (Windows) к серверу SMTP (Дионис)

Подключение и отправка письма telnet'ом (UNIX) к серверу SMTP-Sendmail 8.12.8 (UNIX)

Электронная почта - это основное средство коммуникаций Internet.
Она во многом похожа на обычную почту. С ее помощью письмо - текст, снабженный стандартным заголовком (конвертом) - доставляется по указанному адресу, который определяет местонахождение сервера и имя адресата, который имеет почтовый ящик на этом сервере, с тем, чтобы адресат мог его достать и прочесть в удобное время.
Электронная почта оказалась во многом удобнее обычной, "бумажной". Кроме того,

Файлы: 1 файл

Министерство образования и науки Рб Рф.docx

Протоколы приёма и передачи почты.

Почтовые программы для персональных компьютеров используют разные протоколы для приема и отправки почты. При отправке почты программа взаимодействует с сервером исходящей почты, или SMTP-сервером, по протоколу SMTP. При приеме почты программа взаимодействует с севером входящей почты, или POP3-сервером по протоколу POP3.

Простой протокол передачи почты (SMTP).

Команды SMTP и их последовательность.

Список ключевых слов (команд), определенный в спецификации SMTP.

Команды простого протокола передачи почты (SMTP)

Команды X-обязаны присутствовать в любой реализации SMTP. Остальные команды могут быть реализованы дополнительно. Каждая SMTP-команда должна заканчиваться либо пробелом (если у нее есть аргумент), либо комбинацией CRLF. SMTP способен передавать данные любого содержания (например, текст, графические, звуковые файлы).

MTP обеспечивает двухстороннюю связь между агентами передачи почты (МТА), клиентом и сервером. Клиенты шлют команды серверу, а серверы отвечают клиентам. Однако SMTP оговаривает последовательность SMTP-команд.

1. RECEIVER: 220 mit.edu Simple Mail Transfer Service Ready

2. SENDER: HELO usc.edu

3. RECEIVER: 250 mit.edu

4. SENDER: MAIL FROM:

5. RECEIVER: 250 OK

6. SENDER: RCPT TO:

7. RECEIVER: 250 OK

8. SENDER: RCPT TO:

9. RECEIVER: 550 No such user here

10. SENDER:: RCPT TO

11. RECEIVER: 250OK

13. RECEIVER: 354 Start mail input; end with .

14. SENDER: Blah blah blah.

15. SENDER: . etc. etc. etc.

17. RECEIVER: 250 OK

19. RECEIVER: 221 mit.edu Service closing transmission channel

Как видно из строки 1, когда SMTP-клиент устанавливает TCP-соединение с портом протокола 25, SMTP-сервер отвечает кодом 220. Это означает, что соединение успешно установлено:

1. RECEIVER: 220 mit.edu Simple Mail Transfer Service Ready

После того, как MTA компьютеров mit.edu и usc.edu установили соединение и обменялись приветствием, первой командой должна быть команда HELO. Как указано в строке 2, SMTP-клиент передает HELO, называя имя своего компьютера в качестве аргумента. Команда HELO употребляется с аргументом, как показано ниже:

2. SENDER: HELO usc.edu

В ответ на HELO приемник выдает код 250, сообщая передатчику о том, что команда принята и обработана:

3. RECEIVER: 250 mit.edu

После установления TCP-соединения и идентификации (при помощи HELO) SMTP-клиент приступает к почтовой транзакции. Для начала он выполняет одну из следующих команд: MAIL, SEND, SOML или SAML. В нашем примере использована команда MAIL:

4. SENDER: MAIL FROM:Smith@usc.edu

Четыре команды, MAIL, SEND, SOML и SAML, имеют одинаковый синтаксис:

MAIL FROM: line-feed>

8. SENDER: RCPT TO:

сервер отвечает кодом 550:

9. RECEIVER: 550 No such user here

После того как посланы все команды RCPT, клиент начинает передачу при помощи команды DATA. В строке 12 показано, как МТА-клиент (передатчик) высылает команду DATA, в строке 13 - как сервер отвечает кодом 354. Этот код означает, что передача данных разрешена и должна заканчиваться комбинацией CRLF-точка-CRLF (новой строкой, содержащей только точку).

13. RECEIVER: 354 Start mail input; end with .

17. RECEIVER: 250 OK

Для того, чтобы закончить почтовую транзакцию, клиент, по правилам SMTP, обязан послать команду QUIT. Сервер, в свою очередь, отвечает кодом 221, который подтверждает клиенту, что соединение будет закрыто, после чего соединение действительно закрывается:

19. RECEIVER: 221 mit.edu Service closing transmission channel

В любой момент во время транзакции клиент может использовать команды NOОР, HELP, EXPN и VRFY. В ответ на каждую команду сервер высылает клиенту определенную информацию. В зависимости от ответа клиент может предпринять определенные действия.

В спецификации SMTP требуется, чтобы сервер отвечал на каждую команду SMТР- клиента. МТА-сервер отвечает трехзначной комбинацией цифр, называемой кодом ответа. Вместе с кодом ответа, как правило, передается одна или несколько строк текстовой информации.

Каждая цифра в коде ответа имеет определенный смысл. Первая цифра означает, было ли выполнение команды успешно (2), неуспешно (5) или еще не закончилось (3). Простой клиент может анализировать только первую цифру в ответе сервера, и на основании ее продолжать свои действия. Вторая и третья цифры кода ответа разъясняют значение первой.

Коды ответа SMTP и их значение

Значения первой цифры в коде ответа SMTP

Цифра 1 означает, что сервер МТА принял команду, от клиента требуется дополнительное подтверждение. Клиент обязан послать дополнительную информацию о том, продолжать или прервать выполнение запрошенной команды. Из табл. 2 видно, что SMTP не имеет в составе таких команд, то есть коды ответа, начинающиеся с единицы, отсутствуют. В настоящее время команд SMTP, которые бы потребовали дополнительного подтверждения, нет. Разработчики ориентировались на то, что такие команды появятся, и зарезервировали для них коды, начинающиеся с цифры 1.

Значения второй цифры кода ответа SMTP

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

Третья цифра кода ответа SMTP

Кодом называется правило однозначного преобразования элемен­тарных символов алфавита А в символы алфавита В. Процесс такого преобразования называется кодированием, а обратный ему процесс, связанный с переходом от алфавита В к А, — декодированием.

Код характеризуется тремя основными параметрами: основани­ем т, значностью n и максимальным количеством составных сиг­налов или кодовых комбинаций N . Каждому символу алфавита А соответствует определенная кодовая комбинация алфавита В.

Основанием кода т называется число различных элементарных символов, образующих составной сигнал. Элементарные символы могут отличаться между собой полярностью, длительностью, ам­плитудой, частотой заполнения. При т = 2 код называется двоич­ным или бинарным, при т = 3 - троичным, при т- А- четверичным и т.д. В большинстве радиоэлектронных систем используется дво­ичный код, при котором одним из элементарных символов является 1, другим 0, или другая комбинация 1 и -1.

Значностью кода п называется число элементарных символов, образующих составной сигнал или кодовую комбинацию. Состав­ные сигналы могут быть одинаковой или разной значности. В пер­вом случае код называется равномерным, во втором - неравно­мерным. Примером равномерного кода является код Бодо (п = 5), неравномерного - код Морзе.

Максимальное количество составных сигналов или комбинаций А/кода при основании т и значности n.

N = m n . (1.6)

Код, содержащий все комбинации, определяемые согласно (1.3), называется полным, в противном случае - неполным.

При двоичном полном коде

гдезначность n = log2N есть число разрядов или бит в одном составном сигнале или в одной кодовой комбинации.

Так, при n = 2 получим четыре кодовые комбинации: 00 01 10 11; При n = 3 - восемь кодовых комбинаций: 000 001 010 011 100 101 110111.

Процесс передачи и приема кодовых комбинаций может сопро­вождаться ошибками, что связано с трансформацией одних эле­ментарных символов в другие, например, в приеме вместо символа 1 символа 0 или наоборот. Коды, обнаруживающие и исправляю­щие ошибки, называются корректирующими. Такой код обязательно является неполным, т.е. имеющим число кодовых комбинаций меньше числа, определяемого согласно (1.6) или (1.7).

В любом корректирующем коде исправление ошибок достигает­ся за счет его избыточности, т.е. путем добавления к смысловым символам контрольных. К таким кодам относятся, например, груп­повые или блоковые коды [24, 30].

В групповом корректирующем двоичном коде значностью п все символы разбиваются на две группы: информационные (смысло­вые) и контрольные (избыточные). Каждая кодовая комбинация или слово, состоящая из п бит, имеет к информационных и (п-к ) кон­трольных символов.

Буква Число в десятичной системе Число в двоичной системе
А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
П
Р
С
Т
У
Ф
X
Ц
Ч
Ш
Щ
Ъ
Ы
Ь
Э
Ю
Я
Пробел 1G0001
Точка

Таким образом, в групповом коде из общего числа N = 2 n используютсятолько К= 2 к комбинаций. В целом групповой код обо­значаетсякак (n, к).




Пусть имеется семь строк кодированной информации в один байт с последним битом контроля четности. Добавим к этим семи строкам восьмую и помимо проверки контроля четности по строкам будем производить проверку четности по столбцам (табл. 1.2), что позволит обнаружить одиночную ошибку не только в строке, но и в том или ином столбце.

Та б л и ц а 1.2

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

Помимо кодов — совокупности определенного числа составных сигналов - в цифровых системах радиосвязи используются также отдельные последовательности элементарных символов. Такие кодовые последовательности, используемые в качестве стартовых сигналов и для групповой синхронизации, формируются путем ком­бинации элементарных символов по определенному закону. Кодовые последовательности подобно кодам характеризуются основанием т и длиной кодовой комбинации N. Одной из часто применяемых кодо­вых последовательностей является сигнал Баркера с основанием т - 2 и числом элементарных символов N = 3, 5, 7, 11, 13.

Один из элементарных символов в этом сигнале есть +1 и дру­гой -1. Сигналы Баркера имеют следующую структуру:

- при N = 3: +1, +1, -1;

- при N = 5: +1, +1, +1, -1, +1;

- при N = 7: +1, +1, +1, - 1, -1, +1, -1;

- при N = 11: +1, +1, +1, -1, -1, - 1, +1, - 1, -1, +1, -1;

- при N = 13: +1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, -1, +1.



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

где F - высшая частота в спектре передаваемого аналогового со­общения (§ 3.7), а длительность элементарной посылки

τ = Т/n = 1/2Fn. (1.9)

V = n/T = 1/x = Fn/4 [байт/с]. (1.10)

Кодом называется правило однозначного преобразования элемен­тарных символов алфавита А в символы алфавита В. Процесс такого преобразования называется кодированием, а обратный ему процесс, связанный с переходом от алфавита В к А, — декодированием.

Код характеризуется тремя основными параметрами: основани­ем т, значностью n и максимальным количеством составных сиг­налов или кодовых комбинаций N . Каждому символу алфавита А соответствует определенная кодовая комбинация алфавита В.

Основанием кода т называется число различных элементарных символов, образующих составной сигнал. Элементарные символы могут отличаться между собой полярностью, длительностью, ам­плитудой, частотой заполнения. При т = 2 код называется двоич­ным или бинарным, при т = 3 - троичным, при т- А- четверичным и т.д. В большинстве радиоэлектронных систем используется дво­ичный код, при котором одним из элементарных символов является 1, другим 0, или другая комбинация 1 и -1.

Значностью кода п называется число элементарных символов, образующих составной сигнал или кодовую комбинацию. Состав­ные сигналы могут быть одинаковой или разной значности. В пер­вом случае код называется равномерным, во втором - неравно­мерным. Примером равномерного кода является код Бодо (п = 5), неравномерного - код Морзе.

Максимальное количество составных сигналов или комбинаций А/кода при основании т и значности n.

N = m n . (1.6)

Код, содержащий все комбинации, определяемые согласно (1.3), называется полным, в противном случае - неполным.

При двоичном полном коде

гдезначность n = log2N есть число разрядов или бит в одном составном сигнале или в одной кодовой комбинации.

Так, при n = 2 получим четыре кодовые комбинации: 00 01 10 11; При n = 3 - восемь кодовых комбинаций: 000 001 010 011 100 101 110111.

Процесс передачи и приема кодовых комбинаций может сопро­вождаться ошибками, что связано с трансформацией одних эле­ментарных символов в другие, например, в приеме вместо символа 1 символа 0 или наоборот. Коды, обнаруживающие и исправляю­щие ошибки, называются корректирующими. Такой код обязательно является неполным, т.е. имеющим число кодовых комбинаций меньше числа, определяемого согласно (1.6) или (1.7).

В любом корректирующем коде исправление ошибок достигает­ся за счет его избыточности, т.е. путем добавления к смысловым символам контрольных. К таким кодам относятся, например, груп­повые или блоковые коды [24, 30].

В групповом корректирующем двоичном коде значностью п все символы разбиваются на две группы: информационные (смысло­вые) и контрольные (избыточные). Каждая кодовая комбинация или слово, состоящая из п бит, имеет к информационных и (п-к ) кон­трольных символов.

Буква Число в десятичной системе Число в двоичной системе
А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
П
Р
С
Т
У
Ф
X
Ц
Ч
Ш
Щ
Ъ
Ы
Ь
Э
Ю
Я
Пробел 1G0001
Точка

Таким образом, в групповом коде из общего числа N = 2 n используютсятолько К= 2 к комбинаций. В целом групповой код обо­значаетсякак (n, к).

Пусть имеется семь строк кодированной информации в один байт с последним битом контроля четности. Добавим к этим семи строкам восьмую и помимо проверки контроля четности по строкам будем производить проверку четности по столбцам (табл. 1.2), что позволит обнаружить одиночную ошибку не только в строке, но и в том или ином столбце.

Та б л и ц а 1.2

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

Помимо кодов — совокупности определенного числа составных сигналов - в цифровых системах радиосвязи используются также отдельные последовательности элементарных символов. Такие кодовые последовательности, используемые в качестве стартовых сигналов и для групповой синхронизации, формируются путем ком­бинации элементарных символов по определенному закону. Кодовые последовательности подобно кодам характеризуются основанием т и длиной кодовой комбинации N. Одной из часто применяемых кодо­вых последовательностей является сигнал Баркера с основанием т - 2 и числом элементарных символов N = 3, 5, 7, 11, 13.

Один из элементарных символов в этом сигнале есть +1 и дру­гой -1. Сигналы Баркера имеют следующую структуру:

- при N = 3: +1, +1, -1;

- при N = 5: +1, +1, +1, -1, +1;

- при N = 7: +1, +1, +1, - 1, -1, +1, -1;

- при N = 11: +1, +1, +1, -1, -1, - 1, +1, - 1, -1, +1, -1;

- при N = 13: +1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, -1, +1.



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

где F - высшая частота в спектре передаваемого аналогового со­общения (§ 3.7), а длительность элементарной посылки

τ = Т/n = 1/2Fn. (1.9)

V = n/T = 1/x = Fn/4 [байт/с]. (1.10)

Читайте также: