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


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

Дужевідомий Іван Олександрович, 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 Чому завдання точної синхрокоординації майбутніх подій у мережі з детермінованими параметрами можна вирішити в загальному випадку, а просте, на перший погляд, завдання синхронізації точних годинників в такій же мережі не можна вирішити в загальному випадку, наприклад, у каналі з асиметрією поширення? Які практичні параметри каналу зв'язку дозволяють виконувати точну синхрокоординацію майбутніх подій (наприклад, отримання сигналу від сервера у запланований час на клієнті) в клієнт-серверному додатку навіть для каналів з асиметрією поширення?
    (2 бали)

Відповідь

  • 1.2 Наведіть приклади практичних завдань, у яких розв'язання задачі точної синхрокоординації майбутніх подій у мережі дозволяє обійтися без вирішення найважчого завдання синхронізації годинника!

Відповідь

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

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

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

Розв'язання

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

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

Розв'язання

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

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

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

  • 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