Компьютерные сети

Учебник по компьютерным сетям.

Джеймс Куроуз, Кит Росс » Компьютерные сети: Нисходящий подход» Эксмо, 2016 год, 912 стр. 6-е издание (42,6 мб. djvu)

В книге описаны технологии компьютерных сетей, полная сетевая архитектура построения, фундаментальные основы, принципы взаимодействия, основные службы и протоколы передачи данных. Основное внимание акцентировано на самых развивающихся сегодня направлениях мультимедийных сетевых технологиях, передаче данных аудио и видео форматов. Подробно рассмотрены вопросы сетевой безопасности и наборы инструментов, принципов, и технических приемов, обеспечивающих безопасный обмен информацией. Книга изобилует интересными примерами, кроме того читателю доступны дополнительные материалы для выполнения упражнений. Учебник в первую очередь предназначен студентам изучающим компьютерные науки, сетевым и системным администраторам, а также всем, кто специализируется в области технологий компьютерных сетей. ISBN 978-5-699-78090-7

Оглавление и изменения в новом издании книги

Что нового в данном издании.

В главе 1 Модернизирован материал о сетях доступа, существенно пересмотрено описание экосистемы интернет-провайдеров. Учтены недавно появившиеся сети доставки контента — такой сетью располагает компания Google. Существенно реорганизован текст о коммутации каналов и пакетов, акцентированы не исторические, а тематические направления этого материала.

В главе 2, где речь идет о программировании сокетов, вместо Java использован язык Python. По-прежнему представлены базовые идеи, лежащие в основе АРІ-сокетов, но код Python будет лучше понятен программистам-новичкам, чем код Java. Кроме того, Python, в отличие от Java, предоставляет доступ к сырым (простым) сокетам, благодаря чему студенты могут программировать самые разные сетевые приложения. Лабораторные работы по сокетам, где использовался язык Java, были заменены соответствующими работами с применением языка Python; кроме того, появилась новая лабораторная работа с Python, в которой исследуется программа ICMP Ping.

В главе 3 Добавлено описание о разделении TCP-соединений — данная технология широко применяется для оптимизации производительности облачных сервисов.

В главе 4 Дополнен раздел об архитектурах маршрутизаторов, рассказано о последних разработках из этой области. Рассматриваются технологии DNS, BGP и OSPF.

Глава 5 Изменено распространение коммутируемых Ethemet-соединений в локальных сетях и, как следствие, все более активное применение технологии Ethernet в двухточечных сценариях. Добавлен раздел о сетях для дата-центров.

Глава 6 Обновлена с учетом применения беспроводных сетей, в частности, сотовых сетей, а также сервисов и архитектуры 4G.

Глава 7 Значительно переработана. Представлена информация по потоковому видео (Netflix, YouTbbe и Kankan) и адаптивном потоковом вещании. Добавлен новый раздел о сетях доставки контента (CDN).

В главе 8 Рассказывается о аутентификации конечной точки.

Оглавление.

Целевая аудитория
Что особенного в этой книге?
Нисходящий подход
Интернет как центральная тема книги
Обучение принципам функционирования сетей
Примеры к книге
Педагогические аспекты
Взаимосвязи между главами
Благодарности

Глава 1. Компьютерные сети и Интернет
1.1. Что такое Интернет
1.1.1. Внутреннее устройство Интернета
1.1.2. Описание служб
1.1.3. Что такое протокол?
1.2. Периферия сети
1.2.1. Сети доступа
1.2.2. Физические среды передачи данных
13. Ядро сети
1.3.1. Коммутация пакетов
1.3.2. Коммутация каналов
1.3.3. Сеть сетей
1.4. Задержки, потери и пропускная способность в сетях с коммутацией пакетов
1.4.1. Обзор задержек в сетях с коммутацией пакетов
1.4.2. Задержка ожидания и потеря пакетов
1.4.3. Общая задержка
1.4.4. Пропускная способность в компьютерных сетях
1.5. Уровни протоколов и модели их обслуживания
1.5.1. Многоуровневая архитектура
1.5.2. Инкапсуляция
1.6. Атаки на сети
1.7. История компьютерных сетей и Интернета
1.7.1. Развитие коммутации пакетов: 1961-1972
1.7.2. Развитие частных сетей и Интернета: 1972-1980
1.7.3. Рост компьютерных сетей: 1980-1990
1.7.4. Интернет-взрыв: 1990-е
1.7.5. Новое тысячелетие
1.8. Заключение
План этой книги технологии компьютерных сетей

