…
…
Обчисліть час передачі Вашого фото в виділеному каналі, де використовується метод MIMD з низьким стартом (навчальна кількість пакетів дорівнює 1 ). Параметр мультипликативного зростання дорівнює 2, параметер мультипликативного зниження дорівнює 1/3. Втрачені пакети передаються повторно.
Розмір пакету передачи 1000 байт, дистанція між клієнтом та сервером М*1000 км (дистанція - це дліна канала, M - це місяць Вашого народження), смуга пропускання каналу 1200 Кбіт/c, та тип каналу – волоконно-оптичний.
Розробить метод обчислення відносної затримки для умов пункта 2.1, або її аналога! Порівняйте її з відносною затримкою для протоколу зупинки та очікування.
Напишіть серверно-клієнтський додаток, що, використовуючи протокол Socket.io, виконує синхронізацію годинників клієнтів з годинником на клієнті з найменьшим дрейфом як майстер-годинником, приймаючи гіпотезу симетричності каналів. Дайте оцінку похибки методу визначення початкової синхрокорекції \(𝜃_0\) та параметру \(\varepsilon\) дрейфу годинників.
Самостійно вибрати передбачуваний Вами закон розподілу випадкових величин з набору:
а) Гаусовий розподіл
б) Зміщений розподіл Пуассона
в) Зміщений експоненційний розподіл
Для обраного розподілу за даними роботи програми отримати оцінки випадкової величини :
…
Робота зроблена відповідно до алгоритму описаного в …
Код відображає на веб-сторінці час передачі даних для протоколу зупинки та очікування. Для синхронізації використовується бібліотека superlib
<script src="/superlib/superlib.js"></script>
<body onload="start()">
<pre id=MyClocks>...</pre>
<hr>
<pre id=TimeConsole></pre>
<hr>
</body>
Тут використовуються два pre-елементи: MyClocks та TimeConsole.
MyClocks буде відображати час сервера та браузера, а TimeConsole буде відображати час передачі даних для протоколу зупинки та очікування.
Функція start ініціалізує процес обчислення часу та обробку змін часу:
Створюється об'єкт, який буде зв'язуватися з сервером кожну секунду (1000 мілісекунд).
Обробка змін зміщення часу:
super.on('change', function (offset) {
numSamples++;
let alpha = 1 / (numSamples + 1);
smoothed = alpha * offset + (1 - alpha) * smoothed;
let s = '\n Clocks (with small errors): ' + smoothed.toFixed(3) + ' ms<br>' + TimeConsole.innerHTML;
TimeConsole.innerHTML = s;
});
У цьому блоку коду, кожен раз при виявленні зміни зміщення часу, відбувається оновлення альфа-коефіцієнта та обчислення зміщення часу. Значення часу потім додається до елемента TimeConsole.
Взагалі код виконує такі кроки:
Ваша програма не синхронізує клієнта із сервером. У ній немає тестування асиметрії каналу. Додайте код у реалізацію, який якось вирішує ці проблеми!
Відповідь…
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