Компьютерные сети. Принц, техн, прот 1-303. Книга переведена на английский, испанский, китайский и португальский языки
Скачать 5.49 Mb.
|
Т[= 7м-уу2= 0,001513 с + (5000 км)/(200 000 км/с) = 0,001513 с + 0, 025 с = 0,026513 с. Ethernet – пример стандартной технологии с коммутацией пакетов Рассмотрим, каким образом описанные ранее концепции воплощены в одной из первых стандартных сетевых технологий – технологии Ethernet, работающей с битовой скоростью 10 Мбит/с. В этом разделе мы коснемся только самых общих принципов функционирования Ethernet (детальное описание технологии Ethernet приведено в части III этой книги). □ Топология. Существует два варианта технологии Ethernet: Ethernet на разделяемой среде и коммутируемый вариант Ethernet. В первом случае все узлы сети разделяют общую среду передачи данных, то есть сеть строится по топологии общей шины. На рис. 3.15 показан простейший вариант топологии – все компьютеры сети подключены к общей разделяемой среде, состоящей из одного сегмента коаксиального кабеля, который в данном случае является полудуплексным каналом связи. В том случае, когда сеть Ethernet не использует разделяемую среду, а строится на коммутаторах, объединенных дуплексными каналами связи, говорят о коммутируемом варианте Ethernet. Топология в этом случае является топологией дерева, то есть такой, при которой между двумя любыми узлами сети существует ровно один путь. Пример топологии коммутируемой сети Ethernet показан на рис. 3.16. Топологические ограничения (только древовидная структура связей коммутаторов) связаны со способом построения таблиц продвижения Ethernet-коммутаторами. □ Способ коммутации. В технологии Ethernet используется дейтаграммная коммутация пакетов. Единицы данных, которыми обмениваются компьютеры в сети Ethernet, называются кадрами. Кадр имеет фиксированный формат и наряду с полем данных содержит различную служебную информацию. В том случае, когда сеть Ethernet построена на коммутаторах, каждый коммутатор продвигает кадры в соответствии с теми принципами коммутации пакетов, которые были описаны ранее. А вот в случае односегментной сети Ethernet на разделяемой среде возникает законный вопрос: где же выполняется коммутация? Где хотя бы один коммутатор, который, как мы сказали, является главным элементом любой сети с коммутацией пакетов? Или же Ethernet поддерживает особый вид коммутации? Оказывается, «коммутатор» в односегментной сети Ethernet существует, но его не так просто разглядеть, потому что его функции распределены по всей сети между сетевыми адаптерами компьютеров и собственно разделяемой средой передачи сигналов. Интерфейсами этого виртуального коммутатора являются сетевые адаптеры, а функцию коммутационного блока – передачу кадров между интерфейсами – выполняет разделяемая среда. Адаптеры берут на себя и часть функций коммутационного блока: именно они решают, какой кадр адресован их компьютеру, а какой – нет. □ Адресация. Каждый компьютер, или, точнее, каждый сетевой адаптер, имеет уникальный аппаратный адрес (так называемый МАС-адрес, вы уже встречали этот акроним в главе 2). Ethernet-адрес является плоским числовым адресом. Поддерживаются адреса для индивидуальной, широковещательной и групповой рассылки. □ Разделение среды и мультиплексирование. В сети Ethernet на коммутаторах каждый канал является дуплексным каналом связи, вследствие чего проблемы его разделения между интерфейсами узлов не возникает. Передатчики Ethernet-коммутаторов используют дуплексные каналы связи для мультиплексирования потоков кадров от разных конечных узлов. В случае Ethernet на разделяемой среде конечные узлы применяют специальный метод доступа с целью синхронизации использования единственного полудуплексного канала связи, объединяющего все компьютеры сети. Единого арбитра в сети Ethernet на разделяемой среде нет, вместо этого все узлы прибегают к распределенному случайному методу доступа. Информационные потоки, поступающие от конечных узлов сети Ethernet, мультиплексируются в единственном передающем канале в режиме разделения времени. То есть кадрам разных потоков поочередно предоставляется канал. Чтобы подчеркнуть не всегда очевидную разницу между понятиями мультиплексирования и разделения среды, рассмотрим ситуацию, когда из всех компьютеров сети Ethernet только одному нужно передавать данные, причем данные нескольких приложений. В этом случае проблема разделения среды между сетевыми интерфейсами не возникает, в то время как задача передачи нескольких информационных потоков по общей линии связи (то есть мультиплексирование) остается. Кодирование. Адаптеры в Ethernet работают с тактовой частотой 20 МГц, передавая в среду прямоугольные импульсы, соответствующие единицам и нулям данных компьютера. Когда начинается передача кадра, все его биты передаются в сеть с постоянной скоростью 10 Мбит/с (каждый бит передается за два такта). Эта скорость определяет пропускную способность линии связи в сети Ethernet. Надежность. Для повышения надежности передачи данных в Ethernet используется стандартный прием – подсчет контрольной суммы и передача ее в концевике кадра. Если принимающий адаптер путем повторного подсчета контрольной суммы обнаруживает ошибку в данных кадра, то такой кадр отбрасывается. Повторная передача кадра протоколом Ethernet не выполняется - эта задача должна решаться средствами более высокого уровня, например, протоколом TCP в сетях TCP/IP. Очереди. В те периоды времени, когда среда занята передачей кадров других сетевых адаптеров, данные приложений (предложенная нагрузка) по-прежнему поступают в сетевой адаптер. Так как они не могут быть переданы в это время в сеть, то начинают накапливаться во внутреннем буфере Ethernet-адаптера, образуя очередь. Поэтому в сети Ethernet, как и во всех сетях с коммутацией пакетов, существуют переменные задержки доставки кадров. ГЛАВА 4 Стандартизация и классификация сетей Декомпозиция задачи сетевого взаимодействия Сетевая архитектура - это концептуальная схема функционирования компьютерной сети, определяющая принципы работы аппаратных и программных сетевых компонентов, организацию их связей, протоколы взаимодействия и способы физической передачи данных. Архитектура сети отражает декомпозицию общей задачи взаимодействия компьютеров на отдельные подзадачи, которые должны решаться отдельными компонентами сети – конечными узлами (компьютерами) и промежуточными узлами (коммутаторами и маршрутизаторами). Многоуровневый подход Для решения сложных задач, к которым относится и задача сетевого взаимодействия, используется известный универсальный прием – декомпозиция, то есть разбиение одной сложной задачи на несколько более простых задач-модулей. Декомпозиция состоит в четком определении функций каждого модуля, а также порядка их взаимодействия (то есть межмодульных интерфейсов). При таком подходе каждый модуль можно рассматривать как «черный ящик», абстрагируясь от его внутренних механизмов и концентрируя внимание на способе взаимодействия модулей. В результате такого логического упрощения задачи появляется возможность независимого тестирования, разработки и модификации модулей. Так, любой из показанных на рис. 4.1 модулей может быть переписан заново. Пусть, например, это будет модуль А, и если при этом разработчики сохранят без изменения межмодульные связи (в данном случае – интерфейсы АВ и А–С), то это не потребует никаких изменений в остальных модулях. Еще более эффективной концепцией, развивающей идею декомпозиции, является многоуровневый подход. После представления исходной задачи в виде множества модулей эти модули группируют и упорядочивают по уровням, образующим иерархию. В соответствии с принципом иерархии для каждого промежуточного уровня можно указать непосредственно примыкающие к нему соседние вышележащий и нижележащий уровни (рис. 4.2). С одной стороны, группа модулей, составляющих каждый уровень, для решения своих задач должна обращаться с запросами только к модулям соседнего нижележащего уровня. С другой стороны, результаты работы каждого из модулей, отнесенных к некоторому уровню, могут быть переданы только модулям соседнего вышележащего уровня. Такая иерархическая декомпозиция задачи предполагает четкое определение функций и интерфейсов не только отдельных модулей, но и уровней в целом. Рис. 4.1. Пример декомпозиции задачи Рис. 4.2. Многоуровневый подход – создание иерархии задач Межуровневый интерфейс, называемый также интерфейсом услуг, определяет набор функций, которые нижележащий уровень предоставляет вышележащему (рис. 4.3). К уровню к + 2 Такой подход дает возможность проводить разработку тестирование и модификацию отдельного уровня независимо от других уровней. Иерархическая декомпозиция позволяет, двигаясь от более низкого уровня к более высокому переходить ко все более и более абстрактному а значит более простому представлению исходной задачи. Среди функций, которые может запросить прикладная программа, обращаясь к верхнему уровню файловой системы, может быть, например, такая: ПРОЧИТАТЬ 22 ЛОГИЧЕСКУЮ ЗАПИСЬ ФАЙЛА DIR1/MY/FILE.TXT Верхний уровень не может выполнить этот запрос «только своими силами»; определив по символьному имени DIR1/MY/FILE. TXT физический адрес файла, он обращается с запросом к нижележащему уровню: ПРОЧИТАТЬ 22 ЛОГИЧЕСКУЮ ЗАПИСЬ ИЗ ФАЙЛА, ИМЕЮЩЕГО ФИЗИЧЕСКИЙ АДРЕС 174 И РАЗМЕР 235 В ответ на запрос второй уровень определяет, что файл с адресом 174 занимает на диске пять несмежных областей, а искомая запись находится в четвертой области в физическом блоке 345. После этого он обращается к драйверу с запросом о чтении требуемой логической записи. В соответствии с этой упрощенной схемой взаимодействие уровней файловой системы является однонаправленным – сверху вниз. Однако реальная картина существенно сложнее. Действительно, чтобы определить характеристики файла, верхний уровень должен «раскрутить» его символьное имя, то есть последовательно прочитать всю цепочку каталогов, указанную в имени файла. А это значит, что для решения своей задачи он несколько раз обратится к нижележащему уровню, который, в свою очередь, несколько раз «попросит» драйвер считать данные каталогов с диска. И каждый раз результаты будут передаваться снизу вверх. Задача организации взаимодействия компьютеров в сети тоже может быть представлена в виде иерархически организованного множества модулей. Например, модулям нижнего уровня можно поручить вопросы, связанные с надежной передачей информации между двумя соседними узлами, а модулям следующего, более высокого уровня – транспортировку сообщений в пределах всей сети. Очевидно, что последняя задача – организация связи двух любых, не обязательно соседних, узлов – является более общей и поэтому ее решение может быть достигнуто путем многократных обращений к нижележащему уровню. Так, организация взаимодействия узлов А и В может быть сведена к поочередному взаимодействию пар промежуточных смежных узлов (рис. 4.4). Рис. 4.4. Взаимодействие произвольной пары узлов Протокол и стек протоколов Многоуровневое представление средств сетевого взаимодействия имеет свою специфику, связанную с тем, что в процессе обмена сообщениями участвуют, по меньшей мере, две стороны, то есть в данном случае необходимо организовать согласованную работу двух иерархий аппаратных и программных средств на разных компьютерах. Оба участника сетевого обмена должны принять множество соглашений. Например, они должны согласовать параметры электрических сигналов, длину сообщений, договориться о методах контроля достоверности и т. п. Другими словами, соглашения должны быть приняты на всех уровнях, начиная от самого низкого – уровня передачи битов – и заканчивая самым высоким, реализующим обслуживание пользователей сети. На рис. 4.5 показана модель взаимодействия двух узлов. С каждой стороны средства взаимодействия представлены четырьмя уровнями. Каждый уровень поддерживает интерфейсы двух типов. Во-первых, это интерфейсы услуг с выше- и нижележащим уровнем «своей» иерархии средств. Во-вторых, это одноранговый интерфейс со средствами взаимодействия другой стороны, расположенными на том же уровне иерархии. Этот тип интерфейса называют протоколом. В сущности, термины «протокол» и «интерфейс» обозначают одно и то же - формализованное описание процедуры взаимодействия двух объектов, но традиционно в сетях за ними закрепили разные области предпочтительного использования: протоколы определяют правила взаимодействия модулей одного уровня (одного ранга) в разных узлах, а интерфейсы – правила взаимодействия модулей соседних уровней в одном узле. Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней, как правило – программными средствами. Программный модуль, реализующий некоторый протокол, называют протокольной сущностью, или, для краткости, тоже протоколом. Понятно, что один и тот же протокол может быть реализован с разной степенью эффективности. Именно поэтому при сравнении протоколов следует учитывать не только логику их работы, но и качество программной реализации. Более того, на эффективность взаимодействия устройств в сети влияет качество всей совокупности протоколов, составляющих стек, – в частности то, насколько рационально распределены функции между протоколами разных уровней и насколько хорошо определены интерфейсы между ними. Протокольные сущности одного уровня обмениваются сообщениями в соответствии с определенным для них протоколом. Сообщения состоят из заголовка и поля данных (иногда оно может отсутствовать). Обмен сообщениями является своеобразным языком общения, с помощью которого каждая из сторон «объясняет» другой стороне, что необходимо сделать на каждом этапе взаимодействия. Работа каждого протокольного модуля состоит в интерпретации заголовков поступающих к нему сообщений и выполнении связанных с этим действий. Заголовки сообщений разных протоколов имеют разную структуру, что соответствует различиям в их функциональности. Понятно, что чем сложнее структура заголовка сообщения, тем более сложные функции возложены на соответствующий протокол. Модель OSI Из того, что протокол является соглашением, принятым двумя взаимодействующими узлами сети, совсем не следует, что он обязательно является стандартным. Но на практике при реализации сетей стремятся использовать стандартные протоколы. Это могут быть фирменные, национальные или международные стандарты. В начале 80-х годов ряд международных организаций по стандартизации, в частности International Organization for Standartization, часто называемая International Standards Organization (ISO), а также International Telecommunications Union (ITU) и некоторые другие разработали стандартную модель |