Сети База для начинающих

Страницы:  1

Ответить
 

Professor Seleznov


Введение
Давайте начистоту: для многих разработчиков, тестировщиков и начинающих админов компьютерные сети остаются эдаким «черным ящиком». Ты пишешь код, поднимаешь контейнер, всё как-то само связывается и летит в продакшен. Главное негласное правило — «работает, и ладно, главное не трогать».
Но ровно до тех пор, пока микросервис не начинает рандомно отваливаться по таймауту, а браузер не выдает загадочное ERR_NAME_NOT_RESOLVED. И вот тут не знания основ сети превращается в настоящую головную боль.
Цель этой статьи — научить вас основам. Мы на пальцах, с помощью простых и жизненных аналогий разберем, как именно ваши данные преодолевают километры медных проводов, оптики и радиоволн.
Открываем черный ящик. Поехали.
2. Главный фундамент: Модели OSI и TCP/IP
Представьте себе дикий запад IT-индустрии где-то в 1980-х годах. Компания IBM делает компьютеры, которые умеют общаться только с компьютерами IBM. Компания DEC делает свои, и они понимают только друг друга. Если вы купили железо разных вендоров, объединить их в одну сеть было задачей со звездочкой.
Чтобы прекратить этот хаос, умные люди собрались и решили: нам нужен общий язык. Так появились сетевые модели — универсальные наборы правил (протоколов). Именно благодаря им сегодня ваш iPhone (Apple) без проблем скачивает картинку с сервера на Ubuntu (Linux), а сам запрос летит через маршрутизатор Cisco. Все они подчиняются одним и тем же законам.
Почему все учат OSI, если работает TCP/IP?
Если вы когда-нибудь гуглили, как работают сети, то 100% видели модель OSI с ее 7 уровнями. Ее заставляют зубрить во всех универах.
Но вот суровая правда: модель OSI — это призрак. В чистом виде она существует только на бумаге и в экзаменационных билетах. Реальный интернет прямо сейчас работает на более простой, 4-уровневой модели, которая называется стек TCP/IP.
Зачем тогда мы продолжаем мучить людей 7-ю уровнями OSI?
Потому что это идеальная теоретическая линейка. Она разбивает сложнейший процесс передачи данных на логичные, независимые шаги. Это универсальная система координат для любого айтишника. Когда сисадмин говорит: «У нас проблема на физическом уровне», все сразу понимают, что кто-то просто перебил кабель шваброй или отошел контакт, и не лезут ковырять настройки серверов.
Вот как они соотносятся (шпаргалка для понимания):
Уровни модели OSI (Теория) Стек TCP/IP (Практика) За что отвечает (простыми словами)
7. Прикладной, 6. Представления, 5. Сеансовый 4. Прикладной То, что видит пользователь. Браузеры, мессенджеры, почта (HTTP, DNS, SMTP).
4. Транспортный 3. Транспортный Надежная доставка данных. Нарезка на куски (TCP, UDP).
3. Сетевой 2. Межсетевой Поиск оптимального пути через весь мир (IP-адреса, маршрутизаторы).
2. Канальный, 1. Физический 1. Канальный / Доступ к сети Передача нулей и единиц по медному кабелю, оптике или Wi-Fi (MAC-адреса, свитчи).

Инкапсуляция: главный концепт всех сетей
Если вы поймете этот принцип, считайте, что вы поняли 80% того, как работают сети.
Представьте, что вы хотите отправить подарок бабушке в другой город.
  • Сначала вы берете сам подарок (Данные).
  • Вы кладете его в коробку и пишете на ней адрес квартиры (Транспортный уровень, порт).
  • На почте эту коробку упаковывают в стандартную почтовую тару и клеят штрихкод с индексом города (Сетевой уровень, IP-адрес).
  • Затем этот ящик кидают в огромный почтовый мешок вместе с другими посылками и грузят в фуру (Канальный и Физический уровни, MAC-адрес и провода).
