OSI-модель: як спуститись в кролячу нору й випірнути звідти

💡 Усі статті, обговорення, новини для початківців — в одному місці. Приєднуйтесь до Junior спільноти!

Привіт, мене звати Ганна Ліхтман, я Lead Software Engineer у GlobalLogic Ukraine. У мене за плечима 10+ років в індустрії, сотні проєктів, тисячі строчок коду — і, здається, більше кави, ніж води. Наразі я поступово дрейфую у бік інжиніринг-менеджменту та архітектури — тобто на той рівень, де замість фіксити баги можна просто сказати: «а це не моя зона відповідальності» 😏

Але є одна річ, яку я люблю навіть більше за свіже оновлення в CI/CD — це пояснювати складне простою людською мовою. Так, щоб навіть пес мого сусіда, що випадково підслухав, міг кивнути лапою й подумати: «ага, маршрутизація — це не страшно».


Сьогодні я запрошую вас у невеличку (20 хвилин, зайшли і вийшли), але яскраву подорож у той світ, про який багато хто чув, але мало хто пам’ятає — модель OSI. Це та сама багаторівнева красуня з університетських заліків. Ви її, певно, вчили з таблички, зубрили для іспиту, а потім зітхнули і викреслили з оперативної пам’яті.

Дарма! Бо сьогодні ми:

  • Спустимось у самі нутрощі мережевої взаємодії, аж до електронів і фотонів.
  • Побачимо, як запит на Google проходить усі рівні — від прикладного до фізичного і назад.
  • Пояснимо, чому OSI та TCP/IP — це як двоюрідні брати на родинному святі: схожі, але один більш серйозний, інший — більш життєвий.
  • І, звісно, розберемося з такими штуками, як сегменти, пакети, фрейми, бітові імпульси, TCP vs UDP, encryption, compression, translation та інші страшні слова, що насправді не страшні.

Цей текст — для всіх, хто:

  • Хоче нарешті розібратись із «тією моделлю з семи рівнів».
  • Готується до технічного інтерв’ю і хоче звучати, як мережевий гуру.
  • Просто хоче впорядкувати знання, щоб відповісти на «А як працює інтернет?» не блукаючим поглядом, а чіткою, красивою відповіддю зі схемками 🧠

Тож, незалежно від того, ти Front-end чарівник, Back-end алхімік, DevOps майстер чи адмін-самурай, — базове розуміння цього ландшафту точно зробить тебе крутішим.
Ну що, пристібаємось, вдягаємо мережеві шоломи — і погнали.

📡 Вступ. Мережева модель OSI — та сама «страшилка» з університету, яка виявилась... цікавою

Пам’ятаєте цей момент?

OSI — це Open Systems Interconnection basic reference model...

— казав викладач.

Окей, ще одна абревіатура в колекцію

— казали ми, стримуючи позіх.

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

І саме тоді наставало улюблене: сім рівнів, купа термінів, якесь «представлення», ще й «сесійний», і всі щось там «зашифровують», «маршрутизують» і «інкапсулюють».

І десь у цей момент у свідомості багатьох з’являвся внутрішній фейспалм із підписом: «Я просто хотів зробити сайт із котиками...»

Та насправді — це зовсім не страшно. І ні, вам не потрібно вивчати всі протоколи до біта (якщо тільки ви не вирішили стати мережевим чарівником або позаштатним консультантом ISO).

Але! Знати, як це все працює на загальному рівні, — це як розуміти, як працює двигун: навіть якщо не ремонтуєш сам, принаймні знаєш, чому не варто заливати каву у бензобак.

Тож уявіть:

Кожного разу, коли ви щось гуглите (чи, будьмо чесні, шукаєте «npm fix everything»), запускається міжконтинентальна пригода. Ваш текстовий запит:

16-17 травня, Київ. Квитки тут!👇

  • перетворюється на потік даних;
  • біжить через дроти, Wi-Fi, може навіть по оптоволокну чи лазеру (якщо ви підключені до майбутнього);
  • обробляється десятками серверів;
  • і вже у зворотному напрямку повертається до вас — як результат у браузері.

І ось саме тут, дорогі друзі, оживає OSI-модель. Це не просто «університетська теорія» — це інструкція до реального світу даних, яка працює щосекунди навколо нас.

Тож давайте пройдемося по всіх рівнях:

  • Без нудних визначень.
  • Без зубріння.
  • Без страху бути викликаними до дошки.

Натомість — з прикладами, живими поясненнями і (звісно ж!) котиками 🐱

🐇 Down the Rabbit Hole: рівні OSI

Готові? Бо ми зараз зробимо те, що мало хто робить за власним бажанням — спустимось на всі сім рівнів OSI. Але цього разу — без болю, без теорії заради теорії, і вже точно без лекторських «випишіть це в зошит».

Ось вони, ті самі герої нашої подорожі:

  1. Прикладний рівень — Application
  2. Рівень представлень — Presentation
  3. Сеансовий рівень — Session
  4. Транспортний рівень — Transport
  5. Мережевий рівень — Network
  6. Канальний рівень — Data Link
  7. Фізичний рівень — Physical

🎩 Але спершу — про капелюшки й черевички

Перед тим, як пірнути в магію рівнів, згадаємо один важливий принцип: на кожному рівні є свої операнди — ті самі «логічно неподільні елементи». Я називаю їх «мережевими молекулами». Вони маленькі, але без них — ніяк.

І от щоб ці молекули не губились у мандрах, ми кожній додаємо аксесуари:

  • Header — капелюшок із вказівками.
  • Trailer — черевички для впевненого приземлення.

Це ніби ви пакуєте листа: кладете текст у конверт, підписуєте, додаєте адресу, штамп — і лише тоді відправляєте. Все не просто так: щоб інший рівень або інша система знала, що з цим робити.

Коли ви надсилаєте дані з комп’ютера, вони подорожують із 7-го рівня на 1-й, і на кожному з них отримують новий Header або Trailer — як багаж у аеропорту з наклейками: куди летить, чий, що всередині.

А потім, на зворотному шляху — ми всі ці «обгортки» знімаємо. Наче відкриваємо подарунок: знімаємо стрічку, шар за шаром — і, вуаля, бачимо, що там.

Без цієї упаковки — ніякого розуміння.

А без розуміння — самі знаєте... Класичний IT-діалог:

Працює у мене — шукайте проблему у себе.

🚦 Як будемо рухатись

Ми зупинимось на кожному рівні, розберемо:

  • За що він відповідає.
  • Які протоколи там мешкають.
  • Чому взагалі він потрібен, якщо «все і так працює».

Але без фанатизму: на одному тільки прикладному рівні — з десяток популярних протоколів. Ми не будемо занурюватись у TELNET чи X.400 (це вже для гурманів). Замість цього — згадаємо ті, що живуть у повсякденному житті: HTTP, HTTPS, FTP, SMTP...

Тож влаштовуйтесь зручно, беріть чай, каву або ритуальний бубен з бекенду —
і погнали вниз, до фізики, бітів і магії сигналів.

А потім — так, ми обов’язково винирнемо. Але вже інші. Прокачані. З новим скіллом. І зі знанням, яке справді має сенс.

Прикладний рівень — там, де живе користувач

