Вернуться к главной странице, списку всех тем
2. Глобальная сеть интернет, правила передачи данных в этой сети
Сеть — это системы, которые позволяют разным устройствам обмениваться информацией между собой (кабеля между компами, Wi-Fi и сетевыми устройствами, которые обрабатывают и отправляют информацию нужным адресатам).
Без сетей было бы сложно представить современный мир. Они позволяют:
- Работать удалённо: сотрудники могут работать из дома, используя общие ресурсы компании.
- Обмениваться данными: можно быстро отправить файл коллеге или другу, даже если он находится за тысячи километров.
- Пользоваться интернет-сервисами: соцсети, онлайн-магазины, стриминговые сервисы — всё это работает благодаря сетям.
Когда два компьютера соединены кабелем или через Wi-Fi, они могут передавать данные друг другу. Если таких соединений много, то получается целая сеть. Например:
- В офисе все компьютеры сотрудников подключены к одной локальной сети, чтобы они могли делиться файлами, печатать документы на одном принтере и пользоваться общим интернетом.
- Интернет — это глобальная сеть, которая объединяет миллиарды устройств по всему миру (по сути, объединяет множество компьютеров вместе кабелями для обмена информацией).
Сетевые технологии — это всё те штуки, которые помогают этим устройствам общаться друг с другом. Вот несколько примеров:
- Wi-Fi: технология беспроводной передачи данных, которую мы используем дома или в кафе, чтобы подключить ноутбук или смартфон к интернету без проводов.
- Ethernet: проводная технология, когда устройства соединяются кабелями.
- Протоколы: правила, по которым передаются данные. Например, HTTP — протокол, который используется при просмотре веб-сайтов.
Представьте, что вы хотите передать сообщение своему другу по сети. Вы можете по-разному передавать данные: начинать с заглавной буквы, а заканчивать точкой или нет. Как другу понять, что это пишете именно вы и, например, что это файл или email? Получается, вам необходимо договариваться о том, каким образом передавать те или иные данные, чтобы и ты, и он понимали друг друга.
Примеры основных сетевых протоколов:
TCP/IP (Transmission Control Protocol/Internet Protocol) – это набор протоколов из 4-х уровней, которые обеспечивают передачу данных в интернете. TCP отвечает за надежность передачи данных, а IP – за адресацию, доставку от одного устройства к другому. Когда вы отправляете электронное письмо, оно передается через эти протоколы. Эта модель состоит из четырех уровней:
- Уровень приложений (Application Layer) – этот уровень отвечает за взаимодействие пользовательских программ с сетью. Примеры протоколов этого уровня:
- HTTP (HyperText Transfer Protocol) – приложение отправляет запрос на сервер, а сервер отвечает данными или сообщением об ошибке. Используется для загрузки веб-страниц и других ресурсов через браузер
- FTP (File Transfer Protocol) – протокол для передачи файлов
- SMTP (Simple Mail Transfer Protocol) – протокол для отправки электронной почты
- Транспортный уровень (Transport Layer) – на этом уровне обеспечивается надежность передачи данных между двумя серверами (их еще называют «хостами»). Основные протоколы:
- TCP (Transmission Control Protocol) – обеспечивает надежную передачу данных с контролем ошибок и управлением потоком. Примеры сервисов, где может использоваться данный протокол: соц. сети, при отправке сообщений или других действий мы отправляем запрос и получаем ответ от сервера, что запрос наш принят.
- UDP (User Datagram Protocol) – упрощенный протокол без контроля ошибок, используется там, где важна скорость передачи данных, а не надежность. Сетевой протокол, не требующий подтверждения, что сервер принял наш запрос. Данный сетевой протокол мы можем встретить в стриминговых сервисах (YouTube, RuTube, Twitch).
- Сетевой уровень (Internet Layer) – этот уровень отвечает за маршрутизацию пакетов (частичка информации, которая передается по сети, в нем есть информация, которую нужно передать, и адрес, куда ее доставить). Ключевой протокол:
- IP (Internet Protocol) – основной протокол, обеспечивающий адресацию (куда доставлять) и доставку пакетов от одного сервера к другому через кучу других сетевых устройств и серверов в сети
- Канальный уровень (Link Layer) – уровень отвечает за физическую передачу данных между устройствами, подключенными к одной сети. Он включает в себя:
- Ethernet – наиболее распространенный стандарт для локальных сетей
- Wi-Fi – беспроводной стандарт связи.
Наиболее распространенные коды ответа HTTP:
- 200 OK («хорошо»)
- 301 Moved Permanently («перемещено навсегда»)
- 307 Temporary Redirect («временное перенаправление»)
- 308 Permanent Redirect («постоянное перенаправление»)
- 400 Bad Request («неправильный, некорректный запрос»)
- 401 Unauthorized («не авторизован»)
- 403 Forbidden («запрещено (не уполномочен)»)
- 404 Not Found («не найдено»)
- 405 Method Not Allowed («метод не поддерживается»)
- 418 I’m a teapot («я — чайник») - шуточный код, им обычно “посылают” куда подальше
- 429 Too Many Requests («слишком много запросов»)
- 499 Client Closed Request (клиент закрыл соединение)
- 500 Internal Server Error («внутренняя ошибка сервера»)
- 502 Bad Gateway («плохой, ошибочный шлюз»)
- 503 Service Unavailable («сервис недоступен»)
- 504 Gateway Timeout («шлюз не отвечает»)
Допустим, вы хотите открыть сайт github.com в браузере:
- Браузер отправляет HTTP-запрос на сервер через приложение.
- Запрос передается через транспортный уровень с использованием протокола TCP.
- На сетевом уровне данные упаковываются в IP-пакеты и отправляются по маршруту до сервера.
- На канальном уровне пакеты передаются через физическое соединение (например, Ethernet).
DNS (Domain Name System) — это система доменных имен, которая переводит удобные для людей имена сайтов (например, example.com) в IP-адреса, понятные компьютерам (например, 192.0.2.123). Когда вы вводите адрес сайта в браузер, ваш компьютер обращается к DNS-серверу (серверу, на котором установлено приложение, которое отвечает на запросы DNS), чтобы узнать соответствующий IP-адрес, после чего происходит подключение к нужному сайту.
SSH нужен для безопасного удалённого доступа к серверам в сети и управления ими (через протокол TCP). Он защищает передаваемые данные от перехвата и несанкционированного доступа благодаря шифрованию с помощью ключей (ключи — это текстовые файлы). В SSH используются два типа ключей:
- Открытый ключ: Для вас кто-то копирует этот ключ на все сервера, которыми вы хотите управлять, и он будет использоваться для проверки того, что вы — это вы. Его можно свободно распространять.
- Закрытый ключ: Этот ключ остаётся у вас и используется для подтверждения вашей личности при соединении с сервером. Закрытый ключ нужно хранить в безопасности, поскольку он служит доказательством того, что именно вы пытаетесь установить соединение.
TLS (Transport Layer Security) – протокол, шифрует данные при передаче через интернет, чтобы предотвратить её перехват и изменение злоумышленниками. Когда вы видите значок замка рядом с адресом сайта, это значит, что соединение защищено TLS и в этом случае ваши HTTP-запросы к сайту (сайт тоже приложение, которое запущено или еще как говорят «развернуто» на каком-то сервере и умеет отвечать на HTTP-запросы) защищены.
Вопросы
1. Что такое сетевой пакет?
- Ответ: Сетевой пакет — это единый блок данных, который передаётся по сети. Он состоит из заголовка (мета-информация: откуда, куда, какой протокол) и полезной нагрузки (сама часть веб-страницы, фрагмент видео и т. д.).
- Пояснение: Пакет — это «конверт» с письмом: снаружи адрес и марка, внутри само письмо. Маршрутизаторы читают только адрес и направляют конверт дальше.
2. Что такое IP-адрес? Зачем он нужен?
- Ответ: IP-адрес (Internet Protocol Address) — это уникальный “номер дома” устройства в сети. Как у каждого дома есть почтовый адрес, так и у каждого компьютера, телефона, сервера в Интернете или локальной сети есть IP-адрес, чтобы другие устройства знали, куда отправлять данные.
- Пояснение: Бывают двух основных типов:
- IPv4: Выглядит как
192.168.1.1
(4 числа от 0 до 255). Их почти закончилось. - IPv6: Выглядит как
2001:0db8:85a3:0000:0000:8a2e:0370:7334
. Их ОЧЕНЬ много, это будущее.
- IPv4: Выглядит как
3. Что такое сетевой порт?
- Ответ: Сетевой порт — это “номер квартиры” в вашем “доме” (IP-адресе). Это число (от 1 до 65535), которое указывает, какой конкретной программе или сервису на устройстве предназначены входящие данные. Один IP-адрес может одновременно обслуживать много разных сервисов (веб, почта, игры) благодаря разным портам.
- Пояснение: В ваш дом (IP) приходит почта. Номер квартиры (порт) на конверте говорит почтальону, в какую именно квартиру (программу) отнести письмо (данные). Веб-сервер обычно “живет” в квартире 80 (HTTP) или 443 (HTTPS).
4. Какие популярные порты ты знаешь и для чего они используются?
- Ответ:
- 80 — HTTP (обычные веб-сайты).
- 443 — HTTPS (защищённые веб-сайты).
- 22 — SSH (удалённый доступ к серверу).
- 25 / 587 — SMTP (исходящая почта).
- 53 — DNS (преобразование имён в IP).
- Пояснение: Порты — это «двери» на сервере; зная номер, клиент «стучится» именно туда, где ждёт нужный сервис.
5. Что такое SSH и как он примерно работает?
- Ответ: SSH (Secure Shell) — это криптографированный протокол для безопасного удалённого управления компьютером или сервером по сети. Клиент и сервер устанавливают защищённый канал, проходят аутентификацию (пароль или ключ) и дальше вся работа (терминал, передача файлов) идёт внутри этого туннеля.
- Пояснение: Представьте защищённый телефонный аппарат в банке: вы набираете код (ключ), голос шифруется, и вы спокойно управляете удалённым компьютером.
6. Что такое TCP/IP стек?
- Ответ: TCP/IP стек — это набор сетевых протоколов, разбитых на 4 (иногда 5) уровней:
- Сетевой доступ (Wi-Fi, Ethernet)
- Сетевой (IP)
- Транспортный (TCP/UDP)
- Прикладной (HTTP, SSH, DNS)
Он задаёт стандартные правила, как данные упаковывать, адресовать, передавать и принимать между устройствами.
- Пояснение: Это «дорожная карта» пакета: на каждом слое добавляется свой «конверт»-заголовок, чтобы письмо дошло без ошибок.
7. В чем разница между TCP и UDP и ICMP? Когда что использовать?
- Ответ: Это два основных способа доставки данных по сети:
- TCP (Transmission Control Protocol): Как заказное письмо с уведомлением. Надежный! Гарантирует, что все данные придут целыми, в правильном порядке и без ошибок. Устанавливает “соединение” перед отправкой. Используется: Веб-страницы (HTTP/HTTPS), почта (SMTP, IMAP), передача файлов (FTP), удаленный доступ (SSH).
- UDP (User Datagram Protocol): Как обычная открытка. Быстрый, но ненадежный. Отправляет данные без установки соединения и гарантий доставки, порядка или целостности. Если открытка потерялась — отправитель не узнает. Используется: Видео/аудио звонки (VoIP), онлайн-игры, стриминг, DNS-запросы, где скорость важнее 100% точности каждого бита.
- ICMP (Internet Control Message Protocol) — вспомогательный протокол сетевого уровня. Он не передаёт полезные данные, а служит для проверки доступности узла и диагностики сети.
- Пояснение: TCP — для важных документов, где ошибка критична. UDP — для разговора по телефону, где потеря пары слов не страшна, но задержка (лаг) очень заметна и раздражает.
8. Какие бывают HTTP-методы, заголовки и коды ответа?
- Ответ:
- Методы: GET (получить), POST (создать), PUT/PATCH (обновить), DELETE (удалить), HEAD и др.
- Заголовки:
Content-Type
(тип данных),Authorization
(ключ/токен),User-Agent
(какой браузер),Cookie
и др. - Коды ответа:
- 2xx — успешно (200 OK, 201 Created)
- 3xx — перенаправление (301 Moved, 304 Not Modified)
- 4xx — ошибка клиента (404 Not Found, 401 Unauthorized)
- 5xx — ошибка сервера (500 Internal Server Error)
- Пояснение: Метод — «что хотим сделать», заголовки — «какие уточнения», код — «получилось или нет».
9. Что такое DNS и как он работает?
- Ответ: DNS (Domain Name System) — это система, превращающая имена сайтов (домены) в IP-адреса. Когда вы вводите
youtube.com
в браузере:- Браузер спрашивает DNS-резолвер (обычно у вашего провайдера или в настройках): “Какой IP у youtube.com?”
- Если резолвер не знает, он спрашивает корневые DNS-серверы (знают, кто отвечает за
.com
). - Корневые серверы направляют к серверам домена
.com
. - Серверы
.com
направляют к DNS-серверам самого youtube.com. - Серверы youtube.com говорят: “IP этого сайта
142.250.185.206
”. - Резолвер запоминает ответ (кеширует) и передает IP браузеру.
- Браузер соединяется с IP
142.250.185.206
по порту 443 (HTTPS).
- Пояснение: Как гигантская распределенная телефонная книга Интернета. Вы спрашиваете имя, система находит номер (IP).
10. Что такое DHCP?
- Ответ: DHCP (Dynamic Host Configuration Protocol) — это протокол, который автоматически выдаёт устройству IP-адрес и другие сетевые настройки (маску, шлюз, DNS) при подключении к сети.
- Пояснение: Как автоматический администратор: вы подключаетесь к Wi-Fi, и роутер сразу говорит «ваш адрес 192.168.1.42, DNS — 8.8.8.8».
11. Что такое MAC-адрес?
- Ответ: MAC-адрес (Media Access Control) — это железный уникальный номер сетевой карты, вшитый заводом (например,
00:1A:2B:3C:4D:5E
). Используется на канальном уровне для доставки пакетов в пределах локальной сети. - Пояснение: MAC — это «фамилия устройства» внутри дома; роутеры и коммутаторы по ней решают, кому отдать пакет в локальной сети.
12. Что такое HTTP и HTTPS? В чем ключевая разница?
- Ответ:
- HTTP (HyperText Transfer Protocol): Основной язык общения между вашим браузером (клиентом) и веб-сервером. Отправляет данные в открытом виде (не шифрует). Как открытка – все прочитают.
- HTTPS (HTTP Secure): Это HTTP + защита (шифрование) с помощью TLS/SSL. Шифрует ВСЕ данные между браузером и сервером. Как запечатанный конверт – прочитать могут только отправитель и получатель.
- Пояснение: HTTP = говорить секреты по телефону в общественном месте (риск, что подслушают). HTTPS = говорить секреты по защищенной линии (подслушать невозможно). Всегда используйте HTTPS, особенно для логинов, паролей, платежей! 🔒
13. Что такое Веб-сервер (например, Nginx, Apache)?
- Ответ: Веб-сервер — это программа, которая “живет” на компьютере (сервере) с постоянным подключением к Интернету. Ее главная задача — хранить файлы сайта (HTML, CSS, JS, картинки) и отдавать их вашему браузеру, когда вы запрашиваете страницу (по HTTP/HTTPS). Nginx и Apache — самые популярные примеры.
- Пояснение: Представьте библиотекаря (веб-сервер). Вы (браузер) приходите в библиотеку (сервер) и говорите: “Дайте мне книгу
index.html
” (запрашиваете страницу). Библиотекарь находит книгу на полке (диске сервера) и дает ее вам. - Подвопрос: Какие виды балансировки нагрузки поддерживает Nginx?
- Round Robin, Least Connections, IP-hash, Weighted Round Robin — самые популярные.
14. Что такое Браузер (Chrome, Firefox, Safari)?
- Ответ: Браузер — это программа на вашем устройстве (ПК, телефон), которая умеет “разговаривать” по HTTP/HTTPS, запрашивать у веб-серверов файлы страниц (HTML, CSS, JavaScript, картинки), интерпретировать их и отображать вам красивые, интерактивные веб-страницы.
- Пояснение: Переводчик и художник в одном лице. Получает “инструкции” (HTML, CSS) и “логику” (JS) от сервера и рисует на вашем экране понятную вам страницу.
15. Что такое Клиент и Сервер?
- Ответ: Это две основные роли в сетевом общении:
- Клиент: Устройство или программа, которая запрашивает услугу или данные. Инициирует соединение. Примеры: Ваш браузер, почтовый клиент (Outlook), игра на вашем ПК.
- Сервер: Устройство или программа, которая предоставляет услугу или данные. Ожидает запросов от клиентов и отвечает на них. Примеры: Веб-сервер (отдает сайты), почтовый сервер (хранит и передает письма), игровой сервер (обеспечивает мультиплеер).
- Пояснение: Клиент — это гость в ресторане (вы). Сервер — это официант и кухня (ресторан). Гость (клиент) делает заказ (запрос). Официант/кухня (сервер) выполняют заказ (обрабатывают запрос) и приносят блюдо (данные/услугу).
16. Что такое “Облако” (Cloud Computing)?
- Ответ: “Облако” — это модель предоставления вычислительных ресурсов (серверы, хранилища, базы данных, сети, ПО) через Интернет по запросу, обычно с оплатой по факту использования. Вместо того чтобы покупать и обслуживать свои серверы, компании арендуют мощности у гигантских провайдеров (AWS, Azure, Google Cloud).
- Пояснение: Раньше для электричества каждая фабрика строила свою электростанцию. Теперь фабрики просто подключаются к общей электросети и платят за использованные киловатты. “Облако” — это “электросеть” для вычислительных мощностей.
17. Что такое API (Application Programming Interface)?
- Ответ: API — это набор правил и инструментов, который позволяет одной программе взаимодействовать с другой. Это как “контракт” или “язык общения” между разными программами. Одна программа (клиент) может запросить данные или выполнить действие у другой программы (сервер) через ее API.
- Пояснение: Представьте ресторан. Меню (API) — это список блюд (функций/данных), которые вы можете заказать, и описание, как это сделать. Вы (клиент-программа) делаете заказ (отправляете запрос по API). Кухня (сервер-программа) готовит блюдо (обрабатывает запрос) и официант приносит его вам (возвращает ответ). API скрывает сложность кухни (внутреннее устройство сервера) от клиента.
18. Что такое Фронтенд (Frontend) и Бэкенд (Backend)?
- Ответ: Фронтенд — это все, что пользователь видит и с чем взаимодействует в браузере (или в мобильном приложении). Это внешняя часть сайта или приложения. Создается с помощью:
- HTML: Скелет страницы (заголовки, абзацы, кнопки).
- CSS: Стили (цвета, шрифты, расположение элементов).
- JavaScript: Интерактивность (анимации, реакции на клики, загрузка данных без перезагрузки страницы).
- Пояснение: Витрина магазина и кассир. Все, что вы видите (товары, ценники, вывески) и как вы взаимодействуете (выбираете товар, платите) — это фронтенд.
- Ответ: Бэкенд — это “мозги” сайта или приложения, которые работают на сервере и не видны пользователю. Он обрабатывает логику, работает с базами данных, обеспечивает безопасность, взаимодействует с другими сервисами через API.
- Пояснение: Склад, бухгалтерия и логистика магазина. Когда вы нажимаете “Купить” (фронтенд), бэкенд проверяет наличие товара на складе (БД), списывает деньги с вашей карты (внешний платежный API), формирует заказ менеджеру склада (внутренняя логика) и сообщает фронтенду показать “Спасибо за покупку!”.
19. Что такое VPN? Зачем он нужен? Чем отличается от proxy?
- Ответ: VPN (Virtual Private Network) — это технология, создающая защищенный “туннель” между вашим устройством и сервером VPN-провайдера в Интернете. Весь ваш интернет-трафик идет через этот туннель в зашифрованном виде. Зачем:
- Безопасность в публичных сетях: Защищает от перехвата данных в кафе/аэропорту.
- Конфиденциальность: Ваш реальный IP-адрес и местоположение скрываются от сайтов. Они видят IP VPN-сервера.
- Доступ к заблокированным ресурсам: Можно обойти географические или корпоративные блокировки (если VPN-сервер в другой стране).
- Пояснение: Представьте секретный подземный туннель из вашего дома (устройства) прямо в здание (VPN-сервер) в другой стране. Весь ваш трафик идет по этому туннелю. Снаружи никто не видит, что внутри (шифрование), и вы выходите в интернет из здания в другой стране (смена IP).
20. Что такое Брандмауэр (Firewall)?
- Ответ: Брандмауэр — это программа или устройство (стена безопасности), которое контролирует входящий и исходящий сетевой трафик на основе заданных правил. Его цель — блокировать нежелательные или опасные подключения (например, хакерские атаки), разрешая только легитимный трафик.
- Пояснение: Как охрана на проходной. Он проверяет каждого, кто хочет войти (входящий трафик) или выйти (исходящий трафик) из вашей сети/компьютера. Если у человека (пакета) нет пропуска (не соответствует правилам), охрана его не пропускает.
Практическая часть
- ping + tcpdump: поймать живой пакет
Выполнить:ping -c1 8.8.8.8 | sudo tcpdump -nn -c1 -X icmp
Получим: байт-дамп одного ICMP-пакета, где видно IP-заголовок (0x4500…) и ICMP-полезную нагрузку.
- ip addr + ip link: узнать свой IP и MAC
Выполнить:ip addr show ip link show
Получим: список интерфейсов, их IPv4/IPv6-адреса и MAC-адреса.
- ss -tulpn: увидеть открытые порты
Выполнить:ss -tulpn
Получим: таблицу «порт → PID/имя процесса», например 53/systemd-resolved.
-
nc TCP vs UDP: ощутить разницу
Выполнить:
Терминал-1:nc -l 12345
Терминал-2:echo "привет TCP" | nc localhost 12345
Повторить для UDP:
Терминал-1:nc -u -l 12346
Терминал-2:echo "привет UDP" | nc -u localhost 12346
Получим: TCP требует установки соединения, UDP — нет. - ручной HTTP-запрос без браузера
Выполнить:curl -v https://vk.com
Получим: полный ответ сервера со строкой
HTTP/1.1 200 OK
, заголовками и телом страницы, verbose-вывод TLS handshake, код ответа 418 и зашифрованное соединение. - dig: преобразовать имя в IP
Выполнить:dig ya.ru A dig ya.ru AAAA
Получим: секции ANSWER с IPv4- и IPv6-адресами и TTL.
- journalctl | grep DHCP: посмотреть, как получили адрес
Выполнить:journalctl -u NetworkManager --since "2 minutes ago" | grep -i dhcp
Получим: строки
DHCPACK
, IP-адрес, маску, шлюз, DNS. - ufw: включить-выключить правило
Выполнить:sudo ufw allow 12345/tcp sudo ufw status sudo ufw delete allow 12345/tcp
Получим: список активных правил, потом его изменение.