[TOC] # **Lab 1 Куліш Марія** # Звіт. Лабораторна робота 1 Завдання: 1. Зробити клієнт-серверний застосунок на мові javascript, використовуючи протокол HTTP, що тестує повний час подорожі запиту до сервера та назад (RTT) з обчисленням мінімального, максимального, медіанного та середнього часу RTT, середнього квадратичного відхилення та коефіцієнта асиметрії для частот запитів с клієнта до сервера 16Гц, 8Гц, 4Гц, 2Гц, 1Гц, а також для розмірів клієнтських запитів 128, 256, 512, 1024, 2048 байт. Результати представити у вигляді таблиць 2. Протестувати роботу Вашого клієнт-серверного застосунку в персональній мережі (PAN) та у всесвітній мережі (WAN на хостінгу replit.com). 3. Дати оцінку відстані до сервера та тих характеристик каналу клієнт-сервер, що можно отримати з цих даних 4. Порівняти отримані дані с даними системної мережевої утиліти ping. # Вступ: Один із вирішальних факторів, який впливає на ефективність застосунків, становить час обміну даними між клієнтом та сервером(RTT). У цій лабораторній роботі ми зосередженні на створенні системи для вимірюванні часу RTT під різними умовами, використовуючи клієнт-серверний додаток на JavaScript та HTTP протокол. # **Теоретична частина:** **(RTT)**-Час подорожі запиту туди й назад визначається як час, необхідний для передачі сигналу або пакету даних від одного пристрою до іншого і назад. **Standard Deviation**-стандартне відхилення для RTT показує ступінь розсіювання часу подорожі даних у мережі. Цей показник визначає, наскільки час подорожі варіюється для окремих пакетів, що проходять через мережу. Велике стандартне відхилення свідчить про значну варіативність в часах RTT, що може впливати на загальну продуктивність мережі та діагностику проблем зв’язку. Коефіцієнт асиметрії, відомий як **Skewness Ratio**, вимірює асиметрію розподілу ймовірностей навколо середнього значення. Якщо цей показник більше нуля, розподіл зсувається вправо, що означає позитивну асиметрію. Коефіцієнт, менший за нуль, свідчить про негативний зсув, тобто розподіл зміщений вліво. Коли коефіцієнт дорівнює нулю, розподіл є симетричним. **Koд:** https://replit.com/@MashaKulish/Lab1 Ми створюємо HTTP-сервер за допомогою модуля 'http', який займається обробкою запитів та відповідей. Сервер виконує вимірювання RTT через ендпоінт '/measureRTT', реагуючи на отримані в рамках запиту дані. Також сервер обслуговує GET-запити, відправляючи дані у відповідь. В файлі index.js є функція getRTT та додаткові допоміжні функції, які забезпечують вимірювання та збереження статистики запитів із заданими параметрами. Функції requestSeries та request представляють різні рівні абстракції для здійснення запитів, збору даних і передачі їх до getRTT для обрахунків статистики. У головній функції (main) результати виводяться у вигляді markdown таблиці для зручності. Файл local_server.js містить опис HTTP сервера для тестування у персональній мережі (PAN). # Результати: Таблиця роботи у всесвітній мережі (WAN): | Measurement Frequency (hz) | Request Size (bytes) | Total Requests | Min. RTT (ms) | Max RTT (ms) | Mean RTT (ms) | AVG. RTT (ms) | Standard Deviation RTT (ms) | Skewness RTT | |----------------------------|----------------------|----------------|---------------|--------------|---------------|---------------|-----------------------------|--------------| | 16 | 128 | 20 | 148 | 727 | 437 | 473.00 | 203.34 | -0.0124 | | 8 | 128 | 20 | 850 | 1755 | 1533 | 1429.50 | 305.79 | -0.0359 | | 4 | 128 | 20 | 149 | 2035 | 1526.5 | 1268.21 | 680.67 | -0.0161 | | 2 | 128 | 20 | 142 | 255 | 156.5 | 166.90 | 26.42 | 0.1104 | | 1 | 128 | 20 | 141 | 189 | 151 | 153.60 | 11.58 | 0.0764 | | 16 | 256 | 20 | 141 | 706 | 423 | 425.00 | 181.12 | -0.0025 | | 8 | 256 | 20 | 795 | 1690 | 1524 | 1383.37 | 300.80 | -0.0394 | | 4 | 256 | 20 | 144 | 1999 | 1426 | 1079.61 | 775.38 | -0.0077 | | 2 | 256 | 20 | 142 | 200 | 146 | 152.45 | 13.96 | 0.1190 | | 1 | 256 | 20 | 142 | 165 | 147 | 149.40 | 6.88 | 0.0472 | | 16 | 512 | 20 | 143 | 637 | 249 | 315.80 | 179.94 | 0.0735 | | 8 | 512 | 20 | 714 | 1520 | 1370 | 1247.89 | 262.42 | -0.0491 | | 4 | 512 | 20 | 142 | 1703 | 1088.5 | 978.88 | 620.97 | -0.0073 | | 2 | 512 | 20 | 142 | 199 | 154.5 | 157.25 | 14.95 | 0.0880 | | 1 | 512 | 20 | 145 | 246 | 154 | 168.40 | 33.06 | 0.0956 | | 16 | 1024 | 20 | 162 | 751 | 467 | 468.00 | 193.67 | -0.0153 | | 8 | 1024 | 20 | 859 | 1870 | 1623.5 | 1514.94 | 322.27 | -0.0447 | | 4 | 1024 | 20 | 144 | 2089 | 1583.5 | 1326.85 | 710.73 | -0.0173 | | 2 | 1024 | 20 | 140 | 164 | 147 | 148.68 | 7.01 | 0.0356 | | 1 | 1024 | 20 | 141 |204 | 150 | 153.57 | 13.13 | 0.1451 | | 16 | 2048 | 20 | 142 | 189 | 153 | 158.25 | 14.06 | 0.0371 | | 8 | 2048 | 20 | 143 | 192 | 152 | 158.85 | 15.47 | 0.0541 | | 4 | 2048 | 20 | 143 | 357 | 157 | 182.45 | 56.70 | 0.0993 | | 2 | 2048 | 20 | 144 | 251 | 152 | 159.40 | 24.60 | 0.1656 | | 1 | 2048 | 20 | 143 | 166 | 151.5 | 152.65 | 7.02 | 0.0235 | **Результати у PAN** Для перевірки використовувався єдиний пристрій | Measurement Frequency (hz) | Request Size (bytes) | Total Requests | Min. RTT (ms) | Max RTT (ms) | Mean RTT (ms) | AVG. RTT (ms) | Standard Deviation RTT (ms) | Skewness RTT | |----------------------------|----------------------|----------------|---------------|--------------|---------------|---------------|-----------------------------|--------------| | 16 | 128 | 20 | 5 | 8 | 5.5 | 5.75 | 0.94 | 0.0721 | | 8 | 128 | 20 | 5 | 8 | 5 | 5.70 | 0.95 | 0.0772 | | 4 | 128 | 20 | 5 | 21 | 5 | 6.20 | 3.47 | 0.2247 | | 2 | 128 | 20 | 3 | 8 | 6 | 5.80 | 1.29 | -0.0272 | | 1 | 128 | 20 | 4 | 7 | 6 | 5.70 | 0.78 | -0.0029 | | 16 | 256 | 20 | 5 | 6 | 5 | 5.40 | 0.49 | 0.0239 | | 8 | 256 | 20 | 3 | 6 | 5 | 5.20 | 0.75 | -0.0620 | | 4 | 256 | 20 | 5 | 6 | 6 | 5.60 | 0.49 | -0.0239 | | 2 | 256 | 20 | 5 | 7 | 6 | 5.85 | 0.48 | -0.0238 | | 1 | 256 | 20 | 5 | 13 | 6 | 6.65 | 1.59 | 0.1826 | | 16 | 512 | 20 | 4 | 25 | 6 | 7.00 | 4.22 | 0.2247 | | 8 | 512 | 20 | 5 | 12 | 6 | 6.55 | 1.60 | 0.1177 | | 4 | 512 | 20 | 3 | 7 | 4 | 4.65 | 0.96 | 0.0437 | | 2 | 512 | 20 | 3 | 19 | 5.5 | 6.70 | 3.61 | 0.1223 | | 1 | 512 | 20 | 4 | 9 | 6 | 6.25 | 1.41 | 0.0239 | | 16 | 1024 | 20 | 5 | 12 | 8 | 7.42 | 1.53 | 0.0583 | | 8 | 1024 | 20 | 6 | 21 | 7 | 8.38 | 3.85 | 0.1449 | | 4 | 1024 | 20 | 6 | 20 | 7 | 8.75 | 4.15 | 0.1128 | | 2 | 1024 | 20 | 4 | 7 | 7 | 6.55 | 0.74 | -0.1183 | | 1 | 1024 | 20 | 5 | 8 | 7 | 6.75 | 0.83 | -0.0327 | | 16 | 2048 | 20 | 7 | 20 | 9 | 9.65 | PAN демонструє значно кращі показники це зумовлено меншою відстанню між клієнтом і сервером. **Ping для PAN:** ``` Pinging replit.com [104.18.42.150] with 32 bytes of data: Reply from 104.18.42.150: bytes=32 time=6ms TTL=56 Reply from 104.18.42.150: bytes=32 time=5ms TTL=56 Reply from 104.18.42.150: bytes=32 time=6ms TTL=56 Reply from 104.18.42.150: bytes=32 time=7ms TTL=56 Ping statistics for 104.18.42.150: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 5ms, Maximum = 7ms, Average = 6ms ``` **Висновок:** У мережі PAN спостерігаються нижчі значення RTT у порівнянні з WAN, що визначається більшою стабільністю та меншими фізичними відстанями в PAN.