В сетях это упаковывание меньшего в большее называется инкапсуляцией (от слова капсула). Это классический принцип матрешки.
Когда вы нажимаете Enter, чтобы открыть habr.com:
  • Ваш браузер формирует запрос: “Дай мне страницу” (Данные).
  • Система оборачивает его в TCP-заголовок — получается Сегмент (появляются порты).
  • Сегмент оборачивается в IP-заголовок — получается Пакет (появляются IP-адреса).
  • Пакет оборачивается в Ethernet-заголовок — получается Кадр или Фрейм (появляются MAC-адреса).
  • И только после этого сетевая карта превращает эту «матрешку» в электрические импульсы и пускает по проводу.
Когда сигнал долетает до сервера Хабра, происходит обратный процесс — декапсуляция. Сервер получает кадр, снимает с него верхнюю упаковку, потом следующую, пока не доберется до сути — вашего запроса “Дай мне страницу”.
Каждый уровень читает только ту «этикетку», которая предназначена для него, и вообще не лезет в то, что лежит внутри. Роутеру плевать, качаете вы мем с котиком или отправляете банковский перевод — он смотрит только на IP-адрес. И именно эта независимость уровней делает интернет таким устойчивым.
3. Физика и канальный уровень: Провода, Wi-Fi и MAC-адреса
Итак, ваш браузер сформировал запрос. Теперь эти данные нужно как-то физически вытолкнуть из вашего ноутбука или смартфона в реальный мир. Компьютеры не понимают букв и картинок, они понимают только нули и единицы.
Среда передачи: как цифры становятся физикой
Чтобы передать 0 и 1 на расстояние, их нужно превратить во что-то осязаемое. И тут у нас три главных варианта:
  • Медь (та самая витая пара, Ethernet-кабель). Компьютер подает электрическое напряжение. Грубо говоря: есть ток (5 вольт) — это единица. Нет тока (0 вольт) — это ноль.
  • Оптика. Если данные нужно передать в другой город, медь не подойдет — сигнал затухнет. Используют стекловолокно и лазеры. Лазер мигнул — единица, погас — ноль. Это как азбука Морзе фонариком, только миллиарды раз в секунду.
  • Wi-Fi (радиоволны). Никаких проводов, нули и единицы кодируются изменением характеристик радиоволны (например, небольшим изменением частоты).
Итак, мы научились мигать лазером или пускать ток. Но как понять, кому именно в этой сети предназначен наш сигнал?
MAC-адрес: физический паспорт железа
У каждой сетевой карты (проводной или Wi-Fi) есть MAC-адрес. Это уникальный идентификатор, который вшивается в чип на заводе-изготовителе. Выглядит он как шесть пар букв и цифр, например: a1:b2:c3:d4:e5:f6.
  • Первая половина адреса выдается производителю оборудования (по ней можно узнать, что сетевую карту сделал, например, Intel или Realtek).
  • Вторая половина — уникальный номер самой карточки.