Глава 2. Прикладной уровень
2.1. Принципы сетевых приложений
2.1.1. Архитектура сетевых приложений
2.1.2. Взаимодействие процессов
2.1.3. Транспортные службы, доступные приложениям
2.1.4. Транспортные службы, предоставляемые Интернетом
2.1.5. Протоколы прикладного уровня
2.1.6. Сетевые приложения, рассматриваемые в данной книге
2.2. Всемирная паутина и HTTP
2.2.1. Обзор протокола HTTP
2.2.2. Непостоянные и постоянные соединения
2.2.3. Формат HTTP-сообщения
2.2.4. Взаимодействие пользователя и сервера: cookie-файлы
2.2.5. Веб-кэширование
2.2.6. Метод GET с условием
2.3. Передача файлов по протоколу FTP
2.3.1. Команды и ответы протокола FTP
2.4. Электронная почта в Интернете
2.4.1. Протокол SMTP
2.4.2. Сравнение с протоколом HTTP
2.4.3. Форматы почтового сообщения
2.4.4. Протоколы доступа к электронной почте
2.5. DNS — служба каталогов Интернета
2.5.1. Службы, предоставляемые DNS
2.5.2. Как работает DNS
2.5.3. Записи и сообщения DNS
2.6. Одноранговые приложения
2.6.1. Одноранговый файлообмен
2.6.2. Распределенные хеш-таблицы
2.7. Программирование сокетов: создание сетевых приложений
2.7.1. Программирование сокетов с использованием UDP
2.7.2. Программирование сокетов с использованием протокола TCP
2.8. Заключение

Глава 3. Транспортный уровень
3.1. Введение и службы транспортного уровня
3.1.1. Взаимодействие транспортного и сетевого уровней
3.1.2. Транспортный уровень в Интернете
3.2. Мультиплексирование и демультиплексирование
Мультиплексирование и демультиплексирование
без установления логического соединения
Мультиплексирование и демультиплексирование
с установлением логического соединения
Веб-серверы и протокол TCP
3.3. UDP — протокол транспортного уровня без установления соединения
3.3.1. Структура UDP-сегмента
3.3.2. Контрольная сумма UDP
3.4. Принципы надежной передачи данных
3.4.1. Создание протокола надежной передачи данных
3.4.2. Протокол надежной передачи данных с конвейеризацией
3.4.3. Возвращение на N пакетов назад (протокол GBR)
3.4.4. Выборочное повторение (протокол SR)
3.5. Протокол ТСР: передача с установлением соединения
3.5.1. ТСР-соединение
3.5.2. Структура ТСР-сегмента
3.5.3. Время оборота и интервал ожидания
3.5.4. Надежная передача данных
3.5.5. Управление потоком
3.5.6. Управление TCP-соединением
3.6. Принципы управления перегрузкой
3.6.1. Причины и последствия перегрузки
3.6.2. Подходы к управлению перегрузкой
3.6.3. Пример сетевого управления перегрузкой: служба управления перегрузкой АВЯ сетей АТМ
3.7. Управление перегрузкой ТСР
3.7.1. Выравнивание скоростей передачи
3.8. Заключение

