Примеры сетевых топологий


Сетевой протокол времени NTP - часть 23


Процедура вызова коррекции времени использует в качестве параметра peer.hostpoll (peer.peerpoll может быть изменено).

begin packet procedure

peer.rec <- sys.clock;/* забрать полученную временную метку */

if (pkt.mode ? 5) begin

test1 <- (pkt.xmt ? peer.org);/* Тест 1 */
test2 <- (pkt.org = peer.xmt);/* Тест 2 */
endif
else begin
pkt.org <- peer.rec;/* потеря временной метки из-за ошибки */
pkt.rec <- pkt.xmt;
test1;/* ложные тесты */
test2;
endif
peer.org <- pkt.xmt;

poll-update(peer.hostpoll);

Тест 3 требует, чтобы исходная и полученная временные метки не были равны нулю. Если любая из них равна нулю, ассоциация не синхронизирована или потеряла доступ в одном или обоих направлениях.

test3 <- (pkt.org ? 0 and pkt.rec ? 0); /* Тест 3 */

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),
j = ((ti - 2 - ti-3) + ( ti-1 - ti))/2,
e = (1 << sys.precision) + j (ti - ti-3),

где, как и прежде, j = ntp.maxskew/ntp.maxage. << - обозначает сдвиг кода влево. Значение e представляет собой максимальную ошибку или дисперсию, связанную с ошибкой измерения на стороне ЭВМ, а также накопление ошибок из-за дрейфа локальных часов за время после посылки последнего сообщения, посланного партнером. Дисперсия корректируется процедурой фильтра часов (clock-filter).

Рассмотренный метод эквивалентен непрерывному стробированию, которое используется в некоторых телефонных сетях [bel86]. Преимуществом метода является полная независимость от порядка и времени прихода сообщений, а также допустимость потери некоторых пакетов. Очевидно, что достижимые точности зависят от статистических свойств каналов связи.

Тест 4 требует, чтобы вычисленная задержка лежала в допустимых пределах:

test4 <- (|d| < ntp.maxdisperse И e




Начало  Назад  Вперед



Книжный магазин