Модуль I · тема 2, урок 2 з 2 · 120 хв
Минулого уроку ти дізнався, чим з'єднують пристрої. Сьогодні дізнаєшся числа своєї власної мережі.
Наприкінці уроку в тебе буде мережевий паспорт. Це сторінка з реальними замірами, яку ти здаси на перевірку.
Кожне число там ти заміряєш сам. Списати їх не вийде.
ip a адресу свого комп'ютера в мережі;ping, за скільки мілісекунд відповідає сервер;traceroute усі машини на шляху до сайту;| Етап | Хв | Що робимо |
|---|---|---|
| Перевірка ДЗ | 15 | Розрахунок часу передавання, пастка «біт vs байт» |
| Мережевий паспорт | 15 | ip a: ім'я, MAC, IP, маска |
| Шлях до сайту | 15 | traceroute і стрибки маршруту |
| Затримка | 15 | ping, RTT, TTL, втрати пакетів |
| Перерва | 10 | — |
| Заміри швидкості | 25 | curl -w × 3, середнє, журнал через tee |
| Стенд 5 інтерфейсів | 15 | Таблиця data-iface + відповіді задачі |
| Кросчек однокласника | 5 | curl -sI і читання заголовків |
| Автоперевірка і підсумок | 5 | check 02, ДЗ |
| Разом | 120 |
lesson-02/.
Не шукай lesson-04: її немає.Одна помилка тут псує всі подальші заміри у 8 разів
Нагадаємо головну пастку минулого уроку. Через неї помиляються рівно у вісім разів.
Канал міряють у бітах за секунду. Це Мбіт/с і Гбіт/с.
Файли міряють у байтах. Це МБ і ГБ. А в байті вісім бітів.
Тому перед діленням розмір файлу завжди множать на вісім. Забув помножити — отримав відповідь у вісім разів меншу.
4,7 ГБ = 4700 МБ. Множимо на 8: 37 600 Мбіт. Тепер ділимо.
| Канал | Швидкість | Час | Це скільки |
|---|---|---|---|
| USB 2.0 | 480 Мбіт/с | 78 с | перерва між уроками |
| Ethernet 1 Гбіт/с | 1000 Мбіт/с | 38 с | поки ти йдеш до дошки |
| Bluetooth 5.0 | 2 Мбіт/с | 18 800 с | 5 годин 13 хвилин |
Це теоретична межа. Реально вийде на 20–40% менше.
Куди дівається решта? На три речі. Кожен шматок даних везе службовий заголовок — це як адреса на конверті.
Далі, той бік підтверджує кожен прийнятий шматок. Ці підтвердження теж займають канал.
І нарешті, частина шматків губиться в дорозі. Їх доводиться слати наново.
Провайдер обіцяв 100 Мбіт/с. Ти качаєш файл, а браузер показує швидкість «12 МБ/с». Тебе обманюють?
Хто ти в мережі: ім'я інтерфейсу, MAC, IP, маска
Комп'ютер у мережі має паспорт. Там записано, хто він і де його шукати.
Показує цей паспорт команда ip a. З першого погляду вивід
виглядає страшно.
Насправді важливих рядків там п'ять. Розберемо кожен окремо.
Для журналу зручніший коротший варіант тієї самої команди. Він друкує лише три речі: ім'я, стан і адресу.
Подивись на адресу сусіда по парті. Вона майже така сама, як твоя. Це не збіг.
Адреси на 192.168., 10. і
172.16–31. звуться приватними. Їх спеціально
відклали для домашніх і шкільних мереж.
В інтернет такі адреси не виходять узагалі. Вони працюють лише всередині одного будинку.
Це як номер квартири. У кожному домі є квартира номер 5, і поштар не плутається.
Назовні тебе випускає роутер. Він підставляє одну спільну адресу на всіх мешканців.
Ця підміна зветься NAT. Свою спільну адресу можна побачити однією командою.
У тебе 192.168.1.37, у сусіда по парті — 192.168.1.42.
Сайт у логах бачить вас обох як 91.202.128.44. Чому?
Між тобою і сайтом — не дріт, а ланцюжок маршрутизаторів
Здається, ніби між тобою і сайтом простягнутий один довгий дріт. Насправді ні.
Твій запит їде з пересадками, як автобусом через усе місто. Кожна пересадка зветься стрибок.
Спершу роутер удома. Далі обладнання провайдера. Далі магістраль і точка обміну. І аж потім сервер.
Кожен стрибок додає частку мілісекунди. А якщо це інший континент — то й десятки мілісекунд.
Як читати вивід. Номер зліва — це номер пересадки. Поруч адреса вузла й час відповіді.
Тепер найцікавіше. Шукай, де час різко підскочив між сусідніми рядками. Саме там і сидить затримка.
Рядок * * * лякає, але означає дрібницю. Цей маршрутизатор
просто налаштований мовчати у відповідь на службові пакети.
Дивись на рядки після нього. Вони нормальні — отже, з маршрутом усе гаразд.
Ключ -m 15 обмежує пошук п'ятнадцятьма стрибками.
Без нього чекати доведеться довго.
У твоєму traceroute третій рядок — * * *, а стрибки 4–9
відповіли нормально і сайт відкривається. Що це означає?
pingСкільки часу пакет летить туди й повертається назад
Крикни в горах і порахуй секунди до відлуння. Приблизно так працює
команда ping.
Вона шле серверу маленький пакет і чекає, поки той його поверне. Час засікається на секундомір.
Важливо: це час у обидва боки, туди й назад. Такий час зветься RTT.
| Що у виводі | Як читати |
|---|---|
-c 5 | надіслати рівно 5 пакетів і зупинитися, інакше ping працює нескінченно |
icmp_seq | номер пакета. Пропущений номер = пакет загубився дорогою |
ttl=54 | скільки стрибків пакету ще дозволено. Linux стартує з 64, отже 64 − 54 = 10 маршрутизаторів позаду |
time=24.8 ms | час обороту цього конкретного пакета |
0% packet loss | найважливіший рядок: жоден пакет не загубився |
min/avg/max/mdev | найменший, середній, найбільший час і розкид. Великий mdev = нестабільний канал |
Нижню межу пінгу задає не тариф, а фізика. Порахуємо разом.
До Нью-Йорка приблизно 7600 км. Туди й назад — 15 200 км.
Світло в оптоволокні йде 200 000 км за секунду. Ділимо: виходить 0,076 секунди, тобто 76 мс.
Швидше не буде ніколи. Хоч який тариф купи.
Пінг до ігрового сервера в іншій країні — 180 мс, а до сусіднього комп'ютера в класі — 2 мс. Де проблема?
Втрати важливіші за середнє. Це головна думка розділу.
Порівняй два канали. Перший: пінг 25 мс, але 10% пакетів губиться. Другий: пінг 60 мс і жодних втрат.
Для гри чи дзвінка кращий другий. Здається дивним, але пояснення просте.
Загублений пакет доводиться слати заново. Це довше, ніж просто зачекати. Саме в ці миті картинка й застигає.
У грі тебе постійно «телепортує», хоча ping -c 50 показує
середні 25 мс. У рядку статистики бачиш 12% packet loss. Твій висновок?
Три заміри, середнє — і все це одразу у файл
Швидкість каналу не вгадують. Її міряють: качають справжній файл і засікають час.
Робити це вміє програма curl. Вона качає файл, друкує
середню швидкість, а сам файл на диск не кладе.
| Частина команди | Навіщо |
|---|---|
-o /dev/null | завантажене нікуди не зберігати. Файл нам не потрібен — потрібна швидкість |
-s | без смужки прогресу, щоб у виводі лишилося тільки число |
-w '%{speed_download}' | надрукувати середню швидкість завантаження |
\n | перевести рядок, інакше три заміри злипнуться в один |
speed_download видає байти за секунду, а не мегабіти.
Переведення: Б/с × 8 ÷ 1 000 000 = Мбіт/с.
Наш замір: 4 380 000 × 8 ÷ 1 000 000 = 35,0 Мбіт/с.Один замір нічого не доводить. Саме в цю секунду міг щось качати сусід. Або сервер задумався.
Так само міряють зріст: не один раз, а кілька, і беруть середнє. Тому робимо три заміри.
Сторінка відкривалася 0,12 секунди. А на що саме пішов цей час?
Той самий curl уміє розкласти його на частини.
Окремо з'єднання, окремо очікування першого байта від сервера.
Свої числа варто з чимось звірити. Для цього є окрема програма —
speedtest.
Вона сама качає й віддає тестовий файл на найближчий сервер. Потім показує три числа. Download — скільки прийняла. Upload — скільки віддала. Ping — той самий RTT: за скільки пакет злітав до сервера й повернувся назад.
На сервері її можуть і не встановити, це не біда. Якщо вона є —
запусти й порівняй Download зі своїм числом від curl.
Але порівнювати можна лише однакові одиниці: speedtest каже
мегабіти за секунду, а curl — байти. Тому спершу помнож число
curl на 8 і поділи на мільйон — і аж тоді став його поруч
із Download. Наші 4 380 000 Б/с — це 35,0 Мбіт/с, отже порядок
величини збігається.
Твій curl -w '%{speed_download}' видав 4380000.
Який рядок правильно записати у speed.txt?
Вивід команди живе на екрані недовго. Закрив вікно — і немає. Тому його кладуть у файл.
Способів чотири, і різниця між ними важлива. Саме на ній щороку губиться чиясь робота.
| Запис | Що робить | Видно на екрані |
|---|---|---|
команда > файл | кладе у файл, стираючи все, що там було | ні |
команда >> файл | дописує в кінець файлу | ні |
команда | tee файл | кладе у файл, стираючи старе | так |
команда | tee -a файл | дописує в кінець файлу | так |
Слово tee означає трійник — таку деталь ставлять на трубу.
Вода приходить одна, а виходить у два боки.
Команда робить те саме з текстом. Одна копія йде на екран, друга лягає у файл.
Тому паспорт збирають саме через tee. Ти бачиш, що записалося,
і одразу помічаєш помилку.
~/www/lesson-02/assets/net.log.
У ньому має бути твоя IP-адреса, рядок із ttl= і список стрибків
маршруту. Це і є мережевий паспорт.Ти зробив ping ... > net.log, потім
traceroute ... > net.log. Відкриваєш файл — там лише
traceroute, ping зник. Що сталося?
Причина не в тому, що «радіо гірше», а в тому, що воно одне на всіх
На коробці роутера написано велике число. Воно чесне, але міряли його в тепличних умовах.
Умови такі: пристрій один, стін немає, сусіди мовчать. У класі з 25 машинами такого не буває ніколи.
І головне. Канал до роутера й канал до провайдера — це різні речі.
Wi-Fi на 866 Мбіт/с при тарифі 50 Мбіт/с дасть тобі рівно 50. Ланцюг рветься там, де тонко.
Ти сидиш за метр від роутера, Wi-Fi показує з'єднання 866 Мбіт/с, а файл із сервера йде 40 Мбіт/с. Де вузьке місце?
Порядки величин, які треба знати напам'ять
Ці числа ти перенесеш у свою таблицю на сторінці.
Одна вимога до запису. Швидкість пиши числом і одиницею: «480 Мбіт/с». Слова «дуже швидко» перевірка не розпізнає.
| Інтерфейс | Швидкість | Дальність | Живлення | Що передає |
|---|---|---|---|---|
| USB 2.0 | 480 Мбіт/с | 5 м | 2,5 Вт | дані + живлення |
| HDMI 2.0 | 18 Гбіт/с | 5–10 м | ні | відео + звук |
| Ethernet 1000BASE-T | 1000 Мбіт/с | 100 м | PoE до 30 Вт | дані |
| Wi-Fi 5 (802.11ac) | до 866 Мбіт/с | 10–30 м | ні | дані |
| Bluetooth 5.0 | 2 Мбіт/с | 10 м | ні | дані, звук |
Перевіримо ці числа на прикладі. Кабель HDMI 1.4 везе 10,2 Гбіт/с.
Тепер порахуємо картинку 4K при 60 кадрах. Множимо: 3840 × 2160 × 60 × 24 біти. Виходить приблизно 11,9 Гбіт/с.
Уже більше за 10,2. А до цього ще додаються службові дані.
Ось чому 4K@60 у HDMI 1.4 не влазить. А в HDMI 2.0 на 18 Гбіт/с — влазить із запасом.
Перевірка читає твою сторінку автоматично. Щоб вона знайшла потрібні рядки, їх треба підписати.
Кожен рядок таблиці — один інтерфейс. Перевірка має розуміти, який саме, а слова в комірках у всіх різні.
Тому рядок дістає окрему мітку з коротким ключем. Така мітка всередині
тега зветься атрибутом: ім'я, знак = і значення в лапках.
Наш атрибут зветься data-iface, а ключів рівно п'ять: usb,
hdmi, ethernet, wifi,
bluetooth.
Ключі не повторюються. Однаковий ключ у двох рядках — і одного з них перевірка не побачить.
Треба з'єднати два комп'ютери в сусідніх кабінетах — між ними 40 метрів — так, щоб швидкість була стабільною і не залежала від сусідів. Що обираєш?
Сервер відповідає заголовками ще до того, як віддасть сторінку
Перш ніж віддати сторінку, сервер надсилає кілька службових рядків. Це заголовки відповіді.
У них написано головне: чи є сторінка, який у неї розмір і коли її востаннє міняли.
Попросити самі лише заголовки можна ключем -I.
Це найшвидший спосіб перевірити чужий сайт.
У кожного в класі своя адреса всередині спільного домену школи —
на зразок 91.219.61.4/s/ivanenko.i.8a. Таку адресу-прибудову
звуть сабдоменом.
Кросчек роблять у парах: твою пару — однокласника, чию сторінку ти перевіряєш, — називає вчитель. Візьми його логін зі списку й підстав на початок адреси.
| Код | Що означає | Що робити |
|---|---|---|
| 200 | усе гаразд, сторінка віддається | нічого, зарахуй сусідові |
| 301 / 302 | сервер переадресовує на іншу адресу | додай -L, щоб curl пішов за переадресацією |
| 403 | файл є, але прав на читання немає | сусідові треба chmod 644 |
| 404 | сервер працює, а файла за адресою немає | шукати index.html не в тій теці або з великої літери |
| 500 | помилка на самому сервері | кликати вчителя |
curl -sI на власний сабдомен. Чекер це бачить одразу:
у peer.txt має бути чужий логін зі списку класу. Пари роздає вчитель.curl -sI на сторінку однокласника повернув
HTTP/2 404. Що ти йому скажеш?
Виконуй по черзі. Галочки зберігаються — сторінку можна закрити.
net.log,
speed.txt, peer.txt і index.html.Система зайде у твій акаунт і подивиться, що ти справді зробив. Спроби не обмежені.
Демонстраційний режим: результат згенеровано для показу. На сервері
ця кнопка викликає POST /api/check, який запускає чекер уроку
від імені учня.
peer.txt справді чужий домен зі списку класу;ttl=.speed_download видає байти, а учень підписує «Мбіт/с» — одиницю в speed.txt треба написати явно;tee без -a стер увесь журнал;~/www/ — обов'язковий критерій лишається червоним, і роботу поки не приймуть.Це те, що бачить учитель, коли виставляє оцінку.
| Складник | Вага | Результат |
|---|
Додай на сторінку теми абзац «який інтерфейс я обрав би для монітора 4K».
Обов'язково наведи два числа. Скільки Гбіт/с потребує режим 4K@60 і скільки дає обраний тобою кабель.
Мінімум три речення власного тексту.
Звідки взяті числа й описи команд на цій сторінці
--write-out, змінних speed_download,
time_connect, time_starttransfer,
time_total; speed_download вимірюється в байтах за секунду.ip a, прапорці UP/LOWER_UP, MTU.-c, поля icmp_seq, ttl,
time, статистика втрат і rtt min/avg/max/mdev.-m, значення рядків * * *.-a (дописування).Числа швидкостей — теоретичні максимуми зі специфікацій. Реальні заміри завжди нижчі, і саме тому на цьому уроці ми міряємо, а не віримо.