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

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

При построении процесса с СО, соответствующего данному протоколу, и его последующей редукции, получается следующая

диаграмма:

(s = r) ?

 

 

 

 

(s = r) ?

 

 

6

 

 

Out ! x

 

 

 

 

 

 

i In ? x

- j

 

inv(r)

 

 

 

 

 

?

 

 

 

6

 

 

(8.30)

6 (s = r) ?

 

 

 

 

 

inv(s)

 

 

 

(s = r) ?

 

 

 

 

 

 

 

Out ! x

 

 

 

 

 

 

 

inv(s)

 

 

 

 

 

 

 

 

inv(r)

 

Доказать наблюдаемую эквивалентность процессов (8.25) и (8.30) можно, например, при помощи теоремы 34, определив функцию µ вида

µ : {1, 2} × {i, j} → F m

следующим образом:

 

def

 

µ(1, i) = (s = r)

def

 

 

µ(2, i) =

 

 

def

 

 

 

 

 

 

 

µ(1, j) = (s = r)

 

def

6

 

µ(2, j) = (s = r)

8.4.6 Двунаправленная передача

Рассмотренные выше протоколы относятся к классу симплексных протоколов: они реализуют однонаправленную передачу информационных кадров (т.е. кадров, содержащих пакеты) от одного агента к другому.

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

273

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

В дуплексных протоколах посылка подтверждений может быть совмещена с посылкой информационных кадров: если агент B успешно принял информационный кадр f от агента A, он может послать своё подтверждение получения кадра f не отдельным кадром, а в составе своего информационного кадра.

Ниже мы излагаем примеры некоторых дуплексных протоколов.

8.4.7Дуплексный протокол с чередующимися битами

Простейшим дуплексным протоколом является излагаемый в этом параграфе дуплексный протокол с чередующимися битами. Данный протокол является обобщением протокола ABP.

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

Каждый кадр f, пересылаемый каким-либо из этих агентов, содержит пакет x и два бита: s и r, где

s имеет тот же смысл, что и в протоколе ABP: это бит, сопоставленный пакету x,

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

Для формирования кадров используется функция ϕ. Для извлечения пакетов и битов из кадров используются функции info, seq и ack, обладающие следующими свойствами:

info(ϕ(x, s, r))

=

x

seq(ϕ(x, s, r))

=

s

ack (ϕ(x, s, r))

=

r

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

274

С каждым из агентов связан свой таймер, поведение которого описывается процессом T imer, представленным диаграммой (8.21).

Потоковый граф этого протокола имеет следующий вид:

 

'e u

$

 

 

 

 

 

 

'e u

$

 

In1 Out1

 

 

 

 

 

 

 

 

 

In2 Out2

 

 

 

 

 

 

 

C1

'

$C2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Agent1

 

u

 

-

 

e

Channel

 

u

-

 

eAgent2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e C1

 

 

u

 

 

 

e C2

 

 

u

 

(8.31)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&u

 

e6

 

%&

%

 

&u

 

e6

 

%

 

 

 

 

 

 

 

 

start1

 

timeout1

 

 

 

 

 

 

 

start2

 

timeout2

 

e

 

u

 

 

 

 

 

 

 

 

e

 

u

 

?

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T imer1

 

 

 

 

 

 

 

 

 

 

 

 

T imer2

 

 

Процесс, описывающий поведение каждого из агентов, пред-

ставляется в виде следующей блок-схемы:

' $

start

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

inv(s)

 

 

 

 

 

 

 

&

 

%

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

s, r = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

6

 

 

 

 

 

 

 

 

In ? x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

ack(f) =

s

 

 

 

inv(r)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

6

 

6

+

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

C ! ϕ(x, s, 1

 

r)

 

 

 

seq(f) = r

-

Out ! info(f)

 

 

 

 

 

 

 

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

start !

 

 

 

 

 

+

f =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

timeout ?

 

 

 

C ? f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

275

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

Поведение канала представляется процессом (8.29), к которому применено переименование

[ C1/S, C2/R ]

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

Нормальную работу данного протокола можно изобразить следующей диаграммой:

Agent1 ϕ(x0,0,1)- Agent2 x0 - СУ2 СУ1 y0 Agent1 ϕ(y0,0,0) Agent2

Agent1 ϕ(x1,1,0)- Agent2 x1 - СУ2 СУ1 y1 Agent1 ϕ(y1,1,1) Agent2

Agent1 ϕ(x2,0,1)- Agent2 x2 - СУ2 СУ1 y2 Agent1 ϕ(y2,0,0) Agent2

. . .

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

276