2025: Комп'ютерні системи та мережі. Екзаменаційний лист 4.


Прізвище Ім'я та по Батькові. Дата народження.

Відомий Іван Олександрович, 30.07.2003
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

1. Екзаменаційні запитання (4 бали)

  • 1.1 Для якого класу алгоритмів контролю перевантаження канала при одночаснiй роботі з каналом декількох з'єднань відбувається адаптивна збіжність до рівного використання ресурсів каналу? Чому це відбувається? (2 бали)

Відповідь

  • 1.2 Чому інші схеми: мультиплікативне зростання/мультиплікативне зменшення (MIMD) та адитивне зростання/адитивне зменшення (AIAD) - не сходяться до стабільного і справедливого спільного поділу ресурсів каналу? Яку схему можно назвати найбільш нестабільною, а яку найбільш несправедливою?

Відповідь

2. Розрахункові екзаменаційні завдання (6 балів)

2.1 Час передачі даних (3 бали)

Обчисліть час передачі Вашого фото в виділеному каналі, де використовується метод MIMD з низьким стартом (навчальна кількість пакетів дорівнює 1 ). Параметр мультипликативного зростання дорівнює 2, параметер мультипликативного зниження дорівнює 1/3. Втрачені пакети передаються повторно.
Розмір пакету передачи 1000 байт, дистанція між клієнтом та сервером М*1000 км (дистанція - це дліна канала, M - це місяць Вашого народження), смуга пропускання каналу 1200 Кбіт/c, та тип каналу волоконно-оптичний.

Розв'язання

2.2 Відносна затримка (3 бали)

Розробить метод обчислення відносної затримки для умов пункта 2.1, або її аналога! Порівняйте її з відносною затримкою для протоколу зупинки та очікування.

Розв'язання

3. Екзаменаційне завдання на реалізацію (15 балів)

3.1 Час передачі даних для протоколу зупинки та очікування

Напишіть серверно-клієнтський додаток, що, використовуючи протокол Socket.io, виконує синхронізацію годинників клієнтів з годинником на клієнті з найменьшим дрейфом як майстер-годинником, приймаючи гіпотезу симетричності каналів. Дайте оцінку похибки методу визначення початкової синхрокорекції \(𝜃_0\) та параметру \(\varepsilon\) дрейфу годинників.
Самостійно вибрати передбачуваний Вами закон розподілу випадкових величин з набору:
а) Гаусовий розподіл
б) Зміщений розподіл Пуассона
в) Зміщений експоненційний розподіл
Для обраного розподілу за даними роботи програми отримати оцінки випадкової величини :

  • min - мінімум
  • \(q_{1/4}\) - перший (або нижній) квартiль
  • \(q_{2/4}=q_{1/2}=\) med - медіана або другий квартiль
  • avg - середнє арифметичне
  • mode - мода
  • \(q_{3/4}\) - третій (або верхній) квартiль
  • max - максимум
  • stddev - стандартне відхилення
  • \(I_q = q_{3/4} - q_{1/4}\) - інтерквартiльний розмах
    Вибрати найбільш точну оцінку для з ціх параметрів для \(𝜃_0\)

Опис розв'язання (заменіть своїм)


Робота зроблена відповідно до алгоритму описаного в

Код відображає на веб-сторінці час передачі даних для протоколу зупинки та очікування. Для синхронізації використовується бібліотека superlib

  1. Підключення бібліотеки superlib:
<script src="/superlib/superlib.js"></script>
  1. Створення HTML-структури сторінки:
<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.

Взагалі код виконує такі кроки:

  • Відправлення клієнтським додатком запиту на сервер для
  • Обчислення різниці між
  • Повторення процесу декілька разів та сумування обчислених різниць з врахуванням коефіцієнта згладжування.
  • Якщо потрібно перевірити швидкість мережі : використання додаткового серверного файлу для виконання тесту швидкості мережі та отримання даних про швидкість завантаження, швидкість відправлення та пінг.

3.3 Посилання на розв'язання

4. Питання (приклад)

Ваша програма не синхронізує клієнта із сервером. У ній немає тестування асиметрії каналу. Додайте код у реалізацію, який якось вирішує ці проблеми!


Відповідь

Select a repo