Це вершина піраміди OSI, її верхівка, її корона. Саме тут мешкає найважливіша істота у всьому цифровому світі — користувач. Тобто ми з вами. Ми, які вранці перевіряють пошту, вдень шукають «як приготувати авокадо тост», а ввечері дивляться котиків у TikTok (точніше — котики дивляться нас, але не про це зараз).

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

А щоб ця магія не була схожа на чаклунство без інструкцій, нам допомагають протоколи. Такі собі офіційні «провідники», які знають, куди йти, з ким говорити, і як не загубити повідомлення по дорозі. Ось деякі з них:



  • HTTP — той самий, що керує всіма вашими гугл-запитами. Його повна назва: HyperText Transfer Protocol. Якщо коротко: «трансферимо гіпертекст». Тобто HTML, XML, JSON, Base64 — усе, що хоч трохи схоже на текст, летить через нього.
  • FTP — File Transfer Protocol, тобто дружній дядько, який переносить файли туди-сюди. Можна сказати, це кур’єр із флешкою.
  • SMTP — Simple Mail Transfer Protocol, протокол простого поштового щастя. Завдяки йому листи доходять, навіть якщо у вас у темі написано «привіт» і більше нічого.

Запам’ятати легко: перші літери перед «TP» розповідають, що саме переноситься. HTTP — гіпертекст, FTP — файли, SMTP — пошта.

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

Рівень представлення — шифруємо, стискаємо, перекладаємо

Отже, ми вирішили скористатися HTTP, щоб знайти в Гуглі... ну звісно ж, котика. Але перш ніж пухнаста інформація вирушить у подорож мережею, вона повинна пройти важливу перевірку стилю, граматики та безпеки — на Presentation Layer. Це ніби цифрова версія офісного менеджера, який перевіряє, чи все правильно запаковано, зашифровано і стисло, перш ніж надсилати листа босу.

Цей рівень відповідає не лише за перетворення форматів, а ще й за:

  • Шифрування (encryption) — щоб ваші банківські картки не перетворились на подарунки хакерам.
  • Стиснення (compression) — бо навіщо передавати 1МБ, якщо можна 200КБ? Інтернет подякує.
  • Переклад (translation) — щоб різні системи, як-от IBM та ASCII, не дивилися одна на одну з підозрою, а таки розуміли, хто що мав на увазі.

Цей рівень — як перекладач на конференції: бере мову одного рівня, адаптує її до іншого, і всі задоволені. І це ще півбіди! Уяви, раніше IBM і ASCII були як два сусіди, які сваряться через паркувальне місце — кожен говорить своєю мовою, і жоден не хоче поступатися. Але Presentation Layer зміг їх помирити.

Тепер про шифрування. І про Боба з Еліс (бо як же без них? 😄)

Отже, ви не просто шукаєте котика, а, скажімо, платите за доступ до елітного котячого контенту (if you know what I mean). Тут вже не до жартів. Ваші платіжні дані мають бути захищені так, ніби це пін-код від сейфу з секретами всесвіту. І тут приходить на допомогу асиметричне шифрування.

Уявімо: у нас є Боб і Еліс.

Еліс запускає Random Number + Key Generation Program (це не магія, це просто RSA, один із популярних алгоритмів) — і вуаля, отримує пару ключів:

  • Публічний ключ — можна роздавати всім підряд, хоч роздрукувати на футболці.
  • Приватний ключ — зберігаємо як зубну щітку: не передавати нікому, і бажано — не губити.

Боб хоче сказати «Hello, Alice!» — але не хоче, щоб його повідомлення прочитав злий хакер Карл. Тож він кладе повідомлення в коробочку і закриває її замком (публічним ключем Еліс). Відкрити її можна тільки одним ключем — приватним, який є тільки у неї. Ніхто інший, навіть Карл із ломом і Wi-Fi зламаного сусіда, не зможе його прочитати.

Така схема — це асиметричне шифрування. А от симетричне — коли обидва користуються одним і тим самим ключем. Але не будемо псувати романтику безпечної комунікації, так?

А як дізнатися, що сайт — не шахрай?

Коли ви заходите на сайт і вводите банківські дані, ви не бачите всі ці ключі, замки й сейфи. Але вони там є. Під час так званого «хендшейку» ви отримуєте публічний ключ сайту — саме його й використовуєте для зашифрування ваших даних. Якщо бачите «https://» — це як офіційна наклейка: «тут усе під контролем, шифрування ввімкнено».

І ось, коли наш котик або номер банківської карти вже зашифрований, стиснутий, переведений і перезапакований, він готовий до наступного рівня — Session Layer. І про це вже за мить 😏

Сеансовий рівень — цифровий координатор побачень

А тепер увага, бо знову змінюється головний герой — наш оперант трансформується! Тепер замість суцільного шматка даних ми маємо більш мілкі шматочки, які чемно вишикувались у чергу, як студенти в столовій. Ми їх «чейнимо» (тобто поєднуємо у логічну послідовність), додаємо свій хедер — і вперед, на новий рівень пригод!

Дані, що прийшли з рівня представлення, уже мають вигляд: стислий .zip, перекладений, зашифрований і прикрашений усіма можливими метаданими. Але цього недостатньо. Бо що буде, якщо зв’язок перерветься посеред важливої трансакції? Хто відновить бесіду з того місця, де зупинились?

Власне, сеансовий рівень — це той самий координатор, який каже:

Так, пане користувач, ось ваш канал зв’язку. Буду стежити, щоб усе було чітко, без втрат і без «перепрошую, ми обірвались...»

Його функції дуже важливі:

📞 Керування діалогом

Рівень визначає, як саме говорять процеси один з одним: по черзі (напівдуплекс) чи одночасно (повнодуплекс). Уяви, що це Zoom-дзвінок: іноді всі говорять одночасно (хаос), а іноді — по черзі (і це вже продуктивність!).

🌀 Синхронізація

Щоб у разі збою не починати все з початку, рівень ставить контрольні точки. Такі собі сейви, як у відеогрі: впав — відновився з чекпойнта, а не з першого рівня. Це ніби у хмарному сховищі, коли якийсь сервер падає, а load balancer підбігає, струшує його за плечі й кричить: «давай, живи!» — і він оживає, ніби нічого й не сталося.

🛑 Утримання сеансу

Сеансовий рівень вміє підтримувати зв’язок навіть тоді, коли додатки нічого не роблять. Він чемно сидить і чекає, поки хтось знову заговорить, щоб не довелося щоразу все запускати з нуля. Це як той друг, який не пише місяцями, але коли пишеш ти — він відповідає миттєво, бо був «на зв’язку».

Ці три рівні — прикладний, представницький і сеансовий — можна назвати «вмістовними»: вони працюють безпосередньо з даними. А от транспортний рівень уже не розбирається, що там усередині. Йому головне — переслати сегменти. Типу:

Що саме я передаю — неважливо. Головне, щоб усе дійшло цілим і неушкодженим.

Але про це — у наступному розділі! 😏

Транспортний рівень — головний логіст у світі даних

Якщо попередні рівні гарно запакували дані в коробочки з хедерами, то транспортний рівень такий:

Чудово, хлопці, але давайте я ще один хедер притулю — про всяк випадок, щоб нічого не загубилося в дорозі.

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