Зачем он нужен? Представьте, что MAC-адрес — это ваш ИНН или номер паспорта. Он дается вам один раз, он уникален и навсегда привязан к вашему железу. В локальной сети (в пределах вашей квартиры или офиса) устройства общаются друг с другом только по MAC-адресам.
Хабы и Свитчи: почему интернет не захлебнулся в спаме
Представьте офис, где стоят 10 компьютеров. Их нужно соединить проводами. В древности для этого использовали хабы (концентраторы).
Хаб был невероятно тупым устройством. Если Компьютер А хотел отправить мем Компьютеру Б, хаб брал этот сигнал и рассылал его вообще всем остальным 9 компьютерам в сети. Это похоже на то, как если бы вы зашли в опенспейс и заорали во всё горло: «Эй, у кого MAC-адрес b2:c3…? Держи картинку!». Все сотрудники отвлекаются, слушают вас, но картинку забирает только один. Из-за этого сеть постоянно тормозила от лишнего шума и коллизий (когда два компа начинали «орать» одновременно).
К счастью, сегодня мы используем коммутаторы (свитчи). Свитч — умный парень. У него внутри есть оперативная память, в которой он строит MAC-таблицу. Когда вы втыкаете провода в свитч и компьютеры начинают общаться, свитч записывает: «Ага, к порту №1 подключен MAC a1:b2…, а к порту №2 — MAC c3:d4…».
И теперь, когда Компьютер А отправляет мем Компьютеру Б, свитч смотрит на адрес получателя, сверяется со своей таблицей и отправляет данные только в один нужный порт. В офисе тишина, письма передаются как записки под партой, никто никому не мешает. Скорость сети максимальная.
🛠 Практика: смотрим свой паспорт
Давайте сделаем паузу и посмотрим на ваш физический адрес прямо сейчас. Откройте терминал (командную строку).
Если у вас Windows: Введите команду ipconfig /all Найдите свой адаптер (например, Wireless LAN adapter Wi-Fi) и ищите строку «Физический адрес» (Physical Address). Это и есть ваш MAC.
Если у вас Linux или macOS: Введите команду ip a (или ifconfig на маке). Найдите свой интерфейс (обычно eth0 для провода или wlan0 / en0 для Wi-Fi) и посмотрите на строчку, которая начинается со слова link/ether или ether.
Важный нюанс для Хабра: MAC-адреса работают только в пределах локальной сети. Ваш домашний роутер никогда не передаст ваш MAC-адрес дальше, провайдеру или серверу Хабра. Как только ваши данные выходят за пределы квартиры — в игру вступает IP-адрес. И это тема нашего следующего раздела.
4. Сетевой уровень: IP-адреса и Маршрутизаторы
В прошлой части мы выяснили, что внутри одной комнаты (локальной сети) устройства отлично общаются по MAC-адресам через свитч. Но Хабр находится не в вашей квартире. И тут возникает проблема: MAC-адреса абсолютно не поддаются логической сортировке.
Если бы интернет работал только на MAC-адресах, каждому коммутатору в мире пришлось бы хранить в памяти таблицу из миллиардов устройств, чтобы знать, куда направить ваш запрос. Это физически невозможно. Нам нужна была иерархия.
Зачем нужен IP-адрес, если уже есть MAC?
Держите в голове простую аналогию:
  • MAC-адрес — это ваш ИНН (или номер паспорта). Он дается один раз на заводе. Он говорит, кто вы. Но если я напишу на конверте ваш ИНН и кину в почтовый ящик, почта не поймет, куда это везти.
  • IP-адрес — это ваш адрес прописки (Город, Улица, Дом). Он говорит, где вы находитесь прямо сейчас. Если вы придете с ноутбуком из дома в кофейню, ваш MAC останется прежним, а вот IP-адрес изменится, потому что вы подключились к другой сети.
IP-адрес (речь о классическом IPv4) состоит из четырех чисел от 0 до 255. Например: 192.168.1.5 или 178.248.237.68 (один из серверов Хабра). Таких адресов в мире всего около 4.3 миллиарда, и они уже давно закончились. Поэтому умные люди придумали IPv6 — бесконечно длинные адреса с буквами и цифрами, которых хватит, чтобы выдать по IP-адресу каждой песчинке на Земле. Но пока весь мир медленно и со скрипом на него переходит, мы продолжаем жить в реалиях IPv4.
Маски подсети: кто свой, а кто чужой
Это та самая тема, на которой ломаются многие новички. Зачем в настройках сети всегда нужно вбивать какие-то 255.255.255.0?
Представьте: ваш компьютер хочет отправить запрос на сервер Хабра. Компьютеру нужно принять важнейшее решение:
  • Этот Хабр находится тут, в моей локальной сети? (Тогда я отправлю данные напрямую через свитч).
  • Или Хабр где-то далеко в интернете? (Тогда данные нужно отдать роутеру, пусть он разбирается).
