kornast.ucoz.ru

Download Report

Transcript kornast.ucoz.ru

Вычислительные системы, сети и
телекоммуникации
Коробецкая Анастасия Александровна
e-mail: [email protected]
Kornast.ucoz.ru
1 семестр – Зачет (минимум 50 баллов)
10
Посещение лекций
20
Проверочные работы (тесты, задачи)
40
Лабораторные работы (4)
30
Зачет
Л.р.1. Моделирование работы сети в NET-Simulator
Л.р.2. Пинг и трассировка
Л.р.3. Сокеты. Многопользовательский чат
Л.р.4. TCP-клиент
2 семестр - Экзамен
10
Посещение лекций
10
Проверочные работы (тесты, задачи)
40
Лабораторные работы (3)
40
Экзамен
Л.р.1. HTTP-сервер
Л.р.2. Почтовый клиент для отправки писем
Л.р.3. HTTP-клиент. Парсер сайтов
2
Основные понятия
Информационная сеть (вычислительная, компьютерная, коммуникационная сеть,
network) – это система распределенных на территории аппаратных, программных и
информационных ресурсов, связанных между собой каналами передачи данных.
Пакет (кадр, блок) – «порция» информации, передаваемая в сети.
Пакет (Packet)
Заголовок (Header) Данные (Data)
Абонент (узел, хост, станция) — это устройство, подключенное к сети и активно
участвующее в информационном обмене.
Абонент
Клиент
(Рабочая станция)
Сервер
Выделенный
сервер
Невыделенный
сервер
3
Классификации компьютерных сетей
В зависимости от того, какие абоненты входят в сеть:
– одноранговые сети
– сети с выделенным сервером.
По составу вычислительных средств:
– однородные – объединяют однородные вычислительные средства (компьютеры);
– неоднородные – объединяют различные вычислительные средства (например: ПК,
торговые терминалы, веб-камеры и сетевое хранилище данных).
По способу связи:
– проводные;
– беспроводные.
По масштабности выделяют:
– локальные (ЛВС, LAN, Local Area Network) сети;
– региональные (MAN, Metropolitan Area Network) сети;
– глобальные (WAN, Wide Area Network или GAN, Global Area Network) сети.
Корпоративные сети, как и региональные, могут иметь черты как локальных, так и
глобальных сетей.
4
Особенности локальных и глобальных сетей
Локальная сеть
1. Высокая скорость передачи
информации, большая пропускная
способность сети.
2. Высококачественные каналы связи
(низкий уровень ошибок передачи).
3. Эффективный, быстродействующий
механизм управления обменом по
сети.
4. Заранее четко ограниченное
количество компьютеров,
подключаемых к сети.
Глобальная сеть
1. Возможна низкая скорость
передачи.
2. Низкое качество каналов связи.
3. Механизм управления обменом в
них не может быть гарантированно
быстрым.
4. Сеть рассчитана на неограниченное
число абонентов.
5
Основные характеристики информационных сетей
Самое общее требование, которое можно высказать в отношении работы сети – это
выполнение сетью того набора услуг, для оказания которых она предназначена.
Основные требования, предъявляемые к информационным сетям:
– Производительность
– Надежность
– Расширяемость и масштабируемость
– Прозрачность
– Управляемость
– Совместимость
Основные характеристики производительности сети:
– время реакции;
– скорость передачи трафика;
– пропускная способность;
– задержка передачи.
Для оценки надежности сложных систем применяется набор характеристик:
–готовность;
–сохранность данных;
–согласованность (непротиворечивость) данных;
–вероятность доставки данных;
–безопасность;
–отказоустойчивость.
6
Основные характеристики информационных сетей
Расширяемость (extensibility) – возможность сравнительно легкого добавления
отдельных элементов сети (пользователей, компьютеров, приложений, служб),
наращивания длины сегментов сети и замены существующей аппаратуры более
мощной.
Масштабируемость (scalability) означает, что сеть позволяет наращивать количество
узлов и протяженность связей в очень широких пределах, при этом
производительность сети не ухудшается.
Прозрачность — свойство сети скрывать от пользователя детали своего внутреннего
устройства, что упрощает работу в сети.
Управляемость сети подразумевает возможность централизованно
контролировать состояние основных элементов сети, выявлять и решать проблемы,
возникающие при работе сети, выполнять анализ производительности и
планировать развитие сети.
Совместимость (интегрируемость) означает, что сеть может включать в себя
разнообразное программное и аппаратное обеспечение, то есть в ней могут
сосуществовать различные операционные системы, поддерживающие разные стеки
коммуникационных протоколов, и работать аппаратные средства и приложения от
разных производителей.
7
Эталонная модель взаимодействия открытых систем
(ЭМВОС, OSI – Open Systems Interconnection Basic Reference Model)
Уровни взаимодействия:
7. Прикладной
6. Представления
Программное обеспечение
5. Сеансовый
4. Транспортный
- промежуточный уровень
3. Сетевой
2. Канальный
Аппаратное обеспечение
1. Физический
8
Взаимодействие уровней
Протокол 7
7A
7B
...
...
...
2A
Протокол 2
2B
Интерфейс 1A-2A
1A
Узел A
Интерфейс 1B-2B
Протокол 1
1B
Узел B
Формализованные правила, определяющие последовательность и формат
сообщений, которыми обмениваются сетевые компоненты, лежащие на одном
уровне, но в разных узлах, называются протоколом
Интерфейс определяет последовательность и формат сообщений, которыми
обмениваются сетевые компоненты, лежащие на соседних уровнях в одном узле.
Иерархически организованный набор протоколов, достаточный для организации
взаимодействия узлов в сети, называется стеком протоколов.
9
ФИЗИЧЕСКИЙ И КАНАЛЬНЫЙ
УРОВНИ OSI
10
Физический и канальный уровни ЭМВОС
Физический (1) уровень (Physical Layer) отвечает за кодирование
передаваемой информации в уровни сигналов, принятые в используемой среде
передачи, и обратное декодирование. Здесь же определяются требования к
соединителям, разъемам, электрическому согласованию, заземлению, защите от
помех и т.д.
Канальный (2) уровень или уровень управления линией передачи (Data link
Layer) отвечает за формирование пакетов (кадров) стандартного для данной сети
вида, включающих начальное и конечное управляющие поля. Здесь же
производится управление доступом к сети, обнаруживаются ошибки передачи
путем подсчета контрольных сумм, и производится повторная пересылка
приемнику ошибочных пакетов.
В канальном уровне выделяют два подуровня LLC и MAC:
Нижний подуровень (MAC – Media Access Control) обеспечивает
непосредственный доступ к среде передачи информации. Он напрямую
связан с аппаратурой сети. Здесь производится контроль состояния сети,
повторная передача пакетов при коллизиях, прием пакетов и проверка
правильности передачи.
Верхний подуровень (LLC – Logical Link Control) осуществляет управление
логической связью, то есть устанавливает виртуальный канал связи.
Подуровень LLC отвечает за взаимодействие с уровнем 3 (сетевым).
11
Основные сетевые устройства
– кабели для передачи информации;
– разъемы для присоединения кабелей;
– терминаторы;
– сетевые адаптеры;
– репитеры;
– трансиверы;
– концентраторы (хабы);
– коммутаторы (свичи);
– маршрутизаторы (роутеры);
– мосты;
– шлюзы.
Средой передачи информации называются те линии связи, по которым
производится обмен информацией между абонентами.
•сетевой кабель:
–коаксиальный кабель;
–витая пара;
–оптоволоконный кабель;
•беспроводная связь.
Среда передачи характеризуется максимальной скоростью и расстоянием
передачи, полосой пропускания, помехоустойчивостью и взломозащищенностью.
12
Витая пара
В настоящее время наиболее распространенный
тип кабеля для локальных сетей.
Может быть экранированной и неэкранированной.
Полоса пропускания 250-1000МГц, расстояние
передачи до 100м, скорость от 10Мбит/с до
40ГБит/С.
Категории кабеля от CAT1 (телефон) до CAT7a
(40GbEthernet). Самый распространенный - CAT5.
Для присоединения витой пары используются
разъемы (коннекторы) типа 8P8C (RJ-45).
Чаще всего витые пары используются
топологиях типа звезда или кольцо.
в
13
Коаксиальный кабель
Был сильно распространен до недавнего
времени. В настоящее время считается
устаревшим.
Чаще всего используется в сетях
топологией шина, реже – звезда.
Высокая
защищенность
экранированию.
Широкая
пропускания до 1ГГц.
с
благодаря
полоса
Монтаж кабеля значительно труднее и
дороже (в 1,5-2 раза, чем витой пары).
Скорости
до
10МБ/сек,
расстояние
передачи – 100-500м.
14
Оптоволоконный кабель
Передается не электрический сигнал, а
световой импульс.
Сильная
помехозащищенность
взломоустойчивость.
и
Широкая полоса пропускания (до 1000ГГц),
высокая скорость (до терабит в сек.) и
расстояние передачи (тысячи км).
Виды: одномодовый, многомодовый.
Высокая стоимость и трудность прокладки.
Требуются специальное оборудование для
преобразования электрического сигнала в
световой и обратно. Малейшие ошибки в
его установке или повреждение кабеля
сильно искажают или полностью нарушают
передачу.
15
Беспроводная связь
Радиоканал – наиболее распространенный канал беспроводной связи.
Особенность радиоканала состоит в том, что сигнал свободно излучается в
эфир, он не замкнут в кабель, поэтому возникают проблемы совместимости с
другими источниками радиоволн (радио- и телевещательными станциями,
радарами, радиолюбительскими и профессиональными передатчиками и т.д.).
Главными недостатками радиоканала является его плохая защита от
прослушивания и слабая помехозащищенность.
Радиоканал широко применяется в глобальных сетях как для наземной, так и
для спутниковой связи. В этом применении у радиоканала нет конкурентов, так
как радиоволны могут дойти до любой точки земного шара.
Иногда используют инфракрасный канал. Главное его преимущество по
сравнению с радиоканалом – нечувствительность к электромагнитным помехам.
Все беспроводные каналы связи подходят для топологии типа шина, в которой
информация передается одновременно всем абонентам. Но при использовании
узконаправленной передачи и/или частотного разделения по каналам можно
реализовать любые топологии.
16
ЛЕКЦИЯ 2
17
ПЕРЕДАЧА СИГНАЛА ПО СЕТИ
18
Режимы передачи данных
Симплексный – односторонняя передача (радио, телевидение).
Дуплексный (полнодуплексный) – одновременная двусторонняя передача
(телефон).
Полудуплексный – попеременная передача данных в обе стороны (рация).
Разделение канала
Разделение по времени – все устройства передают сигнал по очереди, в
течение отведенного промежутка времени.
Разделение по частоте – каждое устройство ведет передачу на своей частоте,
передача идет одновременно.
19
Кодирование цифрового сигнала
Информация в кабельных локальных сетях передается в закодированном
виде, то есть каждому биту передаваемой информации соответствует свой
набор уровней электрических сигналов в сетевом кабеле.
Существует большое число кодов цифрового сигнала.
Правильный выбор кода позволяет повысить достоверность передачи
информации, увеличить скорость передачи или снизить требования к выбору
кабеля.
20
Модуляция аналогового сигнала
Модуляция – способ представления цифрового кода в виде аналогового
сигнала (электромагнитных волн).
амплитудная
частотная
фазовая
21
Наиболее распространенные коды
Код NRZ (Non Return to Zero) – без возврата к нулю
Код RZ (Return to Zero )– с возвратом к нулю, трехуровневый
Манчестерский код (или код Манчестер-II) (не требует синхронизации)
22
Виды кодирования (и передачи) сигнала
Последовательное
за 1 момент времени (такт)
передается только 1 бит информации.
- медленнее
Параллельное
за 1 момент времени (такт)
передается одновременно несколько
бит (по параллельным каналам).
- рассинхронизация (на практике не
более 30м)
Не путать с параллельной/последовательной передачей пакетов!
Рассинхронизация при параллельной передаче битов
отправитель
получатель
0
1
2
23
Методы коммутации
Одно из основных отличий современных компьютерных
традиционных (телефонных, радио, телевизионных).
сетей
от
Основные методы коммутации, т.е. установления связи между абонентами
сети:
• Коммутация каналов (телефонная сеть)
• Коммутация пакетов (Интернет)
24
Коммутация каналов
Коммутация каналов предполагает, что между связывающимися абонентами
устанавливается непрерывная физическая связь. Промежуточные коммутаторы
передаваемые данные не задерживают.
+
1. Постоянная и известная скорость передачи данных
2. Низкий и постоянный уровень задержки передачи данных через сеть.
1. Возможен отказ сети на установление соединения («занято»).
2. Нерациональное использование пропускной способности физических каналов
(канал занят даже при паузе в передаче).
3. Обязательная задержка перед передачей данных из-за фазы установления
соединения.
АТС
АТС
АТС
АТС
Абонент Б
Абонент А
АТС
АТС
АТС
25
Коммутация пакетов
Коммутация пакетов – между абонентами не создается постоянное
соединение. Данные передаются отдельными частями (пакетами), каждый из
которых доставляется независимо от других. Коммутаторы анализируют сеть для
выбора оптимального маршрута доставки.
+
1. Высокая общая пропускная способность сети при передаче пульсирующего
(нестабильного) трафика.
2. Возможность динамически перераспределять пропускную способность.
1. Неопределенность скорости передачи данных между абонентами сети,
возможны задержки в очередях сети.
2. Возможные потери данных из-за переполнения буферов.