Цей рівень — це ніби кур’єрська служба. Але залежно від протоколу, у вас може бути:

  • Надійний FedEx із трекінгом, підписом і контрольними дзвінками (TCP), або ж
  • Хлопець на скейті, який кидає посилки у двір і їде далі (UDP) 😄

TCP vs UDP — битва протоколів!

🛡 TCP — Турботливий Контролер Пакетів

Тут усе серйозно:

  • Є відправник (сендер) і отримувач (ресівер).
  • Відправник каже: «Привіт, ось пакет № 1. Прийняв?»
  • Отримувач: «Так, дякую! Чекаю наступний.»
  • І так далі, поки всі не будуть щасливі.

Це називається «триступеневий хендшейк», і завдяки йому:

  • Ми точно знаємо, що пакети прийшли.
  • Ми знаємо, в якому порядку.
  • Ми отримуємо підтвердження доставки.
  • У разі чого — можемо надіслати повторно.

TCP — це як добрий друг: перевіряє, чи ти дійшов додому, і ще й каже: «напиши, коли будеш на місці».

🎲 UDP — Удачі, Друже, Передаю!

UDP — це протокол для тих, хто живе на драйві:

  • Відправив — і пішов.
  • Ніяких перевірок.
  • Ніякого «чи дійшло?».
  • Просто «лови, якщо зможеш».

Ідеально для ситуацій, коли швидкість важливіша за надійність. Наприклад:

  • Онлайн-ігри 🎮
  • Відеотрансляції 📺
  • Дзвінки по VoIP 📞

А тепер уяви, ти граєш у гру, і раптом усе починає лагати:
герої бігають на місці, кулі летять у зворотному напрямку, а ти вже помер, але ще не знаєш про це — класичний UDP-момент 😅

Чому TCP такий надійний, а UDP — ні?

Бо TCP напханий захистом і перевірками:

  • Флаги 🏁
  • Сегменти 🧱
  • Порти доставки й відправлення 📦📬
  • І, звісно ж, додаткові хедери, як вишенька на торті.

А UDP — ні. Взагалі. Він такий собі:

Мені не треба гарантій, я йду навпростець!

Отож, транспортний рівень — це не просто посередник. Це диригент у симфонії даних, який або грає строго за партитурою (TCP), або імпровізує джаз (UDP).

Далі буде ще цікавіше! Готові перейти до мережевого рівня? 🌐

Мережевий рівень — Google Maps для даних

Отже, настав час познайомитися з мережевим рівнем — цифровим GPS, який допомагає даним знайти правильну дорогу від точки А до точки Б. І не просто «десь туди», а чітко, швидко і з урахуванням пробок в мережі 😄

Цей рівень:

  • Перетворює логічні адреси у фізичні — наприклад, перетворює адресу 123.123.11.11 на hello.com і навпаки. Це як шукати «кафе біля парку» і отримати точну адресу з індексом та поверхом.
  • Визначає найоптимальніший маршрут — тобто не веде вас через сусідній район, якщо можна проскочити навпростець.
  • Управляє маршрутизацією, комутацією та виявляє неполадки — бо навіть у цифровому світі бувають аварії, затори і «переїхала інтернет-вантажівка, ремонт до понеділка».

Протоколи, які тут правлять бал

  • IP (Internet Protocol) — це той, хто пише на коробці з даними: «Куди доставити? Від кого? Ось адреса.» І все це у вигляді чисел — бо hello.com може звучати мило, але 142.250.184.206 знає, куди саме їхати.
  • RIP (Routing Information Protocol) і OSPF (Open Shortest Path First) — це наші внутрішні Waze/Google Maps. Вони обчислюють, який шлях найкращий, найшвидший і найменш обтяжений мережевими заторами. Пам’ятаєте задачку з інституту про комівояжера, якому треба обійти всі міста й повернутись назад, витративши мінімум пального? Ось тут ті самі принципи — тільки замість комівояжера в нас пакети.

А що, якщо щось пішло не так?

Раптом на маршруті стався обрив, гроза, чи хтось просто висмикнув кабель із роутера (бо «вайфай заважає мікрохвильовці»). RIP і OSPF миттєво такі:

Окей, план Б! Рухаємось іншим шляхом, усі за мною!

І переправляють трафік через інші вузли. Все оперативно, ніхто не панікує — бо мережевий рівень вміє тримати себе в руках.

І звісно ж — ще один хедер. Бо куди ж без нього?
Тепер у нас коробочка виглядає як пиріг у десять шарів:
дані → хедери → ще хедери → а ось і мережевий хедер. Але всі вони — на своєму місці.

Переходимо до канального рівня, де вже ближче до заліза, дротів і бітів? 🧷📡

Канальний рівень — лицар бітів і захисник кадрів

Чесно? Канальний рівень — це один із тих хлопців у компанії, що працює найбільше, а хвалять найменше. Тому що він сидить між реальним залізом (фізичним рівнем) і всією цією високоінтелектуальною логікою зверху, і тихенько, мовчки збирає, пакує, перевіряє, виправляє і шле дані. Не життя — а endless-цикл.

І тут стає в пригоді наш улюблений герой із підручника — Річард Велслі Хеммінг. Він подарував світові той самий алгоритм виявлення і виправлення помилок, без якого інтернет був би схожий на пошту сов — летить щось, куди — незрозуміло, і чи дійде — Боже провидіння.

Що робить канальний рівень:

  • Перетворює дані в нули й одинички (і навпаки).
  • Пакує біти у кадри — ніби вантажник на складі пакує коробки: акуратно, з етикетками, і з гарантією, що все доїде цілим.
  • Контролює помилки — тобто перевіряє, чи не загубилась десь «1», чи не стала «0», і якщо так — «Відправ назад, це брак!».

Розрулює доступ до мережі, працює з комутаторами, містами, і каже всім: «По черзі, не штовхайтесь, кожен отримає свій слот».

Два обличчя канального рівня

У цього рівня є два підрівні, як у хорошого бургера — верхня і нижня булочка:

  1. MAC (Media Access Control) — той, хто дає доступ до фізичного середовища, дозволяє пристроям «висунути руку» і сказати: «Я наступний! Моє право передати дані!». Тут і з’являються ті самі MAC-адреси — унікальні ідентифікатори мережевих пристроїв. Можна сказати, що MAC — це ніби паспортна перевірка перед входом у нічний клуб мережі.
  2. LLC (Logical Link Control) — логічний контролер, який працює з мережевим рівнем, допомагає йому спілкуватися з нижнім світом фізики та заліза.

Коли дані надходять знизу догори...

Канальний рівень — як той охоронець на вході в офіс:

  • Перевіряє, чи всі пакети в порядку.
  • Чи не загубилися частини.
  • І якщо щось не так — повертає назад з коментарем: «Перевір ще раз. Не пущу!»

І тут вже реальний світ

На відміну від більшості інших рівнів, де живуть протоколи й софт, тут ми вже маємо справу з залізом. Працюють:

  • Комутатори (Switches).
  • Мости (Bridges).
  • Маршрутизатори (Routers) — так, вони багаторівневі, але з канальним теж у дружбі.

І, звісно ж, тут живе наш старий добрий знайомий — Ethernet, той самий, яким підключений ваш офісний комп’ютер.

  • На канальному рівні — це Ethernet IEEE 802.3.
  • А на фізичному (не буду спойлерити, це далі) — там інша версія, інші стандарти, інші танці з кабелем.

