Чтение онлайн

ЖАНРЫ

Шрифт:

48. Коммутаторы с ожиданием имеют преимущество перед сквозными коммутаторами при обработке поврежденных фреймов. Объясните почему.

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

50. Чтобы VLAN заработала, мостам и коммутаторам нужны конфигурационные таблицы. А что, если в сетях, показанных на илл. 4.39, использовать концентраторы вместо коммутаторов? Понадобятся ли им конфигурационные таблицы? Ответ поясните.

51. На илл. 4.40 коммутатор обычного оконечного домена (справа) является VLAN-совместимым. Можно было бы поставить здесь обычный коммутатор? Если да, то как должна работать система? Если нет, то почему?

52. Перехватите трассировку сообщений вашего компьютера, несколько раз запустив на несколько минут неизбирательный режим. Создайте симулятор одного канала связи и реализуйте протоколы CSMA/CD. Оцените их эффективность, используя собственную трассировку для представления нескольких станций, конкурирующих за доступ к каналу. Насколько эта трассировка отражает загруженность канального уровня?

53. Напишите программу, симулирующую поведение протокола CSMA/CD в системе Ethernet с N станциями, готовыми к передаче во время отправки фрейма по каналу. Программа должна выдавать уведомление каждый раз, когда одна из станций успешно начинает передачу своего фрейма. Пусть такт системных часов совпадает с началом каждого слота (51,2 мкс), а обнаружение коллизии с отправкой преднамеренных помех занимает один слот. Все фреймы имеют максимально допустимую длину.

54. Скачайте программу Wireshark с сайта www.wireshark.org. Это бесплатная программа с открытым исходным кодом, позволяющая отслеживать состояние сетей и детально просматривать, что именно происходит в трафике. Научитесь ее использовать, просмотрев одно из множества обучающих видео на YouTube. В интернете есть немало ресурсов с описанием того, какие эксперименты можно осуществить с помощью этой программы. Это позволит вам получить хороший практический опыт при работе с сетями.

Глава 5. Сетевой уровень

Сетевой уровень отвечает за передачу пакетов от отправителя получателю. Чтобы достичь пункта назначения, пакет может совершить множество скачков между маршрутизаторами. Это резко контрастирует с деятельностью канального уровня, цель которого намного скромнее — просто перемещать фреймы с одного конца «провода» (виртуального) на другой. Таким образом, сетевой уровень является самым нижним уровнем, имеющим дело с передачей данных по всему пути от начала до конца.

Для достижения этих целей сетевой уровень должен знать топологию сети (то есть весь набор маршрутизаторов и каналов) и рассчитывать подходящие маршруты, даже если она достаточно крупная. При выборе пути он также должен заботиться о равномерной нагрузке на маршрутизаторы и линии связи. Наконец, когда источник и адресат находятся в разных независимо управляемых сетях (иногда называемых автономными системами), приходится решать ряд дополнительных вопросов, включая проблему координации потоков трафика в рамках нескольких сетей и управление загруженностью сети. Эти проблемы обычно решаются на сетевом уровне; операторам сетей часто приходится делать это вручную. Обычно они самостоятельно перенастраивали сетевой уровень путем изменения низкоуровневой конфигурации. Однако с появлением программно-конфигурируемых сетей и программируемого оборудования появилась возможность настраивать сетевой уровень с помощью более эффективного ПО, и даже полностью переопределять его функции. В данной главе мы рассмотрим и проиллюстрируем все эти вопросы — в основном на примере интернета и протокола его сетевого уровня, IP (Internet Protocol).

5.1. Вопросы разработки сетевого уровня

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

5.1.1. Метод коммутации пакетов с ожиданием

Прежде чем начать подробное рассмотрение сетевого уровня, имеет смысл вспомнить окружение, в котором он функционирует (илл. 5.1). Основными компонентами сети являются устройства интернет-провайдера (ISP) — маршрутизаторы, коммутаторы и промежуточные узлы, соединенные линиями связи (они показаны на рисунке в сером овале), а также устройства пользователя (находятся вне овала). Хост H1 напрямую соединен с одним из маршрутизаторов провайдера А (это может быть домашний компьютер, подключенный к DSL-модему). Хост H2, напротив, входит в LAN (например, в офисную сеть Ethernet) с маршрутизатором F, принадлежащим клиенту, который с ним работает. Этот маршрутизатор связывается с провайдером по выделенной линии. Мы показали F вне овала, потому что он не принадлежит ISP. Однако в контексте данной главы мы будем считать маршрутизаторы клиента частью сети ISP, поскольку в них применяются те же самые алгоритмы, что и в маршрутизаторах интернет-провайдеров (именно алгоритмы будут основным предметом рассмотрения).

Илл. 5.1. Окружение, в котором функционируют протоколы сетевого уровня

Система работает следующим образом. Хост, у которого есть пакет для передачи, отправляет его на ближайший маршрутизатор — либо в своей LAN, либо провайдеру по двухточечному соединению (например, по каналу ADSL или по линии кабельного телевидения). Там пакет хранится до тех пор, пока не будет принят целиком и не пройдет полную обработку, включая верификацию контрольной суммы. Затем он передается по цепочке маршрутизаторов, которая в итоге приводит к пункту назначения. Такой механизм называется коммутацией пакетов с промежуточным хранением (store-and-forward), и мы уже рассматривали его в предыдущих главах.

5.1.2. Службы, предоставляемые транспортному уровню

Службы для транспортного уровня предоставляются сетевым уровнем посредством интерфейса между ними. Главное — определить, какими должны быть эти службы. Их разработка требует особой аккуратности, и при этом необходимо учитывать следующее:

1. Службы сетевого уровня не должны зависеть от технологии маршрутизатора.

2. Количество, тип и топология имеющихся маршрутизаторов не должны влиять на транспортный уровень.

3. Сетевые адреса, доступные транспортному уровню, должны использовать единую систему нумерации, даже между LAN и WAN.

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

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

Из этого следует, что сетевой службе не нужно требовать установления соединения, она должна в основном состоять из примитивов SEND PACKET (отправить пакет) и RECEIVE PACKET (получить пакет). В частности, сюда нельзя включать упорядочивание пакетов и контроль потока — все равно эти действия выполнит хост. Нет смысла выполнять одну и ту же работу дважды. Такое рассуждение — пример применения сквозного принципа (end-to-end argument), оказавшего значительное влияние на формирование интернета (Зальцер и др.; Saltzer et al., 1984). Кроме того, каждый пакет должен содержать полный адрес получателя, так как передача производится независимо от предшествующих пакетов.

Другой лагерь, представленный телефонными компаниями, утверждает, что сеть должна предоставлять надежную службу с установлением соединения. Компании считают, что 100 лет успешного управления телефонными системами по всему миру — серьезный аргумент в их пользу. По их мнению, определяющим фактором является QoS, и без установления соединения в сети очень сложно добиться каких-либо приемлемых результатов, особенно когда дело касается трафика в реальном времени (например, передачи голоса и видео).

Поделиться с друзьями: