39. Целью данного упражнения является реализация механизма обнаружения ошибок с помощью стандартного алгоритма циклического избыточного кода (CRC), описанного в тексте. Напишите две программы: генератор (generator) и верификатор (verifier). Программа-генератор считывает со стандартного устройства ввода я-битное сообщение из нулей и единиц, представленных в виде строки ASCII-текста. Вторая строка является k-битным многочленом (также в ASCII). На устройстве вывода печатается текст из я + k нулей и единиц, представляющий собой сообщение, подлежащее пересылке. Затем печатается многочлен в том же виде, в каком он был считан. Программа-верификатор считывает результат работы генератора и выводит сообщение, в котором сообщается, корректен ли данный результат. Наконец, напишите программу (alter), вносящую сбой, а именно инвертирующую только один бит первой строки, в зависимости от аргумента (например, порядкового номера бита, предполагая, что слева располагается бит с номером 1). Все остальные данные передаются без изменений. Набрав в командной строке generator
Глава 4
Подуровень управления доступом к среде
Все сетевые технологии могут быть разделены на две категории: использующие соединения от узла к узлу и сети с применением широковещания. Двухточечные связи мы рассматривали в главе 2; эта глава посвящена широковещательным каналам и их протоколам.
Главной проблемой любых широковещательных сетей является вопрос о том, как определить, кому предоставить канал, если пользоваться им одновременно хотят несколько компьютеров. Для примера представьте себе конференцию, в которой принимают участие шесть человек, причем каждый использует свой телефон. Все они соединены таким образом, что каждый может слышать всех остальных. Весьма вероятно, что когда один из них закончит свою речь, сразу двое или трое начнут говорить одновременно, тем самым создав неловкую ситуацию. При личной встрече подобные проблемы предотвращаются внешними средствами, например поднятием руки для получения разрешения говорить. Когда доступен лишь один канал, определить, кто может говорить следующим, значительно труднее. Для решения этой проблемы разработано множество протоколов, которые и будут обсуждаться в данной главе. В литературе широковещательные каналы иногда называют каналами с множественным доступом( multiaccess channels) или каналами с произвольным доступом( random access channels).
Протоколы, применяющиеся для определения того, кто будет говорить следующим, относятся к подуровню канального уровня, называемому MAC( Medium Access Control— управление доступом к среде). Подуровень MAC особенно важен в локальных сетях, в частности в беспроводных, так как они по своей природе являются широковещательными каналами. В глобальных сетях, напротив, применяются двухточечные соединения. Исключением являются только спутниковые сети. Поскольку каналы множественного доступа тесно связаны с локальными сетями, в данной главе в основном будут обсуждаться локальные сети, включая некоторые вопросы, напрямую не связанные с темой подуровня MAC. Главной темой будет управление каналом.
Технически подуровень управления доступом к среде является нижней частью канального уровня, поэтому логичнее было бы изучить сначала его, а затем протоколы «точка-точка», рассмотренные в главе 3. Тем не менее большинству людей понять протоколы, включающие многих участников, легче после того, как хорошо изучены протоколы с двумя участниками. По этой причине при рассмотрении уровней мы слегка отклонились от строгого следования снизу вверх по иерархической лестнице.
4.1. Проблема распределения канала
Центральной проблемой, обсуждаемой в этой главе, является распределение одного широковещательного канала между многочисленными пользователями, претендующими на него. Канал может представлять собой часть беспроводного спектра в некотором географическом регионе или один проводной или оптический канал, к которому присоединено несколько узлов. Это не имеет значения. В обоих случаях канал соединяет каждого пользователя со всеми остальными пользователями, и любой пользователь, полностью нагружающий канал, мешает другим, которые также хотели бы передавать данные.
Сначала мы в общих чертах рассмотрим недостатки статических схем распределения канала в случае неравномерного трафика. Затем изложим ключевые предположения, применяемые для моделирования динамических схем. После этого обсудим несколько примеров таких схем.
Читать дальше
Конец ознакомительного отрывка
Купить книгу