- •Семенов ю.А. (гнц итэф) Общие принципы построения сетей Оглавление
- •Распределения визитов сайта book.Itep.Ru по регионам за месяц (данные Rambler)
- •1 Введение (общие принципы построения сетей) Семенов ю.А. (гнц итэф)
- •2 Преобразование, кодировка и передача информации Семенов ю.А. (гнц итэф)
- •2.1 Передача сигналов по линиям связи Семенов ю.А. (гнц итэф)
- •2.2 Представление электрических сигналов в цифровой форме Семенов ю.А. (гнц итэф)
- •2.3 Цифровые каналы t1 и е1 Семенов ю.А. (гнц итэф)
- •2.4 Методы преобразования и передачи звуковых сигналов Семенов ю.А. (гнц итэф)
- •2.4.2 Кодировщики голоса (Vocoder) Семенов ю.А. (гнц итэф)
- •2.4.1 Дельта-модуляция Семенов ю.А. (гнц итэф)
- •2.4.3 Передача голоса по каналам Интернет Семенов ю.А. (гнц итэф)
- •2.5 Методы преобразования и передачи изображения Семенов ю.А. (гнц итэф)
- •Стандарт mpeg-1 и -2
- •Часть 1 mpeg-2 относится к объединению одного или более элементарных аудио или видео потоков, а также прочих данных в один или несколько потоков, удобных для записи или передачи.
- •Интерактивное телевидение
- •2.5.1 Стандарт mpeg-4 Семенов ю.А. (гнц итэф)
- •1. Особенности стандарта mpeg-4
- •1.1. Кодированное представление медийных объектов
- •1.2. Состав медийных объектов
- •1.3. Описание и синхронизация потоков данных для медийных объектов
- •1.4. Доставка потоков данных
- •1.5. Взаимодействие с медийными объектами
- •1.6. Менеджмент и идентификация интеллектуальной собственности
- •2. Основные функции в mpeg-4 версия 1
- •2.2. Системы
- •2.3. Аудио-система
- •2.4. Видео-система
- •2.4.1. Поддерживаемые форматы
- •2.4.2. Эффективность сжатия
- •2.4.3. Функции, зависящие от содержимого (Content-Based)
- •2.4.4. Масштабируемость текстур изображений и видео
- •2.4.5. Кодирование формы и Alpha-представление
- •2.4.6. Надежность в средах, подверженных ошибкам
- •2.4.7. Анимация лица
- •3.2.2. Анимация тела
- •3.2.3. Кодирование 3-d полигональных сеток
- •3.3. Звук
- •4. Расширения mpeg-4 за пределы версии 2
- •4.1. Визуальная область системы
- •4.2. Системы
- •4.2.2. Текстуальный формат
- •4.2.3. Улучшенная модель синхронизации
- •5. Профайлы в mpeg-4
- •5.1. Визуальные профайлы
- •5.2. Аудио профайлы
- •5.3. Профайлы графики
- •5.4. Графические профайлы сцены
- •5.5. Профайлы mpeg-j
- •5.6. Профайл дескриптора объекта
- •6. Верификационное тестирование: проверка работы mpeg
- •6.1. Видео
- •6.1.1. Тесты эффективности кодирования 6.1.1.1. Низкие и средние скорости передачи бит (версия 1)
- •6.1.1.2. Кодирование, базирующееся на содержимом (версия 1)
- •6.1.1.3. Профайл продвинутой эффективности кодирования ace (Advanced Coding Efficiency) (версия 2)
- •6.1.2. Тесты устойчивости к ошибкам 6.1.2.1. Простой профайл (версия 1)
- •6.1.2.2. Простой продвинутый профайл реального времени arts (Advanced Real-Time Simple) (версия 2)
- •6.1.3. Тестирование стабильности временного разрешения 6.1.3.1. Простой продвинутый профайл реального времени arts (Advanced Real-Time Simple) (версия 2)
- •6.1.4. Проверки масштабируемости 6.1.4.1. Простой масштабируемый профайл (версия 1)
- •6.1.4.2. Центральный профайл (core profile версия 1)
- •6.2. Звук
- •7. Промышленный форум mpeg-4
- •8. Детальное техническое описание mpeg-4 dmif и систем
- •8.1.1. Вычислительная модель dmif
- •8.2. Демультиплексирование, синхронизация и описание потоков данных
- •8.2.1. Демультиплексирование
- •8.2.2. Синхронизация и описание элементарных потоков
- •8.2.3. Управление буфером
- •8.2.4. Идентификация времени
- •8.3. Улучшенная модель синхронизации (FlexTime)
- •8.3.1. Гибкая длительность
- •8.3.2. Относительное время начала и конца
- •8.3.3. Поддержка FlexTime в mpeg-4
- •8.3.3.1. Узел TemporalTransform
- •8.3.3.2. Узел TemporalGroup
- •8.3.3.3. Дескриптор сегмента (SegmentDescriptor)
- •8.3.4. Модель исполнения
- •8.4. Описание синтаксиса
- •8.5. Двоичный формат описания сцены bifs (Binary Format for Scene description)
- •8.5.1. Продвинутый формат bifs
- •8.6. Взаимодействие с пользователем
- •8.7. Ipr идентификация и защита
- •8.8. Информация содержимого объекта
- •8.9. Формат файлов mpeg-4
- •9. Детальное техническое описание визуальной секции mpeg-4
- •9.1. Приложения видео-стандарта mpeg-4
- •9.2. Натуральные текстуры, изображения и видео
- •9.3. Синтетические объекты
- •9.4. Масштабируемое кодирование видео-объектов
- •9.5. Устойчивость в среде, предрасположенной к ошибкам
- •9.6. Улучшенная стабильность временного разрешения с низкой задержкой буферизации
- •9.7. Кодирование текстур и статические изображения
- •9.8. Кодирование нескольких видов и большого числа вспомогательных компонентов
- •9.8.1. Анимация лица
- •9.8.2. Анимация тела
- •9.8.3. Анимируемые 2-d сетки
- •9.8.5. Масштабируемость, зависящая от изображения
- •9.9. Структура средств для представления натурального видео
- •9.11.1. Эффективность кодирования в V.2
- •9.10. Поддержка обычной функциональности и зависящей от содержимого
- •9.11. Видео изображение mpeg-4 и схема кодирования
- •9.12. Кодирование текстур в статических изображениях
- •9.13. Масштабируемое кодирование видео-объектов
- •9.14. Устойчивость в среде, предрасположенной к ошибкам
- •9.14.1. Ресинхронизация
- •9.14.2. Восстановление данных
- •9.14.3. Сокрытие ошибок
- •10. Подробное техническое описание mpeg-4 аудио
- •10.1. Натуральный звук
- •10.2. Улучшения mpeg-4 аудио V.2
- •10.2.1. Устойчивость к ошибкам
- •10.2.2. Аудио-кодирование с малыми задержками
- •10.2.3. Масштабируемость гранулярности
- •10.2.4. Параметрическое кодирование звука
- •10.2.5. Сжатие тишины celp
- •10.2.6. Устойчивое к ошибкам hvxc
- •10.2.7. Пространственные характеристики среды
- •10.2.8. Обратный канал
- •10.2.9. Транспортный поток звука
- •10.3. Синтетический звук
- •10.3.1. Синтез с множественным управлением (Score Driven Synthesis).
- •11. Приложение. Словарь и сокращения
- •2.5.2 Стандарт mpeg-7 Семенов ю.А. (гнц итэф)
- •1. Введение
- •1.1. Контекст mpeg-7
- •1.2. Цель mpeg-7
- •1.3. Область действия стандарта
- •1.4. Область применения mpeg-7
- •1.5. План и метод работы
- •1.6. Части mpeg-7
- •1.7. Структура документа
- •2. Главные функции mpeg-7 2.1. Системы mpeg-7
- •2.2. Язык описания определений mpeg-7
- •2.3. Аудио mpeg-7
- •2.4. Визуальный mpeg-7
- •2.5. Основные объекты и схемы описания мультимедиа mpeg-7
- •2.6. Эталонные программы mpeg-7: модель экспериментов (eXperimentation Model)
- •3. Детальное техническое описание стандарта mpeg-7 3.1. Системы mpeg-7
- •3.1.1. Архитектура терминала
- •3.1.2. Нормативные интерфейсы 3.1.2.1. Описание нормативных интерфейсов
- •3.1.2.2. Верификация стандарта
- •3.2. Язык описания определений mpeg-7 (ddl)
- •3.2.1. Разработка контекста
- •3.2.2. Обзор схемы xml
- •3.2.3. Схема xml: Структуры
- •3.2.4. Схема xml: Типы данных
- •3.2.5. Расширения схемы xml mpeg-7
- •3.3. Аудио mpeg-7
- •3.3.1. Описание системы аудио mpeg-7
- •3.3.2. Средства описания аудио верхнего уровня (d и ds)
- •3.3.2.1. Средства описания тембра музыкальных инструментов
- •3.3.2.2. Средства распознавания звука
- •3.3.2.3. Средства описания содержимого сказанного
- •3.3.2.4. Средства описания мелодии
- •3.4.1.3. Временные ряды
- •3.4.1.4. Пространственные координаты 2d
- •3.4.1.5. Временная интерполяция
- •3.4.2. Описатели цвета
- •3.4.2.1. Цветовое пространство
- •3.4.2.2. Оцифровка цвета
- •3.4.2.3. Доминантный цвет(а)
- •3.4.2.4. Масштабируемый цвет
- •3.4.2.5. Описатель структуры цвета
- •3.4.2.6. Выкладка цвета
- •3.4.2.7. Цвет GoF/GoP
- •3.4.3. Описатели текстуры
- •3.4.3.1. Описатели однородной текстуры
- •3.4.3.2. Просмотр текстуры
- •3.4.3.3. Краевая гистограмма
- •3.4.4. Описатели формы
- •3.4.4.1. Форма, базирующаяся на областях (Region-Based)
- •3.4.4.2. Форма, основанная на контуре
- •3.4.5. Дескрипторы перемещения
- •3.4.5.1. Движение камеры
- •3.4.5.2. Траектория движения
- •3.4.5.3. Параметрическое движение
- •3.4.5.4. Двигательная активность
- •3.4.6. Локализация 3.4.6.1. Локатор области
- •3.4.6.2. Пространственно-временной локатор
- •3.4.7. Прочие 3.4.7.1. Распознавание лица
- •3.5. Схемы описания мультимедиа mpeg-7
- •3.5.1. Средства организации mds
- •3.5.1.1. Базовые элементы
- •3.5.1.2. Управление содержимым
- •3.5.1.3. Описание содержимого
- •3.5.1.4. Навигация и доступ
- •3.5.1.5. Организация содержимого
- •3.5.1.6. Интеракция с пользователем
- •3.5.2. Управление содержимым
- •3.5.2.1. Средства описания среды
- •3.5.2.2. Создание и производство средств описания
- •3.5.2.3. Средства описания использования содержимого
- •3.5.3. Описание содержимого 3.5.3.1. Описание структурных аспектов содержимого
- •3.5.3.2. Описание концептуальных аспектов содержимого
- •3.5.4. Навигация и доступ
- •3.5.4.1. Резюме
- •3.5.4.2. Разделы и декомпозиции
- •3.5.4.3. Вариации содержимого
- •3.5.5. Организация содержимого
- •3.5.5.1. Собрания (Collections)
- •3.5.5.2. Модели
- •3.5.6. Взаимодействие с пользователями
- •3.6. Эталонные программы: экспериментальная модель
- •3.6.1. Цели
- •3.6.2. Извлечение и приложения клиента
- •3.6.3. Модульность xm-программ
- •3.6.4. Модули приложения 3.6.4.1. Медийные декодеры
- •3.6.4.2. Мультимедийные данные
- •3.6.4.3. Средства выборки
- •3.6.4.4. Класс дескрипторов
- •3.6.4.5. Схема кодирования
- •3.6.4.6. Средство поиска
- •3.6.5. Типы приложений в xm-программах 3.6.5.1. Извлечение из среды
- •3.6.5.2. Приложение поиска и извлечения
- •3.6.5.3. Приложение транскодирования среды
- •3.6.5.4. Приложение описания фильтрации
- •3.6.6. Модель ключевого приложения mpeg-7 3.6.6.1. Определение ключевых приложений
- •3.6.6.2. Модель интерфейса
- •3.6.7. Ключевые приложения против приложений реального мира
- •Приложение а. Словарь и сокращения
- •2.5.3 Архитектура мультимедиа mpeg-21 Семенов ю.А. (гнц итэф)
- •Обзор цифровых объектов
- •Декларация цифрового объекта
- •Контейнер
- •Компонент
- •Идентификация цифрового объекта
- •Идентификация цифровых объектов
- •Идентификация различных схем описания
- •Идентификация различных типов цифровых объектов
- •Защита и управление правами интеллектуальной собственности (ipmp)
- •Язык описания прав
- •Модель данных mpeg rel
- •Принципал
- •Условие
- •Соотношение с терминологией mpeg
- •Адаптация цифрового объекта
- •Формат файлов
- •Устойчивая ассоциация идентификации и описания с цифровыми объектами
- •2.6 Методы сжатия информации Семенов ю.А. (гнц итэф)
- •2.6.1 Алгоритм Зива-Лемпеля Семенов ю.А. (гнц итэф)
- •2.6.2 Локально адаптивный алгоритм сжатия Семенов ю.А. (гнц итэф)
- •2.6.3 Сжатие данных с использованием преобразования Барроуза-Вилера Семенов ю.А. (гнц итэф)
- •2.6.4 Метод Шеннона-Фано Семенов ю.А. (гнц итэф)
- •2.6.5 Статический алгоритм Хафмана Семенов ю.А. (гнц итэф)
- •2.7 Обнаружение ошибок Семенов ю.А. (гнц итэф)
- •2.8 Коррекция ошибок Семенов ю.А. (гнц итэф)
- •Циклические коды
- •Линейные блочные коды
- •Метод коррекции ошибок fec (Forward Error Correction)
- •Введение в коды Рида-Соломона: принципы, архитектура и реализация
- •Свойства кодов Рида-Соломона
- •Ошибки в символах
- •Декодирование
- •Преимущество кодирования
- •Архитектура кодирования и декодирования кодов Рида-Соломона
- •Арифметика конечного поля Галуа
- •Образующий полином
- •Архитектура кодировщика
- •Архитектура декодера
- •Вычисление синдрома
- •Нахождение позиций символьных ошибок
- •Нахождение значений символьных ошибок
- •Реализация кодировщика и декодера Рида-Соломона Аппаратная реализация
- •Программная реализация
- •2.9 Видеоконференции по каналам Интернет и isdn Семенов ю.А. (гнц итэф)
- •2.9.1 Используемые стандарты Семенов ю.А. (гнц итэф)
- •2.10 Статистическая теория каналов связи Семенов ю.А. (гнц итэф)
- •2.10.2. Канал связи с изменяющимися состояниями
- •2.10.3. Симметричный канал без памяти
- •3 Каналы передачи данных Семенов ю.А. (гнц итэф)
- •3.1 Кабельные каналы связи Семенов ю.А. (гнц итэф)
- •3.2 Оптоволоконные каналы и беспроводные оптические связи Семенов ю.А. (гнц итэф)
- •Беспроводные оптические каналы
- •3.3 Беспроводные (радио) каналы и сети Семенов ю.А. (гнц итэф)
- •3.4 Протокол slip и rs-интерфейсы Семенов ю.А. (гнц итэф)
- •3.4.1. Протоколы rs
- •3.4.1 Интерфейсная шина FireWire (ieee1394) Семенов ю.А. (гнц итэф)
- •Особенности ieee - 1394
- •Архитектура ieee-1394
- •.5 Протокол ppp Семенов ю.А. (гнц итэф)
- •3.6 Протокол g.703 Семенов ю.А. (гнц итэф)
- •3.7 Дерево Штайнера Семенов ю.А. (гнц итэф)
- •4 Сети передачи данных. Методы доступа Семенов ю.А. (гнц итэф)
- •Топология
- •Метод доступа к сети
- •Принципы построения сетевых программных интерфейсов
- •Очереди fifo
- •Приоритетное обслуживание очередей (pq)
- •Обычное обслуживание очередей (сq)
- •Справедливые очереди (wfq)
- •Справедливые очереди базирующиеся на классах (cbwfq)
- •Очереди с малой задержкой (llq)
- •Методы работы в условиях перегрузки
- •Алгоритм leaky bucket ("дырявое ведро")
- •Алгоритм Token Bucket ("маркерное ведро")
- •4.1 Локальные сети (обзор) Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •4.1.1.1 Архитектура сетей Ethernet Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •Гигабитный Ethernet (ge)
- •40 Гигабит/сек технологии
- •4.1.1.3 Интернет в Ethernet Семенов ю.А. (гнц итэф)
- •4.1.1.4 Повторители, мосты, мультиплексоры, переключатели и маршрутизаторы Семенов ю.А. (гнц итэф)
- •4.1.1.5 Алгоритмы и применения сетей p2p Семенов ю.А. (гнц итэф)
- •Определения:
- •Р2р файлообменные сети
- •P2p телевидение
- •Проблемы безопасности
- •Семенов ю.А. (гнц итэф)
- •4.1.3 Ieee 802.4 (Маркерная шина) Семенов ю.А. (гнц итэф)
- •4.1.4 Сети управления и сбора данных в реальном масштабе времени (can) Семенов ю.А. (гнц итэф)
- •4.1.5 Локальные сети ArcNet Семенов ю.А. (гнц итэф)
- •4.1.6 Сети fddi Семенов ю.А. (гнц итэф)
- •4.1.7 Параллельный сетевой интерфейс hippi Семенов ю.А. (гнц итэф)
- •4.1.8 Сети ieee 802.11 Семенов ю.А. (гнц итэф)
- •Безопасность в режиме pre-shared key
- •4.1.8.1 Мобильные телекоммуникации Семенов ю.А. (гнц итэф)
- •4.1.8.2 Стандарт широкополосной беспроводной связи ieee 802.16 Семенов ю.А. (гнц итэф)
- •1. Краткие характеристики стандарта 802.16
- •2. Сообщения управления мас
- •3. Сообщение дескриптора нисходящего канала (dcd)
- •Идентификатор нисходящего канала
- •4. Сообщение привязки нисходящего канала (dl-map)
- •6. Сообщение привязки восходящего канала(ul-map)
- •7. Сообщение запроса диапазона (rng-req)
- •Идентификатор нисходящего канала
- •Ожидание до завершения
- •8. Сообщение отклика на запрос диапазона (rng-rsp)
- •9. Сообщение запроса регистрации (reg-req)
- •10. Сообщение отклика регистрации reg-rsp
- •Возможности ss
- •11. Сообщения управления ключами конфиденциальности (pkm-req/pkm-rsp)
- •Атрибуты
- •12. Сообщение добавления ассоциации безопасности (sa Add)
- •13. Сообщение запроса авторизации (Auth Request)
- •14. Сообщение отклика авторизации (Auth Reply)
- •15. Сообщение отклонения авторизации (Auth Reject)
- •16. Сообщение запроса ключа
- •17. Сообщение отклика на запрос ключа
- •18. Сообщение отклонение ключа
- •19. Сообщение недействительности авторизации
- •20. Сообщение tek Invalid
- •21. Информационное сообщение аутентификации (Authent Info)
- •22. Сообщение запроса динамического добавления сервиса dsa-req)
- •Id транзакции
- •Id транзакции
- •Последовательность hmac
- •26. Dsa, инициированное ss
- •27. Dsa, инициированное bs
- •28. Сообщение подтверждения для динамического добавления сервиса (dsa-ack)
- •Id транзакции
- •29. Сообщение запроса dsc-req
- •30. Сообщение отклика динамического изменения сервиса (dsc-rsp)
- •Параметры сервисного потока
- •31. Сообщение подтверждения для динамического изменения сервиса (dsc-ack)
- •32. Сообщение запроса динамического аннулирования сервиса (dsd-req)
- •Id сервисного потока
- •33. Сообщение отклика на запрос динамического аннулирования сервиса (dsd-rsp)
- •Id сервисного потока
- •34. Сообщение запроса включения/удаления из списка мультикастного запроса (mca-req)
- •35. Сообщение отклика на запрос включения/удаления из списка мультикастного запроса (mca-rsp)
- •36. Сообщение запроса изменения профайла нисходящего канала (dbpc-req)
- •37. Сообщение отклика на изменение профайла нисходящего канала (dbpc-rsp)
- •38. Сообщение команды сброса (res-cmd)
- •39. Сообщение запроса базовых возможностей ss (sbc-req)
- •40. Сообщение отклика на запрос базовых возможностей (sbc-rsp)
- •41. Сообщение сверки часов (clk-cmp)
- •Порядковый номер
- •Результат сверки часов
- •42. Сообщение команды De/Re (dreg-cmd)
- •43. Сообщение о получении dSx (dsx-rvd)
- •44. Сообщение завершения копирования посредством tftp конфигурационного файла (tftp-cplt)
- •45. Сообщение отклика на уведомление о завершении копирования конфигурационного файла (tftp-rsp)
- •Специфические расширения поставщика
- •46. Сообщение запроса ключа
- •47. Сообщение отмены arq
- •48. Сообщение сброса arq
- •49. Формат сообщения (req-req) запроса результата измерения для канала
- •50. Формат сообщения (rep-req) о результате измерения для канала
- •51. Формат сообщения конфигурирования сеточной (mesh) сети (msh-ncfg)
- •Xmt Holdoff Exponent (показатель)
- •Id узла bs
- •52. Сообщение входа в сеточную сеть (msh-nent)
- •Id узла инициатора
- •53. Сообщение распределенной сеточной диспетчеризации (msh-dsch)
- •Флаг координации
- •Флаг запрос/отклик
- •Следующий Xmt Mх соседа
- •Показатель Xmt Holdoff соседа
- •Id узла соседа
- •Информационный элемент диспетчеризации msh-dsch
- •55. Информационный элемент запроса msh-dsch
- •Id канала
- •56. Информационный элемент возможностей msh-dsch
- •57. Информационный элемент предоставления msh-dsch
- •58. Сообщение централизованной диспетчеризации сетки (msh-csch)
- •Порядковый номер конфигурации
- •59. Сообщение конфигурации централизованной маршрутизации сетки (msh-cscf)
- •60. Запрос/отклик обратной связи канала aas (aas-fbck-req/rsp)
- •Литература
- •Семенов ю.А. (гнц итэф)
- •Литература
- •4.1.9 Сети dqdb (двойная шина с распределенной очередью) Семенов ю.А. (гнц итэф)
- •4.1.10 Сети с многокаскадными соединениями Семенов ю.А. (гнц итэф)
- •4.1.11 Сети 100Base-vg Семенов ю.А. (гнц итэф)
- •4.1.12 Канальный протокол Fibre Channel Семенов ю.А. (гнц итэф)
- •4.1.14 Адаптивные, кольцевые, высокоскоростные сети ieee 802.17 Семенов ю.А. (гнц итэф) Обзор
- •4.2 Наложенные сети Семенов ю.А. (гнц итэф)
- •4.2.1 Протоколы Novell (ipx/spx) Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •4.2.1.3 Протокол ядра NetWare (ncp) Семенов ю.А. (гнц итэф)
- •4.2.1.4 Протокол межсетевой передачи больших пакетов (lip) Семенов ю.А. (гнц итэф)
- •4.2.1.5 Служба каталогов NetWare (nds) Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •Протокол wins
- •4.3 Региональные сети Семенов ю.А. (гнц итэф)
- •4.3.1 Эталонная сетевая модель iso Семенов ю.А. (гнц итэф)
- •4.3.2 Протоколы сетей X.25 Семенов ю.А. (гнц итэф)
- •4.3.3 Интегрированные сети isdn Семенов ю.А. (гнц итэф)
- •4.3.4 Протокол Frame Relay Семенов ю.А. (гнц итэф)
- •4.3.5 Протоколы сетей atm Семенов ю.А. (гнц итэф)
- •4.3.6 Синхронные каналы sdh/sonet Семенов ю.А. (гнц итэф)
- •4.3.7 Модемы Семенов ю.А. (гнц итэф)
- •4.4 Интернет Семенов ю.А. (гнц итэф)
- •4.4 Интернет Семенов ю.А. (гнц итэф)
Определения:
P2P-технология – технология построения сети распределенных равноправных узлов по принципу децентрализации.
В существующих сегодня реализациях P2P файлообменных сетей, изначально был использован смешанный подход, с присутствием выделенных узлов (и/или серверов), однако в последние несколько лет все самые крупные сети включили поддержку протоколов, обеспечивающих полностью автономное функционирование сети без серверов – чистый P2P-подход.
P2P сеть – множество узлов (компьютеров, смартфонов и пр.), объединенных в единую систему и взаимодействующих посредством P2P протокола.
P2P-протокол - сетевой протокол, обеспечивающий возможность создания и функционирования сети равноправных узлов, их взаимодействия.
Протоколом, или набором протоколов, определяется логическая топология сети, механизм подключения и отключения узлов от сети, а также алгоритм взаимодействия узлов. Решение таких задач, как коррекция ошибок, форматы сообщений и служебных запросов и откликов, протоколы маршрутизации в условиях постоянного подключения и отключения узлов – также определяется протоколом P2P.
В модели стека сетевых протоколов TCP/IP протоколы P2P относятся к прикладному уровню, таким образом, P2P сеть является наложенной сетью (overlay), функционирующей поверх сети Интернет и использующей существующие транспортные протоколы TCP или UDP.
Клиентская программа P2P, или просто «клиент» – программа, которая реализует функциональность узла, сама является реализацией заложенного в основу сети P2P протокола. Клиент может запрашивать сервер или выделенные узлы, получать ответ с информацией о запрошенных файлах, узлах на которых они находятся, и далее уже работать напрямую с указанными узлами. В последних реализациях клиентов, заложена также возможность обмена служебной информацией, построения запросов и поиска ресурсов клиентом во всей сети без участия серверов.
ID узла – уникальный идентификатор узла, вычисляется с помощью хеш-функции [6] из IP – адреса и дополнительной информации (имени компьютера, MAC-адреса сетевой карты и пр.). Присваивается при регистрации в сети P2P и используется для идентификации узла.
ID или ключ ресурса - уникальный идентификатор файла, или любого другого ресурса, вычисляется с помощью хеш-функции из имени файла и его содержимого. Используется для идентификации ресурса.
Р2р файлообменные сети
Протоколами обеспечивается равномерное распределение ключей ресурсов вместе с идентификаторами узлов, опубликовавшими данный ресурс, по всем узлам (или по некоторым выделенным узлам и/или серверам), зарегистрированным в сети. Задача поиска ресурса сводится к нахождению ID узла, на котором хранится ключ ресурса [4].
Рис. 3. Распределение ключей ресурсов по узлам сети. Поиск ресурса.
На рис. 10.12 приведен пример чистой P2P сети, созданной по протоколу DHT Kademlia [15]. На рисунке к сети, способной поддерживать максимум 16 узлов и 16 ресурсов, подсоединились 7 узлов (черные кружки), разделяющих 12 ресурсов (номера в белых прямоугольниках). Узлам присвоены соответствующие ID, ресурсам присвоены ключи. Ключи вместе с адресами опубликовавших их узлов (адреса на рисунке не показаны) равномерно распределены между узлами сети. На рисунке изображено, какие ключи хранятся и на каких узлах.
Узел с ID 0 хочет найти ресурс, соответствующий ключу 14, для этого посылает запрос на поиск. Запрос проходит определенный маршрут (подробнее о маршрутизации см. [3]) и достигает узла, на котором находится ключ 14. Далее узел ID 14 пересылает узлу ID 0, адреса всех узлов, обладающих ресурсом, соответствующим ключу 14.
Причинами большого роста популярности сетей P2P являются привлекательные идеи данной технологии: децентрализация, распределенность и самоорганизуемость сети. Эти принципы обеспечивают такие преимущества сети, как простота и дешевизна внедрения и поддержки, отказоустойчивость, масштабируемость, увеличение скорости копирования, колоссальная мощность сети в целом.
На данный момент лидируют по количеству узлов среди файлообменных сетей такие сети как Bittorrent [16], eDonkey2000 [14], Gnutella2+Gnutella.
Для инициализации узла, например, в [13] клиентская программа обращается к серверу, предоставляющему информацию о файлах доступных для копирования, а также статистическую и маршрутную информацию об узлах сети. Сервер и после инициализации помогает узлам взаимодействовать друг с другом.
Если узел хочет опубликовать файл, то программа разделяет файл на части и создает файл метаданных с информацией о частях файла, местонахождении, и, опционально, местонахождении сервера, который будет поддерживать распространение этого файла. Первый узел, опубликовавший файл, называется распространителем. Узел, желающий скопировать файл, сам становится распространителем, по принципу «сколько копирую я, столько разрешаю скопировать у меня». Узлы, скопировавшие весь файл становятся распространителями для этого файла, и, вместе с не полностью скопировавшими узлами дают возможность другим узлам получать части файла из нескольких источников, что ускоряет копирование (см. рис. 10.11).
Существуют модификации протоколов, которые позволяют работать с файлами метаданных, не привязанными к серверам.
Одной из первых пиринговых сетей, Gnutella, была создана в 2000 году [17]. Сеть функционирует до сих пор, хотя из-за серьезных недостатков алгоритма пользователи сейчас предпочитают сеть Gnutella2 (G2, [18]).
Подключившийся клиент получает от узла, с которым ему удалось соединиться, список из 5 активных узлов, отсылает им запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят, пересылают запрос своим активным узлам вверх по дереву, пока не найдется ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов. С помощью протокола также отслеживается, чтобы топология создаваемой сети узлов имела древовидную структуру графа.
Понятно, что подобный алгоритм ведет к экспоненциальному росту числа запросов и, соответственно, на верхних уровнях может привести к отказу в обслуживании, что и наблюдалось на практике неоднократно. Разработчиками были проведены работы по улучшению алгоритма, введены правила, в соответствии с которыми запросы могут пересылать вверх по дереву только определенные узлы – так называемые выделенные узлы, остальные узлы могут лишь посылать им запросы.
Недостатки протокола Gnutella инициировали разработки принципиально новых алгоритмов поиска маршрутов и ресурсов, и привели к созданию группы протоколов DHT (Distributed Hash Tables) [7], в частности протокола Kademlia [4], который сейчас широко используется в наиболее крупных сетях.
Запросы в сети Gnutella пересылаются по tcp или udp, копирование файлов происходит посредством протокола http.
В последнее время появились расширения для клиентских программ, позволяющие копировать файлы по udp, делать xml-запросы метаинформации о файлах.
В 2003 году появился принципиально новый протокол Gnutella2. В соответствии с данным протоколом, некоторые узлы становятся концентраторами, остальные являются обычными узлами. Каждый обычный узел имеет соединение с одним-двумя концентраторами. У концентратора есть связь с сотнями обычных узлов и десятки соединений с другими концентраторами. Каждый узел периодически пересылает концентратору список идентификаторов ключевых слов, по которым могут быть найдены публикуемые данным узлом ресурсы. Идентификаторы сохраняются в общей таблице на концентраторе. Когда узел хочет найти ресурс, он посылает запрос по ключевому слову своему концентратору, который либо находит ресурс в своей таблице и возвращает ID-узла, обладающего ресурсом, либо возвращает список других концентраторов, которые узел вновь запрашивает по очереди, случайным образом. Такой поиск называется поиском с помощью метода блужданий.
Для улучшения качества поиска используются метаданные файлов - информация о содержании, рейтинг. Примечательной особенностью данной сети является возможность размножения информации о файле в сети без копирования самого файла, что очень полезно для отслеживания вирусов.
Для передаваемых пакетов в Gnutella2 разработан собственный формат, похожий на xml, гибко реализующий возможность наращивания функциональности сети, путем добавления дополнительной служебной информации. Запросы и списки ID ключевых слов пересылаются по udp.
Сеть EDonkey2000 [14] появилась в 2000 году. Информация о наличии файлов публикуется клиентом на многочисленных серверах в виде ed2k ссылок, использующих уникальный ID ресурса. Серверное ПО доступно для установки любым пользователем. Сервер обеспечивает поиск узлов и информации. Сейчас в сети имеется от 100 до 200 серверов, обслуживающих одновременно около миллиона пользователей, использующих порядка миллиарда различных файлов. Общее количество зарегистрированных пользователей составляет порядка 10 миллионов.
Когда клиент копирует желаемый ресурс, он копирует его одновременно из нескольких источников при помощи MFTP (Multisource File Transfer Protocol).
В настоящее время информацию о доступных файлах можно получать не только с серверов eDonkey. С 2004 года в состав сети EDonkey2000 интегрирована сеть Overnet - полностью децентрализованная сеть, позволяющая осуществлять взаимодействие между узлами без привязки к серверам, для чего используется DHT протокол Kademlia.
Клиент EDonkey имеет очень интересное расширение, позволяющее копировать метафайлы, которые пользуются большим доверием пользователей, а также использовать верификационную информацию из метафайлов для работы с файлами собственной сети.
Такая интеграция возможностей разных сетей и дополнительная верификация способствовали развитию EDonkey2000, в которую начали переходить пользователи других сетей, например, сети FastTreсk, базирующейся на протоколе FastTreсk, а наиболее популярным клиентом является Kazaa [17].
Провайдеры сетевых услуг, например, провайдеры московских домашних сетей, а также администраторы компаний, до недавнего времени старались блокировать на своих файерволах порты, через которые общаются клиенты сетей Bittorrent, eDonkey2000, Gnutella, Fasttreck.
Поэтому пользователям осталась только возможность использовать локальные пиринговые сети. Наиболее удобной для этого оказалась сеть Direct Connect (DC) [16].
Клиенты подключаются к одному или нескольким серверам для поиска файлов. Серверы не связаны между собой. Информация о файлах, доступ к которым узел хочет открыть, отсылается на сервер. Копирование файлов происходит напрямую между узлами, как и в классической P2P сети.
В клиенте встроены возможности для общения участников сети, список файлов каждого пользователя можно получать в виде древовидной структуры папок, есть простой механизм поиска информации, существует возможность копирования целых каталогов. Перечисленные возможности сделали сеть DC идеальным решением для локальной файлообменной сети P2P.