Как компьютеру это понять? Именно для этого нужна маска подсети. Она работает как трафарет. Маска 255.255.255.0 говорит вашему компьютеру: “Смотри на первые три числа твоего IP-адреса (192.168.1). Это номер нашей «улицы» (сети). А последнее число (5) — это номер «дома» (конкретного устройства)”.
Компьютер накладывает эту маску на адрес Хабра и видит, что 178.248.237 вообще не совпадает с его родным 192.168.1. Ага! Значит, Хабр в чужой сети. Пакет нужно слать на границу — маршрутизатору.
Роутер (Маршрутизатор): таможня интернета
Свитчи объединяют компьютеры в сеть. Роутеры объединяют сети между собой. Ваш домашний Wi-Fi роутер — это пограничник. Одной «ногой» (одним портом) он стоит в вашей домашней сети (192.168.1.x), а другой «ногой» смотрит в огромную сеть вашего провайдера.
В настройках сети роутер называется «Основной шлюз» (Default Gateway). Это буквально означает: “Если не знаешь, где находится адресат — кидай пакет сюда, на шлюз, роутер умный, он найдет дорогу”. Роутеры общаются друг с другом по сложным правилам (протоколам маршрутизации) и передают ваш пакет по цепочке, пока он не долетит до дата-центра Хабра.
Протокол ARP: связываем логику с физикой
Остался один маленький, но критически важный пробел. Компьютер понял, что Хабр далеко. Он решил отправить пакет роутеру (допустим, его IP 192.168.1.1). Но мы же помним главное правило: внутри локальной сети данные передаются только по MAC-адресам! Компьютер знает IP роутера, но не знает его физический MAC-адрес. Как быть? В дело вступает ARP (Address Resolution Protocol).
Ваш компьютер формирует специальный широковещательный кадр и через свитч буквально «орет» на всю локальную сеть:
ЭЙ, ВСЕМ! У КОГО IP 192.168.1.1? СКАЖИ СВОЙ MAC!
Все устройства в сети получают этот крик, но телефоны и умные чайники его игнорируют. А вот роутер слышит, узнает свой IP и отвечает:
Это я! Мой MAC-адрес aa:bb:cc:dd:ee:ff. Кидай данные сюда.
Компьютер радостно записывает это к себе в память (ARP-таблицу), упаковывает наш IP-пакет в кадр, пишет на нем MAC-адрес роутера и отправляет.
Всё, запрос успешно покинул вашу квартиру и ушел в дебри провайдера. Но как сервер Хабра поймет, какому именно приложению на вашем компьютере нужно вернуть ответ — браузеру? Об этом поговорим на транспортном уровне.
5. Транспортный уровень: TCP vs UDP и Порты
Отлично, благодаря IP-адресу и роутерам наш пакет пролетел полмира и успешно добрался до дата-центра, уткнувшись в нужный сервер Хабра. Конец пути? Как бы не так.
На сервере одновременно работают десятки программ: веб-сервер (который отдает странички), почтовый сервер (который шлет уведомления), база данных, SSH-сервер (чтобы админ мог зайти в консоль) и так далее. Как операционной системе понять, какому именно приложению отдать прилетевший кусок данных?
Порты: номера квартир в многоэтажке
Если IP-адрес — это номер дома (допустим, Ленина, 15), то порт — это номер квартиры.
Вы не отправляете письмо просто «в дом», вы всегда указываете квартиру, иначе почтальон просто бросит письмо в подъезде. Точно так же и в сетях: пакет всегда отправляется с определенного IP и порта на другой IP и порт.
Всего портов 65 535. Первые 1024 из них исторически забронированы за самыми популярными службами. Например:
  • 80 и 443 — это порты для веб-сайтов (HTTP и HTTPS). Именно в эти «двери» стучится ваш браузер.
  • 25 — порт для отправки почты.
  • 22 — порт для безопасного управления сервером (SSH).