Глава 4. Сетевой уровень
4.1. Введение
4.1.1. Перенаправление и маршрутизация
4.1.2. Модели служб сетевого уровня
4.2. Сети с виртуальными каналами и дейтаграммные сети
4.2.1. Сети с виртуальными каналами
4.2.2. Дейтаграммные сети
4.2.3. Происхождение сетей с виртуальными каналами и дейтаграммных сетей
4.3. Маршрутизатор изнутри
43.1. Обработка данных ввода
4.3.2. Коммутация
4.3.3. Обработка исходящих данных
4.3.4. Формирование очереди
4.3.5. Уровень управления маршрутизацией
4.4. Протокол IP: перенаправление и адресация данных в Интернете
4.4.1. Формат дейтаграмм
4.4.2. Адресация IPv4
4.4.3. Протокол управляющих сообщений Интернета
4.4.4. IPv6
4.4.5. Краткое знакомство с IP-безопасностью
4.5. Алгоритмы маршрутизации
4.5.1. Алгоритм маршрутизации, учитывающий состояние каналов
4.5.2. Дистанционно-векторный алгоритм маршрутизации
4.53. Иерархическая маршрутизация
4.6. Маршрутизация в Интернете
4.6.1. Протоколы внутренней маршрутизации в Интернете: RIP
4.6.2. Протоколы внутренней маршрутизации в Интернете: OSPF
4.6.3. Маршрутизация между автономными системами: протокол BGP
4.7. Широковещательная и групповая маршрутизация
4.7.1. Алгоритмы широковещательной маршрутизации
4.7.2. Групповая маршрутизация
4.8. Заключение

Глава 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.3.3. Протоколы поочередного доступа
5.3.4. DOCSIS: протокол канального уровня для кабельного доступа в Интернет
5.4. Локальная сеть с коммутируемым доступом
5.4.1. Адресация канального уровня и протокол ARP
5.4.2. Стандарт Ethernet
5.4.3. Коммутаторы канального уровня
5.4.4. Виртуальные локальные сети
5.5. Виртуализация каналов: сеть как канальный уровень
5.5.1. Многопротокольная коммутация по меткам
5.6. Организация сетей для дата-центров
5.7. Ретроспектива: один день из жизни запроса веб-страницы
5.7.1. Начало: DHCP, UDP, IP и Ethernet
5.7.2. Начало продолжается: DNS и ARP
5.7.3. Начало продолжается: внутридоменная маршрутизация на DNS-сервер
5.7.4. Клиент-серверное взаимодействие: TCP и HTTP
5.8. Заключение технологии компьютерных сетей

Глава 6. Беспроводные и мобильные сети
6.1. Введение
6.2. Беспроводные каналы связи и характеристики сети
6.2.1. CDMA
6.3. Wi-Fi: Беспроводные локальные сети 802.11
6.3.1. Архитектура сетей 802.11
6.3.2. Протокол 802.11. MAC
6.3.3. Кадр IEEE 802.11
6.3.4. Мобильность в рамках единой IP-подсети
6.3.5. Дополнительные функции 802.11
6.3.6. Персональные сети: Bluetooth и Zigbee
6.4. Доступ в Интернет посредством сетей сотовой радиосвязи
6.4.1. Обзор архитектуры сотовых сетей
6.4.2. Сотовая сеть передачи данных поколения 3G: Интернет для абонентов сотовых сетей
6.4.3. Переход к 4G: LTE
6.5. Управление мобильностью: Принципы
6.5.1. Адресация
6.5.2. Перенаправление на мобильный узел
6.6. Мобильный протокол Интернета
6.7. Управление мобильными коммуникациями в сетях сотовой связи
6.7.1. Маршрутизация вызовов мобильного абонента
6.7.2. Эстафетные передачи в сетях GSM
6.8. Беспроводная связь и мобильность: влияние на протоколы верхних уровней
6.9. Заключение

Глава 7. Мультимедийные сетевые технологии
7.1. Мультимедийные сетевые приложения
7.1.1. Свойства видеоданных
7.1.2. Свойства аудиоданных
7.1.3. Виды сетевых мультимедийных приложений
7.2. Потоковое вещание хранимых видеоданных
7.2.1. UDP-вещание
7.2.2. НТТР-вещание
7.2.3. Адаптивное вещание и технология DASH
7.2.4. Сети распространения контента (CDN)
7.2.5. Примеры: Netflix, YouTube и Kankan
7.3. IP-телефония
7.3.1. Ограничения, вызванные негарантированной доставкой данных
7.3.2. Выравнивание колебаний на принимающей стороне
7.33. Восстановление потерянных пакетов
7.3.4. Исследование VbIP-приложения на примере Skype
7.4. Протоколы для общения в режиме реального времени
7.4.1. Протокол RTP
7.4.2. Протокол SIP
7.5. Поддержка мультимедийных сервисов на уровне сети
7.5.1. Оценка сетевых ресурсов в условиях негарантированной доставки
7.5.2. Предоставление нескольких категорий обслуживания
7.5.3. Архитектура DiffServ
7.5.4. Гарантированное качество обслуживания для каждого соединения: резервирование ресурсов и допуск вызовов
7.6. Заключение

