- •Базовый курс по компьютерным сетям
- •Простая сеть на коммутаторе Как было раньше (топология общей шины):
- •Топология каждый на каждого (Full-Mesh):
- •Топология звезда:
- •Структура мас адреса
- •Режимы работы
- •2. Простая сеть на маршрутизаторах
- •Структура ip-адреса v4
- •Переменная длина маски подсети
- •Маска подсети
- •Широковещательный пакет
- •3. Ip адресация
- •3 Диапазона частных адресов:
- •172.16.55.255 - Широковещательный ip адрес (адрес широковещательной рассылки);
- •172.16.255.255 - Широковещательный ip адрес
- •Делим адреса на сетевые и хостовые внутри октета
- •Сокращение ip адресов
- •Классовые сети
- •Зарезервированные ip адреса
- •4. Модель osi
- •Структура заголовка протокола Ethernet
- •(Определяет как данные будут передаваться внутри канальной среды):
- •Структура ip заголовка (l3 Header)
- •Структура udp заголовка (l4 Header)
- •Структура tcp заголовка
- •Рассмотрим процесс передачи данных по сети через роутер
- •Рассмотрим процесс передачи данных по сети через коммутатор
- •Виды сетей и среды передачи сигнала Виды сетей
- •Виды физических сред передачи данных
- •Коаксиальный кабель
- •Витая пара
- •Протоколы канального уровня
Структура ip заголовка (l3 Header)
для передачи между канальными средами
Появляется IP адресация!
Поля:
Версия - какая версия IP протокола v4 или v6
IHL - размер заголовка (многие поля плавающие в L3)
Тип обслуживания - для механизма очередей, в какой очерёдности посылать пакет (при большой нагрузке можем сказать насколько важный пакет для передачи)
Длина пакета - какого размера весь пакет, включая пользовательские данные.
Время жизни (TTL) - для того чтобы предотвратить петли маршрутизации. Мы задаём определённое количество жизней (255 обычно) проходя через каждый роутер отнимается “одна жизнь”. В итоге через 255 роутеров, пакет удалится. Это необходимо, чтобы не было блуждающих в сети пакетов.
Протокол - для какого вышестоящего протокола пакет (для UDP или TCP);
Контрольная сумма заголовка - считается чек сумма от полей (не проверяется целостность данных!!), только целостность заголовка.
Опции - редко используется, дописывается для специфических устройств (например - система контроля дверных замков);
Смещение - добивает 00 к полю Опции.
Данные - наши данные.
Идентификатор, Флаги и Смещение фрагмента - используются когда мы не можем передать данные одним пакетом, и разбиваем его на несколько пакетов.
Например, разбили наши данные на 4 части, то:
Идентификатор - пишется единый для всех 4х ID.
Флаги - указано что пакет фрагментированный а не единый. В последнем фрагменте также стоит флаг что он последний.
Смещение фрагмента - нумерация пакета, какой пакет по счёту.
Структура udp заголовка (l4 Header)
Осуществляет разделение трафика приложений.
Мы хотим поиграть в игру Delta Force по сети через UDP, для этого:
Отправляем запрос, генерируя случайный порт источника (например 2000),
Порт назначения указываем = 35.
Сервер игры принимает на 35 порту данные,
Меняет местами порт источника и порт назначения и отвечает на 2000 порт.
Контрольная сумма - если не сходится, пакет отбрасывается (удаляется). Такое допустимо при отправке аудио или видео сигнала. Но недопустимо при передаче например электронной почты.
UDP просто отправляет данные, без установки сессии, ему не важно данные дойдут или нет.
Структура tcp заголовка
Функции:
Выполняет функцию контроля доставки. Если контрольная сумма не сходится, то данные запрашиваются еще раз.
Механизм сборки пакета в правильной последовательности (при разбивке данных на разные пакеты). Наши пакеты могут прийти не в правильной последовательности, TCP всё равно соберёт всё верно.
Установление сессии путем трёхэтапного рукопожатия.
Пори источника - случайный.
Порт назначения - обычно конкретный, исходя из сервисов.
Порядковый номер - рассмотрим позже
Номер подтверждения - рассмотрим позже
Длина заголовка - определяет сколько бит заголовок, сколько бит данные.
Флаги - для установления сессии
Размер окна - число, говорящее на какое число пакетов отправлять подтверждение о получении пакетов. Размер этого числа зависит от качества работы сети, постепенно увеличивается, если потери встречаются очень редко.
Контрольная сумма - математ. операция от всех полей и данных для контроля целостности.
Указатель важности - уровень важности данного пакета.
Опции - у TCP есть масса дополнений и расширений, взаимодействие с которыми происходит через это поле.
Процесс установления TCP сессии:
Генерируется случайный порт источника;
Порт назначения всегда определен, например 80 порт, если мы стучимся к веб-серверу;
В поле порядковый номер генерируется случайное число;
Устанавливается флаг SYN (флаг желания установки сессии);
Данные отправляются, доходят до сервера;
Сервер меняет местами порт источника и порт назначения;
Порядковый номер - генерируется любое число;
Номер подтверждения, прибавляет 1 к порядковому номеру, который пришел;
К флагу SYN добавляется флаг ACK
Отправляет данные клиенту;
Клиент меняет местами порт источника и порт назначения;
Номер подтверждения, прибавляет 1 к порядковому номеру, который пришел;
Оставляет только флаг ACK
Данные отправляются, доходят до сервера;
Установка сессии завершена! У нас произошло трехэтапное рукопожатие (3-way handshake).
Когда сессия установлена, поля Порядковый номер и Номер подтверждения используются по другому. В Порядковом номере указывается номер пакета, в номере подтверждения указываются номера пакетов которые уже были получены стороной отправления.
Подробно рассмотрим поле данные, для каждого из уровней.
На канальном уровне данными является: Заголовок IP + другие данные;
Данными для заголовка IP будет: Заголовок TCP с данными;
Данными для заголовка TCP будет: например протокол http с пользовательскими данными (например, с html кодом);
Всё это дело называется ”Инкапсуляция данных”
