changed 3 months ago
Published Linked with GitHub

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


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

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

Відповідь

  • 1.2 Як можна використовувати методи контролю навантаження для вирішення задач: 1) забезпечення нормального (неперевантаженого) стану роботи серверу, 2) справедливий поділ обчислювальних ресурсів серверу між кількома одночасно працючими клієнтами? Поясніть, який механізм дозволяє розв'язувати обидві ці задачі разом? Для яких обчислювальних задач можно використовувати ці методи? Як впливає обчислювальна складність задачі на вибір методів контролю навантаження серверу?
    (2 бали)

Відповідь

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

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

Вашу екзаменаційну фотографію необхідно передати від клієнта на сервер з мінімальною підсумковою затримкою через комунікаційну систему із трьома виділеними для Вас паралельними каналами.
Обчислите мінімальний час передачі фотографії в цій комунікаційній системі, якщо для передачі даних в кожному каналі використовується протокол зупинки та очікування і якщо Вам відомі: обсяг даних - розмір в байтах Вашої фотографії, максимальний розмір пакету передачи 2000 байт, дистанція між клієнтом та сервером M тисяч километрів (дистанція - це дліна каналів, M - це місяць Вашого народження), смуга пропускання першого каналу 1 Мбіт/c, смуга пропускання другого каналу 2 Мбіт/c, смуга пропускання третього каналу 3 Мбіт/c, та тип каналів радіорелейний.

Розв'язання

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

Розробить метод обчислення аналога відносної затримки якщо в пункті 2.1 длини каналів будуть різні! Порівняйте її з відносною затримкою для більш ефективного протоколу. Як можна використовувати цей більш ефективний протокол на мові javascript в клієнт-серверних додатках?

Розв'язання

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

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

Використовуючи протокол HTTP, метод GET та API fetch() побудувати клієнт-серверний додаток для сервера на хостінгу glitch.com або github codespace, що

  1. передбачає час передачі даних для протоколу зупинки та очікування із заданим розміром кадру даних.
  2. виконує емпіричну оцінку часу передачі даних для протоколу зупинки та очікування.
  3. передбачає час передачі даних для протоколу HTTP.
  4. виконує емпіричну оцінку часу передачі даних для протоколу HTTP.

Обсяг даних для передачі - не більш 64 Мбайт, дані - це фото, або аудіо, що Ви вибираєте на клієнтському компьютері.
Гарантуйте у коді можливість зміни розміру кадру та максимальний розмір кадру даних 2000 байт.
Обчислите приблизну затримку поширення між клієнтом та сервером як для Вашої реалізації протоколу зупинки та очікування для різних розмірів кадру, так і для протоколу HTTP.
Отримайте емпіричну оцінку затримки передавання кадру даних як для Вашої реалізації протоколу зупинки та очікування для різних розмірів кадру, так і для протоколу HTTP.
Отримайте емпіричну оцінку смуги пропускання каналу як для Вашої реалізації протоколу зупинки та очікування для різних розмірів кадру, так і для протоколу HTTP.

Порівняйте і зробить висновки.

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


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

Код відображає на веб-сторінці час передачі даних для протоколу зупинки та очікування. Для синхронізації використовується бібліотека 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