---
# System prepended metadata

title: '2023: Комп''ютерні системи і мережі. 1.'
tags: ['2023', CSN, Lecture]

---

# 2023: Комп'ютерні системи і мережі. 1.
[TOC]
# Вступне заняття

> Comment
Шановні колеги! Дайте відповідь, будь ласка (з ім'ям і прізвищем), на запитання: 
1) "Чи знайома вам ця функція і як вона називається?"
2) "Яке відношення має ця функція до комп'ютерних мереж?"
> $$ i=- \sum p_k \log p_k $$






## Базова мова

1. JavaScript (TypeScript)
  
## Допоміжні мови
  1. Julia
  2. Python
  3. Go


## [Протоколи мережі Інтернет,](https://en.wikipedia.org/wiki/Internet_protocol_suite) з якими ми почнемо працювати

### Короткий опис роботи HTTP при запиті з браузера
<iframe width="560" height="315" src="https://www.youtube.com/embed/SbqjHmqozIk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

   
### [Створення серверів на мові JavaScript з опорою на Node.js та протоколи TCP, UDP, DNS](https://youtu.be/bHn-wTlTTR0)

<iframe width="560" height="315" src="https://www.youtube.com/embed/bHn-wTlTTR0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>




 ### [Зворотній зв'язок під час занять](https://t.me/+tW4tDSILsQM0YTY6)
 [CSNets2023 telegram](https://t.me/+tW4tDSILsQM0YTY6)
 
## [Simple Page by Express Server](https://simpleexpressserver.arthmax.repl.co/)
 [Створення та публікація html сторінки з найпростішого сервера на nodejs](https://replit.com/join/lgkmtvrxut-arthmax)
 
 # 2. Завдання на лабораторну роботу 1
 
  ## Приклад роботи [команди ping](https://uk.wikipedia.org/wiki/Ping), що перевіряє повний час подорожі запиту до сервера та назад (RTT)
 ```jsonld=
 [anonymous@2ip ~]$ ping -c 10 replit.com
PING replit.com (104.18.12.38): 56 data bytes
64 bytes from 104.18.12.38: icmp_seq=0 ttl=57 time=0.668 ms
64 bytes from 104.18.12.38: icmp_seq=1 ttl=57 time=0.594 ms
64 bytes from 104.18.12.38: icmp_seq=2 ttl=57 time=0.481 ms
64 bytes from 104.18.12.38: icmp_seq=3 ttl=57 time=0.486 ms
64 bytes from 104.18.12.38: icmp_seq=4 ttl=57 time=0.519 ms
64 bytes from 104.18.12.38: icmp_seq=5 ttl=57 time=0.533 ms
64 bytes from 104.18.12.38: icmp_seq=6 ttl=57 time=0.523 ms
64 bytes from 104.18.12.38: icmp_seq=7 ttl=57 time=0.581 ms
64 bytes from 104.18.12.38: icmp_seq=8 ttl=57 time=0.592 ms
64 bytes from 104.18.12.38: icmp_seq=9 ttl=57 time=0.558 ms
--- replit.com ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
```

**round-trip min/avg/max/stddev = 0.481/0.553/0.668/0.054 ms**
 1. Створити найпростіший серверний додаток на хостингу replit.com, який генерує html сторінку і виконати команду ping. За даними виконання команди ping визначити min/avg/max/stddev


 1. Створити серверну програму на хостингу replit.com      яка генерує html сторінку.
  
Функції, які мають бути реалізовані на html-сторінці:
1) Привітання відвідувача та вказівку імені, прізвища творця сторінки
Наприклад
```jsonld=
Вас вітає html сторінка тестування RTT
Автор сторінки: maximov arthur leonidovich

Натисніть кнопку 1 для тестування короткого повідомлення
Натисніть кнопку 2 для тестування середнього повідомлення
Натисніть кнопку 3 для тестування довгого повідомлення
min RTT = 
avg RTT = 
max RTT = 
stddev RTT = 

```

2) Надсилання повідомлення на сервер з метою отримання відповіді та вимірювання RTT та Bandwidth (сумарного часу подорожі запиту та відповіді по мережі та [смуги пропускання]((https://uk.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D1%83%D1%81%D0%BA%D0%BD%D0%B0_%D0%B7%D0%B4%D0%B0%D1%82%D0%BD%D1%96%D1%81%D1%82%D1%8C)))
  Повідомлення - це рядки, в яких Ваше ім'я та прізвище повторюються:
  a) 1 раз
  b) 1000 разів
  c) 1000000 разів
 
  Для трьох випадків підрахувати базові параметри RTT:
min/avg/max/stddev
min - мінімальний час прибуття повідомлення
avg – середній час прибуття повідомлення
max – максимальний час прибуття повідомлення
stddev - стандартне відхилення (корінь із дисперсії)

За даними RTT та розмірами повідомлень зробити оцінку смуги пропускання каналу.

[Посилання на варіант реалізації зі статичними html файлами](https://replit.com/join/zonnlhysyq-arthmax)
<iframe src="https://nodejsexpress2023intro.arthmax.repl.co/" width=800 height=500></iframe>
    
# Посилання для самостійного ознайомлення:
1. [Hackmd features](https://hackmd.io/features)
1. [Node.js](https://ru.wikipedia.org/wiki/Node.js)
1. [Сайт, що тестує Ваш IP](https://2ip.ua)
2. [ping](https://2ip.ua/ru/services/ip-service/ping-traceroute)
2. [Пропускна_здатність](https://uk.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D1%83%D1%81%D0%BA%D0%BD%D0%B0_%D0%B7%D0%B4%D0%B0%D1%82%D0%BD%D1%96%D1%81%D1%82%D1%8C)
    