Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
23.05.2015
Размер:
1.7 Mб
Скачать

def

{s0}

– SPN =

• Пусть t – произвольный переход сети N, и множества in(t) и out(t) имеют вид {u1, . . . , un} и {v1, . . . , vm} соответственно.

Тогда процесс PN содержит переход из s0 в s0 с меткой

xu1

1:= xu1

1, . . . , xun := xun

 

1

(xu

> 0)

. . . (xun > 0) ?

 

 

 

 

xv1 := xv1 + 1, . . . , xvm := xvm

+ 1

 

 

 

 

 

 

8.4Протоколы передачи данных в компьютерных сетях

8.4.1Понятие протокола

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

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

Каждый протокол можно рассматривать как совокупность нескольких взаимодействующих процессов, в которую входят

процессы, выполняющие формирование, отправление, приём и обработку сообщений (такие процессы называются агентами протокола, а сооб-

щения, пересылаемые от одного агента другому, называются кадрами (frame))

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

каналом связи).

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

не только ту информацию, которую один агент желает передать другому, но и

249

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

Ниже мы рассматриваем некоторые методы распознавания искажений в кадрах. Эти методы делятся на два класса:

1.методы, позволяющие

не только установить факт искажения ,

но и определить искажённые биты кадра и исправить их

(рассматриваются в параграфе 8.4.2), и

2.методы, позволяющие лишь установить факт искажения кадра (рассматриваются в параграфе 8.4.3).

8.4.2Методы исправления искажений в кадрах

Методы распознавания искажений в кадрах, позволяющие

не только установить факт искажения, но и

определить номера искажённых битов и исправить их

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

Каждый кадр представляет собой битовую строку. Искажение кадра заключается в инвертировании некоторых битов этого кадра.

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

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

250

называется кодом Хэмминга для исправления одной ошибки (существуют коды Хэмминга для исправления произвольного количества ошибок).

Идея данного метода заключается в том, что биты кадра делятся на два класса:

информационные биты (содержащие ту информацию, которую отправитель хочет передать получателю), и

контрольные биты (значения которых вычисляются по значениям информационных битов).

Пусть кадр f имеет вид (b1, . . . , bn), и

количество информационных битов в нём равно k,

а количество контрольных битов – r,

т.е. n = k + r.

Поскольку отправитель может размещать свою информацию в k информационных битах, то мы можем считать, что информация, которую отправитель передаёт получателю в кадре f, представляет собой битовую строку M размера k. Кадр, получаемый из строки M дополнением её контрольными битами, мы будем обозначать знакосочетанием ϕ(M).

Для каждого кадра f обозначим знакосочетанием hfi совокупность всех кадров, получаемых из f инвертированием не более одного бита. Очевидно, что количество элементов в hfi равно n + 1.

Предположение о том, что в кадре ϕ(M) при передаче может произойти искажение не более чем в одном бите, можно переформулировать следующим образом: получатель может получить вместо ϕ(M) любой кадр из множества hϕ(M)i.

Нетрудно видеть, что для того, чтобы получатель для каждого M {0, 1}k мог по произвольному кадру из hϕ(M)i однозначно восстановить M, необходимо и достаточно выполнение условия

M1, M2 {0, 1}k M1 6= M2 hϕ(M1)i ∩ hϕ(M2)i = (8.11)

251

т.е. совокупность подмножеств множества {0, 1}n вида

{hϕ(M)i | M {0, 1}k}

состоит из непересекающихся подмножеств. Поскольку

количество таких подмножеств = 2k, и

каждое из этих подмножеств состоит из n + 1 элемента

то для выполнения условия (8.11) должно быть верно неравен-

ство

(n + 1) · 2k ≤ 2n

которое можно переписать в виде

(k + r + 1) ≤ 2r

(8.12)

Нетрудно доказать, что при каждом фиксированном k > 0 неравенство (8.12) (где r предполагается положительным) эквивалентно неравенству

r0 ≤ r

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

Число r0 нетрудно вычислить, когда k имеет вид

k = 2m − m − 1, где m ≥ 1

(8.13)

в этом случае (8.12) можно переписать в виде

 

2m − m ≤ 2r − r

(8.14)

что эквивалентно m ≤ r (т.к. функция 2x − x монотонна при x ≥ 1).

Таким образом, в данном случае нижняя оценка количества контрольных битов r0 равна m.

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

252

Если k имеет вид (8.13), и r = r0 = m, то n = 2m − 1, т.е. номера битов кадра (b1, . . . , bn) можно представлять кортежами из {0, 1}m: каждый номер i {1, . . . , n} представляется двоичной записью числа i, дополненной слева нулями до кортежа длины m.

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

(0 . . . 1 . . . 0)

(одна единица, и остальные нули).

Значения контрольных битов мы будем вычислять следующим образом: для каждого j = 1, . . . , m значение контрольного бита с кортежным номером (0 . . . 1 . . . 0) (единица в j–й позиции) равно сумме по модулю 2 значений информационных битов, кортежная запись номеров которых содержит 1 в j–й позиции.

При получении кадра (b1, . . . , bn) мы проверяем m равенств

X

bi1...im = 0 (j = 1, . . . , m)

(8.15)

ij=1

(где сумма рассматривается по модулю 2). Возможны следующие случаи.

При передаче этого кадра не было искажений. В этом случае все равенства (8.15) будут верны.

При передаче этого кадра произошло инвертирование контрольного бита с кортежным номером (0 . . . 1 . . . 0) (единица в j–й позиции).

Нетрудно видеть, что в этом случае среди равенств (8.15) будет неверно только равенство номер j.

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

Нетрудно видеть, что в этом случае среди равенств (8.15) будут неверны только равенства с номерами j1, . . ., jl.

Таким образом, во всех случаях мы можем

253