Когда вы вводите habr.com, ваш браузер негласно добавляет к запросу порт 443. Получается что-то вроде 178.248.237.68:443.
Но порты — это просто двери. Чтобы данные прошли через них, нам нужен курьер. И на транспортном уровне у нас есть два главных курьера: TCP и UDP.
TCP: Душнила, но надежный курьер
TCP (Transmission Control Protocol) — это протокол, который гарантирует, что ваши данные дойдут в целости, сохранности и в строгом порядке.
Представьте курьера, который приносит вам посылку, требует расписаться в получении, проверяет паспорт, а если вы не открыли дверь — будет приходить каждый день, пока не вручит коробку лично в руки.
Прежде чем отправить хоть один байт полезных данных, TCP обязан установить соединение. Это называется «Тройное рукопожатие» (Three-way handshake). В жизни это выглядит как типичный телефонный звонок:
Ваш ПК: Алло, сервер, ты тут? Я хочу поговорить! (Отправляет пакет SYN) Сервер Хабра: Да, я тут, слышу тебя отлично. А ты меня? (Отвечает SYN-ACK) Ваш ПК: И я тебя. Всё, начинаем общаться. (Отправляет ACK)
Только после этого ритуала начинается передача самой статьи. Причем TCP режет большие данные на мелкие кусочки (сегменты) и нумерует их. Если в пути кусок номер 45 потеряется из-за сбоя на роутере где-то в Германии, сервер Хабра скажет: «Так, я получил 44 и 46, а где 45? А ну-ка, пришли 45-й еще раз!».
Где используется: Везде, где важна абсолютная точность. Загрузка веб-сайтов (вы же не хотите, чтобы в статье пропала половина букв?), скачивание файлов, отправка email, банковские переводы.
UDP: Быстрый, но безответственный курьер
UDP (User Datagram Protocol) — полная противоположность TCP. Это курьер на мотоцикле, который на полном ходу швыряет газету вам на крыльцо и уезжает в закат, даже не оглянувшись.
Ему без разницы, дома ли вы. Ему плевать, поймали ли вы газету или она упала в лужу. Никаких «тройных рукопожатий» и проверок. Он просто берет данные и со всей силы выплевывает их в сеть.
Казалось бы, зачем нужен такой ужасный протокол? Ответ: ради скорости. Из-за отсутствия проверок и подтверждений UDP работает молниеносно.
Где используется: Там, где скорость важнее точности, а потеря пары пакетов не критична.
  • Онлайн-игры (шутеры): Если пакет с координатами вашего персонажа потерялся, нет смысла запрашивать его заново — за эти миллисекунды ситуация в игре уже изменилась, нужно слать новые координаты!
  • Видеосвязь (Zoom, Skype) и стриминг: Если при звонке потерялся пакет, у вас на долю секунды дернется картинка или «квакнет» звук. Это неприятно, но терпимо. Если бы видеосвязь работала по TCP, при малейшей потере пакета звонок бы ставился на паузу, ожидая, пока потерянный кадр скачается заново. Это было бы невыносимо.
  • DNS-запросы: Быстро спросил IP-адрес — быстро получил ответ.
