Please enable JavaScript.
Coggle requires JavaScript to display documents.
OSI + TCP/IP (смешанная модель) - Coggle Diagram
OSI + TCP/IP (смешанная модель)
Физический
Передача с учетом особенностей среды
Выбор способа кодирования битов
Канальный
Задачи
Определение границ кадров
Получение подтверждения о доставке кадра
Контроль целостности
Контрольные суммы
Коды коррекции ошибок
Добавление избыточных данных
Перебор вариантов
payload
до соответствия
Шумный канал требуется больше избыточности
Управление доступом к разделяемой среде
(MAC - Media access control)
Выбор передающего
Разрешение конфликтов с помощью стратегий ожидания после коллизии
Мультиплексирование
По времени (фрагменты от разных станций в каждом пакете)
По частоте
Кодовое
В сумме векторов проверяется наличие нужного:
(a + b + c) × c = ac + bc +
cc
= 0 + 0 + 1
Логическая единица каждой станции в виде уникального вектора
Векторы станций взаимно ортогональны - их произведение равно 0
Типы каналов
Симплекс
Дуплекс
Полудуплекс (поочередная передача в обоих направлениях)
Транспортный
Представители
UDP
Датаграммы без установки соединения и подтверждения
Потерянные датаграммы не блокируют отправку новых
Тривиальная обертка над сетевым уровнем
TCP
Сегментация больших данных с контролем целостной доставки
Контроль загруженности канала
3-way handshake
SYN(x) ->
<- ACK(x + 1), SYN(y)
SYN(y + 1) ->
Синхронизация сегментов
Начало нумерации с
random()
для безопасности
Каждый SYN(n) подтверждается ACK(n+1)
Порт
Идентифицирует процессы(программы) отправителя и получателя пакета
Процесс может запросить у ОС конкретный порт, либо любой свободный
Если процесс занимает порт 80 для протокола TCP, то другой процесс может занять порт 80 для протокола UDP
Отправителю не обязательно указывать "обратный адрес", если он не хочет получить ответ
Сетевой
Сеть
Компоненты
Роутер
Перенаправление пакетов по своей таблице маршрутизации
Перенаправление на шлюз по умолчанию при отсутствии маршрута
Свитч и хаб для организации локальных сетей
NAT
Связывает каждую комбинацию серого адреса и порта с уникальным портом совместного белого адреса
Нарушает инкапсуляцию протоколов, смешивая TCP и IP
Экономия адресного пространства сети
Прокси-сервер
При получении запроса, открывает новое соединение, не закрывая старое
Позволяет обращаться по серыми адресами его локальной сети
Получает от клиента пакет в пакете
VPN
Виртуальная сеть с зашифрованным трафиком. Трафик проксируется VPN-сервером.
Топологии
Одноранговая (Peer-to-peer)
Каждый узел одновременно клиент и сервер
Могут присутствовать координирующие серверы (трекеры)
DHT
Достаточно узнать у трекера адрес любого узла сети
Оверлейная сеть с распределенными хэш-таблицами. Популярная реализация - Kademlia
Каждый узел имеет случайный ID в виде hash и собирает из сети информацию об адресах ближайших (по ID) узлов
Иерархическая
Напрямую соединенные узлы информируют о своих IP адресах по протоколу ARP
Маршрутизация
Алгоритмы
По отслеживанию состояния канала
Сбор полной топологии сети каждым роутером
Обмен заливкой информацией о соседях
Использование алгоритмов нахождения оптимального маршрута
По вектору расстояний
Обмен таблицами расстояний между соседями
Уязвимость к отключению роутеров:
Передача позитивной информации об отключенном роутере соседу, через которого проходил этот маршрут
(проблема "счета до бесконечности")
Вычисление лучшего транзитного соседа до каждого узла
Зоны
Внутридоменная: можно использовать любой алгоритм
Междоменная: соединяет АС (автономные системы) по общему алгоритму
Border Gateway Protocol:
Доминирующий протокол междоменной маршрутизации
Использует алгоритм по вектору расстояний
Таблица
Адрес сети
Маска сети, чтобы понять, что искомый адрес внутри
Адрес шлюза, знающего эту сеть
Запись с более длинной маской чаще содержит более короткий маршрут
Краткость дальнейшего маршрута часто пропорциональна длине маски найденной сети для искомого адреса
Прикладной
Подключение к сети (DHCP):
адрес
маска подсети
адреса DNS
Удаленное управление ОС (RDP, SSH)
Сокет
Удобная абстракция двусторонней подписки
Передача файлов по FTP
Передача HTML по HTTP (методы GET, POST и т.д.)
Стриминг
Пакеты приходят неоднородно по времени
Буферизация для плавного отображения ведет к задержке
BitTorrent
torrent-файл хранит информацию о трекере и карту кусочков загружаемого файла в виде хэш-сумм
Клиент с интервалом сообщает трекеру, какие кусочки есть у него, в ответ получает, у каких узлов есть нужные ему кусочки
В BitTorrent v2 пиры могут находить друг друга почти без трекера посредством DHT
DNS
У домена (н-р,
ru
), содержащего под-домены может быть свой dns-сервер
DNS-сервер может перенаправить на DNS-сервер следующего уровня
Примечания
Уровень добавляет заголовок перед передачей и удаляет после приема
Маска нужна шлюзу, но зачем ПК знает маску лок.сети?
Транспортный - взаимодействие программ
Сетевой - взаимодействие узлов сети
Канальный - взаимодействие аппаратного обеспечения