Глава 8. Сетевая безопасность
8.1. Понятие о сетевой безопасности
8.2. Основы криптографии
8.2.1. Шифрование с симметричными ключами
8.2.2. Шифрование с открытым ключом
8.3. Целостность сообщений и цифровые подписи
8.3.1. Криптографические хэш-функции
8.3.2. Код аутентификации сообщения
8.3.3. Цифровые подписи htbook.ru
8.4. Аутентификация конечной точки
8.4.1. Протокол аутентификации ap1.0
8.4.2. Протокол аутентификации ар2.0
8.4.3. Протокол аутентификации арЗ.0
8.4.4. Протокол аутентификации арЗ.1
8.4.5. Протокол аутентификации ар4.0
8.5. Обеспечение безопасности электронной почты
8.5.1. Безопасная электронная почта
8.5.2. PGP
8.6. Защита TCP-соединений при помощи технологии SSL
8.6.1. Общая картина
8.6.2. Детализированная картина
8.7. Безопасность на сетевом уровне: IPsec и виртуальные частные сети
8.7.1. IPsec и виртуальные частные сети (VPN)
8.7.2. Протоколы АН и ESP
8.7.3. Безопасные ассоциации
8.7.4. Дейтаграмма IPsec
8.7.5. IKE: управление ключами при применении IPsec
8.8. Защита беспроводных локальных сетей
8.8.1. Конфиденциальность на уровне проводных сетей (WEP)
8.8.2. Стандарт IEEE 802.11
8.9. Эксплуатационная безопасность: брандмауэры и системы обнаружения вторжений
8.9.1. Брандмауэры
8.9.2. Системы обнаружения вторжений
8.10. Заключение

Глава 9. Администрирование вычислительной сети
9.1. Понятие администрирования вычислительной сети
9.2. Инфраструктура администрирования вычислительной сети
9.3. Архитектура управляющих Интернет-стандартов
9.3.1. Структура управляющей информации: SMI
9.3.2. База управляющей информации (MIB)
9.3.3. Операции и транспортное соответствие протокола SNMP
9.3.4. Безопасность и администрирование
9.4. Язык ASN.1
9.5. Заключение
Список технической литературы
Предметный указатель

О чем книга

Целевая аудитория.

Данная книга предназначена для изучения на вводном курсе по компьютерным сетям. Ее можно использовать как на факультете информатики, так и на электротехническом. Что касается языков программирования, читатель должен иметь представление о С, C++, Java или Python (эти знания потребуются всего в нескольких разделах). Хотя эта книга более имеет более детальный и аналитический характер, чем другие вводные тексты по компьютерным технологиям, в ней почти не используются математические концепции, выходящие за рамки курса старших классов.

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

Что особенного в этой книге?

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

Нисходящий подход.

Когда мы выпустили первое издание этой книги 12 лет назад, мы применили новый на тот момент подход, рассказав о компьютерных се-
тях по нисходящему принципу — то есть начиная с прикладного уровня и рассматривая стек по направлению к нижнему физическому уровню. Отклики, которые мы получили от преподавателей и студентов, убедили нас, что такой нисходящий подход действительно обладает массой преимуществ и очень удобен с педагогической точки зрения.

Во-первых, сразу делается акцент на прикладном уровне (который является в сфере сетевых технологий своеобразной «зоной роста»). Действительно, многие из недавних революционных изменений в компьютерных сетях — в частности, появление Всемирной Паутины, одноранговых сетей для обмена файлами, а также потоковых медиа — произошли именно на прикладном уровне. Его изучение на раннем этапе курса — необычный подход. В большинстве книг о компьютерных сетях прикладному уровню посвящается небольшой раздел, где вкратце рассказывается о сетевых приложениях, предъявляемых к ним требованиях, парадигмах сетевого уровня (в частности, о клиент-серверной и об одноранговой), а также об интерфейсах программирования приложений.

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

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

Скачать техническую литературу бесплатно42,6 мб. djvu

Похожая литература