Итог: Ваш запрос к Хабру (поскольку это веб-сайт) стучится в 443-й порт и использует надежный протокол TCP, чтобы ни одна запятая в этой статье не потерялась по пути на ваш экран.
6. Прикладной уровень
Итак, мы добрались до самой вершины. Прикладной уровень — это то, с чем вы и ваши программы взаимодействуете напрямую. Здесь живут HTTP (по которому грузятся сайты), протоколы почты и мессенджеров.
Но чтобы ваш браузер смог скачать мем с Хабра по HTTP, под капотом должны отработать три невидимых героя, без которых современный интернет просто рухнул бы в ту же секунду.
DNS: Телефонная книга интернета
Вспомните, как вы звоните друзьям или маме. Вы же не вводите каждый раз их 11-значный номер по памяти? Вы открываете контакты и тапаете по имени. Телефон сам подставляет нужные цифры.
Компьютеры работают точно так же. Им без разницы на красивые буквы habr.com, они умеют подключаться только к IP-адресам (вспоминаем Сетевой уровень). И чтобы превратить понятное человеку имя в машинный IP-адрес, существует DNS (Domain Name System).
Когда вы вбиваете адрес сайта и жмете Enter, ваш браузер сначала ставит загрузку на паузу и делает скрытый запрос к DNS-серверу:
Слушай, а какой IP-адрес у сайта habr.com?Секунду, ищу… Ага, вот он: 178.248.237.68.
Только получив эти цифры, браузер начинает формировать тот самый TCP-пакет, о котором мы говорили в прошлой главе. Без DNS нам пришлось бы сохранять в закладки бесконечные списки из цифр.
DHCP: Как ваш телефон получает IP в кафе
Еще одна магия, к которой мы привыкли: вы приходите в кофейню, подключаетесь к местному Wi-Fi, и интернет просто работает.
А ведь мы уже знаем, что для выхода в сеть устройству нужен IP-адрес, правильная маска подсети и IP-адрес роутера (шлюза). Кто всё это прописывает в ваш телефон, пока вы заказываете латте? Это делает DHCP (Dynamic Host Configuration Protocol).
Работает это как ресепшен в бизнес-центре:
  • Ваш телефон подключается к Wi-Fi и громко кричит на всю сеть (широковещательным запросом): “Эй, я новенький! Дайте мне IP-адрес!”.
  • В роутере кофейни сидит DHCP-сервер. Он слышит крик, смотрит в свой пул свободных адресов и отвечает: “Держи. Твой IP на ближайшие 2 часа будет 192.168.1.15, шлюз 192.168.1.1, а DNS-сервер — 8.8.8.8. Пользуйся”.
Телефон автоматически применяет эти настройки. Никакой ручной работы.
NAT: Главный костыль, который спас интернет
А теперь — гвоздь программы. В главе про IP-адреса мы выяснили, что адресов IPv4 всего 4.3 миллиарда, и они давно закончились. Только смартфонов в мире сейчас больше 6 миллиардов! Плюс умные часы, телевизоры, чайники и ноутбуки.
Как они все сидят в интернете, если адресов на всех физически не хватает?
Нас спас NAT (Network Address Translation) — гениальный костыль, встроенный в каждый домашний роутер. Суть в том, что все IP-адреса поделили на две категории: белые (публичные) и серые (локальные).
Серые адреса (например, всё, что начинается с 192.168... или 10...) не существуют в глобальном интернете. Они работают только внутри вашей квартиры, офиса или кофейни.
Как работает NAT на практике: Представьте офис, где работает 100 человек. У каждого на столе внутренний телефон (Серый IP). Но наружу, в город, торчит только один общий многоканальный номер компании (Белый IP).
  • Ваш компьютер (IP 192.168.1.5) хочет открыть Хабр. Пакет долетает до домашнего роутера.
  • Роутер понимает, что с адресом 192.168 в интернет соваться нельзя — пакет там просто уничтожат, потому что таких адресов в интернете миллионы.
  • Роутер делает фокус: он берет ваш пакет, стирает ваш внутренний IP-адрес и вписывает туда свой единственный белый IP-адрес, который ему выдал провайдер (допустим, 95.104.22.11).
  • В специальную табличку (NAT-таблицу) роутер записывает: “Запрос на Хабр с порта 443 я подменил для Васиного компа (192.168.1.5)”.
  • Сервер Хабра получает запрос. Он видит белый IP роутера 95.104.22.11 и отправляет ответ на него. Хабр даже не подозревает, что за этим адресом прячется целая квартира устройств.
  • Роутер получает ответ от Хабра, смотрит в свою шпаргалку: “Ага, это ответ на запрос Васи”, переписывает адрес обратно на 192.168.1.5 и отдает страницу вашему браузеру.
