Сложность программного обеспечения
Разработка ПО для распределенных систем имеет свою специфику. Обеспечение взаимодействия нескольких программ на порядок усложняет разработку таких программ.
Тема 1.3Основные проблемы построения сетей и способы их решения
1.3.1Проблемы физической передачи данных по линиям связи
В первую очередь при организации передачи данных необходимо определить способ кодирования, т.е. представления информации в виде электрического или оптического сигнала. В вычислительных сетях, так же как и в большинстве областей, связанных с вычислениями принято пользоваться представлением чисел в двоичной системе счисления. Существуют различные способы кодирования двоичных цифр 0 и 1. Например, внутри микропроцессорной системы при передаче данных по внутренним линиям связи между ее компонентами, такими как процессор, память, контроллеры внешних устройств используется потенциальное кодирование, когда высокий уровень напряжения соответствует двоичной единице, низкий – двоичному нулю. Главным отличием внешних линий связи от внутренних является гораздо большая их протяженность. Это обстоятельство вынуждает практически всегда использовать последовательную передачу данных в вычислительных сетях для сокращения количества проводов в линиях связи. Кроме того, электромагнитные характеристики длинных линий связи, а так же их подверженность помехам часто приводит к необходимости использовать иные способы кодирования, отличные от используемых на внутренних линиях связи. Кроме того, в вычислительных сетях может применяться модуляция сигнала, т.е. представление дискретной информации в виде синусоидального сигнала, спектр которого соответствует полосе пропускания линии связи.
Еще одной проблемой передачи сигнала по длинным линиям связи является необходимость взаимной синхронизации приемника и передатчика. Внутри компьютера синхронизация осуществляется с использованием отдельного тактового сигнала, который вырабатывается тактовым генератором и передается по отдельной линии. Такая линия есть, например, в системной шине процессора. Так как в сетях избегают использования дополнительных линий связи и стремятся организовать передачу данных с использованием всего одной пары проводов, приходится использовать специальные самосинхронизирующиеся коды.
1.3.2Методы цифрового кодирования информации, используемые в сетях
При цифровом кодировании информации различают потенциальные и импульсные коды. В потенциальных кодах для представления логических единиц и нулей используется только потенциал сигнала. Импульсный код представляет двоичные данные либо импульсами различной полярности, либо фронтом сигнала – положительным или отрицательным его перепадом.
Наиболее простым способом потенциального кодирования (рис. 1.3.1, а) является потенциальный код без возвращения к нулю (None Return to Zero, NRZ). Такой способ кодирования используется внутри компьютера. Этот способ прост в реализации и хорошо защищен от ошибок (благодаря двум резко отличающимся состояниям сигнала), однако не обладает свойством самосинхронизации. При передаче длинной последовательности единиц или нулей сигнал на линии не изменяется, поэтому приемник может неправильно определить, какое же количество единиц или нулей было принято. Даже при наличии высокоточного тактового генератора приемник может ошибиться, так как частоты двух генераторов никогда не бывают абсолютно идентичными. Такая ошибка приведет к ошибке в целый такт и неправильному считыванию значения бита.
От этого недостатка свободен манчестерский код (рис 1.3.1, б), широко используемый в локальных сетях. Единица кодируется перепадом напряжения от низкого уровня к высокому, а ноль – обратным перепадом. Так как сигнал изменяется по крайней мере один раз за один такт, манчестерский код обладает хорошим свойством самосинхронизации. У него так же нет постоянной составляющей, и спектр сигнала существенно уже, чем у потенциального кода NRZ.
А | ||||||||||||||||
Б | ||||||||||||||||
Рис. 1.3.1 Способы цифрового кодирования данных
Для улучшения характеристик потенциального кода может применяться логическое кодирование. Цель логического кодирования – заменить длинные последовательности единиц и нулей на последовательности с чередованием. Одним из методов логического кодирования является код 4B/5B. Он заменяет каждую последовательность длиной 4 бита последовательностью в 5 бит (таблица 1.3). При этом из 32 результирующих комбинаций можно выбрать 16 таких, которые не содержат большого количества повторяющихся нулей и единиц. Остальные комбинации являются запрещенными. При этом говорят, что способ кодирования является избыточным. Избыточность обеспечивает защиту от ошибок, если приемник принял избыточный код, то на линии произошло искажение сигнала. Кроме того, запрещенные коды иного используются для передачи служебной информации между передатчиком и приемником. Код 4B/5B обладает еще более узким спектром, чем манчестерский код, несмотря на то, что тактовая частота при кодировании 4B/5B увеличивается. Так, для передачи кодов 4B/5B со скоростью 100 Мбит/с передатчик должен работать с частотой 125 МГц.
Таблица 1.3
Исходный код | Результирующий код | Исходный код | Результирующий код |
Существуют логические коды, которые наоборот уменьшают количество бит в результирующей комбинации по сравнению с исходной. Код 8B/6T заменяет каждую последовательность длиной 8 бит последовательностью в 6 бит. Это делается для того, чтобы уменьшить тактовую частоту передатчика. При этом для кодирования используется сигнал с тремя состояниями. Избыточность кода 8B/6Т еще выше, чем у кода 4B/5B, так как на 256 исходных кодов приходится 36=729 результирующих кодов.
1.3.3Проблемы объединения в сеть нескольких компьютеров
До сих пор рассматривались аспекты организации сетевого взаимодействия, которые были справедливы даже для сети состоящей из двух компьютеров. Существует ряд проблем, которые являются следствием объединения не двух, а трех и более компьютеров.
Дата добавления: 2018-11-26; просмотров: 733;