Ну що, пакети перевірені, кадри зібрані, помилки виправлені — час передавати все далі, до найнижчого рівня — фізичного. Але про нього — вже у наступному розділі ⚡

Фізичний рівень — і струм пішов!

Ну от, дійшли ми до найглибшого шару мережевого буття — фізичного рівня. Тут усе максимально просто і водночас максимально фундаментально. Жодних JSON, хедерів чи хендшейків. Тут уже все на рівні: є струм — 1, нема струму — 0.

Азбука Морзе? Майже. Тільки замість «тук-тук» — електричні імпульси, оптичні сигнали або навіть радіохвилі, що мчать по повітрю.

Саме фізичний рівень:

  • Перетворює біти на сигнали: електричні, світлові або радіо.
  • Відправляє ці сигнали через середовище: дроти, повітря, оптоволокно, Wi-Fi хвилі, або, чому б і ні — супутники!
  • І приймає їх на іншому кінці, щоб усе починалось заново — тільки вже у зворотному порядку.

Тут працює справжнє залізо.

Це єдиний рівень, де не лиш протоколи, а справжні пристрої — ті, які можна понюхати, розібрати і, якщо пощастить, запхати назад так, щоб ще й запрацювало:

  • Концентратори (Hubs) — безмозкі, але старанні.
  • Повторювачі (Repeaters) — кричать далі те, що почули ближче.
  • Медіаконвертери — перекладачі з «мідної» на «волоконну» і назад.

Протоколи теж є, і не абиякі!

На фізичному рівні ми маємо цілий зоопарк стандартів:

  • Wi-Fi — бездротовий улюбленець.
  • Bluetooth — для навушників і «де мій телефон?».
  • Ethernet — класика, дріт, надійність.
  • І ще купа інших: Zigbee, NFC, інфрачервоні пульти від телевізора (серйозно, вони теж працюють на фізичному рівні!).

У кожного свій спосіб передавати одинички й нулі. І щоб усі ці стандарти працювали без взаємного побиття — є інженери-електронники, стандартизатори, та навіть цілі альянси (типу EIA), які кажуть:

Отак передаємо, отак кодуємо, і ніяких самодіяльностей!

Transmission Medium — канал, по якому летить магія

Це може бути:

  • Кручена пара (той самий LAN-кабель).
  • Оптоволокно (швидко, красиво, світиться).
  • Коаксіальний кабель (олдовий, але ще живий).
  • Супутник (привіт, Starlink!).
  • Wi-Fi роутер (король хатньої мережі).

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

І от, після всього цього шляху, наш запит — від милого «пошуку в браузер котика» — перетворився на струм, сигнал, імпульс, побіг по дротах, застрибнув у Wi-Fi, перелетів між точками доступу, проскочив через роутери, комутатори, репітери, і...

💥 Винирнув у Google!

Всі рівні відпрацювали як злагоджений оркестр: хтось шифрував, хтось будував маршрут, хтось перевіряв, чи не загубились біти в дорозі. Але...

Тепер — пора повертатися назад. Відповідь чекає. І вона має пройти весь шлях до нас. Але є один нюанс. Ми не підемо тим самим маршрутом, крок за кроком по OSI-моделі. Ні. На сцену виходить TCP/IP — практична модель, яка каже:

Ходімо коротшим шляхом. Без зайвих церемоній.

А перед тим, як почати це нове «плавання вгору», давайте поставимо обидві моделі поруч — OSI та TCP/IP — і розберемось, хто з них за що відповідає, хто віддав фронтендерам три рівні в одні руки,і чому фізичний рівень у TCP/IP так і не дочекався окремого етапу слави.

OSI vs TCP/IP — офіційна битва протоколів

Перш ніж ми з вами «винирнемо» з усіма нашими пакетами, кадрами й хедерами, варто на мить зупинитися, щоб порівняти дві моделі — еталонну OSI і практичну TCP/IP. Адже тільки тоді ми зрозуміємо, чому спускались по семи сходинках, а підіймаємось лише по чотирьох.

Як усе було в OSI

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

Але TCP/IP така:

Сім рівнів? Та хто ж це витримає. Давайте все по-людськи.

І ми маємо всього чотири рівні:

  1. Application Layer — замість трьох з OSI (прикладного, представлень і сесійного).
  2. Transport Layer — залишився без змін.
  3. Internet Layer — аналог OSIшного мережевого.
  4. Network Access Layer — об’єднання канального і фізичного.

Хто за що відповідає?

  • Application Layer — царство розробників.
    Тут живе фронт, бек і той самий фулстек, який каже:
    «Я все вмію, але не чіпайте мене в п’ятницю ввечері.»
  • Transport Layer — частково належить бекенду, частково DevOps’ам.
    Це місце, де вирішується, буде у нас «дай відповідь» чи «надіюсь, дійшло» (TCP vs UDP).
  • Internet Layer — територія мережевих інженерів, що роздають IP-адреси й пінгують усе, що рухається.
  • Network Access Layer — підземелля, де працюють сісадміни і техніки.
    Вони контролюють все — від витої пари до супутникових антен, і лише вони знають, чому після «висунув і всуну кабель» інтернет знову запрацював.

🐾 Винирювання — шлях назад від Google до тебе

Ми пройшли з тобою довгий шлях — від кліку в браузері до електричних імпульсів, що побігли кабелями до серверів Google. Але тепер — час винирювати. І тут усе вже не по OSI, а по TCP/IP. Чотири рівні. Мінімум філософії, максимум ефективності.

1️⃣ Рівень доступу до мережі (Network Access Layer)

Тут об’єднали все, що було канальним і фізичним в OSI. Але роботи стало більше, ніж просто передати сигнал.

Це момент, коли дані, які прибігли з data link layer, перетворюються у біти і вирушають у мандрівку фізичним середовищем:

Після того, як сигнал прибіг, ми перевіряємо:

  • Чи все добре?
  • Чи не загубилась жодна одиничка або нулик?

І тільки після цього дані йдуть далі. А як саме виглядає наш Ethernet на цьому рівні — ось:

Тут і преамбула, і MAC-адреси, і тип, і контрольна сума — усе для того, щоб кадр не тільки дійшов, а ще й дійшов правильно.

Це вже архітектурний рівень: access → distribution → core. На цьому рівні працюють реальні пристрої: комутатори, маршрутизатори, точки доступу — і IT Support, який іноді буквально рятує світ.

2️⃣ Мережевий рівень (Internet Layer)

Ми випірнули вище. Тут знову з’являється IP-протокол, але вже не такий багатофункціональний, як у OSI. Він:

  • Не обирає маршрут.
  • Не визначає логічні адреси.
  • Просто приймає, перевіряє і передає далі.

Інформація про версію, TTL, source/destination IP, флаги, фрагментацію та ще багато чого — все всередині цього заголовка.


3️⃣ Транспортний рівень (Transport Layer)

Ось тут — головна розвилка: UDP чи TCP?

Якщо UDP: прийшли пакети → склали → передали на відображення.
Все, не питаємо, чи дійшли правильно, в якому порядку, чи хтось загубився.
Прилетів — добре. Не прилетів — теж нічого страшного 🕊️

