Коммуникационные сети: краткое введение 9785970609675, 9781627058872

Эта книга посвящена основным принципам, лежащим в основе проектирования и функционирования интернета. В ней дается целос

126 69 5MB

Russian Pages 268 [269] Year 2023

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Коммуникационные сети: краткое введение
 9785970609675, 9781627058872

Table of contents :
Оглавление
Предисловие от издательства
Отзывы
Аннотация ко второму изданию
Предисловие
Глава 1. Интернет
1.1. Основные операции
1.1.1. Хосты, маршрутизаторы, каналы связи
1.1.2. Коммутация пакетов
1.1.3. Адресация
1.1.4. Маршрутизация
1.1.5. Обнаружение ошибок
1.1.6. Повторная передача ошибочных пакетов
1.1.7. Управление перегрузками
1.1.8. Управление потоком
1.2. DNS, HTTP и www
1.2.1. DNS
1.2.2. HTTP и www
1.3. Краткое изложение
1.4. Задачи
1.5. Ссылки
Глава 2. Принципы
2.1. Совместное использование
2.2. Метрики
2.2.1. Скорость канала связи
2.2.2. Широкополосный канал и его производительность
2.2.3. Задержка
2.2.4. Пропускная способность
2.2.5. Джиттер
2.2.6. Очередь М/М/1
2.2.7. Закон Литтла
2.2.8. Fairness, или индексы справедливости в сети
2.3. Масштабируемость
2.3.1. Адресация на основе местоположения
2.3.2. Двухуровневая маршрутизация
2.3.3. Негарантированная доставка
2.3.4. Сквозной (end-to-end) принцип и маршрутизаторы stateless
2.3.5. Иерархическое именование
2.4. Приложения и технологическая независимость
2.4.1. Уровни модели OSI
2.5. Топология приложений
2.5.1. Клиент/сервер
2.5.2. P2P
2.5.3. Облачные вычисления
2.5.4. Распределение контента
2.5.5. multicast/anycast
2.5.6. push/pull
2.5.7. Подбор контента по местоположению
2.6. Резюме
2.7. Задачи
2.8. Ссылки
Глава 3. Ethernet
3.1. Типовая установка
3.2. История Ethernet
3.2.1. Сеть Aloha (Alohanet)
3.2.2. Кабельная сеть Ethernet
3.2.3. Хаб Ethernet
3.2.4. Коммутируемый Ethernet
3.3. Адреса
3.4. Кадр
3.5. Физический уровень
3.6. Коммутируемый Ethernet
3.6.1. Пример
3.6.2. Обучение (learning)
3.6.3. Протокол spanning tree
3.7. Aloha
3.7.1. Версия с тайм-слотами
3.8. Aloha без слотов
3.9. Хаб Ethernet
3.9.1. Максимальное время обнаружения коллизии
3.10. Приложение: теория вероятности
3.10.1. Вероятность
3.10.2. Аддитивность эксклюзивных событий
3.10.3. Независимые события
3.10.4. Слотовая Aloha
3.10.5. Неслотовая Aloha
3.10.6. Ожидание успеха
3.10.7. Хаб Ethernet
3.11. Резюме
3.12. Задачи
3.13. Ссылки
Глава 4. Wi-Fi
4.1. Основные операции
4.2. Управление доступом к среде (MAC)
4.2.1. Протокол MAC
4.2.2. Усовершенствования для доступа к среде передачи
4.2.3. MAC-адреса
4.3. Физический уровень
4.4. Анализ эффективности протокола MAC
4.4.1. Одно устройство
4.4.2. Несколько устройств
4.5. Последние достижения
4.5.1. IEEE 802.11n – введение MIMO в Wi-Fi
4.5.2. IEEE 802.11ad – Wi-Fi в миллиметровом диапазоне
4.5.3. IEEE 802.11ac – введение MU-MIMO в Wi-Fi
4.5.4. IEEE 802.11ah – Wi-Fi для IoT и M2M
4.5.5. Одноранговая Wi-Fi
4.6. Приложение: цепи Маркова
4.7. Резюме
4.8. Задачи
4.9. Ссылки
Глава 5. Маршрутизация
5.1. Домены и двухуровневая маршрутизация
5.1.1. Масштабируемость
5.1.2. Транзит и пиринг
5.2. Междоменная маршрутизация
5.2.1. Алгоритм вектора пути
5.2.2. Возможные колебания
5.2.3. Мультивыходные дискриминаторы
5.3. Внутридоменная маршрутизация по кратчайшему пути
5.3.1. Алгоритм Дейкстры и состояние связи
5.3.2. Алгоритм Беллмана–Форда и вектор расстояния
Плохие новости распространяются медленно
Сходимость
5.4. Anycast, multicast
5.4.1. anycast
5.4.2. multicast
5.4.3. Прямая коррекция ошибок (FEC)
5.4.4. Сетевое кодирование
5.5. Сети ad hoc
5.5.1. AODV
5.5.2. OLSR
5.5.3. Муравьиная маршрутизация
5.5.4. Географическая маршрутизация
5.5.5. Маршрутизация обратного давления
5.6. Резюме
5.7. Задачи
5.8 . Ссылки
Глава 6. Работа в сети Интернет
6.1. Цель
6.2. Основные компоненты: маска, шлюз, ARP
6.2.1. Адреса и подсети
6.2.2. Шлюз
6.2.3. DNS-сервер
6.2.4. ARP
6.2.5. Конфигурация
6.3. Примеры
6.3.1. Одна и та же подсеть
6.3.2. Разные подсети
6.3.3. Поиск IP-адресов
6.3.4. Фрагментация
6.4. DHCP
6.5. NAT
6.6. Резюме
6.7. Задачи
6.8. Ссылки
Глава 7. Транспорт
7.1. Транспортные услуги
7.2. Транспортный заголовок
7.3. Состояния TCP
7.4. Контроль ошибок
7.4.1. Stop-and-wait
7.4.2. Go Back N
7.4.3. Выборочные подтверждения
7.4.4. Таймеры
7.5. Управление перегрузками
7.5.1. AIMD
7.5.2. Усовершенствования: быстрая ретрансляция и быстрое восстановление
7.5.3. Регулировка производительности
7.5.4. Размер окна TCP
7.5.5. Терминология
7.6. Управление потоком
7.7. Альтернативные схемы управления перегрузками
7.8. Резюме
7.9. Задачи
7.10. Ссылки
Глава 8. Модели
8.1. Графы
8.1.1. Max-flow, min-cut
8.1.2. Раскраска графа и протоколы MAC
8.2. Очереди
8.2.1. Очередь М/М/1
8.2.2. Сети Джексона
8.2.3. Очередь против коммуникационных сетей
8.3. Роль уровней
8.4. Управление перегрузками
8.4.1. Справедливость против производительности
8.4.2. Распределенное управление перегрузками
8.4.3. И снова о TCP
8.5. Динамические маршрутизация и управление перегрузками
8.6. Беспроводная связь
8.7. Приложение: обоснование теоремы двойственности линейного программирования
8.8. Резюме
8.9. Задачи
8.10. Ссылки
Глава 9. LTE
9.1. Сотовая сеть
9.2. Технологическая эволюция
9.3. Ключевые аспекты LTE
9.3.1. Архитектура системы LTE
9.3.2. Физический уровень
9.3.3. Поддержка требований QоS
9.3.4. Планировщик
9.4. LTE-Advanced
9.4.1. Агрегация несущих
9.4.2. Поддержка расширенного MIMO
9.4.3. Узлы ретрансляции (RN)
9.4.4. Координированная многоточечная работа (CoMP)
9.5. 5G
9.6. Резюме
9.7. Задачи
9.8. Ссылки
Глава 10. QOS
10.1. Обзор
10.2. Формирование трафика
10.2.1. Механизм leaky bucket
10.2.2. Границы задержки
10.3. Планирование
10.3.1. GPS
10.3.2. WFQ
10.4. Регулируемые потоки и WFQ
10.5. Сквозное QOS
10.6. Управление сквозным пропусканием
10.7. Сетевой нейтралитет
10.8. Резюме
10.9. Задачи
10.10. Ссылки
Глава 11. Физический уровень сети
11.1. Как передавать биты?
11.2. Характеристики каналов связи
11.3. Проводные и беспроводные каналы связи
11.3.1. Схемы модуляции: BPSK, QPSK, QAM
11.3.2. Межсотовые помехи и OFDM
11.4. Оптические линии связи
11.4.1. Работа оптоволокна
11.4.2. Модуляция ООК
11.4.3. Мультиплексирование с разделением по длине волны
11.4.4. Оптическая коммутация
11.4.5. Пассивная оптическая сеть
11.5. Резюме
11.6. Ссылки
Глава 12. Дополнительные темы
12.1. Коммутаторы
12.1.1. Модульные коммутаторы
12.1.2. Матричные коммутаторы каналов
12.2. Оверлейные сети
12.2.1. Примеры сетей: CDN и P2P
Сеть распространения контента (CDN)
Одноранговая сеть (P2P)
12.2.2. Маршрутизация в оверлейных сетях
12.3. Как работают популярные протоколы P2P
12.3.1. Первое поколение: на базе сервер/клиент
12.3.2. Второе поколение: централизованный каталог
12.3.3. Третье поколение: полностью распределенный протокол
12.3.4. Появление иерархического оверлея – суперузлов
12.3.5. Продвинутый распределенный совместный доступ к файлам: BitTorrent
12.4. Сенсорные сети
12.4.1. Вопросы проектирования
Энергия
Местоположение
Адреса и маршрутизация
Внутрисетевая обработка и запросы
12.5. Распределенные приложения
12.5.1. Алгоритм маршрутизации Беллмана–Форда
12.5.2. Регулировка мощности
12.6. Византийское соглашение
12.6.1. Соглашение при ненадежном канале связи
12.6.2. Консенсус в присутствии противников
12.7. Сжатие источника
12.8. SDN и NFV
12.8.1. Архитектура SDN
12.8.2. Новые услуги, предоставляемые SDN
Отложенная услуга
12.8.3. Сеть, определяемая знаниями
12.8.4. Фреймворк управления для NFV
12.9. Интернет вещей (IoT)
12.9.1. Парадигмы удаленных вычислений и хранения данных
12.10. Резюме
12.11. Задачи
12.12. Ссылки
Об авторах
Библиография
Предметный указатель

Citation preview

ЖАН ВАЛЬРАН И ШЬЯМ ПАРЕХ

КОММУНИКАЦИОННЫЕ СЕТИ: КРАТКОЕ ВВЕДЕНИЕ

Communication Networks A Concise Introduction Second Edition

Jean Walrand

University of California, Berkeley

Shyam Parekh

AT&T Labs Research and University of California, Berkeley (Adjunct)

Коммуникационные сети: краткое введение

Жан Вальран

Калифорнийский университет, Беркли

Шьям Парех

AT&T Labs Research и Калифорнийский университет, Беркли, адьюнкт

Москва, 2023

УДК 004.7 ББК 32.971.35 В15

В15 Жан Вальран, Шьям Парех Коммуникационные сети: краткое введение / пер. с англ. К. В. Петровичевой – М.: ДМК Пресс, 2023. – 268 с.: ил. ISBN 978-5-97060-967-5 Эта книга посвящена основным принципам, лежащим в основе проек­ тирования и функционирования интернета. В ней дается целостное описание этой критически важной, но сложной инфраструктуры и четко и ясно объясняются основные идеи, не скрываясь за несущественными деталями реализации. Издание предназначено ИТ­специалистам, студентам, преподавателям, а также может быть полезно широкому кругу читателей.

Copyright ©2018 Morgan and Claypool Publishers. All Rights Reserved Morgan and Claypool Publishers. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

ISBN 978­1­62705­887­2 (англ.) ISBN 978­5­97060­967­5 (рус.)

Copyright © Morgan and Claypool Publishers, 2018 © Оформление, перевод на русский язык, издание, ДМК Пресс, 2023

Оглавление Предисловие от издательства ...........................................................11 Отзывы ................................................................................................12 Аннотация ко второму изданию ......................................................14 Предисловие .......................................................................................15 Глава 1. Интернет ...............................................................................17 1.1. Основные операции................................................................................... 17

1.1.1. Хосты, маршрутизаторы, каналы связи ...................................................... 17 1.1.2. Коммутация пакетов .................................................................................... 18 1.1.3. Адресация...................................................................................................... 19 1.1.4. Маршрутизация ............................................................................................ 19 1.1.5. Обнаружение ошибок ................................................................................... 21 1.1.6. Повторная передача ошибочных пакетов .................................................. 22 1.1.7. Управление перегрузками ............................................................................ 22 1.1.8. Управление потоком..................................................................................... 23 1.2. DNS, HTTP и www ....................................................................................... 23 1.2.1. DNS................................................................................................................. 23 1.2.2. HTTP и www................................................................................................... 23 1.3. Краткое изложение .................................................................................... 24 1.4. Задачи ......................................................................................................... 24 1.5. Ссылки ........................................................................................................ 25

Глава 2. Принципы .............................................................................26 2.1. Совместное использование ....................................................................... 26 2.2. Метрики ...................................................................................................... 27

2.2.1. Скорость канала связи .................................................................................. 28 2.2.2. Широкополосный канал и его производительность .................................. 28 2.2.3. Задержка ........................................................................................................ 29 2.2.4. Пропускная способность .............................................................................. 30 2.2.5. Джиттер ......................................................................................................... 32 2.2.6. Очередь М/М/1 .............................................................................................. 33 2.2.7. Закон Литтла.................................................................................................. 35 2.2.8. Fairness, или индексы справедливости в сети ............................................ 37 2.3. Масштабируемость .................................................................................... 38 2.3.1. Адресация на основе местоположения ....................................................... 38 2.3.2. Двухуровневая маршрутизация .................................................................. 39 2.3.3. Негарантированная доставка ...................................................................... 40 2.3.4. Сквозной (end-to-end ) принцип и маршрутизаторы stateless ................. 41 2.3.5. Иерархическое именование......................................................................... 42 2.4. Приложения и технологическая независимость ..................................... 42 2.4.1. Уровни модели OSI ....................................................................................... 43 2.5. Топология приложений ............................................................................. 44 2.5.1. Клиент/сервер ............................................................................................... 44 2.5.2. P2P ................................................................................................................. 45

6

 Оглавление 2.5.3. Облачные вычисления ................................................................................. 45 2.5.4. Распределение контента .............................................................................. 46 2.5.5. multicast/anycast ........................................................................................... 46 2.5.6. push/pull ........................................................................................................ 46 2.5.7. Подбор контента по местоположению ........................................................ 47 2.6. Резюме ........................................................................................................ 47 2.7. Задачи ......................................................................................................... 47 2.8. Ссылки ........................................................................................................ 51

Глава 3. Ethernet .................................................................................52 3.1. Типовая установка ..................................................................................... 52 3.2. История Ethernet ........................................................................................ 52

3.2.1. Сеть Aloha (Alohanet) .................................................................................... 53 3.2.2. Кабельная сеть Ethernet................................................................................ 54 3.2.3. Хаб Ethernet ................................................................................................... 56 3.2.4. Коммутируемый Ethernet............................................................................. 57 3.3. Адреса ......................................................................................................... 57 3.4. Кадр ............................................................................................................. 57 3.5. Физический уровень .................................................................................. 58 3.6. Коммутируемый Ethernet .......................................................................... 59 3.6.1. Пример .......................................................................................................... 59 3.6.2. Обучение (learning) ....................................................................................... 59 3.6.3. Протокол spanning tree ................................................................................. 60 3.7. Aloha ............................................................................................................ 62 3.7.1. Версия с тайм-слотами ................................................................................. 62 3.8. Aloha без слотов ......................................................................................... 63 3.9. Хаб Ethernet ................................................................................................ 63 3.9.1. Максимальное время обнаружения коллизии............................................ 63 3.10. Приложение: теория вероятности .......................................................... 65 3.10.1. Вероятность ................................................................................................. 65 3.10.2. Аддитивность эксклюзивных событий ..................................................... 65 3.10.3. Независимые события ................................................................................ 66 3.10.4. Слотовая Aloha ............................................................................................ 67 3.10.5. Неслотовая Aloha ........................................................................................ 67 3.10.6. Ожидание успеха ........................................................................................ 69 3.10.7. Хаб Ethernet ................................................................................................. 69 3.11. Резюме ...................................................................................................... 70 3.12. Задачи ....................................................................................................... 70 3.13. Ссылки ...................................................................................................... 73

Глава 4. Wi-Fi.......................................................................................74 4.1. Основные операции................................................................................... 74 4.2. Управление доступом к среде (MAC) ........................................................ 75

4.2.1. Протокол MAC ............................................................................................... 75 4.2.2. Усовершенствования для доступа к среде передачи .................................. 78 4.2.3. MAC-адреса ................................................................................................... 79 4.3. Физический уровень .................................................................................. 80 4.4. Анализ эффективности протокола MAC ................................................... 81

Оглавление  7 4.4.1. Одно устройство ........................................................................................... 81 4.4.2. Несколько устройств..................................................................................... 82 4.5. Последние достижения .............................................................................. 87 4.5.1. IEEE 802.11n – введение MIMO в Wi-Fi ........................................................ 87 4.5.2. IEEE 802.11ad – Wi-Fi в миллиметровом диапазоне .................................. 88 4.5.3. IEEE 802.11ac – введение MU-MIMO в Wi-Fi ............................................... 88 4.5.4. IEEE 802.11ah – Wi-Fi для IoT и M2M ........................................................... 89 4.5.5. Одноранговая Wi-Fi ...................................................................................... 90 4.6. Приложение: цепи Маркова ...................................................................... 91 4.7. Резюме......................................................................................................... 94 4.8. Задачи ......................................................................................................... 95 4.9. Ссылки ........................................................................................................ 97

Глава 5. Маршрутизация ...................................................................98 5.1. Домены и двухуровневая маршрутизация............................................... 98

5.1.1. Масштабируемость ....................................................................................... 99 5.1.2. Транзит и пиринг .......................................................................................... 99 5.2. Междоменная маршрутизация ............................................................... 100 5.2.1. Алгоритм вектора пути .............................................................................. 101 5.2.2. Возможные колебания................................................................................ 102 5.2.3. Мультивыходные дискриминаторы .......................................................... 103 5.3. Внутридоменная маршрутизация по кратчайшему пути ..................... 103 5.3.1. Алгоритм Дейкстры и состояние связи ..................................................... 103 5.3.2. Алгоритм Беллмана–Форда и вектор расстояния .................................... 105 5.4. Anycast, multicast...................................................................................... 107 5.4.1. Anycast ......................................................................................................... 108 5.4.2. Multicast ....................................................................................................... 108 5.4.3. Прямая коррекция ошибок (FEC) .............................................................. 109 5.4.4. Сетевое кодирование.................................................................................. 111 5.5. Сети ad hoc................................................................................................ 113 5.5.1. AODV ............................................................................................................ 113 5.5.2. OLSR ............................................................................................................. 114 5.5.3. Муравьиная маршрутизация ..................................................................... 114 5.5.4. Географическая маршрутизация ............................................................... 114 5.5.5. Маршрутизация обратного давления ....................................................... 114 5.6. Резюме ...................................................................................................... 114 5.7. Задачи ....................................................................................................... 115 5.8. Ссылки ...................................................................................................... 118

Глава 6. Работа в сети Интернет ..................................................... 119 6.1. Цель ........................................................................................................... 119 6.2. Основные компоненты: маска, шлюз, ARP ............................................ 120 6.2.1. Адреса и подсети ........................................................................................ 121 6.2.2. Шлюз ............................................................................................................ 121 6.2.3. DNS-сервер .................................................................................................. 122 6.2.4. ARP ............................................................................................................... 122 6.2.5. Конфигурация ............................................................................................. 122 6.3. Примеры ................................................................................................... 122 6.3.1. Одна и та же подсеть................................................................................... 123

8

 Оглавление 6.3.2. Разные подсети ........................................................................................... 123 6.3.3. Поиск IP-адресов ........................................................................................ 124 6.3.4. Фрагментация ............................................................................................. 124 6.4. DHCP ......................................................................................................... 125 6.5. NAT ............................................................................................................ 125 6.6. Резюме ...................................................................................................... 127 6.7. Задачи ....................................................................................................... 127 6.8. Ссылки ...................................................................................................... 128

Глава 7. Транспорт ............................................................................ 129 7.1. Транспортные услуги ............................................................................... 129 7.2. Транспортный заголовок ......................................................................... 130 7.3. Состояния TCP .......................................................................................... 131 7.4. Контроль ошибок...................................................................................... 132

7.4.1. Stop-and-wait ............................................................................................... 132 7.4.2. Go Back N ...................................................................................................... 133 7.4.3. Выборочные подтверждения ..................................................................... 134 7.4.4. Таймеры ....................................................................................................... 135 7.5. Управление перегрузками ....................................................................... 135 7.5.1. AIMD ............................................................................................................. 136 7.5.2. Усовершенствования: быстрая ретрансляция и быстрое восстановление ........................................................................................... 137 7.5.3. Регулировка производительности ............................................................. 138 7.5.4. Размер окна TCP .......................................................................................... 139 7.5.5. Терминология .............................................................................................. 140 7.6. Управление потоком ................................................................................ 140 7.7. Альтернативные схемы управления перегрузками ............................... 141 7.8. Резюме ...................................................................................................... 142 7.9. Задачи ....................................................................................................... 143 7.10. Ссылки ..................................................................................................... 148

Глава 8. Модели ................................................................................ 149 8.1. Графы ........................................................................................................ 149

8.1.1. Max-flow, min-cut ........................................................................................ 150 8.1.2. Раскраска графа и протоколы MAC ........................................................... 151 8.2. Очереди .................................................................................................... 153 8.2.1. Очередь М/М/1 ............................................................................................ 154 8.2.2. Сети Джексона............................................................................................. 155 8.2.3. Очередь против коммуникационных сетей ............................................. 156 8.3. Роль уровней............................................................................................. 158 8.4. Управление перегрузками ....................................................................... 159 8.4.1. Справедливость против производительности.......................................... 159 8.4.2. Распределенное управление перегрузками.............................................. 162 8.4.3. И снова о TCP .............................................................................................. 165 8.5. Динамические маршрутизация и управление перегрузками .............. 167 8.6. Беспроводная связь.................................................................................. 169

8.7. Приложение: обоснование теоремы двойственности линейного программирования .................................................................................. 172

Оглавление  9 8.8. Резюме ...................................................................................................... 173 8.9. Задачи ....................................................................................................... 174 8.10. Ссылки .................................................................................................... 177

Глава 9. LTE ........................................................................................ 179 9.1. Сотовая сеть.............................................................................................. 179 9.2. Технологическая эволюция ..................................................................... 182 9.3. Ключевые аспекты LTE ............................................................................ 183

9.3.1. Архитектура системы LTE .......................................................................... 185 9.3.2. Физический уровень................................................................................... 187 9.3.3. Поддержка требований QоS ....................................................................... 190 9.3.4. Планировщик .............................................................................................. 190 9.4. LTE-Advanced ............................................................................................ 192 9.4.1. Агрегация несущих ..................................................................................... 193 9.4.2. Поддержка расширенного MIMO ............................................................... 193 9.4.3. Узлы ретрансляции (RN)............................................................................. 193 9.4.4. Координированная многоточечная работа (CoMP) .................................. 194 9.5. 5G............................................................................................................... 195 9.6. Резюме ...................................................................................................... 196 9.7. Задачи ....................................................................................................... 196 9.8. Ссылки ...................................................................................................... 198

Глава 10. QOS ..................................................................................... 199 10.1. Обзор ....................................................................................................... 199 10.2. Формирование трафика......................................................................... 200 10.2.1. Механизм leaky bucket .............................................................................. 200 10.2.2. Границы задержки .................................................................................... 201 10.3. Планирование ........................................................................................ 202 10.3.1. GPS ............................................................................................................. 202 10.3.2. WFQ ............................................................................................................ 204 10.4. Регулируемые потоки и WFQ ................................................................ 205 10.5. Сквозное QOS ......................................................................................... 206 10.6. Управление сквозным пропусканием .................................................. 207 10.7. Сетевой нейтралитет.............................................................................. 207 10.8. Резюме .................................................................................................... 208 10.9. Задачи ..................................................................................................... 208 10.10. Ссылки .................................................................................................. 210

Глава 11. Физический уровень сети................................................ 211 11.1. Как передавать биты? ............................................................................ 211 11.2. Характеристики каналов связи ............................................................. 212 11.3. Проводные и беспроводные каналы связи .......................................... 213

11.3.1. Схемы модуляции: BPSK, QPSK, QAM ...................................................... 213 11.3.2. Межсотовые помехи и OFDM ................................................................... 216 11.4. Оптические линии связи ....................................................................... 218 11.4.1. Работа оптоволокна .................................................................................. 218 11.4.2. Модуляция ООК ........................................................................................ 219 11.4.3. Мультиплексирование с разделением по длине волны ......................... 220

10  Оглавление 11.4.4. Оптическая коммутация .......................................................................... 220 11.4.5. Пассивная оптическая сеть ...................................................................... 221 11.5. Резюме .................................................................................................... 222 11.6. Ссылки .................................................................................................... 223

Глава 12. Дополнительные темы .................................................... 224 12.1. Коммутаторы .......................................................................................... 224

12.1.1. Модульные коммутаторы ......................................................................... 224 12.1.2. Матричные коммутаторы каналов .......................................................... 227 12.2. Оверлейные сети .................................................................................... 229 12.2.1. Примеры сетей: CDN и P2P ...................................................................... 231 12.2.2. Маршрутизация в оверлейных сетях....................................................... 232 12.3. Как работают популярные протоколы P2P........................................... 232 12.3.1. Первое поколение: на базе сервер/клиент.............................................. 232 12.3.2. Второе поколение: централизованный каталог ..................................... 233 12.3.3. Третье поколение: полностью распределенный протокол .................... 233 12.3.4. Появление иерархического оверлея – суперузлов ................................. 233 12.3.5. Продвинутый распределенный совместный доступ к файлам: BitTorrent .................................................................................... 234 12.4. Сенсорные сети ...................................................................................... 235 12.4.1. Вопросы проектирования ........................................................................ 235 12.5. Распределенные приложения ............................................................... 238 12.5.1. Алгоритм маршрутизации Беллмана–Форда ......................................... 238 12.5.2. Регулировка мощности............................................................................. 239 12.6. Византийское соглашение ..................................................................... 241 12.6.1. Соглашение при ненадежном канале связи ........................................... 241 12.6.2. Консенсус в присутствии противников ................................................... 242 12.7. Сжатие источника .................................................................................. 244 12.8. SDN и NFV ............................................................................................... 244 12.8.1. Архитектура SDN ...................................................................................... 245 12.8.2. Новые услуги, предоставляемые SDN...................................................... 246 12.8.4. Фреймворк управления для NFV ............................................................. 250 12.9. Интернет вещей (IoT) ............................................................................ 252 12.9.1. Парадигмы удаленных вычислений и хранения данных ...................... 252 12.10. Резюме .................................................................................................. 253 12.11. Задачи ................................................................................................... 254 12.12. Ссылки .................................................................................................. 256

Об авторах......................................................................................... 258 Библиография................................................................................... 259 Предметный указатель .................................................................... 266

Предисловие от издательства Отзывы и пожелания Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об этой книге – что понравилось или, может быть, не понравилось. Отзывы важны для нас, чтобы выпускать книги, которые будут для вас максимально полезны. Вы можете написать отзыв или оставить комментарий в разделе «Отзывы и рецензии». Также можно послать письмо главному редактору по адресу [email protected]; при этом укажите название книги в теме письма. Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http:// dmkpress.com/authors/publish_book/ или напишите в издательство по адресу dmkpress@ gmail.com.

Список опечаток Хотя мы приняли все возможные меры для того, чтобы обеспечить высокое качество наших текстов, ошибки все равно случаются. Если вы найдете ошибку в одной из наших книг – возможно, ошибку в основном тексте или программном коде, – мы будем очень благодарны, если вы сообщите нам о ней. Сделав это, вы избавите других читателей от недопонимания и поможете нам улучшить последующие издания этой книги. Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них главному редактору по адресу [email protected], и мы исправим это в следующих тиражах.

Нарушение авторских прав Пиратство в интернете по-прежнему остается насущной проблемой. Издательства «ДМК Пресс» и Morgan & Claypool Publishers очень серьезно относятся к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконной публикацией какой-либо из наших книг, пожалуйста, пришлите нам ссылку на интернет-ресурс, чтобы мы могли применить санкции. Ссылку на подозрительные материалы можно прислать по адресу электронной почты [email protected]. Мы высоко ценим любую помощь по защите наших авторов, благодаря которой мы можем предоставлять вам качественные материалы.

Отзывы Эта книга является желанным дополнением к литературе по коммуникационным сетям. В ней рассматривается с инновационной и современной точки зрения множество тем, отражающих быстрое развитие, которое претерпела эта область. Она информативна, познавательна и полезна для студентов, преподавателей и практиков, работающих в этой области. Эта книга прос­ то необходима! Энтони Эфремидес, Мэрилендский университет Компьютерные сети являются чрезвычайно сложными системами, и учебники университетского уровня часто содержат пространные описания, которые жертвуют базовым концептуальным пониманием в пользу подробных операционных объяснений. Вальран и Парех отходят от этого подхода, предлагая краткое и освежающее изложение, фокусирующееся на фундаментальных принципах, которые студенты могут (и должны) использовать. Издание обновлено с учетом последних достижений и представляет большую ценность для преподавания курса по компьютерным сетям. Массимо Франческетти, Калифорнийский университет, Сан-Диего В книге в четкой и ясной форме представлены наиболее важные принципы проектирования коммуникационных сетей с акцентом на интернет. Рассмат­ риваются вопросы физического уровня, вплоть до ключевых распределенных приложений. Книга станет ценным пособием для студентов, преподавателей и практиков на долгие годы. Брюс Хайек, Иллинойский университет, Урбана-Шампейн Концептуальная ясность, простота объяснения и краткость – душа этой книги. Она охватывает очень широкий круг современных тем, разлагает сложные системы на их абсолютно базовые составляющие и объясняет каждую идею четко и лаконично. Она является образцом того, каким должен быть учебник. Жаль, что такой книги не было, когда я изучал коммуникационные сети. П. Р. Кумар, Техасский университет A&M Эта книга посвящена основным принципам, лежащим в основе проектирования и функционирования интернета. В ней дается целостное описание этой критически важной, но сложной инфраструктуры и четко и ясно объясняются основные идеи, не скрываясь за несущественными деталями реализации или аналитики. Это лучшее введение в сетевые технологии, на основе которого можно продолжить рассмотрение различных более специализированных тем. Стивен Лоу, Калифорнийский технологический институт (Caltech)

 13 «Коммуникационные сети. Краткое введение» Жана Вальрана и Шьяма Пареха – замечательная книга. Авторы имеют уникальный опыт благодаря фундаментальному вкладу, который они внесли в эту область в ходе многолетнего преподавания этого курса в Калифорнийском университете в Беркли. Книга охватывает множество важных тем – от архитектуры интернета до современных беспроводных технологий и таких новых тем, как SDN и IoT. Книга фокусируется на ключевых принципах и основных концепциях каждой проблемы, а также представляет краткое обсуждение того, насколько эти принципы необходимы для масштабируемых и надежных сетей связи. Математические инструменты, такие как цепи Маркова и теория графов, вводятся на уровне, довольно простом, но в то же время достаточном для моделирования и анализа ключевых компонентов коммуникационных сетей. Всесторонний охват основных понятий коммуникационных сетей и интуитивно­принципиальный подход делают эту книгу лучшим учебником для вводного курса по коммуникационным сетям для тех студентов, кто заинтересован в проведении исследований в этой области. Эта книга, безусловно, необходима для студентов и исследователей в данной области. Лей Инг, Университет штата Аризона

Аннотация ко второму изданию Эта книга является результатом многолетнего преподавания курса по коммуникационным сетям на факультете EECS Калифорнийского университета в Беркли. Ее создание было продиктовано потребностью в легкодоступном учебнике, в котором основное внимание уделяется основным концепциям, лежащим в основе современных сетей следующего поколения связи. После краткого обзора того, как работает современный интернет, и обсуждения основных принципов его архитектуры, мы поговорим о ключевых идеях, лежащих в основе Ethernet, сетей Wi-Fi, маршрутизации, интернетизации и TCP. Чтобы сделать книгу как можно более самодостаточной, в приложения включены краткое изложение вероятности и концепции цепей Маркова. Затем следует обсуждение математических моделей, которые дают представление о работе сетевых протоколов. Далее излагаются основные идеи нового поколения беспроводных сетей на основе LTE, а также понятие QoS. Также кратко обсуждаются технологии физического уровня, лежащие в основе различных сетей. Наконец, представлена выборка тем, которые могут оказать существенное влияние на будущую эволюцию сетей, включая оверлейные сети, такие как сети доставки контента и одноранговые сети, сенсорные сети, рассматриваются распределенные алгоритмы, задача византийских генералов1 (сжатие исходного кода, SDN и NFV, а также Internet of Things – IoT (интернет вещей).

Ключевые слова Интернет, Ethernet, Wi-Fi, маршрутизация, алгоритм Беллмана–Форда, алгоритм Дейкстры, TCP, управление перегрузкой, управление потоком передачи, QoS, LTE, одноранговые сети, SDN, NFV, IoT.

1

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

Предисловие Эти конспекты лекций основаны на курсе по коммуникационным сетям для старших курсов, который авторы читали на факультете электротехники и вычислительной техники Калифорнийского университета в Беркли. За 30 лет, что мы преподаем этот курс, сети прошли путь от раннего Arpanet и экспериментальных версий Ethernet до глобального интернета с широкополосным беспроводным доступом и новыми приложениями – от социальных до сенсорных сетей. За эти годы мы пользовались множеством учебников. Цель этой книги – быть ближе к фактическому материалу, который мы излагаем. В рамках курса, рассчитанного на один семестр, невозможно охватить 800-страничную книгу. Поэтому в преподаваемом нами курсе и в этих заметках мы сосредоточились на ключевых принципах, которые, по нашему мнению, студенты должны понять. Мы хотели бы показатькак лес, так и деревья. Сетевые технологии продолжают развиваться. Нашим студентам не придется заново изобретать TCP/IP. Им нужно концептуальное понимание, чтобы продолжать создавать будущее. Помимо исправления найденных ошибок и добавления некоторых разъяснений, основные изменения во втором издании следующие. Глава 4, посвященная Wi-Fi, была обновлена с учетом последних достижений. Глава 7, посвященная транспортным протоколам, включает обсуждение альтернативных схем борьбы с заторами в сети. Глава 8 о моделях была расширена разделами, посвященными графикам и очередям. Кроме того, в этой главе теперь объясняется формулировка TCP и совместного использования беспроводной связи для оптимизации сетей. В главе 9, посвященной LTE, теперь обсуждаются основы сотовых сетей и более подробное излагается ряд ключевых аспектов LTE. Она также включает презентации LTE-Advanced и 5G. Обсуждение WiMAX было удалено в свете подавляющего признания LTE. В главе12 «Дополнительные темы» мы добавили следующие разделы: «Коммутаторы», «SDN и NFV», а также «IoT». У нас есть соответствующий веб-сайт https://bit.ly/2zPXDL3, который мы планируем использовать для будущих обновлений материала этих лекций. В последние годы наш курс в Беркли также включает исследовательский проект, в рамках которого студенты применяют фундаментальные концепции из курса к широкому спектру тем, связанных с сетевыми технологиями. Заинтересованные читатели могут найти расширенные аннотации этих исследовательских проектов на сайте.

16  Предисловие

Многие коллеги по очереди преподают курс в Беркли. Такая ротация позволяет сохранить свежесть и широту охвата материала. С удовольствием мы отмечаем важный вклад в представленный здесь материал Кевина Фолла, Рэнди Катца, Стива МакКанна, Абхая Парекса, Верна Паксон, Сильвии Ратнасами, Скотта Шенкер, Иона Стоика, Дэвида Тсе и Адама Волич. Мы также благодарим многочисленных ассистентов, помогавших нам на протяжении многих лет, и любознательных студентов Беркли, которые всегда держат нас в напряжении. Мы благодарны рецензентам ранних черновиков этого материала. В частности, Ассане Гуйе, Либин Цзян, Дживун Ли, Стивену Лоу, Джону Мусаккио, Дженнифер Рексфорд и Нихил Шетти, которые предоставили полезные конструктивные комментарии. Мы благодарим Майка Моргана из Morgan & Claypool за его поддержку и помощь в рецензировании и публикации этого текста. Жан Вальран получил частичную поддержку от NSF и грант MURI от ARO во время написания этой книги. Шьям Парех благодарен своим коллегам и руководству AT&T Labs Research за их поддержку. В частности, он благодарен Гагану Чоудхури, Мазину Гилберту, Кэролин Джонсон, Кэти Майер-Хеллстерн и Крису Райсу. Самое главное, как всегда, – мы глубоко признательны нашим семьям за их неизменную поддержку. Жан Вальран и Шьям Парех. Октябрь, 2017 г.

Глава

1 Интернет

В конце 1960-х гг. интернет вырос из небольшого эксперимента в сеть, которая объединяет около 3,7 млрд пользователей (данные за июнь 2017 г.) и стала главной коммуникационной системой современного общества. Этот феноменальный рост коренится в архитектуре интернета, которая делает его масштабируемым, гибким и расширяемым, а также обеспечивает замечательную экономию информационных ресурсов. В этой главе мы объясним, как работает интернет.

1.1. Основные операции Интернет доставляет информацию, сначала превращая и упорядочивая ее в пакеты. В этом разделе рассказывается, как пакеты попадают в пункт назначения, как сеть исправляет ошибки и управляет перегрузкой.

1.1.1. Хосты, маршрутизаторы, каналы связи Интернет состоит из хостов и маршрутизаторов, соединенных друг с другом каналами связи. Хосты являются источниками или получателями информации. Название «хосты» указывает на то, что на этих устройствах размещаются (host) приложения, генерирующие или использующие информацию, которой они обмениваются по сети. К хостам относятся компьютеры, принтеры, серверы, веб-камеры и т. д. Маршрутизаторы получают информацию и пересылают ее следующему маршрутизатору или хосту в сети. Канал связи передает биты между двумя маршрутизаторами или хостами. Каналы бывают оптическими, проводными (из разных видов кабеля) или беспроводными. Некоторые сетевые соединения являются более сложными и включают в себя коммутаторы, которые мы изучим позже. На рис. 1.1 показано несколько хостов и маршрутизаторов, соединенных каналами связи. Облачные сети представляют собой другие наборы маршрутизаторов и соединений.

18  Глава1.Интернет 110.27.36.91 = B 128 64

128.132.154.46

18.128.33.11

R3 18 169 64

[AIBI … ICRC]

64

18.128

L2 L1

R1 169.229.60.32 = A coeus.eecs.berkeley.edu

169

R2 18

169

18.64

18.7.25.81 sloan.mit.edu

Рис. 1.1. Хосты, маршрутизаторы и каналы связи. Каждый хост имеет отдельный 32-битный IP-адрес, основанный на его местоположении. Заголовок пакета содержит адреса источника и назначения, а также контрольную сумму ошибки. Маршрутизаторы ведут таблицы маршрутизации, в которых указан выход для самого длинного префикса, совпадающего с адресом назначения

1.1.2. Коммутация пакетов Первоначальной мотивацией для создания интернета было создание сети, которая была бы устойчива к атакам на некоторые из ее частей. Первоначальная идея заключалась в том, что, если часть сети будет выведена из строя, маршрутизаторы будут автоматически перенаправлять информацию по альтернативным путям. Такая гибкая маршрутизация основана на механизме коммутации пакетов. Суть коммутации пакетов состоит в том, что сеть передает биты, сгруппированные в пакеты. Пакет – это строка битов, расположенных в соответствии с заданным форматом. Интернет-пакет содержит адреса источника и назначения. На рис. 1.1 показан пакет с адресом источника A и адресом назначения  B. Коммутация заключается в выборе каналов, по которым пакет следует от своего источника к месту назначения. Коммутация пакетов означает, что маршрутизаторы делают этот выбор индивидуально для каждого пакета. В отличие от этого в телефонной сети используется коммутация каналов, когда выбор каналов производится только один раз для всего телефонного разговора, и на время разговора необходимая скорость передачи данных на выбранном канале резервируется. Существует также промежуточное решение, использующее концепцию виртуальных цепей, где выбор каналов для передачи информации также производится один раз, как

Powered by TCPDF (www.tcpdf.org)

1.1.Основныеоперации  19 и при коммутации каналов, но требуемая скорость передачи данных в этих каналах не резервируется. Виртуальные цепи также передают данные с помощью пакетов, но отправляют пакеты данного соединения по одному и тому же набору каналов. Для того чтобы отличить коммутацию пакетов от коммутации на основе виртуальных цепей, часто используется термин «датаграммы» для версии коммутации пакетов, когда все маршрутизаторы выбирают следующий канал связи индивидуально для каждого пакета. Многопротокольная коммутация по меткам (Multi-Protocol Label Switching, MPLS)1 и асинхронный режим передачи (Asynchronous Transfer Mode, ATM) являются примерами технологий на основе виртуальных каналов.

1.1.3. Адресация В четвертой версии интернет-протокола (называемой IPv4) каждый компьютер или другой узел, подключенный к интернету, имеет уникальный адрес, указанный в 32-битной строке, называемой его IP­адресом, что означает «адрес протокола интернета». Адреса условно записываются в виде a.b.c.d, где a, b, c, d – десятичные значения четырех байтов. Например, 169.229.60.32 соответствует четырем байтам 10101001.11100101.00111100.00100000. Более современная версия протоколов, называемая IPv6, использует 128-битные адреса, но совместима с IPv4.

1.1.4. Маршрутизация Каждый маршрутизатор определяет из адреса назначения, куда должен отправиться пакет в следующий раз (следующий хоп или транзитный участок сети). При продвижении к месту назначения в сети, находящейся под контролем общего администратора, пакеты в основном следуют по кратчайшему пути2. Маршрутизаторы регулярно вычисляют эти кратчайшие пути и записывают их в таблицы маршрутизации3. Таблица маршрутизации определяет следующий переход (или прыжок) для каждого адреса назначения, как показано на рис. 1.2. Чтобы упростить таблицы маршрутизации, администраторы сети назначают IP-адреса хостам, основываясь на их местоположении. Например, маршрутизатор R1 на рис. 1.1 отправляет все пакеты с адресом 1

2

3

В сети, основанной на MPLS, пакетам данных присваиваются метки. Решение о дальнейшей передаче пакета данных другому узлу сети осуществляется только на основании значения присвоенной метки без необходимости изучения самого пакета данных. За счет этого возможно создание сквозного виртуального канала, независимого от среды передачи и использующего любой протокол передачи данных. – Прим. ред. Пакеты обычно проходят через набор сетей, принадлежащих различным организациям. Маршрутизаторы выбирают этот набор в соответствии с правилами, которые мы обсудим в главе 5 «Маршрутизация». Точнее говоря, маршрутизатор обращается к таблице пересылки, в которой указан выходной порт пакета. Однако это различие не является существенным.

20  Глава1.Интернет

назначения, первый байт которого имеет десятичное значение  18, на маршрутизатор R2, а все пакеты с адресом назначения, первый байт которого имеет десятичное значение 64, – на маршрутизатор R3. Вместо того чтобы иметь одну запись для каждого возможного адреса назначения, маршрутизатор имеет одну запись для набора адресов с общей начальной битовой строкой (префиксом). Если бы можно было назначить адреса так, чтобы все пункты назначения с одинаковыми начальными 5 битами были доступны из одного и того же порта 32-портового маршрутизатора, то в таблице маршрутизации потребовалось бы только 32  записи по 5 бит: каждая запись указывала бы начальные 5  бит, соответствующие каждому порту. На практике присвоение адресов не является идеальным, но тем не менее оно значительно уменьшает размер таблиц маршрутизации. Это очень похоже на организацию телефонных номеров [код страны, код области, зона, номер]. Например, номер 1 510 642 1529 соответствует телефонному аппарату в США (1), в Беркли (510), в зоне кампуса Беркли (642). Входные порты

Выходные порты 1

1

2

2

S|D|…

Источник Место назначения 32

32

D

порт 1

F

порт 2

K

порт 16

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

Место назначения

Рис. 1.2. На рисунке изображен маршрутизатор с 32 входными портами (присоединенными каналами) и 32 выходными портами. Пакеты содержат адреса источника и места назначения. Таблица маршрутизации определяет для каждого пакета выходной порт, соответствующий адресу назначения

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

1.1.Основныеоперации  21 ного и того же следующего хопа. Эта схема, называемая бесклассовой междоменной маршрутизацией (Classless Inter-Domain Routing, CIDR), позволяет нам гибко распределять адреса по подгруппам, определяемым префиксами. Основное различие со схемой телефонной нумерации заключается в том, что в CIDR длина префикса не задана заранее, что обеспечивает большую гибкость. В качестве иллюстрации маршрутизации с наибольшим совпадением префиксов рассмотрим рис. 1.1, на котором показано, как маршрутизатор R2 выбирает, куда отправлять пакеты. Адрес назначения, начинающийся с битов 000100101, соответствует первым 9 битам префикса 18.128 = 00010010’10000000 выходного канала L2, но только первым 8 битам префикса 18,64 = 00010010’01000000 выходного канала L1. Следовательно, пакет с адресом назначения 18.128.33.11 покидает R2 по каналу L2. Аналогично пакет с адресом назначения 18.7.25.81 покидает R2 по каналу L1. Подводя итог, маршрутизатор в своей таблице маршрутизации находит префикс, который имеет самое длинное совпадение с адресом назначения 18.7.25.81. Этот префикс определяет выходной порт пакета.

1.1.5. Обнаружение ошибок Каждый узел отправляет биты пакета следующему узлу, предварительно преобразуя их в электрические или оптические сигналы. Принимающий узел преобразует сигналы обратно в биты. В этом процессе возможны ошибки, вызванные случайными флуктуациями сигналов. Таким образом, иногда случается, что некоторые биты в пакете повреждаются, что соответствует ошибке передачи. Простая схема обнаружения ошибок заключается в том, что источник добавляет один бит, называемый битом четности, в пакет, чтобы число единиц было четным. Например, если пакет равен 00100101, то отправляющий узел добавляет бит четности4, равный 1, чтобы пакет стал 001001011 и имел четное число единиц. Если получатель получает пакет с нечетным числом единиц, скажем 001101011, он знает, что произошла ошибка передачи. Однако эта схема обнаружения ошибок не может определить, были ли изменены два или любое четное количество битов во время передачи. Вот почему в интернете используется более надежный способ обнаружения ошибок в заголовках пакетов – контрольная сумма заголовка. При использовании контрольной суммы заголовка отправляющий узел вычисляет контрольную сумму (обычно длиной в 16 бит) других полей в заголовке. Принимающий узел выполняет то же вычисление и сравнивает результат с контрольной суммой; если они отличаются, 4

Обычно размещается в 7-м бите пакета. – Прим. ред.

22  Глава1.Интернет

принимающий узел знает, что в заголовке пакета произошла какая-то ошибка, и он отбрасывает поврежденный пакет5.

1.1.6. Повторная передача ошибочных пакетов В дополнение к удалению пакетов, заголовок которых поврежден изза ошибок передачи, маршрутизатор может отбрасывать поступающие пакеты, когда у него заканчивается память, для временного хранения их перед пересылкой. Это может происходить, когда пакеты поступают на маршрутизатор быстрее, чем он может переслать их дальше. Такие потери пакетов происходят не из-за ошибок передачи, а из-за перегрузки. Для обеспечения надежной доставки источник и пункт назначения используют механизм, гарантирующий, что источник повторно передает пакеты, которые не достигают места назначения без ошибок. Такая схема называется запросом на автоматическую повторную передачу (automatic retransmission request, ARQ). Основная идея этого механизма заключается в том, что получатель подтверждает все правильные пакеты, которые он получает, а источник повторно передает пакеты, которые получатель не подтвердил в течение определенного промежутка времени. Допустим, источник посылает пакеты 1, 2, 3, 4 и в пункте назначения не получен пакет 2. Через некоторое время источник замечает, что получатель не подтвердил пакет 2, и повторно посылает копию этого пакета. Мы обсудим конкретную реализацию этого механизма в интернете в главе 7, посвященной транспортному протоколу. Обратите внимание, что повторную передачу организуют хосты источника и назначения, а не маршрутизаторы.

1.1.7. Управление перегрузками Представьте себе, что множество хостов отправляют пакеты, которые проходят через общий сетевой канал. Если хосты посылают пакеты слишком быстро, канал не может обработать их все, и маршрутизатор этого исходящего канала должен отбросить некоторые пакеты. Если хосты не получают подтверждения, то они замедляются для предотвращения чрезмерного количества отброшенных пакетов. То есть когда хост должен повторно передать пакет, подтверждение которого не пришло, он предполагает, что потеря произошла из-за перегрузки, и замедляет скорость отправки пакетов. В конце концов перегрузка в сети спадает и потери прекращаются. До тех пор, пока узлы получают подтверждения своевременно, они медленно увеличивают скорость передачи пакетов, приближаясь к макси5

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

1.2.DNS,HTTPиwww  23 мальной, которая может быть поддержана существующими условиями сети. Эта схема, называемая управлением перегрузкой, автоматически регулирует передачу пакетов таким образом, чтобы сетевые каналы использовались бы полностью, ограничивая потери при передаче.

1.1.8. Управление потоком Если устройство очень быстро посылает пакеты более медленному устройству, последнее может быть перегружено. Чтобы предотвратить это явление, принимающее устройство в каждом подтверждении, которое оно посылает обратно источнику, указывает количество свободного буферного пространства, имеющееся для приема дополнительных битов. Если это свободное пространство меньше количества битов, уже оправленных источником, а приемник еще их получение не подтвердил – передача прекращается. Источник объединяет схему управления потоком со схемой управления перегрузкой, рассмотренной ранее. Обратите внимание, что управление потоком предотвращает переполнение буфера устройства получателя, в то время как управление перегрузкой предотвращает переполнение буфера сетевого маршрутизатора.

1.2. DNS, HTTP и www 1.2.1. DNS Хосты, подключенные к интернету, помимо IP-адреса, имеют имя, ведь имена легче запомнить (например, google.com). Чтобы отправить пакеты на хост, источник должен знать IP-адрес этого узла. В интернете существует автоматическая система каталогов, называемая Систе­ мой доменных имен (Domain Name), или DNS, которая преобразует имя в IP-адрес. DNS – это распределенная система каталогов соответствия IP-адресов и имен хостов. Интернет разделен на зоны, и в каждой зоне особый сервер DNS поддерживает адреса хостов. Например, факультет EECS в Беркли обслуживает сервер каталога хостов в зоне сети eecs.berkeley.edu. Сервер DNS для этой зоны отвечает на запросы об IP-адресах узлов этой зоны. Следовательно, если добавить хост в сеть нашего факультета, необходимо обновить только этот DNS-сервер.

1.2.2. HTTP и www Всемирная паутина организована как коллекция ресурсов с гиперссылками, таких как веб-страницы, видео и музыкальные файлы. Ресурсы идентифицируются с помощью унифицированного указателя ресурсов, или URL; он определяет компьютер и файл на этом компьютере вместе с протоколом, который должен доставить файл.

24  Глава1.Интернет

Например, URL http://www.eecs.berkeley.edu/-wlr.html указывает домашнюю страницу в компьютере с именем www.eecs.berkeley.edu и протоколом HTTP. HTTP (Hyper Text Transfer Protocol), протокол передачи гипертекста, определяет правила запроса/ответа для передачи файла от сервера клиенту. По сути, протокол устанавливает соединение между сервером и клиентом, затем запрашивает определенный файл и, наконец, разрывает соединение, когда передача данных завершена.

1.3. Краткое изложение • Интернет состоит из хостов, которые отправляют и/или получают информацию, маршрутизаторов и каналов связи. • Каждый хост имеет 32-разрядный IP-адрес (в IPv4; 128-разрядный в IPv6) и имя. DNS – это система распределенных каталогов, которая преобразует имя в IP-адрес. • Хосты упорядочивают информацию в пакеты, представляющие собой группы битов заданного формата. Пакет включает в себя адреса источника и получателя, а также биты обнаружения ошибок. • Маршрутизаторы вычисляют самые короткие пути (по сути) к местам назначения и хранят их в таблицах маршрутизации. Чтобы уменьшить размер этих таблиц, IP-адреса основаны на местоположении хостов с использованием самого длинного совпадения префиксов. • Источник управляет объемами своих передач в сеть, чтобы избежать переполнения буфера назначения (управление потоком) и буферов маршрутизаторов (управление перегрузкой). • Хосты устраняют потери при передаче и перегрузке с помощью подтверждений, тайм-аутов и повторных передач.

1.4. Задачи 1.1. 1.2. 1.3.

1.4.

Сколько хостов может быть в интернете, если каждому из них нужен отдельный IPv4-адрес? Если адреса были распределены произвольно, сколько записей должно быть в таблице маршрутизации? Представьте, что все маршрутизаторы имеют 16 портов. При наилучшем распределении адресов какой размер таблицы маршрутизации требуется для каждого маршрутизатора? Предположим, что хост A в Беркли отправляет поток пакетов хосту  B в Бостоне. Предположим также, что все каналы работа-

1.5.Ссылки  25 ют со скоростью 100 Мбит/с и что требуется 130 мс, чтобы вернулось подтверждение после отправки первого пакета. Допустим, A отправляет один пакет объемом 1 Кбайт, а затем ожидает подтверждения перед отправкой следующего пакета и т. д. Каков долгосрочный средний битрейт (Long-Term Average Bitrate) соединения? Предположим теперь, что A отправляет N пакетов, прежде чем дождется первого подтверждения, и что A отправляет следующий пакет каждый раз, когда получает подтверждение. Выразите долгосрочный средний битрейт соединения в зависимости от N. Примечание: 1 Мбит/с = 106 бит в секунду; 1 мс = 1 миллисекунда = 10-3 с. 1.5.

Предположим, что хост A в Беркли отправляет пакеты размером 1 Кбайт со скоростью передачи 100 Мбит/с хосту B в Бостоне. Однако B считывает биты только со скоростью 1 Мбит/с. Предположим также, что устройство в Бостоне использует буфер, который может хранить 10 пакетов. Изучите механизм управления потоком и предоставьте график передач.

1.5. Ссылки Коммутация пакетов была независимо изобретена в начале 1960-х гг. Полом Бараном [14], а также Дональдом Дэвисом и Леонардом Клейнроком, которые в своей диссертации MIT [56] отметили, что сети с коммутацией пакетов можно анализировать с помощью теории массового обслуживания. Боб Кан и Винт Серф изобрели базовую структуру TCP/IP в 1973 г. [52]. Ваном Джейкобсоном (Jacobson), анализом Чиу и Джейна [25] и [26], а также стабильностью линейных систем было исправлено в 1988 г. управление перегрузкой в TCP [49]. Пол Мокапетрис изобрел DNS в 1983 г. CIDR описан в [34]. Тим Бернерс-Ли изобрел WWW в 1989 г. Смотрите [40] для обсуждения автономных систем.

Глава

2 Принципы

В сетевых технологиях подключение – это главное. Интернет объединяет несколько миллиардов компьютеров по всему миру, а также сопутствующие устройства, такие как принтеры, серверы и веб-камеры. С развитием интернета вещей (IoT) сотни миллиардов устройств вскоре будут подключены через интернет. Под «подключением» мы подразумеваем, что интернет позволяет этим устройствам передавать файлы или потоки битов между собой. Для снижения затрат все эти устройства используют общие каналы связи. Например, многие пользователи в одном районе могут совместно использовать один кабель для подключения к интернету. Многие средства связи используют одно и то же оптическое волокно. Благодаря такому совместному использованию сети затраты на одного пользователя относительно невелики. Для обеспечения быстрого роста интернет организован по иерархической схеме, и добавление в нее хостов требует только локальных изменений. Более того, сеть не зависит от приложений, которые она поддерживает. То есть прикладное программное обеспечение требуется только хостам. Например, интернет поддерживает видеоконференции, хотя его протоколы были разработаны до того, как видеоконференции появились. Кроме того, интернет совместим с новыми технологиями, такими как беспроводная связь или усовершенствованные оптические линии связи. В этой главе мы прокомментируем эти важные особенности. Кроме того, мы введем некоторые метрики, которые количественно оценивают оценивающие характеристики производительности сети.

2.1. Совместное использование Представьте себе разработку сети для объединения нескольких миллиардов устройств, таких как компьютеры, смартфоны, термостаты и т. д. Очевидно, что невозможно соединить каждую пару устройств выделенным каналом. Вместо этого можно соединить устройства, расположенные близко друг к другу локальной сетью. Затем локальные сети объединяются в сеть доступа. Сети доступа – объединяются в региональную

2.2.Метрики  27 сеть. Наконец, региональные сети соединяются между собой с помощью одной или нескольких магистральных сетей (их еще называют опорными), проходящих через всю страну, как показано на рис. 2.1.

Магистральная сеть

Региональная сеть Сеть доступа

Локальная сеть

Рис. 2.1. Иерархия сетей

Такая схема значительно сокращает общую длину проводов, необходимых для соединения устройств, по сравнению с попарными соединениями. Многие устройства используют общие каналы и маршрутизаторы (или роутеры). Например, на рисунке все устройства в самой левой сети доступа имеют общую связь L, поскольку они отправляют информацию устройствам в другой сети доступа. Этот обмен возможен благодаря тому, что устройства передают информацию не все время. Только небольшая часть устройств активна и использует сетевые каналы и маршрутизаторы. Это снижает затраты, необходимые для каждого устройства. Например, вы можете со своего смартфона использовать только небольшую часть времени, скажем 1/100, для доступа в интернет. Соответственно, из тысячи пользователей, с которыми вы делите общий сетевой канал, только около десяти активны в каждый момент времени. Следовательно, если скорость передачи данных по этому каналу есть C, каждый пользователь получает данные со скоростью C/10. Если бы все пользователи были активны в то же самое время, то каждый из них получал бы данные со скоростью C/1000. Коэффициент 100 называется коэффициентом мультиплексирования (multiplexing gain).

2.2. Метрики Чтобы дискуссию о характеристиках сети сделать более ясной, необходимо точно определить некоторые основные метрики производительности.

28  Глава2.Принципы

2.2.1. Скорость канала связи Характеристикой канала связи является скорость. Например, соединение по кабельному модему обладает двумя скоростями: скоростью вверх (от устройства пользователя в интернет) и скоростью вниз (из интернета до устройства пользователя). Наиболее типичные значения этих скоростей – 343 Мбит/с для нисходящего канала и 131 Мбит/с – для восходящего. Если скорость канала связи – 100 Мбит/с, то передатчик может отправить пакет с 10 000 битами за 0,1 с. Если он может отправлять пакеты друг за другом (back-to-back1), то канал может отправить файл размером 100 Мбайт примерно за 8 с. На практике протоколы связи вводят некоторые промежутки между пакетами. Говорят, что канал связи, соединяющий пользователя с интернетом, является широкополосным, если его скорость превышает 25 Мбит/с вниз и 4 Мбит/с – вверх. (Эти значения были определены в 2015 г. Федеральной комиссией по средствам связи (Federal Communication Commission)). Если скорость ниже, канал является узкополосным (или просто узким).

2.2.2. Широкополосный канал и его производительность Сигнал формы V(t) = A sin(2πf0t) делает f0 циклов за секунду. Мы говорим, что его частота равна f0 Гц, Гц – это Герц и означает 1 цикл за секунду. Например, V(t) может быть напряжением, измеряемым во время  t между двумя терминалами в телефонной линии. Физическая природа линии передачи ограничивает набор частот, которые она передает. Широкополосность канала передачи означает большую величину этого набора частот. Например, если телефонная линия может передавать сигналы в пределах от 300 Гц до 1 МГц (= 106 Гц), мы говорим, что ее ширина полосы – около 1 МГц. Скорость канала связана с шириной полосы пропускания. Интуитивно понятно, если канал имеет широкую полосу пропускания, то он может передавать сигналы с быстро меняющимся напряжением и, так как различные биты представлены разными значениями напряжения, он будет передавать больше бит в секунду. Максимальная скорость канала зависит также от величины шума в канале. Чем больше шум, тем медленнее будет происходить передача. Это похоже на то, как во время раз1

Тест сводится к отсылке некоего количества кадров с минимальной межкадровой задержкой на входной порт тестируемого устройства и подсчету кадров с выходного порта устройства. Если количество отправленных и полученных кадров равно, то увеличивается объем отправляемых кадров и тест повторяется. Если принятых пакетов меньше, чем отправленных, объем отправляемых кадров уменьшается и тест повторяется. В итоге мы должны получить максимальное количество пакетов, отправленных и полученных без потерь для каждого размера пакета, это и будет значение back-to-back теста. – Прим. ред.

2.2.Метрики  29 говора в шумной комнате надо более четко произносить слова, чтобы вас поняли. Элегантная формула, предложенная Клодом Шенноном2, показывает зависимость между максимальной скоростью надежной передачи C, также называемой шенноновской пропускной способностью, шириной пропускания канала W и шумом. Вот эта формула: C = W log2(1 + SNR). В этом выражении SNR, отношение сигнал/шум, – это отношение мощности сигнала к мощности шума в приемнике. Например, если SNR   = 106 ≈ 220 и W = 1 МГц, то находим, что C = 106 log2(1 + 106) бит/с ≈ 106  log2(220) бит/с = 106 × 20 бит/с = 20 Мбит/с. Это значение является теоретическим пределом и может быть достигнуто при использовании наилучших из возможных техник преобразования битов в сигналы и наилучших из возможных методов, позволяющих избежать ошибок или скорректировать их. Формула подтверждает интуитивный факт – чем длиннее канал, тем его производительность меньше. Действительно, мощность сигнала в приемнике уменьшается в зависимости от длины линии (при фиксированной мощности передачи). Например, канал цифровой абонентской линии связи (DSL) по очень длинной телефонной линии имеет скорость, меньшую, чем по более короткой линии. Формула также показывает, почему скорость передачи по коаксиальным кабелям выше, чем по телефонной линии (лапше), ведь известно, что ширина пропускания первого больше. В более тонком смысле формула показывает, что передатчик с заданной мощностью должен выделять больше мощности тем частотам его спектра, которые менее шумные. За виолончелью лучше слышно высокое сопрано, чем глубокий бас. Передатчик DSL делит свою мощность по небольшим частотным полосам и назначает больше мощности менее шумной части этого спектра.

2.2.3. Задержка Задержка – это время, затрачиваемое пакетом на прохождение между двумя точками. Если эти две интересующие нас точки являются конечными (т. е. парой взаимодействующих хостов), мы называем задержку между ними end-to-end – «точка–точка». Задержка обычно включает в себя время передачи и распространения по промежуточным каналам, 2

Теорема Шеннона–Хартли устанавливает шенноновскую емкость канала, верхнюю границу максимального количества безошибочных цифровых данных (т. е. информации), которое может быть передано по такой связи коммуникации с указанной полосой пропускания в присутствии шумового вмешательства, согласно предположению, что мощность сигнала ограничена и гауссовский шум характеризуется известной мощностью или спектральной плотностью мощности. – Прим. ред.

30  Глава2.Принципы

а также время постановки в очередь и обработки на промежуточных узлах (например, в маршрутизаторах и коммутаторах)3. Узел A

P бит

Q бит

Скорость = R бит/с Время распространения = T

Узел B

Канал

Время ожидания в очереди = Q/R

Время передачи = P/R

Время

T (Время распространения)

Время

Рис. 2.2. Время ожидания в очереди, время передачи и время распространения

Рисунок 2.2 показывает, из чего складывается задержка для пакета из P бит, перемещающегося от узла A в узел B. В сценарии, показанном на рисунке, прежде чем появится возможность отправки по каналу этого пакета, еще Q других битов, которые уже присутствуют в узле A, должны быть отправлены первыми. Канал между узлами A и B имеет скорость R бит в секунду (бит/с), а время распространения – T с. Время в очереди – это время ожидания пакета в узле до его отправки; время передачи – это время, в течение которого пакет будет передаваться по линии со скоростью этой линии; время распространения – это время, за которое сигнал распространяется по линии. На рисунке время в очереди и время передачи – это Q/R и P/R соответственно. Еще одним видом задержки, возникающей при прохождении пакетов по узлам сети, является время обработки (не показано на рис. 2.2). Время обработки – это время выполнения необходимых операций над пакетом в узле. Концепции времени в очереди и времени передачи в дальнейшем будут рассмотрены в разделах 2.2.6 и 2.2.7. 3

Задержка end-to-end бывает двух типов. 1. Фиксированная задержка. Данный вид задержки имеет так же два подтипа: задержку сериализации и распространения. Сериализация – это время, затрачиваемое оборудованием на перемещение битов информации в канал передачи. Чем шире пропускная способность канала передачи, тем меньше времени тратится на сериализацию. Задержка распространения – это время, требуемое для передачи одного бита информации на другой конец канала передачи. 2. Переменная сетевая задержка. Задержка пакета в очереди относится к категории переменной задержки. В частности, время, которое пакет проводит в буфере интерфейса, зависит от загрузки сети и относится так же к переменной сетевой задержке. – Прим. ред.

2.2.Метрики  31

2.2.4. Пропускная способность Скажем, вы загружаете большой файл из сервера, используя интернет. Предположим, что файл имеет размер B бит и что для загрузки файла необходимо T с. В таком случае мы говорим, что пропускная способность передачи равна B/T бит/с. Например, вы можете загрузить видеофайл MP4 величиной в 3 Гбайта = 24 Гбита за 4 мин, т. е., за 240 с. Тогда пропускная способность равна 24  Гбит/240 с = 0,1 Гбит/с, или 100 Мбит/с. (Для удобства мы примем, что 1 Гбайт равен 109 байт, хотя в действительности он равен 230 = 1 073 741 824 байт. Напомним также, что 1 Мбит/с = 106 байт, а 1 Кбит/с = 103 бит/с). Скорость канала – это не то же самое, что пропускная способность. Например, в приведенном выше примере пропускная способность загрузки видео была 100 Мбит/с. Вы могли бы использовать кабельный модем с нисходящей скоростью 343 Мбит/с. Разница зависит от того факта, что скорость загрузки соответствует последовательности пакета и есть ли между пакетами промежутки. На рис. 2.3 показаны две типичные ситуации, когда пропускная способность меньше скорости линии. В левой части рисунка показан источник S, который посылает пакеты в пункт назначения D. Пакет считается необработанным или неподтвержденным (outstanding packet), если отправитель передал его, но не получил подтверждения. Предположим, что у отправителя может быть до трех неподтвержденных пакетов. На рисунке показано, что отправитель посылает три пакета, затем ждет подтверждения первого пакета, прежде чем он сможет отправить четвертый, и т. д. Как показано на рисунке, передающий роутер вынужден ждать, потому что время для получения подтверждения RTT (round-trip time, время круговой задержки), больше, чем время, которое требуется передатчику для отправки всех трех пакетов. Из-за этого времени ожидания, в течение которого передатчик не отправляет пакеты, пропускная способность канала меньше, чем его скорость R. Обратите внимание, что в этом примере увеличение допустимого числа неподтвержденных пакетов увеличивает пропускную способность, пока она не станет равной скорости соединения. Максимально допустимое количество неподтвержденных байтов называется размером окна получателя (это размер его буфера). Таким образом, пропускная способность канала ограничена размером окна, деленным на время круговой задержки4. 4

Мы не должны передать больше, чем готов принять получатель или пропустить сеть. Если у нас супернадежная сеть, где пакеты практически никогда не теряются и не бьются, нам выгодно иметь окно максимально возможного размера, что позволит минимизировать паузы между отправкой кадров. В плохой же сети ситуация обратная – при частых потерях и большом количестве битых пакетов нам важно доставить каждый из них в целости и сохранности, поэтому мы уменьшаем окно так, чтобы трафик как можно меньше терялся и мы избежали фатальных переотправок. Жертвовать в этом случае приходится скоростью. И, как всем известно, реальность – это смесь двух крайних случаев, поэтому в реальной сети размер окна – величина переменная. Причем он может быть изменен, как в одностороннем порядке на любой стороне, так и по согласованию. – Прим. ред.

32  Глава2.Принципы S

R

D A

RTT

R

B

R

C

R

D

Время Рис. 2.3. Пропускная способность может быть ограничена размером окна (слева) и «бутылочным горлышком» канала (справа)

В правой части рисунка показаны устройства A, C, D, подключенные к маршрутизатору B. Устройство A отправляет пакеты со скоростью R. Половина пакетов идет в C, а другая – в D. Пропускная способность соединения A с C равна R = 2, где R – скорость канала. Таким образом, два соединения (A с C и A с D) делят скорость R соединения A с B. Это соединение является узким местом, «бутылочным горлышком», системы: именно его скорость этого соединения ограничивает пропускную способность всей системы. Увеличение скорости этого канала позволит увеличить пропускную способность системы.

2.2.5. Джиттер Джиттер – это колебания задержки, означающие, что пакеты отправляются и принимаются с разной скоростью. Пакеты, которые источник последовательно посылает в пункт назначения, не всегда одинаково задерживаются в сети. Один пакет может достичь места назначения за 50 мс, в то время как другой – за 120 мс. Эти колебания задержки вызваны переменным числом заторов в маршрутизаторах. Пакет может прийти на маршрутизатор, который уже имеет много других пакетов для передачи. Другому пакету может повезти, и ему почти не придется ждать позади других пакетов. Можно определить задержку из-за джиттера как разницу между самым длинным и самым коротким временем доставки пакетов по этому пути. Например, если время доставки пакетов по соединению варьируется от 50 до 120 мс, джиттер этого соединения составляет 70 мс. Многие приложения, такие как потоковое аудио или видео, передача голоса по IP, чувствительны к задержкам. Эти приложения генерируют последовательность пакетов, которые сеть доставляет к месту на-

2.2.Метрики  33 значения для воспроизведения. Если джиттер соединения составляет J, получатель должен сохранять первый поступивший пакет не менее J с, прежде чем воспроизвести его, чтобы у получателя не закончились пакеты для воспроизведения. На практике значение джиттера не известно заранее. Как правило, потоковое приложение хранит пакеты в течение T с, скажем T = 4, прежде чем начать воспроизводить их. Если буфер воспроизведения станет пустым, приложение увеличивает значение T и буферизирует пакеты на T с перед их воспроизведением. Начальное значение T и правило увеличения T зависят от приложения. Небольшое значение T важно для интерактивных приложений, таких как передача голоса по IP или видеоконференции; оно менее важно для односторонней потоковой передачи, например интернет-радио, IPTV или YouTube.

2.2.6. Очередь М/М/1 Чтобы оценить такие эффекты, как перегрузка, джиттер и мультиплексирование, вспомним базовые понятия о задержках в очереди. Представьте, что покупатели подходят к кассе и становятся в очередь в ожидании обслуживания. Предположим, что в каждую следующую секунду приходит еще один клиент с вероятностью λ, независимо от того, когда пришли предыдущие клиенты. Предположим также, что кассир завершает обслуживание клиента в каждую следующую секунду с вероятностью μ независимо от того, как долго он обслуживал этого клиента и сколько времени ушло на обслуживание предыдущих клиентов. То есть в среднем за секунду приходят λ клиентов, и кассир обслуживает в среднем μ клиентов за секунду, когда есть те, кого нужно обслужить. Обратите внимание, что среднее время обслуживания одного клиента составляет 1/μ с, так как кассир может обслуживать в среднем μ клиентов за секунду. Можно определить утилизацию сетевого канала связи как отношение ρ = λ/μ. Таким образом, коэффициент утилизации канала равен 80 %, если скорость прибытия равна 80 % скорости обслуживания. Такая система называется очередью M/M/15. В этом обозначении первая буква М указывает на то, что процесс прибытия не имеет памяти: следующее прибытие происходит в следующую секунду с вероятностью λ независимо от того, сколько времени прошло с момента предыдущего прибытия. Вторая M указывает на то, что обслуживание также не 5

В теории очередей, дисциплине математической теории вероятностей, очередь M/M/1 (https:// ru.abcdef.wiki/wiki/M/M/1_queue) представляет длину очереди в системе с одним сервером, где поступления определяются процессом Пуассона, а время обслуживания заданий имеет экспоненциальное распределение. Название модели записано в обозначениях Кендалла. Модель является наиболее простейшей из моделей массового обслуживания и привлекательным объектом изучения, поскольку выражения в замкнутой форме могут быть получены для многих показателей, представляющих интерес в этой модели. Расширением этой модели с более чем одним сервером является очередь M/M/c. – Прим. ред.

34  Глава2.Принципы

имеет памяти. Единица в обозначении указывает на то, что существует только один сервер (кассир). Предположим, что λ < μ на столько, чтобы кассир мог успевать за прибывающими клиентами. Основной результат заключается в том, что среднее время T, которое клиент тратит на ожидание в очереди или на обслуживание, определяется как: 1 T = ––––––––. (μ – λ) Если λ очень мала, то, когда приходит клиент, очередь почти всегда пуста. В этом случае среднее время T равно 1/μ и равно среднему времени, которое тратит кассир на обслуживание клиента. Следовательно, для любого данного λ < μ, разность T – 1/μ – это среднее время ожидания в очереди, которое тратит клиент, прежде чем попасть к кассиру. Другой полезный результат заключается в том, что среднее число L покупателей в очереди или заявок к серверу определяется следующим образом: 1 L = ––––––––. (μ – λ) Заметим, что T и L неограниченно растут по мере увеличения λ и приближения его к μ. Чтобы применить эти результаты к коммуникационным системам, можно считать, что клиенты – это пакеты, кассир – передатчик, а очередь – буфер, присоединенный к передатчику. Среднее время обслуживания пакетов 1/μ (в секундах) – это средняя длина пакета (в битах), деленная на скорость канала (в бит/с). Эквивалентно скорость обслуживания μ – это скорость канала, деленная на среднюю длину пакета. Рассмотрим компьютер, который генерирует λ пакетов в секунду, и что эти пакеты поступают в канал связи, который может отправлять μ пакетов в секунду. Приведенные выше формулы дают среднюю задержку T на пакет и среднее количество пакетов L, хранящихся в очереди передатчика канала. Для конкретности предположим, что скорость линии составляет 10  Мбит/с, длина пакетов – в среднем 1 Кбайт и что в передатчик в среднем поступает 1000 пакетов в секунду. В этом случае можно обнаружить, что 107 μ = –––––––– = 1250 пакетов в секунду. 8 × 103 Следовательно,

2.2.Метрики  35

и

1 1 T = –––––––– = –––––––––––––––– = 4 мс (μ – λ) (1250 – 1000) 1 1000 L = –––––––– = –––––––––––––––– = 4. (μ – λ) (1250 – 1000)

Таким образом, среднее время передачи пакета составляет 1/μ = 8 мс, средняя задержка в системе – 4 мс, а в буфере находятся в среднем четыре пакета. Типичный пакет, который прибывает в буфер, обнаруживает там 4 других пакета; так что время ожидания прибывшего пакета, прежде чем он покинет систему, равно 4-кратному времени передачи других пакетов плюс свое собственное время передачи. Средняя задержка соответствует пяти временам передачи по 0,8 мс каждое, так что T = 4 мс. Задержка T складывается из времени постановки в очередь, 3,2 мс, и времени передачи, 0,8 мс. Из-за случайности прибытия пакетов и непостоянства времени передачи не все пакеты задерживаются одинаково. В модели M/M/1, в принципе, возможно, что пакет прибывает в буфер, когда тот уже содержит очень большое количество пакетов. Однако это маловероятно. Можно показать, что только около 5  % пакетов задерживаются более чем на 2 мс и еще около 5 % столкнутся с задержкой менее 0,2 мс. Таким образом, большинство пакетов задерживается на время между 0,2 и 12 мс. Можно считать, что джиттер составляет приблизительно 12 мс, что в три раза превышает среднюю задержку при прохождении через буфер. Чтобы оценить эффект перегрузки, предположим, что пакеты поступают со скоростью 1150 пакетов в секунду. Находим, что T = 10 мс и L = 1,5. В этой ситуации время передачи по-прежнему составляет 0,8 с, но среднее время ожидания в очереди в 11,5 раз превышает время передачи, т. е. равно 9,2 мс. Джиттер в этой системе тогда составляет около 30 мс. Таким образом, средняя задержка пакетов и джиттер быстро увеличиваются по мере того, как скорость поступления пакетов λ приближается к скорости передачи μ. Теперь представьте, что N компьютеров совместно используют канал связи, который может передавать Nμ пакетов в секунду. В этом случае, заменив в предыдущих формулах μ на Nμ и λ на Nλ, мы обнаружим, что средняя задержка теперь T/N, а среднее количество пакетов по-прежнему L. Таким образом, благодаря совместному использованию более быстрого канала связи пакеты получают меньшую задержку. Это эффект, который не будет столь удивительным, если мы заметим, что время передачи каждого пакета теперь намного меньше, что является еще одним преимуществом совместного использования компьютерами более быстрых каналов через коммутаторы вместо более медленных выделенных.

36  Глава2.Принципы

Подводя итог, можно сделать вывод, что модель M/M/1 позволяет нам оценить задержку и отставание в канале связи. Среднее время передачи (в секундах) равно средней длине пакета (в битах), деленной на скорость передачи (в бит/с). При умеренной утилизации λ (скажем, λ ≤ 80 %) средняя задержка составляет небольшое время, кратное среднему времени передачи (скажем, в 3–5 раз). Кроме того, джиттер оценивается примерно в 3 раза больше средней задержки прохождения через буфер.

2.2.7. Закон Литтла Еще один базовый результат помогает нам понять некоторые важные аспекты сетей: это закон (или лемма) Литтла, открытый Джоном Д. К. Литтлом в 1961 г. Представьте себе систему, в которой пакеты поступают со средней скоростью λ пакетов в секунду. Обозначим через L среднее количество пакетов в системе и через W – среднее время, которое пакет проводит в системе. Тогда при очень слабых предположениях о прибытии и обработке пакетов имеет место следующее соотношение: L = λW. Обратите внимание, что это соотношение, называемое законом Литтла, как показывают формулы, справедливо для очереди M/M/1. Однако этот же результат имеет место и в более общем случае. Чтобы понять закон Литтла, можно рассуждать следующим образом. Представьте, что пакет платит один доллар за секунду, проведенную в системе. Соответственно, средняя сумма, которую платит каждый пакет, равна W долл. Поскольку пакеты проходят через систему со скоростью λ, система получает оплату со средней скоростью λW долл. в секунду. Эта средняя скорость должна быть равна среднему количеству L пакетов в системе, поскольку каждый из них оплачивается по ставке один доллар в секунду. Следовательно, L = λW. В качестве иллюстрации предположим, что 1 млрд пользователей ежедневно отправляет через интернет в среднем по 10 Мбайт. Предположим также, что каждый пакет проводит в сети в среднем 0,4 с. Среднее количество передаваемых битов в интернете тогда равно L, где 8 × 107 L = λW = �109 ×––––––––––––– бит/с� × 0,4 с ≈ 3,7 × 1011 бит ≈ 43 Гбайт. 24 × 3600

Некоторые из этих битов еще проходят по оптоволокну, другие в основном находятся в маршрутизаторах.

2.2.Метрики  37 В качестве другого примера попробуем оценить, сколько битов находится в оптоволокне. Рассмотрим оптику, которая передает биты со скоростью 2,4 Гбит/с и использует на 20 % от своей пропускной способности. Предположим, что длина канала – 100 км. Время распространения света в оптоволокне составляет около 5 мкс на километр. Это равно времени распространения света в вакууме, умноженному на коэффициент преломления стекловолокна. Таким образом, каждый бит проводит в волокне время W, где W = 5 мкс × 100 = 5 × 10–4 с. Средняя скорость поступления битов в волокно составляет λ  =  0,2  ×  2,4  Гбит/с = 0,48 × 109 бит/с. Согласно закону Литтла среднее количество битов, находящихся в волокне, равно L, где L = λW = (0,48 × 109 бит/с) × (5 × 10-4 с) = 2,4 × 105 бит = 30 Кбайт. В маршрутизаторе также находятся биты. Чтобы оценить их количество, рассмотрим маршрутизатор с 16 входными портами скоростью 1 Гбит/с. Предположим, что маршрутизатор используется на 10 % от своей пропускной способности и что каждый бит проводит в маршрутизаторе 5 мс. Мы находим, что средняя скорость поступления битов составляет λ = 0,1 × 16 × 109 бит/с. Средняя задержка составляет W = 5 × 10–3 с. Следовательно, среднее количество L битов в маршрутизаторе есть L = λW = (1,6 × 109 бит/с) × (5 × 10–3 с) = 8 × 106 бит = 1 Мбайт.

2.2.8. Fairness, или индексы справедливости в сети Рассмотрим два потока, которые совместно используют канал, имеющий скорость 1 Мбит/с, и предположим, что поток 1 передает данные со скоростью, в два раза большей, чем поток 2. Как они должны разделить пропускную способность канала? Одна из возможностей заключается в том, чтобы максимизировать общую ценность, которую оба потока получают от использования канала. В этом случае поток 1 должен получить полную пропускную способность канала, т. е. 1 Мбит/с, потому что его ценность больше, чем потока 2. Это называется распределением max­sum, по максимуму суммы, или максимизацией социального благосостояния. Это решение не кажется справедливым по отношению к потоку 2. Другой возможностью является максимизация использования (утилизации) каждого из каналов связи. Если поток 1 получает x от пропускной способности канала, а поток 2 получает 1 – x, то для некоторой константы A выгода потока 1 равна A2x, а потока 2 равна A(1 – x). Чтобы максимизировать минимальную выгоду, выбираем x так, чтобы A2x = A(1 – x), т. е. x = 1/3. Тогда каждый поток получают одинаковую выгоду, равную 2A/3. Такое распределение называется max­min6. 6

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

38  Глава2.Принципы

Есть и другая возможность максимизировать результат выгод 2Ax

и A(1 – x). В этом случае x = 1/2 и выгода потока 1 равна A, а потока 2 – A/2. Такое распределение называется пропорциональной справедливостью (proportional fairness). Достижение справедливости во всей сети является более сложной задачей, чем простой пример с одним каналом, рассмотренный здесь. Это часто может привести к компромиссу между эффективностью сети и справедливостью7. Мы рассмотрим этот вопрос подробнее в главе 8 «Модели».

2.3. Масштабируемость Для того чтобы сеть могла разрастаться до больших размеров, подобно интернету, необходимо, чтобы ее модификации были ограничены. В первые дни существования интернета каждый компьютер имел полный список всех компьютеров, подключенных к сети. Таким образом, появление еще одного компьютера требовало обновления списка, который вел каждый компьютер сети. Каждое изменение влияло на глобальную сеть. Предположим, что половина из 1 млрд компьютеров в интернете была добавлена в течение последних десяти лет. Это значит, что в эти последние десять лет каждый день в среднем добавлялось примерно 0,5 × 109 /(10 × 365) > 105 компьютеров. Представьте себе, что маршрутизаторы на рис. 2.1 должны хранить список всех компьютеров, которые подключены к каждому из их портов. В этом случае появление нового компьютера в сети требует изменения списков во всех маршрутизаторах, что явно не является жизнеспособным подходом. Рассмотрим также схему, в которой сеть должна отслеживать, какие компьютеры в настоящее время обмениваются информацией. Поскольку сеть становится больше, потенциальное количество одновременных связей также растет. Такая схема потребует все более сложных маршрутизаторов. Само собой разумеется, что обновлять все эти списки, чтобы поспевать за изменениями, было бы невозможно. Необходимо было придумать другую систему. Мы опишем некоторые методы, которые интернет использует для масштабирования.

2.3.1. Адресация на основе местоположения В главе 1 мы объяснили, что IP-адреса основаны на местонахождении устройств, по схеме, аналогичной телефонным номерам. 7

Powered by TCPDF (www.tcpdf.org)

Роутеры, поддерживающие эту технологию, ограничивают сессию связи с клиенстским устройством не по количеству пакетов, а по времени их передачи. В итоге получается, что скорость падает только в одном из компьютеров, самом медленном. Но при этом он не тормозит работу с другими, которые за это же время передадут в разы больше информации. – Прим. ред.

2.3.Масштабируемость  39 Первое преимущество этого подхода заключается в том, что он уменьшает размер таблиц маршрутизации, о чем мы уже говорили. На рис. 2.4 показаны M = N2 устройств, которые расположены в N группах с N устройствами в каждой. Каждая группа подключена к одному маршрутизатору. 5 4 1

3

N

2 1.2 1. N

1.1

N.1

N.2 N.N

Рис. 2.4. Простая иллюстрация адресации на основе местоположения

При таком расположении каждому маршрутизатору 1, …, N требуется по одной записи маршрутизации для каждого устройства в своей группе плюс по одной записи для каждого из других N – 1 маршрутизаторов. Например, рассмотрим пакет, который идет от устройства 1.2 к устройству N.1. Сначала пакет идет от устройства 1.2 к маршрутизатору 1. Запись маршрутизации в нем указывает следующий хоп к маршрутизатору N, скажем к 5-му. Аналогично маршрутизатор 5 имеет запись маршрутизации для следующего хопа, к маршрутизатору 4, и т. д. Когда пакет попадает к маршрутизатору N, последний обращается к своей таблице маршрутизации, чтобы найти следующий переход к устройству N.1. Таким образом, каждая таблица маршрутизации имеет размер N + (N – 1) ≈ 2√M. В отличие от этого в сети Ethernet используются адреса, которые не имеют никакого отношения к местоположению компьютеров. Соответственно, коммутаторы Ethernet должны вести список компьютеров, подключенных к каждому из их портов. Такой подход хорошо работает для относительно небольшого количества компьютеров, скажем нескольких тысяч, но не очень хорошо масштабируется. Если в сети имеется M устройств, каждая таблица маршрутизации должна иметь M записей. Предположим, что в один прекрасный день громадное количество электроприборов будут подключены к интернету, таких как светильники, кофеварки, дверные замки, двигатели для штор, автомобили и т. д. Какой способ выбора адреса для этих устройств будет наиболее подходящим?

40  Глава2.Принципы

2.3.2. Двухуровневая маршрутизация В интернете используется стратегия маршрутизации, масштабируемая ценой некоторой потери оптимальности. Этот механизм, детали которого мы рассмотрим в главе 5 «Маршрутизация», группирует узлы в домены. Каждый домен использует алгоритм кратчайшего пути (shortest-path algorithm), где длина пути определяется как сумма метрик линий связи вдоль пути. Более быстрая линия имеет меньшую метрику, чем более медленная. Чтобы рассчитать кратчайший путь между двумя узлами в домене, коммутаторы должны обмениваться большим количеством метрической информации. Например, каждый узел может составить сообщение, содержащее список своих соседей и метрики соответствующих связей. Затем узлы могут отправлять эти сообщения друг другу. Для простой оценки необходимого количества сообщений скажем, что существует N маршрутизаторов и что каждый маршрутизатор посылает одно сообщение каждому из N – 1 других маршрутизаторов. Таким образом, каждый маршрутизатор отправляет примерно N сообщений. Для простоты предположим, что каждое сообщение проходит через некоторое среднее число хопов, скажем 6, которое не зависит от N. Общее число сообщений, передающих N маршрутизаторов, составляет около 6N2, или около 6N сообщений на маршрутизатор. Такое количество сообщений становится непрактичным, когда N очень велико. Чтобы уменьшить сложность алгоритмов маршрутизации (роутинга), интернет группирует маршрутизаторы в домены. Затем, по сути, вычисляется кратчайший путь между доменами, а каждый домен вычисляет кратчайшие пути внутри себя. Допустим, существует N доменов с N маршрутизаторами внутри каждого домена. Каждый маршрутизатор участвует в алгоритме кратчайшего пути для своего домена, отправляя таким образом около 6N сообщений. Кроме того, один из маршрутизаторов в каждом домене участвует в алгоритме маршрутизации между доменами, также отправляя порядка 6N сообщений. Если бы маршрутизация осуществлялась на одном уровне, каждый маршрутизатор передавал бы в среднем 6N2 сообщений, что в N раз больше, чем при использовании двухуровневой маршрутизации. В главе 5 «Маршрутизация», мы объясняем еще одну мотивацию для двухуровневого подхода к маршрутизации. Он основан на том, что внутренний роутинг может соответствовать экономическим договоренностям, поскольку домены принадлежат разным организациям.

2.3.3. Негарантированная доставка Важнейшим выбором при проектировании интернета является то, что он не гарантирует никаких точных данных о доставке пакетов, таких

2.3.Масштабируемость  41 как задержка или пропускная способность. Вместо этого разработчики выбрали простоту и решили, что интернет должен предоставлять best effort service, что означает негарантированную доставку, т. е. сеть должна стараться доставлять пакеты как можно лучше в каждый момент, что бы это ни значило. Эта философия проектирования полностью контрастирует с философией телефонной сети, где определены точные границы для времени получения гудка, звонка вызываемого абонента и задержки передачи голосового сигнала. Например, разговор становится очень неприятным, если односторонняя задержка превышает 250 мс. Следовательно, как можно надеяться использовать интернет для передачи голоса, если он не может гарантировать, что эта задержка меньше 250 мс? Аналогично, для хорошего видео требуется пропускная способность по крайней мере 50 Кбит/с. Как можно использовать интернет для таких приложений? Подход интернета заключается в том, что по мере совершенствования технологии он сможет поддерживать все более и более требовательные приложения. Приложения адаптируются к изменяющемуся качеству услуг интернета, а не наоборот.

2.3.4. Сквозной (end-to-end) принцип и маршрутизаторы stateless Обслуживание по принципу best effort service (негарантированной доставки) делает ненужным для маршрутизаторов (или сети) отслеживание количества или типов устанавливаемых соединений. Более того, ошибки исправляются источником и пунктом назначения, которые организуют повторную передачу. В более общем смысле руководящий принцип заключается в том, что задачи не должны выполняться маршрутизаторами, если они могут быть выполнены конечными устройствами. Это называется сквозным принципом, end-to-end principle8. Таким образом, маршрутизаторы выполняют свои задачи для отдельных пакетов. Они просто находят поврежденные пакеты и отбрасывают их. Исходя из адреса назначения пакета, определяется выходной порт. Роутер не хранит копию пакета для повторной передачи в случае потери при передаче или перегрузки на следующем хопе. И он не отсле8

Фундаментальное понятие, лежащее в основе сквозного принципа, заключается в том, что для двух процессов, взаимодействующих друг с другом через некоторые средства связи, нельзя ожидать , что надежность, полученная с помощью этих средств, будет идеально согласована с требованиями надежности процессов. В частности, выполнение или превышение требований очень высокой надежности процессов связи, разделенных сетями нетривиального размера, обходится дороже, чем получение требуемой степени надежности с помощью положительных сквозных подтверждений и повторных передач (называемых PAR или ARQ). Иными словами, гораздо легче получить надежность сверх определенного запаса с помощью механизмов в конечных хостах сети, а не в промежуточных узлах, особенно когда последние не контролируются и не подотчетны первым. Положительные сквозные подтверждения с бесконечным числом повторных попыток могут обеспечить произвольно высокую надежность от любой сети с более высокой, чем ноль, вероятностью успешной передачи данных от одного конца к другому. – Прим. ред.

42  Глава2.Принципы

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

2.3.5. Иерархическое именование В интернете используется автоматизированная служба каталогов под названием DNS (система доменных имен). Эта служба переводит имя компьютера в его адрес. Например, если вы хотите подключиться к серверу Google, служба сообщает вашему веб-браузеру адрес, соответствующий имени www.google.com сервера. Имена серверов, таких как www.google.com, расположены в иерархии в виде дерева. Дерево разделяется от корня на домены первого уровня, такие как .com, .edu, .be, и т. д. Каждый из них затем разделяется на домены второго уровня и  т.  д. Полученное дерево разбивается на зоны. Каждая зона поддерживается некоторым независимым административным органом, и она соответствует некоторому определенному серверу каталогов, хранящему адреса компьютеров с соответствующими именами. Например, одна зона – это eecs.berkeley.edu, а другие – stat.berkeley.edu и ieor.berkeley.edu. Смысл этой иерархической организации DNS заключается в том, что изменение зоны влияет только на каталог сервера этой зоны, а не на другие. То есть иерархия позволяет осуществлять распределенное администрирование системы каталогов в дополнение к соответствующей декомпозиции базы данных.

2.4. Приложения и технологическая независимость Телефонная сеть была разработана для передачи телефонных звонков. Хотя она также могла быть использована для некоторых других приложений, таких как телетайп и факс, конструкция сети не была достаточно гибкой для поддержки широкого спектра услуг. Интернет значительно отличается от телефонной сети. Первоначальная цель заключалась в том, чтобы дать возможность исследовательским группам обмениваться файлами. Сеть была спроектирована таким образом, чтобы иметь возможность передавать пакеты определенного формата, включая согласованные адреса источника и назначения. Источник разбивает большой файл на фрагменты, которые помещают-

2.4.Приложенияитехнологическаянезависимость  43 ся в отдельные пакеты. Подобным же образом, как последовательность пакетов, может быть передан поток битов. Инженеры быстро разработали приложения, которые использовали возможности пакетной передачи данных в интернете. Примерами таких приложений являются электронная почта, Всемирная паутина, потоковое видео, передача голоса по IP, peer­to­peer (одноранговые соединения), видеоконференции и социальные сети. В принципе, любая информация может быть закодирована в биты. Если сеть может передавать пакеты, она может передавать любой тип информации.

2.4.1. Уровни модели OSI Чтобы формализовать эту независимость технологий и приложений, интернет разделен на пять9 функциональных уровней (слоев), как показано на рис. 2.5. Физический уровень отвечает за передачу битов через физическую среду. Канальный уровень использует механизм доставки битов физического уровня для передачи пакетов по каналам связи. Сетевой уровень использует доставку пакетов по последовательности каналов от источника к месту назначения. Транспортный уровень использует сквозную (end­to­end) доставку пакетов для передачи отдельных пакетов или потока байтов от процесса в исходном компьютере к процессу в компьютере места назначения. Транспортный уровень осуществляет контроль ошибок (посредством квитирования и повторной передачи), управление перегрузкой (регулируя скорость передачи, чтобы избежать перегрузки маршрутизаторов) и управление потоком (чтобы избежать переполнения буфера назначения). Наконец, прикладной уровень реализует приложения, которые используют транспортную службу для передачи пакетов или байтов. Пакет прикладного уровня может быть сообщением или файлом. Такая многоуровневая декомпозиция обеспечивает совместимость различных реализаций и применений. Например, проводную реализацию физического и канального уровней можно заменить беспроводной без необходимости изменения более высоких уровней и с сохранением возможности соединения с остальной частью интернета. Аналогично можно разработать новое приложение для видеоконференций без изменения других уровней. Более того, послойная декомпозиция упрощает процесс проектирования, разбивая его на независимые модули. Например, разработчику физического уровня не нужно учитывать приложения, которые будут его использовать. В главе 8 «Модели», мы объясним, что преимущества многослойности достигаются ценой потери производительности. 9

Вообще говоря, сетевых уровней 7 – на уровне приложений различают: • прикладной: некоторое высокоуровневое API; • представительский: представление данных между сетевым сервисом и приложением.

44  Глава2.Принципы

Маршрутизатор

Прикладной уровень

Поток байтов или пакетов

Транспортный уровень Сетевой уровень Канальный уровень Физический уровень

Сквозная передача пакетов Пакеты

Пакеты

Биты

Биты

Сигналы

Сигналы

Рис. 2.5. Пять уровней интернета

2.5. Топология приложений Сетевые приложения различаются тем, как хосты обмениваются информацией. В этом разделе объясняются основные возможности. Конкретное сетевое приложение может соответствовать описанию более чем одного способа обмена информацией, описанных ниже.

2.5.1. Клиент/сервер При просмотре веб-страниц используется модель клиент/сервер. В этом приложении хост пользователя является клиентом, и он подключается к серверу, такому как google.com. Клиент запрашивает у сервера файлы, и сервер передает их. Таким образом, соединение производится между двумя хостами, и большая часть передачи происходит от сервера к клиенту. В веб-браузере передача инициируется, когда пользователь нажимает на гиперссылку, в которой указано имя сервера и файлы. В некоторых случаях запрос содержит инструкции для сервера, такие как ключевые слова в поиске или операции, которые необходимо выполнить, например преобразовать единицы измерения или произвести расчет. Популярные веб-сайты размещаются на серверной ферме, представляющей собой совокупность серверов (от сотен до тысяч), оснащенных системой балансировки запросов. То есть запросы поступают в устройство, которое отслеживает, какие серверы могут их обработать и насколько они загружены. Затем это устройство направляет запросы

2.5.Топологияприложений  45 на те серверы, которые, скорее всего, смогут их быстро обслужить. Такое устройство иногда называют маршрутизатором уровня 7. Одной из важных задач является регулирование количества активных серверов в зависимости от нагрузки, чтобы минимизировать энергопотребление всей фермы серверов, сохраняя при этом качество обслуживания.

2.5.2. P2P Система P2P (рeer­to­рeer) хранит файлы не на специализированных серверах, а на пользовательских узлах. Например, используя BitTorrent, пользователь, ищущий файл (скажем, музыкальный MP3-файл), находит список пользовательских узлов, которые имеют этот файл и готовы его предоставить. Затем пользователь может запросить файл от этих узлов. И несколько хостов могут параллельно предоставлять различные части этого файла. Структура P2P имеет одно важное преимущество перед моделью клиент/сервер: популярный файл, скорее всего, будет доступен на многих пользовательских хостах. Следовательно, сервисная мощность системы автоматически возрастает с ростом популярности файлов. Кроме того, параллельная загрузка преодолевает асимметрию между скоростями загрузки и выгрузки (upload/download). Действительно, скорость входящего интернет-соединения обычного пользователя, как правило, в 3 раза быстрее, чем исходящего. Такая асимметрия оправдана для приложений клиент/сервер. Однако она создает узкое место, когда сервер принадлежит обычному пользователю. Параллельная загрузка устраняет это узкое место.

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

46  Глава2.Принципы

веб-страниц и поиск. Другие приложения сложнее распределить, например игровые симуляторы или масштабные вычисления.

2.5.4. Распределение контента Система распределения контента – это набор серверов (или ферм серверов), расположенных в различных точках сети для улучшения качества доставки информации пользователям. Когда пользователь запрашивает файл с одного сервера, этот сервер может перенаправить запрос на другой, расположенный ближе к пользователю. Одна из возможностей заключается в том, чтобы сервер возвращал домашнюю страницу со ссылками, выбранными на основе местоположения запрашивающего IP-адреса. Многие компании используют систему распространения контента Akamai (провайдер платформ доставки контента и приложений).

2.5.5. multicast/anycast Многоадресная передача multicast относится к доставке файлов или потоков данных на множество хостов. Хосты подписываются на multicast, а сервер посылает им информацию. Такой тип передачи уменьшает трафик, позволяя хостам отправить один пакет выбранной группе хостов. Для достижения нескольких хостов назначения, используя передачу данных unicast, хост-источнику было бы необходимо отправить каждому хосту назначения один и тот же пакет. С типом передачи данных multicast хост-источник может отправить всего один пакет, который способен достичь тысячи хостов получателей. Сеть может реализовать многоадресную рассылку как набор одноадресных (unicast) рассылок. В качестве альтернативы сеть может использовать специальные устройства, которые размножают (реплицируют) пакеты, чтобы ограничить количество дубликатов, проходящих через любой канал связи. Twitter является многоадресным приложением. Anycast означает доставку файла любому из множества хостов. Например, запрос на получение информации может быть отправлен на любой из множества серверов.

2.5.6. push/pull Когда пользователь просматривает веб-страницы, его хост извлекает (pull) информацию с сервера. В отличие от этого приложения push отправляют (выталкивают) информацию на пользовательские хосты. Например, пользователь может подписаться на ежедневную газету, которую сервер пересылает в соответствии с расписанием, когда хост пользователя доступен.

2.7.Задачи  47

2.5.7. Подбор контента по местоположению В большинстве приложений пользователь указывает файлы, которые он ищет. Однако некоторые приложения сами обнаруживают и предлагают информацию пользователю. Например, какое-то приложение ищет пользователей, которые находятся по соседству и с кем можно поужинать. В другом приложении перечислены меню близлежащих ресторанов.

2.6. Резюме Интернет обладает следующими важными функциями: • коммутация пакетов обеспечивает эффективное совместное использование сетевых ресурсов (статистическое мультиплексирование); • иерархическое наименование, адресация на основе местоположения, двухуровневая и state­less – маршрутизация (благодаря сервису best effort и сквозному принципу end­to­end) делают интернет масштабируемым; • многоуровневость упрощает дизайн, обеспечивает независимость в отношении приложений и совместимость с различными технологиями; • приложения имеют различную информационную структуру, которая варьируется от модели клиент/сервер до облачных вычислений, P2P и подбора контента по местоположению пользователя. Некоторые ключевые метрики интернета: • • • •

пропускная способность (или битовая скорость) канала связи; пропускная способность соединения; средняя задержка и джиттер соединения; лемма Литтла, связывающая средние задержки и пропускную способность.

2.7. Задачи 2.1. Предположим, что 400 пользователей совместно используют канал связи в 100 Мбит/с. В часы пик каждый пользователь активен в течение 10 % времени. Если все активные пользователи получают равную долю скорости канала, какова будет средняя пропускная способность на одного активного пользователя?

48  Глава2.Принципы

2.2. В этой задаче мы уточняем оценки предыдущей задачи. Если подбросить монету n во много раз больше 1 и вероятность выпадения орла при каждом броске равна p ∈ (0, 1), то среднее число выпавших орлов равно np. Более того, вероятность того, что доля орлов больше, чем p + 1,3√p(1 – p)/n, составляет около 10 %. Используйте этот факт для расчета скорости R такой, что вероятность того, что пропускная способность на активного пользователя в предыдущей задаче меньше R, составляет только 10 %. 2.3. Представьте себе коммутатор в сети, где пакеты поступают со скоростью λ = 106 пакетов в секунду. Предположим также, что пакет в среднем проводит в коммутаторе T = 1 мс = 10–3 с. Вычислите среднее количество пакетов, которые коммутатор удерживает в любой момент времени. 2.4. Пакеты средней длины в 1 КБайт поступают в канал для передачи. Скорость поступления пакетов соответствует 8 Мбит/с. Скорость канала составляет 10 Мбит/с. Используя формулу для задержки M/M/1, оцените среднюю задержку на пакет. Какая доля этой задержки связана с постановкой в очередь? 2.5. Предположим, что сеть имеет N доменов с M маршрутизаторами в каждом и к каждому маршрутизатору подключены K устройств. Предположим, что адреса не основаны на географической привязке, а назначаются устройствам случайным образом. Сколько записей будет в таблице маршрутизации каждого маршрутизатора, если используется одноуровневая маршрутизация? А если в сети используется двухуровневая схема маршрутизации? Теперь предположим, что адреса основаны на местоположении. Каков минимальный средний размер таблицы маршрутизации будет в каждом маршрутизаторе? 2.6. Рассмотрим маршрутизатор в магистральной сети интернета. Предположим, что маршрутизатор имеет 24 порта, каждый из которых подключен к каналу связи со скоростью 1 Гбит/с. Предположим, что каждый канал используется на 15 % своей пропускной способности. Средняя пропускная способность соединений – 200 Кбит/с. Сколько соединений проходит через маршрутизатор в каждый момент времени? Предположим, что соединения длятся в среднем 1 мин. Сколько новых соединений проходит в среднем через маршрутизатор в каждую секунду? 2.7. Мы хотим передать по сети файл размером 20 Кбайт от узла A к узлу F. Пакеты имеют длину 1 Кбайт (пренебрегая заголовком). Путь от узла A до узла F проходит через 5 каналов и 4 промежуточных узла. Каждый из каналов представляет собой 10-км оптическое волокно со скоростью 10 Мбит/с. Четыре промежуточных

2.7.Задачи  49 узла являются устройствами хранения и пересылки, и каждый промежуточный узел, прежде чем он сможет начать отправку по исходящему каналу, должен выполнить поиск в таблице маршрутизации в течение 50 с после получения пакета. Сколько времени потребуется для передачи по сети всего файла? 2.8. Предположим, что мы хотим передать файл размером K бит из узла A в узел C. Путь от узла A до узла C проходит через два канала и один промежуточный узел, B, который является устройством хранения и пересылки. Оба канала имеют скорость R бит/с. Пакеты содержат P бит данных и 6-байтовый заголовок. Каким должно быть значение P, чтобы минимизировать время, необходимое для передачи файла из A в C? Теперь предположим, что существует N промежуточных узлов, какое значение P минимизирует время передачи в этом случае? 2.9. Рассмотрим случай с сотовыми телефонами GSM. GSM работает на скорости 270,88 Кбит/с и использует спектр, охватывающий 200 КГц. Какое теоретическое отношение сигнал/шум, SNR (в децибелах), необходимо этим телефонам для работы? Обычно телефоны используют SNR 10 дБ. Используйте Примените теорему Шеннона для расчета теоретической пропускной способности канала при таком соотношении сигнал/шум. Как используется пропускная способность по сравнению с теоретической? 2.10. Коммутация пакетов эффективно использует ресурсы, пользуясь тем фактом, что только часть потенциальных отправителей активна в каждый момент времени. В этой задаче вы должны продемонстрировать этот факт математически. Предположим, что у нас есть один канал с пропускной способностью L бит/с и группа пользователей, которые во время работы генерируют данные со скоростью r бит/с. Вероятность того, что пользователь генерирует данные, равна p. a) Какое максимальное количество пользователей может быть поддержано с помощью коммутации каналов? Назовите это значение Mc. b) Теперь предположим, что мы используем коммутацию пакетов для поддержки группы из Mp пользователей. Выведите формулу (в терминах p, Mp, N, L и r) вероятности того, что более N пользователей генерируют данные. c) Подставьте некоторые числа. Пусть L = 1 Мбит/с, r = 64 Кбит/с и p = 0,1. Найдите значение Mc. Какова вероятность того, что при Mp = 2 * Mc занято более Mc пользователей? А при Mp = 4 * Mc?

50  Глава2.Принципы

2.11. Рассмотрим два последовательно соединенных канала, как показано на рис. 2.6. Канал 1 имеет скорость передачи данных R1 бит/с и задержку распространения T1 с, а канал 2 имеет скорость передачи R2 бит/с и задержку распространения T2 с. Предположим, что R1 < R2. Рассмотрим пакет размером (в битах) L = H + D, где H – размер заголовка (в битах), а D – размер данных (в битах). R1 Источник

Коммутатор

R2

T2

T1

Место назначения

Рис. 2.6. Рисунок к задаче 2.11

а) Предположим, что коммутатор выполняет хранение и пересылку пакетов, передаваемых от источника к месту назначения. Определите, сколько времени проходит от момента, когда первый бит пакета начнет передаваться от источника, и до того момента, когда последний бит пакета достигнет места назначения. Предположим, что на коммутаторе нет задержек обработки. b) Предположим, что коммутатор осуществляет сквозное переключение (cut­through switching). При сквозной коммутации перед передачей пакета в следующий канал коммутатор ожидает получения полного заголовка. Допустим, нет никаких задержек обработки между получением заголовка и передачей пакета по каналу 2. i. Поскольку R2 > R1, возможно, что во время сквозной коммутации каналу 2 придется ждать следующего бита пакета из канала 1, что приведет к возникновению разрыва. Найдите максимальное количество данных D, которое может быть отправлено в пакете, не столкнувшись с этой проблемой. ii. Теперь предположим, что размер данных D ниже порогового значения, рассчитанного выше. Сколько времени пройдет с момента начала передачи первого бита пакета до момента, когда последний бит пакета достигнет адресата? 2.12. Скажем, источник имеет файл размером S бит для передачи в пункт назначения. Допустим, вся передача между источником и получателем осуществляется по последовательности из L каналов с L – 1 промежуточными коммутаторами, как показано на рис. 2.7. Каждый из коммутаторов на этом пути выполняет хранение и пересылку, и каждый из них передает данные со скоростью R бит/с. Предположим, что задержка распространения по каналам прене-

2.8.Ссылки  51 брежимо мала и что пакеты не задерживаются в коммутаторах при коммутации или постановке в очередь. Источник

Коммутатор 1

Коммутатор L - 1

Место назначения

Канал L

Канал 1

Рис. 2.7. Рисунок к задаче 2.12

a) Предположим, что источник разбивает файл на N фрагментов размером D = S/N бит и перед передачей каждого из этих кусков в виде пакета прикрепляет к ним заголовок размером H. Таким образом, каждый пакет имеет размер P = (D + H) бит. Рассчитайте время T, которое проходит между началом передачи первого пакета от источника и временем, в течение которого последний пакет будет полностью получен в пункте назначения. b) Теперь, используя полученное выше выражение для T, определите оптимальное значение D, при котором T минимизируется. c) Что происходит с оптимальным D, полученным выше, когда: i. H ≈ 0? Почему? ii. H ≫ S? Почему?

2.8. Ссылки

Теория информации и пропускной способности каналов принадлежит Клоду Шеннону [92]. Занимательный учебник по теории очередей можно найти в [94]. Лемма Литтла доказана в [60]. Обсуждение двухуровневой маршрутизации, см. в [34]. Принцип сквозных соединений «точка–точка» (end-to-end) был подробно рассмотрен в [88]. Структура DNS объясняется в [72]. Многоуровневая структура протоколов интернета обсуждается в [21].

Глава

3 Ethernet

Ethernet – это технология, используемая для соединения до нескольких сотен компьютеров и устройств. Для соединения используются обычно медные или алюминиевые провода (кабели) длиной до 100 м или оптоволокно длиной до нескольких сотен километров. Скорость передачи данных по этим проводам обычно составляет 100 Мбит/с, но может достигать 1 Гбит/с или даже 10 Гбит/с1. Подавляющее большинство компьютеров в интернете подключено к сети Ethernet или, все чаще, к беспроводной сети Wi-Fi. О Wi-Fi мы поговорим в главе 4. Сначала рассмотрим типичную сеть Ethernet. Затем изучим историю Ethernet, объясним адресацию и структуру кадра. После краткого обсуждения физического уровня рассмотрим коммутируемый Ethernet. Затем обсудим Aloha и Ethernet на базе сетевого концентратора (хаба).

3.1. Типовая установка На рис. 3.1 показана типовая установка. Компьютеры подключены к хабу или коммутатору проводами или оптоволокном. Позже в этой главе мы поговорим о хабах и коммутаторах. Подключения к хабу (или концентратору) мы называем портами (та же терминология, что и для маршрутизаторов). Небольшой коммутатор или хаб имеет 4 порта; большой – 48 или более портов. Хаб сейчас используется реже из-за преимуществ коммутаторов. На рисунке также показано беспроводное расширение сети.

3.2. История Ethernet Ethernet начинался как проводная версия беспроводной сети, а именно сети Aloha. Интересно, что спустя два десятилетия была разработана беспроводная версия Ethernet, Wi-Fi. 1

По состоянию на 2021 год г. максимальная скорость передачи по сетям в тестовых условиях составляет 178 Тбит/сек. – Прим. ред.

3.2.ИсторияEthernet  53

10 Мбит/с - 1 Гбит/с

Хаб 11 Мбит/с - 7 Гбит/с

Коммутатор

100 Мбит/с или 1 Гбит/с

1 Гбит/с - 10 Гбит/с

Рис. 3.1. Типовая установка Ethernet

3.2.1. Сеть Aloha (Alohanet) Сеть Aloha2 была изобретена около 1970 года г. Норманом Абрамсоном и его сотрудниками. Он рассмотрел сценарий, в котором множество устройств, расположенных на разных Гавайских островах, хотели общаться с центральным компьютером в главном кампусе в Гонолулу. На рис. 3.2 показана сеть Aloha. Устройства передают пакеты на центральный узел связи, подключенный к центральному компьютеру на частоте  f1. Этот узел подтверждает получение пакета на частоте f2. Устройство делает вывод, что его пакет не доставлен в пункт назначения, если оно не получает подтверждения в течение установленного интервала времени. Процедура передачи производится следующим образом: если устройство не ожидает подтверждения ранее переданного пакета и имеет пакет для передачи, оно передает его немедленно. Если устройство не получает подтверждения в течение установленного интервала времени, оно повторно передает пакет через случайный интервал времени. Система использует две частоты, чтобы устройство могло получать подтверждения независимо от каких-либо передач. Поскольку приемник перегружен мощным сигналом, который передает устройство, он не может определить, передает ли в то же самое время другое устройство. Следовательно, устройство передает полный пакет, даже если этот пакет столкнется с пакетом из другой передачи, как показано на временной диаграмме.

..

2

Интересно, что свое название сеть получила по распространенному гавайскому приветствию «Алоха!» – пожеланию добра и мира. Концептуальные наработки и решения, реализованные в ходе этого проекта, во многом легли в основу таких технологий и протоколов, как Ethernet, Wi-Fi и сотовые сети. – Прим. ред.

54  Глава3.Ethernet

f1

f1 f2 A

B

f2

…..

K

C A

B C

K

K

Время

Рис. 3.2. Сеть Aloha и тайминг передач

Основным нововведением сети Aloha является рандомизированный (распределенный случайным образом) множественный доступ. При использовании этого механизма передачи пакетов не планируются заранее. Вместо этого устройства разрешают свои конфликты с помощью распределенного рандомизированного механизма. Механизм сети Aloha заключается в следующем: • если подтверждение не получено, немедленно передавать; • если подтверждения нет, повторить после задержки, определенной случайным образом.

3.2.2. Кабельная сеть Ethernet В период с 1973 по 1976 год г. Роберт Меткалф и его коллеги разработали проводную версию сети Aloha, показанную на рис. 3.3. Эта версия стала известна как Ethernet. Все устройства используют общий кабель. Они используют протокол рандомизированного множественного доступа, аналогичный сети Aloha, но с двумя ключевыми отличиями. Прежде чем начать передачу, устройство ждет освобождения канала, прослушивает его во время передачи и прерывает передачу, как только обнаруживает коллизию. Эти механизмы определения несущей и обнаружения столкновений сокращают время, теряемое из-за коллизий. Таким образом, механизм этой сети заключается в следующем: • (ожидание) для нового пакета время ожидания установлено равным 0. Для повторной передачи время ожидания устанавливается случайным образом в соответствии со схемой отсрочки передачи, описанной ниже; • (передача) по истечении времени ожидания передавать, если канал простаивает;

3.2.ИсторияEthernet  55 • (возникновение конфликтов) если обнаружена коллизия, прервать передачу и перейти к ожиданию для повторной передачи. В противном случае идти к ожиданию для передачи нового пакета.

A

B

C

K

K

C A

A

B

C

K

C

Время

Рис. 3.3. Кабельная сеть Ethernet

Станции выбирают время ожидания (также называемое интервал повтора запросов) случайным образом, вычисляя его как произведение X на величину интервала одного временного интервала (тайм-слота). Тайм-слот равен времени передачи 512 бит для 10 и 100 Мбит/с Ethernet и 4096 бит для гигабитного (Gigabit Ethernet). Станция равномерно выбирает X из интервала {1,…,(2n – 1)}, где n = min{m,10}, m – это количество коллизий, с которыми столкнулась станция при передаче одного и того же пакета. Когда m достигает 16, станция сдается и объявляет об ошибке. Эта схема называется усеченным двоичным экспоненциальным откладыванием (truncated binary exponential backoff). Таким образом, когда станция пытается передать сигнал в первый раз, она делает это как раз тогда, когда канал освобождается (точнее, она должна подождать небольшой заданный межкадровый промежуток). После одного столкновения станция выбирает X равным 0 или 1 с вероятностью 0,5 для каждой возможности. Затем она ждет в течение времени X × 512 бит (при скорости 10 или 100 Мбит/с), пока канал не освободится. Когда по истечении этого времени ожидания обнаруживается, что канал свободен, станция начинает передачу и все время прослушивает канал. Если она обнаруживает столкновение, то прерывает передачу. Столкновение может произойти, если другая станция выберет такое же значение для X. Оказывается, что время передачи 512 бит больше, чем 2PROP3, поэтому если станции выбирают разные значения для X, то станцияс наименьшим значением передает, а остальные слушают, прежде чем пытаться начать передачу. Основная идея этой процедуры заключается в том, что после многократных столкновений время ожидания становится более «случайным», что снижает вероятность повторных коллизий. Действительно, если две станции ждут, когда канал будет свободен, чтобы передать пакет в пер3

PROP – это время распространения электрического сигнала по каналу. – Прим. перев.

56  Глава3.Ethernet

вый раз, то вероятность того, что они обе выберут одно и то же значение X из {0, 1}, сначала будет 1, затем – 1/2. В третий раз они выбирают X из {0, 1, 2, 3}, так что вероятность того, что они снова столкнутся, равна 1/4. В четвертый раз вероятность равна только 1/8. Таким образом, вероятность того, что отправленные пакеты столкнутся k раз, составляет (1/2) × (1/4) × ... × (1/ 2k–1) для k ≤ 11, и она очень быстро уменьшается. Эта схема имеет нежелательный (возможно, непреднамеренный) побочный эффект, это захват, или победитель забирает все. Этот эффект заключается в том, что станция, которой не повезло из-за случайного конфликта трафика, обычно вынуждена продолжать ждать, пока другие станции, которым повезло, передают сигнал. Чтобы увидеть это, рассмотрим две станции A и B. Предположим, что они обе имеют пакеты для передачи. Во время первой попытки они сталкиваются. Скажем, A  выбирает X = 0, а B – X = 1. Тогда станция A получает возможность передать пакет, в то время как B ждет один временной интервал. В конце передачи A готова передавать новый пакет, и B готова передать свой пакет, так как, пока она находилась в ожидании, счетчик ожидания изменил значение 1 на 0. Обе станции снова сталкиваются. Для нового пакета A это столкновение было первым, поэтому станция выбирает X из {0, 1}. Однако это столкновение было вторым для пакета B, поэтому станция выбирает X из {0, 1, 2, 3}. И тогда есть вероятность, что А выберет меньшее значение и получит возможность снова передавать. Эта ситуация может повторяться несколько раз. Эта досадная проблема так и не была устранена, потому что Ethernet перешел на коммутируемую версию.

3.2.3. Хаб Ethernet В середине 1980-х гг. Рок, Беннетт и Талер разработали Ethernet на основе сетевого концентратора, хаба (тогда он назывался StarLAN). В сети, показанной на рис. 3.4, устройства подключены к хабу с помощью кабеля «точка–точка». Когда пакет поступает в концентратор на входящий порт, он передает его во все остальные порты. Если два пакета или более приходят в концентратор одновременно, он посылает сигнал во все свои выходные порты, указывающий на то, что обнаружил конфликт пакетов. (Кабели являются двунаправленными.) Устройства используют тот же механизм, что и в кабельном Ethernet. Хаб

P P

P A

B

C

cd K

Хаб повторяет пакет Р во все другие порты

Хаб

P

P A

cd B

cd C

P' cd K

Хаб сигнализирует (cd) об обнаружении коллизии всем портам

Рис. 3.4. Ethernet на базе сетевого концентратора

3.4.Кадр  57

3.2.4. Коммутируемый Ethernet В 1989 г. компания Kalpana представила коммутатор Ethernet. Как показано на рис. 3.5, коммутатор отправляет пакет только в выходной порт по направлению к месту назначения пакета. Основное преимущество коммутатора заключается в том, что несколько пакетов могут проходить через него одновременно. Более того, если два пакета поступают в коммутатор синхронно и направляются в один и тот же выходной порт, коммутатор может хранить пакеты до тех пор, пока не сможет их передать. Таким образом, он устраняет конфликты пакетов трафика. Коммутатор

P

P' P

P' A

B

C

K

Рис. 3.5. Коммутируемый Ethernet

3.3. Адреса Каждое компьютерное Ethernet-соединение идентифицируется уникальной 48-битной строкой, называемой Ethernet­адресом или MAC­ад­ ресом (Media Access Control). Этот адрес является лишь идентификатором, поскольку он не определяет, где находится устройство. Вы можете переехать из Беркли в Бостон со своим ноутбуком, его Ethernet-адрес не изменится: он жестко встроен в компьютер. Поскольку адреса не зависят от местоположения, коммутаторы Ethernet ведут таблицы с адресами устройств, которые могут быть доступны через каждый из портов. Если адрес содержит 48 бит, это широковещательный адрес (broadcast). Предполагается, что устройство должно принимать широковещательные пакеты. Кроме того, устройства могут подписываться на многоад­ ресную групповую (multicast) рассылку.

3.4. Кадр Пакеты Ethernet имеют формат кадра (фрейма), показанный на рис. 3.6. Это формат кадра, наиболее часто используемый на практике, Ethernet II frame format. 7

1

6

6

2

PRE

SFD

DA

SA

Тип

46 - 1500 Данные

Рис. 3.6. Кадр Ethernet

4 Байты CRC

58  Глава3.Ethernet

Формат кадра имеет следующие поля. • PRE (Preamble). 7 байт, преамбула. Cостоит из чередующихся единиц и нулей. Она используется для синхронизации приемника. • SFD (Start of frame delimiter). 1 байт, ограничитель начального кадра. Этот байт равен 10101011, и он указывает, что следующий бит является началом пакета. • DA (Destination Address). 6 байт, адрес назначения. Это MAC-адрес устройства назначения. • SA (Source Address). 6 байт, адрес источника. Это MAC-адрес устройства источника. • Type (EtherType). 2 байта. Идентифицирует L3-протокол (к примеру, 0x0800 – Ipv4, 0x86DD – IPv6, 0x8100 указывает, что фрейм тегирован заголовком 802.1q, и т. д.). Значение в этом поле всегда больше или равно 1536, и оно задает тип полезной нагрузки. Пакет указывает свою собственную длину в поле внутри заголовка  IP. Отметим, что в альтернативном формате кадра Ethernet, заданном стандартом IEEE 802.3, это поле используется для указания длины полезной нагрузки, позволяющей использовать любой ее тип. Однако, если используется формат кадра IEEE 802.3 и поскольку максимальная длина полезной нагрузки, поддерживаемая Ethernet, составляет 1500 байт, это поле всегда будет иметь значение меньше или равно 1500. Это наблюдение позволяет совместить форматы кадров Ethernet II и IEEE 802.3. • СRС (Сyclic redundancy check). 4 байта – последовательность проверки кадра. Используется для обнаружения повреждения кадра.

3.5. Физический уровень Существует несколько версий физического уровня Ethernet. Название версии имеет вид: [скорость][модуляция][носитель или расстояние]. Вот наиболее распространенные примеры: • 10Base5 (10 Мбит/с, основная полоса частот, коаксиальный, 500 м); • 10Base-T (10 Мбит/с, основная полоса частот, витая пара); • 100Base-TX (100 Мбит/с, основная полоса частот, двухпроводной кабель 5-й категории);

Powered by TCPDF (www.tcpdf.org)

3.6.КоммутируемыйEthernet  59 • 100Base-FX (100 Мбит/с, основная полоса частот, оптоволокно); • 1000Base-CX для двухжильного сбалансированного медного кабеля; • 1000Base-LX для длинноволновой оптической передачи (одномод – 5 км, многомод – 550 м); • 1000Base-SX для коротковолновой оптической передачи, 550 м.

3.6. Коммутируемый Ethernet 3.6.1. Пример На рис. 3.7 показана сеть с тремя коммутаторами и десятью устройствами. Каждое устройство имеет уникальный адрес. Обозначим эти адреса A, B, …, J. A A: 1 B: 2 C: 3 D, …, J: 4

B 1

C

D

2 3

E 1

4

F

A, B, C,: 4 D: 1 E: 2 F: 3 G, …, J: 5

2 3

4

5 1

2 G

3 H

4

5 I

J

A, …, F: 1 G: 2 H: 3 I: 4 J: 5

Рис. 3.7. Пример сети коммутируемого Ethernet

3.6.2. Обучение (learning) Когда компьютер с Ethernet-адресом x отправляет пакет компьютеру с Ethernet-адресом y, он посылает пакет [y|x|data] в коммутатор. Получив пакет, коммутатор считывает адрес назначения y, просматривает таблицу, называемую таблицей продвижения, чтобы найти порт, к которому подключен y, и отправляет пакет по этим проводам. Коммутатор обновляет свою таблицу продвижения следующим образом. Когда он получает пакет с адресом назначения, которого нет в таблице, коммутатор отправляет копию пакета во все порты, кроме порта, на который пришел пакет. Каждый раз при получении пакета комму-

60  Глава3.Ethernet

татор добавляет соответствующий адрес источника к записи в таблице, относящейся к порту, на который пришел пакет. Таким образом, если пакет [y|x|data] приходит в коммутатор через порт 3, коммутатор добавляет запись x = 3 в свою таблицу. Чтобы выбрать уникальный путь для пакетов в сети, коммутаторы Ethernet используют протокол STP (Spanning Tree Protocol), канальный протокол. Основной задачей STP является устранение петель в топологии произвольной сети Ethernet, в которой есть один или более сетевых мостов, как описано ниже. Администратор сети может блокировать каналы, по которым могут перемещаться некоторые пакеты, назначив порты коммутатора виртуальным локальным сетям (VLAN). Виртуальная локальная сеть, или VLAN, является идентификатором для подмножества каналов сети Ethernet. При использовании VLAN пакет Ethernet также передает идентификатор VLAN для этого пакета. Источник пакета указывает эту виртуальную локальную сеть. Каждый порт коммутатора принадлежит к набору VLAN, который конфигурирует администратор сети. Пакеты ограничиваются каналами своей VLAN. Преимущество VLAN заключается в том, что они разделяют сеть Ethernet на отдельные виртуальные сети, как будто эти сети не имеют общих коммутаторов и каналов. Такое разделение полезно по соображениям безопасности.

3.6.3. Протокол spanning tree Для надежности в сети обычно организуется несколько путей между двумя устройствами. Однако при наличии избыточных путей коммутаторы могут образовывать петли и создавать множество копий пакетов. Чтобы избежать этих проблем, коммутаторы используют протокол spanning tree, который выбирает единственный путь между устройствами. Коммутаторы находят дерево кратчайших путей с корнем в коммутаторе, имеющем наименьший идентификационный номер (ID). ID коммутатора – это наименьший из Ethernet-адресов его интерфейсов. Важно, чтобы эти идентификаторы были разными. Чтобы разорвать связи, коммутатор выбирает среди интерфейсов с одинаковым расстоянием до корня следующий хоп с наименьшим идентификатором. Протокол работает следующим образом (см. рис. 3.8). Коммутаторы посылают пакеты с информацией [myID|CurrentRootID|Distancanceto­ CurrentRootRoot]. Коммутатор передает пакеты, чей Current Root ID является наименьшим из всех, которые коммутатор увидел до сих пор, и добавляет единицу к значению расстояния до текущего корня. В конце концов коммутаторы пересылают пакеты только с коммута-

3.6.КоммутируемыйEthernet  61 тора с наименьшим идентификатором и расстоянием до этого коммутатора.

4: [2|1|1]

B2

B1

3: [1|1|0]

1: [3|3|0] 5: [3|1|2]

B3

B6 6: [6|1|1]

B4

B5

2: [5|3|1]

Рис. 3.8. Пример работы протокола spanning tree

На рисунке показано, что сначала коммутатор B3 посылает пакет [3|3|0], означающий «Я – 3, я думаю, что корень – 3, и мое расстояние до 3 – это 0». Первоначально коммутаторы не знают сети. Поэтому B3 не знает, что существует другой коммутатор с меньшим ID. На шаге 2 B5, который видел первый пакет, посылает [5|3|1], потому что он думает, что корень – 3 и что он находится на расстоянии 1 одного шага от 3. Передачи разных пакетов не синхронизированы. Мы предполагаем, что это происходит в таком порядке, как на рисунке. Наконец, B1 посылает пакет [1|1|0], который пересылают другие коммутаторы. Чтобы увидеть, как разрываются петли, посмотрим, что происходит, когда B3 и B4 в конечном итоге передают пакет из B1. На шаге 5, как показано на рисунке, B3 посылает [3|1|2] через свой нижний порт. На более позднем шаге, не показанном на рисунке, B4 посылает [4|1|2]. Коммутатор B5 должен выбрать между этими двумя путями для связи с B1: либо через B3, либо через B4, оба в двух шагах от B1. Петля разрывается при выборе коммутатора с меньшим ID. В данном примере это B3. Результат работы протокола spanning tree показан на рис. 3.8, где активные каналы обозначены сплошными линиями. Подводя итог, можно сказать, что протокол spanning tree позволяет избежать петель путем выбора единственного пути в сети. Некоторые коммутаторы, установленные для резервирования, отключаются протоколом. Если активный коммутатор или канал выходит из строя, протокол spanning tree автоматически выбирает новое дерево. Обратите внимание, что, несмотря на то что дерево состоит из кратчайших путей к корню, результирующая маршрутизация может быть далека от оптимальной. Чтобы увидеть это, представьте сеть в виде

62  Глава3.Ethernet

кольца с 2N + 1 коммутаторами. Два соседних коммутатора, которые находятся на расстоянии N от коммутатора с наименьшим ID, обмениваются данными по самому длинному пути.

3.7. Aloha В этом разделе мы исследуем характеристики сети Aloha. Начнем с версии протокола с временными интервалами, тайм-слотами, а затем изучим версию без тайм-слотов.

3.7.1. Версия с тайм-слотами Рассмотрим версию протокола Aloha с тайм-слотами, слотовую Aloha. Время делится на слоты, продолжительность которых достаточна для отправки одного пакета. Предположим, что существует n станций и что они передают данные независимо друг от друга с вероятностью p в каждом тайм-слоте. Вероятность того, что только одна станция передает в данном тайм-слоте, равна (см. раздел 3.10): R(p) := np(1 – p)n–1. Значение p, которое максимизирует эту вероятность, можно определить, найдя производную по p от R(p) и приравняв ее к нулю. То есть d 0 = –––– R(p) = n(1 – р)n–1 – n(n – 1) р(1 – p)n–2. dp Решая это уравнение, мы находим, что наилучшее значение p равно 1 p = –––. n Этот результат подтверждает интуитивное понимание, что значение p должно уменьшаться при увеличении n. Подставив p =1/n в выражение для R(p), найдем, что 1 1 n–1 1 R = �–– � = �1 – –– � ≈ ––– ≈ 0,37. n n e

Последнее приближение вытекает из того факта, что a n R = �1 – –– � ≈ ea для n ≫ 1. n

Качество аппроксимации выражения (3.1) показано на рис. 3.9.

(3.1)

3.9.ХабEthernet  63 0.4

1/e ≈ 0.37

0.3

(1 - 1/n)n 0.2 0.1 0

1

3

5

7

9 11 13 15 17 19

n

Рис. 3.9. Аппроксимации выражения (3.1)

Таким образом, если станции могут оптимально настроить вероятность p передач, протокол будет эффективным не более 37 % времени. То есть 63 % тайм-слотов либо простаивают, либо тратятся впустую изза столкновений передач.

3.8. Aloha без слотов До сих пор мы предполагали, что все станции Aloha синхронизированы. Что, если это не так и они могут передавать сигнал в произвольное время? Такая версия Aloha называется неслотовой, или чистой. Интересным результатом является то, что в этом случае станции могут использовать только часть 1/2e ≈ 18 % канала. Чтобы смоделировать эту ситуацию, рассмотрим очень маленькие тайм-слоты длительностью τ ≪1. Время передачи одного пакета примем за единицу времени. Предположим, что станции начинают передавать независимо друг от друга с вероятностью p в каждом малом тайм-слоте и затем продолжают передачу в течение единицы времени. Ситуация показана на рис. 3.2. В приложении дан анализ, который показывает, что при оптимизации по p можно получить эффективность сети не более 18 %.

3.9. Хаб Ethernet Изучение Ethernet на базе сетевого концентратора (хаба) немного сложно. Первым шагом является оценка максимального времени T, необходимого для обнаружения коллизии. Это приводит к определенной процедуре рандомизации, что влечет за собой потерю времени на ожидание, кратное T. Исходя из этого понимания можно рассчитать эффективность.

3.9.1. Максимальное время обнаружения коллизии Представьте, что два узла A и B пытаются передать сигнал примерно в одно и то же время. Предположим, что A начинает передачу в момент

64  Глава3.Ethernet

времени 0 (cм. рис. 3.10). Сигнал от A проходит по проводам к хабу, который повторяет его. Затем сигнал продолжает двигаться в направлении В. Пусть PROP – это максимальное время распространения сигнала между двумя устройствами в этой сети. К моменту времени PROP сигнал от A достигнет B. Теперь представьте, что B начал передачу незадолго до времени PROP. Он думал, что система свободна и он может передать сигнал. Сигнал от B достигнет A через время, равное PROP, т. е. незадолго до времени 2PROP. Немного позже узел A заметит столкновение. Узел B обнаружит столкновение примерно в момент времени PROP, сразу после того, как начнет передачу. Чтобы дать шанс A выявить столкновение, B не останавливает передачу в момент обнаружения коллизии, поскольку это может привести к тому, что B пошлет настолько короткий сигнал, что и A может его проигнорировать. Вместо этого B посылает сигнал jam затор»), достаточно длинный, чтобы A заметил его. A 0

Хаб Пакет из А

PROP 2PROP

B 0

PROP

Пакет из В

Время

Рис. 3.10. Максимальное время обнаружения коллизии узлом A составляет 2PROP

Узлы ждут время, кратное T = 2PROP, выбранное случайным образом, прежде чем начать передачу, и передают, если по окончании времени ожидания система все еще простаивает. Дело в том, что если они выбирают разную кратность T после того, как система в последний раз простаивала, то они не столкнутся. Чтобы проанализировать эффективность этой системы, предположим, что n станций передают независимо друг от друга. Вероятность передачи в каждом тайм-слоте длительностью T равна p. Мы знаем, что вероятность того, что только одна станция передает в течение тайм-слота, составляет не более 1/e. Таким образом, как показано в приложении, среднее время до первой успешной передачи составляет e тайм-слотов длительностью T. После этого станция успешно передает трафик в течение некоторого среднего времени, равного TRANS, определяемого как среднее время передачи пакета.

3.10.Приложение:теориявероятности  65 Таким образом, каждая передача длительностью TRANS тратит на ожидания время (e – 1) × T = 2(e – 1) × PROP. Часть времени, в течение которого станции успешно передают сигнал, составляет TRANS 1 η = ––––––––––––––––––––––––––– ≈ –––––––––––, (2(e – 1)PROP + TRANS) (1 + 3,4A) где A = PROP/TRANS. Отметим, что обширное моделирование Ethernet показывает, что η ≈ 1/(1 + 5A). Разница может быть связана с тем, что схема обратного выключения, используемая на практике, не достигает идеальной рандомизации, принятой в анализе.

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

3.10.1. Вероятность Представьте себе эксперимент, который имеет N равновероятных исходов. Например, бросают сбалансированный кубик, одна из шести граней которого с равной вероятностью выпадет при броске. Скажем, что событие A происходит, когда полученный результат есть M из этих N равновероятных результатов. Тогда мы можем сказать, что вероятность события A равна M/N, и пишем P(A) = M/N. Например, при бросании кубика если событие А состоит в том, что выпадет одна из граней {2, 3, 4}, то P(A) = 3/6.

3.10.2. Аддитивность эксклюзивных событий Для этого примера предположим, что событие B состоит в том, что выпадет одна из граней {1, 6}. Обратите внимание, что события A и B являются эксклюзивными, несовместными: они не могут произойти одновременно. Тогда «A или B» – это новое событие, которое соответствует тому, что выпадет грань из множества {1, 2, 3, 4, 6}, поэтому P(A или B) = 5/6. Заметим, что P(A или B) = P(A) + P(B). В общем случае несложно заметить, что если A и B – несовместные события, то P(A или B) = P(A) + P(B). Эта идея проиллюстрирована в левой части рис. 3.11. Более того, это свойство распространяется на любое конечное число событий, которые являются попарно несовместными. Таким образом, если A1, …, An попарно несовместные, то P(A1 или A2 … или An) = P(A1) + P(A2) +…+ P(An).

66  Глава3.Ethernet

Действительно, если событию Am соответствует Mm исходов для m = 1,…, n и если множества исходов этих различных событий не имеют общего элемента, то событию A1 или A2 … или An соответствует M1 +…+ Mn исходов и M M (M +…+ M ) P(A1 или A2 … или An) = ––––1–––––––––n– = ––––1 +…+ –––n– N N M = P(A1) + P(A2) +…+ P(An).

1 2

A

12

M2

N2

M1 B

N1 N1

Рис. 3.11. Аддитивность эксклюзивных событий (слева) и произведение независимых событий (справа)

3.10.3. Независимые события Теперь рассмотрим два эксперимента. В первом из них N1 равновероятных исходов, а во втором – N2. Событие A состоит в том, что в первом эксперименте есть исход, который находится в множестве M1 из N1 исходов. Событие B состоит в том, что во втором эксперименте есть результат, входящий в набор M2 из N2 исходов. Предположим также, что оба эксперимента проводятся независимо, так что все N1 × N2 пар исходов обоих экспериментов равновероятны. Тогда мы находим, что событие «A и B» соответствует M1 × M2 возможным исходам из N1 × N2. Поэтому M M (M × M2) P(A и B) = ––––1–––––– – = –––1– × –––2– = P(A)P(B). N1 × N2 N1 N2 Таким образом, если A и B независимы, то вероятность того, что они оба произойдут, равна произведению их вероятностей (см. правую часть рис. 3.11). Например, допустим, мы бросаем две сбалансированные игральные кости. Вероятность того, что на первой выпадет {2, 3, 4}, а на второй – {3, 6}, равна (3/6) × (2/6).

3.10.Приложение:теориявероятности  67 Это свойство можно обобщить на любое конечное число таких независимых экспериментов. Например, допустим, что кубик бросают три раза. Вероятность того, что три результата будут следующими из {1, 3}, {2, 4, 5} и {1, 3, 5}, соответственно, равна (2/6) × (3/6) × (3/6).

3.10.4. Слотовая Aloha Вспомним настройку Aloha с тайм-слотами. Имеется n станций, которые передают независимо друг от друга с вероятностью p в каждом временном слоте. Мы утверждаем, что вероятность того, что событие А будет передано ровно одной станцией, равна P(A) = np(1 – p)n–1.

(3.2)

Чтобы убедиться в этом, для m ∈ {1, 2, …, n} определим Am как событие, когда станция m передает, а остальные нет. Заметим, что A = A1 или A2 … или An

и события A1, … , An несовместны. Следовательно, P(A) = P(A1) +P(A2) +…+ P(An).

(3.3)

Теперь мы утверждаем, что P(Av) = p(1 – p)n–1, для m = 1, …, n.

(3.4)

Действительно, станции передают независимо друг от друга. Вероятность того, что станция m передает, а другие n – 1 станций нет, равна произведению вероятностей этих событий, т. е. произведению p и 1 – p и … и 1 – p, что равно p(1 – p)n–1. Совмещая выражения (3.4) и (3.3), получаем (3.2).

3.10.5. Неслотовая Aloha Напомним, что, как мы считаем, в чистой Aloha станции начинают передачу независимо друг от друга с вероятностью p в очень небольших тайм-слотах длительностью τ ≪ 1. Передача пакета длится одну единицу времени, т. е. 1/τ тайм-слота. При очень малых значениях τ эта модель отражает идею о том, что станции могут начать передачу в любое время. Рассмотрим одну станцию, скажем станцию 1, которая передает пакет P, как показано на рис. 3.12. Передачи, которые могли бы столкнуться с P, должны начинаться в промежутке времени, равному 2/τ – 1 тайм-слотов: 1/τ – 1 тайм-слотов, которые предшествуют началу передачи пакета P, и 1/τ тайм-слотов во время передачи пакета P. Действи-

68  Глава3.Ethernet

тельно, любая станция, которая начнет передачу во время этих 2/τ – 1 тайм-слотов, столкнется с P. Соответственно, вероятность S(p) того, что станция 1 начнет передачу в данном малом тайм-слоте и будет успешной, является вероятностью того, что в этом малом промежутке времени из 2/τ – 1 тайм-слотов никакая другая станция, кроме станции 1, не начнет передачу. Эта вероятность равна S(p) = p(1 – p)(n–1)(2/τ–1).

Длительность 1 = 1/τ тайм-слотов Пакет P (1/τ - 1) тайм-слотов

Начало передач, которые столкнутся с пакетом P

τ

Рис. 3.12. Начала передач, которые столкнутся с пакетом P, занимают 2/τ – 1 тайм-слотов

В этом выражении первый коэффициент p – это вероятность того, что станция 1 начнет передачу в конкретном временном слоте, (1 – p) в степени (n – 1)(2/τ – 1)) – это вероятность того, что другие n – 1 станций, которые могли бы конфликтовать с P, не передают в каждом из 2/τ – 1 тайм-слотов. Среднее число передач в единицу времени равно nS(p)/τ, поскольку в единицу времени есть 1/τ тайм-слотов и n станций, которые могут добиться успеха. Значение p, которое максимизирует вероятность S(p), находим, приравнивая к нулю производную S'(p) от S(p) по p. То есть, при 2/τ – 1 = K, d 0 = ––– S(p) = (1 – р)(n–1)K – (n – 1)Kр(1 – p)(n–1)K–1. dp Это дает p* = [(n – 1)K + 1]–1. В результате коэффициент успеха составляет 1 (K + 1) (K + 1) 1 1 (n–1)K –– nS(p*) = ––––––– nS(p*) = ––––––– n–––––––––––– �1 – ––––––––––––– � . τ 2 2 (n – 1)K + 1 (n – 1)K + 1

3.10.Приложение:теориявероятности  69 Если M := (n – 1)K ≈ n(K + 1) ≈ (n – 1)K + 1, мы находим, что коэффициент успеха приблизительно равен 1 1 M 1 –– �1 – ––– � ≈ ––– ≈ 18 %. 2 M 2e

3.10.6. Ожидание успеха

Рассмотрим следующий эксперимент. Вы многократно подбрасываете монету. При каждом подбрасывании вероятность того, что выпадет орел, равна p. Сколько раз в среднем вам придется подбросить монету, пока впервые выпадет орел? Чтобы ответить на этот вопрос, давайте рассмотрим длинную последовательность подбрасываний монеты. Предположим, что в среднем перед выпадением орла N – 1 раз выпадет решка. Таким образом, из N подбрасываний монеты в среднем один раз выпадает орел. Значит, доля орлов равна 1/N. Но мы знаем, что эта доля равна p. Следовательно, p = 1/N или N = 1/p. Другой пример: бросают кубик в среднем шесть раз, пока впервые не выпадет 4. Аналогично если вероятность выигрыша в калифорнийской лотерее составляет один к миллиону, то до первого выигрыша нужно сыграть в среднем один миллион раз. Играя раз в неделю, можно ждать выигрыша около девятнадцати тысяч лет.

3.10.7. Хаб Ethernet Как мы говорили в разделе о хабе Ethernet, хабы ожидают случайное время, кратное T = 2PROP, до следующей попытки передачи. В упрощенной модели можно считать, что вероятность того, что одна станция передаст сигнал в данном тайм-слоте длительностью 2PROP, приблизительно равна 1/e. Таким образом, среднее время до передачи сигнала одной из станций, составляет e тайм-слотов. Из этого среднего времени все тайм-слоты, кроме последнего, тратятся впустую. То есть хабы тратят в среднем (e – 1) тайм-слотов длительностью 2PROP при каждой успешной передаче. Таким образом, для каждой передачи длительностью TRANS впустую тратится время, равное (e – 1) × 2PROP ≈ 3,4PROP. Следовательно, доля времени, в течение которого сеть фактически используется для успешной передачи пакетов, равна TRANS, деленная на TRANS + 3,4PROP. Таким образом, эффективность хаб Ethernet составляет TRANS –––––––––––––––––––––. TRANS + 3,4PROP

70  Глава3.Ethernet

3.11. Резюме Ethernet – широко используемая сетевая технология, поскольку она недорогая и быстрая. В этой главе рассматриваются основные особенности этой технологии. • Исторически сложилось так, что первой сетью множественного доступа, в которой узлы совместно используют среду передачи, была сеть Aloha. Затем последовала кабельная сеть множественного доступа, затем далее – версия с топологией «звезда», где использовался концентратор (хаб), который затем был заменен на коммутатор. • Каждое подключенное к Ethernet устройство имеет уникальный 48-разрядный адрес. • Существует несколько версий физического уровня Ethernet со скоростью от 10 Мбит/с до 10 Гбит/с. • Коммутатор Ethernet узнает список устройств, подключенных к каждому порту, из адресов источника пакетов. Коммутаторы запускают протокол spanning tree, чтобы избежать петель. • Эффективность слотовой Aloha составляет не более 37 %, а эффективность чистого чистой Aloha – не более 18  %. Эффективность Ethernet на базе сетевого концентратора уменьшается с увеличением скорости передачи и возрастает с увеличением средней длины пакета. • В приложении рассматриваются основные свойства вероятностей: аддитивность несовместных событий и произведение вероятностей независимых событий. Эти свойства применяются для анализа эффективности простых протоколов MAC.

3.12. Задачи 3.1.

3.2.

Мы видели несколько расчетов, показывающих, что эффективность схемы случайного доступа в Ethernet значительно ниже 100 %. Предположим, мы знаем, что в сети Ethernet имеется ровно N узлов. Вот стратегия: разделим время на N слотов и заставим 1-й узел использовать 1-й слот, 2-й узел – 2-й слот и т. д. (это называется мультиплексированием с разделением времени). Таким образом, мы можем достичь 100 % эффективности и никогда не будет никаких коллизий!!! В чем же здесь проблема? Рассмотрим MAC-протокол со случайным доступом типа слотовой Aloha. Имеется N узлов, совместно использующих носитель, и время разделено на слоты. Каждый пакет занимает один слот.

3.12.Задачи  71 Если у узла есть пакет для отправки, он всегда пытается отправить его с заданной вероятностью. Передача успешна, если только один узел пытается получить доступ к носителю, а все остальные узлы молчат. a) Предположим, что мы хотим предоставлять дифференцированные услуги этим узлам. Мы хотим, чтобы разные узлы получили разную долю медиа. Выбранная нами схема работает следующим образом: если узел i имеет пакет для отправки, он попытается отправить пакет с вероятностью pi. Предположим, что каждый узел имеет пакет для отправки. В такой ситуации, действительно ли получат узлы долю носителя в зависимости от их вероятности доступа? b) Предположим, что имеется 5 узлов и соответствующие вероятности составляют p1 = 0,1; p2 = 0,1; p3 = 0,2; p4 = 0,2 и p5 = 0,3. Каковы в среднем вероятности того, что каждый узел сможет успешно передать сигнал в данный временной интервал? c) Теперь предположим, что узлы не всегда имеют пакет для отправки. Фактически доля временных интервалов, когда узел имеет пакет для отправки (назовем его временем занятости  bi), такая же, как его вероятность доступа, т. е. bi = pi. Для простоты мы не рассматриваем никаких очередей или хранение пакетов, а только то, что узел i имеет пакет для отправки в bi слотов. В такой ситуации находится ли доля каждого узла в правильной пропорции к его вероятности доступа или времени занятости? 3.3.

В последние годы несколько сетевых компаний выступает за использование Ethernet (и VLAN) для сетей, выходящих далеко за пределы «локальной» области. По их мнению, Ethernet как технология может использоваться для гораздо более обширных территорий, таких как городские сети (Metro Ethernet) или даже сети, объединяющие несколько городов. Назовите две замечательные особенности Ethernet, которые все еще будут применимы в более широкой области. Также предложите две другие характеристики, которые не будут хорошо укладываться в схему и вызовут проблемы в таких архитектурах.

3.4.

Рассмотрим конфигурацию коммерческого Ethernet 10 Мбит/с с одним хабом (т. е. все конечные станции находятся в одном домене коллизий). a) Найдите эффективность Ethernet при передаче пакетов размером 512 байт (включая Ethernet overhead4), предполагая, что

4

Ethernet overhead – служебные данные, накладные расходы протокола Ethernet. – Прим. перев.

72  Глава3.Ethernet

3.5.

3.6.

задержка распространения между общающимися конечными станциями всегда составляет 25,6 мкс и что существует много пар конечных станций, пытающихся установить связь. b) Помните, что максимальная эффективность слотовой Aloha равна 1/e. Найдите пороговое значение размера кадра (включая Ethernet overhead), чтобы Ethernet был эффективнее слотовой Aloha, если фиксированный размер кадра больше этого порога. Объясните, почему Ethernet становится менее эффективным, когда размер кадра становится меньше. Стандарты Ethernet требуют минимального размера кадра в 512  бит, чтобы гарантировать, что узел может обнаружить любую возможную коллизию во время передачи. Это соответствует количеству битов, которые могут быть переданы со скоростью 10 Мбит/с за время RTT (Round trip transmission)5. Требуется только одна задержка, для того чтобы первый бит кадра Ethernet преодолел всю длину канала связи, и за это время будет передано 256 бит. Почему же тогда необходимо, чтобы минимальный размер кадра составлял 512 бит, а не 256? Рассмотрите корпоративный Ethernet, показанный на рис. 3.13. a) Определите, какие связи деактивируются после выполнения алгоритма spanning tree, и обозначьте их на диаграмме, поставив маленький Х на деактивированных связях. b) Недовольный сотрудник хочет нарушить работу сети, поэтому планирует отключить от сети центральный мост 8. Как это повлияет на дерево кратчайших путей и на пути, по которым следуют кадры Ethernet? 2 1 3

4

8

7

6

5

Рис. 3.13. Схема Ethernet к задаче 3.6 5

RTT – время приема передачи, длительность в миллисекундах, которая требуется для сетевого запроса, чтобы перейти от начальной точки к месту назначения и обратно к начальной точке. – Прим. перев.

3.13.Ссылки  73 3.7.

На рис. 3.14 все устройства хотят передавать данные со средней скоростью R Мбит/с, с одинаковым объемом трафика, идущего к каждому другому узлу. Предположим, что все каналы – полудуплексные и работают на скорости 100  Мбит/с, а протокол управления доступом к среде является идеально эффективным. Таким образом, каждый канал может одновременно использоваться только в одном направлении со скоростью 100 Мбит/с. Задержки для переключения с одного направления на другое нет. a) Каково максимальное значение R? b) Хаб заменен другим коммутатором. Каково теперь максимальное значение R?

Коммутатор

Хаб

Рис. 3.14. Схема Ethernet к задаче 3.7

3.13. Ссылки Сеть Aloha описана и проанализирована в [6]. Ethernet представлен в [70]. Для ознакомления с теорией вероятности см. [38].

Глава

4 Wi-Fi

Wi-Fi Alliance – это промышленный консорциум, который решает вопросы реализации стандартов IEEE 802.11 беспроводного Ethernet. Сети, основанные на этих стандартах, обычно называются сетями Wi-Fi. В этой главе мы расскажем об основах сети Wi-Fi, включая схему множественного доступа, которую использует такая сеть.

4.1. Основные операции В этой главе мы описываем только наиболее широко используемую реализацию Wi-Fi: инфраструктурный режим с функцией распределенной координации (Distributed Coordination Function, DCF). Устройства Wi-Fi (ноутбуки, принтеры, некоторые сотовые телефоны и т. д.) оснащены приемником, который взаимодействует с точкой доступа (Access Point, AP), подключенной к интернету. Устройства, взаимодействующие с данной точкой доступа, образуют базовую зону обслуживания (Basic Service Set, BSS). Точка доступа на периодической основе (например, каждые 100 мс) объявляет о своем существовании, сообщает о возможностях и параметрах ассоциированной BSS с помощью специального широковещательного кадра, называемого фреймом управления (beacon frame). Основными компонентами Wi-Fi являются MAC-подуровень и физический уровень модели OSI. MAC-подуровень использует экспоненциальное откладывание1. Станция, получившая корректный пакет, после небольшого времени ожидания отправляет подтверждение (acknowledgmen, ACK). Чтобы отправить пакет, станция должна подождать более длительный интервал времени плюс выбранный случайным образом промежуток обратного отсчета – задержку откладывания, чтобы не помешать передаче ACK. Наконец, версия протокола требует, чтобы станция, отправляющая па1

Чем данный способ вычисления повтора лучше повтора через фиксированный промежуток времени: • интервал увеличивается с каждой попыткой, если сервер не может справиться с потоком запросов, поток запросов от клиентов будет уменьшаться со временем; • интервалы рандомизированы, т. е. не будет «шквала» запросов в такты, пропорциональные фиксированному интервалу. – Прим. ред.

4.2.Управлениедоступомксреде(MAC)  75 кет P, сначала передала короткий запрос на отправку (Request­to­Send, RTS), – запрос на передачу в пункт назначения, который отвечает коротким Clear­to­Send (CTS), – разрешением на передачу. Оба сигнала (их еще называют сигналами квитирования, нужны для исключения коллизий кадров), RTS и CTS, указывают продолжительность передачи P и соответствующего ACK. Когда другие станции слышат RTS и CTS, они воздерживаются от передачи до тех пор, пока пакет P и его ACK не будут отправлены. Без использования RTS/CTS некоторые станции в BSS могли бы не принять передачу P, и это в конечном случае создало бы помехи. Обсудим далее эти идеи. Первоначально физический уровень был разработан для работы в безлицензионном диапазоне частот (2,4 или 5 ГГц). В более поздних версиях Wi-Fi добавлено также использование для определенных приложений субгигагерцевого диапазона (ниже 6 ГГц) и диапазона 60 ГГц. Wi-Fi использует сложный физический уровень, включающий схемы модуляции, которые поддерживают скорость передачи от 1 Мбит/с до нескольких Гбит/с, в зависимости от версии. В последнем разделе этой главы мы кратко опишем ключевые аспекты некоторых из последних версий Wi-Fi, а до этого ограничимся обсуждением широко используемой на практике версии. Каждая версия использует несколько несовпадающих по частоте каналов, что позволяет оператору сети выбрать разные каналы для соседних BSS, чтобы ограничить их взаимное влияние. Для улучшения пропускной способности передатчики регулируют скорость передачи. Если несколько пакетов не подтверждены, отправитель снижает скорость передачи и снова увеличивает ее после получения подтверждений по нескольким последовательным пакетам.

4.2. Управление доступом к среде (MAC) Сначала мы опишем протокол MAC (Medium Access Protocol), а затем обсудим адреса, которые использует Wi-Fi.

4.2.1. Протокол MAC Протокол MAC использует несколько констант, указанных в табл. 4.1. Когда станция (устройство или точка доступа) получает корректный пакет Wi-Fi, она отправляет подтверждение ACK после SIFS (Short Interframe Spacing), короткого межкадрового интервала. Чтобы отправить пакет, станция должна подождать, пока канал будет простаивать в течение DIFS, межкадрового интервала DCF (DCF InterFrame Spacing), плюс выбираемый случайным образом промежуток обратного отсчета. Поскольку DIFS > SIFS, станция может отправить ACK

76  Глава4.Wi-Fi

без столкновения с пакетом. Задержка отката равна z тайм-слотов, где z выбирается равномерно из {0, 1,…, CWn}, а CWn = min(CWmax (CWmin + 1) * 2n – 1), n = 0, 1, 2,…

(4.1)

и где n – количество предыдущих попыток передачи пакета. Например, в стандарте 802.11b CW0 = 31, CW1 = 63, CW2 = 127 и т. д. Значение z используется для инициализации счетчика обратного отсчета этой станции. Станция ждет в течение обязательного промежутка DIFS, пока канал не станет свободным, и затем уменьшает счетчик обратного отсчета на единицу каждый тайм-слот в течение всего времени, пока канал простаивает. Если передает другая станция, она замораживает свой счетчик и возобновляет вычитание после того, как увидит, что канал снова простаивает в течение DIFS. Станция передает, когда счетчик становится равным 0. Таблица 4.1. Константы протокола MAC Константа

802.11b

802.11a

Тайм-слот

20 мкс

9 мкс

SIFS

10 мкс

16 мкс

DIFS

50 мкс

34 мкс

EIFS

364 мкс

94 мкс

CWmin

31

15

CWmax

1023

1023

Каждая станция пытается декодировать каждый пакет Wi-Fi, передаваемый по каналу связи. Только после этого станция может определить, предназначен ли полученный пакет для нее самой. Если станция получает некорректный пакет Wi-Fi, она должна подождать EIFS (Extended Inter-Frame Spacing), время расширенного межкадрового интервала, перед попыткой передачи. Это связано с тем, что, возможно, предполагаемый получатель этого пакета принял его правильно. Значение EIFS вычисляется с учетом того, что предполагаемый получатель может послать ACK на самой низкой скорости передачи данных, разрешенной стандартом. Эти соображения приводят к значениям EIFS, показанным в табл. 4.1. Станция, получившая неверный пакет Wi-Fi, возобновляет уменьшение значения своего счетчика обратного отсчета после того, как канал простаивает в течение EIFS. Если в течении EIFS получен корректный пакет, станция возвращается к нормальной работе, ожидая, что канал будет простаивать только в течение DIFS перед возобновлением обратного отсчета своего счетчика.

4.2.Управлениедоступомксреде(MAC)  77 Рисунок 4.1 иллюстрирует ключевые аспекты MAC протокола Wi-Fi. Для этой иллюстрации мы используем параметры, связанные с версией стандарта 802.11b. Имеются два Wi-Fi-устройства A и B и одна точка доступа X. Предполагается, что во время предшествующей успешной передачи (т. е. успешной передачи пакета данных Wi-Fi и соответствующего ACK) станции A, B и X обнаруживают, что каждая из них имеет новый пакет для передачи по каналу. Они ждут, пока канал не будет простаивать в течение DIFS, и, поскольку у них у всех есть новый пакет для передачи, каждый из них генерирует случайное число тайм-слотов, выбранное равномерно из {0, 1, …, 31} для получения соответствующей задержки отката. Поскольку в данном примере задержка отката станции B наименьшая, то она передает свой пакет, и после SIFS получатель (точка доступа X) посылает ACK. Станции A и X замораживают свои счетчики обратного отсчета во время передачи пакета станцией B и ACK от X. После того как канал остается свободным в течение DIFS, станции A и X возобновляют уменьшение этих счетчиков, а B генерирует случайным образом новую задержку отката, равномерно выбирая случайное число из {0, 1, …, 31}. На этом рисунке счетчики обратного отсчета станций A и B достигают 0 в одно и то же время. Это заставляет A и B начать передачу в одно и то же время, что приводит к столкновению. Столкновение вызывает неверный прием в X, а это в свою очередь приводит к тому, что A и B не получают ACK. Ниже мы объясним, как протокол Wi-Fi MAC продолжает работу после этой коллизии.

Предыдущая успешная передача

SIFS 10 мкс B

DIFS 50 мкс

A

ACK X

A

B X

X

EIFS 364 мкс

B

X

A B

X

A

B

ACK TO 222 мкс

A

A

B

X Оставшееся время отката

Задержка отката, выбранная случайным образом из {0, 31} × 20 мкс

Задержка отката, выбранная случайным образом из {0, 63} × 20 мкс

X = Точка доступа S

= данные из S

= DIFS

= SIFS

S = ACK из S S

= откат в S

S = ACK тайм-аут (TO) в S S = EIFS в S

Рис. 4.1. Ключевые аспекты протокола Wi-Fi MAC (с параметрами 802.11b)

78  Глава4.Wi-Fi

Сначала отметим, что каждый пакет данных Wi-Fi или передача ACK состоит из накладных расходов физического уровня и кадра Wi-Fi MAC (см. рис. 4.3). После передачи пакета данных Wi-Fi передающая станция в течение времени SIFS плюс время накладных расходов физического уровня ждет кадр ACK. Она устанавливает таймер ожидания подтверждения ACK (TO) на время, в течение которого должно прийти подтверждение. Этот интервал равен сумме SIFS и времени накладных расходов физического уровня плюс запас в один слот (для учета времени обработки, распространения и т. д.). В стандарте 802.11b время тайм-аута ACK TO составляет 222 мкс. Как показано в нашем примере, если начало любого MAC-кадра не происходит в течение этого интервала, передающая станция может заключить, что ей необходимо повторно передать пакет данных, который она только что пыталась передать. Для полноты картины отметим, если MAC-кадр начнет передаваться во время ACK TO, передающая станция ждет дополнительное время, чтобы убедиться, что полученный MAC-кадр действительно является подтверждением ACK. В нашем сценарии A и B после проведения передач ждут в течение времени ACK TO, а затем, если потребовалась повторная передача, они вызывают процедуру обратного отсчета. Каждая станция генерирует случайное число тайм-слотов для задержки отката, равномерно выбирая случайным образом число из {0, 1, …, 63} (поскольку каждый из них уже сделал одну попытку для передачи текущего пакета данных). С другой стороны, X ожидает время EIFS перед возобновлением уменьшения счетчика обратного отсчета. На этом рисунке первым достигает 0 только счетчик обратного отсчета станции X. И тогда станция X передает (в A) и после времени SIFS A посылает ACK.

4.2.2. Усовершенствования для доступа к среде передачи Описанный выше протокол MAC является протоколом множественного доступа с контролем несущей и предотвращением коллизий (Carrier Sense Multiple Access with Collision Avoidance, CSMA/CA). В целом беспроводные сети, основанные на CSMA, могут страдать от двух потенциальных проблем: (i) проблемы скрытой станции и (ii) проблемы засвеченной станции. Проблема скрытой станции относится к ситуации, когда два передающих устройства не слышат друг друга (т. е. они скрыты друг от друга) и, следовательно, одно из них может начать передачу, даже если другое устройство уже ведет передачу. Это может привести к коллизии на принимающем устройстве. В инфраструктурных Wi-Fi-сетях эта проблема может проявиться в ситуации, когда два скрытых друг от друга устройства ведут перекрывающиеся передачи и точка доступа не может получить ни одну из них. Проблемы засвеченной станции относятся к ситуации, когда устройство воздерживается от передачи, так как считает, что среда занята, но его передача предназначена для дру-

Powered by TCPDF (www.tcpdf.org)

4.2.Управлениедоступомксреде(MAC)  79 гой станции, и, следовательно, можно было бы передавать фактически без коллизии. Поскольку все коммуникации в инфраструктурных сетях Wi-Fi осуществляются через точку доступа, читатель может подумать, что проблема засвеченной станции на самом деле не является такой уж большой. Для решения проблемы скрытой станции сети Wi-Fi могут использовать RTS- и CTS-сообщения. Идея заключается в том, что отправитель, желающий передать данные, сначала посылает сообщение RTS, подчиняясь правилам доступа к среде, описанным выше. Это сообщение RTS содержит адрес получателя, которому отправитель хочет передать данные. Приняв сообщение RTS, предполагаемый получатель отвечает сообщением CTS. Получив сообщение CTS, отправитель начинает передачу данных, после чего принимает ответ ACK от получателя. Вся последовательность сообщений RTS, CTS, данные и ACK, которыми обмениваются станции, разделяются SIFS. Любое устройство, получившее сообщение RTS или CTS, делает вывод, что канал будет занят для предстоящей передачи данных. Рассмотрим ситуацию, когда два устройства, скрытые друг от друга, хотят отправить данные в точку доступа. Если первое устройство посылает сообщение RTS, а точка доступа ответит сообщением CTS, второе устройство должно услышать как минимум сообщение CTS. Следовательно, обмен RTS/CTS позволяет устройствам, скрытым от передающего устройства, узнать, что канал занят. Подуровень MAC также предоставляет еще одну возможность узнать, как долго канал будет занят. Это делается путем включения поля Duration (длительность) в заголовок кадра (см. рис. 4.2). Это поле используется для обновления переменной Network Allocation Vector (NAV), вектора распределения сети на каждом устройстве. NAV показывает, как долго канал будет оставаться занятым при текущем обмене. Использование NAV для отслеживания состояния канала называется определением виртуальной несущей (Virtual Carrier Sensing).

4.2.3. MAC-адреса На рис. 4.2, взятом из [42], показан формат кадра MAC. Ниже мы кратко опишем поля в кадре. Более подробную информацию см. в [42] и [35]. Байты:

2

2

6

6

6

2

6

Frame Duration Sequence Адрес 1 Адрес 2 Адрес 3 Адрес 4 Control или ID Control

0 – 2312

4

Frame Payload

FCS

Рис. 4.2. Общий формат кадра MAC

Поле Frame Control используется для указания типа кадра (например, кадр данных, ACK, RTS, CTS и т. д.) и некоторых других параметров

80  Глава4.Wi-Fi

кадра (например, будут ли дополнительные фрагменты кадра более высокого уровня, передается ли этот кадр повторно и т. д.). Поле Duration используется для установки NAV, как упоминалось выше. Обратите внимание, что заголовок кадра содержит до четырех MAC-адресов. Адрес 1 и Адрес 2 – это MAC-адреса приемника и передатчика соответственно. Для расширенной сети LAN Адрес 3 – это MAC-адрес либо источника, либо устройства назначения в зависимости от того, передается или принимается кадр точкой доступа AP. Адрес 4 применяется только в расширенной сети LAN, где сеть Wi-Fi используется в качестве беспроводного моста. В типичной домашней сети устройство AP также действует как маршрутизатор. Здесь важны только Адрес 1 и Адрес 2, так как Адрес 3 совпадает с одним из них. Следует отметить, что управляющие кадры (например, кадры RTS, CTS и ACK) и кадры управления (например, кадры запроса ассоциации и кадры-маяки) не обязательно должны использовать все четыре адреса. Поле Sequence Control применяется для указания номера кадра более высокого уровня и номера фрагмента, чтобы помочь в дефрагментации и обнаружении дубликатов кадров. Наконец, поле FCS содержит контрольную сумму кадра для проверки целостности полученного кадра.

4.3. Физический уровень Сети Wi-Fi работают в нелицензированных диапазонах спектра. В США эти диапазоны сосредоточены вокруг 2,4 или 5 ГГц. В табл. 4.2 перечислены различные варианты сетей Wi-Fi и их ключевые атрибуты. Таблица 4.2. Различные типы сетей Wi-Fi Основные стандарты

Макс. скорость

Диапазон (США)

Год

802.11

2 Мбит

2.4 ГГц

1997

802.11a

54 Мбит

5 ГГц

1999

802.11b

11 Мбит

2.4 ГГц

1999

802.11g

54 Мбит

2.4 ГГц

2003

802.11n

600 Мбит

2.4 & 5 ГГц

2009

802.11ad

7 МГбит

60 ГГц

2012

802.11ac

6.8 Гбит

5 ГГц

2013

802.11ah

234 Мбит

sub-ГГц

2016

Чтобы получить представление об используемом частотном планировании, давайте рассмотрим стандарт IEEE 802.11b – основной для се-

4.4.АнализэффективностипротоколаMAC  81 тей Wi-Fi. Согласно этому стандарту доступный спектр частот в районе 2,4 ГГц разделен на 11 каналов с промежутками в 5 МГц между центральными частотами2. Для того чтобы минимизировать влияние каналов друг на друга, обычно используются каналы 1, 6 и 11. Тогда между каналами – промежутки в 25 МГц. Для минимизации помех смежные BSS обычно используют разные каналы с максимальным разделением. Оптимальное назначение каналов для различных BSS в здании или кампусе является нетривиальной задачей. В относительно большом здании или кампусе (например, в здании департамента в университетском городке) обычно существует расширенная зона обслуживания (Extended Service Set, ESS), созданная путем объединения BSS. В такой среде устройство может беспрепятственно переходить от одной BSS к другой. Сети Wi-Fi основаны на сложных технологиях физического уровня. Например, сети Wi-Fi на основе стандарта IEEE 802.11a используют мультиплексирование с ортогональным частотным разделением (Orthogonal Frequency Division Multiplexing, OFDM) в диапазоне 5 ГГц. Более подробную информацию о физическом уровне см. в [35, 43, 46, 46]. Стандарт IEEE 802.11g ввел OFDM в диапазоне 2,4 ГГц для достижения более высокой скорости передачи данных. Мы кратко обсудим более современные стандарты, перечисленные в табл. 4.2, в разделе «Последние достижения» в конце этой главы.

4.4. Анализ эффективности протокола MAC В этом разделе мы исследуем эффективность протокола Wi-Fi MAC, определяемую как пропускную способность данных, которой могут достичь передающие станции. Сначала рассмотрим случай одной активной станции. В результате анализа установлено, что только 58 % скорости используется для передачи данных, остальное – это накладные расходы или время простоя между кадрами. Затем мы разберем случай нескольких станций и объясним упрощенную модель, предложенную Бьянши [17].

4.4.1. Одно устройство Чтобы проиллюстрировать эффективность сетей Wi-Fi, сначала рассмотрим сценарий, в котором одно устройство непрерывно либо передает, либо получает от точки доступа (AP) 1500 байт данных; сообщения RTS/CTS не используются. Обратите внимание, что, поскольку задействовано только одно устройство, коллизий не происходит. За2

Центральная частота является средним геометрическим для нижней и верхней предельной частоты (частоты кроссовера) полосы частот с определенной полосой пропускания фильтра, также известной под термином «полоса пропускания». – Прим. ред.

82  Глава4.Wi-Fi

держкой распространения пренебрегаем и предполагаем, что потерь из-за ошибок канала нет. Для иллюстрации рассмотрим сеть Wi-Fi на основе стандарта IEEE 802.11b. Напомним, что для такой сети основными параметрами системы являются следующие: скорость передачи канала = 11 Мбит/с, SIFS = 10 мкс, тайм-слот = 20 мкс и DIFS = 50 мкс. Как описано в правилах доступа к среде, после каждой успешной передаче устройство выполняет процедуру обратного отсчета для определения числа тайм-слотов, равномерно выбирая из {0, 1, …, 31}. На рис. 4.3 показано, как канал используется в этом сценарии. Показанные здесь преамбула и заголовок процедуры определения состояния физического уровня (Physical Layer Convergence Procedure, PLCP) являются накладными расходами физического уровня, передаваемыми со скоростью 1 Мбит/с. Давайте рассчитаем пропускную способность передачи данных для этого сценария, пренебрегая временем распространения. Во-первых, заметим, что среднее время отката для каждого кадра в среднем равно 15,5 тайм-слотов, т. е. 15,5 × 20 = 310 мкс. Из рис. 4.3 следует, что другими накладными расходами для каждого кадра данных являются DIFS, накладные расходы физического уровня для каждого кадра данных, MAC-заголовка и CRC, SIFS, накладные расходы физического уровня для ACK и ACK подуровня MAC. Теперь можно легко подсчитать, что упомянутые выше накладные расходы, включая время отката, равны в среднем 788,9 мкс и что полезная нагрузка занимает 1500 × 8/11 = 1090,9 мкс. Это означает, что пропускная способность передачи данных 1500  ×  8/(788,9 + 1090,9) = 6,38 Мбит/с, или общая эффективность 6,38/11 = 58 %.

DIFS

144бит/ 1Мбит/с

48бит/ 1Мбит/с

Преамбула

Заголовок PLCP

Откат

30Б/11Мбит/с 1500Б/11Мбит/с 4Б/11Мбит/с Заголовок MAC

Данные

CRC

PROP

Кадр данных

SIFS PROP

Ack

144бит/ 1Мбит/с Преамбула

48бит/ 1Мбит/с

14Б/ 11Мбит/с

Заголовок PLCP

MAC Ack

Рис. 4.3. Использование каналов для сценария с одним пользователем

4.4.АнализэффективностипротоколаMAC  83

4.4.2. Несколько устройств Г. Бьянши [17] представил глубокий анализ протокола Wi-Fi MAC. Он рассматривает сценарий с n устройствами Wi-Fi, которые всегда имеют данные для передачи, и анализирует цепь Маркова {s(k), b(k)} для данного устройства, где s(k) обозначает количество предыдущих попыток передачи пакета, ожидающего повторной передачи на данном устройстве, а b(k) обозначает счетчик обратного отсчета в момент k (см. в приложении краткое руководство по цепям Маркова). Этот анализ также применим к сценарию, когда n – 1 устройств и AP имеют данные для передачи. Цепь Маркова встраивается в момент k, когда устройство настраивает свой счетчик обратного отсчета. Переходные  вероятности  цепи  Маркова изображены на рис. 4.4 [см. 17]. Wi и m здесь относятся к CWmin и CWmax (см. 4.1) следующим образом: Wi = 2i (CWmin + 1) и CWmax + 1 = 2m(CWmin + 1). (1 - p)W0

0,0

(1 - p)W0

1

0,1

p/W1

(1 - p)W0

1

0,2

p/W1

(1 - p)W0

1

p/W1

0, W0 - 2

(1 - p)W0

1

p/W1

0, W0 - 1 p/W1

i-1,0 p/Wi

i,0

p/Wi

1

i,1

p/Wi

1

i,2

p/Wi

1

i, Wi - 2

p/Wi

1

i, Wi - 1

p/Wi+1

p/Wi+1

p/Wi+1

p/Wi+1

p/Wi+1

p/Wm

p/Wm

p/Wm

p/Wm

p/Wm

m,0 p/Wm

1

m,1 p/Wm

1

m,2 p/Wm

1

m, Wm - 2 p/Wm

1

m, Wm - 1 p/Wm

Рис. 4.4. Переходные вероятности цепи Маркова с размером окна обратного отсчета

Чтобы понять эту схему, рассмотрим станцию, которая получает новый пакет для передачи. Состояние этой станции – узел в верхней части диаграммы. После ожидания DIFS станция вычисляет значение счетчи-

84  Глава4.Wi-Fi

ка обратного отсчета, выбирая равномерно из (0, 1, …, 31). После этого состояние станции становится одним из состояний (0, 0), (0, 1), …, (0, 31) на диаграмме. Первый компонент состояния (0) указывает на то, что станция не пыталась передавать ожидающий пакет. Второй компонент – значение счетчика обратного отсчета из набора (0, 1, …, 31). Затем станция уменьшает свой счетчик обратного отсчета в подходящий момент (когда ни одна другая станция не передает и канал простаивает в течение времени слота или после DIFS и тайм-слота3, следующих после освобождения канала). Например, состояние может перейти от (0, 5) в (0, 4). В конце концов счетчик обратного отсчета достигает 0, станция переходит в состояние (0, 0) и передает. Если при передаче происходит коллизия, то станция вычисляет другое значение обратного отсчета X, теперь равномерно распределенное в (0, 1, …, 63). Станция затем переходит в состояние (1, X), где первый компонент указывает, что она уже предприняла одну попытку передачи. Если передача удалась, станция переходит в состояние, показанное в верхней части диаграммы. Остальные состояния объясняются аналогичным образом. Ключевым упрощающим предположением в этой модели является то, что когда станция передает, то вероятность успешной передачи равна 1 – p, а вероятность столкновения – p, вне зависимости от ее состояния (i, 0) и предыдущих состояний. Это предположение позволяет анализировать станцию изолированно, и оно подтверждается с помощью моделирования. Поскольку p – это вероятность столкновения с учетом того, что интересующая нас станция передает, мы называем ее условной вероятностью столкновения. Анализируя цепь Маркова, можно найти вероятность того, что состояние станции будет (i, 0) и что после этого она попытается начать передачу. Назовем эту вероятность α. То есть α – это вероятность того, что при возможности передачи (т. е. когда ее счетчик обратного отсчета достигнет 0) станция попытается передавать. Предположим, что все n станций имеют одну и ту же среднюю вероятность передачи, равную α, и что все попытки передачи независимы. Тогда вероятность 1 – p того, что эта станция добьется успеха (и не столкнется), равна вероятности, что другие n – 1 станций не передают. То есть 1 – p = (1 – α)n – 1.

Действительно, в разделе 3.10 мы объяснили, что вероятности независимых событий перемножаются. Подводя итог, можно сказать, что анализ проводится следующим образом. Предполагается, что станция имеет вероятность 1 – p успешной передачи. Используя это значение p, решается цепь Маркова и выво3

Влияние дополнительного тайм-слота незначительно, и им пренебрегают [см. 17].

4.4.АнализэффективностипротоколаMAC  85 дится вероятность попытки α для каждой станции. Эта вероятность зависит от p, так что α = α(p) – это некоторая функция от p. Наконец, решается уравнение с одной неизвестной p: 1 – p = (1 – α(p))n – 1. Решив его относительно p, мы узнаем значение вероятности попытки α(p). Ниже мы описываем, как решается цепь Маркова для получения α(p). Пусть π и P обозначают инвариантное распределение и матрицу переходных вероятностей для цепи Маркова соответственно. Введение в эти понятия см. в приложении. Вероятности перехода, соответствующие P, показаны на рис. 4.4. Из определения инвариантного распределения мы имеем π = πP. Это дает: π(x)�P(x, y) = �π(y) P(y, x) для каждого x. y≠x

y≠x

Это тождество можно интерпретировать так, что «общий поток» в состояние и из состояния в равновесии одинаков. Эти уравнения называются уравнениями равновесия цепи Маркова. Напомним, что в рассматриваемой цепи Маркова состояние – это двумерный вектор {s,  b}, определенный ранее. Применяя уравнения равновесия и используя переходные вероятности, показанные на рис. 4.4, можно увидеть, что π(I – 1, 0)p = π(I, 0) → π(i, 0) = pi π(0, 0) для 0 < i < m.

(4.2)

Тождество (4.2) получается путем рекурсивного применения уравнений равновесия. Заметим, что, используя уравнения равновесия p p π(I – 1, 0) = π(i, Wi – 1) и π(I, Wi – 2) = π(I – 1, 0) + π(I, Wi – 1), мы можем Wi

p

Wi

получить π(I, Wi – 2) = π(I – 1, 0) 2 . Продолжая таким образом, полуWi чаем π(I – 1, 0)p = π(I, 0). Применяя уравнения равновесия рекурсивно аналогичным образом, после некоторых алгебраических манипуляций [см. 17] получаем:

и

pm π(I – 1, 0)p = (1 – p) π(m, 0) → π(m, 0 ) = ————— π(0, 0) (1 – p)

(4.3)

(Wi – k) π(i, k) = ——— ——— π(I, 0) для i ∊ {0, …, m} и k ∊ 2 {0, …, Wi – 1). (4.4) Wi

Используя тождества (4.2), (4.3) и (4.4), находим выражение для каждого π(i, k) через π(0, 0), а затем, используя тот факт, что � i�k π(i, k) = 1, решаем относительно π(0, 0) и, следовательно, каждого π(i, k). Вспоминая, что

86  Глава4.Wi-Fi m

𝛼 = �π(i, 0), i=0

в итоге находим

2(1 – 2p) 𝛼(p) = ————————————————————— —, (1 – 2)(W + 1) + pW(1 – (2p)m)

где W = CWmin + 1. Используя α, мы рассчитываем пропускную способность сети (общую скорость передачи данных) следующим образом. В течение времени между двумя последовательными шагами цепи Маркова успешная передача проходит с вероятностью 𝛽 := nα (1 – α)n – 1. Пусть T – средняя продолжительность этого времени. Тогда пропускная способность сети будет 𝛽B/T, где B – среднее количество битов данных, переданных во время успешной передачи. Действительно, в течение обычной длительности передается 0 бит данных с вероятностью 1 – 𝛽, а в среднем B бит данных передается с вероятностью 𝛽. Таким образом, 𝛽B – это среднее число битов данных, переданных за среднюю продолжительность T. Чтобы вычислить T, необходимо заметить, что T соответствует либо времени простоя, либо времени, когда проходит хотя бы одна передача. Если проходит только одна передача, T соответствует времени передачи одного пакета, SIFS, времени передачи ACK и DIFS. Если в это время одновременно проходит несколько передач, то T соответствует самому длинному из времен передачи столкнувшихся пакетов и DIFS. Подробности вычисления см. в [17]. Моделирование, представленное в [17], подтверждает качество аналитической аппроксимации. Эта работа также расширяет основной подход к анализу, изложенному здесь, и представляет обширный анализ для многих других интересных аспектов, включая анализ теоретической максимальной пропускной способности, достижимой, если окно перегрузки (Congestion Window) не будет ограничено спецификациями стандартов и будет выбираться оптимально в зависимости от n. На рис. 4.5 показаны результаты, полученные при решении описанной выше модели с параметрами, связанными с 802.11b. Мы предполагаем, что задержка распространения пренебрежимо мала и что все пакеты данных Wi-Fi несут 1500 байт полезной нагрузки. Как и в [17], мы также игнорируем влияние ACK тайм-аута и EIFS. Как и следовало ожидать, на рисунке показано, что условная вероятность столкновения увеличивается с ростом числа устройств. Это приводит к снижению пропускной способности сети с увеличением числа устройств.

4.5.Последниедостижения  87 Пропускная способность сети (Мбит/с)

Условная вероятность столкновения (p) 0.6

6.75

0.55

6.5

0.5

6.25

0.45

6

0.4

5.75

0.35

5.5

0.3

5.25

0.25

5

0

10

20

30

40

50

Условная вероятность столкновения (p)

Пропускная способность сети (Мбит/с)

7

0.2 60

# устройств

Рис. 4.5. Пропускная способность сети и условная вероятность столкновения (p)

4.5. Последние достижения 4.5.1. IEEE 802.11n – введение MIMO в Wi-Fi Стандарт IEEE 802.11n, опубликованный в 2009 г., поддерживает скорость передачи данных до 600 Мбит/с. Это приводит к использованию коммуникации с множественным входом и множественным выходом, Multiple-Input Multiple-Out (MIMO)4 в нелицензированных диапазонах 2,4 и 5 ГГц, позволяя одновременно использовать до четырех пространственно разнесенных потоков данных. Количество одновременных потоков четко ограничено максимальным числом передающих и принимающих антенн на обоих концах беспроводной линии связи. Кроме того, оно также ограничено максимальным количеством одновременных потоков, которое может поддерживаться радиоаппаратурой. Обозначение axb:c используется для указания того, что максимальное количество передающих и приемных антенн равно a и b соответственно, а максимальное количество пространственных потоков, разрешенных радиооборудованием, равно c. Стандарт IEEE 802.11n допускает конфигурацию 4x4:4. Следует отметить, что коммуникация MIMO, разрешенная стандартом IEEE 802.11n, ограничена одной парой устройств в любой момент времени. Эта форма MIMO называется Single-U MIMO (SU-MIMO). Впоследствии в стандарте IEEE 802.11ac, о котором пойдет 4

MIMO (Multiple Input Multiple Output) – метод пространственного кодирования сигнала, позволющий увеличить полосу пропускания  канала, в котором передача данных и прием данных осуществляются системами из нескольких антенн. – Прим. ред.

88  Глава4.Wi-Fi

речь ниже, это ограничение было ослаблено. Помимо MIMO, еще одним усовершенствованием физического уровня в стандарте IEEE 802.11n является использование большей ширины канала – до 40 МГц. Кроме того, для поддержки более высокой скорости передачи данных используется функция MAC-уровня под названием frame aggregation (агрегация кадров), которая позволяет объединять несколько кадров данных в одну передачу и тем самым уменьшать накладные расходы на передачу заголовков и преамбулы.

4.5.2. IEEE 802.11ad – Wi-Fi в миллиметровом диапазоне Стандарт IEEE 802.11ad, опубликованный в 2012 г., представляет собой дополнение, которое расширяет использование нелицензированного5 диапазона для сетей Wi-Fi в районе 60 ГГц. Поскольку длина волны в этом диапазоне близка к 1 мм, их называют миллиметровыми волнами. Характеристики передачи этих волн очень отличаются от волн в диапазонах 2,4 и 5 ГГц. Они имеют гораздо меньший радиус действия и могут использоваться только для связи в пределах прямой видимости. Кроме того, во время дождя они сильно затухают. Стандарт IEEE 802.11ad использует большую ширину канала, около 2 ГГц, и обеспечивает максимальную скорость передачи данных, 7 Гбит/с. Типичные случаи использования IEEE 802.11ad – это приложения, требующие высокой скорости передачи данных на короткое расстояние. Например, такие как облачное хранилище данных для настольных компьютеров и использование домашнего видео. Технология, обеспечивающая работу IEEE 802.11ad, первоначально была разработана и продвигалась Альянсом беспроводной гигабитной связи (Wireless Gigabit Alliance, WiGig), а позже эту роль взял на себя Альянс Wi-Fi.

4.5.3. IEEE 802.11ac – введение MU-MIMO в Wi-Fi Стандарт IEEE 802.11ac, опубликованный в 2013 г., является значительной эволюцией технологии Wi-Fi. Он предназначен для нелицензированного диапазона около 5 ГГц и обеспечивает максимальную совокупную пропускную способность 6,8 Гбит/с, а максимальную скорость одного пользователя – 3,4 Гбит/с. Одним из ключевых усовершенствований, поддерживаемых стандартом IEEE 802.11ac, является 5

В РФ иные правила лицензирования и выделения радиочастотных диапазонов. В России в полосе частот 5 ГГц доступны 33 канала. Подобное выделение частот строится на спецификации IEEE 802.11а и обеспечивает межканальное разнесение в 20 МГц для центральных частотных каналов Wi-Fi. При этом доступны 19 непересекающихся каналов. Мощность излучения передающих устройств – до 100 мВт включительно. Радиочастотный спектр в нашей стране – это собственность государства, поэтому условием для быстрого развития сетей Wi-Fi  является предоставление диапазонов частот, которые не требуют лицензирования. В нашей стране это диапазон частот 2,4 и 5 ГГц. – Прим. ред.

4.5.Последниедостижения  89 многопользовательское MIMO (MU-MIMO)6, когда несколько пользователей могут одновременно получать данные от точки доступа. Стандарт поддерживает MU-MIMO только в нисходящей линии связи. Кроме того, максимальное количество пользовательских устройств, обслуживаемых одновременно точкой доступа, ограничено четырьмя. MU-MIMO в направлении восходящего канала был отложен до будущего стандарта (IEEE 802.11ax) в связи с трудной задачей координации между несколькими пользователями. MU-MIMO может не только уменьшить временную задержку за счет снижения необходимости временного мультиплексирования, но и значительно улучшить пропускную способность сети, например когда мгновенная пропускная способность ограничена возможностями пользовательских устройств.

4.5.4. IEEE 802.11ah – Wi-Fi для IoT и M2M Стандарт IEEE 802.11ah, опубликованный в 2016 г., действует в нелицензированном субгигагерцевом диапазоне. В разных странах точный диапазон частот, используемый этим стандартом, может отличаться. В США используется нелицензированный диапазон около 900 МГц. Низкое энергопотребление и расширенный радиус действия – основные отличительные черты этого стандарта. Более низкая полоса частот, используемая в данном стандарте, расширяет диапазон покрытия за счет уменьшения затухания сигнала и снижения уровня искажений из-за стен и других препятствий. Как и стандарт IEEE 802.11ac, стандарт IEEE 802.11ah также поддерживает MU-MIMO нисходящего канала. Он поддерживает конфигурацию MIMO 4x4:4 до четырех конечных устройств, обслуживаемых одновременно точкой доступа. Целевые сценарии использования включают поддержку технологии межмашинного взаимодействия «машина–машина» (Machine-to-Machine, M2M), например взаимосвязанных исполнительных устройств, интернета вещей (IoT), скажем датчиков и интеллектуальных счетчиков, и разгрузку трафика от сотовых сетей. Стандарт определяет обязательную поддержку каналов 1 и 2 МГц для низкой скорости передачи данных от 150 Кбит/с и дополнительную поддержку каналов шириной до 16 МГц для более высоких скоростей передачи данных, до 347 Мбит/с (агрегированных по четырем пространственным потокам). Для поддержки 6

Многопользовательские системы MIMO (Multi User MIMO). Стандарт IEEE 802.11ac допускает конфигурацию MIMO до 8x8:8. Эта улучшенная конфигурация с большим количеством приемных и передающих антенн и увеличением числа поддерживаемых одновременных потоков до 8 (с 4 в стандарте IEEE 802.11n) позволяет сети более эффективно использовать преимущества MU-MIMO. Еще одно усовершенствование физического уровня в IEEE 802.11ac – это большая ширина канала до 160 МГц, которая может быть создана путем объединения двух смежных или несмежных каналов 80 МГц. Более высокая скорость передачи данных, обеспечиваемая стандартом IEEE 802.11ac, делает возможными различные сервисы: потоковое видео, хранение данных на подключенной точке доступа, инновационные облачные сервисы – все это становится осуществимым на практике. – Прим. ред.

90  Глава4.Wi-Fi

IoT-сценариев с большим количеством станций в географической близости стандарт позволяет использовать до 8192 станций, которые могут быть связаны с точкой доступа. Другие примечательные особенности IEEE 802.11ah – это поддержка секторизации, окна ограниченного доступа (Restricted Access Window, RAW), целевого времени пробуждения (TWT) и узлы ретрансляции. Для смягчения проблемы скрытого узла7 в присутствии большого количества маломощных станций в стандарте IEEE 802.11ah используется разбиение на сектора на основе расположения станций. RAW и TWT ограничивают время, в течение которого конечное устройство может передавать. TWT дополнительно ограничивает это время в соответствии с расписанием передач. RAW и TWT помогают снизить уровень засоренности канала. Кроме того, TWT, в частности, позволяет конечному устройству экономить энергию, переходя в спящий режим до ожидаемого времени своего пробуждения. Конечное устройство, называемое ретрансляционной точкой доступа (RAP), может выступать в качестве ретрансляционного узла для пересылки пакета в точку доступа. Это помогает конечным устройствам потреблять меньше энергии для передачи пакета, когда RAP находится относительно ближе, чем AP. С другой стороны, мультихопинг имеет недостаток в виде дополнительной задержки и большего использования беспроводной среды. Чтобы найти полезный компромисс, стандарт IEEE 802.11ah разрешает использовать не более одного RAP на пути к AP. Wi-Fi Alliance в 2017 г. анонсировал энергоэффективное решение, названное Wi-Fi HaLow (хей-лоу), основанное на стандарте IEEE 802.11ah для решения задач, требующих низкого энергопотребления конечных устройств. Примерами таких случаев использования являются подключенные автомобили, умный дом и устройства здравоохранения.

4.5.5. Одноранговая Wi-Fi Удобно иметь возможность передавать файлы между двумя устройствами или более без необходимости полагаться на традиционную точку доступа, например для печати, для обмена изображениями, аудио, видео или для связи с «горячей точкой» для совместного доступа в интернет. Существует два основных способа соединения устройств друг с 7

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

4.6.Приложение:цепиМаркова  91 другом по Wi-Fi без использования традиционной точки доступа. Один из них – это возможность для одного из устройств эмулировать функции точки доступа. Это может быть сделано с помощью усовершенствованных чипсетов Wi-Fi и/или путем эмуляции функций точки доступа программным обеспечением. Например, решение под названием Wi-Fi Direct, продвигаемое промышленным консорциумом Wi-Fi Alliance, использует этот подход. Существуют также собственные решения, основанные на том же принципе. Если необходим доступ в интернет, он разрешается только при совместном использовании доступа в интернет c устройством, эмулирующим функции точки доступа. Общее решение должно определять, как происходит выбор устройства, действующего как точка доступа, и что произойдет, если это устройство уйдет или выйдет из строя. В альтернативном подходе группа устройств Wi-Fi может создать сеть ad hoc (по запросу) между собой, где каждая пара устройств имеет одноранговый (peer-to-peer) канал Wi-Fi. Стандартизированный способ формирования и работы такой сети ad hoc включен в стандарты IEEE 802.11.

4.6. Приложение: цепи Маркова Цепь Маркова8 описывает состояние Xn системы в моменты времени n = 0, 1, 2…. Система развивается случайным образом в конечном множестве 𝜒, называемом пространством состояний. (Случай бесконечного пространства состояний более сложен.) Правила эволюции задаются матрицей P = [P(i, j), i, j ∊ 𝜒, называемой матрицей вероятностей перехода. Все элементы матрицы неотрицательны, а их суммы по строкам равны единице. То есть P(i, j) ≥ 0, i, j ∊ 𝜒 и � P(i, j) = 1, i ∊ 𝜒. j

Состояние i может перейти в j с вероятностью P(i, j) независимо от предыдущих значений. То есть P[Xn + 1 = j|Xn = I, Xm, m < n] = P(i, j), i, j ∊ 𝜒, n = 0, 1, 2,…

Если состояние в данный момент Xn = i и его предыдущие значения {Xm, m < n}, то вероятность того, что на следующем шаге состояние станет Xn + 1 = j, равна P(i, j). Можно вообразить, что в состоянии Xn = i, цепь Маркова бросает кубик, чтобы решить, куда двигаться дальше. Кубик выбирает значение j с вероятностью P(i, j). Сумма вероятностей возможных различных значений равна единице. 8

Цепь Маркова – последовательность случайных событий с конечным или счетным числом исходов, где вероятность наступления каждого события зависит только от состояния, достигнутого в предыдущем событии. Характеризуется тем свойством, что, говоря нестрого, при фиксированном настоящем будущее независимо от прошлого. – Прим. ред.

92  Глава4.Wi-Fi

На рис. 4.6 показаны две цепи Маркова с пространством состояний 𝜒  =  {1, 2, 3}. Та, что слева, соответствует переходной матрице вероятностей P, приведенной ниже: 0 1 0 P = � 0,6 0 0,4 �. 0,3 0 0,7 Первая строка этой матрицы – это вероятности перехода P(1, 1) = 0, P(1, 2) = 1, P(1, 3) = 0, что соответствует диаграмме на рис. 4.6. В этой диаграмме на стрелках от i к j показаны вероятности P(i, j). Если P(i, j) = 0, то стрелка от i к j отсутствует. Эта диаграмма называется диаграммой перехода состояний цепи Маркова. Эти две цепи Маркова похожи, но они отличаются одним важным свойством. Цепь Маркова слева может переходить от любого i к любому  j, возможно, за несколько шагов. Например, она может перейти от  1  к  3 за два шага: от 1 к 2, затем от 2 к 3. Цепь Маркова справа не может перейти от 1 к 2. Мы говорим, что цепь Маркова слева неприводимая, а справа – приводимая. 0.5

1 1

0.6 2

0.6

1

2 0.5

0.3

3

0.4

0.3

0.7

3

0.4 0.7

Рис. 4.6. Две цепи Маркова: неприводимая (слева) и приводимая (справа)

Предположим, что цепь Маркова слева начинается в момент времени 0 и вероятность перехода в состояние 1 равна π(1), в состояние 2 – π(2) и в состояние 3 – π(3). Например, скажем, что π = [π(1), π(2), π(3)] = [0,3; 0,2; 0,5]. Какова вероятность того, что X1 = 1? Мы находим эту вероятность следующим образом: P(X1 = 1) = P(X0 = 1)P(1, 1) + P(X0 = 2)P(2, 1) + P(X0 = 3)P(3, 1) = 0,3 × 0 + 0,2 × 0,6 + 0,5 × 0,3 = 0,27.

(4.5)

Действительно, существует три взаимоисключающих варианта того, что X1 будет равно 1: либо X0 = 1 и цепь Маркова в момент времени 1

4.6.Приложение:цепиМаркова  93 перескакивает из 1 в 1, либо X0 = 2 и цепь Маркова переходит из 2 в 1 в момент времени 1, либо X0 = 3 и цепь Маркова прыгает с 3 в 1 в момент времени 1. Приведенное выше тождество показывает, что вероятность того, что X1 = 1, равна сумме вероятностей трех независимых событий, составляющих событие X1 = 1. Это согласуется с тем фактом, что вероятности независимых событий складываются, как об этом говорилось в разделе 3.10.2. В более общем случае если π – это вектор (строка) вероятностей различных состояний в момент времени 0, то вектор-строка вероятностей состояний в момент времени 1 задается πP, произведением вектора-строки на матрицу P. Например, выражение (4.5) является первым компонентом πP. В нашем примере πP ≠ π. Например, P(X1 = 1) = 0,27 ≠ P(X0 = 1) = 0,3. То есть вероятности различных состояний меняются с течением времени. Однако если бы мы начали цепь Маркова в момент времени 0 с вероятностями π, такими что πP = π, то вероятности состояний не изменились бы. Такой вектор вероятностей мы называем инвариантным распределением. Следующая теорема – это все, что нам нужно знать о цепях Маркова. Теорема 4.1. Пусть Xn – неприводимая цепь Маркова на конечном пространстве состояний 𝜒 с матрицей вероятности перехода P. Цепь Маркова имеет единственное инвариантное распределение π. Более того, время удержания состояния, когда Xn = i, равно π(i) для i ∊ 𝜒 независимо от распределения X0. Для цепи Маркова, показанной слева на рис. 4.6, мы находим инвариантное распределение π, решая πP = πP и π(1) + π(2) + π(3) = 1. Далее находим π = [0,3; 0,3; 0,4]. Время удержания, в течение которого Xn = 1, равно 0,3, и это время не зависит от того, как начать цепь Маркова. Цепь Маркова справа на рис. 4.6 является приводимой, поэтому к ней теорема не применима. Однако совершенно ясно, что после нескольких шагов цепь Маркова оказывается в подмножестве {1, 3} пространства состояний. Тогда можно считать, что цепь Маркова сведена к этому подмножеству, и теперь она является неприводимой. Применяя теорему, мы обнаруживаем, что существует единственное инвариантное распределение, и мы можем вычислить, что оно равно [3/8, 0, 5/8].

94  Глава4.Wi-Fi

4.7. Резюме • Wi-Fi BSS – это набор устройств, обменивающихся данными по общему каналу с помощью протокола MAC сетей Wi-Fi. Мы фокусируемся на инфраструктуре сетей Wi-Fi, где вся связь осуществляется через точку доступа (AP). • Сети Wi-Fi работают в нелицензированной полосе частот около 2,4 или 5 ГГц. При работе в диапазоне 2,4 ГГц они обычно используют 1-й, 6-й и 11-й каналы. • IEEE 802.11, 802.11a, 80211b, 802.11g, 802.11n, 802.11ad, 802.11ac и 802.11ah являются ключевыми спецификациями для сетей Wi-Fi с различными физическими уровнями. Они поддерживают скорость физического уровня до 7 Гбит/с. • Подуровень MAC в сетях Wi-Fi основан на методах CSMA/CA. DCF является преобладающим режимом работы. • Доступ к среде регулируется с помощью различных параметров IFS, т. е. SIFS, DIFS и EIFS. • MAC-заголовок кадра данных содержит четыре MAC-адреса. В BSS с точкой доступа с интегрированными функциями маршрутизатора только два из этих адресов имеют значение. • Механизм RTS/CTS решает проблему скрытого терминала. • Виртуальное зондирование несущей с использованием NAV является важным усовершенствованием MAC-подуровня для предотвращения коллизий. • Учитывая высокие накладные расходы MAC подуровня и физического уровня, эффективность сети (что эквивалентно пропускной способности системы) является важной характеристикой для сетей Wi-Fi. • MIMO является ключевой технологией для достижения высокой пропускной способности и надежности. Начиная с IEEE 802.11ac, MU-MIMO делает MIMO еще более эффективным для обеспечения высокой производительности. • IEEE 802.11ah – это спецификация Wi-Fi в субгигагерцевом диапазоне. IoT и M2M являются одними из ключевых областей ее применения. • Wi-Fi Direct – это решение для организации сетей P2P, использующее идею Soft AP.

4.8.Задачи  95

4.8. Задачи 4.1.

Рассмотрим беспроводную сеть в форме пятиугольника с узлами в вершинах A, B, C, D и E, и узлы расположены так, что каждый узел может общаться только с двумя своими соседями, как показано на рисунке. Таким образом, в этой сети существует 10 однонаправленных беспроводных связей. Предположим, что узлы используют RTS/CTS, а также требуют ACK при успешной передаче. A

E

B

D

C

Рис. 4.7. Схема для задачи 4.1

4.2.

Рассмотрим ситуацию, когда A передает пакет B. Очевидно, что канал A → B активен и все каналы, затронутые этой передачей, должны молчать. Учитывая RTS/CTS и ACK, укажите, какие еще каналы могут быть активны в это же время. Другими словами, укажите, какие каналы могут передавать одновременно. Рассмотрите беспроводную локальную сеть (WLAN), работающую на скорости 11 Мбит/с и использующую протокол 802.11 MAC с параметрами, описанными ниже. Все кадры данных имеют фиксированный размер. Предположим, что продолжительность среднего времени обратного отсчета составляет 1,5T  тайм-слотов, где T – время передачи кадра, включая накладные расходы (в слотах), претендующего на доступ к среде. Предположим, что параметры этой WLAN следующие: время тайм-слота  –  20  мкс, DIFS = 2,5  тайм-слота, SIFS = 0,5 тайм-слота, RTS = CTS  = ACK = 10 тайм-слотов (включая накладные расходы) и накладные расходы кадра данных – 9 тайм-слотов. Определите пороговое значение (в байтах) полезной нагрузки данных, чтобы эффективность передачи данных была выше при использовании механизма RTS/CTS для кадров с полезной нагрузкой данных, большей, чем это пороговое значение.

96  Глава4.Wi-Fi

4.3.

4.4.

Предположим, что есть только два узла, источник и пункт назначения, оснащенные радиостанциями беспроводной локальной сети 802.11b, настроенными на использование RTS/CTS для пакетов любого размера. Узел-источник имеет большой объем данных для отправки узлу назначения. Кроме того, узлы находятся на расстоянии 750 м и имеют достаточно мощные радиоприемники для связи на таком расстоянии. Никакие другие узлы не работают в этой зоне. Какова будет пропускная способность передачи данных между источником и узлом назначения при условии, что пакеты будут содержать 1100 байт данных? Предположим следующие параметры. • Скорость распространения 3 × 108 м/с. • Время тайм-слота – 20 мкс, SIFS = 10 мкс, DIFS = 50 мкс и CWmin = 31 слотов. • Преамбула, заголовок физического уровня, заголовок MAC и трейлер занимают в общей сложности 200 мкс передачи каждого пакета. • Данные передаются со скоростью 11 Мбит/с. • Для передачи ACK, RTS и CTS требуется по 200 мкс. Рассмотрим модель цепи Маркова, предложенную Г. Бьянки [17], которую мы обсуждали в этой главе, для сценария, когда только точка доступа и одно устройство Wi-Fi имеют неограниченное количество данных для отправки друг другу. Предположим, что CWmin = CWmax = 1 и время слота – 20 мкс. a) Нарисуйте диаграмму перехода состояний для цепи Маркова. b) Выведите инвариантное распределение для цепи Маркова. c) Вычислите вероятность того, что в течение периода между двумя последовательными шагами цепи Маркова будет происходить успешная передача. d) Предположим, что каждый кадр данных Wi-Fi имеет 1000 байт полезной нагрузки. Более того, предположим, что длительность между двумя последовательными шагами цепи Маркова с успешной передачей составляет 60 слотов, в то время как эта длительность для передач с коллизиями составляет 50 слотов. Рассчитайте пропускную способность сети в Мбит/с по этим данным.

4.5. 4.6.

Смотрите задачу 7.7 из главы 7 «Транспорт». Это касается использования UDP через Wi-Fi. Смотрите задачу 7.8 из главы 7 «Транспорт» об использовании TCP через Wi-Fi.

4.9.Ссылки  97

4.9. Ссылки В [41] содержится хороший обзор эволюции стандартов IEEE 802.11. Подробные спецификации стандартов IEEE 802.11 можно найти в [42, 43, 44, 45, 46, 47, 48]. Гаст [35] описывает основы стандартов IEEE 802.11. Модель эффективности принадлежит Бьянки [17]. В [13, 55, 98] обсуждаются различные аспекты стандарта IEEE 802.11ah. Дополнительную информацию о Wi-Fi Direct можно найти в [23, 106]. Подробнее о цепях Маркова см. в [39] или [104].

Глава

5 Маршрутизация

Эта глава рассказывает, как разные сети определяют пути, по которым должны следовать пакеты. В интернете используется двухуровневая схема маршрутизации: междоменная и внутридоменная маршрутизация. Цель внутридоменной маршрутизации – найти кратчайший путь к месту назначения. Этот алгоритм легко распространяется на маршрутизацию anycast1, когда данные посылаются любому пункту назначения из заданной группы. Мы также обсудим многоадресную маршрутизацию, которая рассылает пакеты всем пунктам назначения в группе. Междоменная, бесклассовая маршрутизация использует алгоритм, в котором каждый домен выбирает путь к домену назначения на основе политики предпочтений. В заключение обсудим маршрутизацию в беспроводных сетях ad hoc.

5.1. Домены и двухуровневая маршрутизация Узлы в интернете сгруппированы примерно в 55 000 (по данным 2017 г.) автономных систем (доменов), которые находятся под управлением отдельных организаций. Например, сеть кампуса Беркли – это один домен, как и сеть Массачусетского технологического института, как и сети AT&T, Verizon и Sprint. Маршрутизация в каждом домене осуществляется с помощью протокола кратчайшего пути, называемого протоколом внутридоменной маршрутизации. Маршрутизация между доменами осуществляется с помощью протокола междоменной маршрутизации. В большинстве доменов небольшое количество маршрутизаторов. Но в крупные доменах их сотни или даже тысячи. Обычный путь в интернете проходит не более чем через полдюжины доменов. Интернет имеет топологию малого мира (small-world topology), где два домена находятся на расстоянии всего нескольких рукопожатий (handshake) друг от друга, подобно нам всем. Для такого разделения на два уровня есть две причины. Первая – это масштабируемость. Внутридоменная маршрутизация кратчайшего пу-

Powered by TCPDF (www.tcpdf.org)

5.1.Доменыидвухуровневаямаршрутизация  99 ти требует детального представления домена; такое детальное представление невозможно для всего интернета. Вторая причина заключается в том, что администраторы доменов могут предпочесть направлять трафик через те или иные домены по экономическим соображениям, соображениям надежности, безопасности или по другим причинам. Такие предпочтения требуют протокола другого типа, а не внутридоменных протоколов строго кратчайшего пути.

5.1.1. Масштабируемость Разделение на два уровня значительно упрощает механизмы маршрутизации. Чтобы оценить это упрощение, скажем, что поиск кратчайшего пути между парой узлов в сети с N узлами требует, чтобы каждый узел отправил около N сообщений другим узлам. Если сеть состоит из M доменов по N узлов в каждом, одноуровневый алгоритм кратчайшего пути требует, чтобы каждый узел отправил около MN сообщений. В двухуровневой схеме каждый узел посылает N сообщений другим узлам в своем домене, а один узел-представитель в каждом домене может отправлять M сообщений представителям в других доменах.

5.1.2. Транзит и пиринг Различные поставщики интернет­услуг, провайдеры (ISP), владеющие сетями, заключают соглашения об обмене трафиком друг с другом. Существует два типа соглашений: пиринговое и транзитное. В пиринговом соглашении интернет-провайдеры на взаимной основе предоставляют бесплатное подключение клиентам друг друга, местным или унаследованным (следующего уровня подключения). В транзитном соглашении один провайдер предоставляет (обычно продает) доступ ко всем пунктам назначения из своей таблицы маршрутизации. Рисунок 5.1 иллюстрирует эти соглашения. В левой части рисунка показаны три провайдера (ISP A, ISP B, ISP C). Провайдеры A и B заключили пиринговое соглашение. В соответствии с этим соглашением провайдер A объявляет маршруты к своим клиентам (A1, …, Ak). Аналогично провайдер B анонсирует маршруты к своим (B1, …, Bm). Такое же соглашение между провайдером B и провайдером C. Обратите внимание, однако, что провайдер B не обеспечивает соединение между A и C. В правой части рис. 5.1 показаны транзитные соглашения между провайдерами A и B и между провайдерами B и C. В соответствии с этим соглашением провайдер B объявляет маршруты ко всем клиентам, к которым он подключен, и соглашается предоставить соединение всем этим клиентам. Таким образом, провайдер B обеспечивает соединение между провайдерами A и C (за определенную плату).

100

 Глава5.Маршрутизация

ISP A

{A} P

ISP B

{B} A1 … Ak

{B} P

{A} ISP A T

ISP C

{C} B1 … Bm

{A}{B} T ISP B ISP C

{B}{C} C1 … Cn

A1 … A k

{C}

B1 … Bm

C1 … C n

Рис. 5.1. Пиринговое (слева) и транзитное (справа) соглашения

На рис. 5.2 показана довольно типичная ситуация. Представьте, что провайдеры A и B – это два кампуса некоторого университета. Провайдер C обеспечивает связь между кампусами и остальной частью интернета, как указано в соглашении о транзите между ним и двумя кампусами. Заключив соглашение о пиринге, A и B обеспечивают прямое соединение между собой без необходимости проходить через провайдера C, тем самым снижая стоимость доступа в интернет. Обратите внимание, что соединение между провайдерами A и C не передает трафик от B, поэтому кампус A не платит за транзит для кампуса B. T

T ISP A A1 … Ak

ISP C P

T ISP B B1 … Bm

Рис. 5.2. Типичные соглашения

5.2. Междоменная маршрутизация На междоменном уровне каждый домен, по сути, выглядит как один узел. Проблема междоменной, бесклассовой маршрутизации заключается в выборе пути через эти узлы, чтобы перейти от домена-источника к домену назначения. Например, проблема заключается в выборе последовательности доменов для перехода из домена Беркли к домену MIT. Естественным выбором будет путь с наименьшим количеством переходов. Однако Беркли может предпочесть отправить свой трафик через домен Sprint, потому что он дешевле или надежнее, чем AT&T.12. По этой причине в настоящее время междоменный протокол интернета – это протокол пограничного шлюза (Border Gateway Protocol, BGP), 2

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

5.2.Междоменнаямаршрутизация  101 который основан на алгоритме вектора пути (дистанционно-векторная маршрутизация). Данная ситуация – гипотетическая. Все сходство с реальными событиями является чисто случайным и непреднамеренным.

5.2.1. Алгоритм вектора пути Наиболее распространенным протоколом междоменной маршрутизации в интернете является протокол пограничного шлюза, который основан на алгоритме вектора пути. При использовании алгоритма вектора пути, как показано на рис. 5.3, маршрутизаторы сообщают своим соседям о предпочтительном пути к месту назначения. B

BD

D

A

D C

B

A

D

CD

D

B

D

D

C

A

D C

Рис. 5.3. Алгоритм вектора пути

На рисунке рассматривается пункт назначения D. Маршрутизатор D сообщает своим соседям B и C, что его предпочтительным путем к пункту назначения является D. Маршрутизатор B затем сообщает A, что его предпочтительный путь к D – это BD; аналогично C сообщает A, что его предпочтительный путь к D – CD. Затем маршрутизатор A выбирает предпочтительный путь к D между ABD и ACD. Поскольку указаны полные пути, маршрутизатор A может основывать свое предпочтение не только на количестве переходов, но и на других факторах, таких как существующие транзитные или пиринговые соглашения, цены, безопасность, надежность и прочие соображения. Рисунок показывает, что маршрутизатор A предпочитает путь ACD, а не ABD. В общем случае предпочтительный путь не обязательно должен быть самым коротким. На рис. 5.4 приведена иллюстрация. Verizon-MIT Sprint

Verizon

Sprint-Verizon-MIT

MIT (b)

(a)

Berkeley

(a): Verizon-MIT (b): AT&T-MIT

MIT AT&T

AT&T-MIT

MIT

Рис. 5.4. Маршрутизация между доменами: междоменная маршрутизация

102

 Глава5.Маршрутизация

Междоменный протокол интернета позволяет сетевым менеджерам, кроме кратчайшего пути, указывать другие предпочтения. Домен Berkeley имеет два пути к домену MIT: Sprint – Verizon – MIT и AT&T – MIT. Менеджер Беркли может указать некое правило, например: 1) если возможно, найти путь, не использующий AT&T; 2) среди оставшихся путей выбрать тот, который имеет наименьшее количество переходов;  3) в случае равенства выбрать следующий домен в алфавитном порядке. При использовании этих указаний протокол выберет путь Sprint  – Verizon – MIT. (В реальном протоколе домены представлены цифрами, а не именами.) Итак, каждый домен имеет один или несколько представительских маршрутизаторов, и они реализуют BGP. Каждый представитель имеет набор правил, которые определяют, как он выбирает предпочтительный путь среди возможных. Эти правила также определяют, какие пути он должен объявлять, как говорилось в обсуждении пиринга и транзита.

5.2.2. Возможные колебания Достаточно ясно, что можно найти кратчайший путь без особых проблем. Однако после разрыва связей, если администраторы доменов выбирают произвольные правила предпочтения, нет уверенности, что протокол вектора пути сходится. На самом деле простые примеры показывают, что некоторые правила могут привести к отсутствию сходимости. A ACD AD

ACD

D

C

B

A

BAD BD

ACD AD

CBD CD

B следует выбрать BD

D

C

B

A

BAD BD

ACD AD

BD

B

CBD

CBD CD

C следует выбрать CBD

BAD BD

D

C

CBD CD

A следует выбрать AD

Рис. 5.5. Протокол вектора пути может не сходиться

Рисунок 5.5 иллюстрирует такой пример. Здесь показаны четыре узла A, B, C, D, которые представляют собой домены. Узлы полностью связаны между собой. На рисунке указаны предпочтительные пути, ведущие от каждого узла к D. Например, узел A предпочитает путь ACD, а не прямой путь AD. Аналогично узел C предпочитает CBD пути CD, а узел B выбирает BAD вместо BD. Для примера предположим, что пути к D медленнее, чем другие пути, и что предпочтение отдается пути против часовой стрелки к более быстрому следующему каналу. Предположим также, что узлы предпочитают избегать треххоповых путей,

5.3.Внутридоменнаямаршрутизацияпо кратчайшемупути  103 т. е. путей в три шага. В левой части рисунка показано, что A объявляет предпочтительным путь ACD узлу B. Затем узел B видит путь ACD, объявленный A, прямой путь BD и путь CBD, который объявляет C. Среди этих путей B выбирает путь BD, так как BACD имеет три шага, а переход к C приведет к зацикливанию. В средней части рисунка показано, что B объявляет предпочтительным путь BD к узлу С. Учитывая свои предпочтения, узел С затем выбирает путь CBD, который он объявляет узлу А, как показано в правой части рисунка. Таким образом, повторяются одни и те же шаги, а выбор узлов продолжает меняться на последовательных шагах. Например, узел A начал предпочитать ACD, затем – AD и т. д. Этот алгоритм не сходится. Смысл этого примера в том, что, хотя вектор путей позволяет администраторам домена указать предпочтения, эта гибкость может привести к плохой работе алгоритмов.

5.2.3. Мультивыходные дискриминаторы На рис. 5.6 показан провайдер A, соединенный с B двумя связями. A сообщает провайдеру B, что верхнее соединение находится ближе к пункту назначения X, чем нижнее. Чтобы предоставить эту информацию, провайдер A подключает дискриминатор3 к своим локальным пунктам назначения. Дискриминатор представляет собой метрику от маршрутизатора, подключенного к соединению, до места назначения. Имея эту информацию, маршрутизатор R4 в ISP B вычисляет, что он должен отправлять трафик, предназначенный для X, через верхнее соединение. Провайдер B не пересылает эти дискриминаторы. ISP A X R3

ISP B (Y, 3), (X, 1)

R1 Y

R2

to X

R4

{X, Y}, …

(X, 3), (Y, 1)

Рис. 5.6. Граф (слева) и сообщения о состоянии соединения (справа)

5.3. Внутридоменная маршрутизация по кратчайшему пути Внутри домена маршрутизаторы используют алгоритм кратчайшего пути. Расскажем о двух алгоритмах для поиска кратчайших путей: 3

Multi­Exit Descriminator Attribute – это способ указания наилучшего пути своим внешним соседям. – Прим. ред.

104

 Глава5.Маршрутизация

Дейкстры и Беллмана–Форда, а также о протоколах, использующих эти алгоритмы.

5.3.1. Алгоритм Дейкстры и состояние связи На рис. 5.7 показаны операции алгоритма состояния связи. B

2

1) Обмен состояниями связи

1

A

A: [B, 2], [C, 1] B: [A, 2], [D, 1] C: [A, 1], [D, 3] D: [B, 1], [C, 3]

D 1

C

3

2) Каждый маршрутизатор вычисляет кратчайшие пути к другим маршрутизаторам и заносит результаты в свою таблицу маршрутизации

Рис. 5.7. Алгоритм маршрутизации состояния связи

При использовании алгоритма состояния связи маршрутизаторы обмениваются сообщениями о состоянии соединения. Это сообщение содержит такие детали: [сосед; расстояние до соседа]. Этот список определяет метрику соединения с каждым соседом. Метрика представляет собой время, которое требуется узлу, чтобы отправить сообщение этому соседу. В простейшем варианте эта метрика равна единице для всех связей. В более сложной реализации метрика меньше для более быстрых связей. Длина пути определяется как сумма метрик звеньев этого пути. Таким образом, каждый маршрутизатор отправляет сообщение о состоянии соединения всем другим маршрутизаторам. После этого обмена каждый маршрутизатор имеет полное представление о сети, и он может вычислить кратчайший путь между любой парой узлов. Следующий шаг (хоп) по кратчайшему пути к пункту назначения зависит только от места назначения, но не от источника пакета. Соответственно, маршрутизатор может заносить кратчайшие пути в свою таблицу маршрутизации. Например, таблица маршрутизации узла A содержит информацию, показанную в табл. 5.1. Таблица 5.1. Таблица маршрутизации маршрутизатора A Назначение

Следующий шаг

B

B

C

C

D

B

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

5.3.Внутридоменнаямаршрутизацияпо кратчайшемупути  105

1

3

B

A

1

1

B

F 3

E 1 P(4)

4 2

1

B

4 1 3 P(5)

1

B

A

3

1 4

4

F 1 P(3)

P(2)

1 F

1

1

1 3

A

C 2 1 D E

4

4

C 2 1 D

3

1

P(1)

4

1

A

1

1 F

D

E

1 3

A

1

2 1

4 F

C

B

3

C 2 1 D E 4 2

1

B

1 3

A

1 4 F

C 2 1 D E

4 2

3 C 2 5 1 D E 4 2

1 3 P(6): Final

Рис. 5.8. Алгоритм маршрутизации Дейкстры

Чтобы найти кратчайшие пути от узла A ко всем другим узлам, алгоритм Дейкстры рекурсивно вычисляет P(k) для k ближайших узлов к узлу A (закрашены черным). Алгоритм начинает с P(1) = {A}. Чтобы найти P(2), он добавляет ближайший узел к множеству P(1) (здесь это узел B) и записывает его расстояние до A, равное 1. Чтобы найти P(3), алгоритм добавляет ближайший узел к P(2) (это E) и записывает его расстояние до A (здесь 2). Алгоритм продолжает работу в том же духе, разрывая связи в соответствии с определенным правилом, отдавая предпочтение лексикографическому порядку, т. е. добавляя C раньше F. Это однопроходный алгоритм, число шагов которого равно числу узлов. После выполнения алгоритма каждый узел запоминает следующий шаг к каждому узлу по кратчайшему пути и хранит эту информацию в таблице маршрутизации. Например, в таблице маршрутизации узла A указано, что кратчайший путь к E проходит сначала по связи AB. Соответственно, когда A получает пакет, предназначенный E, он отправляет его по каналу AB. Затем узел B пересылает пакет в E.

5.3.2. Алгоритм Беллмана–Форда и вектор расстояния На рис. 5.9 показаны операции алгоритма вектора расстояния. Маршрутизаторы регулярно посылают соседям свою текущую оценку кратчайшего расстояния до других маршрутизаторов. На рисунке для простоты рассматривается только узел назначения D. Сначала только узел  D знает, что его расстояние до D равно нулю, и он посылает эту оценку своим соседям B и C. Маршрутизатор B добавляет длину линии BD к оценке 0, полученной от D, и делает вывод, что его расчетное расстояние до D равно 1. Аналогично C оценивает расстояние до D как

106

 Глава5.Маршрутизация

равное 3 + 0 = 3. Маршрутизаторы B и C посылают эти оценки в узел A, который сравнивает расстояния 2 + 1 до D через узел B и 1 + 3, если сначала идти к C. Узел A делает вывод, что расчетное кратчайшее расстояние до  D равно 3. На каждом шаге маршрутизаторы запоминают следующий хоп, который обеспечивает наименьшее расстояние, и указывают эту информацию в своей таблице маршрутизации. На рис. 5.10 эти кратчайшие пути показаны толстыми линиями.

A

2 1

B

1

C

3

0 D

A

0

2 1

1 B

3 C

1

3 A

D

2 1

3

B

C

1 3

D

Рис. 5.9. Алгоритм маршрутизации по вектору расстояния

Таблица маршрутизации в маршрутизаторе A такая же, как и при использовании алгоритма состояния связи; она показана в табл. 5.1.

Плохие новости распространяются медленно Один из недостатков этого алгоритма заключается в том, что при отказе соединения может потребоваться много времени для получения новых кратчайших путей, как показано в примере ниже. В верхней части рис. 5.10 три узла A, B, C (справа) соединены связями с метрикой 1. Алгоритм Беллмана–Форда сходится к оценкам длин кратчайших путей к пункту назначения С. В этот момент связь между узлами B и C обрывается. A

B

C

2

1

0

A

B

C

4

3

0

A

B

C

6

5

0

Рис. 5.10. Плохие новости распространяются медленно, если узлы используют алгоритм Беллмана–Форда

В средней части рисунка показана следующая итерация алгоритма Беллмана–Форда. Узел A сообщает свою оценку кратчайшего расстояния до узла C, равную 2, а узел B понимает, что длина линии BC теперь бесконечна. Узел B

5.4.Anycast,multicast  107 вычисляет свою новую оценку кратчайшего расстояния до C как 1 + 2 = 3, что является длиной соединения от B до A плюс расстояние от A до C, равное 2, как объявляет A. Получив оценку 3 от B, A обновляет свою оценку до 1 + 3 = 4. В нижней части рисунка показана следующая итерация алгоритма. В последующих итерациях оценки продолжают расти. В следующем разделе мы объясним, как справиться с такой медленной сходимостью.

Сходимость Предположим, что граф не изменяется и узлы используют алгоритм Беллмана–Форда. Более точно скажем, что на шаге n ≥ 0 алгоритма каждый узел i имеет оценку dn(i) его кратчайшего расстояния до некоторого фиксированного пункта назначения i0. Вначале d0(i) = ∞ для i ≠ i0 и d0(i0) = 0. На шаге n + 1 некоторый узел i получает оценку dn(j) от одного из своих соседей j. В это время узел i обновляет свою оценку как dn+1(i) = min{dn(i), d(I, j) + dn(j)}. Порядок, в котором узлы отправляют сообщения, произвольный. Однако предполагается, что каждый узел i продолжает посылать сообщения каждому из своих соседей. Утверждение состоит в том, что если граф не меняется, то dn(i) → d(i) где d(i) – минимальное расстояние от узла i до i0. Чтобы понять, почему это так, заметим, что dn(i) может уменьшаться только после того, как i получил одно сообщение, кроме того, как только сообщения были отправлены по кратчайшему пути от i0 к i, dn(i) = d(i). Обратите внимание, что этот алгоритм не сходится к истинным значениям, если он начинает с разных начальных значений. Например, если он начинает с dn(i) = 0 для всех i, то оценки не меняются. Следовательно, чтобы оценки снова сходились после разрыва линии или увеличения длины какого-либо звена, алгоритм должен быть модифицирован. Один из подходов заключается в следующем. Предположим, что узел i получает оценку от соседа j, которая больше, чем предыдущая оценка, полученная от этого узла ранее. Тогда узел i сбрасывает свою оценку в ∞ и отправляет ее своим соседям. Таким образом, все узлы сбросят свои оценки и алгоритм перезапустится с d0(i) = ∞ для i ≠ i0 и d0(i0) = 0. После этого алгоритм сходится, как мы видели ранее.

5.4. Anycast, multicast Когда источник посылает сообщение одному получателю, мы говорим, что сообщение является unicast (одноадресным). Некоторым приложениям может потребоваться отправить сообщение любому из множества узлов. Например, необходимо найти один из многих серверов, имеющих

108

 Глава5.Маршрутизация

одну и ту же информацию, или связаться с любым членом группы. В таком случае сообщение называется anycast (любому узлу). Другие приложения требуют, чтобы все члены группы получили сообщение. Это называется multicast (многоадресной рассылкой). Если сообщение должно быть отправлено всем узлам, мы говорим, что оно broadcast (широковещательное). Далее объясним, что такое маршрутизация anycast и multicast.

5.4.1. anycast На рис. 5.11 показан граф с двумя заштрихованными узлами. Задача маршрутизации anycast заключается в поиске кратчайшего пути от любого узла к любому из заштрихованных узлов. 2 C A 1 B

3 D

1 2 3 2

3 E

F 2 2 G

3

Рис. 5.11. Кратчайшие пути к выделенным узлам

Один из алгоритмов идентичен алгоритму Беллмана–Форда для одноадресной маршрутизации. Пусть d(i) – минимальное расстояние от узла i до любой совокупности узлов. То есть d(i) – это минимальное расстояние до любого узла в любой совокупности узлов. Если обозначить через d(i, j) метрику связи (i, j), то очевидно, что d(i) = min{d(i, j) + d(j)} и минимум – это расстояние до одного из соседей j узла i. Это точно такое же соотношение, как и для одноадресной рассылки. Единственным отличием является начальное условие: для anycast d(k) = 0 для всех узлов k в любой совокупности узлов. Другой алгоритм – алгоритм кратчайшего пути Дейкстры – останавливается, когда достигает одного из заштрихованных узлов. Напомним, что этот алгоритм вычисляет кратчайшие пути от любого узла ко всем другим узлам в порядке возрастания длины пути. Когда он впервые находит один из целевых узлов, алгоритм вычисляет кратчайший путь от данного узла до остальных.

5.4.2. multicast На рис. 5.12 показан граф. Сообщения из A должны быть переданы по всем адресам двух заштрихованных узлов. В левой части рисунка пока-

5.4.Anycast,multicast  109 зано дерево с корнем из A, чьими листьями являются заштрихованные узлы. Сумма длин связей всех таких деревьев минимизирована. Это дерево называется деревом Штейнера (в честь Якоба Штейнера). В правой части рисунка показано дерево кратчайших путей от A до заштрихованных узлов. Обратите внимание, что сумма длин звеньев дерева справа (6) больше той же суммы дерева Штейнера (5). 2

B

1

A 2

2 C

2

B

1

A 2

1

2 C 1

Рис. 5.12. Минимальное дерево Штейнера (слева) и дерево кратчайших путей из A (справа)

Найти дерево Штейнера NP – трудная задача. На практике используются приближенные методы. Один из протоколов многоадресной передачи для интернета использует дерево кратчайших путей. Наиболее эффективным подходом является использование по одному многоадресному дереву Штейнера на каждый источник многоадресной рассылки. На практике можно совместно использовать одно общее дерево для разных источников. Например, можно построить дерево Штейнера от Сан-Франциско до крупных мегаполисов США. Если источник многоадресной рассылки находится в Окленде, он может подключиться к этому дереву. Это менее оптимально, чем дерево Штейнера из Окленда, но алгоритм гораздо менее сложен.

5.4.3. Прямая коррекция ошибок (FEC) Использование повторных передач для обеспечения надежности многоадресной рассылки нецелесообразно. Представьте себе многоадресную передачу файла или видеопотока для 1000 пользователей. Если один пакет будет потерян на одном из ребер дерева многоадресной рассылки, сотни пользователей могут пропустить этот пакет. Непрактично для всех них отправлять отрицательное подтверждение. Также нецелесообразно, чтобы источник отслеживал положительные подтверждения от всех пользователей. Более простой метод заключается в использовании дополнительных пакетов для обеспечения надежности передачи. Эта схема называется стирающим кодированием пакетов, поскольку она разработана для восстановления пакетов после «стирания», т. е. потери пакетов в сети.

110

 Глава5.Маршрутизация

Предположим, что вы хотите отправить пользователю пакеты P1 и P2 размером 1 Кбайт каждый, но существует вероятность того, что один из этих двух пакетов может быть потерян. Чтобы повысить надежность, можно послать {P, P2, C}, где C – это побитное сложение по модулю 2 пакетов P1 и P2. Если пользователь получит два любых пакета из {P, P2, C}, он сможет восстановить пакеты P1 и P2. Например, если пользователь получает P1 и C, он может восстановить пакет P2, сложив побитно по модулю 2 пакеты P1 и C. Эта идея может быть распространена на n пакетов {P1, P2, …, Pn}: вычисляются дополнительные пакеты {C1, C2, …, Cm}, представляющие собой побитную сумму по модулю двух случайно выбранных пакетов из {P1, P2, …, Pn}. Заголовок пакета Ck указывает подмножество {1, 2, …, n}, которое было использовано для вычисления Ck. Если m достаточно велико, можно восстановить любой из n исходных пакетов с помощью пакетов {C1, C2, …, Cm}. Алгоритм декодирования очень прост. Он выполняется следующим образом. • Если один из Ck, скажем Cj, такой же, как один из пакетов {P, P2, …, Pn}, то этот пакет, скажем Pi, восстановлен. Затем он суммируется со всеми пакетами Cr, которые его использовали при расчете. • Пакет Cj удаляется, процедура повторяется. • Если не удается найти пакет Cj, в котором задействован только Pi, процедура завершается неудачно. Рисунок 5.13 иллюстрирует эту процедуру. Необходимо отправить пакеты {P1, …, P4}. Вычисляются пакеты {C1, …, C7}, как показано на рисунке. Смысл графика заключается в том, что пакет Cj представляет собой побитную сумму пакетов Pi по модулю 2, к которым Cj присоединен. Например, и т. д.

C1 = P1, C2 = P1 + P2, C3 = P1 + P2 + P3 P1

C1

P2

P3

P4

C2 C3 C4 C5 C6 C7 Рис. 5.13. Вычисление FEC-пакетов

Теперь предположим, что были получены пакеты C1, C3, C5, C6 (заштрихованы на рис. 5.13). Следуя алгоритму, описанному выше, снача-

5.4.Anycast,multicast  111 ла ищем пакет Cj, который равен одному из пакетов Pi. Мы видим, что C1 = P1. P1 суммируется со всеми пакетами Cj, которые его использовали. Таким образом, мы заменяем C3 на C3 + C1. Удаляем P1 из графа, и остается граф, показанный в левой части рис. 5.14. P2

P3

P4

C1 + C3

C5

P2

C6

P2

P3

C5 + C6

C1 + C3

C1 +C3 + C5 + C6

Рис. 5.14. Работа алгоритма декодирования

Далее алгоритм продолжается, как показано в правой части рисунка. Суммируя, как показано выше, можно обнаружить, что P1 = C1, P4 = C5, P3 = C5 +C6 и P2 = C1 + C3 + C5 + C6. На практике из некого распределения выбирается число D; столько пакетов Pi будет использовано для вычисления каждого Cj. Например, D с равной вероятностью может быть 1, 2 или 3. Для вычисления C1 из заданного распределения выбирается случайным образом число D. Затем D пакетов из {P1, P2, …, Pn} суммируются побитно по модулю 2. Процедура повторяется для вычисления C2, …, Cm. Моделирование показывает, что при m ≈ 1,05 × n алгоритм с большой вероятностью восстановит любой из исходных n пакетов с помощью пакетов {C1, C2, …, Cm}. Например, если n = 1000, необходимо послать 1050 пакетов так, чтобы любой из этих 1000 пакетов был восстановлен с высокой вероятностью.

5.4.4. Сетевое кодирование Сетевое кодирование – это метод внутрисетевой обработки, который может увеличить пропускную способность многоадресных передач в сети. Объясним эту возможность по рис. 5.15. b1 T b1

S

b2

b1 W b1 b1 X

Y

b1

b2 U b2

U

W b1⊕b2

b1 b1⊕b2 Y

b2 b2

T b1

b1 Z

S

X

b2

b1⊕b2 Z

Рис. 5.15. Многоадресная передача из S в X и Y без (слева) и с (справа) сетевым кодированием

112

 Глава5.Маршрутизация

На рис. 5.15 источник S посылает пакеты в Y и Z. b1 и b2 – это биты, которые нужно передать. Предположим, что скорость каждого канала в сети – R пакетов в секунду. На рисунке слева показаны два параллельных канала от W к X. Используя кодирование в промежуточном узле, как показано в правой части рисунка, сеть может передавать пакеты со скоростью 2R к Y и Z. Без сетевого кодирования, как показано слева, сеть может передавать только один бит в Y и два бита в Z (или два бита в Y и один – в Z). Можно показать, что без сетевого кодирования сеть может достичь пропускной способности 1,5R как в Y, так и в Z. Обычный результат сетевого кодирования и многоадресной рассылки состоит в следующем. Рассмотрим обычную сеть и предположим, что достижимая скорость передачи от S к любому узлу в N не меньше R. Тогда, используя сетевое кодирование, можно осуществлять многоадресную передачу из S в N со скоростью R. В сети на рис. 5.15 скорость передачи от S к Y равна 2R, как мы можем видеть, рассматривая два непересекающихся пути STY и SUWXY. Аналогично скорость от S до Z также равна 2R. Таким образом, можно передавать пакеты из S в Y и Z со скоростью 2R. Сетевое кодирование также может быть полезно в беспроводных сетях, как показывает следующий простой пример. Рассмотрим сеть на рис. 5.16. Есть два Wi-Fi-клиента – X и Y, которые обмениваются данными через точку доступа Z. Предположим, что X нужно отправить пакет A в Y, а Y нужно отправить пакет B в X. (2) B

(1) A

Z

X A⊕B

(3)

Y A⊕B

Рис. 5.16. Сетевое кодирование для сети Wi-Fi

Обычная процедура обмена A и B между X и Y требует передачи четырех пакетов по беспроводному каналу: пакет A от X к Z, пакет A от Z к Y, пакет B от Y к Z и пакет B от Z к X. Используя сетевое кодирование, устройства передают только три пакета: пакет A из X в Z, пакет B из Y в Z и пакет A ⊕ B (побитное сложение по модулю двух пакетов A и B), передаваемый из Z в X и Y. Действительно, X известен пакет A, поэтому, когда он получает C = A ⊕ B, он может восстановить B, вычислив C ⊕ A. Аналогично Y получает A как A = C ⊕ B.

5.5.Сетиadhoc  113 Экономия одного пакета из четырех требует задержки передачи и сохранения копий. Кроме того, экономия будет меньше, если трафик между X и Y не симметричен. Таким образом, хотя это наблюдение является симпатичным, его преимущества могут не стоить проблем в реальной сети.

5.5. Сети ad hoc Сеть ad hoc (по требованию) состоит из ряда узлов, которые могут напрямую общаться друг с другом. Устройства Wi-Fi могут быть настроены на работу в таком режиме вместо распространенного инфраструктурного режима, в котором все коммуникации осуществляются через точку доступа. Сотовые телефоны обмениваются данными напрямую, а не через базовую станцию сотовой связи, беспроводные сенсорные узлы, передающие информацию друг другу, пока она не достигнет интернет-шлюза. В настоящее время существует очень мало сетей ad hoc, за исключением военных и Mesh-сетей, которые соединяют набор точек доступа Wi-Fi беспроводными каналами связи. Эта технология выглядит многообещающей, но пока имеет лишь умеренный коммерческий успех. Маршрутизация в сети ad hoc является сложной задачей, особенно когда узлы перемещаются. Можно представить два типа алгоритмов маршрутизации: проактивный и реактивный. Проактивный алгоритм рассчитывает пути в фоновом режиме, чтобы при необходимости воспользоваться ими. Реактивный вычисляет пути, только когда это необходимо. Компромисс заключается в выборе между избыточным трафиком из-за сообщений о вычислении пути, задержкой при поиске хорошего пути и качеством пути. Сотни работ сравнивают множество вариантов протоколов. Мы ограничим наше обсуждение лишь несколькими примерами.

5.5.1. AODV Протокол маршрутизации AODV (Ad Hoc On Demand Distance Vector, см. [81]) работает по требованию. Если узел S хочет найти путь к узлу D, он отправляет запрос на маршрут своим соседям: «Привет, я ищу путь к D». Если один из соседей знает путь к D, он отвечает узлу S. В противном случае соседи пересылают запрос дальше. В конце концов ответы приходят обратно с указанием числа хопов до пункта назначения. Сообщения содержат порядковые номера, чтобы узлы могли использовать только самую свежую информацию.

114

 Глава5.Маршрутизация

5.5.2. OLSR Проактивный протокол маршрутизации, Optimized Link State Routing Protocol (OLSR, см. [27]), является адаптацией протокола состояния связи. Идея заключается в том, что сообщения о состоянии соединения посылаются подмножеством узлов вместо того, чтобы заваливать сеть флудом. Таким образом, OLSR – это проактивный алгоритм, очень похожий на стандартный протокол состояния связи.

5.5.3. Муравьиная маршрутизация Алгоритмы муравьиной маршрутизации основаны на поведении муравьев, находящих путь к источнику пищи. Муравьи выделяют феромон по мере продвижения по тропе от колонии к пище и обратно. Феромон постепенно испаряется. Муравьи предпочитают те тропы, где запах феромона сильнее. Тропа с меньшим временем пути туда и обратно имеет более сильный запах и выбирается муравьями. Некоторые алгоритмы маршрутизации используют аналогичные механизмы, и их называют муравьиными алгоритмами.

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

5.5.5. Маршрутизация обратного давления Маршрутизация обратного давления – это форма динамической маршрутизации, которая автоматически адаптируется к изменяющимся характеристикам соединения. Мы исследуем этот механизм в главе 8 «Модели».

5.6. Резюме Маршрутизация – это выбор пути, по которому пакеты следуют в сети. Мы говорили о следующем.

5.7.Задачи  115 • Для масштабируемости и гибкости в интернете используется двухуровневая схема маршрутизации: узлы сгруппированы в автономные системы (домены), а маршрутизация разделена на междоменную и внутридоменную. • Междоменная маршрутизация использует протокол вектора пути (BGP). Этот протокол позволяет адаптироваться к междоменным соглашениям о пиринге или транзите. BGP может не сходиться, если политика разных доменов не согласована. • Внутридоменная маршрутизация использует протокол вектора расстояния (основанный на алгоритме Беллмана–Форда) или протокол состояния связи (основанный на алгоритме Дейкстры). • Алгоритмы кратчайшего пути прямо распространяются на маршрутизацию anycast. • Для многоадресной рассылки кратчайшее дерево (Штайнера) не является деревом кратчайших путей, и его вычисление сложно. Один из подходов к тому, чтобы сделать многоадресную рассылку надежной, заключается в использовании кода удаления пакетов. Сетевое кодирование в принципе может увеличить пропускную способность многоадресного дерева. • Маршрутизация в сетях ad hoc является сложной задачей, поскольку топология сети и ее характеристики связи колеблются. Мы объяснили основные идеи, лежащие в основе AODV, OLSR, муравьиной и географической маршрутизации.

5.7. Задачи 5.1

a) Запустите алгоритм Дейкстры в следующей сети, чтобы определить таблицу маршрутизации для узла 3. b) Повторите (a), используя алгоритм Беллмана–Форда.

3

1

8

2

4 1

2 4

1

5 1

2

3

7

6 4

Рис. 5.17. Рисунок для задачи маршрутизации 5.1

116

5.2.

 Глава5.Маршрутизация

Рассмотрим конфигурацию сети, показанную на рис. 5.18. Предположим, что каждая связь имеет одинаковую стоимость.

G

B

H

A I

F

E D

C

Рис. 5.18. Рисунок для задачи маршрутизации 5.2

5.3.

a) Запустите алгоритм Беллмана–Форда в этой сети, чтобы вычислить таблицу маршрутизации для узла A. Покажите расстояния от узла A до всех других узлов на каждом шаге. b) Предположим, что канал связи A–B не работает. В результате A объявляет расстояние до B, равное бесконечности. Опишите подробно сценарий и определите, сколько времени потребуется C, чтобы узнать, что B недоступен. Рассмотрите сеть, показанную ниже, и предположите следующее: • сетевые адреса узлов задаются ..0., например узел A имеет адрес AS1.E1.0.A, • идентификаторы мостов удовлетворяют условию B1 < B2 < B3, • H не подключен к AS2.E5 для части (a), • спикеры BGP используют политику наименьшей стоимости следующего хопа (шага) маршрутизации (т. е. среди альтернативных путей к пункту назначения AS выбирается тот, который имеет наименьшую стоимость при первом хопе), и • показанная топология сети была стабильной в течение долгого времени, достаточного, чтобы все алгоритмы маршрутизации сошлись и все мосты знали, куда пересылать каждый пакет. a) Какой маршрут, заданный в виде ряда мостов и маршрутизаторов, будет использоваться, если G хочет отправить пакет в A? b) Если узел H был добавлен в AS2.E5, то что произойдет, когда D попытается отправить ему пакет сразу после добавления узла H? В частности, достигнет ли пакет пункта назначения и по каким каналам и/или сетям он будет отправлен?

5.7.Задачи  117 c) Начните с сети в (b). Предположим, что AS2.R2 выходит из строя. Кратко опишите изменения в маршрутизации, которые произойдут в результате этого сбоя. [Подсказка: подумайте о том, как эти изменения повлияют на пакеты, отправленные из AS1 в AS2, и пакеты, отправленные из AS2 в AS1]. Uses RIP D

AS1.B2

C

AS1.B1

AS1. 1 R1 AS1.E2

AS1. R2 5

2

AS1. R3 1

AS1. R5 2

1

AS1.E1

AS1. R4

B A

AS3

3

6 AS6

5

AS4

1 AS2. R1

2

AS2. R3

1

3

AS2.E1

AS2.B2

AS2.B4

AS2.E2

4 AS5

F

AS2.B1 2

AS2.E4 AS2.B3

AS2. R2

AS2.B5 AS2.E5

Uses OSPF

E

G

H

Рис. 5.19. Рисунок для задачи маршрутизации 5.3

5.4.

Рассмотрим беспроводную сеть с узлами X и Y, которые обмениваются пакетами через точку доступа Z. Для простоты предполагаем, что подтверждений на канальном уровне нет. Предположим, что X посылает пакеты в Y со скоростью 2R пакетов в секунду, а Y посылает пакеты в X со скоростью R пакетов в секунду; все пакеты имеют максимально допустимый размер. Точка доступа использует сетевое кодирование. То есть, когда это возможно, она посылает «исключительное или» пакетов от X и Y вместо того, чтобы отправлять эти два пакета по отдельности. a) Какова общая скорость передачи пакетов тремя узлами без сетевого кодирования? b) Какова общая скорость передачи пакетов тремя узлами с сетевым кодированием?

5.5.

Рассмотрим ряд коммутаторов, как показано на рис. 5.20. Предположим следующее:

118

 Глава5.Маршрутизация

• время распространения между источником и первым коммутатором равно времени распространения между любой парой соседних коммутаторов/узлов (обозначим его через T), • узел A хочет передать U байт данных узлу E. Узел A может передать данные либо одним большим сообщением, либо несколькими пакетами. Любое сообщение или пакет должны иметь заголовок размером H байт, • скорость передачи по каждому каналу – S бит/с, • время обработки в коммутаторах пренебрежимо мало. B

C

2 A

1

2 3

S1

D

1

2 3

S2

1

3 S3

E

Рис. 5.20. Рисунок для задачи маршрутизации 5.5

a) Предполагая, что используется пересылка дейтаграмм, представьте таблицу пересылки для коммутатора S1 (считаем, что все маршруты известны). b) Считаем, что сквозная задержка – это задержка с момента передачи A первого бита до момента получения E последнего бита. Вычислите сквозную задержку, если данные отправляются одним сообщением. Вычислите сквозную задержку, если данные отправляются тремя пакетами с одинаковой полезной нагрузкой. Объясните причины разницы. c) Вычислите задержку от начала до получения последнего бита E, если эти три пакета передаются с использованием режима виртуальной цепи. Предположим, что время передачи для сигнальных сообщений пренебрежимо мало по сравнению с временем распространения.

5.8. Ссылки Пиринговые и транзитные соглашения описаны в [78]. Алгоритм Дейкстры был опубликован в [29]. Алгоритм Беллмана–Форда анализируется в [15]. Проблемы маршрутизации QoS изучаются в [85]. Колебания BGP обсуждаются в [37]. BGP описана в [89]. Сетевое кодирование было введено в [8], где доказан основной результат многоадресной рассылки. Пример беспроводной связи приведен в [53]. Коды стирания пакетов изучаются в [93]. AODV объясняется в [81], а OLSR – в [27]. О муравьиной маршрутизации см. в [28]. Обзор географической маршрутизации см. в [97].

Powered by TCPDF (www.tcpdf.org)

Глава

6 Работа в сети Интернет

Интернет – это совокупность сетей. Основная идея заключается в объединении сетей, которые могут использовать различные технологии, такие как беспроводные, проводные, оптические и др. В этой главе мы объясним, как интернет связывается с сетями Ethernet.

6.1. Цель Протоколы интернета обеспечивают систематический способ объединения сетей. Общая цель показана на рис. 6.1. В верхней части рисунка изображены разные сети, каждая со своей собственной схемой адресации и коммутации, соединенные между собой с помощью маршрутизаторов.

A

B

R1

D

G

E

F

H R2 J

C

A

D

B

K

H J

F R1 R2 C

E G

L

K L

Рис. 6.1. Взаимосвязанные сети

В нижней части рис. 6.1 показаны сети, как их видят маршрутизаторы. Ключевым моментом является то, что маршрутизаторы игнорируют детали реальных сетей. Две характеристики являются основными.

120

 Глава6.РаботавсетиИнтернет

• Подключение: все устройства в любой данной сети могут отправлять пакеты друг другу. Для этого устройство упаковывает данные в формат, соответствующий сети, с подходящими адресами. Сеть заботится о доставке пакета. • Возможность широковещательной передачи, Broadcast: каждая сеть поддерживает широковещательную передачу. Например, маршрутизатор R1 на рис. 6.1 может отправлять широковещательный пакет в самую левую сеть. Этот пакет достигнет устройств A, B, C в этой сети. Примеры сетей, которые могут быть соединены с помощью IP, включают Ethernet, Wi-Fi, кабельные сети и многое другое. В этой главе мы сосредоточимся на Ethernet, но должно быть ясно, что можно применить это обсуждение и к другим сетям. На рис. 6.2 показана сеть Ethernet, подключенная к маршрутизатору. Сеть Ethernet обладает двумя характеристиками, необходимыми для присоединения: связностью и возможностью широковещательной передачи. В нижней части рисунка показано, что маршрутизатор видит сеть Ethernet как канал, который соединяет его напрямую со всеми хостами в сети Ethernet. ....

B

C

....

....

L

A ....

.... ....

....

R Интернет Интернет

R

A

B

C

....

L

Рис. 6.2. Сеть Ethernet, как видит ее маршрутизатор

6.2. Основные компоненты: маска, шлюз, ARP1 Мы проиллюстрируем присоединение сетей Ethernet с помощью схемы на рис. 6.3. Здесь показаны две сети Ethernet: сеть с устройствами, имеющими MAC-адреса e1, e2 и e4, и сеть с устройствами, имеющими 1

Address Resolution Protocol – протокол определения адреса. – Прим. ред.

6.2.Основныекомпоненты:маска,шлюз,ARP  121 MAC-адреса e3 и e5. Эти две сети соединены через маршрутизаторы R1 и R2. Типичная ситуация – две сети Ethernet принадлежат одной и той же организации. Например, они могут соответствовать разным этажам в здании кампуса Калифорнийского университета в Беркли. Сети также подключены к остальной части интернета через порт R2. Эта часть включает некоторые другие Ethernet-сети кампуса Беркли в нашем примере. D IP6 IP1 H1

e1

Интернет

e3

H3 IP3

H2 IP2

e2 e4

R1

IP4

R2

e5 IP5

Рис. 6.3. Подключенные сети Ethernet

6.2.1. Адреса и подсети В дополнение к MAC-адресу каждому устройству присваивается IPадрес, как показано на рисунке. Этот адрес зависит от местоположения. Кроме того, устройства с этими адресами образуют подсети. Например, на рис. 6.3 сеть Ethernet слева – это одна подсеть, а справа – другая. IPадреса устройств {e1, e2, e4} в первой подсети имеют другой префикс (начальная битовая строка), чем адреса {e3, e5} во второй подсети. Маска подсети определяет количество старших битов в IP-адресах, которые являются общими для всех интерфейсов устройств, подключенных к данной сети Ethernet. Например, допустим, что масками подсетей Ethernet являются первые 24 бита. Это означает, что два IP-адреса IPi и IPj интерфейсов, подключенных к одной и той же сети Ethernet, имеют одинаковые первые 24 бита. Если IPi и IPj не находятся в одной сети Ethernet, то их первые 24 бита не совпадают. На рисунке первые 24 бита IP1, который мы обозначаем IP1/24, совпадают с IP2/24, но не совпадают с IP3/24.

6.2.2. Шлюз Маршрутизатор шлюза сети Ethernet – это маршрутизатор, который соединяет эту сеть Ethernet с остальной частью интернета. Например,

122

 Глава6.РаботавсетиИнтернет

маршрутизатором шлюза левой сети Ethernet (с устройствами H1, H2) является R1. Хост H1 знает IP-адрес интерфейса R1 в своей сети Ethernet. Маршрутизатором шлюза сети справа является R2.

6.2.3. DNS-сервер Устройства знают адрес локального DNS-сервера. Например, если сети Ethernet находятся в Кори Холл, локальным сервером Ethernet является сервер домена eecs.berkeley.edu. Основные концепции DNS мы обсудили в предыдущих главах, посвященных архитектуре и принципам интернета.

6.2.4. ARP Протокол разрешения адресов (Address Resolution Protocol), или ARP, позволяет устройствам находить MAC-адрес интерфейсов в том же Ethernet, который соответствует заданному IP-адресу. Вот как это работает. Предположим, что хост H1 хочет найти MAC-адрес, соответствующий IP-адресу IP2. Хост H1 посылает специальный широковещательный (Broadcast) ARP-пакет в сеть Ethernet. То есть адрес назначения – это «широковещательный MAC-адрес», представленный 48 единицами. Пакет имеет поле, указывающее, что это «ARP-запрос», и в нем также указан IP-адрес IP2. Таким образом, ARP-запрос имеет вид [all | e1 | кто IP2?], адреса означают «всем устройствам, от e1». Коммутатор Ethernet, который получает широковещательный пакет, повторяет его на всех своих выходных портах. Когда устройство получает пакет ARP-запроса, оно сравнивает свой собственный IP-адрес с адресом IP2. Если адреса не совпадают, устройство игнорирует запрос. Если IP2 является IP-адресом устройства, то оно отвечает на запрос пакетом Ethernet [e1 | e2 | Я – IP2]. Адрес источника этого ответа говорит H1, что e2 – это MAC-адрес, соответствующий IP2. Обратите внимание, что маршрутизатор не пересылает пакет с широковещательным Ethernet-адресом.

6.2.5. Конфигурация Подводя итог, можно сказать, что для подключения сети Ethernet к интернету каждое устройство должно иметь IP-адрес, знать маску подсети, знать IP-адрес шлюза маршрутизатора и IP-адрес DNS-сервера. Кроме того, каждое устройство должно реализовать ARP.

6.3. Примеры Рассмотрим, как устройство посылает пакет другому устройству в подсетях, показанных на рис. 6.3. Поговорим о двух отдельных случаях: первый – устройства находятся в одной подсети; второй – они находятся в разных подсетях.

6.3.Примеры  123

6.3.1. Одна и та же подсеть Сначала мы рассмотрим, как устройство H1 отправляет пакет в H2, предполагая, что H1 знает IP2 (см. рис. 6.4). Поскольку IP1/24 = IP2/24, H1 знает, что IP2 находится в той же подсети Ethernet, что и H1. Соответственно, H1 должен отправить пакет как Ethernet-пакет непосредственно в H2. Чтобы сделать это, H1 нужен MAC-адрес IP2. Он находит этот адрес с помощью ARP, как мы рассказывали выше. Как только H1 узнает e2, он формирует пакет [e2 | e1 | IP1 | IP2 | X], где e2 – MAC-адрес назначения, e1 – MAC-адрес источника, IP1 – IP-адрес источника, IP2 – IP-адрес назначения, а X – остальная часть пакета. Обратите внимание, что IP-пакет [IP1 | IP2 | X] из H1 в H2 преобразуется в пакет Ethernet с MAC-адресами [e2 | e1]. e1 (1) IP1 H1 (3)

IP2 H2

e2 (2)

e3

(1) : all e1 Who is IP2?

H3 IP3 (3) : e2 e1 IP1 IP2 X

(2) : e1 e2 I am IP2 e4

R1

R2

e5

Рис. 6.4. Передача в ту же подсеть

6.3.2. Разные подсети Покажем, как H1 отправляет пакет в H3, предполагая, что H1 знает IP3 (см. рис. 6.5). Поскольку IP1/24 ≠ IP3/24, H1 понимает, что H3 и H1 находятся в разных подсетях Ethernet. Тогда H1 должен сначала отправить пакет в шлюз. Зная IP-адрес шлюза R1, скажем IP4, H1 использует ARP, чтобы найти MAC-адрес e4. Затем H1 отправляет пакет [e4 | e1 | IP1 | IP3 | X] в R1. Обратите внимание, что это IP-пакет [IP1 | IP3 | X] от H1 в H3, который заключен в Ethernet-пакет от H1 в R1. Получив этот пакет, R1 распаковывает его, чтобы восстановить [IP1 | IP3 | X], и обращается к своей таблице маршрутизации, чтобы найти выходной порт, соответствующий IP3 получателя. Затем R1 отправляет пакет через этот порт в R2, заключая пакет в соответствующий формат. (На рисунке показан особый заголовок этой связи.) Получив пакет [IP1 | IP3 | X], маршрутизатор R2 просматривает свою таблицу маршрутизации и обнаруживает, что IP3 находится в той же подсети Ethernet, что и его интерфейс e5. Используя ARP, R2 находит MAC-адрес e3, который соответствует IP3, и

124

 Глава6.РаботавсетиИнтернет

отправляет Ethernet-пакет [e3 | e5 | IP1 | IP3 | X]. Обратите внимание, что IP-пакет [IP1 | IP3 | X] не модифицируется разными каналами, но его упаковка меняется. e1 (1) IP1 H1

IP2 H2 e2

e3

(1) : e4 e1 IP1 IP3 X (4) : e5 e3 I am IP3

(4)

H3 IP3

(2) : SH IP1 IP3 X (2) e4

R1

e5 (5) R2 (3)

(5) : e3 e5 IP1 IP3 X

(3) : all e5 Who is IP3? Рис. 6.5. Передача в другую подсеть

6.3.3. Поиск IP-адресов До сих пор мы предполагали, что H1 знает IP2 и IP3. Что, если H1 знает только имя H2, но не знает его IP-адрес IP2? В этом случае для поиска IP2 H1 использует DNS. Вспомните, что H1 знает IP-адрес сервера DNS. Используя ту же процедуру, которую мы только что обсуждали, H1 может послать DNS-запрос как для обнаружения IP2, так и IP3.

6.3.4. Фрагментация В общем случае IP-пакет может потребоваться фрагментировать. Скажем, пакет [IP1 | IP3 | X] имеет размер 1500 байт, что допустимо в сетях Ethernet. Предположим, что канал связи между маршрутизаторами R1 и R2 может передавать пакеты только размером 500 байт (как это может быть в случае некоторых беспроводных соединений). В этом случае сетевой протокол IP разбивает пакет на фрагменты и использует заголовок пакета для указания того, что это за пакет и как размещаются его фрагменты в пакете. Пункт назначения H3 должен собрать фрагменты снова вместе. Детали того, как заголовок указывает на пакет и расположение его фрагментов, не являются существенными для нас. Отметим лишь, что каждый IP-пакет содержит, помимо адресов, некоторую управляющую информацию, необходимую для фрагментации и сборки в месте назначения. Вся эта информация находится в IP­заголовке, который защищен кодом обнаружения ошибок.

6.5.NAT  125

6.4. DHCP При подключении ноутбука к сети Ethernet или Wi-Fi, ему необходим IP-адрес, соответствующий этой сети. Когда вы подключаете ноутбук к другой сети, ему требуется другой IP-адрес. Вместо того чтобы резервировать постоянный IP-адрес для вашего ноутбука, сеть поддерживает пул адресов, которые она назначает по мере необходимости. Этот протокол называется протоколом динамического конфигурирования хостов (Dynamic Host Configuration Protocol, DHCP), и работает он следующим образом. При подключении ноутбука к сети ноутбук отправляет запрос DHCP, запрашивая IP-адрес. В сети есть DHCP-сервер, обычно реализуемый маршрутизатором, который поддерживает список доступных IP-адресов. Затем DHCP-сервер выделяет адрес ноутбуку. Периодически ноутбук отправляет запрос на продление «аренды» IP-адреса. Если это не удается сделать, например вы выключаете ноутбук или переносите его в другое место, сервер помещает адрес обратно в пул доступных адресов. DHCP также широко используется интернет-провайдерами для назначения адресов устройствам своих клиентов. Этот механизм уменьшает количество адресов, которые провайдер должен резервировать. Обратите внимание, что устройство, получающее IP-адрес с помощью протокола DHCP, имеет временный адрес, который неизвестен другим устройствам. Поэтому это устройство не может быть сервером.

6.5. NAT В конце 1990-х гг. инженеры интернета поняли, что через несколько лет IP-адреса закончатся. Тогда они разработали новую схему адресации, которая использует 128 бит вместо 32. Однако эти новые адреса требуют новой версии интернет-протокола, что приводит к необходимости значительного объема работы по настройке тысяч маршрутизаторов. Как говорилось выше, DHCP является одним из механизмов, который уменьшает количество необходимых IP-адресов, выделяя вместо постоянного адреса временный. Преобразование сетевых адресов (Network Address Translation, NAT) – еще одна схема, позволяющая повторно использовать IP-адреса. Большинство домашних маршрутизаторов использует NAT. Эти устройства в домашней сети используют набор IP-адресов, называемых частными адресами, которые также используются многими другими домашними сетями. Рисунок 6.6 показывает, как работает NAT. Хитрость заключается в использовании номеров портов транспортного протокола. Чтобы иметь возможность связывать потоки байтов или дейтаграммы с определенными приложениями внутри компьютера, транс-

126

 Глава6.РаботавсетиИнтернет

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

[IP источника | IP назначения | порт источника | порт назначения | … | данные]. [IPa | IPx | TCPb | TCPn | …] [IPb | IPx | TCPm | TCPn | …]

IPa [IPx | IPa | TCPn | TCPb | …]

NAT

IPx

Интернет

[IPx | IPb | TCPn | TCPm | …]

[TCPb → IPb, TCPm]

IPc IPb Рис. 6.6. Преобразование сетевых адресов

Например, протокол HTTP использует порт 80, а электронная почта – порт 25. NAT использует номер порта следующим образом. Частные адреса устройств внутри дома – это IPb, IPc. Адрес NAT – IPa. Предположим, что IPb отправляет пакет [IPb | IPx | TCPm | TCPn | …] устройству с IP-адресом IPx. В этом пакете TCPm – это номер порта источника, а TCPn – номер порта назначения. NAT преобразует этот пакет в [IPa | IPx | TCPb | TCPn | …], где TCPb выбирается устройством NAT, которое отмечает, что TCPb соответствует (IPb, TCPm). Когда получатель с адресом IPx и портом TCPn отвечает на этот пакет, он посылает пакет [IPx | IPa | TCPn | TCPb | …]. Когда NAT получает этот пакет, он превращает обратно номер порта TCPb в пару (IPb, TCPm) и отправляет пакет [IPx | IPb | TCPn | TCPm | …] устройству IPb. Обратите внимание, что эта схема работает только тогда, когда пакет инициируется внутри домашнего роутера. Невозможно отправить запрос непосредственно устройству, такому как IPb, можно только отвечать на запросы от этого устройства. Некоторые веб-серверы поддерживают соединение, инициированное домашним устройством, чтобы оно было доступно извне.

6.7.Задачи  127

6.6. Резюме Основная функция интернета заключается в соединении таких сетей, как Ethernet, Wi-Fi, кабельные сети. Вот основные механизмы. • Интернет соединяет «локальные сети», каждая из которых имеет свою систему адресации и широковещательные возможности. • При использовании подсетей IP-адреса хостов в одной подсети имеют один и тот же префикс, длина которого определяется маской подсети. Устройство знает адрес маршрутизатора для выхода из подсети и адрес локального DNS-сервера. В подсетях сравниваются префиксы адреса и используется ARP для преобразования IP-адреса в адрес локальной сети. • Когда компьютер подключается к сети, он может получить временный IP-адрес с помощью DHCP. • NAT позволяет использовать в интернете реплицированные IPадреса.

6.7. Задачи 6.1

a) Сколько IP-адресов необходимо арендовать у провайдера для поддержки DHCP-сервера, который использует NAT для обслуживания N клиентов, если каждый клиент использует не более P портов? b) Если M уникальных клиентов ежедневно запрашивают IP-адреса у вышеупомянутого DHCP-сервера, то какое максимальное время аренды допустимо для предотвращения отказа в доступе новым клиентам, если предположить, что запросы равномерно распределены в течение дня и что используемая схема адресации поддерживает максимум N клиентов?

6.2

Ниже приведена запись DNS для вымышленной корпорации OK Computer. a) Если вы введете http://www.okcomputer.com в своем веб-браузере, к какому IP-адресу подключится ваш веб-браузер? b) Если вы отправите электронное сообщение на адрес thom@ okcomputer.com, на какой IP-адрес оно будет доставлено? c) Поле TTL обозначает максимальное время, в течение которого DNS-сервер может кешировать запись. Обоснуйте, почему для большинства TTL было выбрано значение 86 400 с (1 день) вместо меньшего или большего времени и почему для записи MX было выбрано значение TTL в 60 с?

128

 Глава6.РаботавсетиИнтернет

Таблица 6.1. Таблица для internetworking к задаче 6.2 Имя

Тип

Значение

TTL (секунды)

okcomputer.com

A

164.32.15.98

86 400 (1 день)

okcomputer.com

NS

thom.yorke.net

86 400

okcomputer.com

NS

karma.okcomputer.com

86 400

okcomputer.com

MX

android.okcomputer.com

60

lucky.okcomputer.com

A

164.32.12.8

86 400

www.okcomputer.com

CNAME

lucky.okcomputer.com

86 400

android.okcomputer.com

A

164.32.15.99

86 400

6.8. Ссылки Протокол разрешения адресов описан в [82], подсети – в [73], DHCP – в [30], и NAT – в [102].

Глава

7 Транспорт

Транспортный уровень контролирует сквозную доставку пакетов через интернет между устройством-источником и устройством-получателем. Транспортный протокол интернета реализует две транспортные услуги: ориентированную на подключение службу надежной доставки потока байтов и службу доставки дейтаграмм без установки соединения. Эта глава объясняет основные операции этого уровня.

7.1. Транспортные услуги Сетевой уровень интернета (интернет-протокол, IP) обеспечивает базовую услугу доставки пакетов от одного узла к другому. Эта доставка не надежна. Транспортный уровень добавляет несколько важных возможностей, таких как мультиплексирование, контроль ошибок, контроль перегрузок и управление потоком, о чем мы расскажем в этой главе. На рис. 7.1 показаны уровни протокола в трех различных узлах интернета. Транспортный уровень определяет порты, которые распознают информационные потоки. Это логические порты, их не следует путать с физическими портами коммутаторов и маршрутизаторов. Хост слева имеет два порта p1 и p2, к которым подключены прикладные процессы. Порт p2 этого хоста взаимодействует с портом p1 центрального хоста. К этому порту подключен протокол HTTP. Порты имеют номера от 1 до 65 535 и бывают трех типов: хорошо известные порты (1 – 1023), соответствующие фиксированным процессам, зарегистрированные порты (1024 – 49 451), которые были зарегистрированы компаниями для определенных приложений, и динамические и/или частные порты, которые могут быть назначены динамически. Например, основной протокол электронной почты SMTP закреплен за номером 25, HTTP – за 80, протокол потокового вещания в реальном времени RTSP – за 540, игра Quake Wars – за 7133, Pokemon Netbattle – за 30 000, traceroute – за 33 434 и т. д.

130

 Глава7.Транспорт Порты

HTTP RA DNS

Приложения

p1

p2

p1

p2

p3

p1

p2

Транспорт

IP

A

B

C

[A | B | p1 | p2 | …] Рис. 7.1. Транспортный уровень контролирует доставку информации между портами различных хостов

Таким образом, на транспортном уровне информация доставляется от порта источника на хосте с IP-адресом источника к порту назначения на хосте с другим IP-адресом. Транспортный уровень реализует два протокола между двумя хостами: UDP (User Datagram Protocol, протокол пользовательских дейтаграмм) и TCP (Transmission Control Protocol, протокол управления передачами) со следующими характеристиками: • UDP доставляет отдельные пакеты. Доставка ненадежна; • TCP доставляет поток байтов. Поток байтов надежен: два хоста договариваются о повторной передаче пакетов, если они не доходят правильно. Более того, источник регулирует доставку для управления перегрузками в маршрутизаторах (управление перегрузками) и в устройстве назначения (управление потоком). Обобщая, можно сказать, что информационный поток имеет следующие параметры: (IP-адрес источника, транспортный порт источника, IP-адрес назначения, транспортный порт назначения, протокол), протокол – это UDP или TCP. Номера портов позволяют нам мультиплексировать пакеты от различных приложений, которые работают на данном хосте.

7.2. Транспортный заголовок На рис. 7.2 показан заголовок каждого UDP-пакета. В заголовке указываются номера портов и длина UDP-пакета (включая UDP-заголовок и полезную нагрузку, но не IP-заголовок). Заголовок содержит необязательную контрольную сумму UDP, вычисляемую по UDP-пакету.

7.3.СостоянияTCP  131 0

16

31

Порт источника

Порт назначения

Длина UDP

Контрольная сумма UDP

Полезная нагрузка (переменная)

Рис. 7.2. Заголовок UDP-пакетов содержит управляющую информацию

Каждый пакет TCP имеет заголовок, показанный на рис. 7.3. Порт источника

Порт назначения

Порядковый номер Подтверждение Длина заголовка (HDRLen)

Зарезервировано

Флаги

Контрольная сумма

Объявленное окно Указатель срочности

Опции (переменная) Полезная нагрузка (переменная)

Рис. 7.3. Заголовок пакетов TCP содержит управляющую информацию

В этом заголовке порядковый номер, подтверждение и объявленное окно используются протоколом Go Back N, описанным далее в этой главе. Флаги следующие: • SYN, FIN: установление/завершение TCP-соединения; • ACK: устанавливается, когда поле квитирования действительно; • URG: срочные данные; Urgent Pointer, указатель срочности показывает, где начинаются несрочные данные; • PUSH: не ждать заполнения сегмента; • RESET: прервать соединение. Точные функции основных полей описаны ниже. Заголовок UDP представляет собой урезанную версию заголовка TCP, поскольку его основная функция – мультиплексирование через номера портов.

7.3. Состояния TCP TCP-соединение проходит через следующие фазы: установку, обмен данными, закрытие (см. рис. 7.4). Установка происходит следующим образом. Клиент устанавливает соединение с сервером в три этапа: • клиент отправляет SYN-пакет (TCP-пакет с установленным флагом SYN, означающим, что это пакет синхронизации). В SYN-пакете задается случайное число X;

 Глава7.Транспорт

132

• сервер отвечает на SYN пакетом SYN.ACK (т. е. установкой флагов SYN и ACK), в котором указано случайное число Y и ACK с порядковым номером X +11; • клиент отправляет первый пакет данных с порядковым номером X +1 и ACK с порядковым номером Y +1. Затем хосты обмениваются данными и подтверждают каждый корректный пакет данных либо в пакете данных, либо в пакете, содержащем только ACK. Когда хост A отправил все свои данные, он закрывает свое соединение с другим хостом, хостом B, посылая FIN, и затем ждет FIN.ack. В конце концов хост B также закрывает свое соединение, посылая FIN и ожидая FIN.ack. После отправки своего FIN.ack хост A ждет, чтобы убедиться, что хост B не пошлет снова FIN, который хост A должен будет затем подтвердить. Этот последний шаг полезен в случае, если FIN.ack от A будет потерян. SYN отправлен Закрыто Установлено A B

SYN

Ожидание FIN 1

DATA+ACK ACK SYN+ACK

Прослушать SYN получен Установлено

FIN

Ожидание FIN 2

FIN.ACK

Ожидание закрыто

Время ожидания

FIN Последний ACK

(1)

Закрыто

FIN.ACK Закрыто

(1) A ждет на случай, если B передаст FIN, и A снова должен его подтвердить

Рис. 7.4. Фазы и состояния TCP-соединения

7.4. Контроль ошибок При использовании TCP хосты контролируют ошибки путем повторной передачи пакетов, которые не были подтверждены до истечения тайм-аута. Сначала мы опишем упрощенную схему под названием stop-and-wait, а затем объясним механизм Go Back N в TCP.

7.4.1. Stop-and-wait Самая простая схема повторной передачи после тайм-аута – stop­and­ wait. При использовании этой схемы источник посылает пакет, ожидает подтверждения до T с. Если подтверждение не пришло, повторно передает пакет и переходит к следующему пакету, когда получает подтверждение. Даже если ошибок нет, источник может отправлять только 1

Для простоты мы говорим о порядковых номерах пакетов. Однако TCP на самом деле реализует порядковые номера, связанные с передаваемыми байтами.

7.4.Контрольошибок  133 один пакет каждые T с, и T должно быть таким же большим, как время прохождения по сети в оба конца (время round-trip). Обычно это время в интернете около 40 мс, и это значит, что скорость передачи пакетов в 1500 байт равна 1500 × 8/0,04 = 300 Кбит/с. Если скорость соединения больше, то пропускную способность можно увеличить, если разрешить источнику посылать более одного пакета до получения первого подтверждения. Именно это и делает Go Back N.

7.4.2. Go Back N В базовой версии TCP используется следующая схема, называемая Go Back N и показанная на рис. 7.5. В верхней части рисунка строка пакетов с порядковыми номерами 1, 2, …, которые источник (слева) посылает в пункт назначения (справа). Были получены пакеты 1, 2, 3, 4, 5, 7, 8, 9. Пакет 6 был потерян. Окно передачи

Приемник

12 11 10 9 8 7 6 5 4 3 2 1

9 8 7 - 5 4 3 2 1 6 Следующий ожидаемый пакет

12 11 10 9 8 7 6 5 4 3 2 1

6

12 11 10 9 8 7 6 5 4 3 2 1

9 8 7 - 5 4 3 2 1 9 8 7 6 5 4 3 2 1

10 12 11 10 9 8 7 6 5 4 3 2 1

10

9 8 7 6 5 4 3 2 1

Рис. 7.5. Протокол Go Back N

Схема показывает, что в любой момент времени источник может отправить до N пакетов, которые еще не были подтверждены (на рисунке N = 4). Когда приемник получает пакет, он посылает ACK с порядковым номером следующего пакета, который он ожидает получить. Таким образом, если приемник получает пакеты 1, 2, 3, 4, 5, 7, 8, 9, он посылает ACK 2, 3, 4, 5, 6, 6, 6, 6 по мере получения этих пакетов. Если ACK для пакета не приходит через некоторое время, источник повторно передает этот пакет и, возможно, последующие N – 1 пакетов. Источник сдвигает свое окно размером N так, чтобы оно начиналось с последнего пакета, который не был подтвержден. Это окно, обозначенное на рисунке как окно передачи, указывает на пакеты, которые источник может передавать. Предположим, что источник повторно передает пакет 6 и этот пакет успешно доходит до получателя. Получатель посылает в ответ подтверждение с порядковым номером 10. Когда источник получает это ACK, он перемещает свое окно передачи на [10, 11, 12, 13] и

134

 Глава7.Транспорт

отправляет пакет 10. Обратите внимание, что источник может повторно передать пакеты 7, 8, 9 сразу после пакета 6 до получения ACK 10. Если ошибок нет, Go Back N посылает N пакетов за каждое время круговой задержки (предполагается, что передача N пакетов занимает меньше времени, чем время круговой задержки). Таким образом, пропускная способность этого протокола в N раз больше, чем у протокола stop-and-wait.

7.4.3. Выборочные подтверждения Go Back N может повторно передавать пакеты без необходимости. На рис. 7.6 показаны пакеты и квитанции, переданные источником и приемником, соответственно, вместе с соответствующими номерами пакетов и подтверждений. В верхней части рисунка показан механизм Go Back N с окном размера 4, второй пакет был потерян. Через некоторое время отправитель повторно передает пакеты 2, 3, 4 и передает пакет 5. 1

2

3

4

2

2

1

2

3

2

2

1 3

4

5

2

4

1

3

5

6

7

8

1 3 4

Рис. 7.6. Сравнение механизмов Go Back N (вверху) и выборочных ACK (внизу)

Пункт назначения уже получил пакеты 3 и 4, так что эти повторные передачи являются ненужными; они добавляют задержку и перегрузку в сети. Чтобы предотвратить такие ненужные повторные передачи, одна из версий TCP использует выборочные подтверждения, как показано в нижней части рисунка. При использовании этой схемы приемник посылает положительный ACK для всех пакетов, которые он получил правильно. Таким образом, получив пакет 3, приемник посылает ACK, который указывает, что он получил пакеты 1 и 3. Когда отправитель получает этот ACK, он повторно передает пакет 2 и т. д. Рисунок показывает, что использование выборочных (селективных) подтверждений увеличивает пропускную способность связи. Специальное поле в SYN-пакете указывает, принимает ли отправитель селективные ACK. Получатель затем указывает в SYN.ACK, будет ли

7.5.Управлениеперегрузками  135 он использовать селективные ACK. В этом случае поля в TCP-заголовке пакетов ACK указывают до четырех блоков непрерывных байтов, которые получатель получил правильно. Например, поля могут содержать информацию [3; 1001, 3000; 5001, 8000; 9001, 12 000], что указывает на то, что приемник получил все байты от 1001 до 3000, от 5001 до 8000, а также от 9001 до 12 000. Поле длины, содержащее значение 3, означает, что остальные поля указывают на три блока смежных байтов. Подробности см. в [69].

7.4.4. Таймеры Как долго источник должен ждать подтверждения? Поскольку время круговой задержки варьируется от одного соединения к другому, значение тайм-аута должно быть адаптировано к типичному времени круговой задержки. Для этого источник измеряет это время Tn, n = 1, 2, … для следующих друг за другом пакетов. То есть Tn – это время между передачей n-го пакета и получением соответствующего подтверждения. (Источник игнорирует пакеты, которые не подтверждены.) Затем источник вычисляет среднее значение An из полученных значений времени круговой задержки {T1, …, Tn} и среднее отклонение Dn от этого среднего значения. Затем он устанавливает значение тайм-аута равным An + 4Dn. Предполагается маловероятным, что время круговой задержки превысит An + 4Dn, если подтверждение вообще придет. Источник с помощью рекурсии вычисляет An и Dn как экспоненциальные средние, определяемые следующим образом (b < 1 является параметром алгоритма): An+1 = (1 – b)An + bTn + 1 и Dn + 1= (1 – b)Dn + b |Tn + 1 – An + 1|, n ≥ 1 с A1 = T1 и D1 = T1. На рис.7.7 показано экспоненциальное усреднение времени Tn, обозначенное стрелками на графике для разных значений параметра b. Как видно из графика, когда b мало, An вычисляет среднее значение Tn за более длительный период времени и поэтому менее чувствительно к недавним значениям этого параметра.

7.5. Управление перегрузками В интернете множество раздельных потоков информации совместно используют каналы связи. Устройства не знают ни топологии сети, ни пропускную способность каналов, ни количество потоков, которые используют каналы. Задача состоит в том, чтобы разработать схему управления перегрузками, которая позволяет различным потокам использовать каналы достаточно справедливо.

136

 Глава7.Транспорт 200

An с b = 0.5 150

100

50

n Tn

An с b = 0.1

0

Рис. 7.7. Экспоненциальная скользящая средняя

7.5.1. AIMD Алгоритм перегрузки TCP – AIMD (additive increase – multiplicative decrease, аддитивное увеличение / мультипликативное уменьшение). Этот алгоритм пытается справедливо разделить каналы между соединениями, которые их используют. Рассмотрим два устройства A и B, показанные на рис. 7.8, которые посылают потоки со скоростями x и y, совместно используя канал с пропускной способностью C. Источники последовательно увеличивают x и y до тех пор, пока получают подтверждения. Когда подтверждения не приходят, они подозревают, что маршрутизатор отбросил пакеты, что и происходит в данном случае вскоре после того, как x + y превышает C. Тогда источники делят свою скорость на 2 и снова начинают увеличивать ее. Предположим, что начальная пара скоростей (x, y) соответствует точке 1 в правой части рисунка. Поскольку сумма скоростей меньше C, буфер канала не накапливает отставание, источники получают подтверждения и постепенно линейно увеличивают свою скорость с одинаковой скоростью (в идеале). Соответственно, пара скоростей следует по отрезку прямой из точки 1 в точку 2. Когда сумма скоростей превышает C, то скорость поступления в буфер превышает скорость отправления, и буфер начинает накапливать пакеты. В конце концов, когда в буфере заканчивается место для хранения, он вынужден отбрасывать поступающие пакеты. Некоторое время спустя источники замечают отсутствие подтверждений и делят свою скорость на 2, так что пара скоростей скачет к точке 3, по крайней мере, если верно предположение, что источники делят свою скорость на 2 в одно и то же время. Процесс продолжается таким же образом, и мы видим, что пара скоростей в конечном итоге приближается к прямой S, где скорости равны.

7.5.Управлениеперегрузками  137 y C 2 A

4

3

x C y

3 S

B

x

Рис. 7.8. Аддитивное увеличение, мультипликативное уменьшение

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

7.5.2. Усовершенствования: быстрая ретрансляция и быстрое восстановление Предположим, что пункт назначения получает пакеты 11, 12, 13, 15, 16, 17, 18. Он посылает ACK 12, 13, 14, 14, 14, 14, 14. Получив дублирующие ACK, источник понимает, что пакет 14 не дошел. Схема быстрой ретрансляции TCP начинает повторную передачу пакета после трех повторений ACK, что позволяет избежать ожидания тайм-аута. Схема быстрого восстановления TCP разработана для того, чтобы не ждать полное время круговой задержки после деления размера окна на 2. Чтобы увидеть, как работает эта схема, сначала обратите внимание на то, как работает «нормальная» (т. е. без быстрого восстановления) схема (см. верхнюю часть рис. 7.9). Предположим, что приемник получает пакеты 99, 100, 102, 103, …, 132 и посылает ACK 100, 101, 101, 101, 101, …, 101. Допустим, размер окна равен 32, когда отправитель посылает пакет 132. Когда источник получает третий раз ACK с порядковым номером 101, он уменьшает свое окно до 32/2 = 16 и начинает повторную передачу 101, 102, 103, …, 117. Обратите внимание, что источник должен подождать время после отправки копии 101, чтобы получить ACK 133 и иметь возможность передать пакеты 133, 134,….

138

 Глава7.Транспорт Без быстрого восстановления: W: 32/2 = 16 101

132

Должен ждать 3rd DA

101

С быстрым восстановлением: 147 101

132

4

133

148

133 3rd DA 101

Рис. 7.9. TCP без быстрого восстановления и с быстрым восстановлением

Лучшая схема, называемая быстрым восстановлением, показана в нижней части рис. 7.9. При использовании этой схемы к тому времени, когда получены три копии ACK 101 (с порядковым номером 133), будут уже отправлены пакеты 101, 133, 134, …, 147. Таким образом, существует ровно 15 неподтвержденных пакетов (133, 134, …, 147). Новое окно 32/2 = 16 позволяет источнику немедленно передать пакет 148, и нормальная работа окна может возобновиться с размером окна 16. Обратите внимание, что при такой схеме исключается время ожидания. Чтобы отслеживать, что нужно делать, источник изменяет свое окно следующим образом. Когда он получает третий раз ACK 101, отправитель посылает копию пакета 101 и изменяет размер своего окна с W  =  32 до W/2 + 3 = 32/2 + 3 = 19. Затем он увеличивает свое окно на единицу всякий раз, когда получает еще одно подтверждение ACK от 101. Поскольку источник уже получил оригинальный и три дублированных ACK от передачи W = 32 пакетов 100, 102, 103…132, он получит еще W – 4 = 28 дубликатов ACK и увеличит свое окно на W – 4 до W/2 + 3 + (W – 4) = W + W/2 – 1 = 47, и он может отправить все пакеты до 147, поскольку последний полученный им ACK был 100, а неподтвержденными пакетами являются {101, 102, …, 147}. Как только потерянный пакет подтвержден, размер окна устанавливается на W/2, и, поскольку теперь есть W/2 – 1 неотправленных пакетов, источник может отправить следующий пакет немедленно.

7.5.3. Регулировка производительности Пока ни один пакет не потерян, протокол скользящего окна посылает N пакетов за каждое время круговой задержки (время получения ACK после отправки пакета). TCP регулирует производительность, изменяя

Powered by TCPDF (www.tcpdf.org)

Содержание

 139

размер окна N. Основная идея заключается в приближении к AIMD. Каждый раз, получая ACK, отправитель заменяет N на N + 1/N. Поскольку отправитель за время круговой задержки получает N ACK, то в конечном итоге он добавляет 1/N около N раз, таким образом увеличивая размер окна на 1. И тем самым источник увеличивает свою производительность примерно на один пакет за каждое время круговой задержки. Такое увеличение размера окна позволяет источнику в полной мере использовать пропускную способность сети при изменении количества соединений. Когда источник не получает ACK, он делит размер своего окна на 2. Обратите внимание, что соединения с меньшим временем круговой задержки увеличивают свою производительность быстрее, чем другие, что несправедливо. Эта схема может занять много времени для увеличения размера окна до приемлемой производительности при быстром соединении. Чтобы ускорить начальную фазу, соединение начинает с удвоения размера окна каждый раз, пока не пропустит ACK либо размер окна не достигнет порогового значения (см. следующий раздел). Эта схема называется медленный старт (Slow Start). Чтобы удвоить размер окна за время круговой задержки, источник увеличивает размер окна на 1 каждый раз, когда получает ACK. Таким образом, если размер окна был N, источник должен получить N ACK за следующее время круговой задержки и увеличить размер окна на N, до 2N. Если источник не получает ACK, то после тайм-аута он возобновляет фазу медленного старта с размером окна 1. При использовании выборочных подтверждений окно может расти/ смещаться, не беспокоясь о потери пакетов. То есть если размер окна равен 150 и подтверждения показывают, что приемник получил байты [0,  1199], [1250, 1999], [2050, 2999], то источник может отправить байты [1200, 1249], [2000, 2049], [3000, 3049]. Обратите внимание, что промежуток между последним байтом, который не был подтвержден (1200), и последним байтом, который может быть отправлен (3049), больше размера окна, что невозможно при использовании функции Go Back N с кумулятивными подтверждениями. Правила для настройки окна те же, что и для кумулятивных подтверждений.

7.5.4. Размер окна TCP На рис. 7.10 показано, как размер окна TCP изменяется со временем. Во время фазы медленного старта (на рисунке обозначена как SS) окно увеличивается экспоненциально быстро, удваиваясь с каждым временем круговой задержки. Если происходит тайм-аут, когда размер окна равен W0, источник запоминает значение W0 /2. Затем он перезапускается с размером окна, равным 1, и удваивает его каждое время круговой задержки, пока размер окна не достигнет W0 /2. После этого протокол переходит в фазу предотвращения перегрузок (congestion avoidance) (обозначена как CA). Во время фазы CA источник увеличивает размер окна на один пакет

 Глава7.Транспорт

140

каждое время круговой задержки. Если источник видит три повторяющихся ACK, он выполняет быструю повторную передачу и быстрое восстановление. Если происходит тайм-аут, источник возобновляет фазу медленного старта. 64 KB W0

1.5W - 1 × 0.5

1.5W' - 1

W

W0 /2

× 0.5

W'

× 0.5

+3

0.5W

× 0.5

+3

1 TO

3DA

SS

3DA CA

TO SS

CA

Рис. 7.10. Изменение окна TCP во времени

7.5.5. Терминология Различные модификации TCP получили новые названия. Оригинальная версия, с функцией Go Back N, называется TCP Tahoe. Протокол с быстрой повторной передачей называется TCP Reno. Если включено быстрое восстановление, протокол называется TCP New Reno; это самая популярная реализация. Если используются выборочные ACK, протокол называется TCP-SACK. Существует также множество других вариаций, которые имеют ограниченное количество реализаций.

7.6. Управление потоком Управление перегрузками – это механизм, предотвращающий переполнение маршрутизаторов. Другой механизм, называемый управлением потоком, предотвращает переполнение буфера в месте назначения ин-

7.7.Альтернативныесхемыуправленияперегрузками  141 формационного потока и работает в TCP следующим образом. Конечный хост TCP-соединения выделяет некоторое буферное пространство для хранения пакетов. Его объем определяется наличием свободного буферного пространства, которым он располагает в данный момент для этого соединения. Это количество называется объявленным получа­ телем окном (Receiver Advertised Window, RAW). Затем отправитель вычисляет значение RAW–OUT, где OUT – количество байтов, которые он отправил в пункт назначения, но на которые не получил ACK. То есть OUT – это количество неподтвержденных байтов, находящихся в пути от отправителя к получателю. Количество RAW–OUT – это количество байтов, которые отправитель может безопасно отправить получателю без риска переполнения буфера получателя. Затем отправитель вычисляет минимальное значение RAW–OUT и своего текущего окна перегрузки и использует этот минимум для определения пакетов, которые он может передать. Эта корректировка окна TCP сочетает в себе управление перегрузками и управление потоком.

7.7. Альтернативные схемы управления перегрузками Было предложено множество вариантов управления перегрузками в TCP, так как «обычный» протокол TCP не очень эффективен в некоторых особых ситуациях. Например, когда произведение длины и максимальной полосы пропускания соединения очень велико, TCP ведет себя не очень хорошо. Причина в том, что размер окна, необходимого для заполнения соединения, в этом случае слишком большой, и механизм AIMD приводит к большим колебаниям. Один из подходов к решению этой проблемы является протокол TCP-Vegas2. Этот протокол пытается оценить количество пакетов, стоящих в очереди в маршрутизаторах, и регулирует размер окна для поддержания этого числа на небольшом требуемом уровне. Чтобы выполнить такую оценку, хост-источник отслеживает время круговой задержки между отправкой пакета и получением подтверждения. Минимальное наблюдаемое время круговой задержки является оценкой времени полной передачи пакета. Учитывая скорость соединения отправляющего хоста, оценивается число пакетов, которые могут находиться в пути на линиях связи. Вычитая это число из текущего размера окна, хост может оценить количество пакетов, стоящих в очереди на маршрутизаторах, и может регулировать размер окна, чтобы сохранить это число небольшим. Как 2

TCP-Vegas контролирует размер окна путем мониторинга отправителем RTT для пакетов, посланных ранее. Если обнаруживается увеличение RTT, система узнает, что сеть приближается к перегрузке, и сокращает ширину окна. – Прим. ред.

142

 Глава7.Транспорт

вы, возможно, подозреваете, этот механизм связан с некоторыми потенциальными трудностями. Одной из них является «ползучесть заторов», когда минимальное наблюдаемое время круговой задержки уже включает в себя некоторую перегрузку. Тем не менее этот механизм эффективен для быстрых междугородних соединений. Еще одна ситуация, в которой TCP выигрывает от некоторой настройки, – это особые сети с известными каналами и топологией, как в центре обработки данных. В таких ситуациях идеальный размер окна и типичное время круговой задержки легко определить. Использование этих значений вместо адаптивного тайм-аута и размера окна по умолчанию приводит к повышению эффективности протокола. Преимуществами модифицированных версий TCP пользуются и некоторые другие сети. Например, некоторые производственные автоматизированные сети повышают надежность передачи пакетов путем дублирования пакетов, которые путешествуют по разным путям и поэтому могут приходить не по порядку. Как мы знаем, TCP плохо реагирует, когда пакеты приходят не по порядку, поскольку получатель генерирует дублирующие подтверждения. Таким образом, в такой сети полезно изменить этот аспект TCP. В беспроводных сетях пакеты теряются из-за ошибок передачи. По своей конструкции TCP предполагает, что потерянные пакеты появляются из-за перегрузки. Следовательно, TCP замедляется, когда ошибки передачи портят пакеты, что усугубляет потерю пропускной способности. Исследователи предложили схемы для решения этой проблемы, открывая несколько TCP-соединений параллельно и регулируя их количество в зависимости от фактической пропускной способности.

7.8. Резюме Транспортный уровень представляет собой набор сквозных протоколов, которые контролируют доставку пакетов. • Транспортный уровень предлагает две услуги: надежный поток байтов (с TCP) и ненадежную доставку пакетов (с UDP) между портами. • TCP-соединение проходит через следующие фазы: открытие (с троекратным рукопожатием: SYN, SYN.ACK, еще ACK и начало); обмен данными (с данными и подтверждениями); прекращение соединения первым хостом (с FIN и FIN.ACK); затем прекращение соединения вторым хостом (с FIN, ожиданием срабатывания таймера и FIN.ACK). • Контроль ошибок в TCP использует протокол скользящего окна, основанный на Go Back N с кумулятивными или селективными ACK.

7.9.Задачи  143 • Управление потоком использует объявленное получателем окно. • Управление перегрузками пытается разделить каналы поровну между активными соединениями. Механизм основан на аддитивном увеличении, мультипликативном уменьшении. Таймеры настраиваются на основе среднего значения времени круговой задержки и среднего колебания вокруг этого значения. • Усовершенствования включают быструю повторную передачу после трех дублированных ACK и быстрое восстановление путем увеличения размера окна в ожидании ACK повторно переданного пакета.

7.9. Задачи 7.1

7.2.

a) Предположим, что вы и два друга по имени Алиса и Боб пользуетесь в интернете DSL-соединением со скоростью 200 Кбит/с. Вам нужно загрузить файл размером 100 Мб с помощью FTP. Боб начинает пересылать файл 100 Мб, а Алиса смотрит потоковое видео со скоростью 150 Кбит/с, используя UDP. У вас есть возможность отключить компьютер Алисы или Боба от маршрутизатора, но оба отключить вы не можете. Чтобы минимизировать время передачи вашего файла, чей компьютер следует отключить и почему? Предположим, что DSL-соединение является единственным узким местом и что ваши с Бобом соединения имеют одинаковое время круговой задержки. b) Что, если скорость вашего DSL-соединения составляет 500 Кбит/с? Предполагая, что DSL-соединение является единственным узким местом, какой компьютер следует отключить от сети? Предположим, что станция A имеет неограниченный объем данных для передачи на станцию E. Станция A использует транспортный протокол скользящего окна с фиксированным размером окна. Таким образом, станция A начинает передачу нового пакета всякий раз, когда количество непринятых пакетов меньше, чем W, и любой предыдущий пакет, отправленный со станции A, уже передан. Размер пакетов составляет 10 000 бит (пренебрегая заголовками). Если W > 2, станция начнет отправлять пакет 1 в момент времени t = 0, а затем отправит пакет 2, как только пакет 1 будет передан, в момент времени t = 0,33 мс. Скорость света равна 3 × 108 м/с. Предположим, что станция B молчит и что нет перегрузки на пути квитирования от C к A. (Единственная задержка, с которой сталкиваются квитанции, – это задержка распространения сигнала до

144

 Глава7.Транспорт

спутника и со спутника.) Постройте график средней пропускной способности в зависимости от размера окна W. Какой минимальный размер окна должна выбрать станция A для достижения пропускной способности в 30 Мбит/с? Назовите это значение W*. При таком размере окна какова средняя задержка пакетов (время от выхода из A до прибытия в E)? Предположим теперь, что станция B также имеет неограниченный объем данных для отправки в E и что станции B и A используют окно размером W*. Какую пропускную способность A и B получат для своих потоков? Какова средняя задержка пакетов обоих потоков? Какую среднюю пропускную способность и среднюю задержку получат A и B для своих потоков, если A и B использовали окно размером 0,5W*? Какими были бы средняя пропускная способность и задержка для каждого потока, если бы A использовал размер окна W*, а B – 0,5W*? D Задержка Cut through (На лету)*

Спутник

30 Мбит/с

000 50

км

30 Мбит/с

000

A

Очередь First in, First Out (Первым вошел, первым вышел) (Cut through) Неограниченный буфер

50

км

30 Мбит/с

Спутниковая антенна 30 Мбит/с

*

B

C

Спутниковая антенна

E

Коммутаторы Cut-Through – самые простые и быстрые, они не производят никакого буферирования пакетов и никакой их селекции. Про них часто говорят, что они производят коммутацию «на лету» (on-the-fly). Эти коммутаторы буферируют только головную часть пакета, чтобы прочитать 6-байтовый адрес приемника пакета и принять решение о коммутации, на которое у некоторых коммутаторов уходит около 10 битовых интервалов. В результате время ожидания ретрансляции (задержка на коммутаторе), включающее как время буферирования, так и время коммутации, может составлять около 150 битовых интервалов. Конечно, это больше задержки репитерного концентратора, но гораздо меньше задержки ретрансляции любого моста. – Прим. ред.

Рис. 7.11. Рисунок к задаче 7.2

7.9.Задачи  145 7.3.

Как показано на рис. 7.12, потоки 1 и 2 совместно используют канал связи с пропускной способностью C = 120 Кбит/с. Других узких мест нет. Время прохождения потока 1 составляет 0,1 с, а потока 2 – 0,2 с. Пусть x1 и x2 обозначают скорости, полученные двумя потоками соответственно. Хосты используют AIMD для регулирования своих потоков. То есть, пока x1 + x2 < C, скорости со временем линейно увеличиваются: окно потока увеличивается на один пакет за каждое время круговой задержки. Скорости оцениваются как размер окна, деленный на время круговой задержки. Предположим, что как только x1 + x2 > C, хосты делят свои скорости x1 и x2 на коэффициент 𝛼 = 1,1. a) Нарисуйте как меняется вектор (x1, x2) с течением времени. b) Каково приблизительное предельное значение для этого вектора? T1 = 0.1 с Канал

C = 120 Кбит/с

T2 = 0.2 с Рис. 7.12. Рисунок к задаче 7.3

7.4.

Рассмотрите TCP-соединение между клиентом C и сервером S. a) Нарисуйте диаграмму изменения размера окна сервера S как функцию времени. b) Используя диаграмму, докажите, что время передачи N пакетов от S к C примерно равно a + bN для больших N. c) Объясните ключевые факторы, определяющие значение b в этом выражении для интернет-соединения между двумя компьютерами, подключенными непосредственно к интернету каналом Ethernet. d) То же, что в пункте (c), если один из компьютеров использует интерфейс UCB, а другой – MIT.

7.5.

Источник S использует протокол скользящего окна, чтобы отправить данные в пункт назначения D. Как показано на рис. 7.13, подтверждения (Ack) передаются от D к S по неизвестной сети. Предположим следующее: скорость распространения равна 2 × 108 м/с; размер пакета – 1 Кб; задержка Ack (с момента начала отправки Ack из D до его полного получения в S) – 2,2 мс, а время обработки в S, R и D пренебрежимо мало.

146

 Глава7.Транспорт 300 км R1 Мбит/с

Данные

S

R

300 км

R2 Мбит/с Маршртизатор в режиме Store & Forward D

Источник

Получатель

Ack Рис. 7.13. Рисунок к задаче 7.5

a) Предположим, что R1 = R2 = 10 Мбит/с. i. Найдите пропускную способность T как функцию от размера окна W. ii. Найдите наименьшее значение W, при котором T максимальна. Назовите это значение W*. iii. Найдите среднюю задержку в R, если W = W*. b) Предположим, что R1 = 10 Мбит/с, а R2 = 5 Мбит/с. Найдите среднюю заполняемость и среднюю задержку в R для W = W*. 7.6.

На рис. 7.14 показана хорошая модель для анализа производительности схемы управления перегрузками TCP. Размер окна W W/2

Время Рис. 7.14. Рисунок к задаче 7.6

Здесь в упрощенном виде представлено изменение размера окна в фазе предотвращения перегрузок. Максимальный размер окна принимается равным W. Известно также, что время круговой задержки примем за T, а размер сегмента TCP – M. Можно также предположить, что при перегрузке в этой фазе, приводящей к уменьшению размера окна, происходит потеря одного пакета. Ответьте на следующие вопросы, используя эту модель. a) Рассчитайте количество периодов времени круговой задержки между двумя потерями.

7.9.Задачи  147 b) Рассчитайте количество пакетов, переданных между двумя потерями. c) Рассчитайте скорость потери пакетов. d) Рассчитайте пропускную способность TCP. e) Покажите, что пропускная способность TCP может быть выражена как K/(T√q), где q – скорость потери пакетов, а K – некоторая константа. 7.7.

Рассмотрим беспроводную локальную сеть (WLAN), работающую на скорости 11 Мбит/с и использующую протокол 802.11 MAC со следующими параметрами: слот = 20 мкс, DIFS = 2,5 слота, SIFS = 0,5 слота, ACK = 10,5 слотов (включая накладные расходы физического уровня), накладные расходы физического уровня для данных – 10 слотов, и окна столкновений растут как 31, 63, 127, …. В этой сети только один пользователь, который хочет передать файл с 106 байтами данных с помощью UDP. Каждая передача может происходить с ошибками. Напомним, что передача каждого кадра данных или квитирования влечет за собой накладные расходы физического уровня, упомянутые выше. Предположим следующее: • все кадры данных имеют длину 1100 байт, которая включает в себя 100 байт накладных расходов для MAC-уровня и верхних уровней; • задержка распространения пренебрежимо мала; • подтверждение всегда принимается без ошибок. a) Сколько времени в среднем потребуется для передачи файла, если кадры данных всегда передаются без ошибок? b) Сколько времени в среднем потребуется для передачи файла, если каждый новый кадр данных принимается правильно либо после первой передачи, либо после одной повторной передачи с вероятностью 0,9 и 0,1 соответственно? c) Если вероятность правильного приема каждого кадра данных (при первой передаче или повторной) равна 0,9, то каково будет время передачи файла по сравнению с оценкой в пункте (b)? Объясните свой ответ. (Необходим только качественный ответ.)

7.8.

Предположим, что есть три последовательных узла: источник A, ретрансляционный узел B в центре и узел назначения C, оснащенные радиостанциями беспроводной локальной сети 802.11b, которые настроены на использование RTS/CTS для пакетов всех размеров. Расстояние между A и B составляет 750 м, такое же рас-

148

 Глава7.Транспорт

стояние между B и C; радиостанции достаточно мощные, чтобы могли общаться A с B и B с C, но передача из A в C должна проходить через B. Кроме того, передача из A может мешать приему в C (и наоборот). Никакие другие узлы не работают в этой зоне. Допущения и параметры: • пакеты содержат 1100 байтов данных, TCP-ACK имеют длину 55 байт (в обоих случаях включаются заголовки IP и TCP); • скорость распространения составляет 3 × 108 м/с; • DIFS = 50 мкс, SIFS = 10 мкс; • преамбула, заголовок физического уровня, MAC-заголовок и трейлер занимают в общей сложности 200 мкс на передаваемый пакет; • время передачи ACK, RTS и CTS по 200 мкс; • конкурентное окно сначала выбирается случайным образом (с одинаковой вероятностью) длиной от 0 до 31 слота; один слот составляет 20 мкс. Для упрощения предположим, что A, B и C всегда выбирают 14, 15 и 16 соответственно; • окно TCP всегда достаточно велико для отправки пакетов; • предположим, что MAC-счетчики обратного отсчета в A, B и C изначально равны нулю. a) Предположим, что A хочет отправить один TCP-сегмент в C. Каково общее время между началом передачи и получением TCP-ACK в A? b) В приведенном выше сценарии предположим, что ACK MACуровня от B в A поврежден (из-за чрезмерного шума). Опишите, как MAC-уровень в A реагирует на это. c) Опишите влияние потери, описанной в пункте (b), на размер окна перегрузки TCP и тайм-аут TCP в A. d) Предположим, что A имеет два TCP-сегмента, предназначенных для C. Рассчитайте общую задержку от начала первой передачи от A до получения второго TCP-ACK. Предположим, что C подтверждает каждый TCP-сегмент по отдельности.

7.10. Ссылки Основная спецификация TCP приведена в [83]. Анализ AIMD принадлежит Чиу и Джейну (см. [25]) и [26]). Контроль перегрузок TCP был разработан Ван Якобсоном в 1988 г. [49]. Смотрите [10] для обсуждения таких усовершенствований, как быстрая ретрансляция и быстрое восстановление.

Глава

8 Модели

Цель этой более сложной с математической точки зрения главы состоит в том, чтобы рассказать о некоторых современных методах организации работы сетевых протоколов. Мы начнем с обзора некоторых основных подходов, основанных на графах. Очереди – это обычное явление в работе сетей. Для лучшего проектирования сетевых протоколов важно понимать динамику очередей. Следует отметить еще два момента. Во-первых, TCP является аппроксимацией распределенного алгоритма, который максимизирует совокупную эффективность активных соединений. Во-вторых, новый класс протоколов «обратного давления» единообразно оптимизирует планирование, маршрутизацию и управление перегрузками.

8.1. Графы Направленный граф состоит из множества вершин, или узлов, и множества дуг. Дуга соединяет пару вершин. На рис. 8.1 показан ориентированный граф с вершинами {1, 2, …, 5} и дугами {(1, 2), (2, 3), …, (4, 5), (5, 4)}. Каждая дуга (i, j) имеет пропускную способность C(i, j), являющуюся положительным числом, равным максимальной скорости, с которой поток может проходить через эту дугу.

C(1, 2)

2 3

1

5 4 Рис. 8.1. Ориентированный граф и сечение S

Сечение графа – это подмножество узлов. На рисунке показано сечение S = {1, 2}. Можно определить пропускную способность сечения S как сумму пропускных способностей дуг от S до его дополне-

150

 Глава8.Модели

ния SC. Например, на рис. 8.1 пропускная способность сечения S равна C(1, 4) + C(2, 3) + C(2, 5). Она зависит от скорости, с которой потоки могут переходить из S в SC.

8.1.1. Max-flow, min-cut Представьте себе поток, который выходит из некоторой вершины v направленного графа и использует дуги, чтобы добраться до некоторой другой вершины w так, что поток сохраняется в каждой вершине. Например, в графе рис. 8.1 поток от 1 до 5 использует дуги (1, 2) и (1, 4). Поток по (1, 4) продолжается по (4, 5), а поток по (1, 2) разделяется между (2, 3) и (2, 5). Скорость потока R(1, 2) по (1, 2) равна сумме R(2, 3)+ R(2, 5) скоростей по (2, 3) и (2, 5). По определению пропускной способности дуг для каждой дуги (i, j) должно быть R(i, j) ≤ C(i, j). Теорема о  максимальном потоке и минимальном сечении (max-flow min-cut) [32], гласит, что максимальный поток из некоторой вершины v в другую вершину w равен минимальной пропускной способности сечений S, где v ∈ S и w ∈ SC. Очевидно, что скорость потока из v в w не может превышать скорости любого сечения S при v ∈ S и w ∈ SC. Немного сложнее показать, что она может быть равна минимальной скорости из этих сечений. Чтобы доказать это, рассмотрим поток из v в w, который, по нашему мнению, имеет максимально возможную скорость r, но такую, что r хотя бы на 𝜀 > 0 меньше пропускной способности каждого из сечений S, v ∈ S и w ∈ SC. Покажем, что это невозможно. Поток от v к w проходит по нескольким путям. Рассмотрим один конкретный путь. Если существует некоторое 𝛿 > 0, такое, что каждая дуга вдоль этого пути имеет неиспользованную пропускную способность, равную 𝛿, то можно увеличить скорость потока по этому пути на 𝛿, что невозможно. Теперь предположим обратное. То есть каждый путь из v в w содержит по крайней мере одну насыщенную дугу. Начнем с того, что S – пустое множество. Будем следовать по одному из путей из v в w до тех пор, пока не достигнем насыщенной дуги. Например, путь состоит из дуг (1, 2, 3, …, m, …, n) и первой насыщенной дугой является m. Добавим вершины {1, 2, 3, …, m} к множеству S. Проделаем это для всех путей из v в w и перечислим первые насыщенные дуги, например (i, j, k, l, p, q). Утверждение состоит в том, что пропускная способность сечения S равна скорости r потока. Действительно, множество дуг (i, j, k, l, p, q) – это множество дуг с источником в S и пунктом назначения в SC, потому что мы исследовали все возможные пути из v в w. Кроме того, все эти дуги насыщены, так что пропускная способность каждой из этих дуг равна скорости потока по этой дуге. Но это противоречие, так как мы предположили, что скорость потока хотя бы на 𝜀 меньше скорости каждого сечения.

8.1.Графы  151 Приведенное выше доказательство не дает алгоритма для вычисления максимального потока. О таких алгоритмах см. в [63].

8.1.2. Раскраска графа и протоколы MAC Ненаправленный граф – это множество вершин и ненаправленных связей, которые являются множествами двух различных вершин. На рис. 8.2 показаны два ненаправленных графа. Две вершины являются смежными, если они соединены связью. Граф является связным, если из каждой вершины можно добраться до всех других вершин. Граф будет полным, если любые две вершины соединены связью. Степень вершины – это число ее соседей. Максимальная степень графа – это максимальная степень его вершин. 2

2 3

1

3

1

5 4

5 4

Рис. 8.2. Два раскрашенных ненаправленных графа

Раскраска графа – это назначение цветов каждой вершине так, что любые смежные вершины окрашены в разные цвета. На рис. 8.2 показана раскраска графов. Минимальное количество цветов, необходимое для раскраски графа, называется хроматическим числом графа. Если существует множество вершин, которые попарно связаны между собой (клика), то все они должны быть разного цвета. Таким образом, хроматическое число по крайней мере настолько велико, насколько велико наибольшее количество вершин в клике. Граф в левой части рис. 8.2 имеет клику {2, 3, 5} с тремя узлами. Следовательно, его хроматическое число не меньше 3. Обратите внимание, что наибольшая клика в графе в правой части рис. 8.2 имеет два узла. Однако хроматическое число этого графа равно 3. Таким образом, максимальное число узлов в клике является нижней границей хроматического числа. Теорема Брукса гласит, что хроматическое число связного графа с максимальной степенью ∆ не может быть более ∆, за исключением случаев, когда это нечетный цикл или полный граф, в этом случае оно не более ∆ + 1. Например, граф слева на рис. 8.2 имеет максимальную степень 3, и его можно раскрасить тремя цветами. Граф справа является циклом, поэтому его максимальная степень равна 2, но его хроматическое число равно 3. Обратите внимание, что хроматическое число четного цикла равно 2. Кроме того, отметим, что звездный граф с  ∆ ветвями имеет максимальную степень ∆, но его хроматическое число равно 2. Таким образом, верхняя граница Брукса может быть довольно свободной.

152

 Глава8.Модели

Представьте, что вершины графа соответствуют узлам беспроводной сети и две его вершины соединены, если узлы не могут передавать сигнал, не мешая друг другу. В этом случае можно сказать, что ненаправленный граф является конфликтным графом для беспроводных узлов. Рассмотрим раскраску этого графа. Все узлы одного цвета могут передавать сигнал без помех друг другу. Можно сказать, что эти узлы образуют независимое множество. Независимое множество называется максимальным, если любой узел не из этого множества присоединен хотя бы к одному из узлов этого множества. Раскраску можно применить к распределению частот между точками доступа. Предположим, что вершины в графах рис. 8.2 представляют собой точки доступа Wi-Fi. Цвета соответствуют различным каналам. Раскраска гарантирует, что точки доступа не будут мешать друг другу. Это можно применить также и к распределению каналов между базовыми станциями. Еще одно применение – распределение тайм-слотов в ячеистой (mesh) сети. Допустим, пакеты поступают на беспроводные узлы, которые должны их передавать. Для простоты предположим, что эти пакеты должны быть переданы один раз и затем покинуть сеть. Пусть 𝜆i – скорость поступления пакетов в узел i для каждого i = 1, 2, …, J, где J – общее число узлов. Пусть также 𝜆 = {𝜆1, …, 𝜆j}. Когда вектор 𝜆 является допустимым? То есть когда узлы могут передавать прибывающие пакеты без помех и успевать за скоростью прибытия? Поскольку узлы в независимом множестве могут передавать одновременно, пусть все {S1, …, SK} будут максимальными независимыми множествами, а p = (p1, …, pK) – вектор с неотрицательными компонентами, которые в сумме дают единицу. Если узлы в независимом множестве Sk передают часть времени pk, где K k = 1, …, K, то узел i передает часть времени, равную �k=1 pi {i ∈ Sk}. Таким образом, вектор 𝜆 допустим тогда и только тогда, когда существует неK который вектор p с pk ≥ 0 для всех k и �k=1 pk = 1 такой, что K

𝜆i ≤ �k=1 pk = 1 {i ∈ Sk}, i = 1, …, J.

(8.1)

Одна из централизованных реализаций схемы передачи заключается в том, чтобы вычислить p, затем разделить время на слоты, достаточно большие для передачи пакета, выбрать некоторое число M и периодически распределять каждые M тайм-слотов приблизительно по pkM тайм-слотов узлам в независимом множестве Sk для k = 1, …, K. Этот синхронизированный во времени протокол ячеистой сети (timesynchronized mesh protocol, TSMP) может быть полезен, когда скорость передачи 𝜆 меняется очень редко по сравнению со временем, необходимым для пересчета p и перераспределения тайм-слотов. Децентрализованная схема, позволяющая поддерживать возможные скорости 𝜆, – это протокол множественного доступа с контролем несу-

8.2.Очереди  153 щей на основе очередей (queue-based carrier sense multiple access protocol, Q-CSMA), который работает следующим образом. Когда узел имеет пакет для передачи, он ждет, пока не почувствует, что канал свободен. Затем узел запускает таймер обратного отсчета с начальным случайным значением, среднее значение которого является убывающей функцией незанятости канала. Таймер ведет обратный отсчет, когда узел обнаруживает, что канал простаивает. Когда таймер срабатывает, узел передает пакет. Все узлы реализуют одну и ту же схему. Можно показать, что эта схема работает с любой 𝜆, такой, что неравенства (8.1) выполняются с некоторым положительным зазором 𝜀. К сожалению, задержка пакетов увеличивается, когда 𝜀 мал. Эта схема сочетается с контролем доступа, который прекращает прием пакетов в очередь, когда отставание превышает значение, зависящее от приоритета пакетов. Контроль доступа эффективно регулирует скорости 𝜆, чтобы они были достижимы и благоприятствовали пакетам с высоким приоритетом. Он также может выбирать скорости, при которых допустимы задержки пакетов с высоким приоритетом. Преимущества Q-CSMA над TSMP заключаются в том, что он не требует знания величины 𝜆 и автоматически адаптируется к изменяющимся условиям. Более того, он не расходует пропускную способность для передачи данных о распределении тайм-слотов (см. раздел 8.6, где обсуждается этот протокол).

8.2. Очереди В сетевых технологиях теория очередей применяется для количественной оценки задержек и отставаний пакетов. Ключевым наблюдением является то, что колебания прибытия и длины пакетов являются причинами задержек и отставания. Например, если пакеты поступают в передатчик каждую секунду и менее секунды тратят на передачу, то отставание никогда не накапливается, а задержки ограничиваются лишь временем передачи. Однако если время от времени пакеты приходят быстрее, чем передатчик может их отправить, то образуется отставание и задержки. Теория очередей предоставляет модели таких флуктуаций и дает соответствующие результаты по отставанию и задержкам. В этом разделе рассматриваются некоторые классические следствия из теории очередей: очередь M/M/1 и сети Джексона. В теории очередей используется следующая терминология: прибывающий клиент становится в очередь, ждет своего времени обслуживания, обслуживается, затем покидает очередь. В сети клиенты прибывают, а затем проходят через последовательность очередей. Нас интересует время пребывания клиентов в очереди и их задержка с момента прибытия до момента ухода.

154

 Глава8.Модели

8.2.1. Очередь М/М/1 В разделе 2.2.6 была показана работа очереди M/M/1. В данном разделе представлено математическое обоснование этой работы. Вспомним основные предположения для очереди M/M/1. Прибытие и завершение обслуживания независимы, не имеют памяти и стационарны, а клиенты приходят по одному. Это означает, что события прибытия и выполняемой услуги завершаются в течение следующего периода времени t с. Они независимы и не зависят от прошлого. Более того, вероятность этих событий зависит от t, но не от текущего времени. Процесс прибытия с такими свойствами называется пуассоновским процессом. Кроме того, услуги, которые завершаются с вероятностью, не зависящей от того, как долго клиент обслуживался до сих пор, распределены экспоненциально. Таким образом, очередь M/M/1 имеет пуассоновское прибытие и экспоненциально распределенное время обслуживания. В обозначении M/M/1 первая буква M означает, что прибытия не имеют памяти, т. е. являются пуассоновскими. Вторая M указывает на то, что и время обслуживания не имеет памяти, т. е. распределено экспоненциально. Наконец, 1 означает, что существует единственная точка обслуживания. Пусть 0 < 𝜀 ≪ 1 и в очереди M/M/1 каждые 𝜀 единиц времени появляются Xt пакетов. То есть рассмотрим случайную последовательность значений X0, X𝜀, X2𝜀, …. В силу основных предположений эта последовательность является дискретной цепью Маркова (см. раздел 4.5). Вероятности перехода этой цепи Маркова следующие: P(n, n + 1) ≈ 𝜆𝜀, P(n, n – 1) ≈ μ𝜀, P(n, n) ≈ 1 – 𝜆𝜀 – μ𝜀.

Знаки «приблизительно  равно» означают равенство с точностью до пренебрежимо малого члена 𝜀. Обоснованием для этих значений является то, что прибытие происходит за 𝜀 секунд с вероятностью, близкой к 𝜆𝜀, а обслуживание завершается с вероятностью, близкой к μ𝜀. Вероятность того, что более одного прибытия или завершения обслуживания происходит во время 𝜀, пренебрежимо мала, если 𝜀 ≪ 1. Эта цепь Маркова неприводимая, что означает, что она может перейти из любого состояния (Xn) в любое другое состояние, возможно, за несколько шагов. Предположим, что 𝜆 < μ, т. е. пакеты в среднем поступают медленнее, чем они могут быть обслужены. Тогда решение уравнений баланса показывает, что инвариантная вероятность π(n) того, что в очереди находится n пакетов, определяется следующим образом: π(n) = (1 – 𝜌)𝜌n, n ≥ 0,

где 𝜌 := 𝜆/μ. Например, для n ≥ 1 проверяем, что

π(n)(1 – P(n, n)) = π(n – 1)P(n – 1, n) + π(n + 1)P(n + 1, n),

8.2.Очереди  155 т. е. что π(n)(𝜆𝜀 + μ𝜀) = π(n – 1)𝜆𝜀 + π(n + 1)μ𝜀 или после подстановки выражения для π(n) и деления обеих частей на (1 – 𝜌)𝜀: 𝜌n(𝜆 + μ) = 𝜌n–1𝜆 + 𝜌n+1μ.

Так как 𝜌 = 𝜆/μ, мы видим, что это уравнение удовлетворяется. При таком инвариантном распределении находим, что среднее число пакетов L в системе равно 𝜌 𝜆 L = �n(1 – 𝜌) 𝜌n = ————— = —————. (1 – 𝜌) (μ – 𝜆) n≥0

(8.2)

Используя закон Литтла L = 𝜆W (см. раздел 2.2.7), мы приходим к выводу, что средняя задержка W пакета в системе определяется как

8.2.2. Сети Джексона

1 L = —————. (μ – 𝜆)

(8.3)

Сеть Джексона – это простейшая модель сети очередей. Она состоит из взаимосвязанных M/M/1-очередей. В частности, существует J очередей: 1, 2, …, J. Клиенты классов c = 1, 2, …, C прибывают в сеть независимо друг от друга, процесс прибытия не имеет памяти, образуя пуассоновский поток с соответствующими скоростями 𝜆c. Клиент класса c проходит через множество S(c) ⊂ [1, …, J} очередей в определенном порядке. Для простоты мы предполагаем, что ни один клиент не посещает очередь более одного раза. Таким образом, общая скорость прибытия C клиентов в сеть равна 𝜆 = �c=1𝜆c. Также общая скорость клиентов, котоC рые проходят через некоторую очередь j, равна 𝛾j := �c=1𝜆c=1 {j ∈ S(c)}. То есть 𝛾j – это сумма скоростей прибытия 𝜆c тех классов клиентов, которые проходят через очередь j. Время обслуживания в очереди j не зависит от времени обслуживания в других очередях и от времени прибытия клиентов и экспоненциально распределено со средним μj, одинаковым для каждого класса клиентов. Мы предполагаем, что 𝛾j < μj для всех j. Основные результаты для сетей Джексона следующие. Средняя задержка Wc клиента класса c от его прибытия в сеть до его ухода из сети задается следующим выражением: 1 Wc = � ——————. J∊S(c) (μj – 𝛾j)

(8.4)

156

 Глава8.Модели

Более того, среднее число Lj клиентов в очереди j определяется следующим образом: 𝛾 Lj = ———j———. (μj – 𝛾j)

(8.5)

Сравнивая (8.4) с (8.3), мы видим, что клиент сталкивается со средней задержкой 1/(μj – 𝜆cj) в очереди j, как если бы эта очередь была очередью M/M/1. Этот результат примечателен тем, что в общем случае очереди не являются M/M/1 очередями, так как процесс прибытия может быть и не лишен памяти. Хотя этот результат очень легко сформулировать, его вывод слишком длинен для этой небольшой книги.

8.2.3. Очередь против коммуникационных сетей В коммуникационной сети время обслуживания пакета равно его длине, деленной на скорость передачи. Таким образом, если длины пакетов независимы и экспоненциально распределены со средним значением B бит, а скорость передачи составляет R бит в секунду, то время обслуживания является независимым и экспоненциально распределенным со средним μ–1 = B/R с. Если, кроме того, поступление пакетов образует процесс Пуассона со скоростью 𝜆, то система представляет собой очередь M/M/1 и мы знаем ее среднее отставание и среднюю задержку прохождения пакетов по очереди. Предположим, что после выхода из очереди пакеты попадают во вторую очередь, которая их хранит и начинает передавать, когда их прием завершится. Ключевым замечанием является то, что во второй очереди время прибытия не зависит от времени обслуживания. Например, время между прибытием пакета n и пакета n + 1 не может быть меньше, чем длина пакета n, деленная на скорость обслуживания R в первой очереди. Следовательно, время прибытия пакета n + 1 зависит от времени обслуживания пакета n во второй очереди. Таким образом, система из двух очередей в тандеме не является сетью Джексона и средняя задержка пакетов в этой системе не определяется формулой для задержки в сети Джексона. На рис. 8.3 сравнивается средняя задержка в коммуникационной сети, найденная с помощью моделирования, с задержкой в сети Джексона. Сравнение показывает, что различия довольно малы. Следовательно, использование модели сети Джексона для прогнозирования задержек в коммуникационной сети может быть оправдано, и мы используем это приближение в оставшейся части этого раздела. В качестве приложения результатов для сетей Джексона рассмотрим проблему балансировки трафика в сети. Допустим, существует два возможных пути пакетов от источника к месту назначения. Вполне веро-

8.2.Очереди  157 ятно, что можно уменьшить задержку этих пакетов, разделив трафик между двумя путями. 90 80 70 60

Средняя задержка в сети Джексона

50 40

Средняя задержка в коммуникационной сети

30 20 10 0

1

1.05

1.1

1.15

1.2

1.25

1.3

1.35

1.4

1.45

µ

1.5

Рис. 8.3. Аппроксимация коммуникационной сети сетью Джексона

В качестве простой модели этой ситуации скажем, что поступление пакетов образует процесс Пуассона со скоростью 𝜆 и пакеты могут проходить по двум очередям с соответствующими скоростями обслуживания μ1 и μ2. Мы решили отправить часть пакетов p в первую очередь, а остальные во вторую. Если каждый пакет выбирается независимо с вероятностью p для отправки в первую очередь, а в противном случае во вторую, то поступление пакетов в первую очередь не имеет памяти (последействия), а их скорость равна 𝜆p. Поступление пакетов во вторую очередь также не имеет памяти, и их скорость равна 𝜆(1 – p). Таким образом, две очереди являются очередями M/M/1 и их средние задержки составляют 1/(μ1 – 𝜆p) и 1/(μ2 – 𝜆(1 – p)) соответственно, предполагая, что 𝜆p < μ1 и 𝜆(1 – p) < μ2. Поскольку пакет задерживается в первой очереди с вероятностью p и во второй с вероятностью 1 – p, средняя задержка T на пакет определяется как p 1–p T = —————— + —————————. μ1 – 𝜆p μ2 – 𝜆(1 – p)

Предполагая, что 𝜆 < μ1 + μ2, мы можем найти значение p, которое минимизирует среднюю задержку T, приравняв к нулю производную по p из выражения выше. Из алгебраических выкладок следует, что искомым значением является μ2 – μ2√ μ1 𝜆√ μ1 + μ1√ p = ———— ————— ————— . 𝜆(𝛾μ1 + √ μ2)

Например, если μ1 = μ2, то p = 1/2, что интуитивно понятно. В качестве другого примера если 𝜆 = 1 = μ1 и μ2 = 2, то p ≈ 0,17. В этом случае мы обнаруживаем, что средняя задержка в первой очереди состав-

158

 Глава8.Модели

ляет 1/(μ1 – 𝜆p) ≈ 1,2, тогда как средняя задержка во второй очереди – 1/(μ2 – 𝜆(1 – p)) ≈ 0,85. Поэтому несколько удивительно, что оптимальная балансировка нагрузки не выравнивает средние задержки в двух очередях. В этом примере пакеты, которые проходят через первую очередь, сталкиваются с большей средней задержкой, чем другие пакеты. Можно вполне обоснованно опасаться, что отправка пакетов по двум путям, которые не имеют одинаковой средней задержки, может вызвать хаос для TCP. Чтобы избежать этой проблемы, пакеты от источника к месту назначения разделяются таким образом, что пакеты одного и того же соединения, т. е. из той же четверки (IP-источник, TCP-источник, IP-получатель, TCP-получатель), следуют по одним и тем же путям.

8.3. Роль уровней Протоколы управляют доставкой информации в сети, отслеживая ошибки и перегрузки и управляя маршрутизацией и совместным использованием каналов передачи. Как мы узнали в главе 2, первоначально считалось, что эти функции выполняют различные уровни сети: уровень 4 для отслеживания ошибок и перегрузок, уровень 3 для маршрутизации, а уровень 2 управляет доступом к среде. Такая декомпозиция уровней была обусловлена структурой, которая облегчает проектирование и, вероятно, упрощает решение задачи доставки. Однако существует некоторое подозрение, что «принудительное» разделение может привести к потере эффективности. Более тревожным является то, что протоколы разных уровней, возможно, не смогут взаимодействовать оптимальным образом. Чтобы решить проблему взаимодействия уровней, некоторые исследователи даже предложили «межслойные» конструкции, которые иногда напоминали странные устройства Руба Голдберга. В последнее время благодаря серии замечательных исследований появилось новое понимание механизмов управления в сетях. До этих работ такие схемы, как TCP или CSMA/CA, казались очень умными, но надо сказать, что локальные правила передачи пакетов наподобие «замедлить скорость, если сеть кажется перегруженной» оказались на деле еще умнее. В течение многих лет никто не подозревал, что такие распределенные правила управления приближаются к оптимальным схемам. Сообщество специалистов по управлению сетями в целом не тратило много времени на изучение TCP. Новое понимание начинается с формулировки глобальной цели: максимальное увеличение общей полезности потоков в сети. Следующий шаг – анализ проблемы и демонстрация того, что она распадается на более простые проблемы, которые можно разрешить с помощью разных протоколов, таких как управление перегрузками и маршрути-

Powered by TCPDF (www.tcpdf.org)

8.4.Управлениеперегрузками  159 зацией. Кто-то может возразить, что в таком анализе постфактум мало смысла, даже если результаты анализа преподносят некоторые сюрпризы: улучшенные протоколы, которые повышают продуктивность сети. Конечно, возможно, уже поздновато предлагать новый TCP или новый BGP. Тем не менее новые протоколы могут наконец-то создать работоспособные многопролетные (multi-hop) беспроводные сети, которые будут работать. За последнее десятилетие исследователи разработали множество эвристик для маршрутизации, планирования и управления перегрузками в многопролетных беспроводных сетях. Они были разочарованы низкой производительностью существующих протоколов. Распространенным утверждением в исследовательском сообществе является фраза «три пролета = нулевая пропускная способность». Протоколы, разработанные на основе теоретического анализа, обещают преодолеть этот тупик. Более того, даже само понимание того, что дают эти результаты, является ценным, потому что оказывается, что протоколы не обязательно должны выглядеть как искусственно придуманные правила, а могут быть выведены системно.

8.4. Управление перегрузками В главе 7 говорилось об основном механизме, который интернет использует для управления перегрузками. Источник замедляется, когда сеть перегружена. Мы также видели, что аддитивное увеличение / мультипликативное уменьшение имеет шанс сходиться к справедливому разделению одного канала несколькими соединениями. Главным прорывом за последние десять лет стало теоретическое понимание того, как распределенный протокол управления перегрузками может достичь такого справедливого распределения в общей сети. Мы объясним это в данном разделе.

8.4.1. Справедливость против производительности На рис. 8.4 показана сеть с тремя потоками и двумя узлами A и B. Связь a от узла A к узлу B имеет пропускную способность 1, как и связь b из узла B. Обозначим скорости потоков x1, x2 и x3. Возможные значения скоростей (x1, x2, x3) неотрицательны и таковы, что ga(x) := x1 + x2 – 1 ≤ 0 и gb(x) := x1 + x3 – 1 ≤ 0. Это справедливо, например, для (0, 1, 1). Можно проверить, что при таких скоростях используется максимально возможная общая пропускная способность x1 + x2 + x3 сети, равная 2. Конечно, такое распределение не является справедливым для пользователя потока 1, который не получает никакой пропускной способности. А вот распределение (1/2, 1/2, 1/2) является максимально справедливым, но при этом используется толь-

160

 Глава8.Модели

ко 1,5 общей пропускной способности. Этот пример иллюстрирует, что, как правило, существует компромисс между достижением максимальной общей пропускной способности и справедливостью. Чтобы сбалансировать эти цели, давайте обозначим за u(xi) функцию полезности для каждого потока i (i = 1, 2, 3), при x > 0 u(x) является вогнутой возрастающей функцией. Полезность u(x) отражает ценность для пользователя скорости x соединения. Полезность возрастает с увеличением скорости. Предположение вогнутости означает, что при больших скоростях прирост уменьшается. То есть увеличение скорости на 1 Кбит/с становится менее выгодным, когда скорость достаточно велика. x3

x2 A

1

B

1

x1 Рис. 8.4. Три потока в простой сети

Мы выбираем скорости x = (x1, x2, x3) так, чтобы сумма полезностей для потоков f(x) = u(x1) + u(x2) + u(x3) была максимальной. Например, скажем, что 1 ————— x1–�, для � ≠ 1 u(x) = � 1 – � log(x),

для � = 1.

(8.6)

При � ≠ 1 производная этой функции равна x–�, она положительна и убывает, так что функция u(x) является возрастающей и вогнутой. При � = 1 функция log(x) также является возрастающей и вогнутой. То есть для � ≠ 1 мы ищем скорости x, которые решают следующую задачу: 1 Получить максимум f(x) := ————— �x11–� + x21–� + x31–�� 1–�

при условии, что x1 + x2 ≤ 1 и x1 + x3 ≤ 1.

(8.7)

Поскольку f(x) возрастает при возрастании каждого xi, решение должно быть таким, что x1 + x2 = 1 = x1 + x3. Пусть x = x1 так, что x2 = x3 = 1 – x. При таких обозначениях 1 f(x) := ————— �x1–� + 2(1 – x)1–��. 1–�

Это выражение достигает максимума, когда его производная по x равна нулю. То есть:

8.4.Управлениеперегрузками  161 x–� – 2(1 – x)–� = 0. Следовательно, 1 x = 2–1/�(1 – x), так что x = ————— —. 1 + 21/� Обратите внимание, когда � меняется от 0 до ∞, величины скоростей (x, 1 – x, 1 – x), при которых достигается максимальная пропускная способность (0, 1, 1), переходят к абсолютно равным скоростям (1/2, 1/2, 1/2). На рис. 8.5 показаны значения x1, x2, x3, при которых сумма полезностей как функция от � максимальна. Как видно из графиков, когда � изменяется от 0 до ∞, соответствующие скорости изменяются от значений, которые в сумме дают максимум, к тем, что максимизируют минимальную скорость. Max-Sum 1.00

0.75

x2 = x3 Max-Min

0.50

0.25

x1

0 0.3 0.9 1.5 2.1 2.7 3.3 3.9 4.5 5.1 5.7 6.3 6.9 7.5 8.1 8.7

α

Рис. 8.5. Скорости, при которых достигается максимум суммы полезностей как функции от �

При конкретной форме функции u(·) в (8.6) скорости x, при которых достигается максимум этой функции, считаются �­справедливыми. Для � = 0 целью является достижение максимума общей пропускной способности, поскольку в этом случае u(x) = x и f(x) = x1 + x2 + x3. Для � → ∞ скорости, при которых достигается максимум f(x), максимизируют минимальную из скоростей {x1, x2, x3}. Чтобы убедиться в этом, заметим, что u'(x) = x–� ≫ u'(y) = y–�, если x < y и � ≫ 1. Следовательно, если x1 < x2, x3, то можно увеличить f(x), заменив x2 на x2 – 𝜀, x3 на x3 – 𝜀 и x1 на x1 + 𝜀 для 𝜀 ≪ 1. Эта модификация не нарушает ограничений на пропускную способность, но увеличивает f(x) на величину 𝜀[u'(x1) – u'(x2) – u'(x3)], которая положительна, если � достаточно велико. Для всей сети этот аргумент говорит о том, что если � ≫ 1, то скорости x, при которых достигается максимум f(x), должны быть такими, что невозможно увеличить скорость какого-нибудь потока xi без уменьшения скорости другого, меньшего, чем xi, потока xj. Такое распределение называется справедливым распределением max­min. Чтобы понять, по-

162

 Глава8.Модели

чему только такое распределение позволяет максимизировать f(x) при �  ≫  1, предположим, что можно заменить xi на xi + 𝜀, уменьшая скорость xj, которая больше xi. В этом случае, как показывает предыдущий аргумент, после такого изменения чистое изменение f(x) положительно, что противоречит предположению, что эти скорости максимизируют функцию. Для случая � = 1 мы сделаем следующее наблюдение для всей сети. Предположим, что x* = (x1*, …, xn*) максимизирует u(x1) + … + u(xn) с учетом ограничений. Пусть x = (x1, …, xn) – вектор, близкий к x*, который также удовлетворяет ограничениям. Тогда u(x1) + … + u(xn) ≤ u(x1*) + … + u(xn*). Также, поскольку x и x* близки, u(xm) ≈ u(xm*) + u'(xm*)dxm, где dxm = xm – xm*. Следовательно, u'(x1*)dx1 + … + u'(xn*)dxn ≤ 0. Если u(x) = log(x), то u'(x) = 1/x. В этом случае dx1/x1* + … + dxn/xn* ≤ 0. Таким образом, увеличение x1 на 1 % соответствует изменениям других величин xm так, что сумма их относительных изменений меньше 1 %. В этом случае говорят о пропорциональной справедливости. Пример, рассмотренный в этом разделе, показывает, что можно смоделировать справедливое распределение производительности сети, рассматривая скорости, которые максимизируют общую полезность для пользователей с учетом ограничений на пропускную способность, накладываемых линиями связи. Более того, выбирая �, можно регулировать компромисс между эффективностью (максимизация суммы пропускных способностей) и строгой справедливостью (максимизация наименьшей полезности).

8.4.2. Распределенное управление перегрузками В предыдущем разделе мы вычислили скорости x, которые максимизируют общую полезность f(x), предполагая, что имеем полное знание о сети. На практике эти знания доступны не всегда, поэтому различные источники управляют скоростями, основываясь только на локальной информации. Далее рассмотрим подходы к решению этой задачи. Мы воспользуемся следующей теоремой, о выводе которой рассказано в приложении. Теорема 8.1. Пусть f(x) – вогнутая функция, а gj(x) – выпуклая функция от x для j = a, b. Тогда x* решает следующую задачу, называемую первичной: максимизировать f(x) при условии, что gj(x) ≤ 0, j = a, b,

(8.8)

если и только если x* удовлетворяет ограничению (8.8) и x* максимизирует L(x, 𝜆*) := f(x) – 𝜆*a ga(x) – 𝜆*b gb(x)

(8.9)

8.4.Управлениеперегрузками  163 для некоторых 𝜆*a ≥ 0 и 𝜆*b ≥ 0 таких, что

Более того, если

𝜆*j gj(x*) = 0 для j = a, b.

(8.10)

L(x(𝜆), 𝜆) = max L(x, 𝜆), x

то переменные 𝜆*a и 𝜆*b минимизируют L(x(𝜆), 𝜆).

(8.11)

Функция L называется лагранжианом, а переменные (𝜆*a , 𝜆*b ) – множителями Лагранжа или скрытыми ценами. Соотношения (8.10) называются условиями дополняющей нежесткости. Задача (8.11) называется двойственной к (8.8). Чтобы применить этот результат к задаче (8.7), во-первых, вычислим лагранжиан: L(x, 𝜆) = f(x) – 𝜆a ga(x) – 𝜆b gb(x) = {u(x1) – (𝜆a + 𝜆b)x1} + {u(x2) – 𝜆ax2} + {u(x3) – 𝜆bx3}.

Во-вторых, находим значение x(𝜆) для x, которое максимизирует L(x, 𝜆) для фиксированного значения 𝜆 = (𝜆a, 𝜆b). L(x, 𝜆) является суммой трех функций, каждая из которых включает только одну из переменных xi. Поэтому, чтобы максимизировать эту сумму, надо найти максимумы каждого из слагаемых. Значение x1 максимизирует u(x1) – (𝜆a + 𝜆b)x1.

Аналогично x2 максимизирует а x3 максимизирует

u(x2) – 𝜆ax2, u(x3) – 𝜆bx3.

Смысл этих выражений заключается в том, что каждая линия связи j = a, b взимает с пользователя каждого потока цену 𝜆j за единицу скорости. Таким образом, пользователь потока 1 платит x1(𝜆a + 𝜆b), поскольку этот поток проходит через два звена. Этот пользователь выбирает значение x1, при котором чистая полезность u(x1) – (𝜆a + 𝜆b)x1 максимальна. Аналогичные соображения применимы к потокам 2 и 3. Ключевым моментом является то, что максимизация L разлагается на отдельные максимизации для каждого пользователя. Связь переменных x в исходной задаче (8.7) обусловлена ограничениями. Максимизация L не имеет ограничений и распадается на отдельные задачи для каждой из переменных. Такая декомпозиция возможна, потому что ограничения по потокам линейны, поэтому каждая переменная xi появ-

164

 Глава8.Модели

ляется в отдельном члене суммы L. Заметим также, что цена, которую взимает каждая линия связи, одинакова для всех потоков, потому что ограничения включают сумму скоростей потоков, т.  е. с точки зрения ограничений потоки неразличимы. Для нахождения цен 𝜆* используется градиентный алгоритм минимизации L(x, 𝜆): d 𝜆j(n + 1) = 𝜆j(n) – 𝛽——L(x(𝜆), 𝜆) = 𝜆j (n) + 𝛽gj(x), d𝜆j

где x – вектор скоростей на шаге n алгоритма, а 𝛽 – это параметр, управляющий размером шага алгоритма. Это выражение говорит о том, что на каждом шаге n алгоритм корректирует 𝜆 в направлении, противоположном градиенту функции L(x(𝜆), 𝜆), что является направлением наиболее крутого спуска функции. Для нового значения цен пользователи корректируют свои скорости так, чтобы они приближались к x(𝜆). То есть на шаге n пользователь 1 рассчитывает скорость x1(n) следующим образом: x1(n) максимизирует u(x1) – (𝜆a(n) + 𝜆b(n))x1,

и аналогичные шаги выполняются для x2(n) и x3(n). Рисунок 8.6 иллюстрирует градиентный алгоритм. На рисунке показано, что коррекция x происходит в направлении градиента L(x, 𝜆) относительно x, а коррекция 𝜆 – в направлении, противоположном градиентуL(x, 𝜆) по отношению к 𝜆. Этот алгоритм ищет седловую точку, обозначенную звездой на рисунке. Седловая точка – это относительный минимум по 𝜆 и относительный максимум по x функции L(x, 𝜆). 5

L(x, λ)

4 3

(x*, λ*) 2 1 0 -1 6 4

λ

2 0

0

0.5

1

x

1.5

2

Рис. 8.6. Градиентный алгоритм для двойственной задачи

8.4.Управлениеперегрузками  165 Чтобы увидеть, как узлы могут рассчитать цены, рассмотрим очередь длиной qj (t) в узле j в момент времени t. Длина этой очереди увеличивается со скоростью, равной разнице между общей скоростью прибытия потоков минус скорость обслуживания. Таким образом, на небольшом интервале 𝜏 qj((n + 1)𝜏 = qj(n𝜏) + 𝜏gj(x),

где x – вектор скоростей в момент времени n𝜏. Сравнивая выражения для qj(n + 1) и qj((n + 1)𝜏, мы видим, что если шаги градиентного алгоритма для 𝜆j выполняются каждые 𝜏 секунд, то 𝜆j ≈ (𝛽/𝜏) qj.

То есть цена линии связи должна быть выбрана пропорционально длине очереди на этой линии. Логика вполне очевидна: если очередь j увеличивается, то канал должен стать более дорогим, чтобы заставить пользователей снизить скорость передачи данных. И наоборот, если очередь j уменьшается, то цена канала j должна уменьшиться, чтобы побудить пользователей увеличить его использование.

8.4.3. И снова о TCP Алгоритм TCP качественно похож на алгоритм, рассмотренный выше. Чтобы убедиться в этом, следует рассматривать потерю скорости, которую испытывает поток, как совокупную цену для этого потока. Эта цена является суммой цен (коэффициентов потерь) различных каналов. Уровень потерь приблизительно линейно увеличивается с ростом длины очереди, если используется алгоритм Random Early Detection (RED), который, когда длина очереди становится большой, отбрасывает пакеты с некоторой вероятностью. Источник замедляется при увеличении цены p, что соответствует перенастройке скорости x для максимизации u(x) – px. Далее мы сравним поведение алгоритма управления перегрузкой в TCP с алгоритмом, основанным на оптимизации сети, показанной на рис. 8.4. Как было сказано в разделе 7.5, TCP использует схему аддитивного увеличения / мультипликативного уменьшения (AIMD). На рис. 8.7 показано, как меняется со временем средняя скорость трех соединений, если источники используют AIMD. Предполагается, что C1 = 8, C2 = 4 и круговая задержка для линии связи 1 в два раза больше, чем для линий 2 и 3. На рисунке мы видим, что средние скорости трех соединений в долгосрочной перспективе составляют x1 = 0,47, x2 = 5,65, x3= 2,77.

166

 Глава8.Модели 6

x2 5 4 3

x3

2 1

x1 0

0

200

400

600

800

1000

1200

Рис. 8.7. Эволюция скоростей при использовании AIMD. На рисунке показано как алгоритм регулирует скорости x1, x2, x3 соединений; ось Y – скорость, ось X – время. Предельные скорости показывают, что AIMD очень предвзято относится к соединениям с большой круговой задержкой 8 7

x2

6 5 4 3

x3 x1

2 1 0

0

200

400

600

800

1000

1200

Рис. 8.8. Эволюция скоростей с использованием алгоритма пропорциональной справедливости. На рисунке показано как алгоритм регулирует скорости x1, x2, x3 соединений; ось Y – скорость, ось X – время. Предельные скорости пропорционально справедливы

Таким образом, сумма средних скоростей двух каналов составляет 6,12 и 3,24 соответственно, что составляет около 80 % пропускной способности этих каналов. Потеря пропускной способности в нашей модели происходит из-за того, что буферы слишком малы, и если использовать буферы большего размера, то она исчезнет, что и делается на практике. Мы видим, что линия связи 1 имеет очень маленькую пропускную способность, отчасти потому, что она использует два канала и отчасти

8.5.Динамическиемаршрутизацияи управлениеперегрузками  167 потому, что большая круговая задержка приводит к медленному увеличению скорости соединения, что позволяет другим соединениям лучше использовать доступную пропускную способность. Таким образом, AIMD – это умная схема с подстройкой «на ходу», которая стабилизирует скорость соединений так, чтобы ни один маршрутизатор не перегружался, и это было главной целью ее изобретателя Вана Якобсона. Однако в данной схеме скорость линий связи сильно зависит от круговой задержки линий и от количества каналов, через которые они проходят. При использовании двойственного алгоритма скорости трех соединений корректируются, как показано на рис. 8.8. Этот алгоритм сходится к пропорционально справедливому распределению x1 = 1,7, x2 = 6,3, x3 = 2,3.

8.5. Динамические маршрутизация и управление перегрузками В этом разделе показано, как схема максимизации полезности может естественным образом привести к распределенным протоколам на разных уровнях. Сеть на рис. 8.9 имеет четыре узла с очередями сообщений X1, …, X4. Два потока прибывают в сеть со скоростями Ra и Rb, которые контролируются их источниками. Узел 1 посылает биты в узел 2 со скоростью S12, а в узел 3 – со скоростью S13. Сумма этих скоростей должна быть меньше, чем скорость передачи C1 узла 1. Аналогично скорость S24 от узла 2 к узлу 4 не может превышать скорость передатчика C2 в узле 2, а скорость S34 не может превышать C3. Rb Ra

S12 1 X1 S13

X2 2 S24

X4 C 4 4

3 S34 X3

Рис. 8.9. Сеть с двумя потоками

Задача состоит в том, чтобы максимизировать сумму полезностей потоков ua(Ra) + ub(Rb), не допуская чрезмерного увеличения очереди сообщений. Функции ua и ub являются возрастающими и вогнутыми, отражая тот факт, что

168

 Глава8.Модели

пользователи получают больше полезности от более высоких скоростей передачи, но с убывающим приростом в том смысле, что полезность каждой дополнительной единицы скорости тем меньше, чем больше текущая скорость. В частности, 1 uj (x) = kj ————x1–�, j = a, b 1–�

для некоторых � > 0, но � ≠ 1 и kj > 0. Чтобы найти баланс между максимизацией полезностей и сохранением небольшой очереди сообщений, мы выбираем скорость (Ra, Rb, S12, S13, S24, S34) так, чтобы при некоторых 𝛽 > 0 максимизировать d 1 4 𝜑 := 𝛽�ua(Ra) + ub(Rb)� – ——�—�X2i (t)�. dt 2 i=1

Для максимизации этого выражения выбираются скорости, обеспечивающие бóльшую полезность ua(Ra) + ub(Rb), а также большее уменьшение суммы квадратов отставаний. Параметр 𝛽 определяет компромисс между большой полезностью и большой очередью. Чем больше этот параметр, тем важнее полезность по сравнению с очередью. Итак, d 1 d ——�—X22 (t)� = X2(t)——X2(t) = X2(t)�Rb + S12 – S24�, dt 2 dt

поскольку скорость изменения X2(t) – это скорость прибытия Rb + S12 в узел 2 минус скорость ухода S24 из этого узла. Условия для других очередей аналогичны. Сложив все это вместе, находим: 𝜑 = 𝛽�ua(Ra) + ub(Rb)� – X1�Ra – S12 – S13� – X2�Rb + S12 – S24� – – X3�S13 – S34� – X4�S24 + S34 – C4�.

Переставляем члены этого выражения следующим образом: 𝜑 = 𝛽�ua(Ra) – X1Ra� +�𝛽ub(Rb) – X2Rb� + S12�X1 – X2� + + S13�X1 – X3� + S24�X2 – X4� + C4X4.

Максимизировать это выражение довольно просто, если обратить внимание на то, что разные члены содержат разные переменные. Обратите внимание, что последний член не включает ни одной переменной, влияющей на решение. Получается следующее: Ra максимизирует 𝛽ua(Ra) – X1Ra, Rb максимизирует 𝛽ub(Rb) – X2Rb,

8.6.Беспроводнаясвязь  169 S12 = C1 × 1{X1 > X2 и X2 < X3}, S13 = C1 × 1{X2 > X4}, S24 = C2 × 1{X2 > X4}, S34 = C2 × 1{X3 > X4}. Таким образом, источник потока a корректирует свою скорость Ra в зависимости от отставания X1 в узле 1 и аналогично для потока b. Вогнутость функций uj подразумевает, что Ra уменьшается с ростом  X1, а  Rb  – с ростом X2. Для функций, указанных выше, Ra = [ka /X1]1/� и Rb = [kb/X2]1/�. Узел 1 посылает пакеты следующему узлу (2 или 3) с наименьшим отставанием при условии, что это отставание меньше, чем X1; в противном случае узел 1 прекращает отправку пакетов. Узел 2 отправляет пакеты до тех пор, пока его отставание превышает отставание следующего узла, и аналогично для узла 3. Так как скорости Ra и Rb стремятся к нулю при увеличении X1 и X2, можно ожидать, что эта схема сделает сеть стабильной, и это можно доказать. В реальной сети существуют задержки информации об отставаниях в нисходящем потоке, и узлы посылают пакеты, а не биты. Тем не менее нетрудно показать, что эти факторы не влияют на стабильность сети. Такой механизм корректировки скорости называется алгоритмом обратного давления. Заметим, что управление перегрузкой основывается только на величине очереди следующего узла. В этом заключается различие с TCP, который использует сигналы о потерях от всех узлов по пути следования. Кроме того, маршрутизация основывается на очередях в узлах. Интересно, что управление скоростью каждого узла основано только на локальной информации о следующих узлах в нисходящем потоке. Эта информация может быть получена из обратного трафика. Таким образом, этот алгоритм может быть легко реализован в каждом узле без глобального знания всей сети.

8.6. Беспроводная связь А что же беспроводные узлы? В проводной сети канал видит очередь в буфере, присоединенном к нему. Однако в беспроводной сети, если два узла совместно используют некоторый канал, они не знают об общей очереди сообщений, накопившейся в этом канале. На что может опираться распределенный алгоритм в таком случае? Объясним это на простом примере, показанном на рис. 8.10. Два узла совместно используют один беспроводной канал. Предположим, что полезность потока 1 равна log(x), а потока 2 – 2 log(y).

x 1 y Рис. 8.10. Два потока совместно используют беспроводной канал с пропускной способностью 1

170

 Глава8.Модели

Задача оптимизации заключается в следующем: максимизировать f(x, y) = log(x) + 2 log(y) при условии, что x + y ≤1. Если мы воспользуемся двойственным алгоритмом, о котором говорилось выше, то обнаружим, что узлы должны задавать x и y на основе общей очереди сообщений следующего узла. Однако ни один узел не видит этой очереди, поскольку она разделена на два разных буфера: по одному в каждом узле. В этот момент можно было бы попросить узлы обменяться информацией о своих очередях. Однако такой подход сложен, особенно в большой сети. Другой подход вполне осуществим, хотя поначалу он выглядит как окольный путь. Пусть p1 и p2 – время, в течение которого узлы используют канал. Сформулируем задачу оптимизации следующим образом: максимизировать f(x, y) = log(x) + 2 log(y) при условии, что x ≤ p1, y ≤ p2 и p1 + p2 ≤ 1. Чтобы вывести желаемый распределенный алгоритм, дополнительно изменим задачу, как указано ниже: максимизировать f(x, y) = log(x) + 2 log(y) + 𝛽𝜑(p1) + 𝛽𝜑(p2) при условии, что x ≤ p1, y ≤ p2 и p1 + p2 ≤ 1. 𝜑(z), содержащаяся в объективной функции, – это некоторая ограниченная вогнутая возрастающая функция от z. Если коэффициент 𝛽 мал, то целевая функция мало меняется, так что мы задачу не изменили. Позже увидим, зачем в выражение включены эти дополнительные члены. Далее мы заменяем два ограничивающих неравенства штрафными функциями. Для дальнейших выкладок продолжаем полагать, что соблюдается равенство p1 + p2 = 1. Максимизируем h(x, y, p; 𝜆) = log(x) + 2 log(y) + + 𝛽𝜑(p1) + 𝛽𝜑(p2) – 𝜆1(x – p1) – – 𝜆2(x – p2).

Затем мы максимизируем h по (x, y, p) и минимизируем по 𝜆 с помощью градиентного спуска по шагам. Это дает

8.6.Беспроводнаясвязь  171 1 — = 𝜆1, x

2 — = 𝜆2, y 𝛽𝜑'(p1) + 𝜆1 = 0, 𝛽𝜑'(p2) + 𝜆2 = 0, 𝜆1(n + 1) = 𝜆1(n) + 𝛾(x(n) – p1(n)), 𝜆2(n + 1) = 𝜆2(n) + 𝛾(y(n) – p2(n)).

Как и ранее, последние два тождества означают, что 𝜆k пропорционально отставанию в узле k для k = 1, 2. Два первых уравнения определяют зависимость потока от очереди. Третье и четвертое уравнения являются новыми. Они показывают, что p1 = 𝜓(–𝛽–1 𝜆1) и p1 = 𝜓(–𝛽–1 𝜆2).

В этих выражениях 𝜓 является обратной величиной 𝜑'. Выбор 𝜑 аналогичен выбору 𝜓. Многие такие функции приводят к достаточно оптимальным решениям с точки зрения пропускной способности, но могут приводить к различным задержкам. Ключевым моментом является то, что p1 должно увеличиваться с ростом отставания узла 1, а p2 – с ростом отставания узла 2. Напомним, что мы хотим, чтобы p1 + p2 = 1. В итоге получаем следующий алгоритм: • каждый узел пытается передать пакет с вероятностью, которая увеличивается с ростом его отставания; • каждый узел принимает новый пакет со скоростью, которая уменьшается с ростом его отставания. Это соответствует распределенному протоколу. 3.5 3

Q2(n)

2.5 2

Q1(n) 1.5 1

Y(n)

0.5

X(n) 0

5

10

15

20

25

30

Рис. 8.11. Производительность адаптивного алгоритма CSMA

 Глава8.Модели

172

На рис. 8.11 показано, как работает этот алгоритм. В этом примере мы использовали a1 = exp{2Q(1, n)} и a2 = exp{2Q(2, n)}. В выборе этих функций есть свое искусство. Различные варианты приводят к различным отставаниям и, следовательно, к разным задержкам. Этот же подход распространяется на обычную многошаговую беспроводную сеть и может быть объединен с маршрутизацией обратного давления и управлением потоком.

8.7. Приложение: обоснование теоремы двойственности линейного программирования В этом разделе мы покажем, как получена теорема 8.1. Рассмотрим задачу (8.8) и предположим, что ее решением является x. Предположим, что ga(x*) = 0 и gb(x*) = 0, так что оба ограничения выполняются. Поскольку x* максимизирует f при условии, что ga ≤ 0 и gb ≤ 0, невозможно слегка изменить x*, чтобы увеличить f(x) без увеличения функций ga(x) или gb(x). То есть невозможно переместиться от x* в направлении градиента ∇f(x*), не двигаясь одновременно в направлении градиента ∇ga(x*) или ∇gb(x*). В левой части рис. 8.12 это условие выполняется, а в правой нет, здесь при увеличении x значение f становится больше f(x*) без увеличения ga и gb. Судя по рисунку, это условие подразумевает, что ∇f(x*) представляет собой неотрицательную линейную комбинацию ∇ga(x*) и ∇gb(x*). f



gb

ga > 0



ga < 0



gb

ga < 0 ∆



x*

ga

gb > 0

gb < 0

ga

f



ga > 0

gb > 0

x* x

gb < 0

Рис. 8.12. Решение и градиенты

Таким образом, необходимым условием оптимальности x* является то, что ∇f(x*) = 𝜆a∇ga(x*) + 𝜆b∇gb(x*)

для некоторых 𝜆a ≥ 0 и 𝜆b ≥ 0 и, кроме того,

8.8.Резюме  173 𝜆a ga(x*) = 0 и 𝜆b gb(x*) = 0.

(Обратите внимание, что этот аргумент не действителен, если градиенты ∇ga(x*) и ∇gb(x*) взаимно пропорциональны. Таким образом, технически теорема требует, чтобы этого не было. Это так называемые условия Слейтера.) Наконец, покажем, что 𝜆* минимизирует D(𝜆) := maxx L(x, 𝜆). По определению D(𝜆) – это максимум линейных функций от 𝜆 (свой для каждого значения x). На рис. 8.13 показано, что этот максимум является выпуклым. Чтобы упростить рисунок, мы предположили, что существует только одно ограничение g(x) ≤ 0 и 𝜆 – это соответствующий множитель Лагранжа. Заметим, если x(𝜆) максимизирует L(x, 𝜆), где L(x, 𝜆) = f(x) – 𝜆 g(x),

то

Следовательно,

∇xL(x, 𝜆) = 0 для x = x(𝜆).

d dx(𝜆) ∂ ——L(x(𝜆), 𝜆) = ∇x L(x(𝜆), 𝜆). ———— + ——L(x(𝜆), 𝜆) = –g(x(𝜆)). d𝜆 d𝜆 ∂𝜆

Из рис. 8.13 следует, что наибольшему значению f(x(𝜆*)) из f(x(𝜆)) при g(x(𝜆)) ≤ 0 соответствует g(x(𝜆*)) = 0 и минимальное значение D(𝜆*) из D(𝜆). Рисунок построен для случая g(x(0)) > 0. Рисунок для случая g(x(0))  0 Вт на приемной стороне. Кроме того, предположим, что передача этого пользователя мощностью Pi Вт способна достичь скорости передачи данных, определяемой формулой пропускной способности Шеннона. Найдите алгоритм распределения общей мощности P Вт между N пользователями, при котором сумма скоростей передачи данных, достигнутых пользователями, максимальна. Предположим, что P = 10 Вт и N = 4. Найдите оптимальное распределение мощности, если вектор (n1, n2, n3, n4) мощностей шума для пользователей составляет (3, 2, 1, 4) Вт. Каким будет оптимальное распределение мощности, если этот вектор будет (3, 2, 1, 8) Вт?

8.3.

Рассмотрим сеть, показанную на рис. 8.15. Внешние данные поступают по пуассоновскому закону со скоростью 100 пакетов в секунду, время обслуживания в двух очередях является IIDэкспоненциальным1 со скоростями 200 и 100 пакетов в секунду, как показано на рисунке, и после обслуживания в очереди 1 каждый пакет независимо отправляется в очередь 2 с вероятностью 0,2 и покидает сеть с вероятностью 0,8. Найдите среднюю общую задержку в этой сети. 200 1

100

0.8 0.2

2 100 Рис. 8.15. Рисунок к задаче 8.3

8.4.

1

Бизнес-сайт имеет две линии передачи для обслуживания пакетов, генерируемых этим сайтом. Эти две линии моделируются двумя серверами с соответствующими очередями, как показано на рис. 8.16. Линия связи, представленная сервером Сервер 1, была первой, а вторая линия была добавлена в более позднее время, чтобы уменьшить среднюю задержку пакетов при выходе из этого сайта. Однако вторая линия медленнее первой, и нам необходимо определить оптимальную вероятность p, с которой каждый прибывающий пакет независимо направляется на эту более медленную линию. Предположим, что пакеты генерируются на этом сайте в соответствии с пуассоновским процессом со скоростью

IID (Independent Identical Distributed) – независимые и одинаково распределенные.

176

 Глава8.Модели

𝜆 = 1000 пакетов в секунду. Для пункта (a) ниже также предположим, что время передачи по этим линиям, определяемое временем обслуживания соответствующим сервером, распределяется экспоненциально со скоростями μ1 = 4000 и μ2 = 3000  пакетов в секунду. a) Найдите оптимальное значение p, которое минимизирует среднюю задержку пакетов, генерируемых этим сайтом. b) Теперь предположим, что время передачи по второй линии (более медленной) всегда имеет фиксированное значение 1/3 мс, в то время как время передачи по первой линии по-прежнему экспоненциально распределено со скоростью μ1 = 4000 пакетов в секунду. Это может произойти, например, из-за различных накладных расходов на функцию шифрования на двух линиях и т. д. Как оптимальное значение p для этого сценария будет отличаться (т. е. будет таким же, меньшим или большим) от найденного в пункте (a)? Обоснуйте свой ответ. µ2 p λ

Сервер 2

µ1

Сервер 1 Рис. 8.16. Рисунок к задаче 8.4

8.5.

На рис. 8.17 представлены два TCP-соединения f1 и f2. Пропускная способность двунаправленных каналов AB и BC составляет 10 и 2 Мбит/с соответственно. Во всех вопросах ниже игнорируйте эффект быстрого восстановления (т. е. вы можете рассматривать фазу предотвращения перегрузок как простую AIMD с мультипликативным коэффициентом 1/2). a) Предположим, что активна только связь f1 и что f1 находится в фазе предотвращения перегрузок. Среднее время RTT для f1 составляет 50 мс. Рассчитайте среднюю пропускную способность f1. b) Теперь предположим, что f2 также активна и находится в фазе предотвращения перегрузок. Среднее время RTT для f1 и f2 составляет 50 и 100 мс соответственно. Рассчитайте среднюю пропускную способность f1 и f2. c) Мы хотим максимизировать общую полезность этой сети. Используя логарифмическую функцию полезности, запишите

8.10.Ссылки  177 задачу оптимизации и решите ее для оптимальных скоростей. Сравните этот результат с результатом пункта (b). d) Запишите псевдокод градиентного алгоритма, который решает вышеуказанную задачу как распределенную задачу управления перегрузками. f2 A

10 Мбит/с

f1

B

2 Мбит/с

C

Рис. 8.17. Рисунок к задаче 8.5

8.6.

Рассмотрим сеть из двух последовательно расположенных очередей, как показано на рис. 8.18. Поступление может быть представлено пуассоновским процессом со скоростью x, время обслуживания в очередях – это независимые и одинаково распределенные экспоненциальные случайные величины со скоростями μ1 = 12 и μ2 = 7 соответственно. a) Запишите выражение для общей средней задержки в сети, обозначив ее D(x). b) Мы хотим максимизировать f(x) = 10 loge(x) – 2x при условии, что D(x) ≤ 0,4 с. Запишите выражение лагранжиана для этой задачи. c) Покажите, что для этой задачи выполняются условия Слейтера. d) Найдите оптимальное значение скорости поступления x.

x

µ1 = 12

µ2 = 7

Рис. 8.18. Рисунок к задаче 8.6

8.10. Ссылки Определение управления перегрузками как проблемы максимизации полезности пользователя принадлежит Келли и др. [54]. В этой основополагающей работе авторы показывают, что двойственная задача распадается на задачу сети и задачи отдельных пользователей. Смотрите также [61]. Понятие справедливости было введено в [71]. Теория выпуклой оптимизации дана в [20]. Планирование на основе проти-

178

 Глава8.Модели

водавления было введено Тассиуласом и Эфремидесом в [100] и объединено с управлением перегрузками Нили и др. в [77]. Подробное изложение этих идей см. в [95] и [96]. Либин Цзян добавил MAC-оптимизацию (см. [51]).

Powered by TCPDF (www.tcpdf.org)

Глава

9 LTE

Сотовая связь произвела революцию в общении. Она позволила обмениваться всеми формами информации (т. е. данными, голосом/ аудио и видео) практически из любого места и в любое время. LongTerm Evolution (LTE) – это новейшая технология реализации сотовых сетей. В этой главе мы сначала рассмотрим основные соображения, необходимые для создания архитектуры сотовой сети, а затем объясним основы сети LTE, отметив, как она расширяет возможности сотовых сетей. Мы также опишем новые ключевые технологии, используемые в усовершенствованной версии LTE, называемой LTE-Advanced. В конце главы дадим предварительный обзор грядущей технологии 5G.

9.1. Сотовая сеть Сотовая сеть предназначена для обеспечения глобального мобильного доступа и хорошего качества передачи данных, голоса, аудио и видео. Она пытается сделать это через среду, которая по своей природе ненадежна из-за таких искажений, как затухание, блокировка и отражение сигнала. Этот недостаток надежности еще больше усугубляется мобильностью пользователя, возможно, двигающегося с высокой скоростью на автомобиле. Кроме того, пользовательские устройства (например, сотовые телефоны, планшеты и т. д.), как правило, имеют недостаточную мощность в этой среде. Пользователи должны быть доступны, где бы они ни находились, и соединения должны поддерживаться, даже когда пользователи перемещаются. Основная идея сотовой сети заключается в разделении географической области на ячейки (соты). Пользователи общаются с базовой станцией (БС), расположенной в центре соты. Как правило, соседние соты используют разные частоты для ограничения помех. На рис. 9.1 показан идеализированный вид такой схемы, где f i обозначает центральную частоту, используемую данной сотой. Помехи уменьшаются путем адаптации мощности передачи к расстоянию между пользовательскими устройствами и БС. Совсем недавно соседние соты смогли использовать

180

 Глава9.LTE

одну и ту же частоту с помощью усовершенствованных методов подавления взаимных помех. Для достижения надежного обслуживания, в отличие от Wi-Fi, сотовая сеть работает в лицензированных частотных диапазонах. Кроме того, трафик данных между пользовательскими устройствами и БС жестко регулируется самой БС, чтобы избежать конкуренции и удовлетворить требования к производительности активных соединений. БС соединена проводной сетью с узлами, выполняющими задачу маршрутизации входящего и исходящего трафика данных интернета и других телефонных сетей, и в этом ей помогают узлы, выполняющие функции, необходимые для установления и поддержания пользовательских соединений. Общая архитектура, используемая для этих дополнительных узлов, является неотъемлемой частью проектирования сотовой сети.

f1

f1

f3

f2

f1

f2

f1

f3

f1

f3

f2

f1

f1 Рис. 9.1. Частотное планирование

Чтобы подключиться к сети, пользовательское устройство прослушивает сигналы от БС. Оно выбирает БС с наиболее мощным сигналом. Каждая БС определяет периодические временные интервалы, в течение которых новые пользователи могут сообщить о своем желании подключиться. Пользовательское устройство отправляет запрос во время од-

9.1.Сотоваясеть  181 ного из таких временных интервалов в выбранную БС. Если запрос не сталкивается с запросом от другого пользователя, БС выделяет определенные временные интервалы и частоты для связи с пользовательским устройством. Каждый пользователь связан с домашним реестром, где записано его местоположение. Периодически пользовательское устройство посылает сигнал, который местная БС принимает и затем посылает сообщение в домашний реестр пользователя для обновления его местоположения. Чтобы связаться с пользователем, сеть находит в домашнем реестре его местоположение, а затем направляет информацию на соответствующую БС. Когда пользователь перемещается из одной соты в другую, новая БС перехватывает на себя связь в процессе, называемом хендовер (handover). Допустим, БС общается с пользователем, приближающимся к другой БС. Он периодически сообщает сети уровень сигнала от двух БС, и сеть помогает ему перейти на новую БС. БС работает с общей скоростью, определяемой схемой модуляции. Эта скорость делится между всеми активными пользователями в соте. Соответственно, количество активных пользователей в соте ограничено скоростью БС, деленной на скорость для каждого пользователя. Следовательно, площадь соты должна быть почти обратно пропорциональна плотности активных пользователей. (Фактически, поскольку схема модуляции может зависеть от качества соединения пользователя, точное распределение немного сложнее). Например, в плотном мегаполисе ячейки должны быть меньше, чем в разреженной сельской местности. Если говорить конкретно, радиус ячейки обычно варьируется в пределах 1–20 км. Стоит заметить, что, если ячейки маленькие, хендоверы, скорее всего, будут более частыми. В сотовых сетях мощность передачи относительно небольшая. Например, пользовательское устройство LTE имеет максимальную мощность передачи данных около 0,2 Вт, в то время как максимальная мощность передачи, используемая БС LTE, работающей с каналом шириной 10 МГц, составляет около 40 Вт. Более крупные ячейки требуют относительно большей мощности передачи к пользовательским устройствам и от них. В целом сотовая сеть должна обеспечивать высокую производительность в среде с непредсказуемыми помехами, при этом сталкиваясь с ограничениями по частоте и мощности. В отличие от Wi-Fi сотовая сеть добавляет поддержку мобильности, отслеживая местоположение пользователей и выполняя переключения между БС, которые расположены так, чтобы гарантировать покрытие в широкой географической зоне. Проследив эволюцию технологии LTE, мы обсудим в оставшейся части этой главы, как LTE решает некоторые из задач и проблем, которые мы описали выше.

182

 Глава9.LTE

9.2. Технологическая эволюция LTE – это особая реализация сотовой сети. Она стандартизирована организацией 3rd Generation Partnership Project (3GPP). На рис. 9.2 показаны некоторые из важных релизов 3GPP и основные технологические вехи в эволюции к LTE. Эта эволюция представляет собой переход от коммутации каналов к коммутации пакетов с поддержкой мобильности и многоадресной передачи, а также увеличением скорости передачи. 1999

2002

2005

2008

2011

Релиз-6 (E-DCH, MBMS, HSUPA)

Релиз R99 (UMTS) Мобильность

Релиз-5 (HSDPA)

2014

2017

Релиз-12 (LTE-Adv Evolution)

Исходный VoIP

Релиз-10 (LTE-Adv)

Релиз-15 (Исходная 5G)

OFDMA Релиз-8 (LTE)

Рис. 9.2. Технологическая эволюция

Релиз R99 определил универсальную мобильную телекоммуникационную систему (UMTS), в которой равное внимание уделялось как мобильным данным, так и мобильным голосовым услугам. UMTS производила передачу голоса с использованием коммутации каналов, а передачу данных с помощью коммутации пакетов. Релиз 5 в первую очередь нацелен на более высокую пропускную способность и снижение задержек в нисходящем направлении с помощью протокола HSDPA (High Speed Downlink Packet Access) – высокоскоростного пакетного доступа к нисходящему каналу. В свою очередь релиз 6 нацелен на повышение производительности в направлении восходящего канала. В этом релизе пакетная передача голоса производится с использованием IP-протокола (Voice over IP, VoIP), реализованного на практике с учетом высоких норм Quality of Service (QoS), необходимых для обеспечения должного качества обслуживания в реальном времени. Кроме того, в этом релизе была представлена мультимедийная широковещательная служба многоадресной передачи Multimedia Broadcast and Multicast Service (MBMS) для услуг «точка – группа точек». В релизе 8 представле-

9.3.КлючевыеаспектыLTE  183 на сеть LTE, использующая физический уровень, основанный на технологии ортогонального частотного разделения и мультиплексирования (OFDMA). Он является основной темой данной главы. В релизах 10 и 11 представлены расширенные функции для повышения производительности LTE. Ближе к концу этой главы мы кратко обсудим эти функции в разделе про LTE-Advanced, а также рассмотрим перспективную технологию радиодоступа 5-го поколения (5G), которая предложена 3GPP в релизе 15.

9.3. Ключевые аспекты LTE Развитие LTE регулируется строгим набором требований, который включает в себя пропускную способность нисходящей и восходящей линий связи по меньшей мере 100 и 50 Мбит/с, соответственно, в каждой соте с полосой пропускания спектра 20 МГц и задержкой на уровне данных менее 5 мс в сети радиодоступа (Radio Access Network, RAN). Для LTE также необходимы поддержка высокоскоростной мобильности и значительно улучшенная производительность сотовой связи. Для работы LTE требуются каналы с шириной спектра 1,4–20 МГц. LTE поддерживает два метода передачи в нисходящем и восходящем направлениях для совместного использования радиоканалов: дуплекс с частотным разделением (Frequency Division Duplex, FDD) и дуплекс с временным разделением (Time Division Duplex, TDD). В режиме FDD восходящий и нисходящий каналы передачи используют разные частоты. В режиме TDD два направления передачи применяют общий канал, разделяя его использование по времени. Решение о том, использовать FDD или TDD, в значительной степени продиктовано доступностью спектра, поскольку FDD применяет более широкий спектр, чем TDD. Для ограничения межсотовых помех и продления срока службы батарей в пользовательских устройствах для управления мощностью передачи по восходящему каналу LTE использует схемы как с обратной связью, так и без нее. В схеме без обратной связи пользовательское устройство оценивает потери при передаче пилот-сигнала по нисходящему каналу известной мощности и регулирует мощность передачи, предполагая аналогичные потери при передаче по восходящему каналу. В схеме с обратной связью БС явно указывает пользовательскому устройству, следует увеличивать или уменьшать мощность передачи, оценивая уровень принятого сигнала. Стандарты не указывают, какую схему управления мощностью по нисходящему каналу надо применять, оставляя это решение оператору сети. Чтобы максимально надежно увеличить общую скорость передачи данных, LTE использует следующие методы: адаптивную модуляцию и кодирование (Adaptive Modulation and Coding, AMC), гибридно­автома-

184

 Глава9.LTE

тический повторный запрос (Hybrid-Automatic Repeat request, H-ARQ) и MIMO. Механизм динамической адаптивной модуляции и кодирования AMC, используемый устройством как в нисходящем, так и в восходящем направлениях, основан на преобладающем состоянии канала, о чем сообщается обратной связью от устройства. Поскольку ошибки более вероятны для схем модуляции с большей скоростью передачи, MAC использует такие схемы только при хорошем качестве канала. В подуровне управления радиосвязью (Radio Link Control, RLC) LTE реализует обычный механизм ARQ, использующий для надежной доставки данных обнаружение ошибок (ED), а также подтверждения, тайм-ауты и повторные передачи. Кроме того, для более быстрой доставки правильных данных LTE также реализует H-ARQ в подуровне MAC. H-ARQ – это сочетание схемы, подобной ARQ, прямой коррекции ошибки (FEC) и механизма программного сочетания данных, как описано ниже. LTE обеспечивает в рамках своего протокола MAC быстрое обнаружение подтверждения правильности передачи данных, используя H-ARQ. Если требуется одна или несколько повторных передач, H-ARQ буферизует все ранее полученные версии данных, объединяет их с последней версией, а затем пытается декодировать переданные данные. Этот механизм и называется программным сочетанием данных, или Soft Combining. В одном из методов Soft Combining, называемом повторение попытки (Chase Combining, CC), первая передача и все последующие повторные передачи содержат одни и те же данные, служебные данные ED и служебные биты FEC. CC объединяет полученные копии с помощью сложения по максимальному коэффициенту (Maximum Ratio Combining, MRC). В MRC перед суммированием принятых сигналов каждая версия умножается на комплексный сопряженный коэффициент усиления канала для этого приема. Другой метод Soft Combining, используемый H-ARQ, называется возрастающая избыточность (Incremental Redundancy, IR). Основная идея IR заключается в передаче все большего количества избыточной информации, связанной с FEC, когда требуются дополнительные попытки передачи. Поскольку FEC может вызвать значительные потери производительности, IR пытается уменьшить их путем поэтапной передачи по мере необходимости. Для этого IR заранее подготавливает небольшое количество резервных версий (RV) для каждого блока данных, и после первого блока RV следующий передается только в том случае, если приемник указывает, что он не может декодировать данные из предыдущего блока. Такая инкрементальная передача служебных данных FEC становится возможной благодаря использованию так называемых пунктирных (неполных) турбокодов. Например, первый RV может содержать данные, служебные данные ED и небольшое подмножество полных служебных битов FEC, а следующие RV могут со-

9.3.КлючевыеаспектыLTE  185 держать только дополнительные новые подмножества полных служебных битов FEC. В адаптивной версии H-ARQ в зависимости от состояния канала отправитель может с каждой попыткой корректировать атрибуты передачи, такие как поднесущие, используемые для передачи, передаваемый RV, а также используемую схему модуляции и кодирования. Если H-ARQ не может правильно декодировать переданные данные при ограниченном количестве повторных передач, он передает ответственность за получение правильных данных обычному процессу ARQ. Как и в случае с более поздними версиями Wi-Fi (например, IEEE 802.11n), для повышения производительности LTE поддерживает MIMO. В MIMO алгоритм источника определяет, какие данные передает каждая из его антенн. Например, все антенны могут передавать копию одних и тех же данных для резервирования в целях повышения надежности. Это так называемое разнесение передачи используется, когда условия канала плохие. Или каждая антенна может передавать разные данные для достижения более высокой общей скорости передачи данных. Этот подход называется пространственным мультиплексированием и используется, когда условия канала благоприятны. В приемнике встроенный алгоритм объединяет сигналы от разных приемных антенн.

9.3.1. Архитектура системы LTE Как показано на рис. 9.3, базовые станции (BС) сети LTE, или развитые узлы (evolved Node Bs, eNBs), соединены между собой проводной IP-сетью, называемой развитым пакетным ядром (Evolved Packet Core, EPC). EPC содержит плоскость управления (control plane), передающую управляющую информацию, и плоскость данных (data plane), которая передает данные между пользователями и узлом. Плоскость данных подключена к интернету и к другим телефонным сетям. EPC содержит узел управления мобильностью (MME), абонентский сервер подписок (Home Subscriber Server, HSS), обслуживающий шлюз (S-GW), шлюз сети пакетной передачи данных (P-GW) и дополнительные серверы (не показаны на рисунке) для реализации правил системной политики и взимания платы. Как показано на рис. 9.3, S-GW передает трафик данных по восходящему и нисходящему каналу в общедоступный или частный интернет и из него через P-GW. S-GW также играет роль опорной точки при выполнении хендоверов между узлами eNB. Узел MME предназначен для функций плоскости управления, включая аутентификацию пользователя для установления соединения, выбор S-GW, помощь при передаче, отслеживание и поддержку активности пользовательских устройств в режиме ожидания, а также контроль безопасности. На рисунке показано взаимодействие в плоскости управления между MME и eNB, а также между MME и S-GW. Это может быть сигнализация во время на-

186

 Глава9.LTE

чальной настройки соединения для потока пользовательских данных или сигнализация во время изменения соединения из-за хендовера. MME также обменивается данными с HSS для получения информации о подписке пользователя, включая пользовательские настройки. Когда пользователь находится вдали от домашней зоны, отвечающий за него HSS проводит обмен данными для проверки подлинности, а также для получения информации о местоположении пользователя. HSS включает в себя функцию «домашний реестр», которую мы упоминали в начале главы. EPC eNB S-GW

P-GW

MME

HSS

Интернет

EPC

EPC

eNB Плоскость данных Плоскость управления Рис. 9.3. Система LTE

Если хендовер осуществляется в пределах одной и той же системы LTE (т. е. внутрисистемный хендовер), он выполняется почти автономно между обслуживающим и целевым узлами ENB с минимальным участием MME и S-GW. На основе отчетов о качестве канала от пользовательского обслуживающего устройства и от соседних ENB обслуживающий узел eNB принимает решение о хендовере и выбирает целевой eNB. Впоследствии обслуживающий eNB резервирует радиоресурсы в целевом eNB, координирует хендовер с целевым eNB и пользовательским устройством и передает данные пользователя по нисходящему каналу в целевой eNB до тех пор, пока не будет установлен новый путь от S-GW к целевому eNB. После установления связи с пользователем целевой eNB информирует MME о хендовере и начинает получать данные пользователя по нисходящему каналу непосредственно через S-GW. LTE также выполняет другие более сложные формы хендовера: между двумя системами LTE, между LTE и другой сетью радиодоступа (RAT), например работающей по технологии 3G (межсистемный хендовер).

9.3.КлючевыеаспектыLTE  187

9.3.2. Физический уровень LTE использует метод модуляции, называемый мультиплексированием с ортогональным частотным разделением каналов (Orthogonal Frequency Division Multiplexing, OFDM). OFDM обладает высокой эффективностью спектра. То есть OFDM способен передавать данные с высокой скоростью в заданной полосе спектра. Для достижения этой цели OFDM передает данные параллельно на большом количестве близко расположенных поднесущих, модулируя различные частоты разными данными. Чтобы эти сигналы не мешали друг другу, схема модуляции такова, что максимальная мощность поднесущей находится на частоте, где мощность других поднесущих наименьшая. Это свойство сохраняется, если расстояние между поднесущими равно величине, обратной длительности символа, т. е. периоду времени, в течение которого передается модулированный символ (выход процесса модуляции). Чтобы сделать систему устойчивой к помехам, возникающим, когда приемник получает суперпозицию задержанных версий сигнала, поступающего разными путями, OFDM использует следующий метод. Перед передачей сигнала, представляющего комбинацию модулированных поднесущих, в течение каждого символьного времени OFDM вставляет циклический префикс, являющийся частью «хвоста» этого комбинированного сигнала. Фиксированная длительность циклического префикса задается больше, чем ожидаемый максимальный разброс задержки, т. е. больше максимальной разницы во времени распространения по различным путям. В приведенном ниже обсуждении мы называем общую длительность циклического префикса и символа расширенным временем символа. В приемнике перед декодированием сигнала циклический префикс отбрасывается. Это обеспечивает устойчивость к межсимвольным помехам, поскольку любая задержанная часть от предыдущего расширенного временного интервала символа должна попадать в длительность циклического префикса для текущего расширенного временного интервала символа. Более того, циклический префикс также обеспечивает защиту от межсимвольной интерференции. Чтобы убедиться в этом, заметим, что принятый сигнал (наложение сигналов по различным путям) в течение текущего временного интервала символа (т. е. длительности после удаления циклического префикса из текущего расширенного временного интервала символа) состоит из суперпозиции порций канального выхода переданного сигнала только в течение текущего временного интервала символа. Можно показать, что из-за циклического префикса выбранная версия принятого сигнала за время длительности текущего символа представляет собой циклическую свертку выбранной версии передаваемого сигнала только в течение данного временного интервала символа и функции импульсного отклика дискретного канала.

188

 Глава9.LTE

Схема множественного доступа OFDMA выделяет различные поднесущие и временные интервалы для символов данных (т. е. групп битов данных) от разных пользователей. Далее в этом разделе мы обсудим гранулярность такого распределения, используемого в LTE. LTE использует OFDMA для нисходящей передачи, а вариант OFDMA под названием «FDMA с одной несущей» (SC-FDMA) – для передачи в восходящем канале. Поскольку OFDMA модулирует каждую поднесущую символами данных по отдельности, то в зависимости от передаваемых символов данных используемая мощность передачи может значительно колебаться. Это приводит к высокому соотношению пиковой и средней мощности (Peak-to-Average Power Ratio, PAPR). Поскольку высокий PAPR приводит к снижению эффективности усилителя мощности, это особенно нежелательно для пользовательских устройств, обычно имеющих ограниченную мощность. SC-FDMA решает эту проблему, вставляя этап предварительной обработки, выполняющий дискретное преобразование Фурье (DFT) перед модуляцией поднесущей. DFT создает линейные комбинации символов входных данных и, следовательно, уменьшает изменение их величин. Выход преобразователя DFT впоследствии используется для модуляции поднесущих. Наличие DFT в передатчике требует этапа обратного преобразования Фурье (IDFT) в приемнике для извлечения символов передаваемых данных. Кроме того, поскольку DFT в передатчике распространяет информацию каждого символа данных по нескольким поднесущим, в приемнике требуется производить выравнивание каналов для восстановления после любого частотно-селективного замирания. LTE выполняет эту функцию в цифровом виде в приемнике, умножая принятый от каждой поднесущей сигнал на соответствующее комплексное число до операции IDFT (или вместе с ней). Несмотря на преимущества более низкого PAPR, SC-FDMA меньше подходит для нисходящего канала, поскольку это сделало бы пользовательские устройства более сложными, потребовав наличия функции выравнивания каналов. Название SC-FDMA используется, чтобы подчеркнуть тот факт, что из-за наличия DFT эта схема имеет некоторые ключевые характеристики традиционной схемы модуляции с одной несущей. В литературе SC-FDMA также упоминается как DFT-распределенная модуляция OFDMA. На рис. 9.4 показана базовая структура кадра, используемая как для передачи по нисходящему, так и по восходящему каналам. Один радиокадр длительностью 10 мс разделен на 10 подкадров, каждый продолжительностью 1 мс. eNB планирует трафик восходящей и нисходящей связи на основе подкадров, т. е. каждую 1 мс. Вот почему подкадр называется интервалом времени передачи (Transmission Time Interval, TTI). Подкадр далее разделяется на два слота по 0,5 мс. Каждый слот соответствует времени передачи 7 модулированных символов. Cлот и

9.3.КлючевыеаспектыLTE  189 12 последовательных поднесущих образуют наименьшую единицу, выделяемую пользователю, – так называемый ресурсный блок. Радиокадр (10 мс) Слот #0

Слот #1

Слот #2 •

• •

Слот #18 Слот #19

Слот Подкадр Рис. 9.4. Структура кадра

На рис. 9.5 показан ресурсный блок нисходящего канала (downlink, DL) в двумерной сетке, где символьное время показано в горизонтальном направлении, а поднесущие – в вертикальном. Обратите внимание, что ресурсный блок состоит из 7 символов (или одного слота) на 12 поднесущих. Ресурсные блоки восходящего канала (uplink, UL) определяются аналогичным образом. DL слот

Поднесущие

Ресурсный блок

Ресурсный элемент

Символы OFDM Рис. 9.5. Сетка ресурсов

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

190

 Глава9.LTE

9.3.3. Поддержка требований QоS Трафик разных приложений может иметь очень разные требования к сквозному качеству обслуживания. Например, голосовая или видеосвязь не может происходить с большой задержкой, но может допускать случайную потерю пакетов, в то время как передача файлов данных обычно может переносить более высокую задержку, но критична к потере пакетов. Следовательно, крайне желательно, чтобы сотовая сеть была способна обеспечить разумные гарантии качества связи для трафика, проходящего через нее. Ниже мы объясняем сложную структуру QoS, которую LTE включила в свои спецификации для достижение этой цели. Когда пользователь подключается к сети LTE, канал по умолчанию (называемый также носителем по умолчанию) автоматически настраивается в системе LTE согласно пользовательской подписке в соответствии с характеристиками QoS для передачи данных различных пользовательских потоков (например, для одновременной загрузки различных онлайн-объектов). Для данных, требующих специальной обработки, устанавливаются дополнительные каналы (так называемые выделенные носители). Каждый носитель определяется либо как поддерживающий GBR (Guaranteed Bit Rate, гарантированная скорость передачи данных), либо как не поддерживающий GBR. Поток трафика сопоставляется одному из носителей на основе пяти записей, используемых его пакетами (IP-адресов источника и назначения, номеров соответствующих портов транспортного уровня и протокола, используемого транспортным уровнем). LTE обеспечивает поддержку QoS на основе заданного класса качества, связывая скалярный идентификатор класса качества (Quality Class Identifier, QCI) с каждым носителем. QCI определяет обработку пакетов в каждом промежуточном узле (например, вес планирования, пороги управления очередью и т. д.). Обратите внимание, что LTE пытается обеспечить согласованную обработку QoS как по беспроводной ветви, так и по остальной части системы LTE. Каждому значению QCI соответствуют стандартизированные характеристики QoS (например, поддерживает ли канал GBR или нет; допустимые уровни задержки и частоты потери пакетов и т. д.). В то время как QCI определяет обработку на уровне пользователя, приоритет распределения и удержания (ARP) определяет обработку на уровне управления с целью либо ввода носителя, либо его удержания в связи с неким сетевым событием (например, потерей линии связи), требующим сброса некоторых установленных каналов.

9.3.4. Планировщик Планировщик на БС LTE (eNB) определяет пользовательские устройства, которые получают возможность принимать и передавать сигнал в

9.3.КлючевыеаспектыLTE  191 соте, поддерживаемой данным узлом eNB, и обеспечивает возможность дифференциации между различными поставщиками услуг и производителями оборудования. На логическом уровне существуют отдельные планировщики нисходящего и восходящего каналов. Планировщик восходящего канала объявляет о распределении трафика восходящего канала на основе требований к его производительности и ожидающих запросов, а планировщик нисходящего канала составляет расписание нисходящего трафика на основе требований к производительности и данных, доступных для передачи на eNB. Эти планировщики, как правило, очень сложны, поскольку они пытаются сделать оптимальную группировку сетки ресурсов в заданном направлении, выполняя при этом требования к производительности базовых соединений и в то же время удовлетворяя многим ограничениям планирования (например, требованиям по смежности в частоте или времени, распределению по частоте или времени для определенного трафика, требованиям к своевременности многих административных и управляющих потоков трафика, сроку жизни повторно передаваемого трафика и т. д.). Для различных классов обслуживания планировщики обычно используют тот или иной вариант приоритизации или взвешенной справедливой очереди (Weighted Fair Queueing, WFQ). Для составления расписания внутри определенного класса был предложен планировщик, называемый пропорционально справедливым планировщиком (Proportionally Fair Scheduler, PFS). Его часто используют в качестве эталонного при сравнении с другими собственными планировщиками или новыми схемами из академических исследований. Мы рассмотрим основную идею алгоритма, используемого PFS, на примере сценария планирования нисходящего канала. Предположим, что n устройств, обслуживаемых одним узлом eNB, загружают большие объемы данных и данные для каждого устройства всегда доступны на eNB для планирования нисходящего канала. Алгоритм, используемый PFS, является частным случаем алгоритма, когда устройству i присваивается уровень приоритета, который пропорционален Tai (t) = Rib (t), где Ti(t) и Ri(t) – мгновенная пропускная способность, достижимая устройством i с учетом текущего состояния радиосвязи, и текущая оценка средней пропускной способности, достигнутой устройством i; соответственно, a и b – параметры, характеризующие планировщик. Средняя пропускная способность для каждого устройства оценивается с помощью алгоритма экспоненциального сглаживания, основанного на предыдущей оценке и недавно полученной мгновенной пропускной способности. Устройство с наивысшим приоритетом назначается первым при каждом сеансе планирования. Если a = 0 и b = 1, планировщик пытается выровнять среднюю пропускную способность между устройствами независимо от текущих условий радиосвязи. Такая схема может рассматриваться как схема циклическо-

192

 Глава 9. LTE

го планирования. Следовательно, если устройство с частичным доступом имеет более высокое значение 1/Ri(t), обслуживание первым увеличит его Ri(t) и понизит приоритет этого устройства. При a = 1 и b = 0 планировщик пытается максимизировать мгновенную пропускную способность системы, не принимая во внимание любые соображения справедливости в отношении средней пропускной способности, достигаемой любым устройством. При a =1 и b = 1 планировщик пытается найти баланс между этими двумя крайностями. Такой планировщик и называется PFS. Алгоритм, основанный на расстановке приоритетов в соответствии со значением Ti(t) / Ri(t) для каждого устройства, оказывается решением проб­ лемы, которое максимизирует сумму логарифмов полезностей для � ), устройств. Здесь полезность для устройства i определяется как log(R i � – средняя пропускная способность устройства в установившемся где R i режиме. Как было сказано в разделе 8.4.1, название PFS обусловлено использованием этой конкретной целевой функции. Мы лишь укажем (не приводя доказательство), что решение этой задачи с применением прямо­двойственного алгоритма, рассмотренного в разделе 8.4.2, показывает, что оптимальное решение достигается, если значение Ti(t) / Ri(t) для каждого устройства сходится к одинаковому значению. Как и в случае с a = 0 и b = 1, если конкретное устройство имеет большее значение Ti(t) / Ri(t), то обслуживание его первым увеличит Ri(t) и, следовательно, это поможет выровнять Ti(t) / Ri(t) между устройствами.

9.4. LTE-Advanced Международный союз электросвязи (МСЭ) в 2008 году определил требования к технологии радиодоступа четвертого поколения (4G). Согласно этим требованиям пиковая скорость нисходящей передачи данных для мобильных и стационарных устройств должна достигать 100 Мбит/с и 1 Гбит/с соответственно. Базовая версия LTE, о которой говорилось выше, не соответствовала этим требованиям, поэтому ее обычно называют 3,9G или pre­4­технологией. В этом разделе мы кратко обсудим основные усовершенствования, включенные в более позднюю версию LTE, называемую LTE­Advanced. Как показано на рис. 9.2, эти функции внедрялись постепенно, начиная с релиза 10­го стандарта 3GPP. LTE­Advanced была утверждена МСЭ в качестве технологии 4G в 2012 году. В качестве исторической справки отметим, что технологии радиодоступа 1G, 2G и 3G обычно ассоциируются с аналоговым доступом на основе FDM, цифровым доступом на основе TDM и доступом, определенным архитектурой UMTS (где для передачи данных использовалась пакетная коммутацию, а для голосовой связи – коммутация пакетов.

9.4.LTE-Advanced  193 Мы обсудим перспективную технологию радиодоступа 5G в следующем разделе.

9.4.1. Агрегация несущих Агрегация несущих позволяет оператору предлагать более широкий канал своим клиентам, если он имеет лицензию на более чем один канал в данном месте. Каждая несущая, используемая для агрегации, называется компонентной и может иметь полосу пропускания 1,4; 3; 5; 10 или 20 МГц. Для обеспечения более широкого канала до 100 МГц могут быть объединены несколько (до пяти) компонентных несущих; при этом управление агрегацией несущих для восходящего и нисходящего каналов производится независимо. Компонентные несущие не обязательно должны быть смежными, они даже могут находиться в разных диапазонах. Из-за разного затухания сигнала они могут иметь различное покрытие, обычно компонентная несущая с большим покрытием назначается в качестве основной, а дополнительные вторичные несущие добавляются или удаляются в зависимости от их доступности в данном месте. Основная компонентная несущая отвечает за поддержание радиосвязи с пользовательским устройством.

9.4.2. Поддержка расширенного MIMO В LTE поддерживается 2x2 MIMO (т. е. 2 передающие и 2 приемные антенны) в обоих направлениях, в то время как LTE-Advanced поддерживает до 8x8 MIMO для нисходящей связи и до 4x4 MIMO для восходящей. При изменении условий радиосреды eNB управляет ключевыми атрибутами связи, такими как количество используемых передающих и приемных антенн, режим MIMO (разнесение передатчиков и пространственное мультиплексирование), количество независимых потоков данных, используемых пространственным мультиплексированием, и схема предварительной обработки, которая будет использоваться. Различные комбинации этих характеристик стандартизированы как различные режимы передачи (Transmission Modes, TM). LTE-Advanced добавила новые ТМ к набору режимов, уже поддерживаемых LTE.

9.4.3. Узлы ретрансляции (RN) Узел ретрансляции (relay node, RN) – это маломощный eNB, подключенный к обычному eNB с помощью радиоинтерфейса. Обычный eNB в этой схеме называется донорским eNB (DeNB). Донорский DeNB традиционно подключается к EPC с помощью оптического волокна, в то время как узлы RN используют только радиоинтерфейсы как на стороне пользователя, так и на стороне сети. RN помогают расширить зону покрытия LTE, а также повысить производительность вблизи границ

194

 Глава9.LTE

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

9.4.4. Координированная многоточечная работа (CoMP) Функция CoMP, включенная в новые версии LTE, также предназначена для улучшения производительности на границах соты. Она позволяет пользовательскому устройству одновременно подключаться к более чем одной паре точек передачи и приема, где каждая такая пара представляет собой набор рядом расположенных передающих и принимающих антенн на eNB для нисходящей и восходящей связи соответственно. Используемые CoMP для такого соединения пары точек передачи и приема могут находиться на разных eNB. Для нисходящей связи CoMP данные, которые должны быть переданы, могут быть доступны либо во всех, либо только в одной из участвующих точек передачи. В первом случае может использоваться метод Joint Transmission (совместная передача) или Dynamic Point Selection (динамический выбор точки). При совместной передаче пользовательское устройство получает данные от всех участвующих точек передачи одновременно в каждом подкадре. В свою очередь, при динамическом выборе точки передача данных в конкретном подкадре производится с наилучшей по условиям передачи точки. С другой стороны, если передаваемые данные доступны только в одной из участвующих точек передачи, то для определения точки передачи, которая будет использоваться для данного сегмента данных, осуществляется координированное планирование. Доступность данных нисходящей линии связи только в одной или во всех участвующих точках передачи оказывает значительное влияние на объем трафика EPC. Для восходящего канала CoMP сигнал от пользовательского устройства принимается в нескольких точках приема, а затем объединяется для обработки. Пользовательскому устройству не нужно знать о наличии восходящей CoMP. Совместный прием также возможен в восходящем канале CoMP, где копии сигнала от пользовательского устройства, полученные со всех участвующих в приеме точках по каждому подкадру, используются для совместной обработки. Очевидно, что для правильной работы как восходящей, так и нисходящей линии связи требуется тесная координация между набором участвующих точек передачи/приема для соответствующего планирования и/или обработки данных.

9.5.5G  195

9.5. 5G Международный союз электросвязи (МСЭ) недавно определил стандарт следующего поколения технологии радиодоступа «Международная мобильная электросвязь на 2020 год» (IMT-2020). Эту технологию обычно называют 5G. 3GPP также приступила к последовательной разработке спецификаций технологии радиодоступа следующего поколения1. Базовая концепция IMT-2020 включает поддержку как антропоцентрической (ориентированной на человека), так и машиноцентрической (т.  е. межмашинной, M2M) связи с низкой задержкой и высокой надежностью, с высокой плотностью пользователей, высокой мобильностью, с улучшенными мультимедийными услугами, с широким спектром вариантов энергопотребления, высокой производительностью и покрытием для сетей интернета вещей (internet of things, IoT), а также для высокоточного позиционирования. В качестве основных возможностей IMT-2020 определяет следующие восемь параметров и их первоначальные целевые значения (подлежат дальнейшему уточнению). К ним относятся пиковая скорость передачи данных (в Гбит/с), скорость передачи данных пользователя, повсеместно доступная в целевой зоне покрытия (в Мбит/с), вклад радиосети в задержку пакетов (в мс), максимальная скорость при поддержке QoS и бесшовных хендоверов (в км/ч), плотность соединений (на км2), энергоэффективность сети и устройств при приеме и передаче (бит/Дж), эффективность использования спектра (в бит/с/Гц) и совокупная пропускная способность на единицу площади в пределах целевого покрытия (в Мбит/с/м2). Начальные целевые значения в соответствии с этим перечнем таковы: 20 Гбит/с, 10 Мбит/с, 1 мс, 500 км/ч, 106 устройств/км2, 100-кратное улучшение по сравнению с 4G, трехкратное улучшение по сравнению с 4G, 10 Мбит/с/м2. IMT-2020 изучает возможность использования более высокочастотного спектра в диапазоне 6–100 ГГц для некоторых сценариев развертывания, пока находящихся на рассмотрении. IMT-2020 также включает в себя явную поддержку передовых технологий таких как программируемая архитектура сети (Software Defined Networking, SDN) и виртуализация сетевых функций (Network Function Virtualization, NFV) для снижения затрат на развертывание и эксплуатацию сети радиодоступа. Мы обсудим темы SDN и NFV в главе 12. Основываясь на тех же соображениях, что и для SDN и NFV, IMT-2020 описывает также архитектуру облачной сети Cloud RAN (C-RAN). Сеть Cloud RAN создает централизованный пул ресурсов, в котором производится обработка более высокого уровня и к которому по оптоволоконному кабелю подключаются блоки радиосвязи и антенны, расположенные так, как это необходимо для предполагаемого покрытия. 1

На момент подготовки перевода этой книги был выпущен релиз 17 3GPP. – Прим. ред.

 Глава9.LTE

196

9.6. Резюме • Сотовые сети основаны на беспроводном доступе к лицензированной части спектра. Они предназначены для обеспечения надежной и высокоскоростной связи по ненадежному беспроводному каналу при ограниченных частотных и энергетических ресурсах. • LTE – это технология широкополосного беспроводного доступа. Она является развитием таких технологий, как UMTS, HSDPA и HSUPA, определенных 3GPP, и описана в спецификации релиза 8. LTE имеет более простую и плоскую архитектуру по сравнению с предыдущими технологиями 3GPP. • LTE опирается на технологические достижения, такие как IP-коммуникации, H-ARQ, MIMO и OFDMA. • LTE использует OFDMA для передачи нисходящего потока и SCFDMA – для восходящего. Как OFDMA, так и SC-FDMA позволяют разделять временные и частотные ресурсы между различными соединениями. • Планировщик на более совершенном узле Node B является ключевым сетевым компонентом, который определяет производительность отдельных соединений, а также общую эффективность использования сетевых ресурсов. PFS – это эталонный планировщик, который пытается достичь компромисса между максимизацией общей пропускной способности системы и строгим справедливым распределением. • LTE обеспечивает широкую поддержку QoS во всей системе LTE, используя концепцию поднесущей, которая может быть как GBR, так и не GBR, связывая QCI с каждой поднесущей. • Технологические достижения, включенные в LTE-Advanced, включают агрегацию операторов связи, расширенную поддержку MIMO, узлов ретрансляции RN и COMP. • МСЭ опубликовала стандарт IMT-2020, в котором предложила свое видение технологии радиодоступа 5G, которая включает в себя целевые сценарии использования и ожидаемые основные возможности. 3GPP изучает предложения о включении в свои спецификации тех из них, которые соответствуют концепции 5G.

9.7. Задачи 9.1.

Рассмотрим систему LTE FDD 10 МГц со следующими параметрами для нисходящего канала DL: 600 поднесущих для передачи данных и в среднем 25 % емкости используется для сигнализации

9.7.Задачи  197 и управления соединениями. Предположим, что все DL-соединения используют квадратурную амплитудную модуляцию QAM 64 с коэффициентом кодирования 1/2 (т. е. 6 × 1/2 = 3 бита данных/ поднесущая/символ) и работают с одним входом и одним выходом (Single-Input Single-Output, SISO). a) Найдите максимальную скорость передачи по DL, которую может поддерживать сеть. b) Предполагая, что голосовой вызов использует 18 Кбит/с в каждом направлении после учета всех издержек, найдите максимальное количество одновременных голосовых соединений, которые может поддерживать сеть в направлении DL. c) Предположим, что потоковый видеоканал после учета всех издержек использует 400 Кбит/с только в направлении DL. Оцените количество устойчивых голосовых вызовов и потоков видеосвязи, которые могут поддерживаться одновременно в направлении DL. 9.2.

Рассмотрим систему LTE FDD 10 МГц со следующими параметрами для канала DL: 600 поднесущих для передачи данных и 25  % емкости каждого слота DL используется для сигнализации и управления соединениями. Предположим, что все DL-соединения используют модуляцию QAM 16 с коэффициентом кодирования 3/4 (т. е. 4 × 3/4 = 3 бита данных/поднесущая/символ) и работают с одним входом и одним выходом (SISO). Предположим, что есть два DL-соединения со скоростью 6 Мбит/с и два соединения DL со скоростью 3 Мбит/с. Каждое соединение предлагает пакет данных постоянного размера каждые 8 мс, причем размер может быть разным для разных соединений. Найдите схему планирования (т. е. схему распределения данных в сетке ресурсов DL) так, чтобы вся серия от данного соединения помещалась в один и тот же слот DL.

9.3.

При проектировании сотовых сетей с высокой скоростью передачи данных важную роль играет учет доплеровского сдвига. Он может вызвать значительные многолучевые помехи для мобильных пользователей. Напомним, что доплеровский сдвиг (изменение наблюдаемой частоты) может быть оценен по формуле (∆v / c) f0, где ∆v – разница в скоростях передатчика и приемника, c – скорость света, c = 3 × 105 км/с, а f0 – частота излучения. a) Для канала с несущей частотой 2,5 ГГц и максимальной скоростью сближения между передатчиком и приемником 100 км/ч оцените максимальный доплеровский сдвиг.

198

 Глава9.LTE

b) Можно показать, что время когерентности канала (период времени, в течение которого канал можно считать неизменным) приблизительно равно Tc ≈ 1/∆m f, где ∆m f – абсолютное значение максимального доплеровского сдвига. Для сценария из части (a) найдите время когерентности канала.

9.8. Ссылки Стандарты LTE описаны в [1, 3, 4, 5]. Дальнейшее обсуждение PFS см. в [50, 58, 91, 96, 107]. Управление QoS в LTE обсуждается в [31]. SC-FDMA объясняется в [75]. Основы новых функций LTE-Advanced описаны в [105]. Текущая разработка 5G рассматривается в [87, 90]. Требования к «Новому радио», рассматриваемые 3GPP, можно найти в [2]. Подробное обсуждение беспроводной связи, включая LTE, можно найти в [74]. [101] является хорошим справочником по основам беспроводной связи.

Powered by TCPDF (www.tcpdf.org)

Глава

10 QOS

Интернет предоставляет услуги по принципу best­effort (наилучший сервис из возможных при текущих обстоятельствах). В принципе, все пакеты обрабатываются одинаково. VoIP-пакеты (голосовые сообщения) иногда оказываются в очереди за пакетами электронной почты или передачей файлов. Пакеты видеопотока могут быть задержаны, чтобы освободить место для загрузки DVD. Исходя из многолетнего опыта, сетевые инженеры пришли к выводу, что сеть может улучшить качество работы многих приложений, если обрабатывать пакеты по-другому. Предоставление приоритета срочным пакетам почти не повлияет на приложения, не чувствительные к задержкам. Некоторые сети реализуют эти идеи. В этой главе обсуждается общая тема качества обслуживания.

10.1. Обзор Рассмотрим набор потоков, которые совместно используют каналы связи в интернете. Эти потоки соответствуют приложениям, имеющим очень разные требования к минимальной пропускной способности Rmin и максимальной задержке Dmax. Как видно из таблицы 10.1, где приведены приблизительные значения требований некоторых приложений, диапазон этих требований весьма широк. Эти огромные различия предполагают, что дифференцированная обработка пакетов улучшит работу пользователей различных приложений. Таблица 10.1. Требования различных приложений Приложение

Rmin (Кбит/с)

Dmax (с)

Видеопоток

60

10

VoIP

10

0,2

Загрузка

30

200

Веб-браузинг

50

2

Видеоконференция

80

0,2

200

 Глава10.QOS

Очень важно понять, как и где пакеты должны рассматриваться по-разному. В разделе 10.2 мы объясняем методы формирования трафика. В разделе 10.3 рассмотрим механизмы планирования, которые могут реализовать дифференцированную обработку. Сквозной принцип передачи (end-to-end) подразумевает возможность дифференцированной обработки в конечных устройствах, не изменяя уровни 1–3. Мы исследуем эту возможность в разделах 10.5 и 10.6. Наконец, в разделе 10.7 поговорим об экономике дифференцированных сервисов, сосредоточившись на вопросе сетевой нейтральности.

10.2. Формирование трафика Маршрутизатор перегружается, если пакеты приходят быстрее, чем он может их передать. Такая ситуация складывается, когда средняя скорость поступления пакетов превышает скорость выходного канала. Она также возникает, когда пакеты приходят большими сериями. Простой механизм leaky bucket («дырявое ведро») служит для ограничения средней скорости потока и размера серий.

10.2.1. Механизм leaky bucket На рис. 10.1 показан механизм leaky bucket, формирующий поток пакетов. Пакеты поступают в пакетный буфер, который хранит их до тех пор, пока им не будет разрешено выйти. Маркеры доступа (токены) поступают в счетчик маркеров со скоростью a маркеров в секунду. Счетчик подсчитывает маркеры до тех пор, пока их количество не будет равным B. Чтобы передать пакет с P байтами, в счетчике должно быть не менее P маркеров. Затем система вычитает P из счетчика и отправляет пакет. a маркеров в секунду

Ожидание, пока не будет достаточно маркеров

Счетчик маркеров

Пакеты

до B маркеров

At байт в [0,t]

Буфер пакетов

1 маркер на байт

Рис. 10.1. Формирование трафика с ограничением его скорости и величины всплеска с помощью механизма leaky bucket

Пусть At обозначает количество байтов, которые система передает в интервале времени [0, t] для t ≥ 0. Из описания схемы следует, что

10.2.Формированиетрафика  201 As+t – As  ≤ B + at для s, t ≥ 0. Действительно максимальное количество маркеров, доступных для передачи пакетов в интервале времени [s, s + t], равно B + at. Таким образом, долгосрочная средняя скорость At ограничена параметром a, а размер серии ограничен B. Обратите внимание, что для работы этой схемы необходимо, чтобы размер каждого пакета составлял не более B.

10.2.2. Границы задержки Если скорость и размер серии трафика ограничены, можно ожидать, что задержка прохождения через буфер также ограничена. Эта ситуация показана на рис. 10.2, где в буфер для передачи поступает N потоков. Каждый поток n (n = 1, …, N) формируется буфером с параметрами (an, Bn). Буфер может вместить до B байт, и он передает пакеты со скоростью C байт в секунду. Мы предполагаем, что размер каждого пакета потока n ограничен Bn и буфер передает только полные пакеты. Предположим также, что в момент времени 0 в системе нет пакетов. B

a1, B1 • • • •

Xt

C

aN, BN Рис. 10.2. Буфер с формированным входным трафиком

Будем считать, что если какой-то пакет полностью поступил в буфер в момент времени t, то система обслуживает этот пакет прежде других пакетов, которые в это время еще не полностью поступили в буфер. Мы также предполагаем, что каждый пакет имеет не более P байт и поступает в буфер последовательно, без перерывов. То есть на любом входном канале байты разных пакетов не чередуются. Пусть Xt обозначает количество байтов в буфере в момент времени t. Тогда можно сделать следующий вывод в форме теоремы. Теорема 10.1. Предположим, что a1 + … + aN ≤ C. Тогда: a) имеется: Xt ≤ B1 + … + BN + NP; t ≥ 0; b) задержка каждого пакета ограничена значением (B1 + … + BN + NP + P)/C. Доказательство. a) Предположим, что Xt > B1 + … + BN C + NP, и пусть u – момент времени до t, когда Xu было равно NP в последний раз. В интервале [u, t] система всегда содержит хотя бы один полный

202

 Глава10.QOS

пакет и постоянно передает байты со скоростью C. Действительно каждый пакет содержит не более P байт, поэтому невозможно иметь только фрагменты пакетов, которые в сумме составляют NP байт. В соответствии с механизмом leaky buckets не более Bn + an(t – u) байт трафика поступают в буфер в интервале [u, t] от входа n. Таким образом, N

Xt ≤ Xu + � �Bn + an(t – u)� – C(t – u) ≤ B1 + … + BN + NP, n+1

имеем противоречие.

b) Рассмотрим пакет, который заканчивает свое поступление в буфер в момент времени t. Максимальная задержка для этого пакета возникла бы, если бы все байты Xt, уже находящиеся в буфере к моменту времени t, были обслужены раньше этого пакета. В этом случае задержка пакета перед передачей составит Xt / C. Пакет будет полностью передан самое позднее через (Xt + P) / C. Комбинация этого факта с ограничением на Xt приводит к формулировке теоремы 10.1.

10.3. Планирование Взвешенная справедливая очередь (Weighted Fair Queuing, WFQ) – это механизм планирования, который управляет совместным использованием одного канала связи пакетами различных классов. Мы покажем, что этот механизм обеспечивает гарантированные задержки для регулируемых потоков. Как определение WFQ, так и его аналитическое представление основаны на идеализированной версии схемы, называемой обобщенным совместным использованием процессора ( Generalized Processor Sharing, GPS). Начнем с объяснения GPS.

10.3.1. GPS На рис. 10.3 показана система GPS. Пакеты подразделяются на K классов и ожидают в соответствующих очередях типа first­in­first­out («первым пришел, первым ушел»), пока маршрутизатор не сможет их передать. Каждый класс k имеет свой вес wk. Планировщик обслуживает пакеты, находящиеся в начале очереди, со скоростью, пропорциональной весу их класса. Таким образом, мгновенная скорость обслуживания класса k равна wkC / W, где C – скорость передачи данных маршрутизатором, а W – сумма весов классов, которые задерживаются в момент времени t. Обратите внимание, что эта модель является математической абстракцией, которая не может быть реализована на практике, поскольку планировщик смешивает биты из разных пакетов и не соблюдает границы пакетов.

10.3.Планирование  203 A1,(t)

Класс 1

A2,(t) AK,(t)

• • • •

Класс K

A2,(t)

D1,(t) D2,(t) w1 w2 w DK,(t) K

P1

P3

D2,(t)

P2

A1,(t)

1 2 3 4

P4 D1,(t)

6

8 9

t

Рис. 10.3. Обобщенное совместное использование процессора

В правой части рисунка изображена временная диаграмма, соответствующая сценарию, когда только два класса (1 и 2) имеют пакеты и w1 = w2. Пакет P1 класса 2 поступает в момент времени t = 1 и обслуживается со скоростью 1 до момента времени t = 2, когда в очередь поступает пакет P2 класса 1. В течение интервала времени (2, 4) планировщик обслуживает оставшиеся биты P1 и P2 со скоростью, равной 1/2 скорости каждого. Из этого определения GPS следует, что планировщик обслуживает класс k со скоростью, которая всегда равна по крайней мере wkC / (∑j wj). Эта минимальная скорость имеет место, когда все классы запаздывают. Теорема 10.2. Предположим, что трафик класса k регулируется с параметрами (ak, Bk ) такими, что pk := wkC / (∑j wj ) ≥ ak. Тогда очередь класса k никогда не превышает Bk и его задержка в очереди никогда не превышает Bk /pk. Доказательство. Доказательство аналогично доказательству теоремы 10.1. Предположим, что отставание Xt (в байтах) класса k превышает Bk, и пусть u – момент времени до t, когда Xu было равно 0 в последний раз. В течение промежутка времени [u, t] планировщик обслуживает не менее pk(t – u) байт класса k, и не более ak(t – u) + Bk прибывает. Следовательно, Xt ≤ Xu + ak(t – u) + Bk – pk(t – u) ≤ Bk, поскольку ak ≤ pk. Это противоречие показывает, что Xt никогда не может превысить Bk. Для определения задержки рассмотрим бит класса k, который поступает в буфер в момент времени t, когда запаздывание класса k составляет Xt. Поскольку буфер класса k обслуживается по крайней мере со скоростью pk, время до выхода этого бита из буфера не может превышать t + Xt / pk. Следовательно, задержка не может превышать Bk/pk.

204

 Глава10.QOS

10.3.2. WFQ Как мы уже говорили, система GPS не может быть реализована. Однако взвешенная справедливая очередь близка к GPS. WFQ определяется следующим образом. Пакеты подразделяются на классы и ставятся в очередь, как в GPS. Планировщик передает по одному пакету за раз со скоростью линии. Каждый раз, завершая передачу пакета, он начинает передавать пакет, которым GPS завершил бы передачу первым среди оставшихся пакетов. Например, в случае, показанном на рис. 10.3, планировщик WFQ передает пакет P1 в течение интервала [1; 3,5], затем начинает передачу пакета P2, единственного другого пакета в системе. Передача P2 завершается в момент времени 4,5. В это время WFQ начинает передачу пакета P3 и т. д. На рисунке показано, что время завершения пакетов P1, …, P4 в системе GPS составляет G1 = 4,5; G2 = 4; G3 = 8; G4 = 9 соответственно. Вы можете проверить, что время завершения этих четырех пакетов при WFQ – F1 = 3,5; F2 = 4,5; F3 = 7 и F4 = 9. Таким образом, в этом примере завершение пакета P2 задерживается на 0,5 при WFQ. Довольно сложно предсказать, на сколько задерживается время завершения. Однако у нас есть следующая простая теорема. Теорема 10.3. Пусть Fk и Gk обозначают время завершения пакета Pk при WFQ и GPS, соответственно, для k ≥1. Предположим, что максимальное время передачи всех пакетов равно T. Тогда Fk ≤ Gk + T, k ≥1.

(10.1)

Доказательство. Заметим, что GPS и WFQ экономят работу: они обслуживают биты с одинаковой скоростью всегда, когда у них есть биты для обслуживания. Следовательно, системы GPS и WFQ всегда содержат одно и то же общее количество битов. Из этого следует, что у них одинаковые периоды занятости (промежутки времени, когда они не пусты). И следовательно, достаточно доказать теорему для одного периода занятости. Пусть Si – время прибытия пакета Pi. Предположим, что F1 < F2 < …< FK соответствуют времени передачи пакетов в течение одного заданного периода занятости, который начинается, скажем, в момент 0. Выберем любое k ∊ {1, 2, …, К}. Если Gn ≤ Gk для n = 1, 2, …, k – 1, то в течение интервала (0, Gk), планировщик GPS может обслуживать пакеты P1 , …, Pk, так что Gk больше, чем сумма времен передачи этих пакетов в соответствии с WFQ, которая равна Fk. Следовательно, Gk ≥ Fk, так что (10.1) выполняется. 

10.4.РегулируемыепотокииWFQ  205 Теперь предположим, что Gn > Gk для некоторого 1 ≤ n ≤ (k – 1), и пусть m – наибольшее значение n, так что Gn ≤ Gk < Gm для m < n < k. Это означает, что пакеты 𝒫 := {Pm+1, Pm+2, …, Pk–1} должны быть получены после начала обслуживания Sm = Fm – Tm пакета m, где Tm обозначает время передачи этого пакета. Чтобы убедиться в этом, предположим, что один такой пакет, скажем Pn, прибывает до Sm. Пусть G'm и G'n – время обслуживания по GPS, предполагающее отсутствие прибытий после времени Sm. Поскольку Pm и Pn обслуживаются в одинаковых пропорциях, пока один из них не уйдет, это означает, что G'n < G'm, так что Pm не может быть запланирован раньше Pn в момент времени Sm. Следовательно, все пакеты 𝒫 прибывают через время Sm и обслуживаются перед Pk в соответствии с GPS. И следовательно, в течение интервала [Sm, Gk] GPS обслуживает пакеты {Pm+1, Pm+2, …, Pk–1}. Это означает, что продолжительность этого интервала превышает сумму времени передачи этих пакетов, так что Gk – (Fm – Tm) ≥ Tm+1 + Tm+2 + … + Tk и, следовательно, Gk ≥ Fm + Tm+1 + … + Tk – Tm = Fk – Tm, что подтверждает (10.1).

10.4. Регулируемые потоки и WFQ Рассмотрим поток пакетов, регулируемый с помощью алгоритма корзины элементарных пакетов (token bucket) и поступающий в планировщик WFQ, как показано на рис. 10.4. a маркеров/с

до B маркеров Счетчик маркеров

1 маркер/бит

Буфер пакетов • • • •

D2,(t) w w2 DK,(t) wK

Класс K Рис. 10.4. Регулируемый трафик и планировщик WFQ

C

206

 Глава10.QOS

Мы можем сформулировать теорему 10.4. Теорема 10.4. Предположим, что a < p := wC / W, где W – сумма весов планировщиков. Тогда максимальная задержка в очереди на пакет равна B L —— + ——, p C где L – максимальное количество битов в пакете. Доказательство. Эта теорема является прямым следствием теорем 10.2 и 10.3.

10.5. Сквозное QOS Можно ли реализовать дифференцированную обработку пакетов без модификации маршрутизаторов? Некоторые исследователи предположили, что это осуществимо. Рассмотрим два приложения: голос (телефонный разговор) и данные (загрузка веб-страницы с множеством изображений). Предположим, что эти два приложения используют TCP. При обычной реализации TCP может случиться так, что передача голоса будет идти с недостаточной скоростью. Рассмотрим следующую схему. Во-первых, мы просим маршрутизаторы помечать пакеты, когда их буфер заполняется наполовину, вместо того, чтобы их отбрасывать, когда он переполнен. Более того, получателю поступает уведомление ACK о наличии помеченных пакетов. Эта схема называется явным уведомлением о перегрузке (explicit congestion notification, ECN). В обычной ситуации источник TCP должен разделить размер своего окна на 2, когда он получает сигнал ACK. Предположим вместо этого, что приложение может поддерживать свой обычный размер окна, но пользователь должен платить каждый раз, когда он получает помеченный ACK. Таким образом, если для пользователя не критична скорость соединения, он попросит свой источник TCP замедляться всякий раз, когда он получает помеченный ACK. Однако, если пользователь готов платить за скорость, он не будет просить о замедлении. На практике возникает множество вопросов относительно создания инфраструктуры, в которой ваш интернет-провайдер сможет отправлять вам счет за затребованную вами скорость. Неясно, как вы можете проверить обоснованность таких счетов, будут ли пользователи получать ежемесячные счета, как установить лимиты для этих счетов, какова будет роль конкуренции и т. д.

10.7.Сетевойнейтралитет  207

10.6. Управление сквозным пропусканием Допустим, есть несколько пользователей, которые пытаются использовать интернет для осуществления телефонных звонков (голос по IP (voice over IP, VoIP)). Допустим также, что эти звонки не выполняются, если скорость соединения меньше 40 Кбит/с. Таким образом, если TCP снижает скорость соединений, чтобы избежать переполнения буфера, эта схема может привести к невозможности телефонных звонков. Эту проблему способна решить простая схема управления сквозным пропусканием. Она работает следующим образом. Когда пользователь совершает телефонный звонок, в течение первой секунды конечные устройства отслеживают количество пакетов, которые маршрутизаторы помечают с помощью ECN. Если это число превышает некоторый порог, конечные устройства прерывают вызов. Суть в том, что принятые вызовы, которые не были отброшены, не нарушаются попытками новых вызовов, так как ECN своевременно помечает пакет. Современные приложения VoIP такой механизм не используют. У этой схемы есть недостаток, который заключается в том, что принятые вызовы могут перегружать сеть. Можно изменить схему, чтобы приблизительно каждые две минуты принудительно проводить новую фазу подтверждения вызова.

10.7. Сетевой нейтралитет Сетевой нейтралитет – это спорный вопрос. Строгий нейтралитет предписывает, что сеть должна обрабатывать все пакеты одинаково. То есть маршрутизаторы не могут классифицировать пакеты или применять какой-либо тип дифференцированного обслуживания. Сторонники «открытого интернета» утверждают, что нейтралитет необходим для того, чтобы не допустить контроля крупных корпораций над услугами, которые предоставляет интернет. Они утверждают, что отсутствие нейтралитета ограничит свободу слова и общественную ценность интернета для пользователей, не способных заплатить за более дорогие услуги. Например, можно представить, что некоторые провайдеры, предоставляющие доступ в интернет и телефонные услуги, могут блокировать или тормозить трафик VoIP, чтобы заставить пользователей платить за телефонию. Некоторые крупные провайдеры могут также предоставлять преимущественный доступ к контенту провайдерам нижнего уровня, с которыми у них особые деловые отношения. Противники нейтралитета отмечают, что он запрещает дифференциацию услуг, явно выгодную пользователям. Более того, не имея возможности взимать плату за более качественные услуги, провайдеры имеют меньший стимул для модернизации своей сети. Аналогичным образом

 Глава10.QOS

208

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

10.8. Резюме В этой главе обсуждается качество услуг в сетях. • Приложения имеют совершенно разные требования к задержке и пропускной способности. Поэтому обработка пакетов должна улучшать работу одних приложений, но мало влиять на работу других. • Один из подходов к обеспечению гарантированных задержек потоков пакетов в сети заключается в формировании трафика с помощью механизма leaky buckets и поддержания минимальной скорости обслуживания посредством соответствующего планировщика, такого как WFQ. • WFQ обслуживает пакеты в том порядке, в каком они будут отправляться в соответствии с идеализированным планировщиком обобщенного совместного использования процессора. Мы определяем задержки в системе WFQ. • Обеспечение необходимого качества сквозных соединений будет заключаться во взимании платы за пакеты, помеченные ACK (в явном виде или косвенно путем замедления). • Сквозная схема контроля допуска может гарантировать качество некоторых соединений с жесткими требованиями. • Должны ли быть требования к качеству сети избирательными? Этот вопрос является темой дебатов о сетевой нейтральности и соответствующих законах.

10.9. Задачи 10.1.

В данной задаче идеализированную систему обобщенного совместного использования процессора (GPS) можно рассматривать как эквивалент системы взвешенной справедливой очереди (WFQ).

10.9.Задачи  209 Рассмотрим систему из четырех очередей, обслуживаемых в соответствии с политикой планирования WFQ, как показано на рис. 10.5. Веса, присвоенные четырем очередям (A, B, C, D), равны 4, 1, 3 и 2 соответственно. Они обслуживаются процессором со скоростью 10 Мбит/с. A

4 1 3 2

B C

10

D Рис. 10.5. Рисунок к задаче 10.1

В табл. 10.2 приведен список различных скоростей входного трафика (в Мбит/с) в четырех входных очередях. Найдите и запишите результирующие выходные скорости для каждой из этих четырех очередей. Мы заполнили две первые строки, чтобы вы могли начать! Таблица 10.2. Таблица для задачи 10.1 Входная скорость

Выходная скорость

A

B

C

D

A

B

C

D

1

1

1

1

1

1

1

1

10

10

10

10

4

1

3

2

6

6

2

2

8

0

0

8

1

5

3

5

10.2. Здесь мы проанализируем случай, когда два приложения совместно используют канал связи в 2 Мбит/с, как показано на рис. 10.6. Все пакеты имеют длину 1000 бит. Приложение A – это видеотрафик, который поступает в канал с постоянной скоростью 1 пакет в миллисекунду. Приложение B имеет высокую скорость передачи. Его пакеты поступают как серии пакетов размером 10 Мбит каждые 10 с. Скорость входящего потока для каналов, по которым передается трафик от A и B, составляет 10 Мбит/с каждый (это ограничивает пиковую скорость, с которой пакеты поступают в буфер канала).

210

 Глава10.QOS A

10 Мбит/с 2 Мбит/с Планировщик

B

10 Мбит/с

Рис. 10.6. Рисунок к задаче 10.2

a) Планировщик в канале связи работает по принципу «первым пришел – первым обслужен» (FCFS). Если пакеты каждого из приложений поступают одновременно, пакет приложения A попадает в очередь первым (т. е. он обслуживается первым в соответствии с FCFS). Вычислите следующее для приложения A. i. Максимальную задержку пакета. ii. Предположим, что это единственное соединение, пройденное приложением А. Каким должен быть размер буфера воспроизведения на приемнике? b) Рассчитайте величины, указанные в пунктах (a)i и (a)ii, для случая, когда планировщик работает по циклическому алгоритму.

10.10. Ссылки Обобщенное совместное использования процессора (GPS) было изобретено Клейнроком и Мунцем [57], а система взвешенной справедливой очереди (WFQ ) – Наглом [76]. Взаимосвязь между GPS и WFQ была найдена А. Парех и Галлагером в работе [80], которые также проанализировали задержки трафика, регулируемого с помощью алгоритма leaky buckets. Возможность ограничения задержек за счет регулирования потоков и использования WFQ-планирования предполагает использование протокола, в котором пользователи запрашивают минимальную пропускную способность вдоль всего пути и обещают регулировать свои потоки. Такие протоколы были разработаны под названиями RsVP (для протокола резервирования) и IntServ (для интегрированных услуг). Читателям следует обратиться к RFC за описанием этих протоколов. Управление сквозным доступом (end-to-end) было предложено Гиббенсом и Келли в [36]. «Википедия» является неплохим источником информации о сетевом нейтралитете и дебатах вокруг этого вопроса.

Глава

11 Физический уровень сети

Функционирование сети основано на передаче битов. Эту задачу выполняют коммуникационные линии, образуя физический уровень сети. В этой главе мы опишем наиболее распространенные в сетях каналы связи и кратко объясним, как они работают. Наша цель состоит в том, чтобы обеспечить минимальное понимание характеристик этих каналов. В частности, обсудим следующие темы: • проводные соединения, такие как DSL и Ethernet; • беспроводные соединения, такие как сети Wi-Fi; • оптические линии связи.

11.1. Как передавать биты? Цифровой канал связи преобразует биты в сигналы, распространяющиеся в виде электромагнитных волн, и восстанавливает их на другом конце. (В особых ситуациях используются также акустические волны, например под водой.) Простая цифровая связь состоит из фонарика, который посылает сообщения, закодированные с помощью азбуки Морзе: несколько коротких импульсов света – тире и точки – кодируют каждую букву сообщения. (Аналогичная схема, известная как оптический семафор, использовалась в конце XVIII и начале XIX вв. и была предшественником электрического телеграфа.) Свет распространяется со скоростью c = 3 × 108 м/с, поэтому первый импульс доходит до адресата, который находится на расстоянии L метров от источника, через L/c  секунд. Сообщение, состоящее из B букв, передается примерно за B/R секунд, где R – среднее количество букв, которое вы можете отправить за секунду. Соответственно, сообщение достигает адресата через L/c + B/R секунд. Скорость R зависит от того, насколько быстро вы переключаете фонарик, и не зависит от других параметров системы. Время, которое требуется для манипуляций с выключателем, определяет предел того, насколько большой может быть R. Существует также теоретический предел: если скорость слишком велика, то будет трудно различить тире, точки и разделяющие их промежутки, потому что видимая

212

 Глава11.Физическийуровеньсети

яркость света, передающего точки и тире, будет слишком мала1 и почти не отличаться от фона. То есть, если увеличить R больше определенного предела, система будет подвержена ошибкам. Хотя, добавив некоторую избыточность в сообщение, можно повысить надежность. Это приведет к уменьшению R. Исходя из этих соображений, можно предположить, что существует некоторый предел того, насколько быстро и надежно можно передавать данные с помощью оптической схемы связи. Аналогичные наблюдения применимы к любой цифровой связи: 1) канал характеризуется скоростью передачи R бит в секунду; 2) сигнал распространяется через физическую среду с некоторой скоростью v, которая обычно составляет долю скорости света с. Более того, канал имеет некоторый коэффициент битовых ошибок BER, равный той части битов, которые были искажены по пути к приемнику. Наконец, канал имеет предел скорости: он не может надежно передавать биты быстрее, чем позволяет его пропускная способность по Шеннону C, даже при использовании самой совершенной схемы коррекции ошибок (см. раздел 2.2.2).

11.2. Характеристики каналов связи На рис. 11.1 даны максимально достижимые характеристики трех технологий передачи данных. Это проводная связь (пара проводов или кабель), беспроводная связь и оптические волокна. Характеристики показывают, на какое максимальное расстояние при данной скорости могут быть переданы данные в системах на практике. Как видно из рисунка, оптические волокна способны обеспечить очень большую скорость передачи данных на большие расстояния. В интернете используются оптические каналы со скоростью 10 Гбит/с (1 Гбит/с = 109 бит/с) на расстояния более 80 км. Расстояние 100 км 10 км

Оптическая связь

Беспроводная связь

Проводная связь

1 км 100 м 10 м 1м 0,1

1

10

100

1000

10 000

Скорость (Мбит/с)

Рис. 11.1. Приближенные характеристики каналов связи

Беспроводные каналы связи, такие как Wi-Fi, передают десятки  Мбит/с на расстояние до сотни метров. Сотовый телефон переда1

По причине инерционности человеческого зрения. – Прим. перев.

11.3.Проводныеибеспроводныеканалысвязи  213 ет данные со скоростью около 10 Мбит/с на расстояние до нескольких километров. Проводные каналы быстрого Ethernet передают данные со скоростью 100 Мбит/с на расстояние до 110 м. Линии DSL могут достигать скорости до нескольких Мбит/с на расстояния до 5 км и около 10 Мбит/с на меньшие расстояния. Кабельное соединение может передавать данные со скоростью около 10 Мбит/с на расстояние до 1 км.

11.3. Проводные и беспроводные каналы связи В беспроводном канале связи используется радиопередатчик, моделирующий биты в электрические сигналы, которые затем антенна излучает в виде электромагнитных волн. Приемник оснащен антенной, она улавливает электромагнитные волны. Усилитель повышает напряжение принимаемых сигналов. Специальные схемы из полученных сигналов выделяют наиболее вероятные биты, отправленные передатчиком. Чтобы антенна могла излучать волны, сигнал должен иметь достаточно высокую частоту. Проводная связь по коаксиальным кабелям или парам проводов использует очень похожие принципы. Разница заключается в том, что по проводным каналам можно передавать гораздо более низкие частоты, чем по беспроводным. Например, электросеть достаточно эффективно передает сигналы с частотой 60 Гц. С другой стороны, проводная связь не может передавать очень высокие частоты из-за скин-эффекта в проводниках: при высоких частотах энергия концентрируется на периферии проводника, так что ток проходит только по тонкому поверхностному слою, что увеличивает удельное сопротивление и быстро ослабляет сигнал по мере его распространения. Еще одно важное различие между проводными и беспроводными каналами связи заключается в том, что беспроводные каналы могут мешать друг другу, если они находятся на одной и той же частоте и принимаются одной и той же антенной. Каналы связи из нескрученных пар проводов тоже создают помехи друг другу, если они находятся в непосредственной близости друг от друга, как в пучке телефонных линий. Скрученные пары создают меньше помех, потому что электромагнитные волны вызывают противоположные токи в чередующихся петлях.

11.3.1. Схемы модуляции: BPSK, QPSK, QAM Рассмотрим передатчик, который излучает синусоидальную волну частотой 100 МГц. Когда надо передать 0, он в течение короткого интервала в T с посылает сигнал вида S0(t) = cos(2π f0t), а когда надо передать 1, то в течение T с – сигнал S1(t) = –cos(2π f0t), где f0 = 100 МГц. Приемник получает

214

 Глава11.Физическийуровеньсети

сигнал и должен решить, что более вероятно, – S0(t) или S1(t). Задача была бы довольно простой, если бы принимаемый сигнал не был подвержен шуму. Однако сигнал, который получает приемник, может быть настолько зашумлен, что распознать исходный сигнал будет сложно. Излучение антенной передатчика электромагнитных волн эффективно только в том случае, если длина излучаемой волны примерно в четыре раза больше длины антенны (это справедливо для стандартной стержневой антенны). Напомним, что длина электромагнитной волны частотой f равна скорости света c, деленной на f. Например, длина волны частотой f = 100 МГц равна 3 × 108 (м/с) / 108 с–1 = 3 м. Таким образом, длина антенны должна составлять около 0,75 м. Сотовый телефон с антенной в десять раз меньше должен передавать синусоидальные волны частотой, в десять раз большей или около 1 ГГц. Как приемник может определить, получил ли он S0(t) или S1(t) = –S0(t)? Стандартный метод заключается в умножении принятого сигнала на локально сгенерированную синусоиду L(t) = cos(2π  f0t) в течение интервала времени T с и проверки, является ли среднее значение произведения положительным или отрицательным. Действительно, L(t) * S0(t) ≥ 0, тогда как L(t) * S1(t) ≤ 0. Таким образом, если среднее значение произведения положительно, то даже при наличии шума более вероятно, что приемник получил S0(t), а не S1(t). Необходимо, чтобы локально генерируемая синусоидальная волна cos(2π f0t) имела ту же частоту f0, что и передаваемый сигнал. Более того, эта синусоида должна быть синхронизирована с принимаемым сигналом. Для согласования частот в приемнике используется специальная схема, называемая петлей фазовой автоподстройки. Для согласования фаз приемник использует преамбулу в битовом потоке, который передатчик посылает в начале передачи пакета. Эта преамбула представляет собой известный битовый шаблон, чтобы приемник мог определить, не перепутал ли он нули с единицами. При использовании этого подхода, называемого двоичной фазовой модуляцией (BPSK) и показанного на рис. 11.2, передатчик посылает один бит (0 или 1) каждые Т с. Другой подход, называемый квадратурной фазовой модуляцией (QPSK), позволяет передатчику посылать два бита каждые Т с. QPSK работает следующим образом. В течение T с передатчик посылает сигнал a cos(2π f0t) + b sin(2π f0t). Передатчик выбирает коэффициенты a и b среди значений {(–1, –1), (–1, 1), (1, –1), (1, 1)}, которые соответствуют четырем возможным парам битов {00, 01, 10, 11} (см. рис. 11.2). Таким образом, чтобы передать биты 00, передатчик посылает сигнал –cos(2π f0t) – sin(2π f0t) в течение T с, аналогично и для других пар битов. Для восстановления коэффициента a приемник умножает полученный сигнал на 2 cos(2π f0t) и вычисляет среднее значение. Это значение и есть a. Действительно,

11.3.Проводныеибеспроводныеканалысвязи  215 T

M(T)

:= �2 cos(2π f0t) �a cos(2π f0t) + b sin(2π f0t)�dt 0

T

T

= a �2 cos2(2π f0t)dt + b �2 sin(2π f0t) cos(2π f0t)]dt 0

0

T

T

= a ��1 + cos(4π f0t)�dt + b��sin(4π f0t)�dt. 0

0

Отсюда следует, что средний результат умножения дан в виде 1 ——M(T) ≈ a T для T не слишком малой величины. Процедура демодуляции показана на рис. 11.2. Значение b восстанавливается аналогично. b

b

b

a

a

a

cos (2̟f0t) T

2 T a cos (2̟f0t) + b sin (2̟f0t)

(∙)dt

a

(∙)dt

b

0 T

2 T

0

Рис. 11.2. Вверху: BPSK (слева), QPSK (посередине) и QAM (справа); внизу: демодуляция

Эту идею можно распространить на больший набор коэффициентов (a, b). Квадратурная амплитудная модуляция (QAM), показанная на рис. 11.2, выбирает набор из 2n коэффициентов (a, b), равномерно распределенных в диапазоне [–1, 1]2. Каждый выбор затем передается в течение T с и соответствует передаче n бит. Конечно, при увеличении n расстояние между коэффициентами становится меньше и система становится более восприимчивой к ошибкам. Поэтому приходится искать компромисс между скоростью передачи (n бит каждые T с) и вероятностью ошибки. Основная идея заключается в том, что следует использовать большее значение n, когда отношение мощности принимаемого

216

 Глава11.Физическийуровеньсети

сигнала к мощности шума большое. Например, в системе DSL (digital subscriber loop, цифровой абонентский шлейф) набор частот, которые может передавать телефонная линия, разделен на небольшие интервалы. В каждом интервале система использует QAM со значением n, которое зависит от измеренной мощности шума.

11.3.2. Межсотовые помехи и OFDM В сотовой системе пространство разделено на ячейки (соты). Пользователи в одной ячейке общаются через базовую станцию этой соты. Предположим, что оператор купил лицензию на определенный диапазон частот, скажем от 1 до 1,01 ГГц. Существует несколько способов, которыми оператор может распределить этот спектр на разные соты. Одним из способов является разделение спектра 10 МГц на отдельные подмножества, скажем семь подмножеств примерно по 1,4 МГц каждое, и распределение этих подмножеств между сотами по схеме, показанной на рис. 11.3. 6 5

7 1

4

2 3

6 5

6 5

1

1 4

7

7 2 3

2

Рис. 11.3. Повторное использование частот в сотовой связи

Преимущество такого подхода заключается в том, что соты, использующие одинаковые частоты, находятся далеко друг от друга и не мешают друг другу. Недостатком является то, что спектр, выделяемый каждой соте, невелик, что приводит к расточительности, если некоторые соты не очень загружены. Другой подход заключается в том, чтобы позволить всем сотам использовать весь спектр. Однако, чтобы ограничить взаимные помехи, необходимо использовать специальную схему. Мы опишем одну из таких схем: мультиплексирование с ортогональным частотным разделением каналов (OFDM). В OFDM спектр делится на множество узких поднесущих, как показано на рис. 11.4.

11.3.Проводныеибеспроводныеканалысвязи  217 Время передачи символа

F5

Расстояние между поднесущими

F4 F3 F2 F1 T1

T2

T3

T4

Рис. 11.4. Поднесущие OFDM и длительность символа

В течение времени передачи каждого символа узлы модулируют поднесущие по отдельности для передачи битов. Точный подбор расстояния между поднесущими и времени передачи символа делает поднесущие «ортогональными» друг к другу. Это гарантирует, что поднесущие не будут друг другу мешать, и в то же время для повышения эффективности системы они плотно размещаются в спектре без каких-либо защитных полос частот. Например, система OFDM со спектром 10 МГц может быть спроектирована так, чтобы иметь 1000 поднесущих на расстоянии 10 КГц друг от друга с временем передачи символов 100 мкс. Время передачи символа велико по сравнению со временем распространения сигналов между базовой станцией и пользователями в соте. Следовательно, даже если некоторые сигналы могут отражаться от окружающих предметов и достигать пользователя с некоторым запаздыванием, энергия сигнала из промежутка передачи одного символа почти не перетекает в следующий промежуток. То есть межсимвольная интерференция очень мала. OFDM требует, чтобы каждый пользователь использовал весь спектр в любой момент времени. Он обеспечивает совместное использование канала различными пользователями с помощью мультиплексирования с временным разделением, т. е. позволяя им использовать весь спектр в течение разных периодов времени. Ортогональный многостанционный доступ с частотным разделением каналов (OFDMA) является развитием OFDM. OFDMA позволяет различным пользователям применять спектр в одно и то же время. Для разделения спектра между пользователями OFDMA использует поднесущие и время передачи символа путем мультиплексирования с частотным и временным разделением. Как обсуждалось в главе 9, LTE использует технологию OFDMA. А как насчет помех между разными сотами? Способ ограничения таких помех заключается в распределении различных поднесущих между пользователями псевдослучайным образом по времени и частоте. Последнее возможно только при использовании OFDMA. При такой схеме каждый пользователь мешает другому только небольшую часть време-

218

 Глава11.Физическийуровеньсети

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

11.4. Оптические линии связи Волшебство оптических волокон заключается в том, что они могут передавать световые импульсы на огромные расстояния (скажем, на 100 км) с очень малым затуханием и малой дисперсией. Малое затухание означает, что сила света, пройдя большое расстояние, все еще достаточно велика для обнаружения импульсов. Низкая дисперсия означает, что импульсы не сильно рассеиваются при прохождении по волокну. Таким образом, импульсы света, которые разделены промежутками в доли наносекунды, остаются разделенными на большом расстоянии.

11.4.1. Работа оптоволокна Простейшее оптическое волокно называется волокном со ступенчатым индексом преломления, как показано на рис. 11.5. Такое волокно имеет цилиндрическую сердцевину, окруженную материалом с более низким показателем преломления. Если угол падения света на границу между двумя материалами достаточно мал (как на рисунке), свет полностью отражается от границы. Таким образом, световые лучи распространяются вдоль волокна по зигзагообразной траектории. Обратите внимание, что лучи, падающие под разными углами к оси волокна, распространяются с разной скоростью, так как их пути имеют разную длину. Следовательно, часть светового потока распространяется быстрее, чем остальная, что приводит к дисперсии импульсов. Эта дисперсия ограничивает скорость передачи импульсов, если мы хотим достоверно выделить их после прохождения через волокно. Поскольку дисперсия линейно увеличивается с ростом длины волокна, то получается, что длительность импульсов должна быть пропорциональна длине волокна. Аналогично скорость, с которой посылаются импульсы, должна уменьшаться обратно пропорционально длине волокна. В нижней части рис. 11.5 показано одномодовое волокно. Его геометрия аналогична геометрии волокна со ступенчатым индексом. Разница заключается в том, что сердцевина одномодового волокна имеет очень маленький диаметр (менее 8 микрон). Можно показать, что в таком волокне могут распространяться только лучи, параллельные оси волокна, что весьма примечательно. Другие лучи, даже слегка отклоненные от оси, исчезают вследствие самоинтерференции. В результате вся энергия светового импульса распространяется с одинаковой скоростью и сопровождается пренебрежимо малой дисперсией. Следовательно, че-

11.4.Оптическиелиниисвязи  219 рез одномодовое волокно можно передавать гораздо более короткие импульсы, чем через волокно со ступенчатым индексом. Полное отражение

Рис. 11.5. Волокно со ступенчатым индексом (вверху) и одномодовое волокно (внизу)

11.4.2. Модуляция ООК Базовая схема для передачи битов по оптическому волокну называется включением/выключением (On-Off Keying, OOK). Она заключается в том, что для кодирования битов 1 и 0 лазер включается и выключается. Приемник имеет фотодетектор, который измеряет интенсивность получаемого света. Если эта интенсивность больше некоторого порога, приемник объявляет, что он получил 1; в противном случае считается, что принят 0. Схема показана на рис. 11.6. 01101001

01101001

λ1 Оптоволокно

11000110

11000110 λ2

Призма

Лазерные диоды

Призма Фотодетекторы

Рис. 11.6. Мультиплексирование с разделением по длине волны. Различные сигналы кодируются разными длинами волн

Чтобы синхронизировать часы приемника, передатчик должен посылать достаточное количество единиц. Чтобы оценить этот факт, представьте, что передатчик посылает серию из 100 нулей, выключая свой лазер 100 раз за T с, где T – длительность каждого символа. Если часы приемника на 1 % быстрее часов передатчика, приемник будет считать, что получил 101 ноль. Если его часы на 1 % медленнее, то он получит только 99 нулей. Чтобы предотвратить такую чувствительность к тактовой частоте, на практике схемы передачи вставляют единицы в поток битов. Чтобы с высокой вероятностью отличить импульс от фонового шума, его минимальная длительность должна быть достаточно велика. Даже

220

 Глава11.Физическийуровеньсети

в отсутствие света приемник подвержен некоторому шуму, который выглядит так, как будто слабый свет попал на фотодетектор. Источником этого шума является тепловой шум в приемнике. Поэтому даже в отсутствие света приемник получает ток, который эквивалентен приему случайного количества света. Если приемник получает импульс света, то его среднее количество больше, чем в отсутствие светового импульса. Задача состоит в том, чтобы определить, означает ли полученное случайное количество света 𝜆0 или 𝜆1 > 𝜆0. Это решение может быть принято с малой вероятностью ошибки, только если разница 𝜆1 – 𝜆0 достаточно велика. Поскольку 𝜆1 затухает экспоненциально с ростом длины волокна (делится на 2 каждые K км), это условие накладывает ограничение на длину волокна для заданной вероятности ошибки. Заметим также, что 𝜆1 – 𝜆0 – это среднее количество света, которое достигает приемника от передатчика, и что эта величина пропорциональна длительности светового импульса. Из этого следует, что ограничение на длину L волокна и длительность T светового импульса должны иметь следующий вид: 𝛼 × T exp{–𝛽L} ≥ 𝛾.

11.4.3. Мультиплексирование с разделением по длине волны Мультиплексирование с разделением по длине волны (WDM) – это передача нескольких сигналов на разных длинах волн по одному и тому же оптическому волокну. Базовая схема показана на рис. 11.6. Каждый поток битов кодируется сигналами с использованием OOK. Каждый сигнал модулирует свой лазер. Свет, излучаемый лазерами, передается по волокну. На выходе оптоволокна призма разделяет волны по длинам и направляет их на разные фотодетекторы. Фотодетекторы вырабатывают ток, пропорциональный полученному световому сигналу. Затем детекторные схемы восстанавливают переданный поток. На практике такие системы используют до 100 различных длин волн. Задача при создании таких систем заключается в том, чтобы иметь лазеры, длина волны света которых не зависит от их температуры. Если каждый лазер модулируется битовым потоком 10 Гбит/с, то такая система может передавать данные со скоростью 1 Тбит/с (=1012 бит/с) на расстояния до 100 км.

11.4.4. Оптическая коммутация Существует возможность прямой коммутации оптических сигналов без их преобразования в электрические сигналы. На рис. 11.7 показан микроэлектромеханический (МЭМС) оптический переключатель. Этот переключатель состоит из маленьких зеркал, которые можно направлять

11.4.Оптическиелиниисвязи  221 таким образом, чтобы падающий свет направлялся в соответствующее выходное волокно. Зеркало

МЭМС-зеркала Входное волокно Выходное волокно

Рис. 11.7. Оптический МЭМС-переключатель

Такой переключатель изменяет пути, по которым лучи света проходят в сети. Сеть может использовать такие МЭМС-переключатели для восстановления после обрыва волокна или какого-либо сбоя, а также для регулирования пропускной способности различных линий связи, чтобы адаптироваться к изменениям в трафике, например, в течение дня. Исследователи изучают системы оптического переключения пакетов. В такой схеме передаваемому пакету предшествует пакет, который указывает подходящий выходной порт. У коммутатора до поступления пакета есть время для конфигурирования. Проблема в таких системах состоит в том, чтобы справиться с конфликтами, возникающими, когда разные входящие пакеты хотят выйти на один и тот же порт коммутатора. Электронный коммутатор хранит пакеты до тех пор, пока выходной порт не освободится. В оптическом коммутаторе буферизация не так проста и может потребовать отправки пакета по оптоволоконной петле. Другим подходом является так называемая маршрутизация «горячей картошки», когда коммутатор посылает пакет во все доступные выходные порты, надеясь, что другие коммутаторы в конечном итоге направят пакет в нужный порт. Чтобы сделать сеть устойчивой к потерям, которые создают такие конфликты, могут быть также использованы коды стирания пакетов.

11.4.5. Пассивная оптическая сеть Пассивная оптическая сеть (passive optical network, PON) использует возможность широковещательной передачи в оптических системах для устранения необходимости в коммутации. PON используются в качестве широкополосных сетей доступа либо прямо к пользователю, либо до ближайшего распределительного шкафа, от которого идет проводной канал.

222

 Глава11.Физическийуровеньсети

На рис. 11.8 показана пассивная оптическая сеть. Коробка со звездой  – это пассивный оптический сплиттер, который посылает оптические сигналы, поступающие в него слева, ко всем абонентам справа. И наоборот, сплиттер объединяет все сигналы, поступающие от абонентов, в волокно, идущее к распределительному центру слева. ABC ABC abc

abc ABC abc ABC abc

A a B b C c

Рис. 11.8. Пассивная оптическая сеть

Сигналы разных абонентов разделены во времени. В нисходящем канале (слева направо) система распределения посылает сигналы A, B, C, предназначенные для разных абонентов, в режиме мультиплексирования с временным разделением. Для восходящих каналов абонентские системы рассчитывают время передач, чтобы избежать конфликта, когда сигналы поступят в распределительный центр. Сеть использует специальные сигналы из распределительного центра для синхронизации передач абонентских систем.

11.5. Резюме Эта глава представляет собой краткий обзор темы цифровой коммуникации. • Цифровая линия связи преобразует биты в сигналы, которые распространяются в виде электромагнитных волн через некоторую среду (свободное пространство, провода, кабель, оптическое волокно), и затем обратно в биты. • Основными характеристиками канала связи являются скорость передачи, длина символа и частота ошибок. Беспроводная или проводная связь имеют ограничение по скорости: пропускная способность зависит от диапазона частот, которые они могут передавать, и от отношения сигнал/шум в приемнике. • Затухание ограничивает длину оптического канала, а дисперсия ограничивает произведение его длины на скорость передачи данных. WDM позволяет нам передавать различные битовые потоки, используя разные длины волн.

11.6.Ссылки  223 • Оптическая коммутация намного проще, чем электронная. Однако из-за трудностей с буферизацией требуются новые механизмы для борьбы с конфликтами. • Схемы модуляции, такие как BPSK, QPSK и QAM, достигают компромисса между скоростью и защитой от ошибок. • В сотовой сети может использоваться схема повторного использования частоты. OFDM в сочетании с методами снижения помех позволяет всем сотам использовать полный спектр частот.

11.6. Ссылки Любая книга по цифровой связи охватывает основной материал этого раздела. Смотрите, например, [84]. Для знакомства с оптическими сетями см. [86].

Powered by TCPDF (www.tcpdf.org)

Глава

12 Дополнительные темы

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

12.1. Коммутаторы Каналы интернета соединяются коммутаторами пакетов. Основной функцией коммутатора является передача пакетов от входных каналов к выходным с минимальной задержкой. Рассмотрим коммутатор с 32 входными и 32 выходными каналами. Предположим, что скорость каждого канала равна 10 Гбит/с = 1010 бит/с. Потенциально общая скорость передачи данных через коммутатор составляет 320 Гбит/с. Эта скорость превышает пропускную способность быстрых микросхем памяти. Следовательно, коммутатор не может хранить все поступающие пакеты в памяти и затем, считывая из памяти, передавать их на соответствующие выходные каналы. Чтобы обойти это ограничение, инженеры разработали архитектуру коммутаторов, в которой потоки могут проходить параллельно разными путями.

12.1.1. Модульные коммутаторы Левая часть рис. 12.1 иллюстрирует архитектуру коммутатора, называемую сетью Омега для 8 входных и 8 выходных каналов. Коммутатор состоит из 12 модулей, которые представляют собой переключатели 2 на 2. На рисунке также показано, как происходит маршрутизация в каждом модуле. Первый модуль выбирает выходной канал связи по первому биту номера выходного канала, второй модуль – по второму биту, а третий – по третьему. Предположим, что потоки сбалансированы таким образом, что 1/8 доля каждого входного потока поступает в каждый выходной канал со скоростью R. В этом случае равна R и скорость в каждом внутреннем канале коммутатора. Следовательно, для каждого модуля достаточно

12.1.Коммутаторы  225 иметь пропускную способность, равную 2R, чтобы весь коммутатор поддерживал пропускную способность 8R. 101

101

101

0 1 0 1 0 1

000 001

000 001

010 011

010 011

100 101

100 101

110 111

110 111

Рис. 12.1. Омега-коммутатор (слева) и «горячая точка» (справа)

Если потоки не сбалансированы, в коммутаторе могут возникать «горячие точки» (hot spot), как показано в правой части рис. 12.1. Чтобы предотвратить появление таких точек, можно использовать два включенных подряд коммутатора Омега, а средний модуль выбрать случайным образом, как показано на рис. 12.2. Маршрутизация в последних трех модулях происходит, как показано на рис. 12.1. Скорость R равна (R0 + R1 + R4 + R5)/4. Если все каналы, внешние и внутренние, имеют одинаковую скорость, то, как мы видим, R никогда не превысит этой скорости. Это же наблюдение применимо ко всем каналам коммутатора. R

𝑅0 𝑅1 𝑅2 𝑅3 𝑅4 𝑅5 𝑅6 𝑅7

Рис. 12.2. Балансировка потоков

Архитектура, показанная на рис. 12.1, может быть повторена рекурсивно для создания более крупных коммутаторов. Например, если взять модули 8×8, можно использовать архитектуру рис. 12.1, где каждая линия представляет 4 параллельные линии. В результате получится коммутатор 32×32. Если нет необходимости поддерживать максимально возможные скорости, то можно использовать другие архитектуры. На рис. 12.3 показан небольшой пример. Скорость канала = s ... 1 n

... 1 n

... 1 n

... Скорость канала = 1 1 n

Рис. 12.3. Сеть с топологией типа «утолщенное дерево» (fat tree)

226

 Глава12.Дополнительныетемы

При таком подключении образуется сеть с 4n входами и выходами с меньшими коммутаторами. Каналы – двунаправленные и имеют указанные на рисунке скорости. Серверы подключены к нижним линиям. Прямоугольники представляют собой пакетные коммутаторы. Обычно в центрах обработки данных 32, 48 или 64 сервера устанавливаются в стойку. Туда же устанавливается коммутатор, который называется стоечным коммутатором верхнего уровня (top-of-rack commutator). Эти коммутаторы соединены между собой через другие коммутаторы, как показано на рис. 12.3. Таким образом, если в каждой стойке установлено 48 коммутаторов, то в центре обработки данных, изображенном на рисунке, имеется 192 сервера. На рис. 12.4 показана более крупная схема, и легко представить себе иерархическую топологию таких систем для объединения большого количества серверов. Обратите внимание, что эта топология имеет некоторую избыточность. Например, самый левый нижний коммутатор не отключается, когда один из его верхних каналов выходит из строя. Кроме того, два канала удваивают скорость соединения этого коммутатора с остальной частью центра обработки данных. Скорость каналов, которые соединяют серверы со стоечными коммутаторами, обычно составляет от 10 до 40 Гбит/с. Скорость канала = s2 Скорость канала = s1 ... 1 n

... 1 n

... 1 n

... 1 n

... 1 n

... 1 n

... 1 n

... 1 n

Скорость канала = 1 Рис. 12.4. Еще один вариант сети типа «утолщенное дерево»

Как правило, 2s < n, поэтому потенциально скорость поступления n пакетов от серверов в коммутатор нижнего уровня может превышать максимальную скорость 2s из этого коммутатора в его каналы верхнего уровня. Таким образом, если все эти пакеты должны пройти по каналу верхнего уровня, чтобы достичь своего назначения, коммутатор может оказаться перегруженным. Отношение n/(2s) называется коэффициентом переиспользования (oversubscription ratio) нижних коммутаторов. Например, если 48 коммутаторов находятся в стойке и скорость их подключения 10 Гбит/с, один из них может иметь скорость s, равную 80  Гбит/с, за счет использования двух параллельных каналов по 40 Гбит/с каждый. В этом случае коэффициент переиспользования равен 3. Если этот коэффициент слишком велик, сеть с внутрисхемной коммутацией (interconnection network) может работать неудовлетвори-

12.1.Коммутаторы  227 тельно. В этой конкретной сети коммутаторы верхнего уровня не переиспользованы: общая входящая скорость не может превышать общую исходящую скорость. Предположим, что n = 2s и что каждый коммутатор может успевать за пакетами по мере их поступления с приемлемой задержкой. Тогда сеть может доставлять пакеты от любого из 4n серверов к любому другому с приемлемой задержкой. Однако это так только в том случае, если маршрутизация в сети хорошо спроектирована, о чем мы поговорим в следующем разделе. Другой пример, с тремя уровнями, показан на рис. 12.4. Его также называют сетью типа «утолщенное дерево». В этой сети нижние коммутаторы имеют коэффициент переподписки, равный n/(s1). Средние коммутаторы также могут быть переиспользованы. Предположим, что все пакеты, поступающие на их нижние каналы, должны выходить через верхние каналы. В этом случае максимальная входная скорость равна  4s1, а максимальная выходная скорость – 2s2, что соответствует соотношению 2s1/s2. Если предположить, что 2s1 > s2, такой средний коммутатор может быть переиспользован.

12.1.2. Матричные коммутаторы каналов На рис. 12.5 показана другая архитектура коммутатора, называемая матричным коммутатором каналов (switched crossbar), или просто кроссбаром. 1 2 3 4

1 2 3 4 Рис. 12.5. Матричный коммутатор (кроссбар)

В этой конструкции входные и выходные линии подключены к отдельным буферам, соединенным поперечным переключателем. Коммутатор работает в дискретных промежутках времени. В каждую еди-

228

 Глава12.Дополнительныетемы

ницу времени установлена определенная конфигурация перемычек для подключения разных входов к разным выходам. Например, в конфигурации, показанной на рис. 12.5, соединения имеют вид 4132, что означает, что вход 1 подключен к выходу 4, вход 2 – к выходу 1 и т. д. В течение этой единицы времени входы могут одновременно посылать на выходы по одному пакету. Пакеты имеют одинаковые размеры и могут быть переданы за эту единицу времени. Если используются IP-пакеты, входные буферы разбивают их на части фиксированного размера, а выходные собирают их обратно. Относительно такой архитектуры возникают два вопроса: 1) как должны быть устроены буферы и 2) как коммутатор должен конфигурировать перемычки в любой момент времени? Чтобы ответить на первый вопрос, предположим, что входные буферы работают по принципу «первый вошел – первый вышел», и представим, что пакеты, находящиеся в начале четырех входных буферов, предназначены для одного и того же выхода. В этом случае только один из четырех пакетов может быть передан в следующую единицу времени. Это явление, называемое блокировкой головной линии, ограничивает пропускную способность коммутатора. Эту блокировку можно устранить, поддерживая четыре буфера для каждой входной линии: по одному для каждой возможной выходной линии. Такая конструкция называется виртуальными выходными буферами. Чтобы ответить на второй вопрос, предположим, что коммутаторы используют виртуальные выходные буферы, и скажем, что отставания составляют (3, 2, 0, 1), (0, 1, 3, 0), (0, 0, 1, 1), (2, 1, 2, 4). Наша нотация означает, что первая входная линия имеет 3 пакета, предназначенных для выхода 1, 2 пакета – для выхода 2 и т. д. Четвертая входная линия имеет 2 пакета, предназначенных для выхода 1, 1 пакет – для выхода 2 и т. д. Предположим, что нового поступления пакетов нет. Тогда конфигурация, показанная на рисунке, приведет к следующим отставаниям на следующем шаге: (3, 2, 0, 0), (0, 1, 3, 0), (0, 0, 0, 1), (2, 0, 2, 4). Хороший ли это выбор? Обратите внимание, что существует 4! = 24 возможных конфигураций, поскольку каждая из них соответствует перестановке из  4  выходов, подключенных к последовательным входам. Какую из этих 24 конфигураций должен выбрать переключатель? Конфигурация является максимальной, если на следующем шаге она передает максимальное количество пакетов. Обратите внимание, что 4132-я передает только 3 пакета, так как соединяет вход 2 с выходом 1, для которого у него нет ни одного пакета. С другой стороны, конфигурация 1234 передает 4 пакета, как и конфигурация 4231. Таким образом, эти две последние конфигурации являются максимальными, в то время как 4132-я – нет. Интуитивно можно решить, что любая максимальная конфигурация является одинаково хорошим выбором,

12.2.Оверлейныесети  229 поскольку на следующем шаге она передает максимальное количество пакетов. Однако это недальновидный подход – оказывается, что такой выбор не максимизирует пропускную способность коммутатора на длительном промежутке времени. Максимальную пропускную способность обеспечивает максимально взвешенная конфигурация. Это конфигурация максимизирует сумму пакетов в очередях, которые она обслуживает на следующем шаге, называемую весом конфигурации. Например, вес 4231 – это 1 + 1 + 1 + 1 = 4. Вес конфигурации 1324 равен 3 + 3 + 0 + 4 = 10, что является максимальным весом, хотя эта конфигурация не является максимальной. Примечательны два факта о свойстве максимальной пропускной способности максимально взвешенных конфигураций. Во-первых, она не зависит от скорости прибытия на разные каналы. Во-вторых, она удивительно проста: действительно, требуется лишь простое сравнение сумм, хотя можно было бы ожидать, что хорошая политика будет зависеть очень сложным нелинейным образом от векторов отставания. К сожалению, хотя эта максимально взвешенная конфигурация относительно проста, она тем не менее слишком сложна для реализации в реальном времени в большом коммутаторе: слишком много сумм для сравнения. По этой причине коммутаторы реализуют гораздо более простую политику круговой выборки, с помощью которой достигают хорошей пропускной способности. Одна из таких стратегий заключается в том, что входы посылают запросы ко всем выходам, для которых у них есть пакеты, а выходы удовлетворяют (предоставляют грант) эти запросы по круговому алгоритму, а затем входы принимают грант также по кругу. Допустим, что выход 1 последним удовлетворил запрос входа 2. Если на следующем шаге входы 3 и 4 делают запрос к выходу 1, то выход 1 удовлетворяет запрос входа 3, который является следующим после того, как последним был удовлетворен запрос входа 2, т. е. в циклическом порядке 1, 2, 3, 4, 1,…. Аналогично скажем, что вход 1 в последний раз получил грант от выхода 3, а на следующем шаге он получает гранты от выходов 1, 2, 3. Тогда он принимает грант от выхода 1. Коммутатор может повторить этот трехфазный процесс запроса-предоставления-принятия со входами, которые еще не приняли грант. Эффективность этой политики не удается представить в аналитической форме, но моделирование показывают, что она работает хорошо.

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

230

 Глава12.Дополнительныетемы

нели. На рис. 12.6 показана такая оверлейная сеть. Четыре узла A–D присоединены к сети с узлами 1–12. Узлы u, x, y, z – это другие хосты. u A 2 x

C

6 10

4 7

1 3

5 B

9

11

z

12

8 y

D

Рис. 12.6. Оверлейная сеть: узлы A, B, C, D образуют оверлейную сеть

Узел A может отправить пакет узлу D, сначала отправив его узлу C и попросив узел C переслать его узлу D. Процедура заключается в том, что A посылает пакет вида [A | C | A | D | Пакет]. Здесь [A | C] обозначает IP-заголовок пакета, который A посылает C. [A | D] – это источник A и получатель D оверлейной сети. Когда узел C получает этот пакет, он удаляет IP-заголовок и видит пакет [A | D | Пакет]. Затем узел C пересылает пакет в D как [C | D | A | D | Пакет], добавив IP-заголовок [C | D]. Говорят, что A отправляет пакеты в C по IP-туннелю. Обратите внимание, что узлы A–D оверлейной сети реализуют свой собственный алгоритм маршрутизации. Таким образом, сеть 1–12 решает, как проложить туннели между парами узлов A–D оверлейной сети, но узлы сами решают, как пакет должен пройти от A к D по оверлейной сети (A–C–D в нашем примере). Этот дополнительный уровень принятия решений позволяет оверлейной сети реализовать функции, которые не может реализовать базовая сеть 1–12. Например, оверлейная сеть может реализовать многоадресную рассылку (multicast). Допустим, что х проводит многоадресную рассылку пакетов для u, y, z. Одна из возможностей состоит в том, что x отправляет пакеты в A, отправляющий их в C, который затем реплицирует их и отправляет по одной копии u, y и z. Другая возможность заключается в том, чтобы оверлейная сеть выполняла маршрутизацию с учетом производительности. Например, чтобы отправить пакеты от y к u, узел y может отправить пакеты в B, который имеет два пути к u: один проходит через A, а другой через C. Затем оверлейная сеть выбирает самый быстрый путь. Одним из преимуществ такой схемы является то, что она может быстро реагировать на проблемы в базовой сети. Оверлейная сеть может также предоставлять услуги хранения данных или вычислительные услуги.

12.2.Оверлейныесети  231

12.2.1. Примеры сетей: CDN и P2P Рассмотрим два конкретных примера: сети распространения контента (Content Distribution Networks, CDN) и одноранговые (пиринговые) сети (Peer-to-Peer Networks, P2P).

Сеть распространения контента (CDN) Широко используемая сеть Akamai является сетью CDN. Она представляет собой оверлейную сеть серверов. Идея заключается в том, чтобы для уменьшения времени отклика системы обслуживать пользователей с ближайшего сервера CDN. Еще раз рассмотрим сеть на рис. 12.6. Предположим, что узлы A–D являются серверами, которые хранят копии некого популярного веб-сайта. Когда узел x хочет получить доступ к контенту этого сайта, он подключается к его главному серверу, который затем перенаправляет его на ближайший сервер, содержащий этот контент (скажем, A). Такое перенаправление может происходить несколькими способами. В одном случае DNS-сервер может быть в состоянии предоставить IP-адрес A, используя адрес источника из DNS-запроса x. При косвенном подходе x связывается с главным сервером веб-сайта, затем он отвечает веб-страницей, ссылки на которую соответствуют серверу A.

Одноранговая сеть (P2P) Сеть P2P – это оверлейная сеть хостов. То есть это сеть, которую образуют устройства конечных пользователей с целью обмена файлами. Первым примером сети P2P была сеть Napster (1999–2001). В этой сети использовался центральный каталог (директория), в котором указывалось, на каких хостах находятся копии разных файлов. Чтобы получить нужный файл, пользователь обращался к каталогу и получал список возможных хостов, с которых можно было скачать этот файл. После судебных претензий со стороны производителей музыки о том, что Napster является соучастником воровства, сеть была вынуждена прекратить свою деятельность. Более новые сети P2P не используют центральный сервер. Вместо этого узлы P2P участвуют в распределенной системе каталогов. Каждого узел имеет список соседей. Чтобы найти файл, пользователь спрашивает своих соседей, которые в свою очередь опрашивают своих соседей. Когда узел получает запрос на файл, имеющийся у него, он сообщает об этом узлу, который отправил запрос, и не распространяет запрос дальше. Таким образом, хост, отправивший запрос, в конечном итоге получает список хостов, у которых есть этот файл, и может выбрать ближайшие хосты, откуда можно получить файл. В популярной сети P2P BitTorrent запрашивающий хост может параллельно скачивать файлы с пяти различных хостов.

232

 Глава12.Дополнительныетемы

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

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

12.3. Как работают популярные протоколы P2P По состоянию на 2009 год, согласно статистике (с сайта www.ipoque.com), около 70 % интернет-трафика приходилось на P2P-сети и только 20 % – на веб-браузеры. 70 % трафика P2P используется протоколом BitTorrent и около 20 % – протоколом eDonkey, хотя от континента к континенту эти цифры могут сильно отличаться. Следующими по популярности являются Gnutella, Ares и DirectConnect. Хотя потоковое мультимедийное вещание и хостинг файлов в интернете, похоже, набирают популярность, в целом BitTorrent по-прежнему является королем трафика прикладного уровня интернета! Поскольку значительный объем трафика связан с P2P, сетевому инженеру необходимо понимать, как протоколы P2P работают в оверлейных сетях. Правильное понимание поможет разработать лучшую архитектуру сети, политику формирования трафика и ценовую политику. В этом разделе мы изучаем, как работают некоторые популярные протоколы P2P с точки зрения их архитектуры, но воздержимся от описания спецификации протоколов.

12.3.1. Первое поколение: на базе сервер/клиент В 1999 г. Калифорнийский университет в Беркли выпустил проект, позволяющий производить распределенные вычисления на объединенных в сеть домашних компьютерах. Программное обеспечение на стороне пользователя выполняет частотно-временную обработку внеземных радиосигналов, которые загружаются с центрального сервера SETI@HOME, в надежде обнаружить существование разумной жизни за пределами Земли. Сервер SETI@HOME распределяет данные между участвующими пользователями, чтобы использовать их незадействованную вычислительную мощность, а пользователи возвращают результаты вычислений обратно на сервер. Путь сообщения

12.3.Какработаютпопулярныепротоколы P2P  233 в SETI@HOME – это архитектура «клиент/сервер». Однако некоторые относят его к первому поколению P2P. Строго говоря, это распределенные сетевые вычисления.

12.3.2. Второе поколение: централизованный каталог Второе поколение протоколов P2P основано на централизованном каталоге. Napster получил широкую популярность как служба совместного использования файлов MP3. При запуске клиент Napster входит на центральный каталог сервера и уведомляет сервер о своем списке совместно используемых файлов. Клиенты поддерживают соединение с сервером и используют его в качестве пути передачи управляющих сообщений. Когда клиенту необходимо найти и загрузить файл, он отправляет запрос на сервер. Сервер просматривает свой каталог и отправляет IP-адрес владельца этого файла. Затем клиент инициирует TCP-соединение с владельцем файла и начинает загрузку. В этом поколении центральный сервер играл важную роль предоставления результатов поиска. Поэтому было легко отключить всю службу, просто отключив центральный сервер. Более поздняя версия Napster позволяла просматривать файлы в режиме «клиент/клиент».

12.3.3. Третье поколение: полностью распределенный протокол Основной особенностью протокола P2P третьего поколения является его полностью распределенная работа; он не требует наличия центрального сервера. Вместо этого каждый участвующий узел работает и как клиент, и как сервер. Протокол Gnutella работал именно таким образом и был довольно успешным. Перед запуском клиент должен иметь список IP-адресов кандидатов. При запуске он пытается подключиться к ним и узнает истинный список рабочих IP-адресов. Поисковый запрос распространяется по сети Gnutella на все активные соединения. Узел, у которого есть ответ на запрос, отвечает, передавая свой IP-адрес. Эта схема может страдать от проблем, связанных с масштабируемостью. Большое количество соединений в сочетании с механизмом распределения запроса может легко привести к превышению доступной пропускной способности и вычислительной мощности. Поэтому в более поздних версиях Gnutella было введено понятие суперузлов.

12.3.4. Появление иерархического оверлея – суперузлов Протокол P2P в чистом виде предполагает, что все узлы равны. Однако с точки зрения пропускной способности и вычислительной мощности некоторые узлы превосходят другие. Если сделать их ретрансляторами для сети, проблемы масштабируемости могут быть смягчены. Их назы-

234

 Глава12.Дополнительныетемы

вают суперузлами в отличие от обычных листовых узлов (Leaf Node, конечный узел ветви). Введение суперузлов вносит иерархию в оверлейные сети P2P. При запуске клиент подключается к суперузлам вместо того, чтобы подключаться к другим клиентам напрямую. Поисковый запрос передается через суперузлы. Популярный VoIP-клиент Skype и более поздняя версия Gnutella используют суперузлы. Любой узел Skype с соответствующей конфигурацией может автоматически стать суперузлом. Известно, что многие университетские сетевые компьютеры служат в качестве суперузлов из-за их более высокой скорости интернет-соединения и открытости. Существует проблема подключения к клиентам, находящимся за устройствами NAT. Если только клиент-получатель находится за NATустройством, клиент-отправитель может подключиться к нему, выполнив команду обратного вызова. Если оба клиента находятся за NATустройствами, они используют другой клиент Skype, находящийся в публичном IP-домене, в качестве ретранслятора между отправителем и получателем.

12.3.5. Продвинутый распределенный совместный доступ к файлам: BitTorrent BitTorrent обеспечивает львиную долю всего интернет-трафика – примерно 50 %. По сравнению с другими протоколами, о которых говорилось выше, основное отличие BitTorrent заключается в большей избыточности при распространении файлов. Специализированный веб-сервер (трекер) поддерживает список пиров, которые в настоящее время передают данный файл1. Любой пир, желающий скачать файл, сначала подключается к трекеру и получает список активных пиров. Файл разбивается на множество частей, обычно по 16 КБайт, и обмен между пирами происходит этими частями. Это позволяет скачивающему узлу подключаться к нескольким пирам и получать от них несколько фрагментов одновременно. Для выбора фрагментов используется уникальная политика «редчайший-первый». Скачивающий узел сначала получает наименее распространенный фрагмент, увеличивая распространенность этого фрагмента в сети. После этого узел может одновременно проводить как скачивание, так и выгрузку файлов. Таким образом, не существует исключительно скачивающих узлов. Все участвующие в обмене клиенты равноправны. Для того чтобы избавить сеть от хитрецов, которые только скачивают фрагменты, но не хотят их раздавать, BitTorrent использует политику, известную как Tit­for­Tat, в которой пир обеспечивает скачивание только тем, что сам раздает фрагменты. 1

В нашем обсуждении мы не делаем различий между торрент-трекером и индексатором.

12.4.Сенсорныесети  235

12.4. Сенсорные сети Беспроводная сенсорная сеть – это совокупность сенсорных узлов, оснащенных беспроводным приемопередатчиком. В зависимости от применения узлы могут измерять температуру, влажность, ускорение, интенсивность света, звука, наличие химических веществ или биологических агентов или другие аспекты окружающей среды. Узлы могут передавать пакеты друг другу и шлюзу в интернет или какому-либо контрольному узлу. Потенциальные области применения этой технологии включают мониторинг окружающей среды для обнаружения загрязнения, опасных утечек, наблюдения за здоровьем лесов, перемещениями животных для научных исследований, за жизненными показателями пациентов, структурной целостностью здания после землетрясения, шумом в городской среде, движением грунта в качестве индикатора сейсмической активности, за лавинами, за движением транспорта на автомагистралях или городских улицах и т. д. Эта технология разрабатывается уже почти два десятка лет. Хотя на сегодняшний день существует относительно небольшое количество крупных беспроводных сенсорных сетей, потенциал технологии заслуживает того, чтобы обратить на нее внимание. В этом разделе мы обсудим некоторые основные проблемы, с которыми сталкиваются беспроводные сенсорные сети.

12.4.1. Вопросы проектирования Во-первых, хотелось бы заметить, что значимость рассматриваемых проблем сильно зависит от конкретного приложения. Может возникнуть соблазн разработать общие протоколы для сенсорных сетей, как это было сделано для интернета, надеясь, что эти протоколы будут достаточно гибкими для поддержки большинства приложений. Однако опыт показал, что это ошибочный подход. Как показано ниже, при разработке решения очень важно знать особенности конкретного приложения.

Энергия Представьте себе тысячи беспроводных сенсорных узлов, развернутых для измерения интенсивности движения на автомагистрали. Очень важно, чтобы батареи этих узлов работали долгое время. Например, предположим, что имеется 10 000 узлов со сроком службы батарей 1000 дней. Каждый день придется заменять в среднем 10 батарей. Конечно, если датчики имеют доступ к источнику питания, эта проблема не имеет значения; это касается датчиков на борту автомобиля или датчиков, которые могут быть подключены к электросети.

236

 Глава12.Дополнительныетемы

Как показывают функциональные измерения типичных сенсорных узлов, наибольшее количество энергии, по сравнению с другими устройствами, потребляет радиосистема. Более того, радиомодули потребляют примерно одинаковое количество энергии в режимах приема, простоя и передачи. Следовательно, единственный эффективный способ снижения энергопотребления таких узлов – заставить радиосистему находиться в спящем режиме как можно больше. В случае с датчиками на шоссе было бы эффективно держать их активными для подсчета трафика, а радиомодули включать только на время, достаточное для того, чтобы узлы передали свои наблюдения. Узлы могут синхронизировать свои режимы сна/бодрствования, используя время приема пакетов для повторной синхронизации своих часов. Исследователи изучали методы получения энергии с помощью солнечных батарей, пьезоэлектрических материалов, активируемых движением, термопар и других технологий.

Местоположение Представьте себе сотни сенсорных узлов, сброшенных с вертолета в пустыню с целью обнаружения и отслеживания движения армейских транспортных средств. Чтобы измерения были полезными, узлы должны уметь определять свое местоположение. Одна из возможностей – оснастить каждый узел подсистемой GPS, которая определит их точное местоположение. Однако стоимость такого подхода может оказаться непомерно высокой. Исследователи разработали схемы, позволяющие узлам измерять расстояния до соседних узлов. Один из методов заключается в добавлении ультразвукового приемопередатчика в каждый узел. Предположим, что узел A посылает радиосигнал и его сосед B отвечает своим ультразвуковым сигналом. Измеряя задержку, узел A может оценить расстояние до узла B. В такое «щебетание» может быть включена идентификация общающихся узлов. Аналогичный подход возможен при использовании радиопередатчиков, как в транспондерах самолетов. Проблема определения местоположения методом парных расстояний между узлами является нетривиальной, и ей уделяется значительное внимание. Первое наблюдение заключается в том, что многоугольник со сторонами заданной длины может не быть жестким. Например, квадрат по длине сторон эквивалентен ромбу, у которого другое расположение узлов. Поэтому основное требование к расположению узлов звучит так: для однозначного и точного определения местоположения жесткого объекта узлы должны измерить достаточное количество парных расстояний. Второе соображение заключается в том, что и жесткий объект может иметь несколько положений, соответствующих его вращениям, переворотам или центрально-симметричным преобразова-

12.4.Сенсорныесети  237 ниям. Узлы должны иметь достаточно информации, чтобы различать такие возможности. Третье наблюдение заключается в том, что, даже если по данным измерений местоположение узлов уникально, поиск эффективного алгоритма для вычисления этих местоположений нетривиален. Для этой цели было разработано несколько хитроумных схем. В некоторых приложениях возникает более простая версия проблемы определения местоположения. Скажем, каждый светильник и каждый термостат в здании имеют уникальный идентификационный номер. Однако установщик этих устройств не отслеживает конкретное местоположение каждого устройства. То есть местоположение всех узлов известно, но сопоставление идентификатора с местоположением должно быть определено постфактум. Мы предлагаем вам самостоятельно придумать жизнеспособные подходы к решению этой проблемы.

Адреса и маршрутизация Необходимо ли каждому сенсорному узлу иметь уникальный IP-адрес? В интернете устройства NAT позволяют нам повторно использовать IP-адреса. Аналогичный подход можно применять и для сенсорных узлов. Однако узлы должны использовать протоколы UDP/IP, поэтому возможны более простые схемы адресации. Например, в некоторых приложениях подходящим адресом может быть местоположение. Если задача состоит в том, чтобы определить температуру в комнатах здания, то конкретный идентификатор соответствующего датчика не имеет значения. Если узлы мобильны, то подходящая адресация на основе местоположения является более сложной задачей. Маршрутизация в сенсорной сети в зависимости от области применения может быть довольно сложной задачей. Если узлы фиксированы и всегда отправляют информацию на определенный шлюз, то сеть может запускать алгоритм кратчайшего пути достаточно редко или вообще только один раз. Если узлы перемещаются, алгоритм маршрутизации может либо работать в фоновом режиме, либо узлы могут искать маршруты по мере необходимости. Как и для других протоколов, маршрутизация должна быть разработана с хорошим пониманием характеристик приложения.

Внутрисетевая обработка и запросы Предположим, что цель сенсорной сети – измерить самую высокую температуру, которая воздействует на ее узлы. Один из подходов: все узлы периодически сообщают о своей температуре, а контролирующий узел вычисляет наибольшее значение. Другой подход: каждый узел сравнивает свою собственную температуру со значением, которое сообщают его соседи; затем узел передает только максимальное значение. Аналогичная схема может быть разработана для измерения среднего

238

 Глава12.Дополнительныетемы

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

12.5. Распределенные приложения Для реализации множества различных протоколов, включая BGP, OSPF, RIP и TCP, в сетях используются распределенные приложения. В более общем случае узлы сети могут быть использованы для реализации распределенных приложений для пользователей. Свойства распределенных приложений представляют интерес для разработчиков приложений и протоколов. В этом разделе рассмотрен ряд наиболее характерных приложений и их свойства.

12.5.1. Алгоритм маршрутизации Беллмана–Форда В главе 5 мы говорили о том, что алгоритм Беллмана–Форда сходится после конечного количества шагов, если топология сети не меняется в течение этого времени. Напомним, что при выполнении этого алгоритма каждый узел i = 1, 2, …, J сохраняет оценку xn(i) кратчайшего расстояния до заданного узла назначения, скажем узла D. Здесь n = 0, 1, … обозначают шаги алгоритма. В базовой версии этого алгоритма если узел i получает новое сообщение xn(j) от соседа j, то он обновляет свою оценку xn+1(i), которую вычисляет следующим образом: xn+1(i) = min{xn(i), d(I, j) + xn(j)}. В этом выражении d(I, j) – это длина связи от i до j. Начальными значениями являются x0(i) = ∞ для i ≠ D и x0(D) = 0. Если топология сети не меняется, то значения xn(i) не возрастают. Пусть кратчайший путь из i в D – это путь (i, i1, i2, …, ik–1, ik, D). Тогда будет одно сообщение от D к ik, затем одно от ik к ik–1 и т. д., затем одно сообщение от i1 к i. Так находится значение xn(i), которое является кратчайшим расстоянием от i до D. Чтобы при изменении топологии алгоритм сходился, необходимо изменить правила обновления. Одна из модификаций заключается в том, чтобы позволить узлу сбросить свою оценку на ∞, если он получает более высокую оценку расстояния от соседа. Такое действие указывает на то, что длина соединения увеличилась и что следует перезапустить алгоритм. Чтобы реализовать эту модификацию, узлы должны помнить оценки, которые они получили от своих соседей.

12.5.Распределенныеприложения  239

12.5.2. Регулировка мощности Другим распределенным алгоритмом в сетях является алгоритм, используемый беспроводными узлами CDMA для регулировки их мощности. CDMA (множественный доступ с кодовым разделением) – это механизм, позволяющий различным узлам одновременно передавать данные в некотором диапазоне частот путем присвоения им различных кодов, что делает их передачи почти ортогональными. Детали этого механизма в нашем случае не имеют значения. Для нас важно, что передача от одного узла может вызвать помехи в других узлах. Необходимо найти такую схему регулировки мощности передачи узлов, чтобы связи между узлами были наиболее надежными. Идея заключается в том, что передатчик может захотеть увеличить свою мощность, чтобы его приемник получил более мощный сигнал. Однако, увеличивая свою мощность, передатчик генерирует больше помех для других приемников и ухудшает их работу. Как узлы могут найти хороший компромисс распределенным способом? Эта ситуация не отличается от TCP, где увеличение скорости одного соединения увеличивает потери других. Чтобы сформулировать задачу, представим, что существуют пары узлов (передатчик, приемник). Предположим для пары i, что передатчик i мощностью Pi посылает пакеты связанному с ним приемнику i. Пусть G(i, j) – это доля мощности Pi, которая достигает приемника j. Кроме того, предположим, что приемник j также слышит некоторый шум мощностью 𝜂j, вызванный тепловым шумом и помехами от источников, внешних по отношению к узлам рассматриваемой сети. Таким образом, приемник j получает сигнал мощностью PjG(j, j) от связанного с ним передатчика, шум мощностью 𝜂j и помехи мощностью ∑i≠jPiG(i, j) от других передатчиков. Ключевой величиной, определяющей качество работы узла j, является отношение мощности сигнала к сумме мощностей помех и шума (signal-to-interference-plus-noise ratio, SINR). Для узла j это отношение равно Rj и определяется следующим образом: Pj G(j, j) Rj = ————————————. �i≠j Pi G(i, j) + 𝜂j

То есть Rj – это мощность сигнала Pj G(j, j) от своего передатчика, разделенная на сумму мощностей шума и помех от других передатчиков. Связь передатчика j с приемником j успешна, если Rj ≥ 𝜂j. Интуитивно понятно, что если сигнал достаточно мощный по сравнению с шумом и помехами, то приемник способен обнаружить биты в таком сигнале с достаточно высокой вероятностью. Математически проблема регулировки мощности заключается в том, чтобы найти вектор P = (Pi) мини-

240

 Глава12.Дополнительныетемы

мальной мощности такой, что Rj ≥ 𝜂j для всех j. Мы можем записать ограничение Rj ≥ 𝜂j следующим образом: PjG(j, j) ≥ 𝜂j ��PiG(i, j) + 𝜂j�. i≠j

Эквивалентно

Pj ≥ �Pi A(i, j) + 𝛽j, i≠j

где A(i, j) = 𝛼j G(j, j)–1G(i, j) для i ≠ j и 𝛽j = 𝛼j G(j, j)–1𝜂j. Определив A(i, j) = 0, мы можем записать неравенство в векторной форме: P ≥ PA + 𝛽.

Тогда простая схема регулировки мощности описывается выражением P(n +1) = P(n)A + 𝛽, n ≥ 0,

где P(n) – вектор мощностей, используемых передатчиками на шаге n алгоритма. Чтобы исследовать сходимость алгоритма, предположим, что Тогда мы находим, что так что по индукции

P* = P* A + 𝛽.

P(n +1) – P* = �P(n) – P*�A,

P(n) – P* = �P(0) – P*�An для n ≥ 0.

Можно показать, что если собственные значения матрицы A имеют величину меньше 1, то P(n) сходится к P*. Более того, при таком предположении легко убедиться, что значение P* существует, и единственное. Давайте теперь посмотрим, как этот алгоритм работает в распределенном виде. Рассмотрим регулировку мощности Pj. Мы находим, что Pj(n + 1) = �Pi(n)A(I, j) + 𝛽j = 𝛼jG(j, j)–1��Pi(n)G(i, j) + 𝜂j�. i≠j

i≠j

Это обновленное правило можно записать следующим образом: Pj(n + 1) = 𝛼jG(j, j)–1Nj(n),

где Nj(n) = ∑i≠j Pi(n)G(i, j) + 𝜂j – суммарная мощность помех плюс шум, который слышит приемник j. Таким образом, если передатчик j знает G(j, j) и Nj(n), он регулирует свою мощность передачи так, чтобы его при-

12.6.Византийскоесоглашение  241 емник получал SNIR, точно равный целевому 𝛼j. Чтобы реализовать этот алгоритм, приемник j должен сообщить своему передатчику значение Nj(n), а также значение Pj(n)G(j, j), чтобы передатчик мог определить G(j, j). Таким образом, задача регулировки мощности узлов CDMA имеет простое распределенное решение, которое требует минимального обмена управляющей информацией между передатчиками и приемниками. Приемнику необходимо только указать своему передатчику мощность принимаемого сигнала и суммарную мощность помех и шума.

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

12.6.1. Соглашение при ненадежном канале связи Представим двух генералов (A и B), которые хотят договориться, атаковать ли завтра в полдень общего врага. Если они не смогут атаковать совместно, последствия будут катастрофическими. Они договариваются, что генерал А примет решение о том, атаковать или нет, а затем пошлет гонца генералу B. Затем генерал B может отправить гонца обратно генералу А для подтверждения и т. д. Однако есть ненулевая вероятность, что гонца перехватят, когда он путешествует между генералами. Интересно, что не существует протокола, гарантирующего успех для генералов A и B. Чтобы оценить проблему, представим, что генерал А посылает сообщение с решением атаковать. Он не может атаковать, пока не узнает, получил ли B сообщение. Поэтому B посылает гонца обратно A с подтверждением. Однако B не может атаковать, пока не узнает, получил ли А подтверждение. По этой причине А посылает посыльного обратно B, чтобы сообщить ему, что он получил подтверждение. Однако A не может атаковать, пока не узнает, что B получил подтверждение, и т. д. Докажем аналитически, что ни один алгоритм не может решить эту проблему согласования. Под решением мы подразумеваем, что если генерал A решит не атаковать, то и A, и B в конечном итоге должны принять решение не атаковать. Также если A решит атаковать, то оба генерала должны в конечном итоге принять это решение. Докажем это от противного. Предположим, что некоторый алгоритм решает эту задачу. Рассмотрим последовательность шагов этого алгоритма, когда в общем случае A решает атаковать и все сообщения доставлены. Предположим, что A и B договорились атаковать после n сообщений (первое – от A к B,

242

 Глава12.Дополнительныетемы

второе – от B к A и т. д.). Предположим, что n четно, так что последнее сообщение будет от B к A. Рассмотрим, что произойдет, если это сообщение не будет доставлено. В этом случае B все равно решит атаковать. Таким образом, A знает, что B хочет атаковать независимо от того, получит ли A сообщение n или нет. Соответственно, A должен принять решение об атаке после того, как получит сообщение n – 2. По симметрии можно сделать вывод, что B должен был принять решение об атаке после получения сообщения n – 3. Продолжая в том же духе, мы приходим к выводу, что A и B должны были договориться об атаке, даже если сообщениями не обмениваются. Но тогда они также согласятся атаковать, даже если A решит не делать этого, что является противоречием. Следовательно, не может существовать алгоритм, решающий эту проблему. Аналогичное рассуждение можно привести и для нечетного n. Анализ этой проблемы показал, что существует нижняя граница вероятности того, что каждое сообщение будет потеряно, и можно показать, что существует алгоритм, который решает эту проблему с большой вероятностью.

12.6.2. Консенсус в присутствии противников Представим, есть три агента A, B, C. Один из них нечестен, но двое других не знают, кто он. Мы хотим разработать алгоритм, при котором честные агенты придут к согласию относительно общего значения в {0, 1}. В частности, если два честных агента начинают с одного и того же предпочтительного выбора X ∈ {0, 1}, то в конечном итоге они должны договориться о выборе X. Оказывается, что такого алгоритма не существует. В более общем случае в сети с N агентами консенсус невозможен, если есть хотя бы N/3 нечестных агентов. Мы не будем доказывать, что алгоритма не существует. Вместо этого проиллюстрируем сложность задачи, рассматривая разумный алгоритм, и покажем, что он не решает задачу. В первом раунде алгоритма честные агенты сообщают о своем выборе, а во втором сообщают то, что они услышали от других агентов. Покажем, что этот алгоритм не решает проблему консенсуса. Чтобы сделать это, рассмотрим три различных варианта выполнения алгоритма и покажем, что два честных агента могут получить разные значения (0 – один и 1 – другой), что нарушает цель алгоритма. В табл. 12.1 показан случай, когда A и B честны и начинают с выбора 1, а C нечестен и начинает с выбора 0. В таблице показаны сообщения, которые узлы посылают друг другу в двух раундах. Обратите внимание, что во втором раунде C сообщает A, что B сказал ему, что его выбор 0 (в то время как на самом деле в первом раунде B сообщил, что его выбор 1).

12.6.Византийскоесоглашение  243 Таблица 12.1. Случай A(1), B(1), C(0), когда во втором раунде C лжет A →

A

B

C

A

B

C

A(1)



1

1



C=0

B=1

B(0)

1



1

C=0



A=1

C(0)

0

0



B=0

A=1



В табл. 12.2 рассмотрен случай, когда А нечестен и начинает с выбора 1, а В и С честны, и начинают с выбора 0. Во втором раунде A лжет C, сообщая, что В сказал ему, что в первом раунде его выбор был 1 (вместо 0). Таблица 12.2. Случай A(1), B(0), C(0), когда A лжет C во втором раунде →

A

B

C

A

B

C

A(1)



1

1



C=0

B=1

B(0)

0



1

C=0



A=1

C(0)

0

0



B=0

A=1



Наконец, в таблице 12.3 рассмотрен случай, когда B нечестен и начинает с выбора 1, а A и C честны и начинают с выбора 1 и 0 соответственно. В этом случае B лжет C в первом раунде, а все остальные сообщения являются правдивыми. Таблица 12.3. Случай A(1), B(1), C(0), когда B лжет C в первом раунде →

A

B

C

A

B

C

A(1)



1

1



C=0

B=1

B(0)

1



0

C=0



A=1

C(0)

0

0



B=0

A=1



Чтобы понять, почему этот алгоритм не может решить проблему консенсуса, заметим, что в первом случае A и B должны в итоге согласиться с выбором 1, во втором случае B и C должны согласиться с выбором 0. Поскольку А обладает одинаковой информацией в первом и третьем случаях, он не может провести различие между ними. Аналогично C не может провести различие между вторым и третьим случаями. Поскольку A должен согласиться на 1 в первом случае, он согласится на 1 и в третьем случае. Аналогично, поскольку С должен остановиться на 0 во втором случае, он остановится на 0 и в третьем. Таким образом, в третьем случае A и C выбирают разные значения.

244

 Глава12.Дополнительныетемы

12.7. Сжатие источника Сжатие источника – это метод, который уменьшает количество битов, необходимых для кодирования файла данных. Один из часто используемых методов основан на алгоритме Лемпеля–Зива. Чтобы понять, как работает этот алгоритм, представьте, что вы хотите сжать книгу (уменьшить объем текста). По мере чтения книги вы составляете список предложений из этой книги, скажем, длиной не более десяти слов. Далее вы заменяете предложение указателем на это предложение в вашем списке. В конце концов может получиться так, что вы будете использовать в основном указатели. Идея заключается в том, что указатели занимают меньше бит, чем предложения, на которые они указывают. Эффективность схемы зависит от избыточности текста. Чтобы оценить это, рассмотрим использование этого же метода для сжатия двоичного файла. Предположим, что вы храните список строк длиной 20 бит. Если все эти строки встречаются в файле, то вам нужны 20-битные указатели, чтобы их идентифицировать. В результате вы заменяете строку из 20 бит 20-битным указателем, что не приводит ни к какому сжатию. Теперь предположим, что избыточность достаточно велика, так что вам нужно только 8 бит для кодирования 28 20-битных строк, которые появляются в файле. В этом случае каждая 20-битная строка заменяется 8-битным указателем, что позволяет достичь значительного сжатия. Этот метод эффективен для сжатия двоичных строк в файлах с избыточностью, таких как, например, текст. Для видео- и аудиопотоков используются другие методы сжатия, которые используют специфические особенности таких файлов.

12.8. SDN и NFV Программно­определяемые сети (Software Defined Networking, SDN) и виртуализация сетевых функций (Network Function Virtualization, NFV) – две новые технологии, которые вызвали большой интерес как в научных кругах, так и в промышленности. Контроль расходов и эксплуатационная гибкость – вот две ключевые движущие силы этих технологий. SDN отделяет плоскость данных сети, в которой пересылаются данные конечного пользователя, от плоскости управления сетью, где определяются правила пересылки данных. В этой парадигме плоскость данных сети использует простые аппаратные блоки и каналы для пересылки данных конечного пользователя в соответствии с инструкциями, которые они получают извне. Такие простые аппаратные блоки называются «bare-metal boxes» (или «пустые машины»). С другой стороны, плоскость управления сетью в этой парадигме является централизованной. Узел сетевого контроллера обменивается информацией с простыми

12.8.SDNиNFV  245 блоками в плоскости данных, чтобы поддерживать актуальным свое представление о топологии сети, и предоставляет этим блокам правила переадресации данных, которые были выведены алгоритмами, работающими в приложениях, привязанных к контроллеру. Простота плоскости данных сети и централизованной плоскости управления снижает капитальные и эксплуатационные расходы. Первоначально основной областью применения SDN были центры обработки данных, например объединение большого количества серверов в центре обработки данных Google. Впоследствии поставщики услуг, такие как AT&T и Verizon, также заинтересовались развитием своих сетей с помощью технологии SDN. Поскольку размер сети, которой должен управлять контроллер SDN, становится очень большим, то одному контроллеру слишком сложно управлять всеми узлами в сети. Это приводит к идее создания набора распределенных контроллеров, каждый из которых отвечает за свое подмножество узлов сети, но при этом знает, как другие контроллеры представляют сеть, и действует согласованно с ними, что создает впечатление «централизованного» контроллера. В настоящее время существует ряд инициатив по развитию SDN. Все они находятся на различных стадиях реализации и построены на ключевых концепциях, о которых мы говорили выше. Далее в этом разделе мы рассмотрим архитектуру сетей SDN. NFV реализует широкий спектр сетевых функций (NF), таких как пересылка пакетов, файервол (межсетевой экран), обнаружение вторжений и т. д., на серверах общего назначения, которые могут быть расположены в «облаке», т. е. в центре обработки данных, где расположен большой пул серверов. Для обозначения выделенного сетевого устройства, которое реализует одну из таких функций, часто используется термин «middlebox» (промежуточная машина). Для виртуализации сетевых функций необходимо найти ответы на следующие вопросы: какое количество экземпляров NF создавать (как первоначально, так и динамически), какие серверы использовать для этих экземпляров, как выполнять балансировку нагрузки между этими экземплярами, как обеспечить отказоустойчивость, как контролировать и обеспечивать их производительность и т. д. Полезно иметь общий набор решений (фреймворк), который дает ответы на подобные вопросы. Ниже мы рассмотрим один из фреймворков под названием E2, от выражения «Elastic Edge» (эластичный край). Более развитый взгляд на SDN заключается в том, чтобы рассматривать его как средство не только управления узлами пересылки пакетов, но и всеми VNF.

12.8.1. Архитектура SDN На рис. 12.7 показана базовая архитектура SDN с одним контроллером. SDN-контроллер взаимодействует с приложениями SDN и сетевыми

246

 Глава12.Дополнительныетемы

элементами через свои северные и южные интерфейсы соответственно. Через южные интерфейсы контроллер получает топологию сети и ее текущее состояние. Приложения SDN на основе информации, полученной от контроллера (например, о топологии сети), вырабатывают рекомендации для сети (например, пути маршрутизации) и передают их контроллеру. Контроллер в свою очередь отправляет соответствующую информацию из этих рекомендаций сетевым элементам через южные интерфейсы (например, для обновления их таблиц маршрутизации). OpenFlow представляет собой один из протоколов, применяемых для южных интерфейсов. Теперь мы можем видеть, что парадигма SDN передает интеллектуальное принятие решений от обычных сетевых элементов приложениям SDN. Именно это является причиной ожидаемого снижения капитальных и эксплуатационных расходов. Также разумно ожидать, что относительная сложность в изменении поведения сети будет ниже в парадигме SDN, поскольку это может быть сделано просто путем изменения алгоритмов, встроенных в приложения SDN. Приложение SDN

Приложение SDN Северные интерфейсы

Контроллер SDN

Южные интерфейсы Элемент сети

Элемент сети

Рис. 12.7. Архитектура SDN

12.8.2. Новые услуги, предоставляемые SDN SDN позволяет создавать новые услуги без существенных изменений в архитектуре сети. Примеры таких инновационных услуг включают поддержку соединения с предписанными гарантиями производительности, надежности и/ или безопасности. Чтобы проиллюстрировать основную идею, давайте рассмотрим гарантии производительности в терминах скорости и предельной задержки передачи пакетов. Один из способов поддержки такой услуги в рамках SDN заключается в следующем. Когда запрос на подключение поступает на узел доступа, к контроллеру SDN обращаются за поиском маршрута, реализующего запрошенные гарантии производительности. С помощью SDN-приложения контроллер находит тег с

12.8.SDNиNFV  247 указанием маршрута, который затем будет использоваться в заголовке каждого пакета соединения, а также настраивает узлы вдоль предполагаемого маршрута для достижения желаемой маршрутизации. Для определения маршрута SDN-приложение может учитывать уровень использования каждого промежуточного соединения. Он может быть получен либо путем периодических измерений, либо путем вычислений после каждого назначения маршрута. В последнем случае потребуется определение активности на основе времени гарантированного (возобновляемого) соединения на его входном узле. Мы также отмечаем, что гарантии производительности потребовали бы от входящего узла убедиться в том, что соединение не предлагает доступ к трафику с требуемой скоростью на основе простого алгоритма leaky bucket. Альтернативная стратегия состоит в том, что на каждом исходящем порту каждого узла могут быть созданы несколько очередей с разными приоритетами, и каждый пакет на основе его тега ставится в очередь с соответствующим уровнем приоритета. Для повышения надежности может быть использован аналогичный подход, при котором SDN-контроллер дает указание сети продублировать пакеты данного соединения на входящем узле, направить их двумя независимыми путями и, наконец, удалить одну из копий пакета на выходном узле, если обе дойдут до него. Для повышения безопасности входные и выходные узлы могут быть снабжены контроллером SDN ключами шифрования и дешифрования для данного соединения. Зашифрованные пакеты транспортируются по сети, таким образом защищая инкапсулированные данные от любого нарушения при прохождении через незащищенные участки сети. Конфигурирование и управление облачными ресурсами, используемыми для NFV, также можно рассматривать как потенциальное применение парадигмы SDN.

Отложенная услуга Ниже мы покажем, как благодаря парадигме SDN становятся возможными новые услуги, требующие значительного анализа, измерений и контроля. Мы следуем подходу, представленному в [68]. Сети рассчитываются таким образом, чтобы в пиковые периоды предоставлять услуги с небольшими задержками и высокой пропускной способностью. Из-за значительной разницы в нагрузке сети между пиковыми и непиковыми периодами, а также требований устойчивой производительности в условиях всплесков трафика и различных типов сетевых сбоев размеры сети значительно больше необходимых при средней нагрузке на сеть. Эта дополнительная пропускная способность может быть использована для поддержки нового класса трафика, который с некоторыми гарантиями может выдерживать более высокие сквозные задержки. Мы называем этот класс трафиком с возможностью

248

 Глава12.Дополнительныетемы

отсрочки (deferrable traffic). Скоростью входа в сеть для отложенного трафика можно управлять в реальном времени с помощью SDN-системы. Контроллер SDN может получить данные о текущей загрузке сети с помощью обычного трафика, не подлежащего отсрочке. Эти измерения могут быть использованы приложением SDN для оценки того, сколько отложенного трафика может быть допущено в сеть, сохраняя при этом с высокой вероятностью соответствующие гарантии задержки. Ниже мы обсудим один из возможных способов получения такой оценки. Мы предполагаем, что на каждом канале трафик без отсрочки обрабатывается с более высоким приоритетом, чтобы обеспечить для него максимально прозрачный канал в присутствии отложенного трафика. Рассмотрим магистральное соединение между двумя узлами. Предположим, что каждое соединение имеет одну и ту же пропускную способность, ограниченную соответствующей скоростью канала доступа (которая в данном обсуждении предполагается одинаковой для всех соединений), а пропускная способность C магистральной линии связи выражается в единицах количества соединений, которые она может поддерживать. Мы рассматриваем предоставление отложенной услуги при нормализованной пропускной способности D, т. е. пропускной способности, нормализованной по общей скорости канала доступа. Учитывая целевую вероятность того, что задержка отложенного трафика будет оставаться ниже заданного значения T, насколько большое значение D может допустить сеть? Обратите внимание, что откладываемый трафик будет иметь задержку меньше T, если общий отложенный трафик, обслуживаемый в течение T, будет не менее DT. Здесь мы предполагаем, что отложенный трафик обслуживается после обслуживания трафика, не подлежащего отсрочке, по принципу «первый пришел – первым обслужен». Обозначив количество активных соединений без отложенного трафика через X𝜏, мы можем выразить целевую вероятность следующим образом: t +T

t +T

1 P��+T(C – X𝜏)d𝜏 ≥ DT� = 1 – P �—�X𝜏d𝜏 > C – D�. T t t

(12.1)

Чтобы эта вероятность была достаточно большой, скажем 99 %, контроллер SDN ограничивает объем отложенного трафика. Ситуация показана на рис. 12.8. Для того чтобы оценить интересующую нас вероятность, удобно сначала оценить вероятность «отказа»: T

1 PA,T := P �—�X𝜏d𝜏 > A�. T0

(12.2)

12.8.SDNиNFV  249 Площадь ≥ DT? Использование канала

C

Номинальное использование (не откладываемые потоки) 0

t

Время

t+T

Рис. 12.8. Оставшаяся пропускная способность для откладываемого сервиса

Используя теорию больших отклонений, мы можем вывести PA,T = e–T I(A)+o(T),

(12.3)

где функция I(·) называется функцией скорости больших отклонений. Как обсуждалось в [68], используя статистику X𝜏, основанную на измерениях, можно оценить эту вероятность «отказа» и впоследствии определить, насколько большим может быть D, сохраняя прозрачность канала для трафика, не подлежащего отсрочке, и в то же время удовлетворяя требованиям задержки откладываемого трафика. В [68] также показано, что базовый подход, описанный выше, может быть распространен на общую сеть, выходящую за рамки простой одноканальной сети, рассмотренной выше. В данной работе также анализируется сценарий, когда промежуточные узлы на маршруте для откладываемого соединения могут кешировать свой трафик, чтобы дождаться подходящего момента для пересылки его в следующем шаге.

12.8.3. Сеть, определяемая знаниями Архитектура SDN, показанная на рис. 12.7, представляет собой естественную платформу для реализации процесса принятия решений на основе машинного обучения. Этого можно достичь, используя приложения SDN, которые способны к обучению. Такие приложения могут проходить обучение с учителем, т. е. использовать существующие данные для обучения модели, которая может оценить интересующую переменную (или переменные), исходя из новых данных. Источником данных для обучения с учителем обычно служат результаты прошлых измерений показателей сети. Термин «сеть, определяемая знаниями» (Knowledge-Defined Networking, KDN) используется в [22] для обозначения архитектуры SDN, оснащенной приложениями, способными к обучению. Примерами использования обучающих данных являются линейная регрессия, нейронные сети и метод опорных векторов. Од-

250

 Глава12.Дополнительныетемы

ним из простых примеров применения KDN является прогнозирование объема трафика в течение следующего часа с помощью конечной модели, полученной после этапа обучения. Можно использовать обучающие примеры с аналогичным временем суток, днями недели и неделями года. Если модель способна предсказать нагрузку трафика с достаточной точностью, можно изменить конфигурацию сети упреждающим образом. В [7] есть подборка хороших лекций с подробным объяснением основных методов машинного обучения.

12.8.4. Фреймворк управления для NFV В этом разделе мы рассмотрим концепцию Elastic Edge (E2) исследовательской группы Беркли (см. [24]). Для сетевых функций, реализованных на типовых серверах с использованием программных конструкций, таких как виртуальные машины или контейнеры, существуют общие задачи, необходимые для управления каждой реализацией виртуализированных сетевых функций (VNF). Задачи управления включают размещение (на каком сервере запускается данный VNF), масштабирование (стратегия масштабирования программных ресурсов, выделенных для VNF, по мере изменения нагрузки), композицию (порядок VNF для определенного класса трафика), отказоустойчивость (стратегия обеспечения отказоустойчивости VNF) и управление QoS (стратегия обеспечения того, чтобы каждый VNF мгновенно выполнял свои функции в соответствии с ожидаемым соглашением об уровне обслуживания). Конечно, можно реализовать такие задачи управления индивидуально для каждой VNF. Однако это было бы обременительно для разработчиков VNF, возможны перекрестное взаимовлияние (с задачами для других VNF) и неэффективная реализация. Следовательно, желательно иметь общую структуру, которая может решать все задачи управления для всех VNF. Грубо говоря, это можно сравнить с наличием всеобъемлющей операционной системы для общих задач управления VNF. Ниже мы покажем простой метод первоначального размещения VNF на доступных серверах. Задача состоит в том, чтобы распределить VNF по ним так, чтобы нагрузка на каждый сервер была в пределах его вычислительной мощности, а общий трафик между серверами был минимизирован. Поскольку межсерверный трафик влечет за собой более высокие штрафы за задержку, чем внутрисерверный трафик, желательно его минимизировать. Эту проблему можно рассматривать как проблему разбиения графа, которая, как известно, является NP-сложной комбинаторной оптимизационной задачей. Метод, показанный ниже, основан на эвристической процедуре Кернигана–Лина разбиения графа. Хотя эта эвристика может привести к локально оптимальному решению, которое зависит от начального размещения, она хорошо подходит для практических целей.

12.8.SDNиNFV  251 FA,1

10

20

FB,1

FC,1

FA,2

Требование 1 FA

20

FB,2

40

FD,2

Требование 2 30

FB

20

FC Совокупное требование

40 FD

40

FB 30 FA

20

FD

30

FB 40

FC

Сервер 1 Сервер 2 Начальное размещение

FD Сервер 1

20

FA FC Сервер 2

Окончательное размещение (1)

FC FA

20 30

FD 40 FB

Сервер 1 Сервер 2 Окончательное размещение (2)

L(FA,1) = 40, L(FB,1) = 20, L(FC,1) = 80, L(FA,2) = 80, L(FB,2) = 40, L(FD,2) = 70, L(FA) = 120, L(FB) = 60, L(FC) = 80, L(FD) = 70 Вычислительная мощность = 200 для каждого сервера

Рис. 12.9. Размещение VNF с использованием эвристики Кернигана–Лина

Как показано в примере на рис. 12.9, у нас есть два требования на обслуживание. Запрос на обслуживание – это запрос на поддержку определенного класса трафика. Каждый запрос на обслуживание задается линейным графиком, показывающим последовательность используемых VNF, соответствующую ожидаемую нагрузку на обработку, а также требуемую скорость передачи данных между парой VNF. Например, на рис. 12.9 показано, что запрос 1 требует VNF в таком порядке: FA, FB и FC, ожидаемая нагрузка на обработку составляет 40, 20 и 80 единиц соответственно и ожидаемая скорость передачи данных – 10 и 20 единиц от FA к FB и от FB к FC соответственно. Граф совокупного запроса показывает сумму требований с точки зрения ожидаемой нагрузки на обработку для VNF и ожидаемой скорости передачи данных между ними. В данном примере общая вычислительная мощность каждого сервера составляет 200 единиц. Первоначальное размещение, показанное на рисунке, является произвольным размещением, которое удовлетворяет ограничениям на вычислительную мощность сервера. Возможность такого начального размещения предполагается как вариант для данного примера. Начиная с первоначального размещения, эвристическая процедура Кернигана–Лина работает следующим образом. В каждой итерации рассмотрим VNF, размещенную на одном из серверов (скажем,

252

 Глава12.Дополнительныетемы

на Сервере 1), а затем рассмотрим возможность либо просто переместить эту VNF на другой сервер, либо поменять эту VNF с другой VNF на другом сервере. Перемещение или замена будут правильными, если ограничения по мощности процессора будут по-прежнему удовлетворяться и после изменения. Рассмотрим все возможные допустимые перемещения и замены. Для данной итерации остановимся на том изменении, которое приводит к наименьшей общей межсерверной скорости передачи данных. В следующей итерации рассмотрим другую VNF на Сервере 1 и повторим процедуру. В конце этих итераций мы находим два эквивалентных конечных размещения, как показано на рисунке. Эту эвристическую процедуру можно обобщить на сценарии с более чем двумя серверами или сценарии, в котором агрегированная VNF не может быть размещена на одном сервере.

12.9. Интернет вещей (IoT) Система IoT расширяет круг пользователей, использующих интернет, и включает в него машины, обладающие определенными способностями к автономному функционированию, например бытовые и промышленные машины, носимые устройства, автомобили, датчики и т. д. Следовательно, сенсорные сети и межмашинная связь (Machine-to-Machine, M2M) тоже относятся к IoT. Сочетание последних достижений в области энергоэффективности и миниатюризации необходимого оборудования в конечных точках IoT, в сетевых технологиях (особенно беспроводных), в технологиях вычислений и хранения данных в серверах является ключевым фактором, способствующим развитию системы IoT. Рост числа конечных точек IoT создает множество проблем. К ним относятся ограничения адресации для конечных точек, пропускная способность каналов связи и коммутационная способность сетевых узлов, QoS и безопасность. Поскольку конечные точки IoT могут иметь ограниченную дальность действия по энергетическим соображениям, а также ограничения доступа к сети из-за помех от других подобных устройств, управление энергией и архитектура доступа к сети (включая алгоритмы доступа и схемы маршрутизации) являются характерными важными задачами для системы IoT.

12.9.1. Парадигмы удаленных вычислений и хранения данных • Облачные (Cloud) вычисления: использование для обработки и хранения данных банка удаленных серверов (называемого центром обработки данных). Это первая парадигма, которая заставляет пересмотреть общепринятую до сих пор практику использования для этих целей локальных серверов. Как правило, удаленные сер-

12.10.Резюме  253 веры предоставляют очень мощную вычислительную платформу с большой емкостью хранения данных. • Туманные вычисления (fog computing): этот термин был введен компанией Cisco для обозначения парадигмы, распространяющей облачные вычисления до границы сети. Серверы, которые могут быть расположены вместе с пограничными узлами, такими как маршрутизаторы, обеспечивают распределенную среду для удовлетворения потребностей в вычислениях и хранении данных конечных точек IoT. Эта парадигма облегчает постоянно растущие требования к центрам обработки данных и может обеспечить более высокую производительность за счет отсутствия необходимости передачи данных в централизованные облачные центры. • «Легкотуманные» вычисления (mist computing): этот термин относится к парадигме, которая дополнительно распределяет вычислительные функции и функции хранения данных ближе к конечным точкам IoT путем добавления необходимых возможностей в пограничные узлы первого звена (first-touch edge nodes), такие как шлюзы и базовые станции. Основная идея заключается в стратегии использования Mist-, Fog- и Cloud-платформ в иерархическом порядке, т. е. в удовлетворении потребностей в вычислениях и хранении данных настолько далеко от конечных узлов, насколько это необходимо для эффективной реализации с возможностью обеспечения хорошей производительности конечных точек IoT. Для преодоления проблемы масштабируемости в мобильных сетях согласно архитектуре EdgeIoT необходимо, чтобы каждая базовая станция была подключена к Mist- и/или Fog-узлам для обработки данных на мобильной границе. Кроме того, данная система требует наличия сотового ядра на базе SDN для пересылки потоков данных между Mistи Fog-узлами в соответствии с условиями распределения нагрузки. Основные идеи, лежащие в основе SDN, описаны в соответствующем разделе в начале этой главы.

12.10. Резюме В этой главе рассмотрены некоторые из множества дополнительных тем, связанных с сетями. • Оверлейная сеть строится поверх другой сети. Примерами могут служить одноранговые сети, такие как BitTorrent, и сети распространения контента, такие как Akamai. Две основные проблемы – это поиск ресурсов и маршрутизация.

 Глава12.Дополнительныетемы

254

• Беспроводная сенсорная сеть – это совокупность узлов, оснащенных датчиками и передатчиками. Узлы обмениваются информацией с помощью прямых подключений. Проблемы включают в себя необходимость использования энергосберегающих протоколов, определение местоположения, маршрутизацию и надежность. • Маршрутизаторы в интернете и узлы в сетях прямой связи реализуют протоколы распределенной маршрутизации. Хосты в различных сетях могут реализовывать также различные распределенные алгоритмы. Мы рассмотрели свойства сходимости распределенных приложений, таких как алгоритм Беллмана–Форда, TCP и управление питанием. • Мы обсудили невозможность решения проблемы византийских генералов. • Сжатие исходных данных позволяет экономно хранить и передавать файлы, аудио- и видеопотоки. В главе объясняется алгоритм Лемпеля–Зива для сжатия файлов. • SDN разделяет плоскости данных и управления. SDN и NFV позволяют поставщикам услуг сократить расходы, обеспечивая гибкость внедрения новых услуг экономически эффективно и своевременно. • IoT позволяет машине, даже не находящейся под активным управлением человека, стать конечной точкой интернета. Это создает ряд проблем с масштабируемостью. Для решения этих проблем внедряются иерархические вычислительные парадигмы и парадигмы хранения данных: Cloud-, Fog- и Mist-вычисления.

12.11. Задачи 12.1.

2

Эта задача2 иллюстрирует влияние блокировки начала очереди (Head-of-Line blocking, HOL). Рассмотрим коммутатор 2×2 и предположим, что в очередях на двух его входах всегда имеются пакеты фиксированного размера. Выходные порты, для которых предназначены пакеты, независимо и случайно выбираются из выходных портов 1 и 2 с равными вероятностями. Пусть di (n), i = 1, 2 обозначает место назначения головного пакета входной очереди i в момент времени n. Если головные пакеты в двух входных очередях в этот момент предназначены для разных выходных портов, то они оба передаются; в противном случае один из двух пакетов, выбранный случайным образом, передается, а другой блокируется в своей очереди.

Адаптировано из [96].

12.11.Задачи  255 a) Пусть d(n) обозначает композицию d1(n)d2(n) (т. е. 11, 12, 21 или 22). Заметим, что d(n) является цепью Маркова с дискретным временем (DTMC) с пространством состояний 11, 12, 21, 22. Найдите матрицу вероятностей перехода этой цепи и вычислите ее инвариантное распределение. b) Найдите среднюю пропускную способность этого коммутатора 2×2. 12.2.

В этой задаче3 рассматривается простой планировщик максимального паросочетания (maximal matching scheduler) для коммутатора 2×2 VOQ. Предположим, что пакеты фиксированного размера и что все входные и выходные порты работают с одинаковой скоростью соединения. Время передачи пакета при такой скорости называется слотом. Пусть qij(n) обозначает длину очереди в VOQ(i, j) (виртуальная выходная очередь на входе i для выхода j) в момент времени n. Для n > 0 она совпадает с концом слота n. Процесс поступления в VOQ(i, j) является процессом Бернулли со средним значением 𝜆ij. Процессы прибытия не зависят от очередей и тайм-слотов. Предположим, что 𝜆12 = 0 и что все VOQ изначально пусты. Планировщик работает следующим образом для n ≥ 0. • Если q11(n) > 0 и q22(n) > 0, то пакет из VOQ(1, 1) и пакет из VOQ(2, 2) запланированы. • Если q11(n) > 0 и q22(n) = 0, запланирован пакет от VOQ(1, 1). • Если q11(n) = 0 и q22(n) > 0, запланирован пакет из VOQ(2, 2). • Если q11(n) = 0, q22(n) = 0 и q21(n) > 0, запланирован пакет из VOQ(2, 1). a) Почему это планировщик максимального паросочетания? b) Поясните, почему можно ожидать, что планировщик максимального веса (MaxWeight scheduler) будет более сложным в реализации. c) Учитывая 𝜆11 = 𝜆22 = 0,5, найдите набор значений для 𝜆21, которые может поддерживать этот планировщик. d) Вместо описанного выше планировщика рассмотрите планировщик MaxWeight. Сравните набор поддерживаемых значений 𝜆21 в планировщике MaxWeight с набором значений, который был найден в пункте (c) выше.

12.3. Рассмотрим маршрутизатор 3×3, изображенный на рис. 12.10. Три выходных порта обозначены A, B, C. Время распределено по слотам. Пакеты поступают в три входных буфера в начале каждого 3

Адаптировано из [96].

256

 Глава12.Дополнительныетемы

слота. Каждый пакет имеет метку выходного порта, на который он должен быть направлен. В конце каждого слота маршрутизатор пересылает пакеты в выходные буферы. Пакеты удаляются из выходных буферов со скоростью один пакет за слот. 1 2

A Маршрутизатор

3

B C

Рис. 12.10. Рисунок к задаче 12.3

Пакеты, прибывающие с 1-го по 5-й слоты, имеют метки, указанные ниже. Предположим, что после слота 5 не будет никаких поступлений. • На входном порту 1: A, B, C, A, B. • На порте ввода 2: A, B, C, A, B. • На входном порту 3: A, C, B, A, C. a) Вычислите время, за которое все пакеты покинут систему, если они поступили на вход маршрутизатора в указанном порядке. Поясните свои рассуждения. Разрешите все неоднозначности, используя порядок приоритетов 1 > 2 > 3, (например, если два пакета хотят попасть на один и тот же выходной порт, направьте пакет из порта 1 раньше пакета из порта 2). b) Повторите часть (a) для случая, когда ускорение равно 2 (т. е. структура может направить не более двух пакетов на один и тот же выходной порт за один тайм-слот, принимая при этом не более одного пакета от каждого входного порта). c) Теперь предположим, что в каждом входном порту для каждого выходного порта есть виртуальные выходные буферы (VOB), а в сети используется планировщик MaxWeight. Вычислите время, необходимое для того, чтобы все пакеты покинули систему.

12.12. Ссылки Коммутаторы обсуждаются в [103]. Планирование работы матричных коммутаторов анализируется в [67], [65] и [96]. Сеть расширенных деревьев представлена в [9]. Обзор оверлейных сетей приведен в [11]. Распределенные алгоритмы анализируются в [62]. Смотрите также последние результаты в [18], а в [16] представлен хороший обзор неко-

12.12.Ссылки  257 торых ключевых вопросов. Симпатичную анимацию алгоритма Лемпеля–Зива можно найти в [12]. Алгоритм распределенного управления мощностью взят из [33]. Обсуждение использования архитектуры SDN для предприятий и сетей поставщиков услуг см. в [64] и [24]. Обзор OpenFlow см. в  66]. В [79] содержится более подробная информация о фреймворке E2. В [19] рассмотрены Fog-вычисления как парадигма, которая хорошо подходит для решения проблем, связанных с IoT. Фреймворк EdgeIot предложен в [99].

Об авторах Жан Вальран получил докторскую степень по философии на факультете электротехники и электроники в Калифорнийском университете в Беркли и работает на этом факультете с 1982 г. Он является автором книг: An Introduction to Queueing Networks («Введение в сети массового обслуживания») (Prentice Hall, 1988), Communication Networks: A First Course («Коммуникационные сети: Первый курс») (2-е изд., McGraw-Hill, 1998) и Probability in Electrical Engineering and Computer Science («Вероятность в электротехнике и компьютерных науках») (Amazon, 2014), а также соавтором книг: High­Performance Communication Networks («Высокопроизводительные сети связи») (2-е изд., Morgan Kaufman, 2000), Scheduling and Congestion Control for Communication and Processing Networks («Планирование и управление перегрузками в коммуникационных сетях и сетях обработки данных») (Morgan & Claypool, 2010) и Sharing Network Resour­ ces («Совместное использование сетей связи») (Morgan & Claypool, 2014). В сферу его научных интересов входят стохастические процессы, теория очередей, коммуникационные сети, теория игр и экономика интернета. Профессор Вальран является членом Бельгийско-американского образовательного фонда и IEEE. Кроме того, он является лауреатом премии Ланчестера, премии Стивена О. Райса, премии IEEE Kobayashi и награды ACM SIGMETRICS за достижения. Шьям Парех получил докторскую степень по философии на факультете электротехники и электроники в Калифорнийском университете в Беркли в 1986 г. В настоящее время он является старшим инженером-исследователем в AT&T Labs Research и адъюнкт-профессором на факультете EECS в Калифорнийском университете в Беркли. Ранее он работал в Bell Labs, TeraBlaze и Tidal Networks. Он был сопредседателем рабочей группы по приложениям (AWG) Форума WiMAX в 2008 году. Является соредактором книги Quality of Service Architectures for Wireless Networks («Архитектура качества обслуживания для беспроводных сетей») (Information Science Reference, 2010). В настоящее время обладатель 10 патентов США. В сферу его научных интересов входят архитектура, моделирование и анализ как проводных, так и беспроводных сетей связи.

Библиография [1] 3GPP Specificaton Series 36. http://www.3gpp.org/ftp/Specs/html­ info/36­seri es.htm. [2] 3GPP TR 38.913, Study on Scenarios and Requirements for Next Generation Access Technologies, 2016. [3] 3GPP TS 23.203 V9.0.0, Policy and Charging Control Architecture (Release 9), March 2009. [4] 3GPP TS 36.211 V8.6.0, Physical Channels and Modulation (Release 8), March 2009. [5] 3GPP TS 36.300 V8.8.0, Overall Description, Stage 2 (Release 8), March 2009. [6] N. Abramson and F. F. Kuo (Eds.), Computer Communication Networks, Prentice-Hall, 1973. [7] Y. Abu-Mostafa, Learning from Data, http://work.caltech.edu/telecourse. html, 2012. [8] R. Ahlswede, N. Cai, S. R. Li, and R. W. Yeung, Network information flow, IEEE Transactions on Information Theory, 2000. DOI: 10.1109/18.850663. [9] M. Al-Fares, A. Loukissas, and A. Vahdat, A scalable, commodity data center network architecture, Sigcomm, 2008. DOI: 10.1145/1402958.1402967. [10] M. Allman et al., TCP Congestion Control, RFC 2581, 1999. http://www. ietf.org/r fc/rfc2581.txt DOI: 10.17487/rfc2581. [11] D. G. Andersen, Overlay networks: Networking on top of the network, Computing Reviews, 2004. http://www.reviews.com/hottopic/hottopic_ essay_01.cfm. [12] Animation of the Lempel-Ziv algorithm. Data-Compression.com. http://www.data­compression.com/lempelziv.html. [13] V. Banos-Gonzalez et al., Throughput and range characterization of IEEE 802.11ah, arXiv: 1604.08625v1 [cs.NI], April 28, 2016. DOI: 10.1109/tla.2017.8015044. [14] P. Baran, On distributed communications networks, IEEE Transactions on Communications Systems, March 1964. http://ieeexplore.ieee.org/ search/wrapper.jsp?arnumber=1088883. DOI: 10.1109/tcom.1964.1088883. [15] R. Bellman, On a routing problem, Quarterly of Applied Mathematics, 16(1), 87–90, 1958. DOI: 10.1090/qam/102435.

260

 Глава12.Библиография

[16] D. P. Bertsekas and J. N. Tsitsiklis, Some aspects of parallel and distributed iterative algorithms—a Survey, IFAC/IMACS Symposium on Distributed Intelligence Systems, 1988. http://www.mit.edu:8001/ people/dimitrib/Some_Aspec. DOI: 10.1016/0005­ 1098(91)90003­k. [17] G. Bianchi, Performance analysis of the IEEE 802.11 distributed coordination function, IEEE Journal on Selected Areas in Communications, 18(3), March 2000. DOI: 10.1109/49.840210. [18] V. D. Blondel, J. M. Hendrickx, A. Olshevsky, and J. N. Tsitsiklis, Convergence in multiagent coordination, consensus, and flocking, Proc. of the Joint 44th IEEE Conference on Decision and Control and European Control Conference, 2005. DOI: 10.1109/cdc.2005.1582620. [19] F. Bonomi, R. Milito, P. Natarajan, and J. Zhu, Fog computing: A platform for internet of things and analytics, Big Data and Internet of Things: A Roadmap for Smart Environments, Springer, 2014. DOI: 10.1007/978­3­319­05029­4_7. [20] S. Boyd and L. Vandenberghe, Convex Optimization, Cambridge University Press, 2004. DOI: 10.1017/cbo9780511804441. [21] R. Braden (Ed.), Requirements for Internet Hosts—Communication Layers, RFC 1122. http://tools.ietf.org/html/rfc1122. DOI: 10.17487/ rfc1122. [22] A. Cabellos et al., Knowledge-defined networking, arXiv: 1606.06222v2, [cs.NI], June 2016. DOI: 10.1145/3138808.3138810. [23] D. Camps-Mur et al., Device-to-device communications with Wi-Fi direct: Overview and experimentation, IEEE Wireless Communications, 20(3), 96–104, 2013. DOI: 10.1109/mwc.2013.6549288. [24] M. Casado et al., Fabric: A retrospective in evolving SDN, ACM HotSDN, 2012. DOI: 10.1145/2342441.2342459. [25] D.-M. Chiu and R. Jain, Networks with a connectionless network layer; part III: Analysis of the increase and decrease algorithms, Technical Report DEC-TR-509, Digital Equipment Corporation, Stanford, CA, August 1987. [26] D. Chiu and R. Jain, Analysis of the increase/decrease algorithms for congestion avoidance in computer networks, Journal of Computer Networks and ISDN, 17(1), 1–14, June 1989. http://www.cse.wustl. edu/~jain/papers/ftp/cong_av.pdf. DOI: 10.1016/0169­7552(89)90019­6. [27] T. Clausen et al., Optimized Link State Routing Protocol (OLSR), RFC 3626, 2003. http://www.ietf.org/rfc/rfc3626.txt. DOI: 10.17487/rfc3626. [28] G. Di Caro and M. Dorigo, AntNet: Distributed stigmergetic control for communications networks, Journal of Artificial Intelligence Research, 1998.

12.12.Ссылки  261 [29] E. W. Dijkstra, A note on two problems in connexion with graphs, Numerische Mathematik, 1, S. 269–271, 1959. DOI: 10.1007/bf01386390. [30] R. Droms, Dynamic Host Configuration Protocol, RFC 2131, 1997. http://www.ietf.org/rfc/rfc2131.txt. DOI: 10.17487/rfc2131. [31] H. Ekstrom, QoS control in the 3GPP evolved packet system, IEEE Communications Magazine, 47(2), February 2009. DOI: 10.1109/ mcom.2009.4785383. [32] L. R. Ford and D. R. Fulkerson, Maximal flow through a network, Canadian Journal of Mathematics, 8, 399-404, 1956. DOI: 10.4153/cjm­ 1956­045­5. [33] G. Foschini and Z. Miljanic, A simple distributed autonomous power control algorithm and its convergence, IEEE Transactions on Vehicular Technology, 1993. DOI: 10.1109/25.260747. [34] V. Fuller, T. Li, J. Yu, and K. Varadhan, Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy, RFC 1519, 1993. http://www.ietf.org/rfc/rfc1519.txt. DOI: 10.17487/rfc1519. [35] M. Gast, 802.11 Wireless Networks: The Definitive Guide, 2nd ed., O’Reilly, 2005. [36] R. Gibbens and F. P. Kelly, Measurement-based connection admission control, 5th International Teletraffic Congress, June 1997. [37] T. G. Griffin and G. Wilfong, An analysis of BGP convergence properties, SIGCOMM’99. DOI: 10.1145/316194.316231. [38] P. Hoel, S. Port, and C. Stone, Introduction to Probability Theory, Houghton-Miffin Harcourt, 1977. [39] P. Hoel, S. Port, and C. Stone, Introduction to Stochastic Processes, Houghton-Miffin Harcourt, 1972. [40] G. Huston et al., Textual Representation of Autonomous System (AS) Numbers, RFC 5396, 2008. http://www.ietf.org/rfc/rfc5396.txt. DOI: 10.17487/rfc5396. [41] IEEE 802.11. http://en.wikipedia.org/wiki/IEEE_802.11%41. [42] IEEE 802.11-1999 Specification. DOI: 10.1016/s1353­4858(00)80001­x. [43] IEEE 802.11a-1999 Specification. [44] IEEE 802.11ac-2013 Specification. [45] IEEE 802.11ad-2012 Specification. [46] IEEE 802.11b-1999 Specification. [47] IEEE 802.11g-2003 Specification. [48] IEEE 802.11n-2009 Specification.

262

 Глава12.Библиография

[49] Van Jacobson, Congestion avoidance and control, SIGCOMM’88. Later rewritten with M. Karels. http://ee.lbl.gov/papers/congavoid.pdf. DOI: 10.1145/52324.52356. [50] Y. Ji et al., Average rate updating mechanism in proportional fair scheduler for HDR, IEEE Globecom, 3464–3466, 2004. DOI: 10.1109/ glocom.2004.1379010. [51] L. Jiang and J. Walrand, A distributed CSMA algorithm for throughput and utility maximization in wireless networks, Allerton, 2008. DOI: 10.1109/allerton.2008.4797741. [52] B. Kahn and V. Cerf, A protocol for packet network intercommunication, IEEE Transactions of Communications Technology, May 1974. DOI: 10.1109/TCOM.1974.1092259. [53] S. Katti, H. Rahul, W. Hu, D. Katabi, M. Medard, and J. Crowcroft, XORs in the air: Practical wireless network coding, SIGCOMM’06, Pisa, Italy, September 11–15, 2006. DOI: 10.1109/tnet.2008.923722. [54] F. P. Kelly, A. Maulloo, and D. Tan, Rate control for communication networks: Shadow prices, proportional fairness and stability, Journal of the Operational Research Society, 49(3), 237–252, 1998. DOI: 10.1038/sj.jors.2600523. [55] E. Khorov et al., A survey of IEEE 802.11ah: An enabling networking technology for smart cities, Computer Communications, 2014. DOI: 10.1016/j.comcom.2014.08.008. [56] L. Kleinrock, Message Delay in Communication Nets with Storage, Ph.D. thesis, Cambridge, Massachusetts Institute of Technology, 1964. http://dspace.mit.edu/bitstre am/handle/1721.1/11562/33840535.pdf. [57] L. Kleinrock and R. Muntz, Multilevel processor-sharing queueing models for timeshared systems, Proc. of the 6th International Teletraffic Congress, Munich, Germany, 341/1–341/8, September 1970. [58] I. Koutsopoulos and L. Tassiulas, Channel state-adaptive techniques for throughput enhancement in wireless broadband networks, IEEE Infocom, 2, 757–766, April 2001. DOI: 10.1109/infcom.2001.916266. [59] R. Liao et al., MU-MIMO MAC protocols for wireless local area networks: A survey, arXiv: 1404.1622v2 [cs.NI], November 28, 2014. DOI: 10.1109/comst.2014.2377373. [60] J. D. C Little, A proof of the Queueing Formula L D лW , Operations Research, 9, 383–387, 1961. DOI: 10.1287/opre.9.3.383. [61] S. H. Low and D. E. Lapsley, Optimization flow control, I: Basic algorithm and convergence, IEEE/ACM Transactions on Networking, 1999. DOI: 10.1109/90.811451. [62] N. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996.

12.12.Ссылки  263 [63] Max-Flow Algorithms. https://en.wikipedia.org/wiki/Maximum_flow_ problem%63. [64] N. McKeown, Software-defined networking, IEEE Infocom, April 2009. [65] N. McKeown, The iSLIP scheduling algorithm for input-queued switches, IEEE/ACM Transactions on Networking (TON) archive, 7(2), 188–201, April 1999. DOI: 10.1109/90.769767. [66] N. McKeown et al., OpenFlow: Enabling innovation in campus networks, ACM Sigcomm, April 2008. DOI: 10.1145/1355734.1355746. [67] N. McKeown, A. Mekkittikul, V. Anantharam, and J. Walrand, Achieving 100% through- put in an input-queued switch, IEEE Transactions on Communications, 47(8), 1260–1267, 1999. DOI: 10.1109/26.780463. [68] P. Maillé, S. Parekh, and J. Walrand, Overlaying delay-tolerant service using SDN, Networking, 2016. DOI: 10.1109/ifipnetworking.2016.7497227. [69] M. Mathis et al., TCP Selective Acknowledgment Options, RFC 2018, 1996. http://www.ietf.org/rfc/rfc2018.txt. DOI: 10.17487/rfc2018. [70] R. M. Metcalfe and D. R. Boggs, Ethernet: Distributed packet switching for local computer networks, Xerox Parc Report CSL757, May 1975, reprinted February 1980. A version of this paper appeared in Communications of the ACM, 19(7), July 1976. http://ethernethistory.typepad. com/papers/EthernetPaper.pdf. DOI: 10.1145/357980.358015. [71] J. Mo and J. Walrand, Fair end-to-end window-based congestion control, IEEE/ACM Transactions on Networking 8(5), 556–567, October 2000. DOI: 10.1109/90.879343. [72] P. Mockapetris, Domain Names—Concepts and Facilities, RFC 1034, 1987. http://www.ietf.org/rfc/rfc1034.txt. DOI: 10.17487/rfc1034. [73] J. Mogul and J. Postel, Internet Standard Subnetting Procedure, RFC 950, 1985. http://www.ietf.org/rfc/rfc950.txt. DOI: 10.17487/rfc0950. [74] A. Molisch, Wireless Communications, 2nd ed., Wiley, 2011. [75] H. Myung, J. Lim, and D. Goodman, Single carrier FDMA for uplink wireless transmission, IEEE Vehicular Technology Magazine, September 2006. DOI: 10.1109/mvt.2006.307304. [76] J. Nagle, On packet switches with infinite storage, IEEE Transactions on Communications, 35(4), April 1987. DOI: 10.1109/tcom.1987.1096782. [77] M. J. Neely, E. Modiano, and C-P. Li, Fairness and optimal stochastic control for heterogeneous networks, Proc. of IEEE Infocom, 2005. DOI: 10.1109/infcom.2005.1498453. [78] W. B. Norton, Internet Service Providers and Peering, 2000. http://www. cs.ucsd.edu/classes/wi01/cse222/papers/norton­isp­draft00.pdf.

264

 Глава12.Библиография

[79] S. Palkar et al., E2: A framework for NFV applications, ACM Symposium on Operating Systems Principles, October 2015. DOI: 10.1145/2815400.2815423. [80] A. K. Parekh and R. G. Gallager, A generalized processor sharing approach to flow control in integrated service networks : The single node case, IEEE/ACM Transactions on Network- ing, 1(3), June 1993. DOI: 10.1109/90.234856. [81] C. Perkins et al., Ad hoc On-Demand Distance Vector (AODV) Routing, RFC 3561, 2003. http://www.ietf.org/rfc/rfc3561.txt. DOI: 10.17487/ rfc3561. [82] D. C. Plummer, An Ethernet Address Resolution Protocol, RFC 826, 1982. http://www.ietf.org/rfc/rfc826.txt. DOI: 10.17487/RFC0826. [83] J. Postel (Ed.), Transmission Control Protocol,’ RFC 793, 1981. http:// www.ietf.org/rfc/rfc0793.txt. DOI: 10.17487/rfc0793. [84] J. Proakis, Digital Communications, McGraw-Hill, 2000. [85] A. Puri and S. Tripakis, Algorithms for routing with multiple constraints, In AIPS’02 Workshop on Planning and Scheduling using Multiple Criteria, 2002. [86] R. Ramaswami and K. N. Sivarajan, Optical Neworks—A Practical Perspective, 2nd ed., Morgan Kauffman, 2000. [87] Recommendation ITU-R M.2083-0, IMT Vision—Framework and Overall Objectives of the Future Development of IMT for 2020 and Beyond, September 2015. [88] J. Saltzer, D. Reed, and D. D. Clark, End-to-end arguments in system design, 2nd Inter- national Conference on Distributed Computing Systems, 509–512, April 1981, ACM Transactions on Computer Systems, 2(4), 277–288, November 1984. DOI: 10.1145/357401.357402. [89] Y. Rekhter et al., A Border Gateway Protocol 4 (BGP-4), RFC 1771, 1995. http://www.ietf.org/rfc/rfc1771.txt. DOI: 10.17487/rfc4271. [90] G. Romano, 3GPP RAN Progress on 5G, 3GPP Presentation, 2016. [91] N. Ruangchaijatupon and J. Yusheng, Simple proportional fairness scheduling for OFDMA frame-based wireless systems, IEEE Wireless Communications and Networking Conference, 1593–97, 2008. DOI: 10.1109/wcnc.2008.285. [92] C. E. Shannon, A mathematical theory of communication, Bell System Technical Journal, 27, 379–423/623–656, 1948. http://cm.bell­labs. com/cm/ms/what/shannonday/shannon1948.pdf. DOI: 10.1002/j.1538­ 7305.1948.tb00917.x. [93] A. Shokrollahi, Raptor codes, IEEE Transactions on Information Theory, 52, 2551–2567, 2006. DOI: 10.1109/tit.2006.874390.

12.12.Ссылки  265 [94] T. Slater, Queuing Theory Tutor. http://www.dcs.ed.ac.uk/home/jeh/Simjava/qu eueing/. [95] R. Srikant, The Mathematics of Internet Congestion Control, Birkhäuser, 2004. DOI: 10.1007/978­0­8176­8216­3. [96] R. Srikant and L. Ying, Communication Networks: An Optimization, Control, and Stochastic Networks Perspective, Cambridge University Press, 2013. [97] I. Stojmenovic, Position based routing in ad hoc networks, IEEE Communications Magazine, 40(7):128–134, 2002. DOI: 10.1109/ mcom.2002.1018018. [98] W. Sun et al., IEEE 802.11ah: A long range 802.11 WLAN at sub 1 GHz, Journal of ICT Standardization, 1, 83–108, 2013. [99] X. Sun and N. Ansari, EdgeIoT: Mobile edge computing for the internet of things, IEEE Communication Magazine, 54(12), December 2016. DOI: 10.1109/mcom.2016.1600492cm. [100] L. Tassiulas and A. Ephremides, Stability properties of constrained queueing systems and scheduling policies for maximum throughput in multihop radio networks, IEEE Transactions on Automatic Control, 37, 1936–1948, 1992. DOI: 10.1109/cdc.1990.204000. [101] D. Tse and P. Viswanath, Fundamentals of Wireless Communication, Cambridge University Press, 2005. DOI: 10.1017/cbo9780511807213. [102] G. Tsirtsis et al., Network Address Translation—Protocol Translation (NAT-PT), RFC 2766, 2000. http://www.ietf.org/rfc/rfc2766.txt. DOI: 10.17487/rfc2766. [103] P. Varaiya and J. Walrand, High-performance Communication Networks, 2nd ed., Morgan Kaufman, 2000. [104] J. Walrand, Probability in Electrical Engineering and Computer Science: An Applicationdriven Course, Amazon, 2014. [105] J. Wannstorm, LTE-Advanced, 3GPP, June 2013. [106] Wi-Fi Direct. http://www.wi­fi.org/discover­wi­fi/wi­fi­direct. [107] H. Zhu and R. Hafez, Scheduling schemes for multimedia service in wireless OFDM systems, IEEE Wireless Communications, 14, 99–105, October 2007. DOI: 10.1109/mwc.2007.4396949.

Предметный указатель A

U

B

А

Aloha с тайм-слотами 67 ARQ 22 Broadcast 57

C

CIDR 21

D

Destination Address 58 DNS 23

E

Ethernet 54 Ethernet на основе сетевого концентратора 56 Ethernet II frame format 57

H

HTTP 24

I

IP-адрес 19

M

MAC-адрес 57 MPLS 19

O

Outstanding packet 31

P

Pull 46 Push 46

S

SNR 29 Source Address 58 Stateless маршрутизатор 41, 42

T

Type 58

URL 23

Автоматическая повторная передача 22 Аддитивность 66 Алгоритм кратчайшего пути 40

Б

Бит четности 21 Бутылочное горлышко 32

В

Вероятность события 65 Виртуальная локальная сеть (VLAN). 60 Виртуальные цепи, 18 Время ожидания 34 Всемирная паутина 23

Г

Герц 28

Д

Датаграмма 19

З

Задержка из-за джиттера 32 Закон Литтла 36 Зоны интернета 23

И

Имя хоста 23 Интервал повтора запросов 55

К

Кадр Ethernet 58 Канал связи 17 Канал цифровой абонентской линии связи (DSL) 29 Коллизия 54 Коммутатор 52 Коммутатор Ethernet 57

Предметныйуказатель  267 Коммутация каналов 18 Коммутация пакетов 18 Коммутируемый Ethernet 59 Контрольная сумма ошибки 18 Коэффициент мультиплексирования 27

М

Маршрутизаторы 17 Маршрутизация с наибольшим совпадением префиксов 21 Многоадресная групповая (Multicast) рассылка 57 Многоадресная передача 46 Модель клиент/сервер 44

Н

Независимые события 66 Неслотовая сеть 63

О

Облачные вычисления 45 Обнаружение столкновений 54 Ограничитель начального кадра 58 Ожидание успеха 69 Определение несущей 54 Отношение сигнал/шум 29 Очередь M/M/1 33 Ошибка передачи 21

П

Пакет 18 Передача anycast 46 Передача unicast 46 Порт 52 Потери при передаче 23 Префикс 20 Пропускная способность передачи 31 Протокол spanning tree 60

Р

Размер окна получателя 31 Рандомизированный множественный доступ 54

С

Сервер DNS 23 Сеть Aloha 53, 62

Система распределения контента 46 Система распространения контента Akamai 46 Система P2P 45 Сквозной принцип, end-to-end principle 41 Скорость канала 28 Слотовая Aloha 62 Схема управления потоком 23 СRС 58

Т

Таблица маршрутизации 19 Таблица пересылки 19 Тайм-слот 55

У

Узкополосный канал 28 Управление перегрузкой, 23 Уровни интернета 43 Усеченное двоичное экспоненциальное откладывание 55 Утилизация канала 33

Ф

Физический уровень Ethernet 58

Х

Хаб 52 Хосты 17

Ч

Частота 28 Чистая Aloha 63

Ш

Шенноновская ёмкость 29 Широковещательный адрес 57 Широкополосность 28 Широкополосный канал 28

Книги издательства «ДМК ПРЕСС» можно купить оптом и в розницу в книготорговой компании «Галактика» (представляет интересы издательств «ДМК ПРЕСС», «СОЛОН ПРЕСС», «КТК Галактика»). Адрес: г. Москва, пр. Андропова, 38; Тел.: +7(499) 782-38-89. Электронная почта: [email protected]. При оформлении заказа следует указать адрес (полностью), по которому должны быть высланы книги; фамилию, имя и отчество получателя. Желательно также указать свой телефон и электронный адрес. Эти книги вы можете заказать и в интернет-магазине: www.galaktika-dmk.com.

Жан Вальран, Шьям Парех

Коммуникационные сети: краткое введение Второе издание

Главный редактор

Мовчан Д. А.

[email protected]

Зам. главного редактора Перевод с английского Редакторы Корректор Верстка Дизайн обложки

Сенченкова Е. А. Петровичева К. В. Сенченкова Е. А. Яценков В. С. Абросимова Л. А. Паранская Н. В. Бурмистрова Е. А.

Формат 70×1001/16. Печать цифровая. Усл. печ. л. 21,78. Тираж 200 экз.

Веб-сайт издательства: www.dmkpress.com

«Эта книга является желанным дополнением к литературе по коммуникаци­ онным сетям. В ней рассматривается с инновационной и современной точки

зрения множество тем, отражающих быстрое развитие, которое претерпела эта область. Она информативна, познавательна и полезна для студентов, преподавателей и практиков, работающих в этой области. Эта книга просто необходима!» Энтони Эфремидес, Мэрилендский университет

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

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

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

Массимо Франческетти, Калифорнийский университет, Сан-Диего

«В книге в четкой и ясной форме представлены наиболее важные принципы проектирования коммуникационных сетей с акцентом на интернет. Рассма­ триваются вопросы физического уровня, вплоть до ключевых распределенных

приложений. Книга станет ценным пособием для студентов, преподавателей и практиков на долгие годы».

Брюс Хайек, Иллинойский университет, Урбана-Шампейн

«Концептуальная ясность, простота объяснения и краткость

-

душа этой книги.

Она охватывает очень широкий круг современных тем, разлагает сложные

системы на их абсолютно базовые составляющие и объясняет каждую идею четко и лаконично. Она является образцом того, каким должен быть учебник. Жаль, что такой книги не было, когда я изучал коммуникационные сети». П. Р. Кумар, Техасский университет А&М

ISBN 978-5-97060-967-5 Интернет-магазин:

www.dmkpress.com Оптовая продажа: КТК «Галактика»

[email protected]

www.дмк.рф

9 785970 6096 75

>