Компьютерные сети нисходящий подход. Компьютерные сети. Нисходящий подход

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

Сеть сетей.
Мы видели ранее, что конечные системы (персональные компьютеры, смартфоны, веб-серверы, почтовые серверы и так далее) соединяются с Интернетом, пользуясь услугами Интернет-провайдеров. Интернет-провайдер обеспечивает либо проводной, либо беспроводной доступ, используя ряд технологий, включающих DSL, кабельный доступ, FTTH, Wi-Fi, а также мобильные сотовые сети. Заметим, что Интернет-провайдером необязательно бывают телефонные компании либо компании кабельных сетей; им может быть, например, университет (предоставляющий доступ в Интернет своим студентам и персоналу факультетов) либо коммерческая компания (обеспечивающая доступ в Интернет своим сотрудникам). Но соединение конечных пользователей, провайдеров контента, сетей доступа, Интернет-провайдеров - это только малая часть сложной мозаики, состоящей из миллионов конечных систем, которые образуют Интернет. Чтобы закончить эту мозаику, сети доступа Интернет-провайдеров должны быть сами взаимосвязаны между собой. Это делается путем создания сети сетей - понимание этой фразы является ключом к пониманию Интернета.

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


Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Компьютерные сети, Нисходящий подход, Джеймс Куроуз, Кит Росс, 2016 - fileskachat.com, быстрое и бесплатное скачивание.

Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.

Всех приветствую на страницах своего блога, я очень часто, как появляется возможность выкладываю свежие книги cisco , но и не забываю про книги о компьютерных сетях, сегодня вы сможете скачать вот такое издание: Компьютерные сети. Нисходящий подход. Книга абсолютно свежая и в ней учтены последние нововведения в данной области.

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

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

По традиции вы сможете ее скачать по прямой ссылке с облака.

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

На нашем сайте вы можете скачать книгу "Компьютерные сети. Нисходящий подход" Джеймс Куроуз бесплатно и без регистрации в формате fb2, rtf, epub, pdf, txt, читать книгу онлайн или купить книгу в интернет-магазине.