Якщо TCP:

  • Встановлюємо з’єднання (handshake).
  • Контролюємо помилки.
  • Гарантуємо послідовність.
  • Перевіряємо доставку.

І лише після цього — передаємо дані вище. Бо ми не хочемо побачити повідомлення «? погуляємо привіт» замість «Привіт! Давай погуляємо?».

Далі за логікою ми б переходили на сесійний рівень, але ні — у нас далі прикладний рівень, який відповідає за всі три рівні... Тому...

4️⃣ Прикладний рівень (Application Layer)

Це вершина. Фінальний бос. І він тепер виконує функції трьох рівнів OSI: прикладного, представлень і сеансового.

Тут ми:

  • Розшифровуємо дані.
  • Розпаковуємо і decompress’имо.
  • Перекладаємо (translation).
  • Передаємо їх у потрібну програму або систему.

І нарешті, ми від’єднуємо останній хедер, розгортаємо відповідь — і...

🎉 Нарешті бачимо того самого котика!

Шукали ми його на прикладному рівні — а побачили після подорожі через електрику, маршрутизатори, фрейми, пакети, сегменти, протоколи й перевірки.

🔚 Підсумок: з котиків — у глибини мереж

Тож, ми з вами:

  • Пройшлися по всім семи рівням OSI, від прикладного до фізичного — як справжні археологи мереж.
  • Занурились до найглибших шарів — де все вже не JSON, а струм і сигнали.
  • Піднялись назад, але вже не по OSI, а по TCP/IP, аби побачити, як це працює в реальних системах.
  • Розібрались, хто за що відповідає: розробники, девопси, адміни, техніки, а ще — добрий старий IT Support.
  • Побачили різницю між TCP та UDP: один — турботливий листоноша, інший — швидкий, але злегка безвідповідальний кур’єр.
  • І побіжно згадали навіть про шифрування, стиснення, translation і архівацію — бо без них у сучасному інтернеті ні кроку.

🤔 А навіщо це все?

Для того, щоб, коли хтось скаже:

Та що там — ти просто вбиваєш URL у браузері...

...ти змог(ла) відповісти:

Ну, знаєш... Спочатку прикладний рівень формує запит, потім транспортний його сегментує, мережевий додає IP-заголовок, канальний загортає у кадр, а фізичний шле це все імпульсами... А потім усе назад. І я бачу котика. Крапка 🐱

🧠 Сподіваюсь, тепер вам стало трішки легше:

  • Орієнтуватися в складному світі мережевих протоколів.
  • Розуміти, як працює ваш інтернет-запит насправді.
  • І не боятися цих загадкових слів: OSI, TCP/IP, handshake, TTL, frame, segment...

🧩 Наостанок порада

Поверніться до цієї статті, коли готуватиметесь до інтерв’ю, писатимете мережеву частину для архітектури або просто захочете пояснити другу, що «інтернет не працює, бо згорів маршрутизатор на рівні доступу до мережі». А не тому, що «Google зламався».

І головне — пам’ятайте: кожен пінг — це міні-пригода.

👍ПодобаєтьсяСподобалось41
До обраногоВ обраному34
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

І по технічних деталях.

«Рівень 7 — HTTP» — це недостатньо коректне твердження. Да, я знаю, что навіть вікіпедія пише так, але я читав оригінал документів ISO:)
Коли стандарт каже «відправляти заголовок Content-Encoding: chunked у такому-то випадку» це рівень 7, а коли описує, як формується цей заголовок, куди його поміщати і як — це рівень 5. Коли вказує, що треба відрезолвити хост в URL це рівень 7, а як саме резолвити — це інші протоколи:) Те ж саме з SMTP. Між ними є і 6-й: коли обмежує, як ділити чанки чи як універсально передати будь-який файл через октетний транспорт (для FTP) — це рівень 6. Тому у вас і замало прикладів для рівня 5.

Про UDP сказано, що в ньому немає портів, на відміну від TCP. Це неправда, вони є в тому ж вигляді з тим же семантичним навантаженням. Те ж саме і для SCTP.
І ще треба було б згадати QUIC, бо він займає дуже суттєву частину трафіка зараз. Фактично це шар транспортного (L4) рівня (пакетизація, повтори, гарантія доставки, ще й шифрування) поверх іншого L4 (UDP). На таке стандартна OSI не розрахована:)

RIP згадувати не має сенсу, він вимер майже всюди. Треба було згадати BGP — для всього Інтернету (між автономними системами), OSPF, IS-IS — для мережі одної автономної системи.

Метод Хемінга давно не головний у контролі трафіка на канальному рівні. На Ethernet використовується простий CRC32, і в деяких його варіантах — 4B5B. На далеких каналах типові 64B66B, 128B130B для синхронізації границь, і теж з CRC. Хемінг це вцілому для внутрихостових взаємодій — як наприклад CPU з RAM (64 біта даних плюс 1 парности плюс 7 Хемінга = 72 біта — тому в гарних DIMM 9 чипів, а не 8;)).

WiFi має свій стек різного дивного з повторами, контролем цілостности і т.д. — і охоплює одночасно і L1 і L2.

> Ну, знаєш... Спочатку прикладний рівень формує запит

Забули розповісти, як клавіатура передає коди, борючись з фантомами і брязкітом, а потім передає або по USB зі своїм стеком, або по PS/2, де недо-I2C і шизанутий контролер на мамці:)

res.cloudinary.com/...​/t4n82uuggzvycq8sc29z.png

Думаю те що ви пропонуєте теж було б круто почитати! Може напишете?
Я і так багато чого сюди всунула, просто намагючись донести поверхневу інформацію :)

Традиційно додам про повний склад рівнів OSI:
— Рівень 8 — персонально-людський.
— Рівень 9 — політичний.
— Рівень 10 — соціальний.
(З тих жартів, які за своєю природою вказують, что в суттєвій мірі це не жарт)

Без прив’язки для чого саме та нумерація буде використана, цікавим буде саме кількість і як вона обиралась. Якщо розглядати без ієрархії та виходити з кількості одночасно утримуваних одиниць в пам’яті (human) 4-7 (±2) — то краще від 7 і менш (краще 4-5). Якщо пропонується 10, то чомусь це наводить на думку щодо зворотнього tradeoff в сторону short-term memory 9+ ємкості (як у шімпанзе нп).
З «жартів» про природу пам’яті.

upd: implicit/short термінологія виправлена

Якщо розглядати без ієрархії та виходити з кількості одночасно утримуваних одиниць в пам’яті (human) 4-7 (±2) — то краще від 7 і менш (краще 4-5).

Так тут і є ієрархія, я вважаю — 4 групи: 1-2, 3-4, 5-7, 8-10.

Фізичний рівень занадто спростили. На ньому насправді складніше і цікавіше бо сигнал з кількох підряд одиничок чи ноликів складно розпізнати на приймаючій стороні і за певними правилами такий незручний сигнал треба змінити на такий, що може бути розпізнаний. А ще майже завжди сигнал не тільки 0 або 1, а має кілька рівнів бо за обмежений час треба багато встигнути передати. А ще щось постійно заважає й споплюжує те, що передається і на примаючій стороні треба спробувати розпізнати, як було насправді, щоб менше було повторних надсилань на канальному рівні.

