Эндрю Уэзеролл - Компьютерные сети. 5-е издание
- Название:Компьютерные сети. 5-е издание
- Автор:
- Жанр:
- Издательство:Питер
- Год:2011
- ISBN:9785446100682
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Уэзеролл - Компьютерные сети. 5-е издание краткое содержание
Компьютерные сети. 5-е издание - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
компаниями). Фактически может изменяться сам протокол уровня, так что уровней выше и ниже это не затронет.
Рис. 1.11. Уровни, протоколы и интерфейсы
Набор уровней и протоколов называется архитектурой сети. Спецификация архитектуры должна содержать достаточно информации для написания программного обеспечения или создания аппаратуры для каждого уровня, чтобы они корректно выполняли требования протокола. Ни детали реализации, ни спецификации интерфейсов не являются частями архитектуры, так как они спрятаны внутри машины и не видны снаружи. При этом даже не требуется, чтобы интерфейсы на всех машинах сети были одинаковыми, лишь бы каждая машина правильно применяла все протоколы. Список протоколов, используемых системой, по одному протоколу на уровень, называется стеком протоколов. Сетевые архитектуры, стеки протоколов и сами протоколы и являются основной темой данной книги.
Чтобы было проще понять идею многоуровневого общения, можно воспользоваться следующей аналогией. Представьте себе двух философов (одноранговый процесс уровня 3), один из которых говорит на урду и английском, а другой — на китайском и французском. Поскольку нет общего языка, на котором они смогли бы общаться, каждый из них использует переводчика (одноранговый процесс уровня 2), каждый из которых, в свою очередь, нанимает секретаршу (одноранговый процесс уровня 1). Философ 1 желает выразить своему собеседнику свою привязанность к виду oryctolagus cuniculus. Для этого он передает сообщение (на английском) по интерфейсу 2/3 своему переводчику, говоря «я люблю кроликов», как изображено на рис. 1.12. Переводчики договорились общаться на нейтральном языке, голландском, таким образом, сообщение преобразуется к виду «Ik hou van konijnen». Выбор языка является протоколом второго уровня и осуществляется одноранговыми процессами уровня 2.
Местоположение А Местоположение В
Рис. 1.12. Архитектура философ-переводчик-секретарь
Затем переводчик отдает сообщение секретарю для передачи, например, по электронной почте (протокол первого уровня). Когда сообщение получено другим секретарем, оно переводится на французский и через интерфейс 2/3 передается философу 2. Заметим, что каждый протокол полностью независим от других, поскольку интерфейсы одинаковы с каждой стороны. Переводчики могут переключиться с голландского, скажем, на финский, при условии, что оба будут согласны, при этом в интерфейсах второго уровня с первым или с третьим уровнем ничего не изменится. Подобным же образом секретари могут сменить факс на электронную почту или телефон, не затрагивая (и даже не информируя) другие уровни. Каждое изменение добавит лишь обмен информацией на своем уровне. Эта информация не будет передаваться на более высокий уровень.
Теперь рассмотрим более технический пример: как обеспечить общение для верхнего уровня пятиуровневой сети на рис. 1.13. Сообщение M производится приложением, работающим на уровне 5, и передается уровню 4 для передачи. Уровень 4 добавляет к сообщению заголовокдля идентификации сообщения и передает результат уровню 3. Заголовок включает управляющую информацию, например адреса, позволяющие уровню 4 принимающей машины доставить сообщения. Другими примерами управляющей информации, используемой в некоторых уровнях, являются порядковые номера (в случае если нижний уровень не сохраняет порядок сообщения), размеры и время.
Рис. 1.13.Пример потока информации на уровне 5
Во многих сетях сообщения, передаваемые на уровне 4, не ограничиваются по размеру, однако подобные ограничения почти всегда накладываются на протокол третьего уровня. Соответственно, уровень 3 должен разбить входящие сообщения на более мелкие единицы — пакеты, предваряя каждый пакет заголовком уровня 3. В данном примере сообщение M разбивается на две части, M tи M 2.
Уровень 3 решает, какую из выходных линий использовать, и передает пакеты уровню 2. Уровень 2 добавляет не только заголовки к каждому пакету, но также и завершающую последовательность с контрольной суммой (trailer), после чего передает результат уровню 1 для физической передачи. На получающей машине сообщение двигается по уровням вверх, при этом заголовки убираются на каждом уровне по мере продвижения сообщения. Заголовки нижних уровней более высоким уровням не передаются.
Необходимо понять соотношение между виртуальным и реальным общением и разницу между протоколом и интерфейсом. Одноранговые процессы уровня 4, например, считают свое общение горизонтальным, использующим протокол 4-го уровня. У каждого из них имеется процедура с названием вроде SendToOtherSide (Отправить другой стороне) и GetFromOtherSide (Получить от другой стороны), даже если на самом деле эти процедуры общаются не друг с другом, а с нижними уровнями при помощи интерфейсов 3/4.
Абстракция одноранговых процессов является ключевой для проектирования сетей. С ее помощью невыполнимая задача разработки целой сети может быть разбита на несколько меньших по размеру и вполне разрешимых проблем разработки, а именно разработки индивидуальных уровней.
Хотя этот раздел называется «Сетевое программное обеспечение», следует отметить, что нижние уровни в иерархии протоколов часто реализуются аппаратно или программно-аппаратно. Тем не менее при этом используются сложные алгоритмы протоколов, хотя они и внедряются в аппаратуру частично или целиком.
1.3.2. Разработка уровней
Некоторые из ключевых аспектов разработки, возникающие при создании компьютерных сетей, будут возникать от уровня к уровню. Ниже мы кратко опишем наиболее важные из них.
Надежность — проблема проектирования создания сети, которая работает правильно, даже если она составлена из набора компонентов, которые сами по себе ненадежны. Думайте о битах пакета, перемещающегося по сети. Есть шанс, что некоторые из этих битов будут получены поврежденными (инвертированными) из-за случайного электрического шума, случайных беспроводных сигналов, недостатков аппаратных средств, ошибок программного обеспечения и т. д. Возможно ли находить и исправлять эти ошибки?
Один из механизмов, для того чтобы найти ошибки в полученной информации использует коды для обнаружения ошибок. Информация, которая неправильно получена, может быть передана повторно, пока она не будет получена правильно. Более сильные коды учитывают устранение ошибки, где правильное сообщение восстанавливается из первоначально неправильно полученных битов. Оба эти механизма работают, добавляя избыточную информацию. Они используются в нижних уровнях, чтобы защитить пакеты, посланные по отдельным каналам, и в верхних уровнях, чтобы проверить, что было получено правильное содержание.
Читать дальшеИнтервал:
Закладка: