changed 5 months ago
Published Linked with GitHub

2025: Комп'ютерні системи і мережі. 1. Стек протоколів

Комп'ютерна мережа

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 →

Ембеддінг зв'язків Інтернету на основі даних з 1997 по 2021 рік, знайдених на сайті opte.org. Кожна лінія малюється між двома вузлами, що представляють дві IP-адреси. Довжина ліній вказує на затримку між цими двома вузлами.

  • Питання. Який тип графу ми бачимо на візуалізації ?
  • Питання. Що таке - діаметер графу? Дайте оцінку діаметруграфу мережі Інтернет ?
  • Питання. Який середняя длина звїязків в мережі Інтернет ?

Комп’ютерна мережа — це набір комп’ютерів, які спільно використовують ресурси, розташовані на вузлах мережі або надані ними.
Комп’ютери використовують загальні протоколи зв’язку через цифрові з’єднання для зв’язку один з одним. Ці взаємозв’язки складаються з технологій телекомунікаційних мереж, заснованих на фізично дротових, оптичних і бездротових радіочастотних методах, які можуть бути організовані в різноманітних мережевих топологіях.

Вузли комп’ютерної мережі можуть включати персональні комп’ютери, сервери, мережеве обладнання або інші спеціалізовані хости чи хости загального призначення. Вони ідентифікуються мережевими адресами та можуть мати імена хостів. Імена хостів служать пам’ятними мітками для вузлів і рідко змінюються після початкового призначення. Мережні адреси служать для визначення місцезнаходження та ідентифікації вузлів за протоколами зв’язку, такими як Інтернет-протокол.

  • Які мережевий адрес даної сторинки?
  • Які проблеми мережевої адресації ви можете визначити?

Канал зв'язку між двома компонентами комп'ютерної системи

Канал зв’язку, визначається як фізичне середовище передачі, таке як оптичний дріт, радіоканал або як логічне з’єднання через мультиплексне середовище, таке як у телекомунікаційних і комп’ютерних мережах.
Канал використовується для передачі інформації, наприклад, цифрового потоку бітів, від одного або кількох відправників до одного або кількох одержувачів. Канал має такі характеристики, як час затримки (latency) та пропускна здатність (bandwidth) для передачі інформації, яка часто вимірюється його смугою пропускання в Гц або швидкістю передачі даних у бітах на секунду, .

  • Як можна назвати величину, зворотну до пропускної здатності каналу?
  • Як називають суму часів затримки в прямому та зворотньому напрямках в каналі?

В залежності від максимального фізичного розміру каналів зв'язку між компонентами комп'ютерної системи та пов'язаними з ними характеристиками часу затримки та пропускної здатності можно типизувати комп'ютерні мережі як

  • Персональна мережа (PAN)
  • Локальна мережа (LAN)
  • Кампусна мережа (CAN)
  • Міська мережа (MAN)
  • Всесвітня мережа (WAN)
  • Завдання. Вкажить типовий максимальний фізичний розмір PAN, LAN, CAN, MAN, WAN та їх характеристики часу затримки та пропускної здатності

Стек протоколів

Програмно-апаратну абстракцію вузла мережі (комп'ютера) можна охарактеризувати стеком шарів інтерфейсів:


Стек шарів інтерфейсів вузла мережі (комп'ютера)

Комунікаційний протокол — це обумовлені наперед правила передачі даних між двома пристроями. До основних параметрів, які описує протокол, відносяться:

  • тип перевірки помилок, що використовується
  • метод компресії (стискання) інформації (якщо такий є)
  • спосіб визначення передаючим пристроєм завершення передачі

Для мереж теж використовують абстраговану спеціфікацію шарів реалізації взаємодії вузлів. І центральним центральним поняттям цієї спеціфікації є
мережевий протокол

Мережевий протокол відповідає за адресацію хост-інтерфейсів, інкапсуляцію даних у дейтаграми (включаючи фрагментацію та повторне збирання) і маршрутизацію дейтаграм від вихідного хост-інтерфейсу до кінцевого хост-інтерфейсу через одну або більше мереж. Для цих цілей мережевий протокол визначає формат пакетів і забезпечує систему адресації.

Стек протоколів або мережевий стек є реалізацією набору протоколів комп’ютерної мережі або сімейства протоколів. Можна казати, що набір протоколів визначає взаємодію протоколів для вирішення певного класу мережевих задач, а стек — це орієнтована структура зв’язку протоколів та програмна реалізація.

Окремі протоколи стеку часто розробляються зі спеціалізованою метою. Така модульність спрощує проектування та оцінку. Оскільки кожен модуль протоколу зазвичай взаємодіє з двома іншими, їх репрезентують як шари в стеку протоколів.

Найнижчий протокол завжди має справу з низькорівневою взаємодією з комунікаційним обладнанням. Кожен вищий рівень додає додаткові можливості. Програми користувача зазвичай мають справу лише з найвищими шарами.

Рівні моделі OSI

Ми почнемо опис рівнів моделі OSI з 7-го рівня, який називається прикладним i на якому додатки користувача звертаються до мережі. Модель OSI закінчується 1-м рівнем - фізичним, на якому визначено стандарти, що пред'являються незалежними виробниками до середовищ передачі даних.

Протоколи мережі Інтернет, з якими ми почнемо працювати

Короткий опис роботи HTTP при запиті з браузера

Створення серверів на мові JavaScript з опорою на Node.js та протоколи TCP, UDP, DNS

Простійший HTTP сервер на nodejs

const http = require("http"); const server = http.createServer( (req, res) => { console.log(req.url); res.writeHead(200, { "Content-Type": "text/plain" }); res.end("Hello, World! Your request was "+ req.url); } ); server.listen(3000);

Simple Page by Express Server

Створення та публікація html сторінки з найпростішого сервера на nodejs

Завдання на лабораторну роботу 1

Приклад роботи команди ping, що перевіряє повний час подорожі запиту до сервера та назад (RTT)

​[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
  1. Зробити клієнт-серверний додаток на мові javascript, використовуючи протокол HTTP, що тестує повний час подорожі запиту до сервера та назад (RTT) з обчисленням мінімального, максимального, медіанного та середнього часу RTT, середнього квадратичного відхилення та коефіцієнта асимметрії для частот запитів с клієнта до сервера 16Гц, 8Гц, 4Гц, 2Гц, 1Гц для розмірів клієнтських запитів 128, 256, 512, 1024, 2048 байт.
    Результати представити у вигляді таблиць
  2. Протестувати роботу Вашого клієнт-серверного додатку в персональній мережі (PAN) та у всесвітній мережі (WAN, наприклад, на хостінгах replit.com), а також з мобільних пристроїв.
  3. Дати оцінку відстані до сервера та тих характеристик каналу клієнт-сервер, що можно отримати з ціх даних
  4. Порівняти отримані дані с даними системної мережевої утіліти ping.

Ресурси

  1. https://hpbn.co/ High Performance Browser Networking, Ilya Grigorik, online version
  2. https://en.wikipedia.org/wiki/Transmission_Control_Protocol Transmission Control Protocol
  3. https://en.wikipedia.org/wiki/Computer_network
  4. https://en.wikipedia.org/wiki/Ping_(networking_utility)
  5. Getting Started with Developer Tools
  6. Inspect Network Activity - Chrome DevTools 101
  7. Identifying backend connection latencies with chrome devtools
  8. Hello World HTTP server

Посилання для самостійного ознайомлення:

  1. Hackmd features
  2. Node.js
  3. Сайт, що тестує Ваш IP
  4. ping
  5. Пропускна_здатність
Select a repo