Именно благодаря NAT за одним публичным IP-адресом могут одновременно сидеть десятки, сотни и даже тысячи устройств, а интернет всё еще работает на старом добром протоколе IPv4.
7. Собираем всё вместе: Жизнь одного запроса
Хватит теории, давайте соберем этот пазл целиком. Что именно происходит за те 600 миллисекунд, пока вы моргаете, а на экране появляется текст этой статьи?
Представьте, что вы сидите дома, подключены к Wi-Fi и вбиваете в браузер habr.com. Вот пошаговый путь вашего запроса:
Шаг 1: «Где этот ваш Хабр?» (DNS) Браузер понимает, что habr.com — это буквы, а ему нужны цифры. Он делает быстрый запрос к DNS-серверу (обычно он прописан в настройках вашего роутера). DNS отвечает: «Я знаю Хабр, его IP-адрес — 178.248.237.68».
Шаг 2: «Он местный или приезжий?» (Маска подсети) Ваш компьютер смотрит на свой IP (192.168.1.5) и применяет маску подсети (255.255.255.0). Он видит, что адрес Хабра совершенно не похож на адреса в вашей домашней сети. Компьютер делает вывод: «Цель далеко в интернете. Сам я туда не достучусь, нужно отдавать пакет на таможню — моему роутеру (шлюзу по умолчанию)».
Шаг 3: «Эй, роутер, отзовись!» (ARP) Компьютер знает IP-адрес роутера (например, 192.168.1.1), но по Wi-Fi данные передаются физически, а значит, нужен MAC-адрес роутера. Компьютер шлет ARP-запрос: «У кого IP 192.168.1.1? Дай свой MAC!». Роутер отвечает своим физическим адресом.
Шаг 4: Упаковка матрешки (Инкапсуляция) Теперь у компьютера есть всё необходимое. Он берет запрос браузера “Дай страницу”, кладет его в коробку TCP (указывает порт 443 для надежной связи). Эту коробку кладет в посылку IP (указывает IP-адреса отправителя и Хабра). А посылку грузит в фуру — кадр Wi-Fi / Ethernet (пишет MAC-адрес роутера) и отправляет в эфир.
Шаг 5: Подмена номеров и полет через мир (NAT и BGP) Домашний роутер ловит кадр, срывает с него обертку MAC-адресов и смотрит на IP. Понимает, что пакет нужно выпустить в интернет. Перед этим роутер делает магию NAT: стирает ваш домашний серый IP-адрес (192.168.1.5) и вписывает свой белый публичный адрес.
Пакет вылетает в сеть провайдера. Дальше он прыгает от одного магистрального маршрутизатора к другому. Чтобы пакет не заблудился в тысячах кабелей по всему миру, гигантские провайдеры используют протокол BGP (Border Gateway Protocol). Это эдакий глобальный навигатор, который каждую секунду высчитывает кратчайший путь до серверов Хабра.
Шаг 6: Доставка и ответ (TCP) Пакет долетает до дата-центра и попадает на нужный сервер. Сервер распаковывает матрешку (декапсуляция): проверяет MAC, убеждается, что IP совпадает, видит порт 443 и отдает запрос веб-серверу.
Поскольку мы используем TCP, сервер сначала здоровается с вашим компьютером («тройное рукопожатие»), а затем начинает нарезать страницу со статьей на тысячи мелких пакетов и отправлять их обратно по тому же маршруту. Ваш браузер ловит их, склеивает, отрисовывает картинки, и…
Вы читаете этот текст. И всё это заняло меньше секунды. Никакой магии — только идеально выстроенная инженерия.
8. Базовый Troubleshooting: Что делать, когда «интернет не работает»
Рано или поздно это случается: вы всё настроили, но микросервис недоступен, сайт не грузится, а техподдержка провайдера просит «перезагрузить роутер». Вместо того чтобы паниковать, давайте использовать базовые инструменты сетевика.
Чтобы найти поломку, нужно двигаться по шагам.
ping: Сетевой эхолот (ICMP)
Самая популярная утилита в мире. ping не использует ни TCP, ни UDP, он работает на специальном диагностическом протоколе ICMP. По сути, это подводный эхолот. Ваш компьютер кричит: «Эй, ты жив?» и ждет ответа «Да, жив!».
  • Как использовать: Откройте консоль и введите ping 8.8.8.8 (это стабильные DNS-серверы Google).
  • Что это дает: Если ответы идут, значит, базовый интернет у вас есть, провода целы, роутер работает. Если после этого вы пишете ping habr.com, а в ответ получаете ошибку — поздравляю, у вас упал DNS (компьютер не может превратить имя в IP).