Згодна, але не забувайте що стаття просто для ознайомлення. Там все дуже спрощенно! :)

Цейво. А L2-L3 обладнання — це про 7 шарів чи про 4?

Це скоріш про спеціалізоване обладнання, тут потрібна інша абстракція ))). Всі ці шари умовні. Якщо реалізація поставлених цілей не потребує підтримки певних стандартів, то і підтримувати такі стандарти стане накладним і збитковим. Звісно якщо потім не планується маштабування та апдейт до вищих рівнів кінцевого інтерфейсу взаємодії з користувачем. Якщо конкретніши то певно і про 2 нижні, а у випадку з L3 то про всі 7.

Про 7. Вендори різного заліза нумерують у себе за схемою OSI.

(Якщо це не про те, де, наприклад, L1 це перша лінія техпідримки. Я пару разів наривався.)

Давайте ще глибше. Всю фізику )))
Жартую.

Стаття, як стейк, политий апельсиново-вишневим джемом, медом, карамеллю, приправлений ванілю, зверху притрушений смачнючим тертим пармезаном. І поданий з коктейлем з дорогого французького вина та текіли в пропорції 50 на 50. З оформленням у вигляді котика, звісно ж)
Але картинки класні :)

З оформленням у вигляді котика, звісно ж)

а прикинь з тім усім (а ще точніше з тіма усіма) реально працювати у реальній бізнес ))

I am an expert I can do anything I can do absolutely anything © (tm)

жах який, не уявляю як працювати з «тім усім» :)

ну як... )) як поєднати мережу 2.5 гігабіт на виходи на 1 гігабіт маючи вже старі свічі на 1 гігабіт які не мають виходів на 2.5 гігабіт? ))

Швейк между тем разглядывал номер винтовки и вдруг воскликнул:
— Четыре тысячи двести шестьдесят восемь! Такой номер был у одного паровоза в Печках. Этот паровоз стоял на шестнадцатом пути. Его собирались увести на ремонт в депо Лысую-на-Лабе, но не так-то это оказалось просто, господин фельдфебель, потому что у старшего машиниста, которому поручили его туда перегнать, была прескверная память на числа. Тогда начальник дистанции позвал его в свою канцелярию и говорит: "На шестнадцатом пути стоит паровоз номер четыре тысячи двести шестьдесят восемь. Я знаю, у вас плохая память на цифры, а если вам записать номер на бумаге, то вы бумагу эту также потеряете. Если у вас такая плохая память на цифры, послушайте меня повнимательней. Я вам докажу, что очень легко запомнить какой угодно номер. Так слушайте: номер паровоза, который нужно увести в депо в Лысую-на-Лабе,— четыре тысячи двести шестьдесят восемь. Слушайте внимательно. Первая цифра — четыре, вторая — два. Теперь вы уже помните сорок два, то есть дважды два — четыре, это первая цифра, которая, разделенная на два, равняется двум, и рядом получается четыре и два. Теперь не пугайтесь! Сколько будет дважды четыре^ Восемь, так ведь? Так запомните, что восьмерка в номере четыре тысячи двести шестьдесят восемь будет по порядку последней. После того как вы запомнили, что первая цифра — четыре, вторая — два, четвертая — восемь, нужно ухитриться и запомнить эту самую шестерку, которая стоит перед восьмеркой, а это очень просто. Первая цифра— четыре, вторая-два. а четыре плюс два — шесть. Теперь вы уже точно знаете, что вторая цифра от конца — шесть; и теперь у вас этот порядок цифр никогда не вылетит из головы. У вас в памяти засел номер четыре тысячи двести шестьдесят восемь. Но вы можете прийти к этому же результату еще проще...

Хорошая статья, мне бы ее прочитать во время учебы в хнуре... вообще хороший материал для лекции для студентов будущих стажеров

Проф. Гуліус у 2003 непогано компʼютерні мережі розповідав (КСМ-00-4).

Вибачаюся, колего, але змішались коні, люди, стовпи і кілометри....

Для первісної розповіді, я вважаю, нормально. При цьому багато чого треба спрощувати.
Цю тему, звісно, можна розвивати вглиб, але в окремому обʼємі, треба ще декілька таких статей тільки про основи.

на самому початку статті написано — «для новачків»
тут дуже поверхнево про все :)

Напешті толкова стаття у який прописано що таке реалії і як вони відносятся до паперового стандарту.

На жаль, ці моделі добре працюють для вебу, але коли треба набирати людей на проекти з IEEE1722, IEEE1733, gPTP і інше TSN, то у ембеддерів без досвіду в нетворкінгу, але з досвідом з іншими низькорівневими шинами чомусь вкатуватись виходить швидше, не чіпляючись за звичні абстракції і підходи до організації IPv4/IPv6 мереж.

Та я б сказав навіть на

IPv4/IPv6 мереж

Зара тіпічний сінйор зламається і на IPv4 в принципі, 6 то як не як окрема тема теж

Але таке чуство, що не влазить в тераформ то і знать не нада, треш якийсь

На мою думку, це тому, що практика з низькорівневими шинами та передачею данних по них формує більш детальне уявлення про ФІЗИКУ СИГНАЛІВ. Нетворкінг справді більш абстрактний. Але якщо мова йде конкретно про кодування, то скоріш за все велику роль гратиме обладнання під яке розробляється ПО. Якщо мова про створення цого обладнання (інженерку), то практика по програмуванню, контролю та створенню різних пристроїв за допомогою низькорівневих шин це — маст хев.

Я трохи про інше: функціонально закінчена мережа з фізичним рівнем на ethernet може взагалі не оперувати з L3 і вище у звичному розумінні, але при цьому скажемо транслювати звук на динаміки в автомобілі чи на стадіоні.

Перепрошую, з транслювати звук або навіть відео з цим зрозуміло. А от про на динаміки — це про який сигнал? Аналог чи цифру? Аналог, тут без підсилення не вийде, а цифру треба декодувати в аналог а потім підсилити. А так шоб прям на динаміки з фізичним на ethernet не знаю, не знаю.

А так шоб прям на динаміки з фізичним на ethernet не знаю, не знаю.

Виглядає приблизно так: www.ebay.com/itm/145790673555
На вході автомобільна бортмережа і езернет по 100BASE-T1 або 1000BASE-T1, на виході десяток-два динаміків з мікрофонами.
І ота мережа, в яку воно підключено, зазвичай взагалі не оперує з IP-адресами, все на L2, зате має свої протоколи і апаратні розширення для мінімальної і гарантованої латентності.

Скажу Вам відверто. Розвод. Бо в данному обладнанні звукова карта яка приймає цифру, декодує в аналог а на динамік спрямовується аналоговий сигнал попередньо підсилений до потрібного рівня підсилювачем. Навушники з USB конектором працюють за схожим принципом. Живлення данних модулів прямо пропорційне потужності. Так можна в будь що багатоканальну звукову карту з езернет розємом запаркувати. Але до динаміків спрямувати езернет. Це Ви прям завернули в попередніх коментарях. Гарного дня.

Кому розвод, а кому сфера діяльності. Мова була суто про нетворкінг, а не те як той звук в PCM в дельта-сігма АЦП перетворюється в аналог і підсилюється класом D, задач вистачає і рівнем вище, з синхронізацією наприклад моменту відтворення наступного пакету на мережі з подібних підсилювачів при озвучці стадіону.

