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

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