Пакет 1
Пакет 2
Пакет 3
Хост Б
Хост А
маршрутизатор
26
ОСНОВНЫЕ СЕТЕВЫЕ УСТРОЙСТВА
27
Сетевой адаптер
Назначение сетевого адаптера (сетевой карты) – сопряжение компьютера (или
другого абонента) с сетью, т.е. обеспечение обмена информацией между
абонентом и каналом связи в соответствии с принятыми правилами обмена
(протоколом).
ЦПУ
Магистральные
функции
Сетевой адаптер
Память
...
Компьютер
Сетевые
функции
Шина
(магистраль)
Сеть
Буфер
28
Промежуточные сетевые устройства
Репитеры или повторители (repeater) только восстанавливают ослабленные
сигналы (их амплитуду и форму), приводя их к исходному виду. Цель –
увеличение длины сети.
Трансиверы или приемопередатчики (от английского
TRANsmitter + reCEIVER) служат для передачи информации
между адаптером и кабелем сети или между двумя сегментами
сети. Трансиверы усиливают сигналы, преобразуют их уровни
или преобразуют сигналы в другую форму (например, из
электрической в световую и обратно, из проводного сигнала в
беспроводной).
Репитеры так же как трансиверы не производят никакой информационной
обработки проходящих через них сигналов.
29
Промежуточные сетевые устройства
Концентратор (хаб, hub) служит для объединения в общую сеть нескольких
сегментов. Любой пришедший пакет передается всем подключенным к
концентратору устройствам.
Концентраторы представляют собой несколько собранных воедино репитеров и
выполняют те же функции.
30
Промежуточные сетевые устройства
Коммутатор (свич, коммутирующий концентратор, switch), как и
концентраторы, служат для соединения сегментов в сеть, но выполняют более
сложные функции, производя сортировку поступающих на них пакетов.
Выполняет фильтрацию пакетов, и отправляет только в нужном
направлении. Определяет направление передачи на основе таблицы
коммутации MAC-адресов.
31
Промежуточные сетевые устройства
Мосты, маршрутизаторы и шлюзы служат для объединения в одну сеть
нескольких разнородных сетей.
Мосты (bridge) – наиболее простые устройства, служащие для объединения
сетей с разными стандартами обмена. Если подключить к мосту одинаковые
сети, то работает как и коммутатор.
В отличие от коммутаторов мосты принимают поступающие пакеты
целиком и в случае необходимости производят их простейшую обработку.
32
Промежуточные сетевые устройства
Маршрутизатор (router) осуществляют выбор оптимального маршрута для
каждого пакета для снижения нагрузки на сеть и обхода поврежденных
участков.
Применяются в сложных разветвленных сетях, имеющих несколько
маршрутов между отдельными абонентами. Решение о выборе маршрута
выполняется на основе таблицы маршрутизации (IP-адресов).
Существуют также гибридные маршрутизаторы (brouter), представляющие
собой гибрид моста и маршрутизатора. Они выделяют пакеты, которым нужна
маршрутизация и обрабатывают их как маршрутизатор, а для остальных
пакетов служат обычным мостом.
33
Промежуточные сетевые устройства
Шлюз (gateway) – это устройство для соединения сетей с сильно
отличающимися протоколами, например, для соединения локальных сетей с
большими компьютерами или с глобальными сетями.
Это самые дорогие и редко применяемые сетевые устройства. Шлюзы
реализуют связь между абонентами на верхних уровнях модели OSI (с
четвертого по седьмой).
Сетевой шлюз — это точка сети, которая служит выходом в другую сеть.
Сетевые шлюзы могут быть аппаратным решением, программным
обеспечением или тем и другим вместе, но обычно это программное
обеспечение, установленное на роутер или компьютер. Сетевой шлюз часто
объединен с роутером, который управляет распределением и конвертацией
пакетов в сети.
34
MAC-адрес
Каждое сетевое устройство имеет индивидуальный уникальный MAC-адрес,
назначаемый производителем («вшитый»). Это адрес канального уровня.
1 бит 1 бит
22 бита
24 бита
I/G U/G
OUI (идентификатор)
OUA (сетевой адрес)
UAA (46 бит)
OUA (Organizationally Unique Address) – уникальный адрес карты для данного
производителя.
OUI (Organizationally Unique Identifier) – идентификатор производителя.
Назначается организацией IEEE.
I/G (Individual/Group) указывает на тип адреса (0 - индивидуальный, 1 групповой). Пакеты с групповым адресом получат все имеющие этот групповой
адрес сетевые адаптеры.
U/L (Universal/Local) - определяет, как был присвоен адрес. Обычно установлен в
0. 1 означает, что адрес задан не производителем, а администратором локальной
сети («перепрошит» или назначен через драйвер устройства).
Широковещательная передача (broadcast, всем абонентам сети одновременно) –
специально выделенный сетевой адрес, все 48 битов установлены в 1.
35
Управление MAC-адресом в Windows
Через командную строку - getmac
>getmac
Физический адрес
===================
00-1D-60-74-8B-E8
08-00-27-00-48-68
Имя транспорта
==========================================================
\Device\Tcpip_{FDDB29EF-C5A1-4CDC-A665-C8D9BD639DA8}
\Device\Tcpip_{429B1394-0396-4FEB-A6C8-D5D5E5223F56}
Назначить MAC-адрес можно через
диспетчер устройств, в свойствах сетевой
карты – вкладка «Дополнительно», свойство
«Сетевой адрес».
36
ТОПОЛОГИИ ЛОКАЛЬНЫХ СЕТЕЙ
37
Топология локальных сетей
Топология локальных сетей – способ объединения компьютеров в сеть.
Основные топологии локальных сетей:
– шина (bus)
– звезда (star)
– кольцо (ring)
Другие топологии:
– точка-точка
– ячеистая
– сочетания основных топологий:
–дерево (снежинка)
–Token ring
–двойное кольцо
–и др.
38
Сеть «точка-точка»
Point-to-point
Простейшая одноранговая сеть. Соединяет 2 сетевых устройства напрямую.
Хост 1
Хост 2
Сеть 1
Сеть 2
Достоинства:
-простота
-дешевизна
Недостатки:
-только 2 хоста в сети
В проводном соединении используется специальный перекрестный кабель
(обычно витая пара) – кросс-овер.
В беспроводном соединении физически обеспечивается направленным
излучением (направленная антенна, лазер).
39
Шина
Все компьютеры в сети подключаются к одному общему каналу (кабелю). На
концах кабеля – терминаторы, не допускающие отражения сигнала. Удлинение
сети возможно с помощью репитеров или концентраторов.
Беспороводные сети с ненаправленным излучением также имеют топологию
шина.
Сигнал передается всем абонентам сети одновременно. Обычно одноранговая,
но есть и варианты с сервером.
Недостатки:
Достоинства:
-высока вероятность коллизий =>
-простота
низкая, негарантированная скорость
-дешевизна (мало кабеля)
передачи
-выход из строя любого узла не влияет
-повреждение кабеля останавливает
на работу сети
работу сети
40
Звезда
Все рабочие станции подключены к одному центральному узлу (серверу). Это
может быть компьютер, маршрутизатор, коммутатор. Наиболее
распространена на сегодня.
активная звезда
пассивная звезда
Сервер по очереди получает сигналы от каждого узла и передает только
предназначенные данному узлу пакеты.
Достоинства:
-невозможны
коллизии
=>
фиксированная задержка передачи
данных
-выход из строя рабочих станций не
останавливает сеть
Недостатки:
-дороговизна (кабель + сервер)
-выход
из
строя
сервера
останавливает всю сеть
-много рабочих станций сильно
загружает
сервер
=>
размер
ограничен
41
Кольцо
Каждый узел соединен ровно с 2-мя другими, так, что все узлы образуют кольцо.
Одноранговая сеть.
Передача ведется только в одну сторону (от одного соседа получаем пакеты,
другому передаем).
Получив пакет, узел проверяет, кому он предназначен и от кого пришел. Если
предназначен данному узлу – отправить подтверждение доставки. Если другому
узлу – переслать по кольцу дальше. Если пришел от самого себя, не передавать
(доставка невозможна).
Достоинства:
-невозможны
коллизии
=>
фиксированная задержка передачи
данных
-дешевле звезды
-большой размер (по протяженности сигнал не затухает)
Недостатки:
- выход из строя любого узла или
повреждение кабеля останавливает
сеть
-сложность поиска неисправностей
-размер ограничен
42
Ячейстая
Произвольное соединение узлов между собой. Чаще используется для
крупных сетей, связи матршрутизаторов. Одноранговая.
Достоинства:
-высокая надежность (только выход из
строя большого числа узлов может
остановить сеть)
- неограниченный размер (по числу
узлов)
Недостатки:
-избыточность и дороговизна
-сложность настройки и диагностики,
низкая управляемость
43
Снежинка (дерево)
Многоуровневая звезда. Позволяет разгрузить центральный сервер и
увеличить размер сети, но стоимость еще выше.
44
Двойное кольцо
Два кольца с передачей в противоположных направлениях. Очень большой
расход кабеля, но надежность и скорость куда выше. Только множественные
повреждения кабеля останавливают сеть.
При множественных повреждениях
кабеля сеть может распасться на
несколько отдельных сетей.
45
Token ring
Логическое кольцо, реализованное на физической топологии звезда.
Передача данных как по кольцу, но реально компьютеры подключены к
одному коммутатору, который передает пакеты от соседа к соседу.
Была очень популярна до распространения сетей Ethernet.
Высокая надежность, равноправие всех узлов. Дороговизна.
Коммутатор
46
Методы управления обменом
Коллизия – конфликт при одновременной передаче нескольких пакетов по сети,
который приводит к искажению либо потере этих пакетов.
Методы управления обменом устанавливают очередность доступа к сети (захвата
сети) всеми абонентами, желающими передавать данные по сети, для избежания
или разрешения возникших коллизий.
Методы управления обменом
Централизованные
Децентрализованные
Конфликты полностью
исключены
Детерминированные
Конфликты полностью
исключены
Случайные
Конфликты возможны,
но разрешимы
47
Централизованное управление
Применяется в топологии звезда, реже - шина.
Сервер
поочередно
опрашивает
все
периферийные станции и при необходимости
предоставляет им право передачи пакета. После
окончания передачи пакета право передавать
получит следующий по порядку узел (например, по
часовой стрелке – географический приоритет).
Особенности:
1. В каждый конкретный момент наивысшим приоритетом обладает следующий
по порядку абонент, но в пределах полного цикла опроса ни один из абонентов не
имеет никаких преимуществ перед другими.
2. Никому не придется ждать своей очереди слишком долго. Максимальная
величина времени доступа для любого абонента в этом случае будет равна
суммарному времени передачи пакетов всех абонентов сети кроме данного.
3. Никаких столкновений пакетов при этом методе в принципе быть не может, так
как все решения о доступе принимаются в одном месте.
4. При выходе из строя центра сеть прекращает работу.
5. Ограничение числа пользователей из-за возрастающей нагрузки на сервер.
48
Маркерное управление обменом
Децентрализованный детерминированный метод, применяется в сетях с
топологией кольцо, где все пакеты циркулируют по кругу, реже – в шине и
пассивной звезде (Token ring).
Маркер (эстафета) – небольшой управляющий пакет специального вида,
дающий право на передачу пакета.
Конфликты в такой сети невозможны.
СМ—свободный маркер, ЗМ— занятый маркер, МП— занятый маркер с
подтверждением, ПД—пакет данных
49
Децентрализованное случайное управление
Используется в равноправных сетях (шина, пассивная звезда).
Решение о том, когда можно передавать свой пакет, принимается каждым
абонентом на месте, исходя только из анализа состояния сети. Возникает
конкуренция между абонентами за захват сети.
Если сеть свободна (никто не передает своих пакетов), то абонент сразу
начинает свою передачу. Если же в момент возникновения заявки на передачу сеть
занята, то абонент ждет освобождения сети, и начинает передачу после ее
освобождения.
Возникновение коллизий возможно при одновременном начале передачи
несколькими абонентами
–когда сеть свободна (редко);
–сразу после освобождения сети (часто).
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) –
множественный доступ с контролем несущей и обнаружением коллизий. Если во
время передачи возникла коллизия, узел ждет случайное время и повторяет
попытку передачи.
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) –
множественный доступ с контролем несущей и избежанием коллизий. Перед
началом передачи в сеть запускается пробный пакет. Если сеть свободна,
начинается передача пакета. Если во время передачи другой узел запускает
пробный пакет, передача останавливается , и через случайный интервал времени
повторяется.
50
СТАНДАРТНЫЕ СЕТИ
51
Основные стандарты сетей
Стандарты сетей определяют принятую в сети среду передачи, топологию,
метод доступа, кодирование информации, формат пакета (кадра).
Исходя из этого определяется предельный размер сети, скорость передачи,
предельное число абонентов и т.д.
Большинство стандартов физических сетей разработано или одобрено
комитетом 802 IEEE (Институт инженеров по электротехнике и
электронике, Institute of Electrical and Electronics Engineers).
Физические сети
Проводные:
• Ethernet, Fast Ethernet, Gigabit Ethernet...
• Arcnet
• Token-Ring
• 100VG-AnyLAN
• FDDI
Беспроводные:
• Bluetooth
• Wi-Fi
• WiMAX
• GPRS
Виртуальные сети (VPN)
52
Ethernet
Стандарт IEEE 802.3 Сети Ethernet – самые распространенные кабельные сети.
•
•
•
•
•
•
•
•
•
топология – шина, пассивная звезда или дерево;
метод доступа – CSMA/CD;
манчестерский код
среда передачи:
– коаксиальный кабель (толстый 10BASE5 и тонкий 10BASE2),
– позже витая пара (10BASE-T);
скорость передачи – 10 Мбит/с;
максимальная длина сети – 5 км;
максимальное количество абонентов – до 1024;
длина сегмента сети – до 500 м;
количество абонентов на одном сегменте – до 100.
Основной недостаток – случайный доступ не гарантирует минимальную
задержку доставки сообщения.
53
Код 4B/5B
Каждые 4 бита исходных данных кодируются 5 битами передаваемых данных
и передаются в виде NRZ. Разработан для FDDI.
Главный принцип – избежать длинных последовательностей нулей и единиц.
Данные Код 4В/5В Данные Код 4В/5В
0000
11110
1000
10010
0001
01001
1001
10011
0010
10100
1010
10110
0011
10101
1011
10111
0100
01010
1100
11010
0101
01011
1101
11011
0110
01110
1110
11100
0111
01111
1111
11101
11111111 => 1110111101
10000001 => 1001001001
Для обеспечения скорости передачи 100 Мбит/с достаточно пропускной
способности кабеля 125 миллионов сигналов в секунду (125 МБод), а для
манчестерского кода - 200 МБод.
Бод – единица измерения скорости в сетях, символов в секунду.
Существуют и другие аналогичные коды 5B/6B, 6B/8B, 8B/10B.
54
Формат кадра Ethernet
Вторая версия кадра Ethernet используется во всех современных модификациях,
а также в некоторых других сетях.
Преамбула состоит из 8 байт, первые семь представляют собой код 10101010,
а последний байт (SFD – Start of Frame Delimiter) – код 10101011.
Поле EFD (End Frame Delimiter) задает конец кадра. Поле контрольной суммы
(CRC — Cyclic Redundancy Check), так же как и преамбула, SFD и EFD, формируются
и контролируются на аппаратном уровне.
Поле данных должно включать в себя от 46 до 1500 байт данных. Если пакет
должен содержать менее 46 байт данных, то поле данных дополняется байтами
заполнения.
Минимальная длина кадра (без преамбулы) составляет 64 байта (512 бит).
Кадры подразделяются на:
• информационные;
• сигнальные (служебные).
55
Fast Ethernet
Стандарт IEEE 802.3u
Основные отличия от Ethernet
• топология – только пассивная звезда или дерево;
• скорость передачи – 100 Мбит/с;
• три основных типа сегментов, отличающихся типами среды передачи
100BASE-T4 (счетверенная витая пара), в России не используется;
100BASE-TX (сдвоенная витая пара);
100BASE-FX (оптоволоконный кабель).
Физический интерфейс
100Base-FX
100Base-TX
Среда передачи
Оптическое волокно
Витая пара UTP Cat.5 (5e)
Сигнальная схема
4B/5B
4B/5B
Битовое кодирование
NRZ
MLT-3
Протяженность
сегмента
До 412 м (многомодовое),
до 2 км (дуплекс МмВ),
до 100 км (одномодовое)
До 100 м
56
Развитие Ethernet
Gigabit Ethernet (1000BASE-T, IEEE 802.3ab) — стандарт, использующий витую
пару категорий 5e. В передаче данных участвуют 4 пары. Скорость передачи
данных — 250 Мбит/с по одной паре. Расстояние до 100 метров. Чаще всего
применяется для связи между сетями Fast Ethernet или для доступа к
высокопроизводительным серверам.
1000BASE-TX использует раздельную приёмо-передачу (по одной паре в
каждом
направлении),
что
существенно
упрощает
конструкцию
приёмопередающих устройств. Отсутствие схемы цифровой компенсации
наводок и возвратных помех, в результате чего сложность, уровень
энергопотребления и цена становится ниже, но для стабильной работы по такой
технологии требуется кабельная система высокого качества, (кабель 6 категории).
На основе данного стандарта создано большое количество продуктов для
промышленных сетей.
Новый стандарт
поправкой IEEE.
10-гигабитного
Ethernet
(Ethernet
10G)
описывается
Самые новые, мало распространенные Ethernet 40G и Ethernet 100G, первое
оборудование появилось в 2009-2010гг.
Terabit Ethernet пока только планируется.
57
Token Ring
Стандарт IEEE 802.5. В настоящее время устарела. Основное преимущество –
ограничение максимального времени передачи (детерминированный доступ).
•
•
•
•
•
•
топология – кольцо, звезда+кольцо;
максимальное количество абонентов в сети – 96;
максимальная длина кабеля между абонентом и концентратором – 45 м;
максимальная длина кабеля между концентраторами – 45 м;
максимальная длина кабеля, соединяющего все концентраторы – 120 м;
скорость передачи данных – 4 Мбит/с и 16 Мбит/с
58
100VG-AnyLAN
Стандарт IEEE 802.12 Основная альтернатива Fast Ethernet.
Главные особенности:
• сравнительно невысокая стоимость аппаратуры (примерно вдвое дороже
оборудования наиболее популярной сети Ethernet 10BASE-T),
• централизованный метод управления обменом без конфликтов с запросом
приоритета,
• совместимость с Ethernet и Token-Ring на уровне формата пакетов,
• кодировка 5B/6B (не более 3 нулей или единиц подряд).
Основные технические характеристики:
• Скорость передачи – 100 Мбит/с.
• Топология – звезда, дерево.
• Метод доступа – централизованный, бесконфликтный.
• Среда передачи – счетверенная неэкранированная витая пара (кабели
категории 3, 4 или 5), сдвоенная витая пара (кабель UTP категории 5),
сдвоенная экранированная витая пара (STP), а также оптоволоконный кабель.
Сейчас в основном распространена счетверенная витая пара.
• Максимальная длина кабеля между узлами – 100 метров (для UTP кабеля CAT
3), 200 метров (для UTP кабеля CAT 5 и 5e), 2 километра (для оптоволоконного
кабеля).
• Максимальный размер сети – 2 километра (определяется допустимыми
задержками).
• Максимальное количество абонентов – 1024, рекомендуемое – до 250.
59
FDDI
Fiber Distributed Data Interface. Изначально ориентирован и на применение
оптоволоконного кабеля и скорость передачи 100 Мбит/с. Основан на Token Ring.
• Скорость передачи информации – 100 Мбит/с (200 Мбит/с для дуплексного
режима передачи).
• Топология – двойное кольцо, с возможностью включения концентраторов.
• Метод доступа – маркерный.
• Максимальное количество абонентов сети – 1000.
• Максимальная протяженность кольца сети – 20 километров.
• Максимальное расстояние между абонентами сети – 2 километра.
• Среда передачи – многомодовый оптоволоконный кабель (возможно
применение электрической витой пары – CDDI=Copper DDI).
Два типа абонентов:
• DAS (Dual-Attachment
Stations подключены к
двум кольцам);
• SAS (Single-Attachment
Stationsподключены
только к 1 кольцу)
При повреждениях кабеля сеть реконфигурируется, при
повреждении узлов может использоваться обходной
коммутатор.
60
Беспроводная связь
Существует два основных направления применения беспроводных компьютерных
сетей:
• Работа в замкнутом объеме (в пределах помещения);
• Соединение удаленных локальных сетей (или удаленных сегментов локальной
сети).
По дальности действия:
• Беспроводные персональные сети (WPAN — Wireless Personal Area
Networks). Bluetooth.
• Беспроводные локальные сети (WLAN — Wireless Local Area Networks). Wi-Fi.
• Беспроводные сети масштаба города (WMAN — Wireless Metropolitan Area
Networks). WiMAX.
• Беспроводные глобальные сети (WWAN — Wireless Wide Area Network). CSD,
GPRS, EDGE, EV-DO, HSPA.
Поскольку радиоканал не обеспечивает высокой степени защиты от
прослушивания, необходимо использовать специальные механизмы защиты
информации: аутентификация для противодействия несанкционированному
доступу к сети и шифрование для предотвращения перехвата информации.
61
Сравнение беспроводных технологий
Технология Стандарт
Wi-Fi
802.11a
802.11b
802.11g
Сеть
Локальная
802.11n
WiMax
Bluetooth
802.16d
802.16e
802.15.1
802.15.3
Региональная
802.11
Инфракрасная
линия
связи
Персональная
IrDa
Пропускная
способность
до 54 Мбит/с
до 11 Мбит/с
до 54 Мбит/с
Радиус
действия
300 м
300 м
300 м
до 450 Мбит/с
300 м
до 75 Мбит/с
до 40 Мбит/с
до 1 Мбит/с
до 2,1 Мбит/с
от 3 Мбит/с до 24
Мбит/с
25-80 км
1-5 км
10 м
100 м
5,0 ГГц
2,4 ГГц
2,4 ГГц
2,4 — 2,5 или
5,0 ГГц
1,5-11 ГГц
2,3-13,6 ГГц
2,4 ГГц
2,4 ГГц
100 м
2,4 ГГц
до 16 Мбит/с
Частоты
5-50см,
одноИнфракрасное
сторонняя – излучение
10 м
62
Wi-Fi (Wireless Fidelity)— торговая марка Wi-Fi Alliance для беспроводных сетей на
базе стандарта IEEE 802.11. Это целое семейство беспроводных сетей и стандартов.
802.11 - первоначальный стандарт WLAN (1-2 Мбит/с).
802.11a -54 Мбит/c, частота 5 ГГц
802.11b - 5,5 и 11 Мбит/с, частота 2,4 ГГц
802.11g - 54 Мбит/c, частота 2,4 ГГц (обратная совместимость с b)
Другие спецификации устанавливают требования к качеству, порядок связи для
равноправных абонентов, решают проблемы безопасности, особенности для
стран и регионов и др.
Метод доступа к сети – CSMA/CA (Carrier Sense Multiple Access/Collision
Avoidance). Сеть строится по сотовому принципу.
Оборудование включает
• точки беспроводного доступа (Access Point, = мост + концентратор)
• беспроводные адаптеры для каждого абонента.
Каждая точка доступа может обслуживать несколько абонентов, но чем
больше абонентов, тем меньше скорость передачи для каждого из них. Также
возможно подключение двух клиентов в режиме точка-точка (Ad-hoc).
63
WiMAX
Wireless MAN разработан с целью предоставления универсальной
беспроводной связи на больших расстояниях для широкого спектра устройств (от
рабочих станций и портативных компьютеров до мобильных телефонов).
Стандарт IEEE 802.16.
WiMAX следует считать жаргонным названием, так как это не технология, а
название форума, на котором Wireless MAN и был согласован.
WiMAX позволяет осуществлять доступ в Интернет на высоких скоростях, с
гораздо большим покрытием, чем у Wi-Fi-сетей. Подходит для решения задач:
• Соединения точек доступа Wi-Fi друг с другом и другими сегментами
Интернета.
• Обеспечения беспроводного широкополосного доступа как альтернативы
выделенным линиям.
• Предоставления высокоскоростных сервисов передачи данных и
телекоммуникационных услуг.
• Создания точек доступа, не привязанных к географическому положению.
64
Беспроводная связь между устройствами на расстоянии до 100 метров.
Спецификация IEEE 802.15.1 Версии 1.0-4.0 с различными скоростями
передачи (1-24Мбит/с).
Применяется метод расширения спектра со скачкообразной перестройкой
частоты (FHSS): несущая частота сигнала скачкообразно меняется 1600 раз в
секунду.
Последовательность переключения между частотами для каждого соединения
является псевдослучайной и известна только передатчику и приёмнику, которые
каждые 625 мкс (один временной слот) синхронно перестраиваются с одной
несущей частоты на другую. Таким образом, если рядом работают несколько пар
приёмник-передатчик, то они не мешают друг другу.
Этот алгоритм является также составной частью системы защиты
конфиденциальности передаваемой информации: переход происходит по
псевдослучайному алгоритму и определяется отдельно для каждого соединения.
65
Проблема «скрытого узла»
Беспроводные сети имеют топологию «шина» => случайный метод доступа =>
необходим контроль коллизий.
Возможна ситуация, когда хост «видит» базовую точку доступа, но не видит
другой хост в той же сети. В результате эти два хоста не могут определить
возникновение коллизий и возникают ошибки передачи.
Хост 2
базовая
станция
Хост 1
66
Проблема «незащищенного узла»
Проблема незащищенного узла возникает, когда узел ошибочно считает, что
не может осуществлять передачу другим узлам из-за соседнего передатчика.
Хост 1 и Хост 2 видят друг друга, но не видят «чужие» базовые станции.
Фактически, они не могут помешать друг другу связываться со своими
базовыми станциями, но контроль коллизий определяет сеть как занятую, и не
дает начать передачу.
базовая
станция 1
Хост 1
Хост 2
базовая
станция 2
67
RTS/CTS
Request To Send / Clear To Send
Решение проблем «скрытого узла» и «незащищенного узла».
RTS – сигнал, запрашивающий разрешение передачи (от отправителя).
CTS – сигнал, подтверждающий передачу (от получателя).
Любой узел, получивший CTS должен воздержаться от передачи данных.
68
СЕТЕВОЙ УРОВЕНЬ. СТЕК TCP/IP
69
Стек протоколов TCP/IP
OSI
TCP/IP
Протоколы
7. Прикладной
6. Представления
5. Прикладной
DNS, HTTP (WWW), FTP, SMTP,
TFTP, NFS,...
5. Сеансовый
4. Транспортный
4. Транспортный
3. Сетевой
3. Сетевой
2. Канальный
2. Звена данных
1. Физический
1. Физический
TCP
UDP
ARP, RARP ICMP IGMP RIP, OFSP, BPG
IP
Протоколы определяются
стандартом сети
70
Сетевой уровень
Сетевой уровень (Network Layer — NL) служит для образования сквозной
транспортной системы между оконечными устройствами пользователя через
все промежуточные сети связи – "из конца в конец".
Сетевые протоколы управляют адресацией, маршрутизацией, проверкой
ошибок и запросами на повторную передачу.
Логическая адресация. Необходима универсальная система адресации, в
которой каждый хост может быть идентифицирован уникально, независимо от
основной физической сети.
Маршрутизация. Чтобы передать пакет, средства сетевого уровня собирают
информацию о топологии сетевых соединений и используют ее для выбора
наилучшего пути.
Модель OSI допускает два основных метода взаимодействия абонентов в
сети:
– метод взаимодействия без логического соединения (метод дейтаграмм);
– метод взаимодействия с логическим соединением.
71
Протоколы сетевого уровня
IP – протокол адресации
ARP
протоколы прямого и обратного отображения адресов
RARP
ICMP – протокол служебных сообщений
IGMP – протокол управления группами
RIP
OFSP
протоколы маршрутизации
BGP
72
Протокол IP
Протокол включает описание адресации и структуры пакета.
IP – ненадежная служба доставки пакета без установления соединения, но с
"максимальными усилиями" (best-effort).
Пакет IP – дейтаграмма.
Каждая дейтаграмма транспортируется отдельно, может меняться их
порядок, они могут теряться и дублироваться. Маршрут не сохраняется.
Версии протокола IP:
– 4 версия (IPv4);
• классовая система адресации;
• бесклассовая система;
– 5 версия (не реализована);
– 6 версия (IPv6).
73
IP-адресация
Задача - обеспечить глобальную связь между всеми устройствами.
К IP-адресу предъявляются следующие требования:
– универсальность (два устройства в Интернете никогда не могут иметь
одного того же адреса);
– иерархичность;
– универсальность (для всех узлов);
– удобство.
74
IP-адресация версии 4
Стандарт протокола RFC 791.
Адресное пространство:
IP-адрес версии 4 состоит из 4 байт (32 бита). Максимальное число адресов
составляет 232 = 4 млрд. В реальности это число меньше, из-за наличия
зарезервированных диапазонов.
Способ представления:
двоичный
10010001 11011101 01010101 10010100
десятичный с точками
145.219.85.148
шестнадцатеричный
0x91dd5594
Примеры
10000001 00001011 00001011 11101111
11000001 10000011 00011011 11111111
111.56.45.78
75.45.34.78
0x810B0BEF
0xC1831BFF
Неверные IP-адреса:
111.56.045.78, 221.34.7.8.20, 75.45.301.14
75
Классовая система адресации
IP-адрес разделен на сетевой (Netid) и локальный (Hostid) адреса. При
адресации по классам каждый класс разделен на фиксированное число блоков,
и каждый блок имеет фиксированный размер.
Первые Наименьши
биты IPй номер
адреса
сети
Класс
A
B
C
D
Большие сети
Средние сети
Малые сети
Групповые
адреса
E Резерв
1
бит
0
Класс A
1
Макс.
число
сетей
Наибольший
номер сети
0
10
110
1110
0.0.0.0
128.0.0.0
192.0.0.0
224.0.0.0
127.0.0.0
27 – 2
191.255.0.0
214 – 2
223.255.255.0
221 – 2
239.255.255.255 15 x 224
11110
240.0.0.0
255.255.255.255
1
2
бит
1
3
бит
0
0
Класс B
Класс C
7 x 224
4
бит
1
Макс.
число
узлов в
каждой
сети
224 – 2
216 – 2
28 – 2
–
–
Класс E
0
Класс D
76
Бесклассовая система адресации
Маска определяет биты, относящиеся к Netid.
192.0.2.32/27
Октеты IP-адреса
192
0
2
32
Биты IP-адреса
11000000
00000000
00000010
00100000
Биты маски подсети
11111111
11111111
11111111
11100000
255
255
255
224
Октеты маски подсети
Количество адресов подсети не равно количеству возможных узлов. Нулевой
адрес IP резервируется для идентификации подсети, последний — в качестве
широковещательного адреса, таким образом в реально действующих сетях
возможно количество узлов на два меньшее количества адресов.
Каждому классу соответствует маска подсети по умолчанию.
77
Специальные адреса
Специальный адрес
Netid
Hostid
Назначение
Пример
Сетевой адрес
Заданный
Все нули
Нет
75.10.0.0/16
Прямой
широковещательный
адрес
Заданный
Все
единицы
Получатель
75.10.255.255/16
Ограниченный
широковещательный
адрес
Все
единицы
Все
единицы
Получатель
255.255.255.255
"Этот хост на этой сети"
Все нули
Все нули
Источник
0.0.0.0/8
"Заданный хост на этой
сети"
Все нули
Заданный
Получатель
0.0.121.5/8
Локальный адрес
(loopback)
127
Любой
Получатель
127.0.0.1/8
Групповые рассылки
224.0.0
Любой
Получатель
224.0.0.1/24
Конференц-связь
224.0.1
Любой
Получатель
224.0.1.16/24
Диапазоны, выделенные для локальных сетей в IPv4:
10.x.x.x
172.16.x.x-172.31.x.x
192.168.x.x
78
Типы IP-адресов
Статический IP-адрес назначается пользователем в настройках устройства,
либо единоразово назначается автоматически при подключении устройства к
сети и не может быть присвоен другому устройству.
Динамический IP-адрес назначается автоматически при подключении
устройства к сети и используется в течение ограниченного промежутка времени,
указанного в сервисе назначавшего IP-адрес.
Для получения IP-адреса чаще всего используют протокол DHCP.
Частный IP-адрес (внутрисетевой, «серый») используется внутри локальной
сети. Назначение таких адресов никто не контролирует, в глобальном масштабе
они могут быть неуникальны.
Для выхода в глобальную сеть хосты с частными IP-адресами могут
использовать:
• прокси-сервер;
• маршрутизатор, поддерживающий NAT (Network Address Translation).
79
Структура пакета IPv4
Бит №
0
0-3
4-7
Размер
Версия
заголовка
32
64
8-13
14-15
DSCP
ECN
Идентификатор
TTL
16-18
19-31
Размер пакета
Флаги
Протокол
Смещение
фрагмента
Контрольная сумма заголовка
96
128
160
Адрес источника
Адрес приемника
Опции (если размер заголовка > 5)
...
Данные
Размер заголовка в 4-байтных словах – от 5 до 15.
Размер заголовка в байтах, включая заголовок – от 20 до 65,5 тыс.
TTL (Time to Live) Время жизни пакета
В флагах указывается, есть ли другие фрагменты этого пакета
80
IP-адресация версии 6
Стандарт протокола RFC 2460.
Адресное пространство:
IP-адрес версии 6 состоит из 16 байт (128 бит). Максимальное число адресов
составляет 2128 = 3,4*1038 или около 5*1028 на каждого жителя Земли. Из-за
иерархичности IPv6-адреса, не все возможные адреса будут использованы.
Способ представления:
Предпочтительная форма (шестнадцатеричная система счисления с
двоеточием)
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210.
Сжатая форма – запись длительной последовательности "0" путем
введения двойного двоеточия. Двойное двоеточие допускается
использовать только в одном месте адреса.
1080:0000:0000:0000:0008:0800:200C:417A => 1080::8:800:200C:417A
1::F56::8:801:20D => ?
Смешанная форма – шесть старших чисел (96 бит) записываются в сжатой
форме, а младшие числа (32 бита) представляются в виде, принятом в IPv4.
0:0:0:0:0:0:D:1:44:3 => ::D:1:0.68.0.3
81
Типы IPv6-адресов
Префикс – начало адреса, определяющее тип пакета. Длина префикса
записывается после адреса через / (как маска в IPv4).
Индивидуальный адрес
(Unicast) с префиксом
единственный интерфейс. Имеет иерархическую структуру.
110 регистрация поставщик
абонент
подсеть
110
определяет
узел
Групповой адрес (Anycast) – доставка любому (ближайшему) узлу из группы.
Используется только маршрутизаторами. Префикс 1111111010.
Многоадресный адрес (Multicast) – аналог широковещательных адресов
IPv4, префикс 11111111.
::/128
«этот хост этой сети», аналог 0.0.0.0
::1/128
loopback, аналог 127.0.0.1
::ffff:xx.xx.xx.xx/96
адрес IPv4, отображенный на IPv6
fe80:: - febf::/10
link-local (Адрес местной линии)
fec0:: - feff::/10
site-local (Местный адрес сайта, устарел)
fc00::/7
Unique Local Unicast (вместо site-local)
82
Структура пакета IPv6
Байт
0
4
820
2436
37...
...
0
1
2
3
16-23
24-31
Метка потока
След. заголовок
Hop Limit
Бит
0-3
4-11
12-15
0
Версия
Класс трафика
32
Длина полезной нагрузки
64IP-адрес отправителя
160
192IP-адрес получателя
288
320Расширенные заголовки
...
....
Данные
IPv6 предполагает возможность отправки больших пакетов (джамбограмм) до
4Гбит, но старые протоколы транспортного уровня (TCP, UDP) не поддерживают
такой размер пакетов.
83
ОТОБРАЖЕНИЕ АДРЕСОВ
84
Отображение адресов
Логический адрес (protocol) – межсетевой, (уникальный, универсальный,
обычно реализуется на программном уровне) - IP.
Физический адрес (hardware) – внутрисетевой, местный (уникальный в пределах
сети, неуниверсальный, обычно реализуется на аппаратном уровне) - MAC.
Статическое отображение (static mapping) означает создание постоянной таблицы
соответствий логического и физического адреса. Эта таблица сохраняется в
каждом устройстве на сети. При любом изменении адресов необходимо вручную
перестраивать таблицу.
Логический адрес
223.1.2.1
223.1.2.3
223.1.2.4
Физический адрес
08:00:39:00:2F:C3
08:00:5A:21:A7:22
08:00:10:99:AC:54
Динамическое отображение (dynamic mapping) – для преобразования адресов
используются протоколы (ARP, RARP). Таблица соответствия адресов также
формируется, но она постоянно обновляется.
85
Протокол определения адреса (ARP)
Протокол ARP (Address Resolution Protocol) позволяет запросить физический адрес
приемника при известном логическом адресе.
IP-адрес
MAC-адрес
Например, узел A хочет передать данные узлу D. Узел A знает только логический
адрес D.
Последовательность запросов:
1.A→всем: ARP-запрос на IP-адрес D и свой
MAC.
B
A
2.D → A: ARP-ответ на MAC-адрес A со
своим MAC-адресом.
Другие хосты не отвечают на запрос.
1.A →D: передача данных на MAC-адрес D.
ARP-запрос
ARP-ответ
Передача данных
E
C
D
86
Структура ARP-пакета
+
0-7
0
Hardware type (HTYPE)
32
Hardware length
(HLEN)
8 - 15
Protocol length
(PLEN)
16 - 31
Protocol type (PTYPE)
Operation (OPER)
64
Sender hardware address (SHA)
?
Sender protocol address (SPA)
?
Target hardware address (THA)
?
Target protocol address (TPA)
HTYPE – тип сети, назначено каждому стандартному типу LAN. Например, для
Ethernet = 1.
PTYPE - тип протокола . Например, для протокола IPv4 = 0x0800.
HLEN – длина физического адреса в байтах. Для MAC-адреса = 6.
PLEN – длина логического адреса в байтах. Для IPv4 = 4, IPv6 =16.
OPER – операция, тип пакета. Запрос ARP =1, ответ ARP =2.
SHA – физический адрес передатчика.
SPA – логический адрес передатчика.
переменная длина, задается HLEN, PLEN
THA – физический адрес приемника.
TPA – логический адрес приемника.
87
Пример
ARP-запрос к 10.10.10.140 от 10.10.10.123 (00:09:58:D8:0A:7B) на сети Ethernet, IPv4.
+
0-7
8 - 15
16 - 31
0
HTYPE = 0x0001
PTYPE = 0x0800
00 01 08 00
32
HLEN = 6
PLEN = 4
OPER = 1
06 04 00 01
64
SHA (начало) = 0x000958D8
00 09 58 D8
96
SHA (конец) = 0x1122
SPA (начало) = 0x0A0A
11 22 0A 0A
128 SPA (конец) = 0x0A7B
THA (начало) = 0x0000
0A 7B 00 00
160 THA (конец) = 0x00000000
00 00 00 00
0A 0A 0A 8C
192 TPA = 0x0A0A0A8C
ARP-ответ:
+
0
32
64
96
128
160
192
0-7
8 - 15
16 - 31
HTYPE = 0x0001
PTYPE = 0x0800
HLEN = 6
PLEN = 4
OPER = 2
SHA (начало) = 0x000958D8
SHA (конец) = 0x33AA
SPA (начало) = 0x0A0A
SPA (конец) = 0x0A8C
THA (начало) = 0x0009
THA (конец) = 0x58D81122
TPA = 0x0A0A0A7B
00
06
00
33
0A
58
0A
01
04
09
AA
8C
D8
0A
08
00
58
0A
00
11
0A
00
02
D8
0A
09
22
7B
88
Модульная структура ARP
IP
IP-пакеты
ARP
Кэш-таблица
Очередь
IP
Очереди пакетов
MAC
1
2
n
...
Модуль отправки
Модуль управления
кэшем
Модуль приема
ARM-пакеты
ARM-пакеты
89
Кэш-таблица ARP
PLEN
Интерфейс
сети (IN)
HLEN
PTYPE
Состояние
HTYPE
Сеть и протокол
ARM-запрос
Очередь
(QN)
Попытки Timeout
Адреса приемника
Лог.
адрес
Физ.
адрес
Ожидание
Свободно
Подтверждено
...
Длина таблицы фиксирована.
90
Пример
В начальный момент времени имеется следующая кэш-таблица.
Максимальное число попыток = 5, таймаут = 900сек.
Состояние
ПОДТВЕРЖДЕНО
ОЖИДАНИЕ
ОЖИДАНИЕ
ПОДТВЕРЖДЕНО
ОЖИДАНИЕ
СВОБОДНО
ПОДТВЕРЖДЕНО
ОЖИДАНИЕ
СВОБОДНО
+0сек.
+20сек.
+15сек.
+25сек.
...
Очередь
5
2
14
8
12
9
18
Попытки
Timeout
900
2
5
450
1
60
3
Адрес пункта
назначения
Аппаратный
адрес
180.3.6.1
129.34.4.8
201.11.56.7
114.5.7.89
220.55.5.7
AC:AE:32:45:73:42
19.1.7.82
188.11.8.71
45:73:E3:24:2A:CA
45:73:42:AC:AE:32
IP-пакет на 114.5.7.89.
IP-пакет на 116.1.7.22.
Получен ARM-ответ для IP 188.11.8.71 (E3:45:73:24:2A:CA).
Обновление таблицы по команде модуля управления.
91
Протокол обратного преобразования (RARP)
RARP (Reverse Address Resolution Protocol) находит логический адрес хоста по его
физическому адресу.
MAC-адрес
IP-адрес
Для работы этого протокола необходим RARP-сервер, который назначает IPадреса клиентам.
Последовательность запросов:
1.A→всем: свой MAC-адрес.
2.RARP-сервер → A: IP-адрес A.
Другие хосты не отвечают на
запрос.
Новый
хост
RARPсервер
RARP-запрос
RARP-ответ
Структура пакета идентична ARP, но в поле OPER: RARP-запрос =3, RARP-ответ = 4.
Протокол DHCP транспортного уровня более гибкий, но он формируется
программно. RARP реализуется на уровне сетевой карты. RARP используется,
напр., при сетевой загрузке ОС.
92
Утилита ARP
В Windows утилита ARP позволяет просматривать и редактировать таблицу
отображения адресов:
93
СЛУЖЕБНЫЕ ЗАПРОСЫ
94
Протокол ICMP
ICMP (Internet Control Message Protocol — протокол межсетевых управляющих
сообщений) – спутник протокола IP, используется для передачи сервисных
сообщений и сообщений об ошибках.
ICMP сообщения
Извещения об
ошибках
•
•
•
•
•
адресат недоступен
подавление источника
время жизни истекло
неверный параметр
перенаправление
Сервисные
запросы и ответы
•
•
•
•
эхо-запрос и эхо-ответ
запрос и ответ метки времени
запрос и ответ маски адреса
и др.
95
ICMP-сообщение
ICMP пользуется услугами IP для передачи своих сообщений, т.е. каждое ICMPсообщение инкапсулируется в IP-пакет.
ICMP
ICMP-сообщение
IP
Канальный
уровень
Заголовок
Заголовок
Данные дейтаграммы
Данные кадра
Окончание
Структура ICMP по большей части определяется типом сообщения.
Бит
0
32
...
0-7
Тип
8-15
16-31
Код
Контрольная сумма
Переменная часть заголовка
Данные
Пример типов и кодов сообщений:
8 и 0 – эхо-запрос и ответ,
2 – адресат недостижим (коды: 0 – сеть недоступна, 1 – хост недоступен и т.д.)
12 – ошибка заголовка IP-пакета
96
Сообщения об ошибках
Правила отправки ICMP-сообщений об ошибках:
1. При потере ICMP-пакета никогда не генерируется новый.
2. ICMP-пакеты никогда не генерируются в ответ на IP-пакеты с
широковещательным или групповым адресом.
В ICMP-сообщение об ошибке полностью включается заголовок ошибочного IPпакета и первые 8 байт IP-данных (в них чаще всего содержится служебная
информация).
ICMP-заголовок
IP-заголовок
8 байт IP-данных
97
Запрос и ответ метки времени
Позволяет узнать время прохождения запроса по сети (RoundTripTime, RTT).
Сообщение содержит три метки времени:
1. Исходная метка времени (отправитель)
2. Метка времени получения (получатель)
3. Метка времени пересылки (получатель)
Каждое поле метки времени содержит текущее время хоста в миллисекундах
относительно Всемирного времени (по Гринвичу).
Также используется для проверки синхронизации времени двух узлов.
Основано на том, что время пересылки туда и обратно примерно одинаково.
Различие в фактическим замерам вызвано разницей в системном времени.
Пример
Исходная метка времени: 46
Метка времени получения: 59
Метка времени отправления: 60
Время прибытия пакета: 67
Время передачи туда = 59 – 46 = 13 мс
Время передачи обратно = 67 – 60 = 7 мс
RTT = 13 + 7 = 20 мс
Рассинхронизация = 59 – 46 – 20 / 2 = 3 мс
98
Эхо-запрос и ответ (Ping)
Последвательность сообщений эхо-запроса и эхо-ответа определяет, могут ли
две системы (хосты или маршрутизаторы) связаться друг с другом.
Ping – это стандартная утилита проверки наличия соединения между узлами.
Она генерирует серию эхо-запросов и обрабатывает статистику по
поступившим эхо-ответам (число успешно доставленных пакетов, среднее
время прохождения и др.)
Иногда эхо-запросы используют для установления скрытого соединения
(туннеля) между хостами.
Эхо-сообщение включает поле данных, которое может содержать любую
информацию.
ICMP туннель используется для обхода запретов на передачу информации на
межсетевых экранах.
Из-за этого многие хосты полностью блокируют эхо-запросы.
99
Пример работы утилиты Ping
D:\>ping sagmu.ru -n 10 -l 64
Обмен пакетами с sagmu.ru [46.20.71.172] с 64 байтами данных:
Ответ от 46.20.71.172: число байт=64 время=9мс TTL=60
Ответ от 46.20.71.172: число байт=64 время=2мс TTL=60
Ответ от 46.20.71.172: число байт=64 время=5мс TTL=60
Ответ от 46.20.71.172: число байт=64 время=2мс TTL=60
Ответ от 46.20.71.172: число байт=64 время=2мс TTL=60
Ответ от 46.20.71.172: число байт=64 время=29мс TTL=60
Ответ от 46.20.71.172: число байт=64 время=2мс TTL=60
Превышен интервал ожидания для запроса.
Ответ от 46.20.71.172: число байт=64 время=2мс TTL=60
Ответ от 46.20.71.172: число байт=64 время=3мс TTL=60
Статистика Ping для 46.20.71.172:
Пакетов: отправлено = 10, получено = 9, потеряно = 1
(10% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 2мсек, Максимальное = 29 мсек, Среднее = 6
мсек
100
Пример работы утилиты Ping
Узел microsoft.com закрыт для эхо-запросов.
D:\>ping microsoft.com
Обмен пакетами с microsoft.com
байтами данных:
Превышен интервал ожидания для
Превышен интервал ожидания для
Превышен интервал ожидания для
Превышен интервал ожидания для
[134.170.185.46] с 32
запроса.
запроса.
запроса.
запроса.
Статистика Ping для 134.170.185.46:
Пакетов: отправлено = 4, получено = 0, потеряно = 4
(100% потерь)
101
МАРШРУТИЗАЦИЯ
102
Маршрутизация
Маршрутизация – это процесс и результат поиска пути доставки сообщения по
сети. Реализуется на сетевом уровне.
Способы маршрутизации:
• статическая – таблица маршрутизации заполняется администратором сети
вручную и не изменяется маршрутизатором;
• динамическая –
таблица маршрутизации заполняется и постоянно
обновляется с помощью протоколов маршрутизации.
Виды маршрутизации:
• внутренняя (внутридоменная) – в пределах автономной системы (сети или
группы сетей, управляемых одним администратором);
• внешняя (междоменная) – между автономными системами.
Методы реализации:
• аппаратная – с помощью независимых устройств - маршрутизаторов;
• программная – с помощью специального ПО на компьютере.
103
Таблица маршрутизации
Таблица маршрутизации:
• адрес сети или узла назначения (0.0.0.0 – маршрут по умолчанию);
• маску сети назначения (маска /32 (255.255.255.255) – конкретный узел сети);
• шлюз – адрес маршрутизатора в сети, на который необходимо отправить
пакет, следующий до указанного адреса назначения;
• интерфейс (устройство);
• метрика сети – это условная стоимость передачи по сети (чем меньше
метрика, тем лучше маршрут).
Метрика маршрута равна сумме метрик сетей в маршруте. Маршрутизатор
выбирает маршрут с наименьшей метрикой.
Наиболее простая метрика – одинаковая для всех сетей. Тогда расстояние до
конечного пункта равно числу пройденных пакетом сетей (маршрутизаторов).
Различные метрики могут учитывать загруженность сетей, их пропускную
способность, скорость и т.п.
Метрика может:
– назначаться администратором вручную;
– рассчитываться по протоколу.
104
Пример таблицы маршрутизации
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 14 2a 8b a1 b5 ...... NVIDIA nForce Networking Controller
0x3 ...00 50 56 c0 00 01 ...... VMware Virtual Ethernet Adapter for VMnet1
0xd0005 ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface
===========================================================================
Active Routes:
Network Destination
Netmask
Gateway
Interface Metric
0.0.0.0
0.0.0.0
89.223.67.129
89.223.67.131
20
60.48.85.155 255.255.255.255
89.223.67.129
89.223.67.131
20
66.36.152.228 255.255.255.255
89.223.67.129
89.223.67.131
20
74.108.102.130 255.255.255.255
89.223.67.129
89.223.67.131
20
89.223.67.128 255.255.255.192
89.223.67.131
89.223.67.131
20
89.255.255.255 255.255.255.255
89.223.67.131
89.223.67.131
20
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
1
192.168.192.0
255.255.255.0 192.168.192.251 192.168.192.251
1
192.168.192.251 255.255.255.255
127.0.0.1
127.0.0.1
50
192.168.192.255 255.255.255.255 192.168.192.251 192.168.192.251
50
212.113.96.250 255.255.255.255
89.223.67.129
89.223.67.131
20
219.95.153.243 255.255.255.255
89.223.67.129
89.223.67.131
20
224.0.0.0
240.0.0.0
89.223.67.131
89.223.67.131
20
224.0.0.0
240.0.0.0 192.168.192.251 192.168.192.251
50
255.255.255.255 255.255.255.255
89.223.67.131
89.223.67.131
1
255.255.255.255 255.255.255.255 192.168.192.251 192.168.192.251
1
Default Gateway:
89.223.67.129
===========================================================================
105
Трассировка маршрута
Трассировка – определение маршрута следования пакета по сети.
В Windows трассировка выполняется с помощью служебной программы tracert,
в Linux и Mac OS — traceroute.
C:\>tracert sagmu.ru
Трассировка маршрута к sagmu.ru [46.20.71.169]
с максимальным числом прыжков 30:
1
2
3
4
5
6
1
1
21
1
2
4
ms
ms
ms
ms
ms
ms
1
1
2
1
1
2
ms
ms
ms
ms
ms
ms
<1
1
1
1
1
1
мс
ms
ms
ms
ms
ms
tm.skynet.ru [62.106.120.1]
br-1.smr.aist.net.ru [62.106.124.15]
sma15.sma05.transtelecom.net [217.150.47.130]
217.150.44.149
46.20.64.30.samara-ttk.ru [46.20.64.30]
gw.default.sagmu.ru [46.20.71.169]
Трассировка завершена.
Трассировка выполняется с помощью ICMP-сообщений с постепенным
увеличением времени жизни (TTL или Hop Limit).
106
Редактирование таблицы маршрутизации в
Windows
route [-p] print [<Destination>]
показать текущее состояние таблицы маршрутизации, например:
route print
route print 192.*
route -p print
route -f
очистить таблицу маршрутизации
route [-f] [-p] add|delete|change [<Destination>
[mask <Netmask>]][<Gateway Adress>]
[metric <metric>] [if <Inteface>]
добавить/удалить/обновить запись в таблице маршрутизации, например:
route –f add 134.11.0.0 mask 255.255.0.0 10.0.0.1
route –p add 10.0.0.0 mask 255.0.0.0 192.168.0.10
route add 147.0.0.0 mask 255.0.0.0 148.0.0.100 metric 1 if 1
route delete 36.0.0.0 mask 255.0.0.0
route change 147.0.0.0 mask 255.0.0.0 148.0.0.100 metric 20
107
Алгоритмы маршрутизации
• Неадаптивные – не учитывают текущее состояние сети. Таблица
маршрутизации заполняется один раз, до начала работы сети. Могут учитывать
«обычное» или предполагаемое состояние сети.
• Адаптивные – анализируют текущую загрузку сети, таблицы маршрутизации
постоянно перестраиваются.
– Централизованные – маршрутизацией занимается центр управления
маршрутизацией RCC, который собирает информацию обо всей сети и
«раздает» таблицы маршрутизации узлам.
– Распределенные – каждый узел сам формирует свою
маршрутизации на основе информации, полученной от соседей.
таблицу
108
Flooding (алгоритм «затопления»)
Самый простой неадаптивный алгоритм маршрутизации.
При получении пакета каждый узел пересылает его соседним узлам за
исключением того, от которого пришёл пакет, т.е. широковещательная рассылка.
2
1
2
2
1
0
4
2
1
+ простота реализации
+ пакет будет доставлен по самому короткому маршруту
3
4
- высокая загрузка сети
- отправитель не знает, был ли получен пакет
Повышение эффективности:
• ограничение времени жизни (TTL, Hop Counter)
• подтверждение доставки (каждый узел возвращает подтверждение о
получении, если он получил подтверждение от всех узлов, которым он
отправлял пакеты)
• каждая станция запоминает пересланные пакеты и не посылает их ещё раз
109
Централизованный адаптивный алгоритм
В сети существует центр маршрутизации (Routing Control Center, RCC).
Функции RCC:
• сбор информации от узлов (соседи узла, длина очереди, загрузка линии);
• подсчет оптимальных маршрутов для каждого узла;
• составление таблиц маршрутизации;
• рассылка таблиц узлам.
+ RCC обладает всей информацией и может определять наилучшие маршруты
+ узлы освобождены от необходимости расчета таблиц маршрутизации
-
низкая надежность
узлы получают таблицы маршрутизации в различное время
концентрация трафика возле RCC
некорректная работа при разделенных сетях
110
Дистанционно-векторный алгоритм
Распределенный адаптивный алгоритм – «расскажи своим соседям, что ты
знаешь о мире».
Таблица маршрутизации формируется итерационно и может быть неточной.
Каждый узел:
1. Оценивает метрику до своих соседей (узлы, с которыми он связан
напрямую).
2. Рассылает свою таблицу маршрутизации всем соседям, а соседи
отправляют свои.
3. По полученной от соседей информации обновляет свою таблицу
маршрутизации.
RT5
RT1
RT2
2
+ самоорганизация
+ простота
1
4
1
- большая нагрузка на сеть
- низкая сходимость, особенно при расширении сети
- нестабильность («счет до бесконечности») – риск
3
образования петель при отключении узла или сети
RT4
RT3
111
Маршрутизация по состоянию канала
Распределенный адаптивный алгоритм – «расскажи миру о том, кто твои
соседи».
Алгоритм
1. Определение адресов соседних узлов: новые узлы рассылают приветствие
(HELLO-сообщения), соседние узлы сообщают свои адреса.
2. Измерение метрики линий или времени передачи данных до соседних узлов
(эхо-сообщения).
3. Рассылка обновившейся информации о соседях всем узлам сети (flooding).
4. Подсчет маршрутов на основе полученной от других узлов информации.
Каждый маршрутизатор собирает полные сведения о топологии всей сети и
вычисляет оптимальный маршрут доставки пакета.
Преодолевает недостатки дистанционно-векторного алгоритма (сходимость,
счет до бесконечности, учет загрузки сети), но является более сложным.
112
Алгоритм обратного обучения
Отличается тем, что в сети не происходит рассылки специальных пакетов
маршрутизации.
Каждый маршрутизатор извлекает из заголовка каждого полученного пакета
информацию о пути, который он прошел (адрес отправителя, TTL или HL).
Таблица маршрутизации обновляется, если путь, по которому пришел пакет,
короче, чем уже записанный в таблице.
Алгоритм действует в предположении, что сеть является симметричной, т.е.
обратный путь займет столько же времени, сколько прямой.
+ простота
+ снижает нагрузку на сеть за счет служебного трафика
– консервативность – не учитывает изменения топологии и загрузки сети, пока
не получит входящий пакет от изменившегося сегмента сети
113
Протокол маршрутной информации (RIP)
Routing Information Protocol. Внутренняя маршрутизация. Реализует
дистанционно-векторный алгоритм.
Метрика: число переходов (участков, прыжков, хопов), т.е. количество узлов в
маршруте.
Число переходов в RIP ограничено 15, поэтому его нельзя применять в
больших сетях.
Обновление таблицы маршрутизации происходит регулярно, по таймеру:
• периодический таймер (25-30сек.) – выполняет отправку сообщений о текущем
состоянии сети;
• таймер истечения срока (180сек. для каждого маршрута) – позволяет
определить устаревшие маршруты, метрика =16;
• таймер сбора мусора (120 сек. для каждого устаревшего маршрута) – удаляет
устаревшие маршруты, если они так и не обновятся.
Методы повышения стабильности:
 Запускаемое обновление – рассылка сообщений не только по таймеру, но и
после каждого произошедшего изменения в сети.
 Расщепление горизонта – не отправлять сообщения об изменении сети тому,
от кого эта информация исходит.
 Поглощение ответа – не отправлять сообщение тому, от кого оно пришло.
114
Таблица маршрутизации RIP
Инициализация таблицы: изначально заносятся только ближайшие сети (метрика
1), следующий узел не указывается. Маршрутизатор посылает сообщение-запрос
о состоянии сети.
Обновление таблицы: при получении запрошенного или незапрошенного (по
таймеру) ответа.
Ответ от 176.3.6.17
Сеть Метрика
163.5.0.0
2
197.5.13.0
7
189.45.0.0
7
131.1.10.0
3
Увеличение метрики на 1
Сеть
Метрика
163.5.0.0
3
197.5.13.0
8
189.45.0.0
8
131.10.0
4
Старая таблица
№
0
1
2
3
Пункт
Следующий
Метрика
назначения
узел
163.5.0.0
7
172.6.23.4
197.5.13.0
5
176.3.6.17
189.45.0.0
4
200.5.1.6
115.0.0.0
6
131.4.7.19
Обновленная таблица
№
0
1
2
3
4
Пункт
Следующий
Метрика
назначения
узел
163.5.0.0
3
176.3.6.17
197.5.13.0
8
176.3.6.17
189.45.0.0
4
200.5.1.6
115.0.0.0
6
131.4.7.19
131.10.0
4
176.3.6.17
115
Первоочередное открытие кратчайших путей (OSPF)
Open Shortest Path First. Внутренняя маршрутизация. Реализует алгоритм
маршрутизации по состоянию канала.
Метрика: условный показатель «стоимости» пересылки данных по каналу.
Может показывать минимальную задержку, загрузку сети, пропускную
способность, вероятность ошибки и др. Можно формировать несколько таблиц
маршрутизации с разными метриками.
Сведения о топологии сети хранятся в базе данных состояния связи,
одинаковой для всех маршрутизаторов сети.
Таблица маршрутизации заполняется путем поиска кратчайшего пути до
каждого узла по алгоритму Дейкстры.
Чтобы снизить нагрузку на сеть, в ней выбирается выделенный
маршрутизатор (DR), а также и запасной выделенный маршрутизатор (BDR).
DR формирует базу данных состояний связи и рассылает ее всем остальным
маршрутизаторам.
116
Автономная система (AS)
Локальных сетей в мире слишком много, поэтому реально объединяют не
отдельные сети, а автономные системы.
Автономная система (AS - autonomous system) – система сетей, находящаяся
под единым административным контролем и с общим доступом к глобальной
сети Интернет. Это может быть как несколько компьютеров, так и большая сеть.
Каждая AS имеет уникальный номер.
На середину 2011 года в глобальной сети представлено более 37 тысяч
автономных систем.
AS
AS
AS
WAN
AS
118
Разделение сети на зоны
При разделении автономной системы на зоны, маршрутизаторам принадлежащим к
одной зоне, неизвестна информация о детальной топологии других зон. Это
позволяет снизить объем расчетов.
АС
Магистральная зона 0
RT1
RT2
Зона 1
RT3
RT5
Зона 2
RT4
RT6
RT7
Типы маршрутизаторов: граничный маршрутизатор автономной системы (RT1),
магистральный маршрутизатор (RT1-RT4), пограничный маршрутизатор (RT3-RT4),
внутренний маршрутизатор (RT5-RT7).
119
Протокол пограничной маршрутизации (BGP)
Border Gateway Protocol – протокол маршрутизации между АС, один из основных
протоколов Интернета. Фактически, это протокол прикладного уровня.
Используется пограничными маршрутизаторами АС.
Маршрутизация с использованием вектора путей. Каждый маршрутизатор
собирает возможные пути доступа к каждой сети и выбирает из них
оптимальные.
Сеть
N01
N02
N03
N04
Следующий
маршрутизатор
R01
R05
R06
R12
Вектор расстояния (путь)
AS14,AS23, AS67
AS22,AS67, AS05, AS89
AS67,AS89, AS09, AS34
AS62,AS02, AS09
Метрика: степень предпочтения пути, вычисляемая на основе политики, которая
назначена администратором. Может базироваться на любом числе критериев,
(число промежуточных АС, тип канала, стабильность, быстродействие,
надежность канала и др.)
Протокол BGP включает проверку путей для защиты от петель.
120
СИСТЕМА ДОМЕННЫХ ИМЕН
(DNS)
121
Система доменных имен (DNS)
Domain Name System позволяет вместо числовых IP-адресов использовать более
понятные человеку символьные имена хостов.
Одному доменному имени может соответствовать несколько IP-адресов, и
наоборот.
sagmu.ru
ns.sagmu.ru
moodle.sagmu.ru
isu.smim.ru
46.20.71.169
semenychev.ru
globmedia.ru
46.20.71.172
www.uprava.net
...
80.249.164.74
yandex.ru
93.158.134.11
www.yandex.ru
213.180.193.11
ya.ru
213.180.204.11
yandx.ru
...
80.249.164.74
87.250.250.3
...
122
Иерархия доменных имен
0 уровень (корень)
1 уровень
com
2 уровень
3 уровень
.
org
edu
wikipedia
ru
en
de
ru
ua
sagmu
www
moodle
uk
smim
mail
ns
www
Домен (domain – область) – ветвь иерархии, со всеми подчиненными
поддоменами.
Полностью определенное доменное имя (FQDN, Fully Qualified Domain Name) –
завершается нуль-меткой корня (пустой домен):
dom.sagmu.ru.
www.google.com. myhost.org.
Частично определенное доменное имя:
dom
dom.sagmu
sagmu.ru
google.com
123
Домены верхнего уровня
Классификация
Родовые –
Неспонсируемые
определяют тип
хоста по его роду
деятельности,
метка обычно
Спонсируемые
состоит из трех
букв.
Ограниченного
пользования
Зарезервированные
Национальные – определяют
размещение хоста, метка обычно
состоят из двух букв.
Метка
com
net
org
info
int
eco
post
gov
edu
example
test
invalid
localhost
ru, рф
su
ua, укр
kz
de
uk, gb
Описание
коммерческие организации
центры поддержки сетей
некоммерческие организации
информационные сайты
международные организации
связанные с экологией
почтовые организации
правительственные учреждения
образовательные учреждения
для примеров в документации и
тестирования
=127.0.0.1
Россия
СССР
Украина
Казахстан
Германия
Великобритания
124
Правила записи доменных имен
В доменных именах разрешено использовать только 26 символов латинского
алфавита (без различения заглавных и строчных букв), арабские цифры 0-9 и
дефис.
Максимальный уровень доменного имени - 127. Максимальная длина метки
каждого уровня – 63 символа.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.ru – «последний
домен рунета».
Для использования национальных символов в DNS-именах они преобразуются
в Punicode («пьюникод»).
Запись имени в Punicode начинается с символов xn--.
проверка.ru
xn--80adjurfhd.ru
проверка.рф
xn--80adjurfhd.xn--p1ai
Преобразование символов неоднозначно, зависит от их последовательности:
д
d1a
п
o1a
дп
d1aw
дпд
d1aa6a
125
DNS-сервер
Преобразование DNS-имен в IP-адреса и обратно осуществляется DNSсерверами. Соответствия хранятся в хост файле. Каждый DNS-сервер отвечает за
определенную зону доменных имен.
Пример распознавания имени:
1. А → 1: test.example.com?
2. 1 → 2: test.example.com?
за .com отвечает сервер 3
3. 2 → 1: см. сервер 3
4. 1 → 3: test.example.com ?
за example.com отвечает сервер 4
5. 3 → 4: test.example.com ?
200.31.6.17
test.example.com
6. 4 → 3: 200.31.6.17
7. 3 → 1: 200.31.6.17
8. 1 → А: 200.31.6.17
DNS-сервер 2
2.
3.
DNS-сервер 1
1.
8.
DNS-сервер 3
4.
7.
5.
6.
DNS-сервер 4
DNS-клиент А
Делегирование полномочий сервера – сервер передает часть своих
полномочий (за часть зоны) серверу более низкого уровня.
Рекурсивное и итерационное распознавание – обязан ли сервер выдать
готовый ответ или сообщить, к кому за ним обратиться.
126
Динамический DNS
IP-адреса хостов могут изменяться, в то время как их DNS-имена остаются
постоянными.
Кэширование адресов – для ускорения поиска и снижения трафика DNSсервера на некоторое время (TTL) сохраняют полученную от других серверов
информацию в кэше.
Round Robin DNS (RR DNS) – метод распределения нагрузки между
несколькими идентичными серверами.
Например, dsn1.example.ru обслуживается тремя реальными серверами
220.1.1.1; 220.1.1.2; 220.1.1.3; 220.1.1.4
Первый запросивший IP-адрес получит ответ 220.1.1.1, второй 220.1.1.2,
третий 220.1.1.3, четвертый 220.1.1.4, пятый 220.1.1.1 и т.д. по кругу.
Может использоваться и некруговая система. В некоторых
учитывается близость сервера и клиента или загруженность серверов.
случаях
127
Распределение имен
Первичный сервер (master) – может создавать и изменять хост-файл зоны, за
которую он отвечает. Обычно в зоне существует только один первичный сервер.
Вторичный сервер (slave) – только хранит и распространяет информацию из
хост-файла, которую ему сообщает первичный сервер. Вторичных серверов может
быть очень много, они позволяют разгрузить первичный сервер.
Корневой сервер – отвечает за корневую зону.
Общеупотребительных корневых серверов в мире всего 13, их доменные
имена находятся в зоне root-servers.net: a.root-servers.net, b.root-servers.net, …,
m.root-servers.net.
Также существуют локальные и альтернативные корневые сервера.
За распределение доменных имен отвечает организация ICANN. Она
администрирует общеупотребительные DNS-сервера.
128
nslookup
Системная утилита для dns-запросов.
nslookup google.com
Server: ns2.smr.aist.net.ru
Address: 62.106.124.111
nslookup sagmu.ru ns.sagmu.ru
Server: UnKnown
Address: 46.20.71.169
Non-authoritative answer :
Name:
google.com
Addresses: 2a00:1450:4010:c04::64
173.194.47.198
173.194.47.199
173.194.47.200
173.194.47.201
173.194.47.206
173.194.47.192
173.194.47.193
173.194.47.194
173.194.47.195
173.194.47.196
173.194.47.197
Name:
Address:
sagmu.ru
46.20.71.169
nslookup sagmu.ru
Server: ns2.smr.aist.net.ru
Address: 62.106.124.111
Non-authoritative answer:
Name:
sagmu.ru
Address: 46.20.71.169
129
Файл hosts
Ручная настройка DNS выполняется с помощью редактирования системного
файла hosts.
В Windows он находится в %SystemRoot%\system32\drivers\etc\hosts, но это
расположение может быть изменено через реестр.
Структура записи в файле:
адрес
доменное имя #комментарий
127.0.0.1
localhost
#IPv4
::1
localhost
#IPv6
При распознавании dns-имени система в первую очередь обращается к файлу
hosts, и лишь потом запрашивает dns-сервер.
Исключение – работа через прокси (в этом случае распознавание имен
осуществляется proxy-сервером).
Файл hosts обычно редактируются в следующих целях:
• ускорение работы и снижение нагрузки на сервер;
• перенаправление запросов к локальным ресурсам в обход глобального
соединения;
• фильтрация нежелательных ресурсов;
• злонамеренные цели.
130
Динамическое назначение IP-адресов (DHCP)
Dynamic Host Configuration Protocol – протокол динамической настройки узла.
Позволяет узлам получить IP-адрес и другие настройки для работы в сети.
Для этого клиент обращается к DHCP-серверу.
Три способа распределения IP-адресов:
• Ручное распределение. Администратор сопоставляет аппаратному адресу
каждого клиентского компьютера определённый IP-адрес.
• Автоматическое распределение. При данном способе каждому
компьютеру на постоянное использование выделяется случайный
свободный IP-адрес из определённого администратором диапазона.
• Динамическое распределение. Адрес выдаётся компьютеру не на
постоянное пользование, а на определённый срок (аренда адреса).
Опции DHCP – дополнительные параметры, необходимые для нормальной
работы в сети. Некоторые часто используемые опции:
• IP-адрес маршрутизатора по умолчанию;
• маска подсети;
• адреса серверов DNS;
• имя домена DNS.
Некоторые поставщики программного обеспечения могут определять
собственные, дополнительные опции DHCP.
131
Пример получения адреса
Предположим, клиент ещё не имеет собственного IP-адреса, но ему известен
его предыдущий адрес - 192.168.1.100.
1. Обнаружение (DHCPDISCOVER) – широковещательный запрос по всей сети с
целью обнаружить доступные DHCP-серверы.
1. IP-адрес источника: 0.0.0.0
IP-адрес назначения: 255.255.255.255
chaddr: MAC-адрес клиента
Опции: 192.168.1.100
2. Предложение (DHCPOFFER) – сервер определяет конфигурация клиента,
например, согласен с прежним адресом. Клиент может получить несколько
предложений от разных серверов.
yiaddr: 192.168.1.100
Опции: маска, адрес маршрутизатора, DNS-сервера
3. Запрос (DHCPREQUEST) – клиент выбирает одно из предложений и вновь
отправляет сообщение, похожее на DHCPDISCOVER, но уже с указанием
конкретного сервера.
Опции: + адрес DNS-сервера
4. Подтверждение (DHCPACK) – сервер подтверждает запрос, клиент
настраивает свой сетевой интерфейс.
132
ГРУППОВЫЕ РАССЫЛКИ
133
Основные схемы маршрутизации
unicast
anycast
broadcast
multicast
Снижение трафика за счет групповой рассылки:
134
Протокол IGMP
Протокол управления группами Интернета (Internet Group Management
Protocol) — один из необходимых (но не достаточный) протокол для групповой
передачи. Определяет кому передавать, но сам не ведет передачу.
Не все маршрутизаторы и сетевые карты поддерживают IGMP. Только для IPv4.
Протокол IGMP дает информацию маршрутизаторам групповой рассылки о
состоянии членства хостов, подключенных к сети (клиентов).
Если маршрутизатор не имеет никакой информации о состоянии членства
хостов, он должен широковещательно передать все групповые пакеты.
Клиентами могут быть:
Хост – один из его процессов (прикладная программа) получает пакеты
групповой рассылки в этой группе.
Маршрутизатор – вся сеть, подключенная к одному из его интерфейсов,
получает эти пакеты групповой рассылки.
Групповой маршрутизатор ведет таблицу групп с указанием текущих членов
(один или более) и группового адреса. В таблицу необходимо добавлять/удалять
как участников групп, так и сами группы.
Каждый клиент-хост ведет групповую таблицу для своих процессов, т.е. в
группе могут участвовать одна или несколько программ.
135
Операции IGMP
Для управления таблицами группы.
Добавление в группу
Если группа уже существует, то он просто дописывается в эту группу.
Извещение о членстве в группе не происходит.
Если группы в таблице еще нет, то она создается и отправляется
соответствующее сообщение.
Выход из группы
Если процесс или узел больше не хочет получать групповые сообщения, он
извещает об этом.
Если в этой группе больше не осталось участников, то в таблице узла она
удаляется сразу, а в таблице маршрутизатора только спустя некоторое время.
Контроль членства
Возможны ситуации, когда узел или процесс не может известить о выходе из
группы. Тогда через некоторое время производится опрос всех членов группы
на подтверждение своего участия.
136
Сообщения IGMP
• Запросы принадлежности
- общие запросы позволяют получить полную информацию для каждого из
узлов. Маршрутизатор периодически рассылает эти запросы всем системам,
подключенным к его сети.
- запросы с указанием группы для определения состояния подписки для
заданной группы узлов.
- запросы с указанием группы и источника позволяет для каждого узла
заданной группы определить, какие именно сообщения этот узел хочет
получать.
• Отчет о членстве
• Отчет о выходе из группы
137
Групповая адресация
Может осуществляться как на уровне IP-адреса, так и на уровне MAC-адреса
(в локальных сетях). В WAN используется туннелирование групповых рассылок.
IP Multicast использует адреса класса D c 224.0.0.0 до 239.255.255.255.
Диапазон адресов с 224.0.0.0 по 224.0.0.255 зарезервирован для протоколов
маршрутизации и других низкоуровневых протоколов поддержки групповой
адресации. Остальные адреса динамически используются приложениями.
В MAC-адресах для этих целей зарезервирован блок адресов в диапазоне от
01:00:5E:00:00:00 до 01:00:5E:7F:FF:FF. Первый байт адреса, равный 1, указывает
на то, что адрес является мультикастным. 23 бита MAC-адреса используются для
идентификации группы рассылки.
MAC-адрес
совпадающие 23 бита
138
Примеры мультикастинг IP-адресов
224.0.0.0
Зарезервировано
224.0.0.1
Все системы данной подсети
224.0.0.2
Все маршрутизаторы данной субсети
224.0.0.9
Маршрутизаторы RIP2
224.0.0.10
IGRP маршрутизаторы
224.0.1.6
NSS — сервер имен
224.0.1.7
Audionews — audio news multicast (аудиослужба новостей)
224.0.1.10
IETF-1-low-audio
224.0.1.11
IETF-1-audio
224.0.1.12
IETF-1-video
224.2.0.0Вызовы при мультимедиа-конференциях
224.2.255.255
139
ТРАНСПОРТНЫЙ УРОВЕНЬ
140
Транспортный уровень (инкапсуляция)
Транспортный уровень обеспечивает соединение между прикладными
программами. На передающей станции транспортный уровень разбивает поток
на транспортабельные единицы, нумерует их и посылает их один за другим.
Хост А
Процесс
Данные
(сообщение)
Заголовок1 Часть 1
Заголовок2 Часть 2
Заголовок3 Часть 3
IP-заголовок IP-данные
Заголовок
Данные кадра
Сеть
141
Транспортный уровень (деинкапсуляция)
На приемном конце транспортный
уровень собирает все различные блоки,
принадлежащие к одной и той же прикладной
программе, проверяет их и те, которые
свободны от ошибок, передает дальше или
доставляет к прикладной программе в виде
потока. После того как будет передан весь
поток, транспортный уровень завершает
соединение.
Процесс
Хост B
Данные
(сообщение)
Заголовок1 Часть 1
Заголовок2 Часть 2
Заголовок3 Часть 3
IP-заголовок IP-данные
Сеть
Заголовок
Данные кадра
142
Основные протоколы транспортного уровня
UDP
TCP
Отправка дейтаграмм без
установления соединения
Отправка потока данных с
установлением логического соединения
Ненадежный (контроль доставки
дейтаграмм перекладывается на
прикладную программу, возможны
потери, ошибки и дублирование)
Надежный (контролирует полную
доставку всех данных потока)
Неупорядоченность (пакеты могут быть Упорядоченность (поступившие пакеты
получены не в том порядке, в каком
упорядочиваются перед передачей
они были отправлены)
приложению)
Легковесность (небольшой служебный
трафик)
Тяжеловесность (дополнительный
трафик для установления соединения и
контроля доставки пакетов)
Быстрая доставка данных
Ожидание доставки всех отправленных
данных приводит к задержкам
Может создавать широковещательную
рассылку
Широковещательная рассылка
невозможна
143
Порт
Порт – это уникальный 16-битный номер (идентификатор) от 0 до 65 535,
назначаемый каждому приложению для приема/передачи данных.
Каждый порт может быть занят только одной программой, и в этот момент не
может использоваться другой программой. Но порты TCP не пересекаются с
портами UDP. То есть, передача через порт 1234 по протоколу TCP не будет
мешать обмену по UDP через порт 1234.
Порт сервера и клиента при передаче не обязаны совпадать.
Типы портов:
• 0 – зарезервирован (указывается как порт отправителя, если обратной
передачи данных не предусмотрено);
• 1.. 1023 – закрепленные порты - общеизвестные службы (почта, HTTP и др.);
• 1024.. 49 151 – регистриуемые порты - зарегистрированные IANA службы ;
• 49 152.. 65 535 – динамические порты, могут использоваться любыми
программами для любых целей. Чаще всего выбирается случайно.
В Windows перечень портов для общеизвестных и зарегистрированных служб
хранится в файле %SystemRoot%\system32\drivers\etc\services.
В сочетании с IP-адресом порт обычно записывается через двоеточие:
127.0.0.1:8080
192.169.1.10:51076
144
UDP
Unreliable Datagram Protocol (ненадёжный протокол дейтаграмм). UDP не
предоставляет никаких гарантий доставки сообщения для протокола верхнего
уровня и не сохраняет состояния отправленных сообщений.
Биты
0 - 15
16 - 31
0-31
Порт отправителя
(Source port)
Порт получателя
(Destination port)
32-63
Длина дейтаграммы (Length)
Контрольная сумма (Checksum)
64-...
Данные (Data)
Фактический предел для длины данных при использовании IPv4 — 65507
(помимо 8 байт на UDP-заголовок требуется ещё 20 на IP-заголовок).
Когда приемник обнаруживает ошибку с помощью контрольной суммы, он
удаляет пользовательскую диаграмму без внешних сообщений. Контрольная
сумма рассчитывается для пакета с псевдозаголовком.
145
Сообщение с псевдозаголовком
146
UDP-очереди
При открытии порта для него создаются очереди входящих и исходящих
сообщений.
Если сообщение приходит на порт, для которого очереди не создано (порт
закрыт), то отправителю будет отправлено сообщение об ошибке «порт
недостижим». Также это сообщение может быть получено при переполнении
очереди.
При закрытии порта его очереди разрушается, даже если там есть
необработанные сообщения.
147
Мультиплексирование и демультиплексирование
И на стороне сервера, и на стороне клиента может быть много процессов,
использующих услуги UDP.
UDP
(Мультиплексор)
UDP
(Демультиплексор)
148
Области применения UDP
Отправка информационных сообщений запрос ответ, в том числе для сетевого
уровня (DNS, ICMP, RIP, ARP и др.)
Подходит для протоколов верхнего уровня, включающих механизм
управления потоком и контроля ошибок, например протокол передачи файлов
TFTP (Trivial File Transfer Protocol).
Потоковое медиа (видео- и аудио-связь).
Системы реального времени, в том числе сетевые компьютерные игры.
UDP может применяться как транспортный протокол для многоадресного и
широковещательного распространения.
UDP обычно не используется для процессов, которым нужно передать
большой объем данных.
149
TCP
Transmission Control Protocol (протокол управления передачей) — один из
основных протоколов передачи данных Интернета.
Данные передаются в виде потока по TCP-соединению. Этот поток
передается в виде нескольких отдельных пакетов (сегментов), но для
пользователя
этот
процесс
выглядит
как
непрерывная
передача
последовательности байтов.
TCP соединение можно разделить на 3 стадии:
1. Установка соединения («рукопожатие»)
2. Передача данных
3. Завершение соединения
Инициатор соединения является клиентом, принимающий хост – сервером.
Соединение является дуплексным, т.е. возможна передача данных в обоих
направлениях.
150
Буфер
Отправляемые и поступающие данные накапливаются в буфере.
На отправляющей стороне часть буфера может быть свободной, часть занята
еще не отправленными данными, часть – отправленными, но не
подтвержденными. Буфер может продолжать заполняться приложением в
процессе передачи.
На принимающей стороне часть буфера свободна (данные еще не получены
или уже переданы приложению), часть занята принятыми данными.
После завершения передачи буфер уничтожается.
151
Управление потоком
Механизм «скользящего окна» (sliding window) управляет размером
сегментов, которыми отправляются данные.
Крайние случаи:
а) Отправлять данные побайтно. Каждый байт требует подтверждения
доставки, но в случае потери данных отправить заново придется только этот байт.
б) Отправить все данные целиком. Подтверждение требуется только один раз,
но в случае потери, все данные придется отправить заново.
Скользящее окно определяет размер отправляемой или получаемой в данной
момент информации, т.е. часть буфера, с которой осуществляется работа. Размер
скользящего окна может меняться.
Размер окна определяется тем, сколько данных можно отправить из буфера
передатчика и сколько разместить в буфере приемника. В зависимости от их
возможностей, окно может либо расширяться либо сжиматься.
Синдром «глупого окна» возникает, когда данные передаются очень
маленькими порциями (например, 1 байт) из-за медленной работы прикладных
программ по сравнению со скоростью передачи данных.
152
Сообщение TCP
Бит
0
0—3
4—9
10 — 15
Порт источника
16 — 31
Порт назначения
32
Номер последовательности
64
Номер подтверждения
96
128
Смещение
данных
Зарезервировано
Флаги
Контрольная сумма
Размер окна
Указатель важности
160
Опции (необязательное, но используется практически всегда)
160/192
+
Данные
Флаги (управляющие биты)
URG — поле «Указатель важности» задействовано
ACK — поле «Номер подтверждения» задействовано
PSH — инструктирует получателя протолкнуть данные, накопившиеся в
приемном буфере, в приложение пользователя
RST — сброс соединения и очистка буфера
SYN — синхронизация номеров последовательности
FIN —завершение соединения
153
Контроль ошибок
Контроль ошибок включает в себя механизмы обнаружения:
• искаженных сегментов;
• потери сегментов, нарушения порядка следования сегментов;
• дублирования сегментов.
Контроль ошибок также включает механизм для коррекции ошибок, после
того как они обнаружены.
Обнаружение ошибок осуществляется с помощью контрольной суммы и
контроля по времени.
Если сегмент был потерян, сервер не подтвердит его получение. Спустя
некоторое контрольное время клиент отправит его заново.
Если пакет получен с искажением, сервер не подтвердит его получение. Через
некоторое время клиент отправит пакет заново.
При получении сегмента с нарушением порядка он не будет подтвержден
сервером, пока не будут доставлены все предыдущие сегменты. При этом
возможно, что истечет время ожидания и клиент отправит этот сегмент повторно.
При получении дублирующегося пакета сервер просто удалит его.
Потеря подтверждения может быть не замечена клиентом или привести к
дублирующимся пакетам.
154
СЕМЕСТР 2
155
ПРИКЛАДНОЙ УРОВЕНЬ.
ПРОТОКОЛ TELNET
156
Прикладной уровень стека протоколов TCP/IP
Реальные программы обычно объединяют в себе все или некоторые из
функций прикладного уровня, уровня представления и сеансового уровня,
поэтому в TCP/IP они объединяются в один – прикладной или пользовательский
уровень.
На данном уровне осуществляется:
• передача и получение данных по сети;
• представление данных в удобном для пользователя виде;
• установление и поддержка постоянного соединения (туннеля), используя
транспортный уровень;
• обеспечение безопасностью, в частности:
— проверка целостности полученных данных;
— аутентификация пользователей;
— шифрование;
• удаленное управление сетевыми устройствами;
• и др.
157
Протоколы прикладного уровня
Сегодня существует по меньшей мере 100 прикладных протоколов.
Фактически, любой протокол, описывающий формат передачи данных по сети
относится к прикладному уровню, и каждая программа может использовать свой
прикладной протокол.
Общеизвестные протоколы ориентированы на определенную прикладную
задачу.
•
•
•
•
•
Основные протоколы прикладного уровня:
TELNET (удаленный доступ);
FTP, TFTP (обмен файлами);
SMTP, POP3, IMAP (почтовые протоколы);
HTTP (передача web-сайтов);
DNS, SNMP (управление сетями).
Примеры других протоколов:
• BitTorrent, eDonkey (обмен файлами);
• RTP, TRSP, RTCP (Real Time Protocol – протоколы реального времени, например
потоковое видео);
• Skype protocol, IRC, MSN (протоколы онлайн-чата);
• RDP (протокол удаленного рабочего стола).
158
Прикладной уровень (продолжение)
Таким образом, каждый протокол ориентирован на передачу определенных
данных (файлы, текст, видео, аудио, управляющие команды и др.).
Помимо самих данных, передается различная управляющая информация:
• какие именно данные запрашиваются или передаются (имя файла, адрес
конкретной страницы);
• тип передаваемых данных;
• логин/пароль для аутентификации;
• открытие/завершение соединения;
• сообщения об ошибках
• и др.
159
Диалог между приложениями
В процессе обмена информацией программами возникает диалог, например
такой:
C>
HELLO
S<
HELLO
C>
LOGIN 78z%retgd PASSWORD 9jg!dntfP
S>
ACCEPTED
C>
GET /images/1.gif
S>
SEND <файл /images/1.gif>
C>
GET /images/2.gif
S>
SEND <файл /images/2.gif>
C>
GET /images/3.gif
S>
SEND <файл /images/3.gif>
C>
CLOSE CONNECTION
Или такой:
C>
ENTER Nickname56
S>
ACCEPTED
C>
SENDMSG Привет! Я дома:)
S>
GETMSG Привет
Значительная часть протоколов прикладного уровня определяет именно
синтаксис такого диалога, формат передаваемых данных и управляющих команд.
160
Связанные проблемы
Кодировка
Большинство протоколов работают в кодировке ASCII, причем используют
только первые 127 интернациональных символов. Для перевода других
кодировок и национальных символов в ASCII используются специальные приемы.
Символ конца строки:
• в Unix один символ CR (#13)
• в Windows два символа CR LF (#13#10)
В разных протоколах также используются разные символы конца строки.
Распределение времени сервера
Сервер должен успевать обслуживать всех клиентов. Если сообщения имеют
маленький размер, а клиентов немного, то проблем обычно не возникает.
Однако если один клиент «захватывает» сервер во время передачи или
получения большого объема данных, все остальные вынуждены ждать окончания
передачи.
Чтобы этого не происходило, каждому клиенту выделяется отдельный поток
(процесс, Thread) и создается иллюзию параллельной работы со всеми
клиентами.
161
Протокол TELNET
1. Каким стандартом определяется (RFC) ?
2. Какой порт и протокол транспортного уровня использует?
3. Для чего предназначен?
4. Формат передачи данных. Набор символов NVT.
5. Формат управляющих сообщений. IAC. Опции. Примеры.
6. Режимы работы (по умолчанию, символьный, режим строки).
7. Безопасность.
8. Команды telnet.exe в Windows. Пример работы.
Источники:
1. www.intuit.ru
Курс «Основные протоколы Интернет», лекция 12.
2. Википедия
162
ЛЕКЦИЯ
Всемирная паутина. Протокол HTTP
163
Всемирная паутина (WWW)
World Wide Web (WWW, всемирная паутина, веб) – это общемировое
хранилище данных, распространяемых через сеть Интернет.
WWW ≠Интернет
Интернет – это глобальная сеть, а WWW – это распространяемые в ней
ресурсы, в первую очередь сайты.
Большая часть ресурсов WWW - это гипертекст. Гипертекст – это система
текстовых документов (страниц), связанных между собой с помощью ссылок.
Гипертексты создаются с помощью языка HTML.
К другим ресурсам WWW относятся изображения, аудио, видео и другие
файлы, приложения, базы данных.
Ресурсы WWW могут быть пассивными и активными. К активным ресурсам
относятся форумы, социальные сети, интернет-магазины, блоги, wiki-проекты, чаты
и др.
164
Архитектура WWW
Всемирная паутина построена на клиент-серверной технологии. Клиент и
сервер – это программы, запущенные на компьютерах, подключенных к Интернет.
Всемирную паутину образуют миллионы веб-серверов сети Интернет,
расположенных по всему миру.
Простейший веб-сервер в ответ на HTTP-запрос находит соответствующий файл
на локальном жёстком диске и отправляет его по сети запросившему компьютеру.
Более сложные веб-серверы способны динамически генерировать документы с
помощью шаблонов и сценариев (PHP).
Один из наиболее распространенных серверов на сегодняшний день –
бесплатный Apache 2.2.
Задачи клиента (браузера):
• отправка запросов и получение ответов от сервера по протоколам
прикладного уровня (HTTP, FTP, SMPT и др.);
• интерпретация полученных ответов и представление в доступном для
пользователя виде (HTML, JavaScript, сохранение файлов и др.);
• дополнительные функции – история, кэш, cookies, хранение пользовательских
настроек, анализ страниц и др.
Наиболее распространенные браузеры: Internet Explorer, Mozilla Firefox,
Google Chrome, Opera, Safari.
165
URL
Uniform Resource Locator — единообразный локатор (определитель
местонахождения) ресурса. Это основной способ определения расположения
ресурсов в WWW.
<схема>://<логин>:<пароль>@<хост>:<порт>/<путь>?<параметры>#
<якорь>
схема схема обращения к ресурсу (обычно сетевой протокол – http, ftp, mailto, file)
хост полное имя хоста в системе DNS или IP-адрес в десятичной форме
путь
уточняющая информация о месте нахождения ресурса (зависит от
протокола, обычно путь к файлу на сервере)
параметры
строка запроса с передаваемыми на сервер параметрами
(разделитель - знак &)
?параметр_1=значение_1&параметр_2=значение_2&параметр3=значе
ние_3
якорь позволяет ссылаться на некоторую часть (раздел) открываемого документа
(в HTML задается тэгом <a name=“имя_якоря”>)
http://ru.example.org/mypage.htm#article2
http://en.example.org:80/Special:Search?search=train&go=Go
ftp://myname:[email protected]:21/etc/motd
file://vms.myhost.edu/disk$user/my/notes/note123.txt
166
Кодирование URL
В URL разрешено использовать лишь ограниченный набор ASCII-символов:
латинские буквы, цифры и некоторые знаки препинания.
Недопустимые символы представляются в виде «percent‐encoding»: знак % и
шестнадцатеричный код (2 hex-символа = 1 байт).
Например:
пробел
→
%20
!
→
%21
%
→
%25
*
→
%26
Символы нелатинского алфавита представляются в кодировке Юникод (UTF-8).
Но в ней символы кодируются 2 байтами (4 hex-цифры):
М
→
%D0%9C
и
→
%D0%B8
к
→
%D0%BA
http://ru.wikipedia.org/wiki/Микрокредит
→
http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1
%80%D0%B5%D0%B4%D0%B8%D1%82
167
Нормализация URL
Адрес одной и той же страницы может быть представлен разными URL. Для
однозначности веб-серверы, а также поисковые системы преобразуют URL к
нормальному (каноническому) виду.
Нормализации, сохраняющие исходное написание
Конвертация в нижний регистр:
HTTP://www.Example.com/ → http://www.example.com/
Перевод в верхний регистр управляющих конструкций:
http://www.example.com/a%c2%b1b → http://www.example.com/a%C2%B1b
Перекодировка управляющих конструкций в явные символы:
http://www.example.com/%7Eusername/ → http://www.example.com/~username/
Удаление порта по умолчанию:
http://www.example.com:80/bar.html → http://www.example.com/bar.html
Нормализация с частичным сохранением исходного написания
Добавление конечного слеша (но нет способа узнать, включает ли URL путь к
директории):
http://www.example.com/alice → http://www.example.com/alice/
Удаление сегментов-точек:
http://www.example.com/../a/b/../c/./d.html → http://www.example.com/a/c/d.html
168
Нормализация URL (продолжение)
Нормализации, изменяющие написание
Замена IP адреса именем домена:
http://208.77.188.166/ → http://www.example.com/
Удаление или добавление «www» как элемента верхнего доменного уровня.
http://www.example.com/ → http://example.com/
Удаление неиспользуемых переменных в запросе:
http://www.example.com/display?id=123&fakepar=1 →
http://www.example.com/display?id=123
169
URL или URI?
В настоящее время чаще говорят не про URL, а про URI (Uniform Resource
Identifier) — унифицированный (единообразный) идентификатор ресурса.
URI = URL / URN
URN (Uniform Resource Name) — единообразное название (имя) ресурса. В
отличие от URL, не указывает местоположение ресурса, а только позволяет его
идентифицировать. Примеры:
• URN книги, идентифицируемой номером ISBN
urn:isbn:5170224575
• URN технической спецификации RFC 3406 организации «IETF»
urn:ietf:rfc:3406
• URN конкретного файла MP3, идентифицируемого хэш-кодом по алгоритму
SHA1
urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C
URL = URI + DNS
Кроме того, существует IRI (International Resource Identifier) - международных
идентификаторов ресурсов, в которых можно было бы без проблем использовать
символы Юникода, и которые поэтому не ущемляли бы права других языков.
170
Cookies
Куки, «плюшки», «печеньки» - небольшой фрагмент данных, отправленный
веб-сервером и хранимый на компьютере пользователя.
Браузер всякий раз при попытке открыть страницу соответствующего сайта
пересылает этот фрагмент данных веб-серверу в виде HTTP-запроса. Применяется
для сохранения данных на стороне пользователя, на практике обычно
используется для:
• аутентификации пользователя;
• хранения персональных предпочтений и настроек пользователя;
• отслеживания состояния сессии доступа пользователя;
• ведения статистики о пользователях.
Срок хранения куки истекает в следующих случаях:
1.В конце сессии (например, когда браузер закрывается), если куки не
являются постоянными.
2.Дата истечения была указана и срок хранения вышел.
3.Браузер удалил куки по запросу пользователя.
171
Протокол HTTP
HyperText Transfer Protocol - протокол передачи гипертекста.
Основным объектом манипуляции в HTTP является ресурс, на который
указывает URI в запросе клиента. Обычно это хранящиеся на сервере файлы, но
могут быть логические объекты, записи БД или что-то абстрактное.
Пример HTTP-запроса от клиента:
GET /user/bin/image1/ HTTP/1.1
Accept: image/gif, image/jpeg
User-Agent: MyBrowser/0.1
Host: www.example.net
<пустая строка>
Пример HTTP-отклика от сервера:
HTTP/1.1 200 OK
Date: Mon,07-Jan-12 13:15:14 GMT
Server: Challenger
Content-length: 2048
<двоичное содержимое файла>
172
Соединение HTTP
Обмен сообщениями между клиентом и сервером идёт по обыкновенной
схеме «запрос-ответ».
HTTP не сохраняет своего состояния. Т.е. каждая фаза «запрос-ответ»
происходит так, как будто она единственная.
Клиент и сервер могут сохранять сведения, ранее полученные по HTTP, но
протокол работает так, как будто это не предусмотрено. Все необходимые
сведения повторяются в каждом запросе и ответе (поддерживаемые форматы
файлов, дата последнего обновления и т.п.).
Браузеры обычно открывают и закрывают соединение для каждого запроса
(непродолжительное соединение).
Но HTTP реализуется через протокол TCP, предназначенный для
продолжительного соединения, т.е. отправки нескольких запросов в течение
одной сессии.
Поэтому в последних версиях HTTP включена поддержка продолжительных
(keep-alive) соединений. Это возможно, если и клиент, и сервер их
поддерживают.
173
MIME
MIME (Multipurpose Internet Mail Extensions — многоцелевые расширения
интернет-почты) — стандарт, описывающий передачу различных типов данных по
электронной почте, а также по Интернету вообще.
MIME определяет механизмы для передачи разного рода информации внутри
текстовых данных:
• текст на языках, для которых используются кодировки, отличные от ASCII,
• нетекстовый контент, такой как картинки, музыка, фильмы и программы.
•
•
•
•
•
•
•
•
В HTTP используются в первую очередь форматы MIME:
общий тип/подтип
text (text/html, text/plain, text/cmd, text/javascript)
application (форматы прикладных программ application/pdf, application/zip,
application/octet-stream)
image (image/gif, image/jpeg, image/png)
audio (audio/mp4, audio/ogg)
video (video/mpeg, video/quicktime)
message (почтовое сообщение - message/http, message/partial)
model (3d-модели model/mesh)
multipart (несколько разных файлов multipart/mixed)
174
HTTP-сообщение
И запрос, и ответ имеют
одинаковую структуру:
Стартовая строка
Заголовки
Тело запроса
Стартовая строка запроса:
Метод URI HTTP/Версия
GET /index.htm HTTP/1.0
POST /pic/img001.gif HTTP/1.1
Стартовая строка ответа:
HTTP/Версия КодСостояния Пояснение
HTTP/1.0 200 OK
Версии HTTP: 0.9, 1.0, 1.1. Могут не совпадать у клиента и сервера.
175
Методы HTTP
Назначение запроса. Чувствительны к регистру символов.
Все HTTP-серверы должны поддерживать как минимум два метода:
HEAD – запрос сведений о файле без отправки содержимого
GET – запрос на отправку файла с сервера
Другие методы:
OPTIONS – узнать возможности сервера (вместо URI пишется *)
OPTIONS * HTTP/1.1
POST – передача пользовательских файлов на сервер (комментарии в блогах,
сообщения на форумах и т.д.)
PUT – загрузка файлов с клиента на сервер
PATCH – обновление уже существующего файла без полной его передачи
DELETE – удаление ресурса
Можно использовать собственные методы в виде любой последовательности
символов, кроме управляющих и разделителей.
176
Коды состояния
Сообщают о результатах запроса. Записываются в виде трех арабских цифр.
Используется пять классов:
1xx Informational – информационный
100 Continue («продолжить»); 102 Processing («идёт обработка»)
2xx Success – успех
200 OK («хорошо»); 202 Accepted («принято»); 206 Partial Content («частичное
содержимое»)
3xx Redirection – перенаправление
301 Moved Permanently («перемещено постоянно»); 302 Moved Temporarily
(«перемещено временно»); 305 Use Proxy («использовать прокси»)
4xx Client Error – ошибка клиента
400 Bad Request («неверный запрос»); 403 Forbidden («запрещено»); 404 Not
Found («не найдено»); 405 Method Not Allowed («метод не поддерживается»)
5xx Server Error – ошибка сервера
500 Internal Server Error («внутренняя ошибка сервера»); 503 Service
Unavailable («сервис недоступен»); 504 Gateway Timeout («шлюз не отвечает»)
177
Заголовки
Содержат различную дополнительную информацию о запросе. Существует
четыре группы заголовков:
1. Общие (General Headers).
2. Запроса (Request Headers).
3. Ответа (Response Headers).
4. Сущности (Entity Headers).
Именно в таком порядке их следует располагать в сообщении.
Формат:
<Заголовок>: <значение>
Регистр названия заголовка неважен. Заголовки могут повторяться несколько
раз. Например, это одно и то же:
Allow: text/html
Allow: image/gif
и
ALLOW: text/html, image/gif
Значения могут быть многострочными.
После всех заголовков обязательно пишется пустая строка.
178
Наиболее распространенные заголовки
Общие
Connection
MIME-Version
Запроса
Accept
Accept-encoding
Accept-language
Host
Referrer
User-agent
Ответа
Accept-range
Date
Server
Сущности
Content-type
Content-length
Last-modified
Location
тип соединения (Close, Keep-Alive)
используемая версия MIME
поддерживаемые форматы файлов (MIME)
поддерживаемая кодировка (windows-1251, utf-8)
поддерживаемые языки (ru, en-su)
хост и порт клиента
URI ресурса, с которого клиент сделал текущий запрос
идентифицирует программу клиента
диапазон данных в байтах (1078-2078)
дата и время генерации отклика
имя сервера и номер версии
тип содержимого
размер содержимого
дата и время последнего изменения документа
местоположение созданного или перемещенного документа
179
Пример запроса информации о документе
Запрос от клиента:
HEAD /user/bin/image1/ HTTP/1.1
Accept: */*
User-Agent: MyBrowser/0.1
Connection: Keep-Alive
<пустая строка>
Отклик от сервера:
HTTP/1.1 200 OK
Date: Sun,21-Apr-12 13:15:14 GMT
Server: Challenger
Mime-version: 1.0
Content-type: text/html
Content-length: 2048
<пустая строка>
180
Примеры ошибочных запросов
Запрос от клиента:
HEAd /user/bin/image1/ HTTP/1.1
Accept: */*
<пустая строка>
Отклик от сервера:
HTTP/1.1 400 Bad Request
Date: Sun,21-Apr-12 13:12:31 GMT
Server: Challenger
<пустая строка>
Запрос от клиента:
PUT/user/bin/image1/img35.gif HTTP/1.1
Accept: */*
<пустая строка>
Отклик от сервера:
HTTP/1.1 405 Method Not Allowed
Date: Sun,21-Apr-12 13:16:14 GMT
Server: Challenger
<пустая строка>
181
Пример запроса HTML-документа
C: GET /test/test%202.htm HTTP/1.1
C: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, application/x-msapplication, application/x-ms-xbap, application/vnd.ms-xpsdocument,
application/xaml+xml, */*
C: Referer: http://localhost/
C: Accept-Language: ru
C: Accept-Encoding: gzip, deflate
C: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;
.NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
C: Host: localhost
C: Connection: Keep-Alive
C:
S:
S:
S:
S:
S:
S:
S:
S:
HTTP/1.1 200 OK
Connection: Keep-Alive
Server: StudyWEB-Sever/1.0
Allow: HEAD, GET
Content-Length: 411
Content-Type: text/html
<Содержимое файла
"I:\web-сервер\home\localhost\test\test 2.htm“>
182
Запрос на докачку файла (частичный GET)
Запрос от клиента:
GET /conf-2009.avi HTTP/1.0
Host: example.org
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)
Range: bytes=88080384Referer: http://example.org/
<пустая строка>
Отклик от сервера:
HTTP/1.1 206 Partial Content
Date: Thu, 19 Feb 2009 12:27:08 GMT
Server: Apache/2.2.3
Last-Modified: Wed, 18 Jun 2003 16:05:58 GMT
Accept-Ranges: bytes
Content-Range: bytes 88080384-160993791/160993792
Content-Length: 72913408
Connection: close
Content-Type: video/x-msvideo
<пустая строка>
<двоичное содержимое с 84-го мегабайта>
183
Условный GET
Заголовок запроса If-Modified-Since: дата. В ответ тело передается только, если
ресурс изменялся после указанной даты. Возможны следующие случаи:
• Если код статуса ответа на запрос будет отличаться от «200 OK», или дата,
указанная в поле заголовка «If-Modified-Since» некорректна, ответ будет
идентичен ответу на обычный запрос GET.
• Если после указанной даты ресурс изменялся, ответ будет также идентичен
ответу на обычный запрос GET.
• Если ресурс не изменялся после указанной даты, сервер вернет код статуса
«304 Not Modified».
Использование метода условный GET направлено на разгрузку сети, так как он
позволяет не передавать по сети избыточную информацию.
Запрос от клиента:
HEAD /user/bin/image1/ HTTP/1.1
Accept: */*
If-Modified-Since: Sun,21-Apr-12 00:00:00 GMT
Отклик от сервера:
HTTP/1.1 304 Not Modified
Date: Sun,21-Apr-12 13:15:14 GMT
Server: Challenger
184
Преимущества и недостатки HTTP
Достоинства
• Простота
• Расширяемость
• Распространенность
Недостатки
• Отсутствие «навигации» (отображения структуры сайтов)
• Отсутствие поддержки распределенности (возможности хранения и
передачи файлов с нескольких серверов)
185
186
FTP
Протокол передачи файлов (File Transfer Protocol) – стандартный механизм
для копирования файла от одного хоста другим через TCP-соединение.
FTP является одним из старейших прикладных протоколов, появившимся
задолго до HTTP, в 1971г. Первые клиентские FTP-приложения были
интерактивными инструментами командной строки.
Основная особенность FTP – использует два соединения между клиентом и
сервером:
• порт TCP 21 – передача команд управления
• порт TCP 20 – передача данных
Т.е. FTP – внешнеполосной протокол (HTTP и большинство других –
внутриполосные).
Соединение для передачи команд управления остается открытым в течение
всего процесса.
Соединение передачи данных открывается командой для передачи каждого
файла, и закрывается после завершения передачи.
187
Порядок установления соединений
Соединение для передачи команд управления
1. Сервер пассивно открывается, слушает заданный порт (21) и ждет клиента.
2. Клиент использует временный порт, и сессия активно открывается.
Соединение для передачи данных
Активный режим:
1. Клиент (не сервер) вызывает пассивное открытие кратковременного порта
(слушает временный порт).
2. Клиент посылает номер этого порта серверу, используя команду PORT.
3. Сервер получает номер порта, вызывает активное открытие заданного порта
20 и получает номер временного порта.
Пассивный режим:
1. Клиент использует поток управления, чтобы послать серверу команду PASV.
2. Сервер сообщает клиенту свой IP-адрес и номер порта для передачи.
3. Клиент открывает поток данных с произвольного порта к полученному адресу
и порту.
188
Пример активного соединения
Клиент
Сервер
Порт 21
Порт 62010
Управляющее
соединение
Порт 21
Порт 63000
Порт 62010
PORT 63000
Порт 21
Порт 63000
Открытие соединения
Порт 20
Порт 63000
Передача данных
Порт 20
189
Пример пассивного соединения
Клиент
Сервер
Порт 21
Порт 62010
Порт 62010
Порт 62010
Порт 63000
Порт 63000
Управляющее
соединение
PASV
192.168.254.253:53048
Открытие соединения
Передача данных
Порт 21
Порт 21
Порт 21
Порт 53048
Порт 53048
190
Передача информации
Передача команд управления
Передача коротких сообщений (в одну строку) в кодировке NVT ASCII.
Каждая строка заканчивается двумя символами CRLF (возврат каретки и
перевод строки).
Посылается одна команда (или отклик) в один момент времени.
Передача данных
Извлекаемый файл передается от сервера к клиенту.
Накапливаемый файл передается от клиента к серверу
Проблема разнородности: разные узлы могут использовать различные
операционные системы, различные наборы символов, различные структуры и
форматы файлов.
Решается с помощью определения трех атрибутов, передающихся через
канал управления:
• тип данных,
• структура данных,
• режим передачи.
191
Типы файлов
• ASCII-файл (по умолчанию) - для трансляции текстовых файлов (в NVT ASCII).
Передатчик преобразует файл из собственного представления в NVT ASCII, и
приемник преобразует символы NVT ASCII в собственное представление.
• EBCDIC-файл. Если оба конца соединения используют кодирование EBCDIC,
файл может быть передан с использованием EBCDIC-кодирования.
• Image-файл (бинарный поток данных). Файл посылается как непрерывный
поток бит без всякой интерпретации и кодирования.
Для ASCII или EBCDIC дополнительно определяется возможность печати:
• TELNET. В этом формате файл содержит NVT ASCII вертикальные символы (CR перевод каретки, LN - перевод строки, NL - новая строка) и могут быть
напечатаны после передачи.
• Запрещенный для печати (по умолчанию). Файл не содержит вертикальных
спецификаций для печати и не может быть напечатан без предварительной
обработки. Используется для файлов, которые будут накоплены и обработаны
позднее.
192
Структуры данных
• Файловая структура (по умолчанию). Файл не имеет структуры, это
непрерывный поток данных.
• Структура записи. Файл, разделенный внутри записи. Только для текстовых
файлов.
• Страничная структура. Это файл, разделенный на страницы, каждая
страница имеет номер и заголовок страницы. Страницы могут быть
накоплены
или
достигнуты
с
помощью
произвольного
или
последовательного доступа.
193
Режимы передачи
• Поточный режим (по умолчанию). Данные доставляются от FTP к TCP как
непрерывный поток данных. TCP отвечает за разбиение данных на сегменты
соответствующего размера.
Если данные — просто поток байтов (файловая структура), то не нужно
никакого признака окончания файла. Окончание файла – разъединение
соединения данных отправителем.
Если данные разделены на записи (структура по записи), каждая запись
будет иметь однобайтный символ окончания записи (EOR — end of record).
• Блочный режим. Данные доставляются от FTP к TCP в блоках.
Каждому блоку предшествует трехбайтный заголовок. Первый байт
называется дескриптор блока, следующие два байта определяют размер блока
в байтах.
• Сжатый режим. Данные передаются в сжатом виде (метод RLE).
194
Аутентификация
Имя пользователя посылается серверу командой USER, а пароль командой PASS.
Если предоставленная клиентом информация принята сервером, то сервер
отправит клиенту приглашение и начинается сессия.
Анонимный FTP
Некоторые сайты имеют набор файлов, доступных для общего
пользования. Чтобы иметь доступ к этим файлам, пользователю не нужна
учетная запись или пароль. Вместо этого пользователь может использовать
анонимность (anonymous) как пользовательское bvz-имя и гостевой (guest)
пароль. Иногда пользователей просят прислать адрес их электронной почты
вместо пароля, никакой проверки фактически не производится.
Доступ к системе пользователя очень ограничен. Некоторые сайты
разрешают анонимным пользователям только поднабор команд.
195
Команды
Посылаются от FTP-процесса управления клиента.
Записываются в виде заглавных букв ASCII, могут сопровождаться аргументом.
Можно разделить команды на шесть групп:
• команды доступа;
• команды управления файлами;
• команды форматирования данных;
• команды определения порта;
• команды передачи файла;
• прочие команды.
196
Команды доступа
Команды
Аргументы
USER
ID пользователя
PASS
Пароль пользователя
ACCT
Загруженная учетная запись
REIN
QUIT
ABOR
Описание
Пользовательская информация
Пароль
Учетная информация
Перезапуск
Выход из системы
Прерывание предыдущей команды
197
Команды управления файлом
Команды
CWD
CDUP
Аргументы
Имя директории
DELE
LIST
Имя файла
Имя директории
NLIST
Имя директории
MKD
MDTM
PWD
RMD
RNER
RNTO
SIZE
SMNT
Описание
Изменение директории
Изменение директории на
вышестоящую
Удаление файла
Список поддиректорий и файлов
Список имен поддиректорий или
файлов, не имеющих атрибутов
Имя директории
Создать новую директорию
Возвращает время модификации файла
Узнать имя текущей директории
Имя директории
Удалить директорию
Имя файла (старое имя)
Файл, который должен быть
переименован
Имя файла (новое имя файла) Переименование файла
Имя файла
Возвращает размер файла
Имя директории
Выбор корневой директории
198
Команды форматирования данных
Команды Аргументы
TYPE
A (ASCII), E (EBCDIC), I (IMAGE),
N (Nonprint), T(Telnet)
STRU
F (File), R (Record), P (Page)
MODE
S (Stream), B (Block), C
(Compressed)
Описание
Определяет тип файла, если необходим
формат для печати
Определяет организацию данных
Определяет режим передачи
Команды определения порта
Команды
PORT
PASV
Аргументы
6-цифровой идентификатор
Описание
Клиент выбирает порт
Сервер выбирает порт
199
Команды передачи файла
Команды
RETR
Аргументы
Имя файла (ов)
Описание
Извлечение файла от сервера к клиенту
STOR
Имя файла (ов)
Накопление файла от клиента к серверу
APPE
Имя файла (ов)
STOU
Имя файла (ов)
STAT
Имя файла (ов)
Совпадает с STOR за исключением того, что если
файл существует, то данные могут быть
прикреплены к нему
То же самое, что STOR, но имя файла будет
уникальным в этой директории; существующий
файл не должен быть переписан
Возврат состояния файла
Прочие команды
Команды
HELP
NOOP
SYST
Аргументы Описание
Выводит список команд принимаемых сервером
Пустая операция. Проверка, является ли сервер
действующим
Запрос об операционной системе сервера
200
Отклики
Состоит из трех цифр (xyz) и поясняющего текста.
Первая цифра определяет состояние команды:
1yz (положительный предварительный ответ). Сервер будет посылать другие
отклики перед принятием другой команды.
2yz (положительный отклик завершения). Сервер будет принимать другую команду.
3yz (положительный промежуточный отклик). Команда принята, но нужна
дальнейшая информация.
4yz (отклик отрицательного переходного завершения). Действие не произошло, но
ошибка временная. Та же самая команда будет послана позднее.
5yz (отклик отрицательного постоянного завершения). Команда не принята и должна
быть повторена позже.
Вторая цифра определяет тип ошибки:
x0z – Синтаксическая.
x1z – Информация.
x2z – Соединения.
x3z – Соответствует сообщениям об аутентификации пользователя и его правах.
x4z – Не определено.
x5z – Файловая система.
Третья цифра
Третья цифра обеспечивает дополнительную информацию.
201
Основные отклики
125
150
200
202
220
221
226
227
230
250
257
331
332
350
Положительный предварительный ответ
Соединение данных открыто: передача данных вскоре начнется
Состояние файла хорошее (OK). Соединение будет вскоре открыто
Положительный отклик завершения
Команда корректна
Команда не поддерживается
Служба готова для нового пользователя.
Благополучное завершение по команде quit
Закрытие канала, обмен завершен успешно
Переход в пассивный режим (h1,h2,h3,h4,p1,p2).
Пользователь идентифицирован, продолжайте
Запрос прошёл успешно
Указанная директория создана
Положительный промежуточный отклик
Имя пользователя корректно (OK). Необходим пароль
Для входа в систему необходима аутентификация
Действие файла рассматривается: необходимо больше информации
202
Основные отклики
404
425
426
450
451
452
500
501
502
503
504
530
532
550
552
553
Отклик отрицательного переходного завершения
Данный удалённый сервер не найден
Нельзя открыть соединение для передачи данных
Соединение разъединено: передача прервана
Действие с файлом не производится, файл недоступен
Локальная ошибка, операция прервана
Ошибка при записи файла (недостаточно места)
Отклик отрицательного постоянного завершения
Синтаксическая ошибка; неизвестная команда
Синтаксическая ошибка в параметрах или аргументе
Команда невыполнима
Ошибочная последовательность команд
Параметр команды невыполним
Вход не выполнен. Требуется авторизация
Необходима учетная запись для накапливающего файла
Действие не выполнено: файл недоступен
Запрос на прерывание действия; превышена выделенная память
Запрос на прекращение действия; не разрешенное имя файла
203
Пример FTP диалога
S: 220 FTP server ready.
C: USER anonymous
S: 230 Login successful.
C: PASV
S: 227 Entering Passive Mode (192,168,254,253,233,92)
//Клиент должен открыть соединение на переданный IP
C: LIST
S: 150 Here comes the directory listing.
//Сервер передает список файлов в директории
S: 226 Directory send OK.
C: CWD incoming
S: 250 Directory successfully changed.
C: PASV
S: 227 Entering Passive Mode (192,168,254,253,207,56)
C: STOR gyuyfotry.avi
S: 150 Ok to send data.
//Клиент передает содержимое файла
S: 226 File receive OK.
C: QUIT
S: 221 Goodbye.
204
Безопасность
FTP передает имя пользователя, пароль и другую информацию в явном виде,
т.е. является небезопасным.
«Безопасные FTP»:
• FTPS – расширение FTP, позволяющее клиентам требовать шифрования FTPсессии (команда AUTH TLS или FTPES). Сервер также может как отклонять, так и
принимать соединения по обычному FTP (без шифрования).
• SFTP (SSH File Transfer Protocol) – независимый от FTP протокол, хотя их
команды похожи. Использует SSH (Secure Shell) шифрование, причем для всего
соединения, всех команд и данных. Пользователи стандартного FTP не могут
получить доступ к SFTP-серверу.
• FTP через SSH-туннель – туннелирование обычной FTP-сессии. Довольно
затруднено из-за двух каналов.
Аналогично FTPS, существует расширение HTTP для обеспечения безопасности
- HTTPS.
205
Программное обеспечение
Большинство современных браузеров поддерживают извлечение файлов по ftp.
Синтаксис URI
ftp://[<пользователь>[:<пароль>]@]<хост>[:<порт>]/<путь>
Например:
ftp://public.ftp-servers.example.com/mydirectory/myfile.txt
ftp://user001:[email protected]/mydirectory/myfile.txt
Полноценную поддержку ftp, а также sftp, ftps и др. поддерживают
специализированные программы (FTP-клиенты):
• FileZilla;
• FTP Explorer;
• FAR Manager;
• SmartFTP;
• и многие другие.
206
TFTP
Тривиальный протокол передачи файлов (Trivial File Transfer Protocol)
используется в случаях, когда не нужны все возможности FTP (при загрузке
бездисковых рабочих станций, маршрутизаторов).
Он должен быть прост, чтобы уместиться в памяти бездисковой станции.
Обеспечивает только чтение и запись файлов. Нет аутентификации, маленький
набор команд.
На транспортном уровне передача идет по UDP (порт 69). Команды и данные
передаются по одному каналу.
Схема URI
Формат URI для TFTP имеет следующий вид:
tftp://[узел назначения]/[нужный файл];mode=[режим передачи]
Например:
tftp://example.com/todo.txt;mode=netascii
207
Сообщения
Код операции (2 байта)
Поля и данные (переменная длина)
1. RRQ (Read Request) – запрос заданного файла в заданном режиме передачи
(netascii или octet)
2. WRQ (Write Request) – запрос на запись заданного файла в заданном
режиме передачи
3. DATA (данные) – отправка блока данных с указанием номера, не более 512
байт (размер блока)
4. ACK (acknowledge) – подтверждение получения указанного блока данных
5. ERROR – сообщение об ошибке (указывается номер и пояснение)
Расширение протокола – дополнительные опции, например, позволяющие
задать размер блока не равным 512 байтам.
208
Соединение
По протоколу UDP происходит передача отдельных блоков без установления
соединения. Установление соединения и контроль доставки TFTP берет на себя.
Соединение для чтения текстового файла размером 622 байта:
C: RRQ /example/file1.txt netascii
S: DATA 1 <512 байт данных>
C: ACK 1
S: DATA 2 <110 байт данных>
C: ACK 2
Соединение для записи графического файла размером 265 байт:
C: WRQ /example/img1.gif octet
S: ACK 0
C: DATA 1 <265 байт данных>
... <истечение тайм-аута, подтверждения нет>
C: DATA 1 <265 байт данных>
S: ACK 1
Запрошен отсутствующий файл:
C: RRQ /example/file2.txt netascii
S: ERROR 1 File not found
Нет сообщения о завершении соединения. Признаком завершения служит
получение блока данных размером менее 512 байт или сообщение об ошибке.
209
Управление потоком
Заключается в том, что клиент или сервер, отправляющий файл, не отправляет
следующий блок, пока не получит подтверждения предыдущего.
Контроль ошибок
Контрольная сумма присутствует только в пакете UDP, TFTP не использует
собственный контроль целостности.
Поврежденный пакет просто удаляется, никаких сообщений об ошибке не
отправляется. Аналогично для дублирующихся пакетов.
Для отправленного блока устанавливается тайм-аут. Если по истечении таймаута получение не будет подтверждено, то блок будет отправлен заново.
С этой точки зрения TFTP – симметричный протокол, т.е. контроль
целостности может осуществлять как клиент, так и сервер, в зависимости от
направления передачи.
Безопасность
TFTP не обеспечивает никакой безопасности, даже аутентификации
пользователя.
Поэтому доступ по TFTP открывается только к ограниченному набору
некритических файлов, либо устанавливается дополнительная TELNET-сессия для
аутентификации пользователя.
210
Протоколы электронной почты
SMTP, IMAP, POP
MIME
211
Схема обмена электронной почтой
Участники обмена:
Mail User Agent
Mail Submission Agent
Mail Transfer Agent
Mail eXchanger
Mail Delivery Agent
MUA
MUA
POP/IMAP
SMTP
Протоколы:
•отправки писем:
SMTP
•получения писем:
POP
IMAP
SMTP,
DNS
MSA
MTA
MX
MDA
212
Агент пользователя
В общем случае пользовательский интерфейс не является необходимым.
Основные функции почтового агента пользователя:
– создание и оформление письма
– исходящий адрес, адреса отправки копий
– тема письма
– проверка орфографии
– расширенное форматирование (HTML)
– вложенные файлы
– получение письма
– создание ответного сообщения
– пересылка полученного письма одному или нескольким адресатам
– работа с почтовым ящиком
– сортировка писем по папкам
– фильтрация спама
– правила обработки писем
Наиболее известные почтовые клиенты:
The Bat!, MS Outlook, MS Outlook Express, Mozilla Thunderbird
Большое распространение имеют web-клиенты, отображаемые через браузер.
213
SMTP
Simple Mail Transfer Protocol — простой протокол передачи текстовых
сообщений. Предназначен для передачи исходящей почты с использованием
порта TCP 25.
SMTP — требующий соединения текстовый протокол, по которому
отправитель сообщения связывается с получателем посредством выдачи
командных строк и получения необходимых данных через надёжный канал (TCPсоединение).
SMTP-сессия состоит из команд, посылаемых SMTP-клиентом, и
соответствующих ответов SMTP-сервера.
Сессия может включать ≥0 SMTP-операций (транзакций).
Письмо включает:
• конверт (заголовок),
• содержание письма (тело).
214
Пример SMTP-сессии
S:220 mail.company.tld ESMTP CommuniGate Pro 5.1.4i is glad to see you!
C:HELO
S:250 domain name should be qualified
C:MAIL FROM: <[email protected]>
S:250 [email protected] sender accepted
C:RCPT TO:<[email protected]>
S:250 [email protected] ok
C:RCPT TO: <[email protected]>
S:550 [email protected] unknown user account
C:DATA
S:354 Enter mail, end with "." on a line by itself
C:from: [email protected]
C:to: [email protected]
C:subject: тема
C: //
C:Hi!
C:.
S:250 769947 message accepted for delivery
C:QUIT
S:221 mail.company.tld CommuniGate Pro SMTP closing connection
215
Фазы передачи почты
Процесс передачи почтовых сообщений осуществляется в три фазы:
1. установление соединения
отклик сервера 220, 250
команда HELO
2. передача почты
команды MAIL FROM, RCPT TO, DATA
отклики сервера 250, 354
3. завершение соединения
команда QUIT
отклик 221
216
Адресация
Формат SMTP-адреса аналогичен DNS-адресации:
<имя_пользователя>@<имя_сервера>
́ ись MX (Mail eXchanger) — это один из типов записей в DNS, указывающий
Зап
способ маршрутизации электронной почты.
MX-записи для данного домена указывают серверы, на которые нужно
отправлять электронную почту, предназначенную для адресов в данном домене.
Кроме того, MX-записи указывают приоритет каждого из возможных серверов для
отправки.
Варианты отправки сообщений:
• «один-к-одному»
• «один-ко-многим»
• «многие-к-одному»
217
Команды SMTP
Команда
HELLO
MAIL FROM
RCPT TO
DATA
QUIT
RSET
VRFY
NOOP
TURN
EXPN
HELP
SEND FROM
SMOL FROM
SMAL FROM
Аргумент(ы)
Обязательные
Имя хоста отправителя
Отправитель сообщения
Получатель сообщения
Содержание (тело сообщения)
Завершение соединения
Рекомендуемые
Прерывание текущего действия
Проверяемое имя получателя
Дополнительные
Проверка состояния получателя
Смена положения отправителя и получателя
Почтовый список расширения
Имя команды
Получатель сообщения
Получатель сообщения
Получатель сообщения
218
Отклики SMTP
Отклик содержит три десятичных кода, которые могут дополняться текстовой
информацией. Смысл первых цифр:
2xy (положительное подтверждение завершения) - требуемая команда
успешно завершена и можно передавать следующую команду.
3xy (положительное промежуточное подтверждение) - требуемая команда
принята, но получатель нуждается в большей информации для завершения
обработки.
4xy (отрицательное переходное подтверждение) - требуемая команда должна
быть отклонена, но состояние ошибки временное. Команда может быть
передана опять.
5xy (отрицательное постоянное подтверждение завершения) - требуемая
команда должна быть отклонена. Команда не должна передаваться повторно.
219
Примеры SMTP-откликов
Код
211
214
220
221
250
251
354
421
450
451
500
501
502
503
550
551
552
553
Описание
Системное состояние или отклик на справку
Справочное сообщение
Готовность к обслуживанию
Завершение обслуживания передающего канала
Требуемая команда завершена
Пользователь не местный: сообщение должно быть передано далее
Начало ввода почты
Обслуживание не доступно
Почтовый ящик недоступен
Команда прервана: местная ошибка
Синтаксическая ошибка: неопознанная команда
Синтаксическая ошибка в параметрах или аргументах
Команда не выполнена
Неправильная последовательность команд
Команда не выполнена: почтовый ящик недоступен
Пользователь не местный
Требуемое действие прервано: переполнение местной памяти
Требуемое действие не принято: недопустимое имя почтового ящика
220
ESMTP
SMTP поддерживает только отправку текстовых сообщений в ASCII, не
поддерживает авторизацию.
Extended SMTP – обеспечивает дополнительные команды.
ESMTP-сессия начинается командой EHLO,
ответить списком поддерживаемых расширений.
S:
C:
S:
S:
S:
S:
S:
на которую сервер должен
220 mail.ru ESMTP Mon, 25 Jan 2010 19:10:14 +0300
EHLO StudyPost
250-mx71.mail.ru Hello StudyPost [213.178.53.68]
250-SIZE 31457280
250-8BITMIME
250-AUTH PLAIN LOGIN
250 PIPELINING
221
Расширение MIME
Multipurpose Internet Mail Extensions (Многоцелевое расширение интернетпочты) — дополняющий протокол, позволяющий передавать сообщения,
используя SMTP-данные, которые не имеют вид ASCII.
MIME определяет пять заголовков, которые могут быть дополнены к исходной
секции заголовков SMTP для определения параметров преобразования:
• MIME – Version 1.1
• Content – Type: <type/subtype; parameters>
• Content – Transfer – Encoding: <type>
– 7bit: NVT ASCII
– 8bit: ASCII
– base64: кодировка BASE 64
– binary: двоичные данные
– quoted-printable: для печати (смешанные ASCII и не-ASCII данные)
• Content – Id: id=<content.id>
• Content – Description: <description>
BASE 64 – это схема, позволяющая любую последовательность байт
представить в виде печатных ASCII-символов.
222
Отправка сообщения с вложениями
C:
S:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
DATA
354 Enter message, ending with "." on a line by itself
From: [email protected]
Subject: тестирование программы
To: [email protected]
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=MyMIMEBoundary
This is a multi-part message in MIME format.
--MyMIMEBoundary
Content-Type: text/plain
Content-Transfer-Encoding: 8bit
Это тестовое письмо содержит два вложенных файла:
рисунок и текст.
223
Отправка сообщения с вложениями
C: --MyMIMEBoundary
C: Content-Type: application/octet-stream; name=attach.png
C: Content-Disposition: attachment; filename=attach.png
C: Content-Transfer-Encoding: base64
C:
C: <передача рисунка в кодировке base64>
C:
C: --MyMIMEBoundary
C: Content-Type: application/octet-stream;
name=Приложение.txt
C: Content-Disposition: attachment; filename=Вложение.txt
C: Content-Transfer-Encoding: base64
C:
C: 6+7m5e3o5SDqIO/o8fzs8w==
C:
C: --MyMIMEBoundary-C:
C: .
S: 250 OK id=1NZRW2-000Ioa-00
224
POP3
Post Office Protocol Version 3 - стандартный Интернет-протокол прикладного
уровня, используемый для извлечения электронного сообщения с удаленного
сервера по TCP/IP-соединению.
Сервер прослушивает порт 110.
POP поддерживает простые требования «загрузи-и-удали» для доступа к
удаленным почтовым ящикам.
В протоколе POP3 предусмотрено 3 состояния сеанса:
Авторизация
Клиент проходит процедуру аутентификации.
Транзакция
Клиент получает информацию о состоянии почтового ящика, принимает и
удаляет почту.
Обновление
Сервер удаляет выбранные письма и закрывает соединение.
225
Пример POP3-сессии
S: <Сервер ожидает входящие соединения на порту 110>
C: <подключается к серверу>
S: +OK POP3 server ready [email protected]
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK mrose's maildrop has 2 messages (320 octets)
C: STAT
S: +OK 2 320
C: LIST
S: +OK 2 messages (320 octets)
S: 1 120
S: 2 200
S: .
C: RETR 1
S: +OK 120 octets
S: <сервер передаёт сообщение 1>
S: .
C: DELE 1
S: +OK message 1 deleted
226
Пример POP3-сессии
C: RETR 2
S: +OK 200 octets
S: <сервер передаёт сообщение 2>
S: .
C: DELE 2
S: +OK message 2 deleted
C: QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
C: <закрывает соединение>
S: <продолжает ждать входящие соединения>
227
Варианты аутентификации
Команда
Аргументы
Возможные ответы
Аутентификация открытым текстом
USER
[имя]
PASS
[пароль]
+OK name is a valid mailbox
-ERR never heard of mailbox name
+OK maildrop locked and ready
-ERR invalid password
-ERR unable to lock maildrop
Аутентификация с зашифрованным паролем
APOP
[имя] [digest]
+OK maildrop has n message
-ERR password suplied for [имя] is incorrect
C: USER mrose
S +OK User accepted
C: PASS mrosepass
S +OK Pass accepted
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK mrose's maildrop has 2 messages (320 octets)
228
Команды и ответы POP3
Имя
Аргументы
DELE [сообщение]
LIST
[сообщение]
NOOP —
RETR [сообщение]
RSET —
STAT —
[сообщение] [количество
TOP
строк]
QUIT —
Возможные ответы
+OK message deleted
-ERR no such message
+OK scan listing follows
-ERR no such message
+OK
+OK message follows
-ERR no such message
+OK
+OK a b
+OK n octets
-ERR no such message
+OK
229
IMAP
Internet Message Access Protocol — протокол прикладного уровня для доступа к
электронной почте.
Базируется на транспортном протоколе TCP и использует порт 143.
Текущая версия IMAP4.1
POP3 имеет ряд недостатков, и наиболее серьёзный из них — отсутствие
возможностей по управлению перемещением и хранением сообщений на
сервере. Сообщения, как правило, загружаются с почтового сервера все сразу,
после чего они с сервера удаляются, то есть отсутствует возможность выбирать
сообщения для получения.
Почтовая программа, использующая этот протокол, получает доступ к
хранилищу корреспонденции на сервере так, как будто эта корреспонденция
расположена на компьютере получателя. Электронными письмами можно
манипулировать с компьютера пользователя (клиента) без постоянной пересылки
с сервера и обратно файлов с полным содержанием писем.
230
Основные отличия POP3 и IMAP
При использовании POP3 клиент подключается к серверу только на
промежуток времени, необходимый для загрузки новых сообщений. При
использовании IMAP соединение не разрывается, пока пользовательский
интерфейс активен, а сообщения загружаются только по требованию клиента. Это
позволяет уменьшить время отклика для пользователей, в чьих ящиках имеется
много сообщений большого объёма.
Протокол POP требует, чтоб текущий клиент был единственным
подключенным к ящику. IMAP позволяет одновременный доступ нескольких
клиентов к ящику и предоставляет клиенту возможность отслеживать изменения,
вносимые другими клиентами, подключенными одновременно с ним.
Благодаря системе флагов, определенной в IMAP4, клиент может отслеживать
состояние сообщения (прочитано, отправлен ответ, удалено и т. д.); данные о
флагах хранятся на сервере.
Клиенты IMAP4 могут создавать, переименовывать и удалять ящики и
перемещать сообщения между ящиками.
231
Атрибуты сообщений
UID
64-битовая
последовательность,
гарантирующая
однозначную
идентификацию сообщения в почтовом ящике. Чем позже сообщение пришло,
тем больше его UID.
Порядковый номер сообщения
Порядковый номер сообщения в почтовом ящике начинается с 1. Каждое
сообщение, начиная со второго, имеет порядковый номер ровно на 1 больше,
чем предшествующее ему. В течение сессии допустимо изменение порядкового
номера сообщения. Например, когда сообщение удаляется из почтового ящика,
номера всех последующих сообщений изменяются.
Прочие атрибуты
• время и дата получения сообщения
• размер сообщения — число октетов в сообщении.
• структура конверта сообщения.
• структура тела сообщения
232
Флаги сообщения
Этот атрибут представляет собой список из нуля или более именованных
лексем, соотнесённых с сообщением. Флаг устанавливается путём его добавления
к этому списку и обнуляется путём его удаления. Флаг может быть постоянным
или действующим только на время данной сессии.
Все системные флаги начинаются с символа \ :
• \seen — сообщение прочитано
• \answered — на сообщение отправлен ответ
• \flagged — сообщение отмечено как «важное»
• \deleted — сообщение отмечено как удаленное
• \draft — сообщение отмечено как черновик
• \recent — недавнее сообщение (впервые появилось в ящике в ходе текущей
сессии)
Флаг может быть постоянным или действующим только на время данной
сессии.
233
Взаимодействие сервера и клиента
Команды клиента
Любая команда клиента начинается с префикса-идентификатора (обычно
короткая буквенно-цифровая строка, например, A0001, A0002), называемого
меткой (tag). Для каждой команды клиент генерирует свою метку.
Клиент должен завершить отправку одной команды, прежде чем отправить
другую.
Отклик сервера
Данные могут быть отправлены сервером в ответ на команду клиента или по
собственной инициативе. Формат данных не зависит от причины отправки.
Отклик указывает на удачное/неудачное выполнение операции. Он
использует ту же метку, что и команда клиента, запустившая процедуру. Таким
образом, если осуществляется более чем одна команда, метка сервера указывает
на команду, вызвавшую данный отклик. Имеется три вида отклика :
• ok (успешное выполнение),
• no (неудача),
• bad (протокольная ошибка).
Данные, передаваемые сервером клиенту, а также статусные отклики,
которые не указывают на завершение выполнения команды, имеют префикс * и
называются непомеченными откликами.
234
ПОТОКОВОЕ МУЛЬТИМЕДИА
Протоколы IGMP, RTP, RTCP, RTSP, SIP, X.323
235
Особенности передачи мультимедиа
К потоковому мультимедиа относятся онлайн-трансляции аудио и видео,
видеоконференции, IP-телефония и др.
«Потоковость» предполагает передачу и воспроизведение в реальном
масштабе времени, т.е. без задержек – передача и потребление сигнала
происходят синхронно. Не всякий мультимедиа-трафик является потоковым, и
наоборот, не всякая передача в реальном масштабе времени относится к
мультимедиа.
Полностью исключить задержку при передаче невозможно, ее можно лишь
сократить до некоторого предела. Наибольшие проблемы вызывает разница в
задержке при доставке различных пакетов (джиттер – первая производная
задержки передачи по времени).
При передаче мультимедиа крайне важно иметь гарантированный уровень
качества обслуживания (QoS):
• необходимую полосу пропускания,
• малую задержку,
• низкий разброс времени доставки,
• малую вероятность потери пакетов.
Мультимедиа-трафик обладает большим объемом, поэтому для его передачи
используется:
• сжатие данных;
• групповая рассылка позволяет отправлять данные одновременно от одного
источника к многим получателям.
236
Сжатие мультимедиа данных
Основные виды сжатия – с потерями и без потерь.
Осуществляется с помощью кодеков.
Основные кодеки видео – MPEG 1/2/4. Для сжатия видео используется:
• сжатие JPEG для отдельных кадров;
• компенсация движения – использование ключевых кадров, все остальные
кадры лишь показывают изменение картинки относительно ключевых;
• продвинутое сжатие учитывает принципы движения пикселей изображения
и восприятия изображения человеком.
Другие популярные видеокодеки: QuickTime, RealVideo, FLV, WMV, DivX (на
базе MPEG-4) и др.
237
Аудиокодеки
Аудиокодеки могут быть программными и аппаратными.
Популярные программные аудиокодеки:
• MPEG-1 Layer III (MP3) — кодек аудиозаписей (музыка, аудиокниги и т. п.) для
компьютерной техники и цифровых проигрывателей
• Ogg Vorbis (OGG) — используется в компьютерных играх и в файлообменных
сетях
• Advanced Audio Codec (AAC) - кодек, позиционировавшийся как альтернатива
MP3. Популяренв онлайн-видео (напр., на YouTube)
• Free Lossless Audio Codec (FLAC) - свободный кодек, использующий сжатие без
потерь. Альтернативные, менее распространённые lossless-кодеки: WavPack
(WV), Monkey's Audio (APE) и др.
• GSM-FR — первый цифровой стандарт кодирования речи, использованный в
телефонах GSM
• Adaptive multi rate (AMR) — запись человеческого голоса в мобильных
телефонах и других мобильных устройствах
• G.723.1 — один из базовых кодеков для приложений IP-телефонии
• G.729 — патентованный узкополосный кодек, который применяется для
цифрового представления речи
• Internet Low Bitrate Codec (iLBC) — популярный свободный кодек для IPтелефонии (в частности, для Skype и Google Talk)
238
Резервирование пропускной способности
Для обеспечения QoS используется резервирование каналов передачи.
Один из протоколов резервирования - RSVP (Resource ReSerVation Protocol).
Узел-источник до передачи данных посылает по сети специальное сообщение.
Это сообщение о пути (path message) содержит данные о типе передаваемой
информации и требуемой пропускной способности.
Маршрутизатор, получив такое сообщение, проверяет свои ресурсы с целью
определения возможности выделения требуемой пропускной способности.
При её отсутствии маршрутизатор запрос отвергает.
Если требуемая пропускная способность достижима, то маршрутизатор
настраивает алгоритм обработки пакетов таким образом, чтобы указанному
потоку всегда предоставлялась требуемая пропускная способность, а затем
передаёт сообщение следующему маршрутизатору вдоль пути.
В результате, по всему пути от узла-отправителя до адреса назначения
резервируется необходимая пропускная способность.
239
Управление передачей в реальном времени
Используется связка прикладных протоколов RTP (Real-time Transport Protocol)
и RTCP (Real-Time Transport Control Protocol). Используется UDP-соединение.
Эти протоколы не имеют зарезервированного порта, но RTP всегда использует
четный порт, а RTCP следующий за ним нечетный.
Это создает проблемы с защитой, многие файерволлы блокируют входящий
трафик на случайные порты.
RTP служит для передачи самих мультимедиа-данных в виде стандартных
пакетов.
RTCP служит для отправки управляющих сообщений. Необходим для
обеспечения обратной связи о качестве обслуживания.
Т.е., аналогично FTP, имеется два отдельных канала для передачи данных и
управления передачей.
Аудио- и видеоданные передаются отдельно, т.е. используется 2 RTP и 2 RTCP
соединения.
240
RTP-пакет
Общий заголовок
Идентификатор вложения
0-15 раз
Заголовок вложения
Вложение (данные от одного источника)
Поля заголовка пакета:
0-1 — Ver. (2 бита) указывает версию протокола. Текущая версия — 2.
2 — P (один бит) используется в случаях, когда RTP-пакет дополняется пустыми
байтами на конце.
3 — X (один бит) используется для указания расширений протокола,
задействованных в пакете.
4-7 -CC (4 бита) содержит количество CSRC-идентификаторов, следующих за
постоянным заголовком.
8 — M (один бит) используется на уровне приложения и определяется профилем.
Если это поле установлено, то данные пакета имеют какое-то особое значение для
приложения.
9-15 — PT (7 бит) указывает формат полезной нагрузки и определяет её
интерпретацию приложением.
64-95 — SSRC указывает источник синхронизации.
241
Сообщения RTCP
Типы сообщений:
SR: Отчет отправителя. Для статистики приема и передачи участников,
которые являются активными отправителями
RR: Отчет получателя. Для получения статистики от участников, которые не
являются активными отправителями
SDES: Элементы описания источника, включая CNAME
BYE: Отмечает прекращение участия в группе
APP: Специфические функции приложения
CNAME (каноническое имя) – это постоянный уникальный идентификатор
транспортного уровня для источника передачи. Позволяет различать участников
передачи.
242
Протокол RTSP
Потоковый протокол реального времени (Real Time Streaming Protocol),
разработанный IETF в 1998 году и описанный в RFC 2326, является прикладным
протоколом, предназначенным для использования в системах, работающих с
мультимедиа данными, и позволяющий клиенту удалённо управлять потоком
данных с сервера, предоставляя возможность выполнения команд, таких как
«Старт», «Стоп», а также доступа по времени к файлам, расположенным на
сервере.
RTSP не выполняет сжатие, а также не определяет метод инкапсуляции
мультимедийных данных и транспортные протоколы. Передача потоковых
данных сама по себе не является частью протокола RTSP.
Запросы подобны HTTP, но их может отправлять и клиент, и сервер, но
управление соединением осуществляет сервер.
Передача RTSP-сообщений может идти по RTP-каналу.
243
IP-телефония. Протокол SIP
IP-телефония позволяет использовать Интернет как телефонную сеть с
некоторыми дополнительными возможностями. При этом вместо коммутации
каналов это приложение позволяет применять коммутацию пакетов через
Интернет.
Методы коммутации:
• коммутация пакетов;
• коммутация каналов.
Протокол инициализации сеанса связи (SIP) - протокол прикладного уровня,
который устанавливает, управляет и заканчивает мультимедийный сеанс (вызов).
Он может использоваться, чтобы создать соединения с двумя участниками,
многими участниками или сеансы групповой рассылки. SIP не зависит от
основного транспортного уровня; он может выполняться с помощью протоколов
UDP, TCP или SCTP.
Сообщения SIP подобны HTTP-сообщениям:
INVITE; ACK; BYE; OPTION; CANCEL; REGISTER
244
Адресация SIP
В обычной телефонной связи применяются два номера: телефонный номер
исходящего абонента и телефонный номер входящего абонента.
В SIP могут использоваться адреса электронной почты, IP-адрес, телефонные
номера и другие типы адресов, чтобы идентифицировать исходящего и
входящего абонента. Однако адрес должен быть в формате SIP:
sip: [email protected]
sip: [email protected]
sip: alla@8-946-315-50-86
Отслеживание вызываемого абонента – поиск IP-адреса по SIP-адресу.
Осуществляется регистраторами.
Сервер вызывающего абонента посылает LOOKUP-запрос регистратору на
поиск текущего IP-адреса вызываемого абонента.
245
Простой сеанс SIP
Вызывающий
Вызываемый
246
Установление соединения через регистратор
247
Стандарт H.323
Разработан для соединения компьютерных и обычных телефонных сетей.
248
Виртуальные сети
VPN (Virtual Private Network) — обобщённое название технологий,
позволяющих обеспечить одно или несколько сетевых соединений (логическую
сеть) поверх другой сети (например, Интернет).
Уровень доверия к построенной логической сети не зависит от уровня
доверия к базовым сетям.
В Windows термином VPN обозначают одну из реализаций виртуальной сети
— PPTP, причём используемую зачастую не для создания частных сетей.
Intranet VPN используют для объединения в единую защищённую сеть
нескольких распределённых филиалов одной организации, обменивающихся
данными по открытым каналам связи.
Remote Access VPN используют для создания защищённого канала между
сегментом корпоративной сети и одиночным пользователем из дома.
Extranet VPN используют для сетей, к которым подключаются «внешние»
пользователи (например, заказчики или клиенты), уровень доверия к которым
намного ниже, чем к сотрудникам компании.
Internet VPN используется для предоставления доступа к интернету
провайдерами, обычно если по одному физическому каналу подключаются
несколько пользователей.
Client/Server VPN обеспечивает защиту передаваемых данных между двумя
узлами (не сетями) корпоративной сети. Реализует разделение трафика.
249
Технологии VPN
IPSec (IP Security) - набор протоколов для обеспечения защиты данных,
передаваемых по протоколу IP, позволяет осуществлять аутентификацию,
проверку целостности и/или шифрование IP-пакетов, защищённый обмен
ключами в сети Интернет.
PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка,
позволяющий компьютеру устанавливать защищённое соединение с сервером за
счёт создания специального туннеля в стандартной, незащищённой сети. PPTP
инкапсулирует кадры PPP в IP-пакеты. РРТР использует дополнительное TCPсоединение для обслуживания туннеля.
PPPoE (Point-to-point protocol over Ethernet) — сетевой протокол канального уровня
передачи кадров PPP через Ethernet. Предоставляет дополнительные
возможности (аутентификация, сжатие данных, шифрование). Инкапсулироует IP,
или другие протоколы, которые настраиваются на PPP, через соединение Ethernet.
L2TP (Layer 2 Tunneling Protocol ) — туннельный протокол сеансового уровня.
Главное достоинство L2TP состоит в том, что он позволяет создавать туннель не
только в сетях IP, но и в таких, как ATM, X.25 и Frame Relay. Использует
зарегистрированный UDP-порт 1701.
Hamachi – программное обеспечение, позволяющеет создать локальную сеть
поверх Интернета (через UDP). При этом взаимодействующие узлы могут
находиться за NAT или фаерволом.
250