Try   HackMD

2024_: Комп'ютерні системи і мережі. Контрольна робота. Прізвище, ім'я та по батькові.

Тема. Синхронізація часу

Для виконання контрольної роботи Ви повинні скопіювати текст завдання (у форматі md ) та створити, використовуючи цей текст, на хостингу hack.md лист контрольної роботи із зазначенням Вашого прізвища, імені та по батькові.

Відразу після закінчення контрольної роботи ви маєте надіслати посилання на опублікований лист з розв'язаннями. Лист повинен бути опублікований з правами читання та правки signed-in users.
Остаточну оцінку буде поставлено після співбесіди у вибраних питаннях на знання записаних на Вашому листі контрольної роботи відповідей.

Афінні моделі комп'ютерних годинників та неузгодженості

(𝜏|1)τ(t)=θ0+σt=θ0+(1+ϵ)t
де
θ0
- розузгодження комп'ютерного годинника з ідеальним годинником у початковий момент,
σ1
- швидкість ходу комп'ютерного годинника щодо ідеального годинника, починаючи з початкового моменту,
|ϵ|1
- дрейф (відхилення швидкості) комп'ютерного годинника щодо ідеального годинника, починаючи з початкового моменту.
(𝜏1,𝜏2|2)τ1(t)=θ1+σ1t=θ1+(1+ϵ1)t,τ2(t)=θ2+σ2t=θ2+(1+ϵ2)t

(θ12|3)θ1,2(t)=τ1(t)τ2(t)=(θ1θ2)+(σ1σ2)t==(θ1θ2)+(ϵ1ϵ2)t=θ0+εt

де
θ0
-початкова відносна неузгодженість, а
ε
- дрейф другого годинника відносно до першого (
|ε|1
).

  • Чи є функції
    τ(t)
    і
    θ1,2(t)
    монотонно зростаючими? Доведіть.




  • Чи є показання реальних кварцових годинників та неузгодженість пари реальних кварцових годинників монотонними функціями? Обґрунтуйте.




  • Якщо ми знаємо
    τ1(t)
    ,
    τ2(t)
    ,
    θ
    ,
    ε
    , як дізнатися час атомного годинника?




  • Якщо ми знаємо
    θ1
    ,
    ϵ1
    ,
    θ2
    ,
    ϵ2
    , за якою формулою можна обчислювати залежність показань часу другого годинника від першого:
    τ2(τ1)
    ?




  • Запропонуйте процедуру (метод) визначення
    ε
    -дрейфу другого годинника відносно до першого




Простий протокол синхронізації годинника

У досить простих сценаріях узгодження часу можна знехтувати

ε-дрейфом пар годинників і оцінювати тільки початкову відносну неузгодженість
θ0
годинників .

  • Опишіть Ваші варіанти таких сценаріїв.




Початкова оцінка поточної неузгодженості

Початкова оцінка

θ~0=T0τ0 поточної неузгодженості між часовими помітками клієнта та сервера:
(θ~0|1)θ~0=(T1τ0)+(T2τ3)2

де
τ0
— часова помітка клієнта про передачу пакета запиту,
T1
— часова помітка сервера прийому пакета запиту,
T2
— часова помітка сервера передачі пакету у відповідь,
τ3
— часова помітка клієнта про прийом пакету у відповідь.

  • Що означають показання
    T0
    ,
    τ1
    ,
    τ2
    ,
    T3
    годинників ?




(θ~0|3){τ0+θ~0+12Δ=T1τ3+θ~012Δ=T2

  • Поясніть побудову системи лінійних рівнянь (
    θ~0
    |3)




Для каналів з асиметричними затримками можна переписати систему рівнянь (

θ~0|3) як системи з обмеженням (θ,p|4):
(θ,p|4){τ0+θ0+pΔ=T1τ3+θ0(1p)Δ=T20<p<1,

де
p
- параметр асиметрії (для симетричних затримок
p=1/2
)

  • Чому не можна розв'язати систему (θ,p|4) безпосередньо вiдносно до
    θ0
    та
    p
    ?




Коефіцієнт асиметрії

Якщо нам відомі пряма (forward)

δf і зворотна (backward)
δb
затримки (
Δ=δf+δb
), то коефіцієнт асиметрії
ξa
визначається як
(ξa|5)ξa=δfδb

Для симетричних затримок
ξa=1
.

  • В якому діапазоні може бути величина
    ξa
    ?




Маючи параметр

p, коефіцієнт асиметрії затримок
ξa
можна визначити як
(ξa|6)ξa=p1p

  • Як було отримано формулу
    (ξa|6)
    ?




Уточнення величини асиметрії - це важке завдання, навіть із використанням односторонніх протоколів, таких, як UDP і протоколів, заснованих на них, наприклад, WebRTC, якщо відсутні заздалегідь синхронізовані пари атомних годинників

  • Обґрунтувати цю тезу




  • Доведіть, що помилка
    |θ|=|θ~0θ|
    визначення поточної неузгодженості за формулою (
    θ~0
    |1), якщо припущення про симетричність затримок виявилося хибним, не перевищує
    12|ξa1ξa+1|Δ




  • Якою може бути мінімальна помилка
    |θ|
    визначення поточної неузгодженості
    θ~0
    за формулою (
    θ~0
    |1), якщо припущення про симетричність затримок виявилося хибним, але нам відомий коефіцієнт асиметрії
    ξa
    ? Доведіть!




  • За якою формулою можна розрахувати помилку
    |θ|=|θ~0θ|
    визначення поточної неузгодженості
    θ0
    годинників, якщо нам відомий параметр асиметрії
    p
    ?




  • За якою формулою можна розрахувати початкове неузгодження
    θ0

    годинників, якщо нам відомий параметр асиметрії
    p
    ?




  • За якою формулою можна розрахувати початкове неузгодження
    θ0

    годинників, якщо нам відомий коефіцієнт асиметрії
    ξa
    ?




Практичне завдання

Розглянемо мережну програму, в якій два клієнти (js програми всередині браузерів), що знаходяться, можливо, дуже далеко один від одного і від сервера, обмінюються своїм поточним часом, використовуючи тільки HTTP GET fetch() на боці браузерів.

  • Варіант 1. Опишіть механізм і напишіть фрагменти коду на клієнтах і сервері, відповідальних за якомога більш своєчасну передачу свого часу першим клієнтом, що підключився, - другому за запитом другого клієнта. Які основні проблеми, пов'язані з використаним протоколом, Вам необхідно вирішити для виконання завдання?




  • Варіант 2. Опишіть механізм і напишіть фрагменти коду на клієнтах і сервері, що відповідають якомога більш своєчасну передачу свого часу другим клієнтом, що підключився, - першому. Які основні проблеми, пов'язані з використаним протоколом, Вам необхідно вирішити для виконання завдання?




  • server.js
var express = require('express'); ... ... ...
  • client1 HTML
<div id=Info></div> .... .... ....
  • client1 javascript
... ... // get time setInterval(function () { .... .... }, 100); ...
  • client2 HTML
<div id=Info></div> .... .... ....
  • client2 javascript
... ... // req time ... ...

Вибір варіанта практичного завдання

Вибрати варіант за формулою

v=1+(dmod2),
де d – ваш день народження.

Якщо ви встигли запрограмувати Ваше рішення, треба надати посилання на invite Вашого проекту

Інформаційні матеріали

2024: Комп'ютерні системи і мережі. 3. Узгодження стану. Синхронізація часу