з синхронізацією наприклад моменту відтворення наступного пакету на мережі з подібних підсилювачів при озвучці стадіону.

нє ну загалом має сенс )) давай спробуєм трохи арифметики загалом я сумніваюся чи є зараз 10-мегабітні просто провода тож вважати що там 100-мегабіт мінімум і для порівняння взяти старий добрий сіді щоб просто з чімось порівнювати якій має 44 кгц 16 біт а отже 704 кілобіт в секунду що відповідно у 142 рази менше за ємність а також за швидкість каналу тобто на те щоб синхронизувати потік від сіді у 100-мегабіт езернету єсть до 142 раз простору

но на справді там звісно трохи я не правильно посчитав чого в мене не вийшло сказать скіко то у пакетах отже за передачу 704 кілобіт треба буде грубо 142 пакети по 500 байт а загальна ємність каналу 20 тисяч такіх пакетів

що стало я знов не правий коли сказав що був не правий тож грубо на кожний пакет потоку сіді якості 44 кгц 16 біт у тебе є до 141 пакету іншого трафіку на то є щоб то є усе синхронизувати

з синхронізацією наприклад моменту відтворення наступного пакету на мережі з подібних підсилювачів при озвучці стадіону.

значення арифметики щетаю перебільшене ))

я же ж кажу то є все пусті балачки тєорєтіків )) як то вже згадана «магія»

зазвичай взагалі не оперує з IP-адресами, все на L2, зате має свої протоколи і апаратні розширення для мінімальної і гарантованої латентності.

якої «мінімальної і гарантованої латентності»? ))

і езернет по 100BASE-T1 або 1000BASE-T1

давно не працює на спільному носію де йому може знадобитися якісь спеціальні протоколи для вирахування колізій привід бездротовій вайфай

а езернет давно ходить через свіч якій не світить передачу в усі порти а працює на пакетному рівні тупо пересилаючи пакет за його езернет адресою в конкретний порт і всьо усі оті

протоколи і апаратні розширення для мінімальної і гарантованої латентності.

на цьому і зацінчилися як то на самім чіпі свіча

ЗЫ: нє ну звісно там ще трафіка може бути стіко щоб не вистачать самого чіпа свіча но опять же ж для цього давно придумано пріорітети де той самий аудіо чи навіть відєо не помітить якогось лагу у передачі за якій чіп потратить на те щоб передачи якийсь керуючий пакет як то від руля чи там від педалі

ЗЫ: ви знали що на машині вже давно щонайменше педалі газу вже «електроні» ))

якої «мінімальної і гарантованої латентності»? ))

2мс з джиттером presentation time 100ns вже в продакшні.

якісь спеціальні протоколи для вирахування колізій

Або апаратні таймстампи моменту фізичного приходу фрейму на порт і точний облік часу доставки у всьому ланцюжку.

свіч якій не світить передачу в усі порти а працює на пакетному рівні тупо пересилаючи пакет за його езернет адресою

Угу, особливо у випадку gPTP тупо пересилає.

У мене за плечима 10+ років в індустрії, сотні проєктів,

Це як?)

«Многомиллионные армии вызвали на сцену фронты протяжением в сотни тысяч километров» © М.Н.Тухачевский, командарм и пароход

Іноді таке буває що проєкт може займати один місяць.

А іноді навіть паралельно два :)

Ще ніколи чат gpt не був так близько до провалу)

За останні два місяці в мене було 4 проекти :) при чому займалась як фронт, так і бек і навіть девопс частиною. 10 проектів в рік — це не так багато 🙌

Хоча для мене ваше питання «це як?)» звучить безглуздо як і питання «всміслє?» 🤭
Але це для мене 💁‍♀️
Комусь це буде багато, комусь навпаки мало...
«всього лише 100 проектів за 10 років? Пфффф»
Тому не треба судити по собі 🫶

Дуже просто. Ганна була нашим техлідом на проекті пів року. Зараз вже ні. Тому що реальні знання — на рівні оцієї статті. (Нічого особистого, але правда вона дорожчє)

Не очікувала ножа в спину....хоча може тобі не сподобалось що я за тебе робила роботу девопса...бо ти не міг?))
Як то кажуть собаки лають, караван іде. Можеш не продовжувати поливати мене брудом, це виглядає ганебно якщо чесно...бо в лице посміхався, а в спину...ну ясно корочше :)

Ну, шо ж :). Не розумію, навіщо тобі це тут від людини з яка мала досвід роботи з тобою, але якщо вже ти мене називаєш розумною твариною, та наполягаєш, то відповім. Поперше — я і тут тебе не ображаю, лише кажу правду. Подруге, розкажи всім про свій успіх, як ти зробила роботу девопса. Та і про загальний успіх на проекті. І по-третє, це перший мій досвід у компанії, коли інженера навіть на бенч не поставили перед звільненням.

Нє, нє, дякую, я в це не буду вписуватись...як я і казала «...караван іде»

MPLS і QUIC заходять в бар

Шик стаття, толково й цікаво

оживає OSI-модель. Це не просто «університетська теорія» — це інструкція до реального світу даних, яка працює щосекунди навколо нас.

Якраз університетська теорія

OSI — теоретична модель, а TCP/IP прикладна, і має варіанти, тому не треба прочитавши якусь книжку вважати себе дуже вумним і гвалтувати інших людей як багато з обмежених недосінйьорів любить і змушувати натягувати одне кучеряве на інше кучеряве. Не все натягується

Я натякаю на ось це

Поверніться до цієї статті, коли готуватиметесь до інтерв’ю,
OSI — теоретична модель, а TCP/IP прикладна

Пан Паштет правий, ще з девопсівських співбесід памятаю це)

quic небагато хто цікавиться, а mpls з маршрутизацією заплутає тільки — аби стд 4ри рівні запам’ятали то і добре булоб

А в кінці натяк напевно вірний — якщо інтерв’ювери на співбесідах запитають чи в курсі про osi, то може комусь знадобиться саме для того (а поза межами співбесід — так — малоймовірно)

По моему опыту интерьюеры бывают двух типов:
Те, для которых нетворкинг это уметь открыть сокет и те, котрые душу вытрясут за порядок байт в заголовке BGP.

Сокети говорять більш за знання мережевої підсистеми в ос, а розуміння 4х рівнів мережевого стека — індикація загального рівня знань. Тобто дивлячись в яку сторону більш треба з тих частин знати — то буде чи програмер чи нетадмін. Знання байт bgp заголовку — то занадто (для чого та бежепа і як з нею що робити — треба для нетадміна, і то вже ближче до співбесіди для роботи в ISP).

Сокети говорять більш за знання мережевої підсистеми в ос

Не больше, чем умение открыть файл или сменить каталог — база базовая.

розуміння 4х рівнів мережевого стека — індикація загального рівня знань

Мне кажется, что для девелопера без сетевой специализации, важен не стек, а основы администрироваия — понимание IP маршрутизации и особенностей TCP — состояния стейт-машины, основные порты, Нагл, ретрансмит etc. Умение настроить файрволл или порт-форвардинг.

и те, котрые душу вытрясут за порядок байт в заголовке BGP.

Оці автоматично йдуть накуй.
Накуй працювати з такими «колегами». )

