Основы компьютерных сетей

Этот курс предоставляет фундаментальные знания о принципах работы современных компьютерных сетей, охватывая архитектуру, протоколы и безопасность. Вы изучите модели OSI и TCP/IP, разберетесь в IP-адресации и узнаете, как данные передаются от устройства к устройству.

1. Введение в сетевые технологии: архитектура и модели OSI и TCP/IP

Введение в сетевые технологии: архитектура и модели OSI и TCP/IP

Добро пожаловать в курс «Основы компьютерных сетей». Мы начинаем наше путешествие с фундаментальных понятий, которые лежат в основе всего интернета и локальных сетей. Представьте себе мир, где каждый производитель компьютеров говорит на своем собственном языке, и устройство от Apple не может передать файл устройству на Windows. Именно так выглядел бы цифровой мир без сетевых стандартов и моделей, которые мы разберем в этой статье.

Что такое компьютерная сеть?

В самом простом понимании, компьютерная сеть — это два или более компьютеров, соединенных между собой для обмена данными и совместного использования ресурсов (например, принтеров или доступа в интернет).

Чтобы этот обмен состоялся, необходимы три ключевых элемента:

  • Отправитель и получатель (устройства, генерирующие и потребляющие данные).
  • Среда передачи (кабели, радиоволны Wi-Fi, оптоволокно).
  • Протокол (набор правил, определяющих, как происходит общение).
  • !Простая схема взаимодействия клиента и сервера через сетевое оборудование.

    Проблема коммуникации

    Представьте, что вы отправляете бумажное письмо другу в другую страну. Чтобы письмо дошло, вы должны соблюдать стандарты: написать адрес в определенном месте, наклеить марку, использовать конверт стандартного размера. Если вы напишете адрес на обратной стороне или используете невидимые чернила, письмо не дойдет.

    В компьютерных сетях роль таких правил играют сетевые модели. Самыми важными из них являются модель OSI (теоретический эталон) и модель TCP/IP (практический стандарт интернета).

    Модель OSI: Эталонная модель взаимодействия

    В конце 1970-х годов Международная организация по стандартизации (ISO) разработала модель OSI (Open Systems Interconnection — взаимодействие открытых систем). Это концептуальная схема, которая разбивает процесс сетевой коммуникации на 7 уровней.

    Зачем разбивать на уровни? Это позволяет инженерам фокусироваться на конкретной задаче. Разработчик браузера (программное обеспечение) не должен думать о том, какое напряжение тока подается в сетевой кабель. Этим занимаются разные уровни.

    !Визуализация семиуровневой модели OSI.

    Давайте разберем их «сверху вниз» — от пользователя к проводам.

    Уровень 7: Прикладной (Application Layer)

    Это уровень, с которым взаимодействует пользователь. Когда вы открываете браузер или отправляете email, работают протоколы этого уровня (HTTP, SMTP, FTP).

    Уровень 6: Представления (Presentation Layer)

    Отвечает за перевод данных в формат, понятный прикладному уровню. Здесь происходит кодирование, сжатие и шифрование данных (например, превращение картинки в набор битов и обратно).

    Уровень 5: Сеансовый (Session Layer)

    Управляет созданием, поддержанием и завершением сеансов связи между приложениями. Он следит за тем, чтобы диалог не прерывался.

    Уровень 4: Транспортный (Transport Layer)

    Один из самых важных уровней. Он гарантирует доставку данных. Здесь данные разбиваются на сегменты. Основные протоколы: * TCP (Transmission Control Protocol) — надежная доставка (с подтверждением получения). * UDP (User Datagram Protocol) — быстрая доставка без гарантий (для видео и игр).

    Уровень 3: Сетевой (Network Layer)

    Отвечает за маршрутизацию — выбор лучшего пути для данных через глобальную сеть. Здесь работают IP-адреса и маршрутизаторы. Единица данных на этом уровне называется пакет.

    Уровень 2: Канальный (Data Link Layer)

    Обеспечивает передачу данных между устройствами в одной локальной сети. Здесь используются MAC-адреса (физические адреса устройств). Единица данных — кадр (frame).

    Уровень 1: Физический (Physical Layer)

    Самый нижний уровень. Это «железо»: кабели, разъемы, радиоволны. Здесь данные существуют в виде битов (0 и 1), которые передаются с помощью электрических или световых сигналов.

    Если мы говорим о физике передачи, важно понимать, что скорость передачи данных ограничена физическими законами. Время передачи пакета можно выразить формулой:

    где — задержка передачи (время, необходимое для отправки всех битов пакета в канал), — длина пакета в битах, а — пропускная способность канала в битах в секунду (bps).

    Инкапсуляция данных

    Как данные проходят через эти уровни? Процесс называется инкапсуляцией. Представьте, что вы упаковываете подарок в несколько коробок, одну в другую.

  • Данные создаются на Прикладном уровне.
  • Спускаясь вниз, каждый уровень добавляет к данным свой заголовок (служебную информацию).
  • На Физическом уровне этот «бутерброд» превращается в поток битов и уходит по кабелю.
  • На стороне получателя происходит обратный процесс — декапсуляция (снятие оберток).
  • Модель TCP/IP: Реальность интернета

    Если OSI — это красивая теория, то TCP/IP — это рабочая лошадка современного интернета. Она была разработана Министерством обороны США и является более простой. В ней всего 4 уровня, которые поглощают функции 7 уровней OSI.

    Сравнение моделей

    | Уровень OSI | Уровень TCP/IP | Описание TCP/IP | | :--- | :--- | :--- | | 7. Прикладной | Прикладной | Объединяет функции уровней 5, 6 и 7 модели OSI. Включает протоколы HTTP, DNS, SSH. | | 6. Представления | ^ | | | 5. Сеансовый | ^ | | | 4. Транспортный | Транспортный | Аналогичен транспортному уровню OSI (TCP, UDP). | | 3. Сетевой | Интернет (Межсетевой) | Основной протокол — IP. Отвечает за адресацию и маршрутизацию. | | 2. Канальный | Сетевого доступа | Объединяет физический и канальный уровни OSI. Отвечает за физическую передачу данных. | | 1. Физический | ^ | |

    > «Мы отвергаем: царей, президентов и голосование. Мы верим в: грубый консенсус и работающий код». — Дэвид Кларк, один из отцов интернета, о философии разработки стандартов IETF.

    Почему это важно знать?

    Понимание этих моделей критически важно для диагностики проблем (troubleshooting). Если у вас нет интернета, сетевой инженер мыслит уровнями:

  • Горит ли лампочка на порту? (Физический уровень).
  • Видит ли компьютер MAC-адрес шлюза? (Канальный уровень).
  • Правильный ли IP-адрес? (Сетевой уровень).
  • Не блокирует ли брандмауэр порт 80? (Транспортный уровень).
  • В следующих статьях мы подробно разберем каждый из этих уровней, начиная с самого низа — физической среды передачи данных.

    Резюме

    * Компьютерная сеть — это система связанных устройств. * Модель OSI состоит из 7 уровней и служит теоретическим эталоном. * Модель TCP/IP состоит из 4 уровней и используется на практике в интернете. * Инкапсуляция — это процесс добавления служебной информации к данным при прохождении через уровни модели.

    2. Физический и канальный уровни: среды передачи данных и технологии Ethernet

    Физический и канальный уровни: среды передачи данных и технологии Ethernet

    В предыдущей статье мы рассмотрели глобальную карту сетевого взаимодействия — модели OSI и TCP/IP. Теперь пришло время спуститься с небес на землю и посмотреть, как именно биты и байты путешествуют между устройствами. Мы разберем фундамент любой сети: Физический уровень (Layer 1) и Канальный уровень (Layer 2).

    Без понимания этих уровней невозможно разобраться, почему Wi-Fi работает медленнее через стену, зачем нужны MAC-адреса и чем дешевый «хаб» отличается от современного коммутатора.

    Физический уровень (Physical Layer): Мир сигналов

    Физический уровень — это «железо» сети. Его задача проста и сложна одновременно: передать поток битов (нулей и единиц) от одного устройства к другому. Здесь нет понятий «адрес», «пакет» или «файл». Здесь есть только электрические импульсы, вспышки света или радиоволны.

    Среды передачи данных

    Среда передачи — это физический путь, по которому движется сигнал. Существует три основных типа сред:

  • Медный кабель (электрические сигналы).
  • Оптоволокно (световые импульсы).
  • Беспроводная среда (радиоволны).
  • #### Витая пара (Twisted Pair)

    Самый распространенный тип кабеля в локальных сетях (LAN). Если вы посмотрите на обычный сетевой кабель (патч-корд), внутри вы увидите 8 медных проводков, скрученных попарно.

    Зачем их скручивают? Когда электрический ток течет по проводу, он создает магнитное поле, которое может наводить помехи на соседние провода (это называется перекрестные помехи). Скручивание проводов позволяет взаимно компенсировать эти наводки.

    !Структура кабеля витая пара (UTP) и коннектор RJ-45.

    Существуют разные категории кабелей, определяющие их пропускную способность: * Cat 5e: Скорость до 1 Гбит/с (самый популярный стандарт). * Cat 6 / 6a: Скорость до 10 Гбит/с (лучшая защита от помех).

    #### Оптоволокно (Fiber Optic)

    Оптоволокно передает данные с помощью света. Это тончайшая стеклянная или пластиковая нить, по которой летит фотон. Главные преимущества оптоволокна: * Дальность: сигнал может идти на десятки километров без затухания. * Невосприимчивость к помехам: свету безразличны электромагнитные поля от силовых кабелей или грозы.

    Физика процесса основана на полном внутреннем отражении. Чтобы понять скорость света в среде, можно использовать формулу показателя преломления:

    где — показатель преломления среды (безразмерная величина), — скорость света в вакууме (примерно 300 000 км/с), а — скорость света в данном веществе.

    Сигналы и кодирование

    Компьютер «думает» цифрами (0 и 1), но кабель передает аналоговые сигналы (волны). Чтобы передать данные, сетевая карта должна закодировать биты в изменения напряжения или света. Например, высокое напряжение (+5В) может означать «1», а низкое (0В) — «0».

    Канальный уровень (Data Link Layer): Порядок в хаосе

    Если физический уровень просто «выплевывает» биты в трубу, то канальный уровень (Layer 2) отвечает за то, чтобы эти биты были поняты соседом. Он организует поток битов в логические блоки, называемые кадрами (frames).

    Основные задачи канального уровня:

  • Физическая адресация (MAC-адреса).
  • Обнаружение ошибок (проверка целостности).
  • Управление доступом к среде (кто говорит первым?).
  • MAC-адрес: Паспорт устройства

    Каждое сетевое устройство (сетевая карта компьютера, Wi-Fi модуль смартфона) имеет уникальный идентификатор, «выжженный» на заводе. Это MAC-адрес (Media Access Control).

    Он состоит из 48 бит, которые обычно записываются в виде 6 пар шестнадцатеричных чисел, разделенных двоеточием или дефисом. Например: 00:1A:2B:3C:4D:5E.

    Структура MAC-адреса: * Первые 24 бита (OUI): Идентификатор производителя (выдается организацией IEEE). По ним можно узнать, кто сделал устройство (Apple, Cisco, Intel). * Последние 24 бита: Уникальный номер конкретной карты, присвоенный производителем.

    !Структура 48-битного MAC-адреса.

    > «MAC-адрес — это как отпечаток пальца: он уникален для устройства и (обычно) не меняется, куда бы вы ни поехали. IP-адрес — это как ваш текущий почтовый адрес, который меняется при переезде».

    Технология Ethernet

    Ethernet — это доминирующая технология канального уровня для проводных сетей. Она описывает, как формируются кадры и как устройства делят общий кабель.

    Структура кадра Ethernet

    Представьте кадр как конверт, в который упакован IP-пакет. Вот что написано на этом конверте:

    | Поле | Размер (байт) | Описание | | :--- | :--- | :--- | | Преамбула | 7 | Набор чередующихся 1 и 0 для синхронизации часов получателя. | | SFD | 1 | Начальный ограничитель кадра (сигнал «Внимание, начало!»). | | Destination MAC | 6 | Адрес получателя. | | Source MAC | 6 | Адрес отправителя. | | EtherType | 2 | Указывает, какой протокол лежит внутри (обычно IPv4 или IPv6). | | Данные (Payload) | 46-1500 | Сама полезная информация (пакет сетевого уровня). | | FCS | 4 | Контрольная сумма для проверки ошибок. |

    FCS (Frame Check Sequence) работает просто: отправитель считает математическую сумму всех байтов кадра и пишет результат в конце. Получатель делает то же самое. Если суммы не совпали — значит, при передаче произошла ошибка (помеха), и кадр выбрасывается.

    CSMA/CD: Правила вежливости

    В ранних версиях Ethernet все компьютеры сидели на одном общем кабеле (коаксиальном). Если два компьютера начинали передавать данные одновременно, сигналы накладывались друг на друга и разрушались. Это называется коллизия.

    Для борьбы с этим был придуман алгоритм CSMA/CD (Carrier Sense Multiple Access with Collision Detection — Множественный доступ с контролем несущей и обнаружением коллизий).

    Его логику можно описать простым языком:

  • Слушай (Carrier Sense): Перед тем как говорить, послушай, свободен ли кабель.
  • Говори (Multiple Access): Если тихо — начинай передавать.
  • Проверяй (Collision Detection): Если во время передачи ты услышал «шум» (другой тоже начал говорить), немедленно замолчи.
  • Жди: Подожди случайное время и попробуй снова.
  • Сегодня, благодаря коммутаторам, коллизии практически исчезли, но принцип остается в основе стандарта.

    Сетевое оборудование: Хаб против Коммутатора

    На физическом и канальном уровнях работают разные устройства. Понимание разницы между ними — классический вопрос на собеседованиях.

    Концентратор (Hub) — Уровень 1

    Хаб — это простое устройство, «глупый» повторитель. Когда он получает сигнал на один порт, он просто копирует его и отправляет на все остальные порты. * Минусы: Все компьютеры получают данные, даже если они предназначались не им. Это небезопасно и создает много лишнего трафика (коллизий).

    Коммутатор (Switch) — Уровень 2

    Коммутатор — это «умное» устройство. У него есть таблица MAC-адресов. Когда он получает кадр, он смотрит на адрес получателя и отправляет данные только на тот порт, где находится этот получатель. * Плюсы: Высокая безопасность и производительность. Каждая пара портов может общаться на полной скорости независимо от других.

    !Разница в передаче данных через Hub и Switch.

    Резюме

    * Физический уровень отвечает за передачу битов через медь, оптику или воздух. * Канальный уровень группирует биты в кадры и управляет доступом к среде. * MAC-адрес — это уникальный 48-битный физический адрес устройства. * Ethernet — основной стандарт проводных сетей, использующий кадры для инкапсуляции данных. * Коммутаторы работают эффективнее хабов, так как отправляют данные адресно, используя MAC-адреса.

    В следующей статье мы поднимемся на уровень выше и разберем Сетевой уровень, где правит бал протокол IP и происходит магия маршрутизации через весь интернет.

    3. Сетевой уровень: IP-адресация, маски подсетей и основы маршрутизации

    Сетевой уровень: IP-адресация, маски подсетей и основы маршрутизации

    Мы продолжаем наше погружение в мир компьютерных сетей. В предыдущих статьях мы разобрали, как данные передаются по проводам (Физический уровень) и как устройства находят друг друга в пределах одной комнаты или офиса с помощью MAC-адресов (Канальный уровень).

    Но что делать, если вам нужно отправить сообщение другу в другой город или на другой континент? MAC-адреса здесь бессильны, так как они не имеют иерархии (по MAC-адресу нельзя понять, в какой стране находится устройство). Здесь на сцену выходит Сетевой уровень (Network Layer) и его главный герой — протокол IP (Internet Protocol).

    Зачем нужен Сетевой уровень?

    Представьте, что MAC-адрес — это паспортные данные человека. Они уникальны, но по ним сложно найти, где человек сейчас находится. IP-адрес — это почтовый адрес (Страна, Город, Улица, Дом). Он логичен, иерархичен и позволяет почтальону (маршрутизатору) знать, куда нести письмо.

    Главные задачи сетевого уровня:

  • Логическая адресация: Присвоение уникальных IP-адресов.
  • Маршрутизация: Определение лучшего пути для пакета через составную сеть.
  • Протокол IPv4: Основа интернета

    На данный момент самой распространенной версией протокола является IPv4 (Internet Protocol version 4). Несмотря на внедрение новой версии IPv6, четвертая версия все еще держит на себе большую часть мирового трафика.

    Структура IP-адреса

    IP-адрес версии 4 представляет собой 32-битное число. Для удобства восприятия мы записываем его не как длинную строку из нулей и единиц, а как четыре десятичных числа (октета), разделенных точками. Например: 192.168.1.1.

    Каждое число может принимать значение от 0 до 255. Почему именно до 255? Потому что каждый октет состоит из 8 бит.

    где — основание двоичной системы, — количество бит, а — количество возможных комбинаций (от 0 до 255).

    Всего в адресном пространстве IPv4 существует ограниченное количество адресов:

    где — общее количество возможных адресов при длине адреса в 32 бита.

    !Визуализация структуры 32-битного IP-адреса в десятичном и двоичном формате.

    Маска подсети: Где заканчивается улица и начинается дом?

    IP-адрес — это не просто уникальный номер. Он состоит из двух частей:

  • Адрес сети (Network ID): Указывает на конкретную подсеть (как название улицы).
  • Адрес хоста (Host ID): Указывает на конкретное устройство в этой сети (как номер дома).
  • Но как компьютер узнает, где граница между этими частями? Для этого используется маска подсети (Subnet Mask).

    Маска подсети тоже выглядит как IP-адрес (например, 255.255.255.0), но выполняет служебную функцию. Единицы в двоичном представлении маски показывают сетевую часть, а нули — хостовую часть.

    Пример работы маски

    Возьмем адрес 192.168.1.10 с маской 255.255.255.0.

    В двоичном виде маска выглядит так: 11111111.11111111.11111111.00000000

    Это означает, что первые 24 бита (три октета) — это адрес сети (192.168.1), а последние 8 бит — адрес устройства (10).

    Чтобы вычислить адрес сети, компьютер выполняет побитовую логическую операцию И (AND) между IP-адресом и маской.

    CIDR-нотация

    Вместо длинной записи маски часто используют префиксную запись (CIDR — Classless Inter-Domain Routing). Она указывает количество единичных бит в маске через слэш.

    * Маска 255.255.255.0 = /24 (24 единицы). * Маска 255.0.0.0 = /8 (8 единиц).

    Пример записи: 192.168.1.10/24.

    Расчет количества хостов

    Зная маску, мы можем посчитать, сколько устройств можно подключить к сети. Количество доступных адресов для хостов рассчитывается по формуле:

    где — количество доступных адресов для устройств, — основание двоичной системы, — количество нулей в маске (бит хоста), а вычитается, так как два адреса в любой сети зарезервированы и не могут быть назначены устройствам.

    Какие это два адреса?

  • Адрес сети (все биты хоста равны 0) — идентифицирует саму сеть.
  • Широковещательный адрес (Broadcast) (все биты хоста равны 1) — используется для отправки данных всем устройствам в этой сети одновременно.
  • Пример для маски /24 (8 бит для хоста):

    То есть в сети с маской 255.255.255.0 можно использовать 254 устройства.

    Типы IP-адресов

    Не все IP-адреса используются для выхода в интернет. Существует важное разделение на публичные и частные (серые) адреса.

    Публичные адреса

    Уникальны во всем интернете. Маршрутизируются глобально. Именно такой адрес имеет ваш роутер, когда подключается к провайдеру.

    Частные адреса

    Используются внутри локальных сетей (дома, в офисе). Они не маршрутизируются в интернете. Это позволяет миллионам людей использовать одни и те же адреса (например, 192.168.1.1) внутри своих квартир, не создавая конфликтов.

    Диапазоны частных сетей (согласно RFC 1918): * 10.0.0.010.255.255.255 * 172.16.0.0172.31.255.255 * 192.168.0.0192.168.255.255

    Также существует специальный адрес Localhost (127.0.0.1), который всегда указывает на сам компьютер.

    Основы маршрутизации

    Если IP-адрес — это адрес на конверте, то маршрутизация — это процесс передачи этого конверта от одного почтового отделения к другому, пока он не достигнет цели.

    Устройством, которое занимается этой работой, является Маршрутизатор (Router). В отличие от коммутатора (Switch), который работает с MAC-адресами внутри одной сети, маршрутизатор соединяет разные сети.

    !Путь сетевого пакета через цепочку маршрутизаторов от отправителя к получателю.

    Шлюз по умолчанию (Default Gateway)

    Когда компьютер хочет отправить пакет в интернет (например, на сервер Google), он проверяет IP-адрес назначения. Если адрес не принадлежит текущей локальной сети, компьютер отправляет пакет на Шлюз по умолчанию.

    Обычно шлюзом является ваш домашний роутер. Он знает, куда переслать пакет дальше (провайдеру).

    Таблица маршрутизации

    Каждый маршрутизатор имеет таблицу маршрутизации — список правил, где написано: «Если пакет идет в сеть X, отправь его через порт Y».

    TTL (Time To Live)

    Чтобы пакеты не блуждали по сети вечно (например, если маршрутизаторы зациклили маршрут), в заголовке IP-пакета есть поле TTL (время жизни). Это число (обычно 64 или 128).

    Каждый раз, когда пакет проходит через маршрутизатор (делает «хоп» или прыжок), значение TTL уменьшается на 1.

    где — новое значение времени жизни, — текущее значение, а — декремент при прохождении одного узла.

    Когда TTL достигает 0, пакет уничтожается, а отправителю возвращается сообщение об ошибке. Это предотвращает засорение каналов связи «бессмертными» пакетами.

    Протокол ARP: Связующее звено

    Мы говорили, что внутри локальной сети данные передаются по MAC-адресам (Ethernet), но приложения используют IP-адреса. Как компьютер узнает MAC-адрес соседа, зная только его IP?

    Для этого используется протокол ARP (Address Resolution Protocol).

    Работает он так:

  • Компьютер А хочет отправить данные компьютеру Б (IP 192.168.1.5).
  • Компьютер А кричит на всю сеть (Broadcast): «У кого IP 192.168.1.5? Скажите мне свой MAC!»
  • Компьютер Б слышит это и отвечает: «Это я! Мой MAC AA:BB:CC:DD:EE:FF».
  • Компьютер А запоминает это соответствие в своей ARP-таблице и формирует кадр.
  • Резюме

    * IP-адрес — это логический адрес, необходимый для маршрутизации между сетями. * Маска подсети определяет, какая часть IP-адреса относится к сети, а какая — к устройству. * Маршрутизатор — устройство, пересылающее пакеты между разными сетями на основе IP-адресов. * TTL предотвращает бесконечное циклирование пакетов. * Частные адреса (например, 192.168.x.x) используются только внутри локальных сетей.

    В следующей статье мы поднимемся еще выше, на Транспортный уровень, и узнаем, чем отличаются протоколы TCP и UDP и как данные доставляются конкретным приложениям.

    4. Транспортный уровень: различия протоколов TCP и UDP

    Транспортный уровень: различия протоколов TCP и UDP

    Мы продолжаем наше путешествие по уровням сетевых моделей. В прошлой статье мы остановились на Сетевом уровне (Network Layer), где протокол IP и маршрутизаторы героически доставляют пакеты от одного компьютера к другому через весь мир. Представьте, что IP-адрес — это адрес многоквартирного дома. Почтальон (маршрутизатор) успешно доставил письмо к подъезду.

    Но кто именно в этом доме должен получить письмо? Браузер? Telegram? Онлайн-игра? Сетевой уровень не знает ответа на этот вопрос. Он доставляет данные только до «железа».

    Здесь в игру вступает Транспортный уровень (Transport Layer). Его главная задача — принять данные от сетевого уровня и распределить их между конкретными приложениями. Этот процесс называется мультиплексированием.

    Порты: Квартиры в цифровом доме

    Чтобы различать приложения на одном устройстве, транспортный уровень использует систему портов. Порт — это числовой идентификатор программы, ожидающей данные.

    Если IP-адрес — это адрес дома, то порт — это номер квартиры.

    В заголовках транспортного уровня всегда указываются два порта:

  • Порт отправителя (Source Port): «Квартира», из которой ушло сообщение.
  • Порт получателя (Destination Port): «Квартира», в которую сообщение должно попасть.
  • !Визуализация концепции портов как конечных точек доставки внутри одного устройства.

    Сколько всего портов?

    Поле для номера порта в заголовке занимает 16 бит. Это позволяет нам рассчитать максимально возможное количество портов по формуле:

    где — общее количество доступных портов, — основание двоичной системы счисления, а — разрядность (количество бит), выделенная под номер порта.

    Диапазон портов (от 0 до 65535) делится на три категории: * Общеизвестные (0–1023): Зарезервированы для системных служб (HTTP — 80, HTTPS — 443, DNS — 53). * Зарегистрированные (1024–49151): Используются конкретными приложениями (например, базы данных). * Динамические (49152–65535): Временно выдаются клиентским программам (например, вашему браузеру, когда он открывает вкладку).

    На транспортном уровне правят два основных протокола: TCP и UDP. Они как два курьера с абсолютно разным подходом к работе.

    UDP: Скорость превыше всего

    UDP (User Datagram Protocol) — это протокол пользовательских датаграмм. Его девиз: «Отправил и забыл».

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

    Характеристики UDP:

  • Без установления соединения: Не нужно «договариваться» перед передачей.
  • Ненадежный: Нет гарантии доставки. Потерянные пакеты не восстанавливаются.
  • Без упорядочивания: Пакеты могут приходить вразнобой.
  • Легковесный: Заголовок UDP очень маленький (всего 8 байт).
  • Где используется UDP?

    Там, где скорость важнее точности. Если в онлайн-звонке или стриме пропадет пара кадров, вы этого даже не заметите. Но если видео начнет «тормозить» из-за проверок каждого байта — это будет раздражать. * Потоковое видео и аудио (YouTube, Spotify). * VoIP (Skype, Zoom, IP-телефония). * Онлайн-игры (CS:GO, Dota 2). * DNS-запросы (быстрое получение IP по имени сайта).

    TCP: Надежность и контроль

    TCP (Transmission Control Protocol) — это протокол управления передачей. Его девиз: «Доверяй, но проверяй».

    Это аналог заказного письма с уведомлением о вручении и описью вложения. Если письмо потеряется, почта обязана отправить его копию снова. Если страницы перепутаются, получатель соберет их в нужном порядке по номерам страниц.

    Характеристики TCP:

  • Установление соединения: Перед передачей данных создается виртуальный канал.
  • Надежность: Гарантирует доставку данных без потерь и ошибок.
  • Упорядочивание: Все сегменты нумеруются, чтобы получатель мог собрать их в правильном порядке.
  • Контроль потока: Регулирует скорость передачи, чтобы не «захлебнуть» получателя.
  • Тройное рукопожатие (Three-Way Handshake)

    Перед тем как передать хоть один байт полезной информации, TCP устанавливает соединение. Этот процесс называется «Тройное рукопожатие».

    !Процесс установления соединения TCP: Клиент запрашивает связь, Сервер подтверждает, Клиент подтверждает получение подтверждения.

  • SYN (Synchronize): Клиент отправляет серверу запрос: «Давай дружить? Мой начальный номер пакета X».
  • SYN-ACK (Synchronize-Acknowledge): Сервер отвечает: «Давай! Я получил твой запрос X. Мой начальный номер Y».
  • ACK (Acknowledge): Клиент отвечает: «Отлично, я получил твой ответ Y. Начинаем передачу».
  • Только после этого начинается обмен данными.

    Механизм надежности

    Как TCP гарантирует доставку? С помощью подтверждений (ACK). На каждый отправленный сегмент отправитель запускает таймер. Если получатель не прислал подтверждение («Я получил сегмент №5») до истечения таймера, отправитель считает пакет потерянным и отправляет его снова.

    Управление потоком (Flow Control)

    Представьте, что сервер — это мощный насос, а ваш смартфон — узкая воронка. Если лить слишком быстро, вода перельется через край (данные потеряются).

    Чтобы этого не случилось, TCP использует механизм скользящего окна (Sliding Window). В каждом пакете получатель сообщает отправителю размер своего «окна» — сколько данных он готов принять прямо сейчас без подтверждения.

    Эффективную пропускную способность TCP можно грубо оценить формулой:

    где — скорость передачи данных (бит/с), — размер окна (в битах), а (Round Trip Time) — время, необходимое сигналу, чтобы дойти до получателя и вернуться обратно.

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

    Сравнение заголовков

    Разница в сложности протоколов видна даже в размере их «шапок» (заголовков), которые добавляются к данным.

    * Заголовок UDP: 8 байт. Содержит только порты, длину и контрольную сумму. * Заголовок TCP: Минимум 20 байт. Содержит порты, порядковый номер, номер подтверждения, размер окна, флаги (SYN, ACK, FIN, RST) и многое другое.

    > «UDP — это когда вы хотите рассказать шутку, и вам все равно, услышали ее или нет. TCP — это когда вы рассказываете шутку, ждете, пока собеседник кивнет, и только потом рассказываете следующую часть».

    Сокеты

    В программировании комбинация IP-адреса и порта называется сокетом (Socket).

    Пример сокета: 192.168.1.5:80.

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

    Резюме

    | Характеристика | TCP | UDP | | :--- | :--- | :--- | | Расшифровка | Transmission Control Protocol | User Datagram Protocol | | Тип связи | С установлением соединения | Без соединения | | Надежность | Гарантированная доставка | Потери возможны | | Порядок данных | Строго упорядочен | Хаотичен | | Скорость | Медленнее (из-за проверок) | Максимально быстрая | | Применение | Веб (HTTP), Почта (SMTP), Файлы (FTP) | Видео, Игры, Голос (VoIP), DNS |

    Понимание разницы между TCP и UDP критически важно для любого IT-специалиста. Если вы выберете TCP для онлайн-шутера, игроки будут жаловаться на «лаги». Если выберете UDP для передачи файла, файл придет битым.

    В следующей статье мы поднимемся на самую вершину модели OSI — Прикладной уровень, где работают знакомые нам браузеры и почтовые клиенты.

    5. Прикладной уровень и введение в сетевую безопасность

    Прикладной уровень и введение в сетевую безопасность

    Поздравляю! Мы добрались до вершины модели OSI. Мы проложили кабели (Физический уровень), научили устройства общаться в одной комнате (Канальный уровень), соединили города и страны (Сетевой уровень) и обеспечили надежную доставку данных (Транспортный уровень).

    Но зачем все это было нужно? Пользователю не нужны IP-адреса или TCP-сегменты. Ему нужны веб-сайты, видео с котиками, электронная почта и онлайн-банкинг. Все это живет здесь — на Прикладном уровне (Application Layer).

    В этой финальной статье курса мы разберем, как работают самые популярные сервисы интернета, и узнаем, как защитить данные в этой враждебной среде.

    Прикладной уровень: Интерфейс для людей

    Прикладной уровень (Layer 7 в модели OSI) — это единственный уровень, с которым непосредственно взаимодействует пользователь (через программное обеспечение). Это мост между человеческим запросом («хочу открыть google.com») и сложной сетевой инфраструктурой.

    Важно понимать: сам браузер (Chrome, Firefox) — это не прикладной уровень. Браузер — это программа, которая использует протоколы прикладного уровня (HTTP, DNS) для выполнения задач.

    Клиент-Серверная архитектура

    Большинство приложений в интернете работают по модели Клиент-Сервер:

  • Клиент (ваш ноутбук или смартфон) инициирует общение, отправляя запрос.
  • Сервер (мощный компьютер в дата-центре) постоянно ждет запросов, обрабатывает их и отправляет ответ.
  • !Визуализация обмена данными между клиентом и сервером.

    Давайте разберем «большую тройку» протоколов, на которых держится современный веб.

    DNS: Телефонная книга интернета

    Компьютеры общаются на языке цифр (IP-адреса, например 142.250.185.78). Люди предпочитают слова (доменные имена, например google.com).

    DNS (Domain Name System) — это система, которая переводит понятные людям домены в понятные машинам IP-адреса.

    Как работает DNS-запрос?

    Представьте, что вы ищете номер телефона друга в огромной библиотеке справочников.

  • Вы вводите www.wikipedia.org в браузере.
  • Компьютер спрашивает у локального DNS-резолвера (обычно это ваш роутер или сервер провайдера): «Какой IP у этого сайта?».
  • Если резолвер не знает, он начинает опрос иерархии серверов:
  • * Корневой сервер (.): «Я не знаю, но вот адрес того, кто отвечает за зону .org». * TLD-сервер (.org): «Я не знаю, но вот адрес сервера, где лежит wikipedia». * Авторитетный сервер (wikipedia.org): «Да, я знаю! IP-адрес — 91.198.174.192».
  • Ответ возвращается вашему браузеру, и начинается загрузка сайта.
  • HTTP: Язык всемирной паутины

    Когда IP-адрес получен, браузер должен скачать содержимое сайта. Для этого используется протокол HTTP (HyperText Transfer Protocol).

    Это текстовый протокол. Если бы вы могли подслушать разговор браузера и сервера, он выглядел бы примерно так:

    Запрос клиента:

    Перевод: «Дай мне (GET) главную страницу сайта example.com».

    Ответ сервера:

    Перевод: «Все хорошо (200 OK), вот твой HTML-код».

    Коды состояния HTTP

    Вы наверняка видели эти цифры: * 200 OK: Успех. Данные переданы. * 301 Moved Permanently: Сайт переехал на новый адрес. * 404 Not Found: Ресурс не найден (вы ошиблись в адресе). * 500 Internal Server Error: Ошибка на стороне сервера (программисты что-то сломали).

    Электронная почта: SMTP, POP3, IMAP

    Почта — один из старейших сервисов. Здесь роли четко разделены между протоколами:

  • SMTP (Simple Mail Transfer Protocol) — используется только для отправки. Когда вы пишете письмо, ваш клиент «толкает» (push) его на сервер по SMTP. Затем серверы пересылают его друг другу тоже по SMTP.
  • POP3 и IMAP — используются для получения.
  • POP3*: Скачивает письма на устройство и удаляет их с сервера. (Устаревший подход). IMAP*: Синхронизирует письма. Вы видите одно и то же состояние ящика с телефона и компьютера. Письма хранятся на сервере.

    ---

    Введение в сетевую безопасность

    Интернет создавался учеными для ученых. В 1970-х никто не думал, что в сети будут передаваться номера кредитных карт или военные тайны. Поэтому базовые протоколы (HTTP, DNS, SMTP, Telnet) изначально не защищены. Они передают данные в открытом виде.

    Если злоумышленник подключится к кабелю или перехватит Wi-Fi сигнал, он сможет прочитать ваши пароли так же легко, как утреннюю газету. Это называется сниффинг (sniffing).

    Чтобы защититься, мы используем криптографию.

    Триада CIA

    Информационная безопасность держится на трех китах (CIA Triad):

  • Confidentiality (Конфиденциальность): Данные доступны только тем, кому они предназначены. (Никто чужой не прочитает).
  • Integrity (Целостность): Данные не были изменены при передаче. (Никто не поменял сумму перевода со 100).
  • Availability (Доступность): Сервис работает и доступен легитимным пользователям. (Защита от DDoS-атак).
  • Основы шифрования

    Шифрование превращает читаемый текст (plaintext) в набор бессмысленных символов (ciphertext) с помощью математического алгоритма и ключа.

    #### Симметричное шифрование Используется один и тот же ключ для зашифровки и расшифровки. Это как замок с одним ключом. Вы закрыли сундук, передали его другу, но теперь вам нужно как-то тайно передать ему ключ. Если перехватят ключ — все пропало. Плюсы*: Очень быстро. Минусы*: Проблема передачи ключа.

    #### Асимметричное шифрование Используется пара ключей:

  • Публичный ключ (Public Key): Раздается всем. Им можно только зашифровать.
  • Приватный ключ (Private Key): Хранится в тайне. Им можно расшифровать то, что зашифровано публичным ключом.
  • Математически это можно представить упрощенной формулой алгоритма RSA. Процесс шифрования выглядит так:

    где: * — шифротекст (результат), * — исходное сообщение (преобразованное в число), * — публичная экспонента (часть открытого ключа), * — модуль (произведение двух больших простых чисел), * — операция взятия остатка от деления на .

    Чтобы расшифровать сообщение, нужно выполнить обратную операцию, которая вычислительно невозможна без знания секретного ключа :

    где — приватная экспонента (секретный ключ), математически связанная с и .

    !Схема работы публичного и приватного ключей.

    HTTPS и TLS: Безопасный веб

    Когда вы видите замочек в адресной строке браузера, это значит, что сайт использует HTTPS. Это обычный HTTP, завернутый в защищенный протокол TLS (Transport Layer Security).

    TLS использует гибридный подход:

  • С помощью медленного асимметричного шифрования клиент и сервер безопасно договариваются о временном ключе.
  • Далее весь обмен данными идет с помощью быстрого симметричного шифрования, используя этот временный ключ.
  • Это обеспечивает и конфиденциальность (никто не подслушает), и целостность (никто не подменит данные).

    Межсетевые экраны (Firewall)

    Если шифрование защищает данные, то Firewall (Брандмауэр) защищает сами устройства. Это «цифровой фейсконтроль».

    Файрвол стоит на границе между вашей локальной сетью и интернетом. Он проверяет каждый входящий и исходящий пакет и сравнивает его с правилами. Правило*: «Разрешить всем заходить на порт 80 (веб-сайт)». Правило*: «Запретить всем доступ к порту 22 (управление сервером), кроме админа».

    Заключение курса

    Мы прошли долгий путь. Мы начали с электрических сигналов в медных проводах, разобрались, как коммутаторы пересылают кадры, как маршрутизаторы строят пути через планету, как TCP гарантирует доставку каждого байта, и закончили тем, как браузеры показывают нам веб-страницы.

    Понимание сетей — это суперсила. Теперь, когда у вас «упадет интернет», вы не будете просто перезагружать роутер. Вы спросите себя: «Это проблема DNS? Или TCP-соединение сбрасывается? А может, файрвол блокирует порт?».

    Спасибо, что были с нами в этом курсе «Основы компьютерных сетей»!