004.45 32.973-018.2 93 James F. Kurose Keith W. Ross Computer Networking: A Top-Down Approach Authorized translation from the English language edition, entitled COMPUTER NETWORKING; A TOP-DOWN APPROACH, 6th Edition; ISBN 0132856204 by KUROSE, JAMES F.; and by ROSS, KEITH W.; published by Pearson Education, Inc, publishing as Addison-Wesley. Copyright © 2013 by Pearson Education, Inc. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. . ! " ! ! # ! ! , !$ % , & # " , % " ! Pearson Education, Inc. 93 , . & : " / " $ $ , (. - 6- . -) : * «+», 2016. - 912 . - () " & " !). ISBN 978-5-699-78090-7 #$ #$ & " $ " $ * . > ! & " , & $ , " " $ $, ! "" $! $ " " $ . > ! ! !. " $ " & ! " – $" , # $- . $$ $ " ! ! , ! & ! " ! # ". , & $ ; ! $ ". !$ , $ ! " & " - $ . 004.45 32.973-018.2 ISBN 978-5-699-78090-7 © ., 2015 © . « «!», 2016 ОГЛАВЛЕНИЕ Предисловие..................................................................................................................... 12 Что нового в данном издании.............................................................................. 12 Целевая аудитория.................................................................................................. 14 Что особенного в этой книге? ............................................................................. 14 Нисходящий подход............................................................................................... 14 Интернет как центральная тема книги............................................................ 16 Обучение принципам функционирования сетей......................................... 16 Примеры к книге...................................................................................................... 17 Педагогические аспекты....................................................................................... 18 Взаимосвязи между главами............................................................................... 18 Благодарности.......................................................................................................... 19 Глава 1. Компьютерные сети и Интернет............................................................... 23 1.1. Что такое Интернет......................................................................................... 24 1.1.1. Внутреннее устройство Интернета................................................... 25 1.1.2. Описание служб....................................................................................... 28 1.1.3. Что такое протокол?............................................................................... 30 1.2. Периферия сети................................................................................................ 33 1.2.1. Сети доступа.............................................................................................. 36 1.2.2. Физические среды передачи данных............................................... 45 1.3. Ядро сети............................................................................................................. 49 1.3.1. Коммутация пакетов.............................................................................. 49 1.3.2. Коммутация каналов.............................................................................. 55 1.3.3. Сеть сетей................................................................................................... 61 1.4. Задержки, потери и пропускная способность в сетях с коммутацией пакетов.......................................................................................... 65 1.4.1. Обзор задержек в сетях с коммутацией пакетов......................... 66 1.4.2. Задержка ожидания и потеря пакетов............................................. 71 1.4.3. Общая задержка....................................................................................... 74 1.4.4. Пропускная способность в компьютерных сетях........................ 77 1.5. Уровни протоколов и модели их обслуживания................................... 81 1.5.1. Многоуровневая архитектура............................................................. 81 1.5.2. Инкапсуляция.......................................................................................... 89 1.6. Атаки на сети..................................................................................................... 91 1.7. История компьютерных сетей и Интернета........................................... 97 1.7.1. Развитие коммутации пакетов: 1961–1972.................................... 97 1.7.2. Развитие частных сетей и Интернета: 1972–1980....................... 99 1.7.3. Рост компьютерных сетей: 1980–1990 .......................................... 100 1.7.4. Интернет-взрыв: 1990-е...................................................................... 102 1.7.5. Новое тысячелетие............................................................................... 103 1.8. Заключение......................................................................................................105 План этой книги................................................................................................ 106 5 Оглавление Глава 2. Прикладной уровень...................................................................................108 2.1. Принципы сетевых приложений..............................................................109 2.1.1. Архитектура сетевых приложений................................................. 111 2.1.2. Взаимодействие процессов................................................................ 114 2.1.3. Транспортные службы, доступные приложениям.................... 117 2.1.4. Транспортные службы, предоставляемые Интернетом.......... 120 2.1.5. Протоколы прикладного уровня..................................................... 124 2.1.6. Сетевые приложения, рассматриваемые в данной книге....... 126 2.2. Всемирная паутина и HTTP ......................................................................127 2.2.1. Обзор протокола HTTP ...................................................................... 127 2.2.2. Непостоянные и постоянные соединения.................................... 130 2.2.3. Формат HTTP-сообщения................................................................. 133 2.2.4. Взаимодействие пользователя и сервера: cookie-файлы...................................................................................................... 139 2.2.5. Веб-кэширование.................................................................................. 142 2.2.6. Метод GET с условием......................................................................... 147 2.3. Передача файлов по протоколу FTP.......................................................149 2.3.1. Команды и ответы протокола FTP ................................................. 151 2.4. Электронная почта в Интернете...............................................................152 2.4.1. Протокол SMTP .................................................................................... 155 2.4.2. Сравнение с протоколом HTTP....................................................... 158 2.4.3. Форматы почтового сообщения....................................................... 159 2.4.4. Протоколы доступа к электронной почте.................................... 160 2.5. DNS - служба каталогов Интернета......................................................166 2.5.1. Службы, предоставляемые DNS...................................................... 167 2.5.2. Как работает DNS.................................................................................. 170 2.5.3. Записи и сообщения DNS .................................................................. 177 2.6. Одноранговые приложения........................................................................184 2.6.1. Одноранговый файлообмен.............................................................. 184 2.6.2. Распределенные хеш-таблицы......................................................... 192 2.7. Программирование сокетов: создание сетевых приложений.........199 2.7.1. Программирование сокетов с использованием UDP .............. 200 2.7.2. Программирование сокетов с использованием протокола TCP .................................................................................................. 207 2.8. Заключение......................................................................................................213 Глава 3. Транспортный уровень...............................................................................215 3.1. Введение и службы транспортного уровня..........................................216 3.1.1. Взаимодействие транспортного и сетевого уровней................ 218 3.1.2. Транспортный уровень в Интернете.............................................. 220 3.2. Мультиплексирование и демультиплексирование............................222 Мультиплексирование и демультиплексирование без установления логического соединения............................................ 225 Мультиплексирование и демультиплексирование с установлением логического соединения.............................................. 227 Веб-серверы и протокол TCP ...................................................................... 230 3.3. UDP - протокол транспортного уровня без установления соединения...............................................................................................................231 3.3.1. Структура UDP-сегмента.................................................................. 236 3.3.2. Контрольная сумма UDP ................................................................... 237 6 Оглавление 3.4. Принципы надежной передачи данных.................................................239 3.4.1. Создание протокола надежной передачи данных..................... 241 3.4.2. Протокол надежной передачи данных с конвейеризацией........................................................................................... 253 3.4.3. Возвращение на N пакетов назад (протокол GBN) .................. 256 3.4.4. Выборочное повторение (протокол SR) ....................................... 261 3.5. Протокол TCP: передача с установлением соединения...................268 3.5.1. TCP-соединение.................................................................................... 268 3.5.2. Структура TCP-сегмента................................................................... 272 3.5.3. Время оборота и интервал ожидания............................................ 278 3.5.4. Надежная передача данных............................................................... 282 3.5.5. Управление потоком............................................................................ 292 3.5.6. Управление TCP-соединением........................................................ 295 3.6. Принципы управления перегрузкой.......................................................302 3.6.1. Причины и последствия перегрузки.............................................. 303 3.6.2. Подходы к управлению перегрузкой............................................. 310 3.6.3. Пример сетевого управления перегрузкой: служба управления перегрузкой ABR сетей ATM .............................................. 312 3.7. Управление перегрузкой TCP ...................................................................315 3.7.1. Выравнивание скоростей передачи................................................ 328 3.8. Заключение......................................................................................................332 Глава 4. Сетевой уровень............................................................................................337 4.1. Введение............................................................................................................338 4.1.1. Перенаправление и маршрутизация.............................................. 339 4.1.2. Модели служб сетевого уровня........................................................ 343 4.2. Сети с виртуальными каналами и дейтаграммные сети..................346 4.2.1. Сети с виртуальными каналами...................................................... 347 4.2.2. Дейтаграммные сети............................................................................ 351 4.2.3. Происхождение сетей с виртуальными каналами и дейтаграммных сетей................................................................................... 353 4.3. Маршрутизатор изнутри.............................................................................354 4.3.1. Обработка данных ввода.................................................................... 358 4.3.2. Коммутация............................................................................................. 361 4.3.3. Обработка исходящих данных......................................................... 364 4.3.4. Формирование очереди...................................................................... 364 4.3.5. Уровень управления маршрутизацией.......................................... 369 4.4. Протокол IP: перенаправление и адресация данных в Интернете..............................................................................................................370 4.4.1. Формат дейтаграмм.............................................................................. 371 4.4.2. Адресация IPv4 ...................................................................................... 378 4.4.3. Протокол управляющих сообщений Интернета....................... 397 4.4.4. IPv6 ............................................................................................................. 401 4.4.5. Краткое знакомство с IP-безопасностью...................................... 409 4.5. Алгоритмы маршрутизации.......................................................................412 4.5.1. Алгоритм маршрутизации, учитывающий состояние каналов............................................................................................ 416 4.5.2. Дистанционно-векторный алгоритм маршрутизации................................................................................................. 422 4.5.3. Иерархическая маршрутизация....................................................... 433 7 Оглавление 4.6. Маршрутизация в Интернете....................................................................438 4.6.1. Протоколы внутренней маршрутизации в Интернете: RIP .............................................................................................. 439 4.6.2. Протоколы внутренней маршрутизации в Интернете: OSPF .......................................................................................... 444 4.6.3. Маршрутизация между автономными системами: протокол BGP .................................................................................................... 448 4.7. Широковещательная и групповая маршрутизация...........................461 4.7.1. Алгоритмы широковещательной маршрутизации................... 461 4.7.2. Групповая маршрутизация................................................................ 469 4.8. Заключение......................................................................................................479 Глава 5. Канальный уровень: каналы, сети доступа и ЛВС............................481 5.1. Обзор канального уровня...........................................................................482 5.1.1. Службы канального уровня.............................................................. 484 5.1.2. Протоколы, реализующие канальный уровень.......................... 485 5.2. Приемы обнаружения и исправления ошибок....................................487 5.2.1. Контроль четности................................................................................ 489 5.2.2. Методы контрольных сумм............................................................... 492 5.2.3. Код циклического контроля.............................................................. 493 5.3. Протоколы и каналы множественного доступа..................................496 5.3.1. Протоколы разделения канала......................................................... 499 5.3.2. Протоколы произвольного доступа................................................ 501 5.3.3. Протоколы поочередного доступа.................................................. 512 5.3.4. DOCSIS: протокол канального уровня для кабельного доступа в Интернет.......................................................................................... 514 5.4. Локальная сеть с коммутируемым доступом.......................................516 5.4.1. Адресация канального уровня и протокол ARP ........................ 517 5.4.2. Стандарт Ethernet ................................................................................. 526 5.4.3. Коммутаторы канального уровня................................................... 534 5.4.4. Виртуальные локальные сети........................................................... 543 5.5. Виртуализация каналов: сеть как канальный уровень.....................547 5.5.1. Многопротокольная коммутация по меткам.............................. 549 5.6. Организация сетей для дата-центров.....................................................553 5.7. Ретроспектива: один день из жизни запроса веб-страницы............560 5.7.1. Начало: DHCP, UDP, IP и Ethernet ................................................ 560 5.7.2. Начало продолжается: DNS и ARP ................................................ 563 5.7.3. Начало продолжается: внутридоменная маршрутизация на DNS-сервер.................................................................. 564 5.7.4. Клиент-серверное взаимодействие: TCP и HTTP .................... 565 5.8. Заключение......................................................................................................567 Глава 6. Беспроводные и мобильные сети............................................................570 6.1. Введение............................................................................................................571 6.2. Беспроводные каналы связи и характеристики сети........................577 6.2.1. CDMA ........................................................................................................ 582 6.3. Wi-Fi: Беспроводные локальные сети 802.11 .......................................585 6.3.1. Архитектура сетей 802.11 ................................................................... 587 6.3.2. Протокол 802.11. МАС........................................................................ 592 8 Оглавление 6.3.3. Кадр IEEE 802.11................................................................................... 600 6.3.4. Мобильность в рамках единой IP-подсети.................................. 604 6.3.5. Дополнительные функции 802.11 ................................................... 606 6.3.6. Персональные сети: Bluetooth и Zigbee ........................................ 608 6.4. Доступ в Интернет посредством сетей сотовой радиосвязи...........612 6.4.1. Обзор архитектуры сотовых сетей.................................................. 613 6.4.2. Сотовая сеть передачи данных поколения 3G: Интернет для абонентов сотовых сетей....................................................................... 617 6.4.3. Переход к 4G: LTE ................................................................................ 620 6.5. Управление мобильностью: Принципы.................................................623 6.5.1. Адресация................................................................................................. 626 6.5.2. Перенаправление на мобильный узел........................................... 628 6.6. Мобильный протокол Интернета............................................................635 6.7. Управление мобильными коммуникациями в сетях сотовой связи...........................................................................................................................641 6.7.1. Маршрутизация вызовов мобильного абонента........................ 642 6.7.2. Эстафетные передачи в сетях GSM ................................................ 644 6.8. Беспроводная связь и мобильность: влияние на протоколы верхних уровней.....................................................................................................648 6.9. Заключение......................................................................................................651 Глава 7. Мультимедийные сетевые технологии..................................................653 7.1. Мультимедийные сетевые приложения.................................................654 7.1.1. Свойства видеоданных........................................................................ 654 7.1.2. Свойства аудиоданных........................................................................ 656 7.1.3. Виды сетевых мультимедийных приложений............................ 658 7.2. Потоковое вещание хранимых видеоданных.......................................661 7.2.1. UDP-вещание......................................................................................... 663 7.2.2. HTTP-вещание....................................................................................... 664 7.2.3. Адаптивное вещание и технология DASH .................................. 670 7.2.4. Сети распространения контента (CDN)....................................... 671 7.2.5. Примеры: Netflix, YouTube и Kankan .............................................. 679 7.3. IP-телефония...................................................................................................684 7.3.1. Ограничения, вызванные негарантированной доставкой данных............................................................................................. 684 7.3.2. Выравнивание колебаний на принимающей стороне.............. 687 7.3.3. Восстановление потерянных пакетов............................................ 690 7.3.4. Исследование VoIP-приложения на примере Skype................ 694 7.4. Протоколы для общения в режиме реального времени...................697 7.4.1. Протокол RTP ........................................................................................ 697 7.4.2. Протокол SIP .......................................................................................... 701 7.5. Поддержка мультимедийных сервисов на уровне сети....................708 7.5.1. Оценка сетевых ресурсов в условиях негарантированной доставки....................................................................... 710 7.5.2. Предоставление нескольких категорий обслуживания.......... 712 7.5.3. Архитектура DiffServ ........................................................................... 725 7.5.4. Гарантированное качество обслуживания для каждого соединения: резервирование ресурсов и допуск вызовов................. 729 7.6. Заключение......................................................................................................733 9 Оглавление Глава 8. Сетевая безопасность..................................................................................735 8.1. Понятие о сетевой безопасности..............................................................736 8.2. Основы криптографии.................................................................................739 8.2.1. Шифрование с симметричными ключами................................... 741 8.2.2. Шифрование с открытым ключом.................................................. 749 8.3. Целостность сообщений и цифровые подписи...................................757 8.3.1. Криптографические хэш-функции................................................. 758 8.3.2. Код аутентификации сообщения.................................................... 760 8.3.3. Цифровые подписи............................................................................... 762 8.4. Аутентификация конечной точки............................................................770 8.4.1. Протокол аутентификации ap1.0 ................................................. 771 8.4.2. Протокол аутентификации ар2.0 ................................................. 772 8.4.3. Протокол аутентификации ap3.0 ................................................. 773 8.4.4. Протокол аутентификации ap3.1 ................................................. 774 8.4.5. Протокол аутентификации ар4.0 ................................................. 774 8.5. Обеспечение безопасности электронной почты.................................776 8.5.1. Безопасная электронная почта......................................................... 778 8.5.2. PGP ............................................................................................................. 782 8.6. Защита TCP-соединений при помощи технологии SSL ..................784 8.6.1. Общая картина...................................................................................... 786 8.6.2. Детализированная картина............................................................... 790 8.7. Безопасность на сетевом уровне: IPsec и виртуальные частные сети............................................................................................................793 8.7.1. IPsec и виртуальные частные сети (VPN) ................................... 794 8.7.2. Протоколы AH и ESP .......................................................................... 795 8.7.3. Безопасные ассоциации...................................................................... 796 8.7.4. Дейтаграмма IPsec ................................................................................ 798 8.7.5. IKE: управление ключами при применении IPsec.................... 802 8.8. Защита беспроводных локальных сетей................................................804 8.8.1. Конфиденциальность на уровне проводных сетей (WEP) ....................................................................................................... 805 8.8.2. Стандарт IEEE 802.11i......................................................................... 808 8.9. Эксплуатационная безопасность: брандмауэры и системы обнаружения вторжений.....................................................................................811 8.9.1. Брандмауэры........................................................................................... 812 8.9.2. Системы обнаружения вторжений................................................. 822 8.10. Заключение....................................................................................................827 Глава 9. Администрирование вычислительной сети........................................829 9.1. Понятие администрирования вычислительной сети........................829 9.2. Инфраструктура администрирования вычислительной сети........835 9.3. Архитектура управляющих Интернет-стандартов............................840 9.3.1. Структура управляющей информации: SMI .............................. 843 9.3.2. База управляющей информации (MIB) ....................................... 847 9.3.3. Операции и транспортное соответствие протокола SNMP .................................................................................................................... 851 9.3.4. Безопасность и администрирование.............................................. 854 9.4. Язык ASN.1.......................................................................................................857 9.5. Заключение......................................................................................................862 Список литературы......................................................................................................864 Предметный указатель................................................................................................896 10 Джулии и трем нашим чудесным детям - Крису, Чарли и Нине. Джеймс Куроуз Большое СПАСИБО моим преподавателям, коллегам и студентам со всего мира. Кит Росс ПРЕДИСЛОВИЕ Перед вами шестое издание книги «Компьютерные сети. Нисходящий подход». Первое вышло более десятилетия назад, с тех пор книга была адаптирована для изучения в сотнях колледжей и университетов, переведена на 14 языков и проработана более чем ста тысячами студентов и специалистов во всем мире. Мы получили от этих читателей массу положительных отзывов, многие из которых очень нас воодушевили. Что нового в данном издании Полагаем, успех книги объясняется не в последнюю очередь тем, что в каждом издании она обновляется и всегда предлагает свежий и актуальный материал для изучения компьютерных сетей. Мы внесли определенные изменения в шестое издание, но также сохранили в нем те аспекты, которые кажутся нам (а также преподавателям и студентам, работавшим с предыдущими версиями) наиболее важными. Среди таких черт следует отметить нисходящий метод изложения материала, акцент на Интернете и современном понимании компьютерных сетей, внимание как к теоретическим, так и к практическим принципам, академический и в то же время доступный стиль изложения материала. Тем не менее данное издание было существенно переработано и дополнено. В главе 1 был модернизирован материал о сетях доступа, существенно пересмотрено описание экосистемы интернет-провайдеров. Учтены недавно появившиеся сети доставки контента - например, такой сетью располагает компания Google. Мы существенно реорганизовали текст о коммутации каналов и пакетов, акцентировав не исторические, а тематические аспекты этого материала. В главе 2, где речь идет о программировании сокетов, вместо Java использован язык Python. Мы по-прежнему явно описываем базовые идеи, лежащие в основе API-сокетов, но код Python будет лучше понятен программистам-новичкам, чем код Java. Кроме того, Python, в отличие от Java, предоставляет доступ к сырым (простым) сокетам, 12 Предисловие благодаря чему студенты могут программировать самые разные сетевые приложения. Лабораторные работы по сокетам, где использовался язык Java, были заменены соответствующими работами с применением языка Python; кроме того, появилась новая лабораторная работа с Python, в которой исследуется программа ICMP Ping. Как обычно, если материал исключается из книги (в данном случае, речь идет о лабораторных работах по программированию сокетов на языке Java), он доступен в электронном виде на сайте (подробнее об этом ниже). В главе 3 мы упростили описание протоколов надежной передачи данных, а также добавили новую врезку о разделении TCP- соединений - данная технология широко применяется для оптимизации производительности облачных сервисов. В главе 4 был существенно дополнен раздел об архитектурах маршрутизаторов, в нем мы постарались отразить последние разработки и практики из этой области. В главе добавились несколько новых интегративных врезок, где рассматриваются технологии DNS, BGP и OSPF Глава 5 была реорганизована и «причесана»; в ней мы учли повсеместное распространение коммутируемых Ethernet-соединений в локальных сетях и, как следствие, все более активное применение технологии Ethernet в двухточечных сценариях. Кроме того, в этой главе появился новый раздел о сетях для дата-центров. Глава 6 была обновлена с учетом новейших разработок в области беспроводных сетей, в частности, сотовых сетей, а также сервисов и архитектуры 4G. Глава 7, рассказывающая о мультимедийных сетях, была значительно переработана. Теперь в ней вы найдете подробное обсуждение потокового видео; в частности, мы поговорим об адаптивном потоковом вещании. Кроме того, в главе появился совершенно новый раздел о сетях доставки контента (CDN). Также мы поговорим о системах потокового видео Netflix, YouTube и Kankan. Материал, от которого пришлось отказаться в пользу этих новых тем, по-прежнему доступен на сайте. В главе 8 появилось подробное обсуждение аутентификации конечной точки Значительно обогатился материал в заданиях, приведенных в конце каждой главы. Как и в предыдущих изданиях, некоторые упражнения для самостоятельной работы были пересмотрены, добавлены или удалены. 13 Предисловие Целевая аудитория Данная книга предназначена для изучения на вводном курсе по компьютерным сетям. Ее можно использовать как на факультете информатики, так и на электротехническом. Что касается языков программирования, читатель должен иметь представление о C, C++, Java или Python (эти знания потребуются всего в нескольких разделах). Хотя эта книга более имеет более детальный и аналитический характер, чем другие вводные тексты по компьютерным технологиям, в ней почти не используются математические концепции, выходящие за рамки курса старших классов. Мы специально старались обходиться без сложного математического анализа, теории вероятности или стохастических процессов (хотя и даем несколько таких заданий для студентов, разбирающихся в этих темах). Соответственно, книга подходит для изучения на старших курсах университета и на первых курсах аспирантуры. Кроме того, она должна быть полезна для практикующих специалистов, работающих в сфере телекоммуникаций. Что особенного в этой книге? Тема компьютерных сетей исключительно сложна. Она включает в себя множество концепций, протоколов и технологий, которые переплетены воедино самым нетривиальным образом. Поэтому, чтобы было легче освоить столь непростую и объемную информацию, многие тексты о компьютерных сетях структурированы в порядке изучения отдельных уровней сетевой архитектуры. Такая организация помогает студентам оценить сложность данной тематики. Слушатели курса изучают концепции и протоколы, применяемые на конкретном уровне архитектуры, но в то же время видят и общую картину - как отдельные уровни подогнаны друг к другу. С педагогической точки зрения должны отметить, что, по нашему опыту, такой многоуровневый подход действительно замечательно воспринимается. С другой стороны, мы полагаем, что традиционный восходящий способ изучения этой темы - от физического уровня к прикладному, то есть снизу вверх - не слишком подходит для современного курса по компьютерным сетям. Нисходящий подход Когда мы выпустили первое издание этой книги 12 лет назад, мы применили новый на тот момент подход, рассказав о компьютерных се- 14 Предисловие тях по нисходящему принципу - то есть начиная с прикладного уровня и рассматривая стек по направлению к нижнему физическому уровню. Отклики, которые мы получили от преподавателей и студентов, убедили нас, что такой нисходящий подход действительно обладает массой преимуществ и очень удобен с педагогической точки зрения. Во-первых, сразу делается акцент на прикладном уровне (который является в сфере сетевых технологий своеобразной «зоной роста»). Действительно, многие из недавних революционных изменений в компьютерных сетях - в частности, появление Всемирной Паутины, одноранговых сетей для обмена файлами, а также потоковых медиа - произошли именно на прикладном уровне. Его изучение на раннем этапе курса - необычный подход. В большинстве книг о компьютерных сетях прикладному уровню посвящается небольшой раздел, где вкратце рассказывается о сетевых приложениях, предъявляемых к ним требованиях, парадигмах сетевого уровня (в частности, о клиент-серверной и об одноранговой), а также об интерфейсах программирования приложений. Во-вторых, по нашему преподавательскому опыту (а также по опыту многих наших коллег, работавших с этим текстом), изучение сетевых приложений в начале книги сильно мотивирует студентов. Им не терпится узнать, как именно работают сетевые приложения - например, электронная почта и всемирная паутина, - так как большинство слушателей курса пользуются ими практически ежедневно. Когда студент поймет приложения, он сможет понять и сетевые сервисы, необходимые для поддержки этих приложений. В свою очередь, сами студенты могут исследовать несколько способов предоставления и реализации таких сервисов на более низких уровнях. В итоге изучение уровня приложений на раннем этапе оказывается очень полезным для понимания всего последующего текста. В-третьих, нисходящий подход позволяет преподавателю на раннем этапе познакомить студентов с разработкой сетевых приложений. Слушатели не только наблюдают популярные приложения и протоколы в действии, но и узнают, насколько просто создавать собственные сетевые приложения и протоколы сетевого уровня. Описываемый подход позволяет студентам на самых ранних этапах освоить принципы программирования сокетов, модели обслуживания и протоколы. Все эти концепции очень важны, и к ним приходится регулярно обращаться при изучении всех последующих уровней. Давая упражнения по программированию сокетов на языке Python, мы подчеркиваем основные идеи, не запутывая студента сложными примерами с кодом. Студенты старших курсов, обучающиеся на электротехнических и кибернетических специальностях, должны без труда воспринимать код на Python. 15 Предисловие Интернет как центральная тема книги Хотя мы и убрали слово «Интернет» из названия книги еще в четвертом издании, это вовсе не означает, что данная тема стала интересовать нас меньше. Нет, совершенно наоборот! Действительно, поскольку Интернет сегодня проникает буквально повсюду, мы полагаем, что в любой книге о компьютерных сетях ему должно быть уделено пристальное внимание, поэтому упоминание Интернета в заголовке становится излишним. Мы продолжаем рассматривать архитектуру и протоколы Интернета как основной материал для изучения фундаментальных концепций в сфере компьютерных сетей. Разумеется, в книге также затрагиваются концепции и протоколы из других сетевых архитектур. Но в центре внимания остается Интернет, поэтому книга композиционно строится вокруг именно тех пяти сетевых уровней, которые в нем присутствуют. Речь пойдет о прикладном, транспортном, сетевом, канальном и физическом уровнях. Немаловажно и то, что большинство студентов с факультетов информатики и электротехнических факультетов жаждут подробнее изучить Интернет и его протоколы. Они знают, что это революционная и прорывная технология, которая прямо на наших глазах коренным образом меняет мир. Учитывая огромное значение Интернета, слушатели, естественно, желают знать и понимать его внутреннее строение. Соответственно, преподавателю также не составляет труда научить студентов всем основополагающим принципам, если они рассматриваются на основе Интернета. Обучение принципам функционирования сетей Две уникальные черты книги - нисходящий подход к изложению материала и акцент на Интернете - фигурировали в заголовках ее изданий. Если бы мы могли вместить в подзаголовок и третью фразу, то, вероятно, в ней было бы слово «принципы». Сфера компьютерных сетей уже достаточно зрелая, в ней можно выделить ряд фундаментальных проблем. Например, на транспортном уровне примерами таких проблем являются: обеспечение надежной коммуникации на базе ненадежного сетевого уровня, установление/разрыв соединения и рукопожатие, управление перегрузками и потоком данных, а также мультиплексирование. Две фундаментальных проблемы сетевого уровня - это нахожде- 16 Предисловие ние «хороших» путей между двумя маршрутизаторами и взаимное соединение большого количества разнородных сетей. Фундаментальная проблема канального уровня - это совместное использование канала для множественного доступа. Говоря о сетевой безопасности, необходимо отметить различные приемы обеспечения конфиденциальности, аутентификации и целостности сообщения - в основе всех этих аспектов лежат фундаментальные криптографические принципы. В тексте рассматриваются основополагающие сетевые проблемы и исследования, направленные на их разрешение. Читатель, изучающий эти материалы, приобретает знания с большим «сроком годности». Современные сетевые стандарты и протоколы когда-нибудь устареют, но принципы, которые в них воплощаются, останутся актуальными и важными. Мы полагаем, что методическая комбинация изучения Интернета с рассмотрением фундаментальных проблем и их решений не только позволяет заполнить аудиторию любознательными студентами, но и помогает слушателям быстро понять практически любую сетевую технологию. Примеры к книге Читателю предоставляется доступ к сайту с дополнительными материалами к книге по адресу http://eksmo.ru/upload/Networks_Primers.rar. В загруженном архиве вы найдете: Ссылки на Java-апплеты. Вы найдете файл со ссылками на Javaапплеты, необходимыми для выполнения упражнений из книги. Презентации PowerPoint. Для всех девяти глав мы подготовили презентации PowerPoint. В 6-м издании все слайды обновлены. В них подробно рассматривается материал каждой главы. На слайдах применяется графика и анимация (а не только скучные маркированные списки), что помогает сделать материал более интересным и визуально привлекательным. Мы предоставляем оригиналы презентаций, чтобы вы могли дорабатывать их в соответствии с деталями вашего курса. Некоторые слайды были предоставлены другими преподавателями, читавшими нашу книгу. Решения задач для самостоятельной работы. Мы предоставляем справочник с решениями к задачам для самостоятельной работы, заданиям по программированию и лабораторным работам Wireshark. Как было указано выше, в первых пяти главах книги мы добавили множество новых задач. 17 Предисловие Лабораторные работы (Java и Python). Для более полного понимания сетевых протоколов очень важно рассмотреть их на практике. На сайте есть ряд заданий по работе с программой Wireshark - они помогут студенту непосредственно наблюдать последовательность сообщений, которыми обмениваются два устройства, взаимодействующие по протоколу. На сайте вы найдете лабораторные работы Wireshark по протоколам HTTP, DNS, TCP, UDP, IP, ICMP, Ethernet, ARP, Wi-Fi, SSL и по трассировке всех протоколов, участвующих в удовлетворении запроса по получению веб-страницы. Кроме того, по отдельным ссылкам, указанным в книге, вы получите доступ к дополнительным материалам, необходимым для выполнения упражнений. Педагогические аспекты Оба автора посвятили преподаванию теории компьютерных сетей более чем по 20 лет каждый. Вместе мы вкладываем в эту книгу более 50 лет педагогического опыта, за которые мы успели обучить тысячи студентов. На протяжении всего этого времени мы активно занимались исследованиями в области компьютерных технологий (Джим и Кит познакомились еще в 1979 году, когда учились в магистратуре по курсу компьютерных сетей у Миши Шварца). Полагаем, такой опыт позволяет нам уверенно судить о состоянии и перспективах развития компьютерных сетей. Тем не менее мы старались не переполнять эту книгу материалами, которые были бы связаны с нашими собственными исследовательскими проектами. Если они вас интересуют, вы можете ознакомиться с ними на персональном сайте каждого из авторов. Итак, вы держите в руках книгу о современных компьютерных сетях - технологиях и протоколах, а также о базовых принципах, лежащих в их основе. Мы также уверены, что курс компьютерных сетей может быть увлекательным как для студента, так и для преподавателя. Надеемся, что юмор, живые аналогии и примеры из жизни, которые встретятся вам на страницах этой книги, сделают материал значительно интереснее. Взаимосвязи между главами Первая глава этой книги представляет собой самодостаточный обзор современных компьютерных сетей. В ней вы познакомитесь с многочис- 18 Предисловие ленными ключевыми концепциями и терминологией, она задает контекст для остальных глав. Все они непосредственно связаны с первой. Завершив работу над главой 1, рекомендуем преподавателям последовательно изучить главы 2–5, придерживаясь избранного нами нисходящего подхода. Каждая из этих глав строится на материале предыдущих. Закончив первые пять глав, преподаватель сможет достаточно гибко строить последующий курс. Между последними четырьмя главами нет взаимных зависимостей, их можно изучать в любом порядке. Однако содержание каждой из этих глав строится на материале первых пяти. Многие преподаватели сначала разбирают первые пять глав, оставляя «на закуску» одну из последних четырех. Благодарности Мы начали работу над этой книгой еще в 1996 году, и с тех пор многие люди оказали нам неоценимую помощь, дали массу ценных рекомендаций о том, как лучше всего организовать и читать университетский курс о компьютерных сетях. Мы хотим сказать БОЛЬШОЕ СПАСИБО всем, кто помог нам - от вычитки первых черновиков вплоть до пятого издания. Мы также очень благодарны сотням читателей со всего мира - студентам, преподавателям, специалистам, - которые присылали нам комментарии о первых изданиях книги и пожелания относительно новых изданий. Отдельно хотелось бы поблагодарить следующих людей: Ави Рубин (Университет Джона Хопкинса), Аль Ахо (Колумбийский университет), Альберт Хуань (бывший студент Пенсильванского университета), Ардаш Сетхи (Университет штата Делавэр), Арнод Легу (INRIA), Бен Кю Чой (Мичиганский технологический университет), Бешан Кулапала (Аризонский государственный университет), Боб Меткалф (International Data Group), Бобби Бхаттачарджи (Университет штата Мэриленд), Боджи Шу (бывший студент Нью-Йоркского политехнического института), Брайан Левин (Массачусетский университет), Брэм Коэн (компания BitTorrent. Inc), Брюс Харви (Флоридский аграрно-технический университет, Флоридский государственный университет), Ван Якобсон (компания Xerox PARC), Верн Пэксзон (Калифорнийский университет, Беркли), Винтон Серф (компания Google), Ву-Чи Фэнь (Орегонский институт последипломного образования), Вэнь Син (Университет Парк), Георгий Полизос (Афинский университет экономики и бизнеса), Дебора Эстрин (Калифорнийский университет, Лос-Анджелес), Деспина Сапарилья (компания Cisco Systems), 19 Предисловие Дж. Дж. Гарсия-Луна-Асевес (Калифорнийский университет, СантаКруз), Дженни Мойер (компания Comcast), Дженнифер Рексфорд (Принстонский университет), Джефф Кейз (исследовательская группа SNMP Research International), Джефф Чолтас (компания Sprint), Джитендра Падхье (компания Microsoft Research), Джобин Джеймс (Калифорнийский университет, Риверсайд), Джон Дейгл (Университет штата Миссисипи), Джон Шанц (компания Comcast), Джош МакКинзи (Университет Парк), Ди Ву (Университет Сунь Ятсена), Дип Медхи (Миссурийский университет, Канзас-Сити), Дон Таусли (Массачусетский университет), Дуглас Сэлейн (Колледж Джона Джея), Дэвид Гудмен (Политехнический институт штата Нью-Йорк), Дэвид Коц (Дартмутский колледж), Дэвид Тернер (Калифорнийский государственный университет, Сан-Бернардино), Дэвид Уэзеролл (Университет штата Вашингтон), Дэн Рубенштайн (Колумбийский университет), Дэниэл Бруштейн (ранее - студент Пенсильванского университета), Жан Боло (компания Technicolor Research), Ира Уинстон (Пенсильванский университет), Йехиам Йемини (Колумбийский университет), К. Сэм Шэнмуган (Канзасский университет), Карл Хаузер (Вашингтонский государственный университет), Кевин Филлипс (компания Sprint), Кен Колверт (Университет штата Кентукки), Кен Рик (Рочестерский технологический институт), Кин Сун Там (Государственный университет штата Нью-Йорк, Олбани), Клей Шилдс (Университет Джорджтауна), Клифф К. Зу (Университет Центральной Флориды), Константин Кутрас (Университет Пейс), Крейг Партридж (компания BBN Technologies), Кристоф Дио (компания Technicolor Research), Леон Резник (Рочестерский технологический институт), Леонард Клейнрок (Калифорнийский университет, Лос-Анджелес), Ли Лейтнер (Университет Дрекселя), Ликсинь Гао (Университет штата Массачусетс), Ликсья Чжан (Калифорнийский университет, Лос-Анджелес), Личунь Бао (Калифорнийский университет, Ирвин), Макс Хальперин (Колледж Густава Адольфа), Марио Герла (Калифорнийский университет, ЛосАнджелес), Мартин Рейслейн (Аризонский государственный университет), Мигель А. Лабрадор (Университет Южной Флориды), Минь Ю (Государственный университет штата Нью-Йорк, Бингемптон), Михаил Л. Сихитиу (Государственный университет Северной Каролины), Михалис Фалоустос (Калифорнийский университет, Риверсайд), Миша Швартц (Колумбийский университет), Мишель Уэйгл (Клемсонский университет), Мэнь Чжан (бывший студент Нью-Йоркского политехнического института), Ник Мак-Кеоун (Стэндфордский университет), Нитин Вайдья (Университет штата Иллинойс), Пабло Родригес (ком- 20 Предисловие пания Telefonica), Парвиз Кермани (бывший сотрудник компании IBM Research), Пинак Джайн (бывший студент Нью-Йоркского политехнического института), Питер Стинкисте (Университет Карнеги-Меллона), Пол Бэрфорд (Университет штата Висконсин), Пол Френсис (Институт Макса Планка), Пол Эймер (Университет штата Делавэр), Правин Бхагват (компания Wibhu), Пратима Аккунур (Аризонский государственный университет), Прашант Шеной (Массачусетский университет), Притхула Дхунгхель (компания Akamai), Радж Яваткар (компания Intel), Радья Перлман (компания Intel), Ракеш Кумар (компания Bloomberg), Рамачандран Рамджи (компания Microsoft Research), Рашель Хеллер (Университет Джорджа Вашингтона), Саймон Лэм (Университет Техаса), Салли Флойд (ICIR, Калифорнийский университет, Беркли), Самит Рой (Университет штата Вашингтон), Снеха Касера (Университет штата Юта), Стив Лай (Государственный университет штата Огайо), Стивен Белловин (Колумбийский университет), Субин Шестра (Пенсильванский университет), Сугих Джамин (Мичиганский университет), Супратик Бхаттачарья (ранее - компания Sprint), Сью Мун (научно-исследовательский институт KAIST), Сяодун Чжан (Государственный университет штата Огайо), Тацуя Суда (Калифорнийский университет, Ирвин), Тим Бернерс-Ли (Консорциум Всемирной Паутины), Тим Гриффин (Кембриджский университет), Том Ла-Порта (Пенсильванский государственный университет), Уиллис Марти (Техасский аграрно-технический университет), Уильям Лянь (бывший студент Пенсильванского университета), Фил Циммерман (независимый консультант), Филипп Хошка (компания INRIA/W3C), Филиппе Декуэтос (Институт Eurecom), Хариш Сетху (Университет Дрекселя), Хеннинг Шульцринне (Колумбийский университет), Хийоджин Ким (бывшая студентка Пенсильванского университета), Хишам Аль-Мубайд (Хьюстонский университет - Клир Лейк), Хонгган Чжан (Саффолкский университет), Христос Пападопулос (Государственный университет Колорадо), Ху Чжан (Университет Карнеги-Меллона), Чжи Ли Чжан (Университет штата Миннесота), Чунчунь Ли (бывший студент Нью-Йоркского политехнического института), Чэнь Хуань (компания Microsoft Research), Шамуил Эйзом (Аризонский государственный университет), Шахид Бохари (Инженерно-технологический университет Лахора), Шивкумар Кальянараман (компания IBM Research, Индия), Ширли Уинн (Нью-Йоркский политехнический институт), Шрирам Раджагопалан (Аризонский государственный университет), Шучун Чжан (бывший студент Пенсильванского университета), Эвандро Канту (Федеральный университет Санта-Катарины), Эдмундо А. де Соуза 21 Предисловие э Сильва (Федеральный университет Рио-де-Жанейро), Эллен Зегура (Технологический институт штата Джорджия), Эрих Нахум (компания IBM Research), Эрнст Бирзак (Институт Eurecom), Эстер А. Хьюз (Университет штата Виргиния), Юнь Лю (студент Нью-Йоркского политехнического института), Юсси Кангашарью (Университет Хельсинки), Янь Гуо (компании Alcatel/Lucent Bell Labs) Также мы хотим поблагодарить весь коллектив издательства Addison-Wesley, в частности, Майкла Хирша, Мэрилин Ллойд и Эмму Снайдер. Они проделали над шестым изданием титаническую работу (и смогли поладить с двумя очень капризными авторами, которые, повидимому, от природы неспособны укладываться в заданные сроки). Большое спасибо нашим иллюстраторам Джанет Тойрер и Патрису Росси Калкину, авторам симпатичных рисунков к нашей книге. Особой благодарности заслуживают Андреа Стефанович и ее команда из PreMediaGlobal - за их замечательную работу по подготовке этого издания к выходу. Наконец, отдельно благодарим Майкла Хирша, нашего редактора из Addison-Wesley, и Сьюзен Хартманн - нашего бывшего редактора из Addison-Wesley. Эта книга не получилась бы без их искусного руководства, постоянного подбадривания, практически бесконечного терпения, чувства юмора и настойчивости. Глава 1 КОМПЬЮТЕРНЫЕ СЕТИ И ИНТЕРНЕТ Возможно, современный Интернет является крупнейшей инженерной системой, когда-либо созданной человечеством. Она состоит из сотен миллионов соединенных компьютеров, линий связи и коммутаторов; с миллиардами пользователей, которые подключаются через ноутбуки, планшеты и смартфоны; и с множеством новых подключенных устройств, таких как датчики, веб-камеры, игровые консоли, фоторамки и даже стиральные машины. Принимая во внимание, что Интернет настолько велик и имеет так много разнообразных компонентов и применений, можно ли разобраться в том, как он работает? Существуют ли руководящие принципы и структура, которые способны служить основой для понимания такой поразительно огромной и сложной системы? И если это так, может ли изучение компьютерных сетей на самом деле быть интересным и увлекательным? К счастью, на все эти вопросы мы, не сомневаясь, отвечаем ДА! В самом деле, наша цель в данной книге - предложить современное введение в динамично развивающуюся область компьютерных сетей, изложив принципы и практические сведения, необходимые для понимания не только сегодняшних, но и завтрашних технологий. В этой главе дается широкий обзор организации компьютерных сетей и Интернета. Наша цель здесь - нарисовать общую картину и определить контекст для остальной части книги, чтобы увидеть лес сквозь деревья. Мы охватим немало основных сведений и обсудим большинство компонентов компьютерной сети, не упуская из вида общей картины. 23 Глава 1 Мы систематизируем наш обзор компьютерных сетей в этой главе следующим образом. После введения базовой терминологии и некоторых концепций мы сначала рассмотрим основные компоненты аппаратного и программного обеспечения, из которых состоит сеть. Мы начнем с периферии сети и рассмотрим конечные системы и сетевые приложения, выполняющиеся в сети. Затем мы исследуем ядро компьютерной сети, проанализировав соединения и коммутаторы, которые передают данные, а также изучим сети доступа и физические среды передачи, которые соединяют конечные системы с ядром сети. Мы узнаем, что Интернет - это сеть, состоящая из сетей, а также узнаем, как они соединяются друг с другом. Завершив обзор периферии и ядра компьютерной сети, во второй части этой главы мы займемся более широким и абстрактным изучением сети. Мы исследуем задержки, потери и пропускную способность в компьютерной сети и рассмотрим простые количественные модели, которые учитывают задержки, связанные с передачей, распространением данных и организацией очередей. Затем мы введем некоторые из основных принципов построения архитектуры в компьютерных сетях, а именно разделение протоколов на уровни и модели обслуживания. Мы также узнаем, что компьютерные сети уязвимы для множества атак разных типов. Мы сделаем обзор некоторых из этих атак и рассмотрим возможные способы повысить защищенность сетей. Наконец, в заключительной части главы будет кратко изложена история развития компьютерных сетей. 1.1. Что такое Интернет В этой книге мы будем иметь дело с общедоступным Интернетом, особой компьютерной сетью, которая является основным средством передачи данных, и используем его как пример для обсуждения компьютерных сетей и их протоколов. Но что собой представляет Интернет? Существует два ответа на этот вопрос. Во-первых, мы можем описать внутреннюю механику, «винтики» Интернета, то есть основные аппаратные и программные компоненты, из которых он состоит. Во-вторых, мы можем описать Интернет на языке сетевой инфраструктуры, предоставляющей службы для распределенных приложений. Давайте начнем с описания внутреннего устройства Интернета, пользуясь для иллюстрации обсуждаемых вопросов рис. 1.1. 24 Компьютерные сети и Интернет Рис. 1.1. Некоторые основные элементы Интернета 1.1.1. Внутреннее устройство Интернета Интернет - это компьютерная сеть, которая связывает между собой сотни миллионов вычислительных устройств по всему миру. Не так давно эти вычислительные устройства были в основном обычными настольными персональными компьютерами, рабочими станциями 25 Глава 1 с операционной системой Linux и так называемыми серверами, которые хранили и передавали информацию, например веб-страницы и сообщения электронной почты. Однако к Интернету подключают все больше и больше нетрадиционных конечных систем, таких как ноутбуки, смартфоны, планшеты, телевизоры, игровые консоли, веб-камеры, автомобили, датчики для определения состояния окружающей среды, фоторамки, а также домашние электрические и охранные системы. На самом деле термин компьютерная сеть несколько устаревает, принимая во внимание множество новых устройств, которые подключаются к Интернету. На профессиональном жаргоне все эти устройства называются хостами, или конечными системами. По состоянию на июль 2011 г. к Интернету было подключено около 850 миллионов конечных систем245, не считая смартфонов, ноутбуков и других устройств, которые подключаются к Интернету эпизодически. В общем, по оценкам, число пользователей Интернета насчитывает более 2 миллиардов255–256. Конечные системы соединяются вместе с помощью сети линий связи и коммутаторов пакетов. В разделе 1.2 мы увидим, что линии связи бывают множества типов, с различными физическими носителями, включая коаксиальный кабель, медный провод, оптическое волокно и радиочастотный спектр. По разным линиям данные могут передаваться с разными скоростями, причем скорость передачи линии измеряется в битах в секунду (бит/c). Когда в одной конечной системе имеются данные для отправки в другую, передающая конечная система сегментирует их и добавляет в каждый сегмент байты заголовка. Затем полученные порции информации, известные как пакеты, посылаются через сеть в конечную систему назначения, где снова собираются в исходные данные. Коммутатор пакетов получает пакет по одной из своих входных линий связи и направляет его по одной из своих исходящих линий связи. Коммутаторы поставляются в разных формах и разновидностях, но двумя наиболее известными типами в современном Интернете являются маршрутизаторы и коммутаторы канального уровня. Коммутаторы обоих типов направляют пакеты в их конечные пункты назначения. Коммутаторы канального уровня обычно применяются в сетях доступа, тогда как маршрутизаторы обычно используются в ядре сети. Последовательность линий связи и коммутаторов пакетов, через которые проходит пакет из отправляющей конечной системы в принимающую, называется маршрутом или путем в сети. Точный объем данных, передаваемых в Интернете, трудно подсчитать, но по оценкам компа- 26 Компьютерные сети и Интернет нии Cisco108, мировой трафик составлял в 2012 году приблизительно 40 эксабайт в месяц. Сети с коммутацией пакетов во многих отношениях сходны с транспортными сетями шоссе, дорог и перекрестков, по которым ездят автомобили. Например, рассмотрим завод, которому требуется перевезти большое количество груза на склад, расположенный за тысячи километров. Груз на заводе делится на отдельные части и загружается на несколько грузовиков. Затем каждый из грузовиков независимо путешествует по сети шоссе, дорог и перекрестков к пункту назначения. На складе груз разгружается и группируется с остальным прибывающим грузом из той же партии. Таким образом, пакеты во многих отношениях аналогичны грузовикам, линии связи напоминают шоссе и дороги, коммутаторы пакетов сходны с перекрестками, а конечные системы похожи на здания. Так же как грузовик перемещается по пути в транспортной сети, так и пакет проходит путь в компьютерной сети. Конечные системы получают доступ к Интернету через поставщиков услуг Интернета, или Интернет-провайдеров (Internet Service Providers, ISP). Существуют провайдеры, которые обеспечивают услуги Интернета по месту жительства (местные кабельные и телефонные компании); корпоративные, университетские, а также тех, что предоставляют доступ Wi-Fi в аэропортах, гостиницах, кофе-барах и других общественных местах. Каждый Интернет-провайдер сам по себе имеет сеть, состоящую из коммутаторов пакетов и линий связи. Провайдеры Интернета предоставляют для конечных систем различные типы доступа в сеть, включая широкополосный доступ по месту жительства, например DSL- или кабельный модем, высокоскоростной доступ к локальной сети, беспроводной доступ и доступ через модем для коммутируемых телефонных линий на скорости 56 Кбит/c. Интернет-провайдеры предоставляют также доступ во всемирную сеть для поставщиков контента, подключая веб-сайты непосредственно к глобальной сети. Интернет - это конечные системы, соединяемые друг с другом, так что предоставляющие к ним доступ организации также должны быть соединены между собой. Интернет-провайдеры, находящиеся на нижнем уровне, соединяются друг с другом через национальных и международных Интернетпровайдеров верхнего уровня, таких как Level 3 Communications, AT&T, Sprint и NTT. Сети провайдеров верхнего уровня состоят из маршрутизаторов высокой производительности, взаимосвязанных с помощью высокоскоростных оптоволоконных каналов. Сеть каждого поставщика услуг Интернета верхнего или нижнего уровня имеет независимое 27 Глава 1 управление, использует протокол IP (о протоколах см. ниже) и соответствует определенным соглашениям по именованию и адресации. Мы рассмотрим поставщиков услуг Интернета и их взаимосвязи более подробно в разделе 1.3. Конечные системы, коммутаторы пакетов и другие части Интернета выполняют протоколы, которые управляют передачей и получением информации в Интернете. Двумя самыми важными протоколами в Интернете являются протокол управления передачей (Transmission Control Protocol, TCP) и протокол Интернета (Internet Protocol, IP). В протоколе IP задается формат пакетов, которые передаются между маршрутизаторами и конечными системами. Совокупность (стек) основных протоколов Интернета известна как TCP/IP. Мы начнем изучать протоколы в вводной главе, которую вы сейчас читаете. Но это только начало - бóльшая часть нашей книги посвящена протоколам компьютерных сетей! В связи со значимостью протоколов для Интернета важно, чтобы все договорились о том, что делает каждый протокол, тогда пользователи могут создавать взаимодействующие системы и изделия. Вот где вступают в действие стандарты. Интернет-стандарты разрабатываются инженерным советом Интернета (IETF, Internet Engineering Task Force)238. Документы стандартов IETF называются запросами на отзывы, или рабочими предложениями (request for comments, RFC). Документы RFC появились в виде общих предложений к обсуждению (отсюда их название) для решения проблем, с которыми сталкивался при разработке сетей и протоколов предшественник Интернета21. Документы RFC отличаются технической направленностью и подробностью изложения. В них определяются протоколы, такие как TCP, IP, HTTP (для Всемирной паутины) и SMTP (для электронной почты). В настоящее время существует более 6000 документов RFC. В других организациях также определяют стандарты для компонентов сетей, в особенности для сетевых линий связи. Например, комитетом по стандартам локальных и городских сетей (IEEE 802 LAN/MAN Standards Committee)227 разрабатываются стандарты по Ethernet, беспроводной связи Wi-Fi. 1.1.2. Описание служб В приведенных выше рассуждениях мы идентифицировали отдельные части, составляющие Интернет. Однако мы можем также описать его, рассматривая его под совершенно другим углом - а именно как ин- 28 Компьютерные сети и Интернет фраструктуру, которая предоставляет службы для приложений. Эти приложения включают электронную почту, веб-серфинг, социальные сети, обмен мгновенными сообщениями, передача речи по IP-протоколу (VoIP), потоковое видео, сетевые игры, одноранговый совместный доступ к файлам, телевидение через Интернет (IP TV), удаленный доступ и многое-многое другое. Все они считаются распределенными приложениями, поскольку вовлекают в работу множество конечных систем, которые обмениваются данными друг с другом. Важно, что Интернетприложения выполняются на конечных системах, а не на коммутаторах пакетов в ядре сети. Хотя коммутаторы пакетов обеспечивают обмен данными между конечными системами, они не имеют отношения к конкретным приложениям, являющимся источниками или получателями данных. Давайте проанализируем чуть глубже то, что мы подразумеваем под инфраструктурой, предоставляющей службы для приложений. С этой целью предположим, что у вас есть потрясающая новая идея для распределенного Интернет-приложения, которая облагодетельствует человечество или просто может принести вам богатство и известность. Как бы вы могли трансформировать эту идею в реальное Интернетприложение? Так как приложения выполняются на конечных системах, вам требуется создать программы, которые выполняются на конечных системах. Например, вы могли бы написать программы на Java, C или Python. Теперь, поскольку вы разрабатываете распределенное Интернет-приложение, программы, выполняющиеся на разных конечных системах, должны передавать данные друг другу. И здесь мы подходим к главной теме, которая ведет к альтернативному способу описания Интернета как платформы для приложений. Каким образом программа, выполняющаяся на одной конечной системе, отдает команду Интернету доставить данные в другую программу, выполняющуюся на другой конечной системе? Конечные системы, подсоединенные к Интернету, предоставляют интерфейс программирования приложений (Application Programming Interface, API), который определяет, как программа, выполняющаяся на одной конечной системе, запрашивает инфраструктуру Интернета для доставки данных в конкретную целевую программу, выполняющуюся на другой конечной системе. API Интернета является набором правил, которые должны выполняться, чтобы Интернет мог доставлять данные в целевую программу. Мы подробно рассмотрим функции интерфейса программирования приложений в главе 2. А пока давайте проведем про- 29 Глава 1 стую аналогию, которую будем часто использовать в этой книге. Предположим, Алиса хочет отправить письмо Бобу, пользуясь почтовой службой. Само собой разумеется, что наша героиня не может просто написать письмо (или данные) и бросить его из окна. Вместо этого почтовая служба требует, чтобы Алиса поместила письмо в конверт, написала полностью фамилию и имя Боба, его адрес и почтовый код, заклеила конверт, приклеила марку в верхнем правом углу и, наконец, бросила конверт в почтовый ящик. Таким образом, у почтовой службы есть свой собственный «API почтовой службы», или набор правил, которые должна соблюдать Алиса, чтобы ее письмо доставили Бобу. Аналогично для Интернета имеется API, правила которого должна соблюдать программа, отправляющая данные, чтобы эти данные были доставлены через Интернет принимающей их программе. Конечно, почтовая служба предоставляет своим клиентам более чем одну услугу: срочная доставка, подтверждение получения, обычная почта и многое другое. Подобным образом в Интернете предлагается множество служб для приложений. Когда вы разрабатываете Интернетприложение, вы также можете выбрать для него одну из служб Интернета. Мы рассмотрим службы Интернета в главе 2. Мы только что привели два описания Интернета; одно с точки зрения его аппаратных и программных компонентов, другое в терминах инфраструктуры для предоставления служб распределенным приложениям. Возможно, вы все еще путаетесь в том, что такое Интернет. Что такое коммутация пакетов и протокол TCP/IP? Что собой представляют маршрутизаторы? Какие типы линий связи существуют в Интернете? Что такое распределенное приложение? Как можно подсоединить к Интернету тостер или датчик погодных условий? Если вы чувствуете, что информации слишком много, не волнуйтесь - цель нашей книги состоит в том, чтобы ознакомить вас с базовыми элементами Интернета и принципами, лежащими в основе его работы. Эти важные понятия и ответы на поставленные вопросы будут излагаться в следующих разделах и главах. 1.1.3. Что такое протокол? Теперь, когда вы немного разобрались с тем, что такое Интернет, давайте рассмотрим другой важный специальный термин компьютерных сетей: протокол. Что такое протокол? Какую функцию он выполняет? 30 Компьютерные сети и Интернет Аналогия с человеком Возможно, легче всего разобраться с понятием протокола компьютерных сетей, проведя сначала некоторые аналогии с человеком, поскольку мы, люди, выполняем протоколы постоянно. Рассмотрим, что мы делаем, когда хотим спросить у кого-нибудь, который час. Типичный обмен информацией показан на рис. 1.2. Социальный протокол (или, по крайней мере, правила хорошего тона) диктует, что первый из общающихся приветствует собеседника (первый «Привет» на рис. 1.2), чтобы установить контакт. Типичным ответом на это приветствие является точно такое же сообщение «Привет». Само собой разумеется, что сердечный ответ «Привет» воспринимается как признак того, что инициатор контакта может продолжить и спросить, который час. Другой ответ на первоначальную реплику «Привет» (например, «Не беспокойте меня!», или «Я не говорю по-русски», или что-нибудь непечатное) может указывать на нежелание или невозможность общения. В этом случае, согласно социальному протоколу, последующий вопрос о времени будет неуместен. Рис. 1.2. Социальный протокол и протокол компьютерной сети Иногда спрашивающий вообще не получает ответа на вопрос, и тогда обычно прекращает попытки узнать время у этого человека. Обратите внимание, что в нашем социальном протоколе существуют специальные сообщения, передаваемые нами, и определенные действия, выполняемые в ответ на полученные ответные сообщения или другие события (например, отсутствие ответа в течение некоторого заданного времени). Несомненно, передаваемые и получаемые сообщения, а также действия, предпринимаемые, когда отправляются или принимаются эти сообще- 31 Глава 1 ния либо возникают другие события, играют центральную роль в социальном протоколе. Если люди выполняют разные протоколы (например, если один человек воспитан, а другой нет или если один знает, что такое время, а другой не имеет о нем представления), протоколы не взаимодействуют, и никакую полезную работу выполнить невозможно. То же самое справедливо в сетях - для выполнения задачи двум (или более) взаимодействующим объектам необходимо выполнять один и тот же протокол. Давайте рассмотрим второй пример аналогии с людьми. Предположим, вы находитесь в классе учебного заведения (например, в компьютерном классе школы!). Учитель что-то бубнит о протоколах, а вы ничего не понимаете. Учитель останавливает свой монолог, чтобы задать вопрос: «Есть вопросы?» (сообщение, которое передается всем не спящим студентам и принимается ими). Вы поднимаете руку (передавая неявное сообщение учителю). Ваш учитель подтверждает улыбкой, что увидел ваш сигнал, говоря: «Да…» (переданное сообщение, поощряющее вас задать свой вопрос - учитель любит, когда ему задают вопросы), и затем вы задаете свой вопрос (т. е. передаете свое сообщение учителю). Учитель слышит ваш вопрос (принимает сообщение-вопрос) и отвечает (передает ответ вам). Еще раз мы видим, что передача и прием сообщений, а также набор выполняемых при этом общепринятых действий составляют суть данного протокола вопросов-и-ответов. Сетевые протоколы Сетевой протокол похож на социальный протокол, только объектами, обменивающимися сообщениями и выполняющими действия, в данном случае являются аппаратные или программные компоненты некоторого устройства (например, компьютера, смартфона, планшета, маршрутизатора или любого другого, обладающего возможностью работы в сети). Все действия в Интернете, предпринимаемые двумя или более взаимодействующими удаленными объектами, регулируются протоколом. Например, аппаратным образом реализованные протоколы в двух физически соединенных компьютерах управляют потоком данных по «проводу» между двумя сетевыми интерфейсными платами; протоколы, отслеживающие перегрузки сети в конечных системах, управляют скоростью передачи пакетов между отправителем и получателем; протоколы в маршрутизаторах определяют путь пакетов от источника к приемнику. Протоколы выполняются в Интернете повсе- 32 Компьютерные сети и Интернет местно, и поэтому бóльшая часть данной книги посвящена протоколам компьютерных сетей. В качестве примера протокола компьютерной сети, который вам, вероятно, знаком, рассмотрим, что происходит, когда вы отправляете запрос на веб-сервер, то есть, когда вы набираете URL-адрес веб-страницы в своем веб-браузере. Сценарий иллюстрирует правая часть рис. 1.2. Сначала ваш компьютер передает сообщение с запросом о подключении на веб-сервер и ожидает ответа. Веб-сервер в итоге получает ваше сообщение с запросом на подключение и возвращает ответное сообщение о подключении. Зная, что теперь можно запросить веб-документ, ваш компьютер посылает затем имя веб-страницы, которую он хочет получить с веб-сервера, в сообщении GET. Теперь, наконец, веб-сервер возвращает веб-страницу (файл) в ваш компьютер. Как показано в приведенных выше примерах человеческого и сетевого протоколов, обмен сообщениями и действия, предпринимаемые при передаче и приеме этих сообщений, являются ключевыми определяющими элементами протокола: Протокол определяет формат и порядок сообщений, которыми обмениваются два или более взаимодействующих объектов, а также действия, предпринимаемые при передаче и/или приеме сообщения либо при возникновении другого события. Интернет и компьютерные сети в целом широко используют протоколы. Разные протоколы применяются для выполнения разных задач связи. По мере чтения этой книги вы узнаете, что некоторые протоколы простые и очевидные, тогда как другие сложные и глубоко продуманные. Освоение области компьютерных сетей эквивалентно поиску ответов на вопросы что, почему и как в отношении сетевых протоколов. 1.2. Периферия сети В предыдущем разделе мы представили схематичный обзор Интернета и сетевых протоколов. Сейчас мы собираемся «копнуть» чуть глубже в компоненты компьютерной сети (и Интернета в частности). Мы начнем в этом разделе с границы сети и взглянем на компоненты, которые нам наиболее знакомы - а именно компьютеры, смартфоны и другие устройства, используемые нами ежедневно. В следующем раз- 33 Глава 1 деле мы перейдем от периферии к ядру сети и рассмотрим коммутацию и маршрутизацию в компьютерных сетях. И С ТО Р И Я Ошеломляющее множество конечных систем Интернета Не так давно устройствами конечных систем, подключенными к Интернету, были в основном обычные компьютеры, такие как настольные ПК и мощные серверы. Со второй половины 1990-х и вплоть до нашего времени множество интересных устройств подключаются к Интернету, используя свои возможности передавать и получать цифровые данные. Принимая во внимание вездесущность Интернета, его хорошо определенные (стандартизованные) протоколы и доступность современного бытового оборудования, вполне естественно стремление подключить все эти устройства в сеть и к серверам, уже соединенным с Интернетом. Многие из этих устройств находятся дома - игровые видеоприставки (например, Xbox компании Microsoft), телевизоры с функцией Smart TV, цифровые фоторамки с функцией загрузки изображений, стиральные машины, холодильники и даже тостеры, которые получают метеорологический прогноз (например, смешанные облака и солнце) и запекают его на утренний тост44. В IP-телефонах, оснащенных GPS-функциями, зависящих от места нахождения службы (карты, информация о ближайших сервисах или людях) находятся под кончиками пальцев. Объединенные в сеть датчики, встроенные в физическую среду, позволяют отслеживать состояния зданий, мостов, сейсмическую активность, ареалы проживания диких животных, производить мониторинг устьев рек и предоставлять информацию о погоде. Биомедицинские устройства могут встраиваться и объединяться в сеть внутри человеческого тела. При таком разнообразии устройств, соединенных вместе, Интернет на самом деле становится «Интернетом вещей»252. Вспомните из предыдущего раздела, что на профессиональном жаргоне компьютеры и другие устройства, подключенные к Интернету, часто называют конечными системами. Это объясняется тем, что, как показано на рис. 1.3, они находятся на внешнем краю Интернета. К конечным системам относятся настольные компьютеры (под управлением операционных систем Windows, Mac и Linux), серверы (например, почтовые и веб-серверы), а также мобильные компьютеры (включая ноутбуки, смартфоны и планшеты). Кроме того, в качестве конечных систем к Интернету присоединяется растущее число нетрадиционных устройств (см. вставку на странице). 34 Компьютерные сети и Интернет Рис. 1.3. Взаимодействие конечных систем Конечные системы называются также хостами, так как на них находятся (т. е. выполняются) прикладные программы, такие как веббраузер, приложение веб-сервера и клиентская программа электронной почты или программное обеспечение почтового сервера. В этой книге термины «хосты» и «конечные системы» взаимозаменяемы; а именно хост = конечная система. Хосты иногда дополнительно подразделяются на две категории: клиенты и серверы. Проще говоря, клиентами, как правило, являются настольные и мобильные персональные компьютеры, смартфоны и другие устройства, тогда как серверы - это обычно более мощные машины, которые хранят и рассылают веб-страницы, передают потоковое видео, перенаправляют электронную почту и выполняют другие операции. Сегодня большинство серверов, с которых мы получаем результаты поиска, электронную почту, веб-страницы и видео, находятся в больших центрах 35 Глава 1 обработки данных (дата-центрах). Например, Google имеет 30–50 центров обработки данных, причем во многих из них находится более сотни тысяч серверов. 1.2.1. Сети доступа Рассматривая приложения и конечные системы на «границе» сети, давайте далее проанализируем сеть доступа - сеть, которая физически соединяет конечную систему с первым маршрутизатором (также известным как «граничный маршрутизатор») на пути от конечной системы к любой другой удаленной конечной системе. Рис. 1.4. Сети доступа На рис. 1.4 показано несколько типов сетей доступа с жирными, закрашенными линиями и средой (домашняя, корпоративная и глобальная сеть беспроводной мобильной связи), в которой они используются. 36 Компьютерные сети и Интернет Домашний доступ: DSL, кабельный, FTTH, коммутируемый и спутниковый В развитых странах сегодня более 65% семей имеют доступ в Интернет, причем Корея, Нидерланды, Финляндия и Швеция лидируют с показателем 80%, причем почти все пользователи подключены через высокоскоростные широкополосные соединения255, 256. Недавно в Финляндии и Испании объявили, что высокоскоростной доступ в Интернет должен быть «законным правом» жителей этих стран. Принимая во внимание такую сильную заинтересованность в домашнем доступе, давайте начнем наш обзор сетей доступа с того, что рассмотрим способы подключения домов к Интернету. Сегодня двумя доминирующими типами широкополосного доступа в Интернет по месту жительства являются абонентская цифровая линия (digital subscriber line, DSL) и кабель. Обычно квартира (или другое местопребывание) получает DSL-доступ в Интернет от той же телефонной компании, которая предоставляет проводную местную связь. Таким образом, когда используется технология DSL, телефонная компания клиента является также и поставщиком услуг Интернета. Как показано на рис. 1.5, DSL-модем каждого клиента использует существующую телефонную линию (медный провод в виде витой пары, который будет рассмотрен в разделе 1.2.2) для обмена данными с мультиплексором доступа по абонентской цифровой линии (DSLAM), находящимся в местном центральном офисе телефонной компании. Домашний DSL-модем принимает цифровые данные и преобразует их в высокочастотные тональные сигналы для передачи по телефонным проводам в центральный офис; аналоговые сигналы из множества таких домов преобразуются обратно в цифровой сигнал в DSLAM. По абонентской телефонной линии одновременно передаются как данные, так и традиционные телефонные сигналы, которые кодируются с разными частотами: высокоскоростной входной канал, в диапазоне от 50 кГц до 1 МГц; среднескоростной выходной канал в диапазоне от 4 кГц до 50 кГц; обычный двухпроводной телефонный канал в диапазоне от 0 до 4 кГц. При таком подходе один DSL-канал делится на три отдельных для того, чтобы его могли одновременно совместно использовать телефонные вызовы и Интернет-подключение. (Мы обсудим эту технологию частотного мультиплексирования в разделе 1.3.1.) 37 Глава 1 Рис. 1.5. DSL-доступ в Интернет На стороне клиента разветвитель разделяет поступающие в квартиру сигналы данных и телефонных вызовов и направляет сигнал данных в DSL-модем. На стороне телефонной компании, в центральном офисе, мультиплексор доступа по цифровой абонентской линии (DSLAM) разделяет сигналы данных и телефонных вызовов и передает данные в Интернет. К одному мультиплексору DSLAM подключены сотни или даже тысячи семей137. В стандартах DSL определены скорости передачи, равные 12 Мбит/с на входе и 1,8 Мбит/с на выходе249, а также 24 Мбит/с для входных данных и 2,5 Мбит/с для выходных данных250. Так как скорости передачи исходящих и входящих данных разные, говорят, что доступ асимметричный. Фактические скорости передачи входных и выходных данных могут быть меньше скоростей, приведенных выше, так как поставщик DSL-служб может намеренно ограничивать скорости обмена данными домашних пользователей, если предоставляются многоуровневые услуги (разные скорости, доступные по разным ценам) либо по причине ограничения максимальной скорости передачи в зависимости от расстояния между домом и центральным офисом, пропускной способности витой пары и уровня электрических помех. Разработчики рассчитывали, что DSL будет применяться на коротких расстояниях между квартирами и центральным офисом; в целом, если место проживания находится далее 8–16 км от центрального офиса, следует использовать альтернативные способы доступа в Интернет. В то время как технологией DSL используется существующая местная инфраструктура телефонной компании, кабельный доступ в Интернет организуется с помощью существующей кабельной телевизионной инфраструктуры, предоставленной компанией кабельного телевиде- 38 Компьютерные сети и Интернет ния. Именно от нее пользователь получает кабельный доступ в Интернет. Как показано на рис. 1.6, головная кабельная станция посредством оптоволоконного кабеля подключается к разветвлениям уровня района или квартала, от которых дальше идет обычный коаксиальный кабель, используемый для подключения отдельных домов и квартир. Каждым районным разветвлением обычно поддерживается от 500 до 5000 домов. Так как в этой системе используются и волоконно-оптические, и коаксиальные кабели, ее часто называют гибридной оптико-коаксиальной (hybrid fiber-coaxial, HFC) кабельной сетью. Рис. 1.6. Гибридная оптико-коаксиальная сеть доступа Для кабельного доступа в Интернет требуются специальные модемы, называемые кабельными модемами. Как и в случае с DSL-модемом, кабельный модем обычно является внешним устройством и подсоединяется к домашнему персональному компьютеру через Ethernet-порт. (Мы подробно рассмотрим технологию Ethernet в главе 5.) Терминальная станция кабельных модемов (Cable modem termination system, CMTS) выполняет аналогичные функции, что и мультиплексор DSLAM в DSLсети - преобразует исходящий аналоговый сигнал множества домашних кабельных модемов в цифровой формат. Кабельные модемы делят гибридную оптокоаксиальную кабельную сеть на два канала, нисходящий и восходящий. Как и в случае DSL, доступ обычно асимметричный: для нисходящего канала, как правило, выделяется более высокая скорость передачи данных, чем для восходящего. Стандартом DOCSIS 2.0 определяются стандартные скорости для нисходящего потока данных - до 42,8 Мбит/с и для восходящего потока данных - до 30,7 Мбит/с. Как 39 Глава 1 в случае DSL-сетей, максимально доступная скорость может быть нереализуема из-за более низких скоростей передачи данных, обусловленных договором или повреждениями средств коммуникации. Важная особенность кабельного доступа в Интернет состоит в том, что он является совместно используемым средством вещания. В частности, каждый пакет, передаваемый головной станцией, путешествует в нисходящем направлении по каждому каналу во все дома, а каждый пакет, передаваемый домом, путешествует по восходящему каналу в головную станцию. По этой причине, если несколько пользователей одновременно загружают видеофайл по нисходящему каналу, фактическая скорость передачи данных, с которой каждый пользователь принимает свой видеофайл, значительно меньше, чем суммарная скорость передачи нисходящих данных по кабелю. С другой стороны, если имеется лишь несколько активных пользователей и все они путешествуют по Интернету, то каждый может фактически загружать веб-страницы при максимальной скорости передачи нисходящих данных по кабелю, так как веб-страницы редко запрашиваются точно в одно время. Поскольку канал восходящих данных также используется совместно, необходим протокол распределенного множественного доступа, чтобы координировать передачи данных и избегать конфликтов. (Некоторые аспекты проблемы конфликтов мы рассмотрим в главе 5.) Хотя в США в настоящее время DSL и кабельные сети составляют более 90 процентов домашнего широкополосного доступа в Интернет, перспективной технологией, которая обеспечивает еще более высокие скорости передачи данных, является развертывание оптоволоконных линий до самой квартиры (Fiber To The Home, FTTH)175. Как следует из самого названия технологии, идея FTTH проста - предоставление волоконно-оптического соединения от центрального офиса напрямую в дом. В Соединенных Штатах Америки компания Verizon особенно настойчиво предлагает FTTH со своей службой FIOS646. Существует несколько конкурирующих технологий, использующих оптические соединения между центральным офисом и домами. Простейшая оптическая распределительная сеть называется прямой волоконнооптической сетью, с одним волоконно-оптическим кабелем, выходящим из центрального офиса, для каждого дома. Более распространенный вариант, когда каждый волоконно-оптический кабель, выходящий из центрального офиса, на практике совместно используется множеством зданий; только после того, как кабель доходит достаточно близко до домов, он разделяется на отдельные для каждого конкретного клиента. Су- 40 Компьютерные сети и Интернет ществует две конкурирующие сетевые архитектуры с распределением данных по оптическим каналам, которые выполняют такое разделение: активные оптические сети (active optical networks, AON) и пассивные оптические сети (passive optical networks, PON). По существу AON - это переключаемый Ethernet, который рассматривается в главе 5. Здесь мы кратко обсудим технологию PON, которая используется в службе FIOS компании Verizon. На рис. 1.7 показана технология развертывания волоконной оптики до квартиры (FTTH), использующая архитектуру распределения PON. Рис. 1.7. Доступ в Интернет по технологии FTTH В каждом доме имеется терминатор оптической сети (ТОС), который соединяется по выделенному волоконно-оптическому кабелю с районным разветвителем. Данное устройство соединяет ряд домов (обычно менее 100) с одним совместно используемым оптическим кабелем, который, в свою очередь, подключен к терминатору оптической линии (ТОЛ) в центральном офисе телекоммуникационной компании. ТОЛ, обеспечивающий преобразование между оптическими и электрическими сигналами, соединяется с Интернетом через маршрутизатор телекоммуникационной компании. В доме пользователи подключают к ТОС домашний маршрутизатор (обычно беспроводной) и получают доступ к Интернету через него. В архитектуре PON все пакеты, передаваемые из ТОЛ в разветвитель, дублируются в разветвителе (аналогично головной кабельной станции). Технология FTTH позволяет предоставлять доступ в Интернет со скоростями вплоть до нескольких гигабит/с. Однако большинство Интернет-провайдеров, работающих по технологии FTTH, предлагают 41 Глава 1 варианты доступа с разной скоростью, при этом, чем выше скорость, тем больше цена. Средняя скорость передачи входящих данных для пользователей технологии FTTH в США составляла в 2011 году 20 Мбит/с (по сравнению с 13 Мбит/с для сетей с кабельным доступом и менее чем 5 Мбит/с для технологии DSL)176. Для обеспечения домов доступом в Интернет используются также еще две технологии сетей доступа. Там, где отсутствуют DSL, кабель и FTTH (например, в сельской местности), может использоваться спутниковый канал для подключения к Интернету на скорости свыше 1 Мбит/с. К поставщикам такого спутникового доступа относятся StarBand и HughesNet. Коммутируемый доступ по традиционным телефонным линиям основан на той же модели, что и DSL - домашний модем подключается по телефонной линии к модему Интернетпровайдера. По сравнению с DSL и другими широполосными сетями коммутируемый доступ является невыносимо медленным, обеспечивая максимальную скорость всего лишь 56 Кбит/с. Доступ на предприятии (и дома): Ethernet и Wi-Fi В корпоративных и университетских городках и все в большей степени в домашних условиях для подключения конечных систем к граничным маршрутизаторам используются локальные вычислительные сети или ЛВС (Local Area Networks, или LAN). Хотя существует много типов технологий ЛВС, Ethernet является безоговорочно самой распространенной в корпоративных, университетских и домашних сетях. Как показано на рис. 1.8, пользователи Ethernet применяют витую медную пару для подключения к Ethernet-коммутатору. Рис. 1.8. Доступ в Интернет по технологии Ethernet 42 Компьютерные сети и Интернет Эта технология подробно рассматривается в главе 5. Ethernetкоммутатор или сеть таких взаимосвязанных коммутаторов затем в свою очередь соединяется с более крупной сетью Интернет. Используя Ethernet, пользователи обычно имеют доступ к Ethernet-коммутатору на скорости 100 Мбит/с, тогда как для серверов может обеспечиваться доступ на скорости 1 Гбит/с или даже 10 Гбит/с. Тем не менее пользователи все в большей степени получают доступ в Интернет по беспроводной связи с ноутбуков, смартфонов, планшетов и других устройств (см. выше врезку «Ошеломляющее множество конечных систем Интернета»). В окружении беспроводных ЛВС пользователи беспроводной связи передают (принимают) пакеты в точку доступа, которая соединена с корпоративной сетью (обычно содержащей также и проводной Ethernet), подключенной в свою очередь к проводному Интернету. Пользователь беспроводной ЛВС обычно должен находиться в пределах десятков метров от точки доступа. В наше время беспроводной доступ к ЛВС, основанный на технологии IEEE 802.11, которую чаще называют Wi-Fi, присутствует повсеместно - в университетах, бизнес-центрах, кафе, аэропортах, домах и даже в самолетах. Во многих городах человек, стоя на углу улицы, будет находиться в диапазоне действия десяти или двадцати базовых станций (вы можете поглядеть глобальную карту сети базовых станций 802.11, сделанную энтузиастами, которые любят такие вещи666). Технология 802.11 на сегодняшний день обеспечивает разделяемый доступ на скоростях до 54 Мбит/c. Подробнее об этом говорится в главе 6. Несмотря на то, что Ethernet и Wi-Fi-сети первоначально были разработаны как корпоративные, в последнее время они стали достаточно широко применяться в качестве компонентов домашних сетей. Во многих домах абонентам предоставляется широкополосный доступ по кабельным модемам или DSL совместно с этой достаточно недорогой технологией ЛВС для создания мощных домашних сетей148. На рис. 1.9 представлена типичная домашняя сеть, состоящая из беспроводного ноутбука, а также проводного персонального компьютера, базовой станции (точки доступа к беспроводной сети), которая соединяется с ноутбуком, кабельного модема, предоставляющего широкополосный доступ в Интернет, и маршрутизатора, связывающего базовую станцию и стационарный персональный компьютер с кабельным модемом. Такая сеть позволяет членам семьи иметь широкополосный доступ в Интернет, как со стационарного персонального компьютера, так и с ноутбука, который можно перемещать при этом по комнатам. 43 Глава 1 Рис. 1.9. Типичная домашняя сеть Беспроводной мобильный доступ: 3G и LTE Все больше растет количество таких устройств, как смартфоны и планшеты под управлением операционных систем iOS, BlackBerry и Android. Такие аппараты применяются для отправки почты, просмотра веб-страниц, общения в Twitter, загрузки музыки и используют ту же самую беспроводную инфраструктуру, которая применяется в сотовой телефонии для отправки/получения пакетов через базовую станцию, обслуживаемую оператором мобильной связи. Но, в отличие от технологии Wi-Fi, в данном случае пользователь может находиться на расстоянии нескольких десятков километров от базовой станции (а не десятков метров). Телекоммуникационные компании вложили огромные инвестиции в беспроводные мобильные сети третьего поколения (3G), которые обеспечивают доступ в Интернет, используя беспроводные технологии доступа с коммутацией пакетов на скоростях, превышающих 1 Мбит/с. Более того, уже разработаны сети четвертого поколения (4G), использующие технологии мобильного доступа на более высоких скоростях. Технология LTE (Long-Term Evolution, буквально с англ. - долговременное развитие) своими корнями уходит в 3G-технологию и может потенциально предоставлять скорости, превышающие 10 Мбит/с. И уже в некоторых рекламных объявлениях сообщается о входящих скоростях в несколько десятков Мбит/с. Мы изучим основные принципы беспроводных сетей, а также технологии мобильного доступа, такие как Wi-Fi, 3G, LTE и другие в главе 6. 44 Компьютерные сети и Интернет 1.2.2. Физические среды передачи данных В предыдущем подразделе мы сделали краткий обзор некоторых наиболее важных технологий сетевого доступа в Интернет. Когда мы описывали эти технологии, мы также упоминали используемые физические среды передачи данных. Например, мы сказали, что технология HFC использует комбинацию оптоволоконного и коаксиального кабелей. Мы также упомянули, что в DSL и Ethernet применяется медный кабель (или медную витую пару), а в сетях мобильного доступа - радиочастотный сигнал. В этом подразделе мы дадим краткое описание этих и других сред передачи, которые чаще всего используются в Интернете. Для того чтобы определить, что подразумевается под понятием физической среды, давайте рассмотрим короткую жизнь одного бита. Представим себе бит, путешествующий от одной конечной системы к другой сквозь сеть каналов и маршрутизаторов. Несчастный бит толкают и передают несчетное число раз. Исходная конечная система вначале передает бит, вскоре после этого первый маршрутизатор на пути получает его; затем он передает бит дальше, вскоре после этого второй маршрутизатор его получает и так далее. Таким образом, наш бит, путешествуя от источника к месту назначения, проходит несколько пар «отправительполучатель». В каждой такой паре он пересылается с помощью распространяемых электромагнитных волн либо с помощью оптического импульса через физическую среду. Последняя может принимать различные формы, в том числе меняться для каждой пары «отправительполучатель». Примеры физической среды - это витая пара медной проволоки, коаксиальный кабель, многомодовый оптоволоконный кабель, наземный радиочастотный канал и спутниковый радиоканал. Физическая среда делится на две категории: проводная среда и беспроводная среда. В проводной среде волны распространяются по твердому носителю, такому, как оптоволоконный кабель, медная витая пара или коаксиальный кабель. В беспроводной среде волны распространяются в атмосфере или в окружающем пространстве, например в беспроводной ЛВС или в цифровом спутниковом канале. Но перед тем как рассмотреть некоторые характеристики различных типов сред, давайте скажем пару слов об их стоимости. Фактическая стоимость физического соединения (медного кабеля, оптоволоконного кабеля и так далее) обычно значительно меньше, чем у других компонентов сети. По этой причине при строительстве зданий очень часто одновременно прокладываются все виды кабелей: медная пара, оптово- 45 Глава 1 локно, коаксиальный кабель, и даже если первоначально используется один из носителей, не исключена возможность, что в ближайшем будущем может возникнуть потребность в другом и будут сэкономлены немалые средства, так как нужный кабель уже проложен. Медная витая пара Наиболее дешевой и распространенной средой передачи является медная витая пара. На практике более 99% кабелей, соединяющих различные телефонные устройства с телефонными коммутаторами, представляют собой именно ее. Многие из нас встречались с ней либо дома, либо на работе. Витая пара состоит из двух изолированных медных проводов, каждый из которых имеет толщину около 1 мм, заключенных в обычную спиральную оболочку. Провода переплетены друг с другом для уменьшения электрических помех, идущих от находящихся рядом проводов. Обычно несколько пар проводов объединяют вместе в один кабель и помещают их в защитный экран. Каждая пара представляет собой одно соединение связи. Неэкранированная витая пара (Unshielded twisted pair, UTP) используется обычно в локальных сетях внутри здания, то есть в ЛВС. Скорость передачи данных для ЛВС, использующих витую пару, на сегодняшний момент варьируется в пределах от 10 Мбит/с до 10 Гбит/с. Зависит скорость от толщины провода, а также от расстояния между источником и приемником. С появлением оптоволоконной технологии в 80-е годы многие стали критиковать витую пару за ее относительно низкие скорости передачи. Некоторые даже считали, что оптоволокно ее полностью вытеснит. Но витая пара оказалась гораздо более живучей. Современные технологии такого рода, в частности, кабели категории 6a, позволяют передавать информацию со скоростью до 10 Гбит/с в радиусе до 100 метров. В конце концов витая пара стала доминирующей технологией в создании высокоскоростных локальных сетей. Как было указано выше, витая пара широко используется и при стационарном подключении к Интернету. Также упоминалось, что технология коммутируемого доступа через модем позволяет передавать данные по кабелю «витая пара» со скоростью до 56 Кбит/с. Кроме того, мы видели, что технологии DSL (digital subscriber line) используют витую пару, обеспечивая для абонентов доступ в Интернет на скоростях в десятки мегабит в секунду (когда пользователи находятся недалеко от модема Интернет-провайдера). 46 Компьютерные сети и Интернет Коаксиальный кабель Так же как и витая пара, коаксиальный кабель состоит из двух медных проводников, только эти проводники расположены не параллельно, а концентрически (или коаксиально). С помощью такой конструкции, а также благодаря специальной изоляции и экранирования, коаксиальный кабель позволяет достичь высоких скоростей передачи данных. Он часто используется в системах кабельного телевидения. Как мы уже видели раньше, системы кабельного телевидения в сочетании с кабельными модемами могут обеспечивать для абонентов доступ в Интернет на скоростях в десятки мегабит в секунду. В кабельном телевидении, а также в кабельных сетях доступа передатчик переносит цифровой сигнал в определенную полосу частот, и затем результирующий аналоговый сигнал посылается от передатчика к одному или нескольким приемникам. Коаксиальный кабель может использоваться как разделяемая проводная среда. К кабелю могут быть непосредственно подключены несколько конечных систем, и каждая из них может принимать сигнал, передаваемый другими конечными системами. Оптоволоконный кабель Оптоволокно - это тонкий, гибкий кабель, по которому распространяются световые импульсы, представляющие собой биты информации. Один оптоволоконный кабель может передавать данные на очень значительных скоростях: от десятков до сотен гигабит в секунду. Они не подвержены электромагнитным помехам, имеют очень низкий уровень затухания сигнала на расстояниях до 100 километров, а также устойчивы к механическим воздействиям. Эти характеристики сделали оптоволоконный кабель, в частности, предпочтительной средой передачи данных для межконтинентальных линий связи. Во многих телефонных линиях связи огромной протяженности в Соединенных Штатах Америки и других странах используются исключительно оптоволоконные кабели, однако высокая стоимость оптических устройств - таких как передатчики, приемники и коммутаторы - делает невыгодным их применение для передачи данных на короткие расстояния, например, в ЛВС, либо в сетях домашнего доступа. Оптические носители (Optical Carrier, OC) предлагают скорости передачи от 51,8 Мбит/с до 39,8 Гбит/с. В стандартах они обычно описываются как OC-n, где скорость соединения равна n×51,8 Мбит/с. На сегодняшний день используются такие стандарты, как OC-1, OC-3, OC-12, OC-24, OC-48, OC-96, OC-192, OC-768. Источники359, 408 раскрывают различные аспекты оптических сетей. 47 Глава 1 Наземные радиоканалы В радиоканалах сигналы передаются посредством электромагнитных волн радиодиапазона. Такая среда передачи очень привлекательна тем, что она не требует физического носителя, может обеспечивать соединение с мобильными пользователями, передачу сигнала на достаточно дальние расстояния, при этом сигнал способен проникать сквозь стены и другие препятствия. Характеристики радиоканала в значительной степени зависят от среды распространения и от расстояния, на которое передается сигнал. Факторами среды обусловлены такие явления, как потери при распространении и затухание сигнала (когда уровень сигнала уменьшается в результате прохождения большого расстояния, а также огибания препятствий), многолучевое затухание (вследствие отражения сигнал

Обзор технологий