- Сеть
- LAN (Local Area Network)
- WAN (Wide Area Network)
- MAN (Metropolitan Area Network)
- WLAN (Wireless Local Area Network)
- VPN (Virtual Private Network)
- Overlay network
- В чем отличие по сути
- Канал связи
- С точки зрения физической передачи
- С точки зрения масштаба
- 1. Межконтинентальные магистрали
- 2. Международные и национальные магистрали
- По сути
- 3. Региональные и городские сети операторов
- Идея
- 4. Районные и распределительные сети
- 5. Сеть доступа до абонента
- 5.1. FTTH / FTTB / PON — оптика до дома или здания
- 5.2. xDSL — интернет по телефонной медной линии
- 5.3. DOCSIS / коаксиальный кабель
- 5.4. Беспроводной доступ: мобильная сеть
- 5.5. Фиксированный радиодоступ
- 5.6. Спутниковый доступ
- На практике это
- 6. Домашняя сеть: что происходит после входа интернета в дом
- 6.1. Домашний роутер
- 6.2. Домашняя LAN по кабелю
- Как работает
- Особенности
- 6.3. Домашняя WLAN по Wi-Fi
- Как работает
- Среда передачи
- OSI (Open Systems Interconnection)
- TCP/IP
- L1 Физический уровень
- L2 Канальный уровень
- L3 Сетевой уровень
- L4 Транспортный уровень
- L5 Сеансовый уровень
- L6 Уровень представления
- L7 Прикладной уровень
Сеть¶
Компьютерная сеть — система передачи данных между устройствами. Компьютерная сеть обычно включает:
- узлы - устройства, которые участвуют в обмене данными: ПК, ноутбуки, телефоны, серверы, принтеры, камеры;
- среду передачи — то, по чему идут данные: кабель, оптоволокно, радиосигнал;
- сетевые устройства — коммутаторы, маршрутизаторы, точки доступа;
- протоколы — набор правил, по которым устройства понимают друг друга.
LAN (Local Area Network)¶
LAN — локальная сеть. Это сеть на небольшой территории: квартира, дом, офис, аудитория, одно здание. Обычно LAN принадлежит одной организации или одному владельцу и работает на Ethernet или Wi-Fi. Небольшая территория, высокая скорость, локальное управление.
- домашняя сеть из ноутбука, телефона и роутера;
- сеть в компьютерном классе;
- офисная сеть внутри здания.
WAN (Wide Area Network)¶
WAN — глобальная или территориально распределённая сеть. Это сеть, которая соединяет устройства или целые локальные сети на больших расстояниях: между городами, между странами, между континентами. WAN обычно строится через провайдеров связи. Большая территория, много промежуточных сетей и маршрутизаторов.
- интернет;
- сеть между филиалами компании в разных городах;
- соединение дата-центров через провайдера.
MAN (Metropolitan Area Network)¶
MAN — городская сеть. Это сеть, которая по масштабу находится между LAN и WAN. Обычно охватывает: район, город, кампус, крупный комплекс зданий. Сеть в пределах города или крупной городской территории.
- сеть провайдера внутри города;
- университетская сеть между корпусами;
- сеть компании между несколькими офисами в одном городе.
WLAN (Wireless Local Area Network)¶
WLAN — беспроводная локальная сеть. Это та же локальная сеть, что и LAN, но данные передаются по радио, а не по кабелю. Обычно WLAN строится на Wi-Fi. Локальная сеть без проводов. WLAN — это не отдельный "интернет", а именно способ построения локальной сети по беспроводной технологии.
- домашний Wi-Fi;
- Wi-Fi в кафе;
- беспроводная сеть в офисе.
VPN (Virtual Private Network)¶
VPN — виртуальная частная сеть. Это технология, которая создаёт логически защищённый канал поверх другой сети, чаще всего поверх интернета. VPN не заменяет физическую сеть, а строит туннель внутри уже существующей сети. Поверх публичной сети создаётся приватное логическое соединение.
- удалённое подключение сотрудника к офисной сети;
- соединение двух офисов через интернет;
- личный VPN для шифрования трафика.
Overlay network¶
Overlay network — наложенная сеть. Это сеть, которая строится поверх другой сети и использует её как транспорт. То есть снизу уже есть обычная физическая или IP-сеть, а сверху создаётся ещё одна логическая сеть со своими правилами и адресацией. Одна сеть работает поверх другой. VPN — это частный случай overlay-сети.
- VPN
- VXLAN
- сети контейнеров и виртуальных машин
- mesh-сети поверх интернета
В чем отличие по сути¶
- По масштабу
- LAN — маленькая территория
- MAN — город
- WAN — страна, континент, мир
- По назначению
- LAN — сеть для локального обмена между устройствами
- MAN — сеть для объединения нескольких LAN в пределах города
- WAN — сеть для объединения удалённых LAN/MAN
- По типу инфраструктуры
- LAN чаще строится внутри здания или площадки
- MAN чаще строится на городской магистральной инфраструктуре
- WAN чаще строится на инфраструктуре операторов связи между городами и странами
- По управлению
- LAN обычно полностью под контролем одной организации или человека
- MAN часто централизованно управляется организацией или провайдером на уровне города
- WAN часто включает чужую инфраструктуру: провайдеров, магистральные сети, интернет-операторов
- По задержкам и расстояниям
- в LAN задержки минимальны
- в MAN задержки уже выше
- в WAN задержки обычно самые большие
Канал связи¶
С точки зрения физической передачи¶
- Медная проводная среда
- витая пара
- коаксиальный кабель
- телефонная медная пара
- иногда отдельно выделяют твинаксиальный кабель
- Ethernet
- DSL
- кабельные сети
- локальные подключения на коротких расстояниях
- Оптоволоконная среда
- одномодовое волокно
- многомодовое волокно
- магистральные сети
- сети провайдеров
- дата-центры
- FTTH
- межконтинентальные кабели
- Радиосреда
- Wi-Fi
- Bluetooth
- сотовая связь 2G/3G/4G/5G
- радиорелейная связь
- радиомосты
- спутниковая связь
- микроволновые линии
- инфракрасная связь — реже, но тоже беспроводная физическая среда
С точки зрения масштаба¶
1. Межконтинентальные магистрали¶
Самый верхний уровень — это глобальные магистральные сети, которые соединяют: - континенты; - страны; - крупнейшие города; - международные дата-центры; - точки обмена трафиком; - сети крупнейших операторов.
Это основа мирового интернета.
Главный способ связи между континентами: подводные оптоволоконные кабели. Дополнительные способы:
- спутниковая связь — как вспомогательная или для особых случаев;
- наземные трансграничные оптоволоконные линии — между соседними странами и регионами.
Почему именно подводное оптоволокно
Потому что оно даёт:
- очень большую пропускную способность;
- сравнительно низкую задержку;
- высокую надёжность;
- возможность передавать огромные объёмы трафика между континентами.
Как работает подводный оптоволоконный кабель
По сути это длинная волоконно-оптическая линия по дну океана.
Принцип работы:
- данные превращаются в электрические сигналы внутри оборудования;
- оборудование преобразует их в световые импульсы;
- эти импульсы идут по оптическому волокну;
- через большие расстояния сигнал усиливается или регенерируется;
- на другом конце свет снова преобразуется в электрический сигнал и дальше в пакеты.
Внутри оптоволокна информация передаётся светом, а не электричеством.
Что находится на таком уровне
- подводные оптоволоконные кабели;
- береговые станции;
- международные узлы связи;
- backbone-маршрутизаторы;
- системы DWDM;
- глобальные точки обмена трафиком.
Что такое DWDM
Это технология, которая позволяет передавать по одному волокну много независимых потоков данных на разных длинах волн света.
То есть одно волокно используется очень эффективно.
Обычно ими владеют и управляют крупные частные компании и консорциумы: международные телеком-операторы, специализированные владельцы подводных кабелей, а также крупные облачные и контентные компании.
Подводные кабели сегодня бывают как консорциумные, так и частные; при этом значительная часть подводной инфраструктуры строится и эксплуатируется именно частным сектором.
Крупные международные операторы связи, кабельные консорциумы, Google, Meta, Microsoft, Amazon и другие большие игроки, которые либо владеют кабелями целиком, либо долями, либо арендуют крупную ёмкость.
2. Международные и национальные магистрали¶
Это следующий уровень ниже глобального.
Он соединяет:
- страны между собой;
- регионы внутри страны;
- крупнейшие города;
- магистральные узлы операторов;
- большие дата-центры.
Главный способ:
- наземные оптоволоконные магистрали.
Они прокладываются:
- вдоль автомобильных трасс;
- вдоль железных дорог;
- через подземную кабельную инфраструктуру;
- через линии связи операторов.
Иногда используются:
- радиорелейные линии;
- спутниковая связь;
- арендованные магистральные каналы;
- морские кабели между странами.
Принцип тот же:
- данные кодируются;
- переводятся в свет;
- идут по оптическому волокну;
- проходят через промежуточные узлы;
- попадают в магистральные маршрутизаторы и дальше в другие сети.
Этот уровень нужен, чтобы:
- связать города;
- связать региональные сети;
- вывести трафик в международный интернет;
- передавать очень большие объёмы данных.
Ими обычно владеют национальные и международные телеком-операторы, магистральные провайдеры, иногда государственные или квазигосударственные инфраструктурные компании.
Управляются они самими операторами как часть их core/backbone network.
По сути¶
Это backbone страны или большого региона, который соединяет крупные города, дата-центры, точки обмена трафиком и выходы в международные сети.
3. Региональные и городские сети операторов¶
Это уровень сети внутри:
- города;
- агломерации;
- региона;
- крупного кампуса.
Он соединяет:
- районные узлы;
- офисы;
- дата-центры;
- мобильные базовые станции;
- сети абонентов;
- точки присутствия провайдера.
Здесь чаще всего используют:
- городское оптоволокно;
- иногда радиорелейные линии;
- реже другие специализированные каналы.
В городе оператор строит:
- магистральные кольца;
- резервные линии;
- узлы агрегации;
- распределительные шкафы;
- городские узлы связи.
Обычно это уже сеть, которая собирает трафик от множества районов и ведёт его либо:
- в национальную магистраль;
- либо к дата-центрам;
- либо к другим провайдерам.
Почему часто делают кольца Чтобы при обрыве одного участка связь шла другим путём.
Ими обычно владеют региональные ISP, городские операторы, мобильные операторы, кабельные операторы, иногда муниципальные или открытые сети.
Это уровень между магистралью и сетью доступа.
Идея¶
Оператор в городе или регионе строит свои узлы, кольца, агрегацию и распределение, а потом уже подключает районные узлы и абонентов.
4. Районные и распределительные сети¶
Это уровень между городской магистралью и конкретным абонентом.
Он соединяет:
- район;
- квартал;
- жилой массив;
- офисный центр;
- группу домов;
- подъезды и технические узлы.
Какие каналы тут используются
Чаще всего:
- оптоволокно;
- иногда медный кабель;
- иногда коаксиальный кабель;
- иногда радиомосты;
- иногда радиорелейные участки.
Обычно ими владеет тот же провайдер доступа, который работает в данном районе: интернет-провайдер, кабельный оператор, мобильный оператор, беспроводной оператор.
Это уже часть сети, которая распределяет связь по кварталам, домам, подъездам, шкафам, базовым станциям и локальным узлам.
Иногда это не сам розничный провайдер, а оптовая open-access сеть, а услуги сверху продают разные ISP.
Такие модели тоже бывают.
5. Сеть доступа до абонента¶
Это очень важный уровень.
Именно здесь интернет доходит до дома, квартиры, офиса или отдельного устройства.
Сеть доступа бывает разной.
5.1. FTTH / FTTB / PON — оптика до дома или здания¶
Это современный и самый распространённый способ проводного подключения.
Варианты
- FTTH — оптика до квартиры или дома;
- FTTB — оптика до здания, дальше внутренняя разводка;
- PON — пассивная оптическая сеть.
Как работает
- от провайдера идёт оптика;
- она приходит в дом, подъезд или прямо в квартиру;
- там стоит оптический терминал;
- он преобразует световой сигнал в обычный Ethernet;
- дальше интернет идёт в домашний роутер.
Преимущества
- высокая скорость;
- стабильность;
- большая дальность;
- устойчивость к помехам.
5.2. xDSL — интернет по телефонной медной линии¶
Это технология передачи данных по старым телефонным проводам.
Виды
- ADSL;
- VDSL.
Как работает
- данные передаются по медной телефонной паре;
- используются более высокие частоты, чем для обычной телефонии;
- модем на стороне абонента и оборудование у провайдера обмениваются сигналами;
- трафик выходит в сеть оператора.
Минусы
- скорость ниже оптики;
- качество зависит от длины и состояния линии;
- сильнее влияние помех.
5.3. DOCSIS / коаксиальный кабель¶
Что это такое
Интернет по кабельной телевизионной сети.
Как работает
- по коаксиальному кабелю идут телевизионные и дата-сигналы;
- кабельный модем выделяет интернет-трафик;
- данные идут в сеть кабельного оператора.
Особенности
- хороший охват там, где уже была ТВ-инфраструктура;
- среда часто общая для группы абонентов.
5.4. Беспроводной доступ: мобильная сеть¶
Интернет приходит не по кабелю, а через:
- 3G;
- 4G/LTE;
- 5G.
Как работает
- устройство по радио связывается с базовой станцией;
- базовая станция подключена к транспортной сети оператора;
- дальше трафик идёт в ядро мобильной сети;
- потом — в интернет.
Среда передачи
- радиоволны между устройством и базовой станцией;
- дальше обычно оптоволокно или другие магистральные каналы у оператора.
5.5. Фиксированный радиодоступ¶
Интернет в дом приходит по радиоканалу от ближайшей точки провайдера.
Используется:
- в частном секторе;
- в деревнях;
- там, где кабель тянуть дорого.
Как работает
- у абонента стоит внешняя антенна;
- она связывается с базовой станцией провайдера;
- данные передаются по радиоканалу;
- дальше у провайдера они идут уже по обычной сети.
5.6. Спутниковый доступ¶
Интернет приходит через спутник.
Как работает
- у абонента есть спутниковая антенна и терминал;
- данные передаются между терминалом и спутником по радиоканалу;
- со спутника трафик идёт на наземную станцию;
- потом попадает в интернет.
Плюсы
- работает там, где нет наземной инфраструктуры.
Минусы
- высокая задержка у классических геостационарных систем;
- сложнее оборудование;
- дороже;
- зависит от погодных условий и покрытия.
Это так называемый last mile — последний участок сети от инфраструктуры провайдера до дома, квартиры, офиса или базовой станции.
Им обычно владеет:
- сам ISP;
- кабельный оператор;
- мобильный оператор;
- спутниковый оператор;
- либо отдельный инфраструктурный владелец, если сеть оптовая/open-access.
На практике это¶
Оптика до дома, медная пара, коаксиал, радиодоступ, 4G/5G или спутниковая линия.
6. Домашняя сеть: что происходит после входа интернета в дом¶
Когда интернет уже пришёл до квартиры или дома, начинается локальная сеть абонента.
6.1. Домашний роутер¶
Это устройство, которое:
- принимает интернет от провайдера;
- строит домашнюю LAN;
- раздаёт адреса по DHCP;
- делает NAT;
- маршрутизирует трафик между домашней сетью и интернетом;
- часто работает как Wi-Fi точка доступа;
- иногда содержит встроенный коммутатор.
6.2. Домашняя LAN по кабелю¶
Внутри дома данные обычно передаются по:
- витой паре Ethernet.
Как работает¶
- компьютер отправляет данные в сетевую карту;
- сетевая карта формирует Ethernet-кадры;
- данные идут по медному кабелю до роутера или свитча;
- дальше — к нужному устройству или в интернет.
Особенности¶
- короткие расстояния;
- высокая скорость;
- удобство для локальной сети.
6.3. Домашняя WLAN по Wi-Fi¶
Внутри дома устройства могут подключаться без кабеля.
Как работает¶
- устройство связывается с роутером по радиоканалу;
- данные передаются по стандарту Wi-Fi;
- роутер переводит их в обычный сетевой трафик и дальше маршрутизирует.
Среда передачи¶
- радиоволны на 2.4, 5 или 6 ГГц.
OSI (Open Systems Interconnection)¶
| Модель | |||||
|---|---|---|---|---|---|
| Уровень (layer) | Тип данных (PDU) | Функции | Примеры | Оборудование | |
| Host layers | 7. Прикладной (application) | Данные | Доступ к сетевым службам | HTTP, FTP, POP3, SMTP, WebSocket | Хосты (клиенты сети), межсетевой экран |
| 6. Представления (presentation) | Представление и шифрование данных | EBCDIC, ASCII | |||
| 5. Сеансовый (session) | Управление сеансом связи | RPC, PAP, L2TP, gRPC | |||
| 4. Транспортный (transport) | Сегменты (segment) / датаграммы (datagram) | Прямая связь между конечными пунктами и надёжность | TCP, UDP, SCTP, порты | ||
| Media layers | 3. Сетевой (network) | Пакеты (packet) | Определение маршрута и логическая адресация | IPv4, IPv6, IPsec, AppleTalk, ICMP | Маршрутизатор, сетевой шлюз, межсетевой экран |
| 2. Канальный (data link) | Биты (bit) / кадры (frame) | Физическая адресация | PPP, IEEE 802.2, Ethernet, DSL, ARP, сетевая карта | Сетевой мост, коммутатор, точка доступа | |
| 1. Физический (physical) | Биты (bit) | Работа со средой передачи, сигналами и двоичными данными | USB, RJ ("витая пара", коаксиальный, оптоволоконный), радиоканал | Концентратор, повторитель (сетевое оборудование) | |
TCP/IP¶
| TCP/IP | Соответствие с OSI |
|---|---|
| Прикладной | Прикладной |
| Представления | |
| Сеансовый | |
| Транспортный | Транспортный |
| Сетевой | Сетевой |
| Канальный | Канальный |
| Физический |
L1 Физический уровень¶
Отвечает за реальную передачу битов по среде связи. Он знает только: как передать поток битов (передача электрического сигнала по медному кабелю, передача света по оптоволокну, передача радиосигнала по воздуху). На другой стороне этот сигнал обратно превращается в биты.
Физические среды передачи (медная проводная среда, оптоволоконная среда, радиосреда)
Протоколы (Здесь чаще говорят не столько о протоколах, сколько о физических стандартах и технологиях): - Ethernet PHY - 10BASE-T - 100BASE-TX - 1000BASE-T - 10GBASE-SR - оптоволоконные стандарты - Wi-Fi на уровне радиосигнала - DSL на физическом уровне - Bluetooth PHY - радиоканалы мобильной связи
Устройства - кабель - разъёмы - интерфейсы - коннекторы - повторители - хабы - PHY-чипы - сетевые порты - антенны - оптические модули
Темы внутри уровня: - кодирование сигнала; - синхронизация сигнала; - режимы передачи сигнала; - чем отличаются категории кабеля; - что ограничивает дальность и скорость передачи; - что такое repeater; - что такое PHY; - что такое auto-negotiation; - что реально происходит, когда кабель подключают в сетевой порт; - что такое аналоговый и цифровой сигнал; - что такое line coding; - что такое логическое и физическое кодирование; - зачем нужна синхронизация передатчика и приемника; - что такое baud rate и чем он отличается от bit rate; - что такое затухание, шум, помехи, SNR; - что такое half-duplex и full-duplex на физическом уровне; - что такое коллизия как физическое явление.
L2 Канальный уровень¶
Отвечает за передачу данных между узлами внутри одной Ethernet-сети, Wi-Fi-сети, VLAN. Он не занимается маршрутизацией между разными сетями.
- локальную адресацию
- передачу данных внутри одной сети
- коммутацию на уровне MAC
- разделение сети на VLAN
- работу мостов и коммутаторов
Протоколы - Ethernet - Wi-Fi - PPP - HDLC - Frame Relay - VLAN (802.1Q) - STP - RSTP - LACP - MAC - LLC
Устройства - коммутатор - мост - точка доступа - сетевая карта - L2-коммутатор - интерфейсы хоста - Ethernet-адаптеры - Wi-Fi-адаптеры
Кадр — это единица данных канального уровня. На практике чаще всего Ethernet-кадр. Он содержит: - MAC-адрес источника - MAC-адрес назначения - служебную информацию - полезную нагрузку - контрольную сумму/CRC
Здесь используются MAC-адреса. - IP-адрес указывает конечную цель - MAC-адрес указывает, кому передать кадр на текущем канальном участке
Проверка ошибок - Канальный уровень умеет обнаруживать повреждения кадра. Для этого используются FCS и CRC. Если кадр повреждён, принимающая сторона обычно его отбрасывает.
Одновременный доступ к каналу - Если несколько устройств используют общую среду передачи, нужен механизм, который определяет: когда можно передавать, как избежать конфликтов, что делать при коллизиях. Решение: - CSMA/CD в старом Ethernet - CSMA/CA в Wi-Fi
Ethernet — это основная технология канального уровня в проводных локальных сетях. В Ethernet-кадре есть: - preamble - SFD - destination MAC - source MAC - EtherType / length - payload - FCS
Коммутатор — это главное устройство канального уровня. Он: - принимает кадры - анализирует MAC-адрес назначения - ведёт MAC-таблицу - пересылает кадры между портами
Коммутатор запоминает, с какого порта пришёл какой source MAC. Потом, когда приходит кадр к этому MAC, коммутатор уже знает, в какой порт его отправить. Если destination MAC не найден в таблице, коммутатор делает flooding: отправляет кадр на все порты, кроме того, откуда кадр пришёл.
Unicast Кадр - предназначен одному устройству. Broadcast - Кадр предназначен всем устройствам в сегменте (ARP request). Multicast - Кадр предназначен группе устройств.
MAC-таблица -
VLAN -
Петля на канальном уровне — это ситуация, когда в сети L2 существует замкнутый путь, по которому кадры могут ходить по кругу бесконечно. Петли обычно появляются, когда коммутаторы соединены избыточно и тк нет TTL.
STP (Spanning Tree Protocol) — это протокол канального уровня, который предотвращает петли в Ethernet-сетях с избыточными связями. Это значит: все коммутаторы остаются связаны, но циклов в логической топологии нет. Физически кабели могут образовывать кольцо, но логически один из путей будет заблокирован. - обнаруживает избыточные пути - выбирает один логически правильный путь - блокирует лишние порты - предотвращает L2-петли - при изменении топологии может перестроить дерево
L3 Сетевой уровень¶
Отвечает за доставку пакетов между разными сетями. Он обеспечивает работу интернета как сети сетей и позволяет связать разные локальные сети в одну большую систему. Здесь используются IP-адреса.
- логическая адресация
- доставкой пакетов между сетями
- маршрутизацией
- выбором следующего hop
- работой таблицы маршрутизации
- передачей пакетов через маршрутизаторы
- обработкой TTL
- фрагментацией и сборкой фрагментов на уровне IP
- контролем пути доставки между подсетями
- передачей данных через сеть сетей, то есть интернет
Протоколы - IPv4 - IPv6 - ICMP - IGMP - IPsec на сетевом уровне - RIP - OSPF - BGP как протокол маршрутизации - IS-IS
Устройства - маршрутизатор - L3-коммутатор - firewall с L3-функциями - ядро ОС (хост), когда оно принимает решение по маршруту
Как работает доставка
- устройство смотрит IP-адрес назначения;
- определяет, локальный он или удалённый;
- если удалённый — отправляет пакет на шлюз;
- роутер смотрит таблицу маршрутизации;
- выбирает следующий hop;
- пересылает пакет дальше.
Пакет — это единица данных сетевого уровня. Он содержит: - IP-адрес источника - IP-адрес назначения - служебные поля маршрутизации - полезную нагрузку
Логическая адресация - адреса, которые показывают место узла в сети и позволяют маршрутизировать пакеты.
IPv4 — это основной протокол сетевого уровня в классическом интернете, который использует 32-битные адреса. Пример:
192.168.1.10/24
- сеть: 192.168.1.0
- хост: 10
Поля IPv4 - Version - IHL - Total Length - Identification - Flags - Fragment Offset - TTL - Protocol - Header Checksum - Source IP - Destination IP
IPv6 - использует 128-битный адрес. Пример: 2001:0db8:85a3::8a2e:0370:7334
TTL (Time To Live) — это поле IP-пакета, которое ограничивает количество переходов пакета через роутеры. Чтобы пакет не ходил бесконечно по сети, если возникла петля маршрутизации.
- хост отправляет пакет с TTL, например 64
- каждый роутер уменьшает TTL на 1
- если TTL становится 0, роутер отбрасывает пакет
- обычно отправляет ICMP Time Exceeded
Hop — это один переход пакета через маршрутизатор. Next hop — это следующий маршрутизатор, которому нужно передать пакет на пути к цели. Роутер обычно не знает сразу весь путь "по всем устройствам до конца". Он знает: какой маршрут выбрать, куда передать пакет следующим шагом.
Default gateway — это маршрутизатор, которому хост отправляет пакеты для удалённых сетей, если у него нет более точного маршрута.
Маршрутизация — это процесс выбора пути, по которому пакет пойдёт к сети назначения. Маршрутизацию выполняют: - хосты — когда выбирают локальный интерфейс и gateway - роутеры — когда пересылают пакет дальше - L3-коммутаторы — в пределах своих L3-функций
Таблица маршрутизации — это набор маршрутов, по которым устройство понимает, куда отправлять пакеты. В ней обычно есть: - сеть назначения - маска/префикс - next hop - интерфейс выхода - метрика
Какие бывают маршруты: - connected route -- Маршрут в сеть, к которой интерфейс подключён напрямую. - static route -- Маршрут, который администратор прописал вручную. - dynamic route -- Маршрут, который устройство узнало от протокола маршрутизации. - default route -- Маршрут "по умолчанию", если ничего более конкретного нет.
Longest Prefix Match - Когда есть несколько маршрутов, выбирается маршрут с самым длинным совпадающим префиксом.
Потому что более конкретный маршрут должен иметь приоритет над более общим. Пример:
10.0.0.0/8, 10.1.0.0/16, 10.1.2.0/24.
Если пакет идёт в 10.1.2.5, будет выбран маршрут 10.1.2.0/24, потому что он самый конкретный.
MTU — это максимальный размер пакета или кадра, который можно передать на конкретном канале без фрагментации. Сетевой уровень должен учитывать:
- ограничения канального уровня
- Path MTU Discovery
- возможность фрагментации
- ICMP Fragmentation Needed
Если пакет слишком большой для канала с данным MTU, может понадобиться фрагментация. Когда размер IP-пакета больше, чем максимально допустимый размер полезной нагрузки на следующем участке. Пакет делится на несколько фрагментов, которые передаются отдельно. Фрагментация в IPv4 возможна, но считается нежелательной. В IPv6 маршрутизаторы не фрагментируют пакет так же, как в IPv4; там используют другие механизмы.
ICMP — это служебный протокол сетевого уровня. IP сам по себе — довольно "немой" протокол. ICMP позволяет сообщить: пакет не дошёл, TTL закончился, сеть недоступна, нужен меньший MTU. Используется для:
- сообщений об ошибках
- диагностических сообщений
- ping
- traceroute
- Echo Request
- Echo Reply
- Destination Unreachable
- Time Exceeded
- Fragmentation Needed
Надежность: сетевой уровень сам по себе обычно не гарантирует надёжную доставку. IP — это протокол типа best effort. Это значит: пакет может дойти, может задержаться, может потеряться, может прийти вне ожидаемого порядка. Надёжность обычно обеспечивает уже TCP на транспортном уровне.
Best Effort: Сетевой уровень старается доставить пакет, но не обещает: доставить обязательно, доставить в правильном порядке, доставить только один раз, доставить без потерь. Потому что сетевой уровень должен быть: масштабируемым, быстрым, универсальным.
L4 Транспортный уровень¶
Транспортный уровень отвечает за доставку данных между процессами и приложениями на конечных хостах. Он доводит данные до нужной программы внутри устройства. Здесь используются порты. Транспортный уровень отвечает уже не просто за "доставить пакет", а за "правильно передать данные между программами".
Чем занимается
- разбиением данных на сегменты
- доставкой между приложениями
- работой с портами
- надёжностью
- контролем порядка
- повторной передачей потерянных данных
- управлением потоком
- контролем перегрузки
Протоколы Поверх TCP - HTTP - HTTPS - SSH - SMTP - IMAP - FTP
Протоколы Поверх UDP - DNS - DHCP - NTP - VoIP - многие игровые протоколы - QUIC
Устройства
Почти все функции транспортного уровня выполняются на конечных устройствах, а не в обычных коммутаторах и маршрутизаторах. - ОС клиента - ОС сервера - приложения - иногда firewall/load balancer анализирует L4
Порт — это числовой идентификатор приложения или сервиса на устройстве. IP-адрес указывает, какой хост, а порт указывает, какое приложение на этом хосте.
Мультиплексирование - Это процесс, когда транспортный уровень собирает данные от разных приложений и отправляет их через один сетевой стек.
Демультиплексирование - Это обратный процесс: транспортный уровень на принимающей стороне смотрит на порт и решает, какому приложению передать данные.
- Соединяемый транспорт на L4 Пример: TCP.
- перед началом обмена устанавливается соединение;
- поддерживается состояние соединения;
- обеспечивается надёжность;
-
контролируется порядок.
-
Несоединяемый транспорт на L4. Пример: UDP.
- соединение не устанавливается;
- данные отправляются сразу;
- надёжность не гарантируется;
- порядок не гарантируется;
- протокол проще и легче.
TCP (Transmission Control Protocol) — это транспортный протокол, который обеспечивает: - надёжную доставку - упорядоченную доставку - доставку потока байтов - контроль потока - контроль перегрузки
TCP делает из ненадёжной пакетной сети более удобный надёжный поток данных между двумя приложениями. То есть приложение работает так, будто есть стабильный поток байтов, хотя внизу сеть может: терять пакеты, менять порядок доставки, задерживать сегменты.
Основные свойства TCP: - соединяемый - надёжный - потоковый - двунаправленный - упорядоченный - использует подтверждения - повторно передаёт потерянные данные - регулирует объём передаваемых данных
Как TCP работает
- Установление соединения Перед передачей данных TCP обычно устанавливает соединение через three-way handshake.
- клиент отправляет SYN;
- сервер отвечает SYN-ACK;
-
клиент отвечает ACK. После этого соединение считается установленным.
-
Передача данных После установки соединения:
- данные разбиваются на сегменты
- каждому сегменту назначается номер последовательности
- принимающая сторона подтверждает получение
-
если сегмент потерялся, он отправляется заново
-
Завершение соединения Обычно соединение закрывается через обмен FIN/ACK.
Важно понимать: TCP не видит "сообщения" так, как их видит приложение. TCP работает как поток байтов. Это значит: - приложение пишет поток данных - TCP может разбить его на сегменты как ему удобно - на принимающей стороне данные собираются обратно в поток
Например:
- приложение отправило
5000байт - TCP может передать их как
3сегмента - приложение на приёме снова получит поток байтов, а не "исходные три кусочка"
Основные поля TCP-заголовка: - Source Port - Порт отправителя. - Destination Port - Порт получателя. - Sequence Number - Показывает позицию байтов в потоке. - Acknowledgment Number - Показывает, какие данные уже подтверждены. - Flags - SYN - Используется при установлении соединения. - ACK - Подтверждение получения данных. - FIN - Корректное завершение соединения. - RST - Аварийный сброс соединения. - PSH - Подсказка быстрее передать данные приложению. - URG - Срочные данные, исторически редкий случай. - Window Size - Показывает, сколько данных можно отправлять без подтверждения. - Checksum - Проверка целостности сегмента. - Urgent Pointer - Options
TCP обеспечивает надёжность за счёт: - sequence numbers - acknowledgments - retransmissions - таймеров - контроля окна
Что происходит при потере сегмента? Если отправитель не получил подтверждение: - он ждёт timeout - или понимает потерю по duplicate ACK - и отправляет сегмент заново
Сегменты TCP могут прийти: - не по порядку - с задержкой - с дубликатами
TCP на принимающей стороне: - сортирует данные по sequence number - отбрасывает дубликаты - восстанавливает правильный порядок
Контроль потока - Flow control нужен, чтобы быстрый отправитель не перегрузил медленного получателя. Для этого используется TCP window. Получатель сообщает: сколько данных он может сейчас принять. Отправитель не должен отправлять больше этого объёма без подтверждения.
Контроль перегрузки - Congestion control - нужен, чтобы не перегружать саму сеть. Это уже не про буфер получателя, а про состояние сети между узлами. Если отправлять слишком быстро: - маршрутизаторы начнут дропать пакеты - сеть будет перегружена - производительность упадёт
TCP старается: - начинать осторожно - увеличивать скорость постепенно - уменьшать скорость при признаках потерь или перегрузки
MSS (Maximum Segment Size) — это максимальный объём полезных данных TCP в одном сегменте без учёта TCP/IP-заголовков. Он связан с MTU канала и помогает избегать лишней фрагментации.
TCP handshake - Это процесс установления TCP-соединения. Он нужен, чтобы: - согласовать начальные sequence numbers - проверить доступность другой стороны - установить состояние соединения - согласовать параметры TCP
- Клиент -> SYN
- Сервер -> SYN-ACK
- Клиент -> ACK
- После этого начинается передача данных.
Завершение TCP-соединения - Обычно соединение закрывается мягко: - одна сторона отправляет FIN - другая подтверждает - затем отправляет свой FIN - первая сторона подтверждает
UDP (User Datagram Protocol) — это простой транспортный протокол без установления соединения. Он: - не устанавливает соединение заранее - не гарантирует доставку - не гарантирует порядок - не делает повторных передач - не делает сложный контроль перегрузки как TCP
Главная идея UDP: Минимальный транспорт: есть порты, есть датаграмма, есть checksum — и всё. Приложение само решает, нужна ли ему надёжность и как с ней работать.
Свойства UDP: - несоединяемый - простой - быстрый - без гарантий доставки - без гарантий порядка - без повторных передач - без состояния соединения как в TCP
Как ОС использует транспортный уровень. Когда приложение хочет передать данные: 1. оно открывает сокет 2. выбирает TCP или UDP 3. ОС назначает локальный порт 4. транспортный уровень создаёт сегмент/датаграмму 5. данные передаются вниз в IP
На приёме: 1. IP доставляет данные на хост 2. транспортный уровень смотрит порт 3. передаёт данные нужному приложению
Сокеты - Именно через сокеты приложения работают с транспортным уровнем. Упрощённо сокет связывает (TCP-сокет, UDP-сокет): - IP-адрес - порт - протокол
L5 Сеансовый уровень¶
Сеансовый уровень отвечает за установление, поддержку и завершение сеанса связи между приложениями. Главная задача: Организовать логический диалог между двумя сторонами.
В реальных TCP/IP-сетях функции сеансового уровня часто "размазаны" по:
- прикладным протоколам;
- библиотекам;
- TLS-сессиям;
- механизмам авторизации и поддержания соединения.
Что сюда относят - открытие сеанса; - поддержка сеанса; - восстановление сеанса; - управление диалогом; - синхронизация обмена.
Протоколы: В современной практике этот уровень редко выделяют отдельно как чистый самостоятельный слой, но сюда логически относят:
- RPC;
- NetBIOS session services;
- механизмы управления сессией в прикладных протоколах;
- установление и поддержка логического взаимодействия между приложениями.
L6 Уровень представления¶
Этот уровень отвечает за формат данных, их представление и преобразование. Главная задача - Сделать так, чтобы данные были понятны обеим сторонам.
Основные функции - преобразование форматов; - кодировки; - сериализация; - шифрование; - сжатие.
Примеры
- ASCII;
- UTF-8;
- JSON;
- XML;
- JPEG;
- MPEG;
- TLS/SSL частично часто логически относят сюда или между L6 и L7;
- ASN.1.
Например:
- приложение кодирует текст в UTF-8;
- сжимает данные;
- шифрует их через TLS;
- отправляет дальше.
Этот уровень отвечает не за путь доставки, а за то, в каком виде данные представлены.
L7 Прикладной уровень¶
Прикладной уровень — это уровень, на котором работают сетевые приложения и пользовательские сервисы.
Главная задача - Дать приложениям возможность обмениваться данными по сети.
Протоколы
- HTTP / HTTPS;
- DNS;
- DHCP;
- FTP;
- SMTP;
- IMAP;
- POP3;
- SSH;
- Telnet;
- NTP;
- SNMP;
- SIP;
- MQTT;
- WebSocket.
Именно здесь появляются понятные пользователю вещи:
- открытие сайта;
- отправка письма;
- загрузка файла;
- DNS-запрос имени;
- получение времени с NTP-сервера.
Устройства
Это в первую очередь:
- клиентские приложения;
- браузеры;
- почтовые клиенты;
- веб-серверы;
- DNS-серверы;
- DHCP-серверы.
Прикладной уровень — это то, с чем непосредственно работают программы.