если заголовок правилен, поправляется показание
pkt: call packet; |
/* обработка пакета */ |
if (valid header) begin |
/* если заголовок правилен, поправляется показание местных часов */ |
peer.reach
if (valid data) call clock-update;
endif
else if (peer.config = 0) begin
peer.hostpoll
| /* послать немедленно отклик */ |
call poll-update;
call transmit;
ликвидировать ассоциацию;
endif
endcase
end receive procedure;
Пакетная процедура
Пакетная процедура проверяет корректность сообщения, вычисляет задержку/смещение и вызывает другие процедуры для отбора данных и выбора источника синхронизации. Тест 1 требует, чтобы переданная временная метка отличалась от последней, полученной от того же партнера. Тест 2 требует, чтобы исходная временная метка соответствовала последней метке, посланной тому же партнеру. В случае широковещательного режима (5) rtt=0 и полная точность операции передачи времени будет недостижимой. Однако, полученная точность может быть вполне приемлемой для многих целей. Процедура вызова коррекции времени использует в качестве параметра peer.hostpoll (peer.peerpoll может быть изменено).
begin packet procedure
peer.rec
| /* забрать полученную временную метку */ |
if (pkt.mode ? 5) begin
test1
| /* Тест 1 */ |
test2
| /* Тест 2 */ |
endif
else begin
pkt.org
| /* потеря временной метки из-за ошибки */ |
pkt.rec
test1; |
/* ложные тесты */ |
test2;
endif
peer.org
| /* актуализация исходной временной метки */ |
peer.peerpoll
| /* скорректировать период рассылки */ |
call poll-update(peer.hostpoll);
Тест 3 требует, чтобы исходная и полученная временные метки не были равны нулю. Если любая из них равна нулю, ассоциация не синхронизирована или потеряла доступ в одном или обоих направлениях.
test3
rtt и временное смещение по отношению партнера вычисляется следующим образом. Пусть i четное целое число.
Тогда ti-3, ti-2, ti-1 и ti - содержимое переменных pkt.org, pkt.rec, pkt.xmt и peer.rec, соответственно. Смещение часов j, rtt=d и дисперсия e ЭВМ по отношению к партнеру равны:
d = (ti - ti-3) - (ti-1 - ti - 2),
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий