Как работают сети: IP, порты, TCP и UDP
Чтобы защищать или проверять системы, нужно понимать, как устроена сеть. Начнём с фундамента: IP-адреса, порты и протоколы.
Интернет — это огромная сеть из миллиардов устройств, которые умеют находить друг друга и обмениваться данными. Специалист по безопасности обязан понимать эти механизмы, потому что многие атаки и защиты строятся именно на уровне сети.
IP-адрес: адрес устройства
IP-адрес — это уникальный адрес устройства в сети, похожий на почтовый адрес дома. Чтобы данные дошли до нужного компьютера, у него должен быть адрес. Например, 192.168.1.10 — типичный адрес устройства в домашней сети (формат IPv4). Есть и более новый формат IPv6 — он длиннее и нужен, потому что адресов IPv4 на всех уже не хватает.
Различают локальные адреса (внутри домашней или офисной сети, например 192.168.x.x) и публичные (видимые в интернете).
Порты: двери в устройство
Если IP-адрес — это адрес дома, то порт — это конкретная дверь в этом доме. На одном устройстве может работать много сервисов, и каждый «слушает» свой порт. Несколько типичных портов:
| Порт | Сервис |
| 80 | HTTP (веб-сайты) |
| 443 | HTTPS (защищённые веб-сайты) |
| 22 | SSH (удалённый доступ к терминалу) |
| 53 | DNS (преобразование имён в адреса) |
Понимание портов важно, потому что «открытые двери» (доступные сервисы) — это первое, на что смотрят и защитники, и исследователи. Но помните: сканировать порты можно только на своих или разрешённых системах.
TCP и UDP: два способа передачи
Данные передаются по протоколам. Два самых главных — TCP и UDP.
- TCP — надёжный протокол «с подтверждением». Он устанавливает соединение и следит, чтобы все данные дошли в правильном порядке. Так работают сайты, почта, передача файлов. Аналогия — заказное письмо с уведомлением о вручении.
- UDP — быстрый протокол «без подтверждения». Он просто отправляет данные, не гарантируя доставку. Так работают видеозвонки и игры, где важнее скорость, чем идеальная точность. Аналогия — обычная открытка: быстро, но без гарантии.
Маленький практический пример
Давайте на безопасном Python-примере посмотрим, как из имени сайта можно «представить» структуру адреса. Этот код просто демонстрирует понятие — он ничего не сканирует и ничего не атакует.
services = {
80: "HTTP",
443: "HTTPS",
22: "SSH",
53: "DNS",
}
port = 443
if port in services:
print("Порт", port, "обычно используется для", services[port])
else:
print("Порт", port, "не из списка типовых")
print("Всего типовых сервисов в справочнике:", len(services))
Вывод:
Порт 443 обычно используется для HTTPS Всего типовых сервисов в справочнике: 4
Этот пример показывает идею «справочника портов», которым пользуются специалисты, чтобы понимать назначение сервисов. В следующих уроках мы укрепим фундамент: Linux, командная строка и веб.