Cкоріш усього то перебільшення: формати протоколів з якими постійно не працюєш (може окрім заголовків базових ip чи tcp чи udp — щоб знати що вони комусь постійно на очі попадалися під час програмування — тобто на чому акцент був), теж саме зі згаданими в коментах quic mpls bgp etc. — якщо щось не використовується постійно і прямо не потребується вже зразу — максимум то загальна уява для чого вони треба.
Знання конкретних форматів — перекос в одну сторону (завжди і так можна глянути коли треба), osi — в іншу (малоймовірно що треба буде): — як те що то і не практично з багатьох точок зору.

Загальні мережеві знання — знати що то за чотири рівня в стеку, для чого вони, і базові приклади.
Це — мінімум. Потім від цього можна йти далі — як і по використанню в системі(ах) та/чи конкретики з мовами програмування, так і по загальному стеку.

Cкоріш усього то перебільшення

Смеяться будешь, у меня был такой собес в начале года.
И чем он собственно отличается от набивших оскомину вопросов про аргументы библиотечных функций?

Я предполагаю, достаточно было сообразить, что раз его разрабатывали Cisco с прочими в 90-х — то ответ «big-endian» достаточен. И именно на эту общую эрудицию и был вопрос.
Не вижу в этом ничего плохого, если у ответа не существенный вес в оценке кандидата.

достаточно было сообразить, что раз его разрабатывали Cisco с прочими в 90-х — то ответ «big-endian»

Разумеется.

Не вижу в этом ничего плохого, если у ответа не существенный вес в оценке кандидата

Это не единичный вопрос, это стиль. Особенно неприятный, когда ожидаешь предметного разговора.

Это не единичный вопрос, это стиль. Особенно неприятный, когда ожидаешь предметного разговора.

Согласен, «тады ой». Ну, возможно, там цель была — завалить, а не принять...

Ну, возможно, там цель была — завалить, а не принять...

Тогда можно было просто резюме кикнуть.
Я трактую такие истории немножко по другому — многие высококвалифицированные спецы — социальные инвалиды, женатые на своей предметной области. Они просто не умеют в нормальную человеческую коммуникацию.
Это очень легко определяется по началу разговора — вместо обычного «расскажите о себе» сходу начинается бомбардировка не связанных общим контекстом вопросами, а то и предложение сразу открыть онлайн редактор и начать кодить.

Так бывает, но я не вижу в этом как таковой «социальной инвалидности», часто это просто вариант подхода — проверить общий уровень. В «расскажите о себе» в основном идут HR, которые проверяют чисто общую адекватность (не маньяк, не псих), а тут уже предметное.
Вот насколько придирается к деталям — тут уже да, личные заскоки интервьюера хорошо видны.

часто это просто вариант подхода — проверить общий уровень.

Проверить общий уровень — это как раз поговорить о предыдущих проектах и о мотивации работать на текущем.
Так же много времени может сэкономить развернутое описание ожиданий на текущей позиции.
Вобщем собеседование в нормальном случае это поиск будущего коллеги, а не поиск девочки на час.

Ніколи не питала і не приживалась до деталей. Мені просто важливо зрозуміти, що переді мною людина яка не вважає все що за веб/мобайл/десктоп (короче гуі) інтерфейсом — за просто «магію» ✨
Базове розуміння, дуже і дуже базове, а не «вжух-вжух і я бачу котика» або «бекенд з усім розбереться, проблема не на нашій стороні» 🫣

Мені просто важливо зрозуміти, що переді мною людина яка не вважає все що за веб/мобайл/десктоп (короче гуі) інтерфейсом — за просто «магію» ✨

«Any sufficiently advanced technology is indistinguishable from magic» (Arthur C. Clarke)

Базове розуміння, дуже і дуже базове, а не «вжух-вжух і я бачу котика»

«дуже і дуже базове» то і є саме «магія» як то буквальне

«вжух-вжух і я бачу котика»

бо на його рівні досить розуміння що там між фронтом і бекендом просто якась труба

дуже і дуже базове

і на рівні котика там є лише спільні магічні слова які треба передати на бекенд щоб вони почали розбиратися бо ж вони зі свого боку «бачать» фронт так само лише через ці спільні магічні слова а аж ні як не через усю оту чисту магію технічної імплементації магічної труби між беком та фронтом

селяві просто бізнес ))

был такой собес

з собес різні асоціації можуть виникати, не завжди зразу здогадатися можна

аргументы библиотечных функций?

навіть уяви немаю в чому та різниця, як і навіть як ділять на всі ті full senior junior lead ... може то якось з цими вебградаціями/комбінаціями зв’язано, хз.

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

OSI — теоретична модель,

Ні. Просто є дві різних OSI :)

Одна — теоретична для навчання, «народна» OSI. Вона дуже гарно формує каркас, на якому далі можна мислити про всі ці речі.

Друга — конкретна імплементація, яка є, вона працює... раніш була в реальних корисних мережах, зараз залишилась в деяких лабораторіях, які ще чомусь тримаються за неї. Центральна частина її зветься X.25. Хто хоче, може спробувати. Така собі археологія:)

Дякую!
Та-та, це розраховано на ознайомчий матеріал, як бачите там є теги «для новачків».
Це реально допомагає зрозуміти що за кліком «мишки і запитом» зовсім не магія ✨ відбувається!

Перепрошую, стаття може і непогана, і схемки гарні, але читати текст рясно орошений метафорами і «простими аналогіями» від ЛЛМ більше нема сечі. Як на мене, нехай модель лишається моделлю, а не багаторівневою красунею.

Що не так з багаторівневими красунями?

they are out of my league ))

Перепрошую, коментар може і непоганий, і слова такі «кричущі», але читати текст від людини яка сама не написала жодної статті, і навіть жодного позитивного коментаря...
Як на мене, нехай тролі залишаються тролями :)

Можна додати що ті хто працюють постійно з мережею — розмовляють в термінології 4х рівневого стека IP (розгляд у розрізі чотирьох рівнів напевно найширше розійшовся з розповсюдженням саме юніксів), про OSI градацію чули/знають, але то сприймається як щось трохи далеке від практики з комітет підручників.

Я працюю постійно, розмовляю в термінах саме OSI (нестрогої). І не тільки я, багато хто навкруги.

Особливо це важливо на низьких рівнях, бо розділяти ефекти, що дає, наприклад, фрагментація IP, від ефектів фрагментації і повтору кадрів по WiFi, транспорту DVB чи що там ще буде — принципово (і вони ще можуть інтерферювати один з іншим).

А ось на верхніх вже типово плутають. 6-й взагалі мало хто виділяє, він привʼязаний до інших. Постійно змішують, в яких випадках треба що специфікувати і як це виглядає, тобто рівні 7 і 5 (випадок HTTP). Це тільки найбільш характерний приклад.

Нестрогої може, чи дуже дуже нестрогої, і кількість тих рівнів пливає, якісь зливаються, і т.п. Єдине що я зразу згадаю про OSI — їх кількість — сім, на цьому все. Решту інфо треба буде отримати з контексту.

Ну це саме і значить, що ви не памʼятаєте.

Точно, навіть погіршу своє становище і скажу що:
важко щось згадати якщо ніколи тим не цікавився

Підписатись на коментарі