tracert / traceroute: Ищем, где оборвался кабель
Пинг показывает только конечный результат — жив сервер или мертв. Но между вами и Хабром могут быть десятки роутеров. Как понять, кто именно виноват: ваш домашний роутер, провайдер в вашем доме или магистральный узел где-то в Стокгольме?
  • Как использовать: tracert habr.com (для Windows) или traceroute habr.com (для Linux/macOS).
  • Что это дает: Утилита показывает IP-адрес каждого маршрутизатора на пути следования пакета и время отклика. Если список обрывается на первой же строчке (вашем роутере 192.168.1.1) — проблема у вас дома. Если на 3-4 строке — звоните провайдеру, проблема на его стороне.
telnet или Test-NetConnection: Стучимся в конкретную дверь
Частая ситуация у разработчиков: ping до сервера проходит идеально, но сайт или база данных всё равно не открывается. Вспоминаем транспортный уровень! ping проверяет только IP-адрес (здание), но он не проверяет порт (квартиру). Возможно, нужный порт просто закрыт файрволом, или само приложение на сервере зависло.
  • Как использовать: * В Linux или старой Windows: telnet habr.com 443 (Пытаемся открыть TCP-соединение по 443 порту).
  • В современной Windows (через PowerShell): Test-NetConnection -ComputerName habr.com -Port 443
  • Что это дает: Если порт открыт, вы увидите успешное соединение (TcpTestSucceeded : True в PowerShell или черный экран в telnet). Если нет — соединение отвалится по таймауту или сервер явно пришлет отказ. Значит, надо идти на сервер и проверять настройки брандмауэра или запущен ли сам сервис.
9. Заключение
Компьютерные сети — это строго логичная, невероятно красивая и продуманная система, где каждый уровень решает только свою узкую задачу и не лезет в чужие дела.
От мигания лазера в оптическом кабеле на дне океана до красивой картинки в вашем браузере — всё это работает благодаря универсальным правилам, придуманным десятилетия назад. И как только вы начинаете понимать эти правила, сеть перестает быть «черным ящиком» и становится мощным инструментом в ваших руках.
Куда копать дальше, если хочется большего?
Если эта статья разожгла в вас интерес и вы хотите спуститься на уровень глубже:
  • Курс Cisco CCNA. Даже если вы не собираетесь работать с оборудованием Cisco, их программа обучения — это мировой золотой стандарт для понимания базы маршрутизации и коммутации.
  • Виктор и Наталия Олифер, «Компьютерные сети». Классическая, очень подробная книга на русском языке. Идеально для вдумчивого чтения.
  • Эндрю Таненбаум, «Компьютерные сети». Хардкор. Для тех, кто хочет знать, как сети устроены на уровне байтов, математики и алгоритмов.
На этом всё! Надеюсь, теперь аббревиатуры TCP, NAT и MAC перестали казаться заклинаниями на латыни.
Анонсы новых статей, полезные материалы, а так же если в процессе у вас возникнут сложности, обсудить их или задать вопрос по этой статье можно в моём Telegram-сообществе. Смело заходите, если что-то пойдет не так, — постараемся разобраться вместе.-Источник
 
Loading...
Error