or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
2024_: Комп'ютерні системи і мережі. Контрольна робота. Прізвище, ім'я та по батькові.
Тема. Синхронізація часу
Для виконання контрольної роботи Ви повинні скопіювати текст завдання (у форматі md ) та створити, використовуючи цей текст, на хостингу hack.md лист контрольної роботи із зазначенням Вашого прізвища, імені та по батькові.
Відразу після закінчення контрольної роботи ви маєте надіслати посилання на опублікований лист з розв'язаннями. Лист повинен бути опублікований з правами читання та правки signed-in users.
Остаточну оцінку буде поставлено після співбесіди у вибраних питаннях на знання записаних на Вашому листі контрольної роботи відповідей.
Афінні моделі комп'ютерних годинників та неузгодженості
\[ \tau(t) = \theta_0 + \sigma\cdot t = \theta_0 + (1+\epsilon)\cdot t \tag{𝜏|1} \]
де
\(\theta_0\) - розузгодження комп'ютерного годинника з ідеальним годинником у початковий момент,
\(\sigma \approx 1\) - швидкість ходу комп'ютерного годинника щодо ідеального годинника, починаючи з початкового моменту,
\(|\epsilon| \ll 1\)- дрейф (відхилення швидкості) комп'ютерного годинника щодо ідеального годинника, починаючи з початкового моменту.
\[ \begin{align} \tau_1(t) = \theta_1 + \sigma_1\cdot t = \theta_1 + (1+\epsilon_1)\cdot t ,\\ \tau_2(t) = \theta_2 + \sigma_2\cdot t = \theta_2 + (1+\epsilon_2)\cdot t \end{align} \tag{$𝜏_1,𝜏_2$|2} \]
\[ \begin{align} \theta_{1,2}(t) = \tau_1(t) - \tau_2(t) = (\theta_1 - \theta_2) + (\sigma_1-\sigma_2)t =\\ =(\theta_1 - \theta_2) + (\epsilon_1-\epsilon_2)t =\theta_0 + \varepsilon t \end{align} \tag{$θ_{12}$|3} \]
де \(\theta_0\) -початкова відносна неузгодженість, а \(\varepsilon\) - дрейф другого годинника відносно до першого (\(|\varepsilon|\ll 1\)).
Простий протокол синхронізації годинника
У досить простих сценаріях узгодження часу можна знехтувати \(\varepsilon\)-дрейфом пар годинників і оцінювати тільки початкову відносну неузгодженість \(\theta_0\) годинників .
Початкова оцінка поточної неузгодженості
Початкова оцінка \(\tilde\theta_0 = T_0 - \tau_0\) поточної неузгодженості між часовими помітками клієнта та сервера:
\[ \tilde\theta_0= \frac{(T_1-\tau_0)+(T_2-\tau_3)}{2} \tag{$\tildeθ_0$|1} \]
де
\(\tau_0\) — часова помітка клієнта про передачу пакета запиту,
\(T_1\) — часова помітка сервера прийому пакета запиту,
\(T_2\) — часова помітка сервера передачі пакету у відповідь,
\(\tau_3\) — часова помітка клієнта про прийом пакету у відповідь.
\[ \left\{ \begin{array} \, \tau_0 +\tilde\theta_0 + \frac{1}{2}\Delta=T_1 \\ \, \tau_3 +\tilde\theta_0 - \frac{1}{2}\Delta=T_2 \tag{$\tildeθ_0$|3} \end{array} \right. \]
Для каналів з асиметричними затримками можна переписати систему рівнянь (\(\tildeθ_0\)|3) як системи з обмеженням (θ,p|4):
\[ \left\{ \begin{array} . \tau_0 +\theta_0+p\cdot\Delta=T_1 \\ \;\;\;\tau_3 +\theta_0-(1-p)\cdot\Delta=T_2 \\ \tag{θ,p|4} 0 < p < 1, \end{array} \right. \]
де \(p\) - параметр асиметрії (для симетричних затримок \(p=1/2\))
Коефіцієнт асиметрії
Якщо нам відомі пряма (forward) \(\delta_f\) і зворотна (backward) \(\delta_b\) затримки (\(\Delta=\delta_f+\delta_b\)), то коефіцієнт асиметрії \(\xi_a\) визначається як
\[ \xi_a = { \delta_f \over \delta_b } \tag{$ξ_a$|5} \]
Для симетричних затримок \(\xi_a=1\).
Маючи параметр \(p\), коефіцієнт асиметрії затримок \(\xi_a\) можна визначити як \[ \xi_a = { p \over 1-p } \tag{$ξ_a$|6} \]
Уточнення величини асиметрії - це важке завдання, навіть із використанням односторонніх протоколів, таких, як UDP і протоколів, заснованих на них, наприклад, WebRTC, якщо відсутні заздалегідь синхронізовані пари атомних годинників
годинників, якщо нам відомий параметр асиметрії \(p\) ?
годинників, якщо нам відомий коефіцієнт асиметрії \(\xi_a\)?
Практичне завдання
Розглянемо мережну програму, в якій два клієнти (js програми всередині браузерів), що знаходяться, можливо, дуже далеко один від одного і від сервера, обмінюються своїм поточним часом, використовуючи тільки HTTP GET fetch() на боці браузерів.
Вибір варіанта практичного завдання
Вибрати варіант за формулою
\[v = 1 + (d\mod 2),\]
де d – ваш день народження.
Якщо ви встигли запрограмувати Ваше рішення, треба надати посилання на invite Вашого проекту
Інформаційні матеріали
2024: Комп'ютерні системи і мережі. 3. Узгодження стану. Синхронізація часу