Локальных сетей
Скачать 261.78 Kb.
|
10) Коммутируемая телефонная сеть общего пользованияКогда между двумя компьютерами, принадлежащими одной компании и расположенными недалеко друг от друга, необходимо установить связь, часто проще всего оказывается проложить между ними кабель. Подобным образом работают локальные сети. Однако, когда расстояния велики, или компьютеров очень много, или кабель надо прокладывать поперек шоссе или еще какой-либогосударственной магистрали, цена прямого кабельного соединения становится недоступно высокой. Кроме того, почти во всех странах мира законом запрещено протягивать частные линии связи над или под объектами государственной собственности. Поэтому проектировщики сетей должны рассчитывать на имеющиеся средства телекоммуникации. Подобные средства связи, в частности коммутируемая телефонная сеть общего пользования (PSTN, Public Switched Telephone Network), были созданы много лет назад с совершенно иной целью — передать человеческий голос вболее-менееузнаваемом виде. Их применимость для соединения друг с другом компьютеров весьма незначительна. Чтобы увидеть размер проблемы, предположим, что дешевый потребительский кабель, работающий между двумя компьютерами, может передать данные со скоростью 1 Гбит/с или больше. При этом типичный ADSL, прекрасная быстрая альтернатива телефонному модему, работает в пределах 1 Мбит/с. Это различие — как различие между полетом на самолете и неторопливой прогулкой. Тем не менее телефонная сеть плотно переплетена с глобальными компьютерными сетями, поэтому стоит посвятить некоторое время тому, чтобы изучить это подробно. Ограничивающим фактором для организации сети оказывается «последняя миля», по которой соединяются клиенты, а не магистрали и коммутаторы телефонной сети. Эта ситуация меняется с внедрением оптоволоконной связи и цифровых технологий на краю сети, но это требует времени и денег. В течение долгого времени 160 Глава 2. Физический уровень проектировщики компьютерных систем, привыкшие работать с устройствами, производительность которых была на три порядка выше, посвятили много времени и сил, чтобы выяснить, как использовать телефонную сеть эффективно. В следующих разделах мы опишем телефонную систему и покажем, как она работает. Дополнительные сведения о телефонной системе см. в книге (Bellamy, 2000). 2.6.1. Структура телефонной системыВскоре после того, как Александр Грэхем Белл (Alexander Graham Bell) в 1876 году (всего на несколько часов раньше своего конкурента, Элиша Грея (Elisha Gray)) запатентовал телефон, на его изобретение появился огромный спрос. Вначале этот рыночный сектор занимался торговлей телефонными аппаратами, которые продавались парами. Задача протягивания между ними единственного провода была возложена на покупателя. Если владелец телефона хотел поговорить с n другими владельцами телефонов, ему приходилось протягивать отдельные провода ко всемn домам. За первый год существования такой телефонной сети города оказались опутанными настоящей сетью из проводов, тянущихся над домами и деревьями в полнейшем беспорядке. Стало очевидно, что модель соединения телефонов «каждый с каждым» работать не будет (рис. 2.25,а). Довольно скоро подобные офисы компании Bell System стали появляться повсюду, кроме того, возник спрос на междугородную связь, поэтому Bell System стала соединять свои офисы. Вскоре они столкнулись опять с той же проблемой: задача соединения каждого офиса с каждым очень быстро стала невыполнимой, поэтому были созданы офисы второго уровня (рис. 2.29, в). Через некоторое время количество офисов второго уровня также стало слишком большим. В конце концов, иерархия разрослась до пяти уровней. 2.6. Коммутируемая телефонная сеть общего пользования 161 К 1890 году были созданы три основные части телефонной системы — коммутаторные телефонные станции, провода, соединяющие пользователей с ними (теперь уже сбалансированные, изолированные витые пары, а не проволока с землей вместо второго провода), и линии междугородной связи, соединяющие отдельные телефонные станции. Краткую техническую историю телефонной системы см. в книге (Hawley, 1991). Хотя в каждой из этих областей с тех пор производились улучшения, основа модели Bell System осталась неизменной на протяжении более 100 лет. Приведенное ниже описание сильно упрощено; тем не менее оно передает суть дела. Каждый телефон соединен при помощи двух медных проводов с ближайшей оконечной телефонной станцией (также называемойместной центральной станцией). Расстояние от телефона до ближайшего коммутатора обычно от 1 до 10 км, в городах меньше, чем в сельской местности. В одних только Соединенных Штатах насчитывается около 22 000 оконечных телефонных станций. Двухпроводное соединение между телефоном каждого абонента и оконечной телефонной станцией называется местной линией связи (или локальным контуром). Если местные линии связи всего мира соединить последовательно в одну линию, то их можно будет протянуть до Луны и обратно 1000 раз. Одно время 80 % капитала компании AT&T было вложено в медные провода местных линий связи. Таким образом, компания AT&T представляла собой самую большую в мире медную шахту. К счастью, этот факт не был широко известен в сообществе инвесторов. В противном случае какие-нибудькорпорации могли скупить AT&T, выкопать все провода и продать ихмедно-обогатительнымкомбинатам с целью получения быстрой прибыли, тем самым прекратив всю телефонную связь в США. Если абонент, подключенный к оконечному коммутатору, позвонит другому абоненту, подключенному к тому же коммутатору, то коммутирующий механизм установит между ними прямое электрическое соединение. Это соединение будет сохраняться в течение всего разговора. Если же абоненты подключены к разным оконечным станциям, то должна использоваться другая процедура. У каждой оконечной станции имеется несколько линий к одному или нескольким коммутационным центрам, называемым пригородно-между- городными станциями (или, если они расположены в одной области,транзитными станциями). Соединяющие их линии называютсямеждугородными. Число различных видов центров коммутации и их топология различна в разных странах в зависимости от телефонной плотности страны. Если оба абонента подключены к одной и той же междугородной станции (что вполне вероятно, если они находятся недалеко друг от друга), то связь может быть установлена этой междугородной станцией. На рис. 2.25, в показана телефонная сеть, состоящая только из телефонных аппаратов (маленькие точки), оконечных коммутаторов (большие точки) и междугородных станций (квадраты). Если у абонентов нет общей междугородной станции, то связь между ними будет установлена на более высоком иерархическом уровне. Междугородные станции связываются друг с другом высокоскоростными межстанционными линиями. Вплоть до 1984 года, когда распалась корпорация AT&T, телефонная система представляла собой многоуровневую иерархическую маршрутизацию, для поиска пути заходящую на 162 Глава 2. Физический уровень более высокие уровни иерархии до тех пор, пока не обнаружится общий коммутатор. Эта схема была заменена более гибкой, неиерархической маршрутизацией. Рисунок 2.26 показывает, как могло бы быть направлено дальнее соединение. Втелекоммуникациях применяется широкий спектр сред передачи данных. В отличие от современных офисных зданий, где проводка обычно категории 5, местные линии связи в дома по большей части состоят из витых пар категории 3, а волокно только начинает там появляться. Для связи между коммутаторами широко используются коаксиальные кабели, микроволновая связь и особенно оптоволоконные кабели. Впрошлом телефонная система была аналоговой, в виде электрического напряжения передавался сам голосовой сигнал. С появлением оптического волокна, цифровой электроники и компьютеров стала возможной цифровая передача сигнала на всех уровнях иерархии, кроме местных линий связи — последнего аналогового звена цепи. Цифровая связь предпочтительней потому, что нет необходимости в точности воспроизводить форму аналогового сигнала после того, как он проходит через множество коммутаторов и усилителей. Достаточно распознать лишь одно из двух состояний линии: 0 или 1. Это свойство делает цифровую передачу более надежной, чем аналоговая. К тому же она дешевле и проще в обслуживании. Вцелом, телефонная система состоит из следующих трех главных компонентов. 1.Местные линии связи (аналоговые витые пары, подводящиеся в дома и офисы). 2.Магистральные каналы (цифровая связь на базе оптоволокна между коммутационными станциями). 3.Коммутационные станции (в них вызовы переадресуются с одних магистралей на другие). После того как мы коснемся темы политики телефонии, мы вернемся к более под- робному рассмотрению каждого из этих трех компонентов. Местные линии связи — это то, что соединяет каждого конкретного абонента со всей остальной системой, поэтому этот пункт чрезвычайно важен. К сожалению, это и самое слабое место в системе. Междугородным магистралям присуща фундаментальная проблема соединения множества вызовов в один и отправка его по единому кабелю. Это называется уплотнением, или мультиплексированием канала, и мы применим для этого частотное и временно´е уплотнение. Мы изучим три стратегии мультиплексирования. Наконец, есть два принципиально разных способа коммутации, которые мы также рассмотрим ниже. 11) Традиционная телефонная система (даже если она в один прекрасный день полностью перейдет на многогигабитный оптоволоконный кабель) никогда не сможет удовле творить потребности огромной группы пользователей — людей, находящихся в пути. 2.7. Мобильная телефонная система 187 Люди сейчас хотят звонить, а также использовать телефон для просмотра электронной почты и веб-серфингабуквально везде: в автомобиле, самолете, бассейне, во время пробежки в парке. Следовательно, имеется огромный интерес к беспроводной те лефонии. В следующих параграфах мы рассмотрим подробности, касающиеся этой темы. Мобильные телефоны используются в широкой области передачи голоса и данных. На данный момент существует уже три разных поколения мобильных (сотовых) телефонов. Эти поколения называют1G,2G и3G. 1.Аналоговая голосовая связь. 2.Цифровая голосовая связь. 3.Цифровая голосовая связь и обмен данными (Интернет, электронная почта и т. д.). (Мобильные телефоны не следует путать с беспроводными телефонами, состоящими из базовой станции и одной или нескольких переносных трубок. Они предна значены для использования внутри жилья или в непосредственной близости от него. Их никогда не объединяют в сети, поэтому в дальнейшем мы их рассматривать не будем.) Хотя большая часть нашего обсуждения будет посвящена техническому устройству этих систем, нельзя не отметить тот интересный факт, что огромное влияние на процесс развития технологий этого типа оказали политические и экономические решения. Первая мобильная система была предложена американской компанией AT&T, которая, с согласия комиссии FCC, установила мобильную связь на всей территории Соединенных Штатов. В результате целая страна обрела единую (аналоговую) систему связи, и мобильный телефон, купленный, например, в Калифорнии, успешно работал вНью-Йорке.А в Европе все получилось наоборот: когда туда пришла мобильная связь, каждая страна бросилась разрабатывать собственные системы, в результате чего проиграли все. Однако Европа чему-тонаучилась на своих ошибках, и с появлением цифровых систем государственные телефонные службы объединились, чтобы создать единый стандарт (GSM), так что любой европейский мобильный телефон мог работать везде в Европе. К тому времени в США государство вышло из бизнеса, связанного со стандартизацией, поэтому новые цифровые мобильные системы стали заботой коммерческих структур. Это привело к тому, что разные производители стали выпускать разнотипные мобильные телефоны, и в США появились две основные абсолютно несовместимые цифровые мобильные телефонные системы и еще несколько небольших систем. Несмотря на изначальное лидерство США, Европа сейчас обошла Штаты по популярности мобильной связи. Наличие единой системы, которая работает где угодно вЕвропе и с любым провайдером, является одной из причин, но есть и другая. Второе отличие США от Европы заключалось в скромном вопросе телефонных номеров. В США не различаются номера мобильных и стационарных телефонов. Поэтому нет никакой возможности узнать, набирая номер, например, (212) 234-5678,попадете вы на городской телефон (дешевый или вообще бесплатный звонок) или на сотовый (дорогой звонок). Чтобы люди не нервничали каждый раз, гадая, куда они звонят, телефонные компании заставили абонентов сотовой связи платить за входящие 188 Глава 2. Физический уровень звонки. Но многих такое решение отпугнуло — люди стали бояться потратить большую сумму денег на один только прием входящих звонков. В Европе у мобильных телефонов номер начинается с особого кода (обычно это число в районе 800–900),поэтому его сразу можно узнать. Значит, можно установить обычное правило, принятое в телефонии: платит звонящий (за исключением международных звонков, где платят оба). Третий фактор, оказавший большое влияние на популярность мобильных систем, — это широкое распространение телефонов с предоплатой разговоров (до 75 % в некоторых регионах). Их можно купить во многих магазинах, и это не сложнее, чем купить цифровой фотоаппарат. Они могут быть заряжены, например, на 20 или 50 евро, а при снижении баланса до нуля их можно «перезарядить» с помощью секретного PIN-кода.Теперь такие мобильные телефоны есть у любого подростка, и родители могут быть на связи со своим чадом, не опасаясь при этом, что он самостоятельно на говорит по телефону на кругленькую сумму. Если мобильный телефон используется лишь эпизодически, то это обходится практически бесплатно, поскольку почти всегда можно найти тариф, на котором отсутствует абонентская плата или плата за входящие звонки. 12) Кабельное телевидение - аналоговая модель телевизионного вещания (а также иногда и FM-радиовещания), в которой телесигнал распространяется посредством высокочастотных сигналов, передаваемых через проложенный к потребителю кабель. Кабельное телевидение противопоставляется эфирному и спутниковому телевидению. Оно было изобретено в США в 1949 году. Сети кабельного телевидения начали активно развиваться в Европе и США в 1980-х годах; в СССР/России первые кабельные сети появились в конце 1980-х — начале 1990-х годов. Долгое время основой кабельных телесетей является коаксиальный кабель. Успешное развитие технологий оптической передачи данных привело к внедрению оптоволокна в сети кабельного телевидения в виде так называемых гибридных, или волоконно-коаксиальных сетей (англ. hybridfibre-coaxial), в которых сочетаются коаксиальные и волоконно-оптические кабели. Современная сеть кабельного телевидения включает центральную головную станцию, магистральные каналы связи, субмагистральные линии и домовые распределительные сети. Преимущества кабельного телевидения перед эфирным:
13) Уровень передачи данных должен выполнять ряд специфических функций. К ним относятся: ♦ обеспечение строго очерченного служебного интерфейса для сетевого уровня; ♦ обработка ошибок передачи данных; 4 управление потоком данных, исключающее затопление медленных приемников быстрыми передатчиками. Для этих целей канальный уровень берет пакеты, полученные с сетевого уровня, и вставляет их в специальные кадры для передачи. В каждом кадре содержится заголовок, поле данных и концевик. Структура кадра показана на рис. 3.1. Управление кадрами — это основа деятельности уровня передачи данных. В следующих разделах мы более подробно изучим обозначенные выше вопросы.
Хотя эта глава и посвящена детальному рассмотрению уровня передачи данных и соответствующих протоколов, многие вопросы, обсуждаемые здесь, такие как контроль ошибок и контроль потока, относятся также к транспортным и другим протоколам. На самом деле, во многих сетях эти функции являются прерогативой верхних уровней и вообще не относятся к уровню передачи данных. С другой стороны, не так уж это важно, потому что основные принципы все равно остаются неизменными. Аргументом в пользу рассмотрения их именно в свете уровня передачи данных является то, что здесь они предстают в наиболее простой форме и их легко показать в деталях. 14) Одной из задач, решаемых на канальном уровне, является обнаружение и устранение ошибок при передаче кадров. Аналогичная задача решается и на транспортном уровне. В данном разделе кратко описаны общие методы обнаружения и устранения ошибок при передаче информации по каналам связи. Первая часть задачи – обнаружение ошибок состоит в том, что компьютер – адресат, приняв некоторую порцию информации (например – кадр) должен только по результатам анализа принятых данных сделать заключение – корректны ли принятые данные и нет ли в них искажений. Поскольку априорно содержимое принятого пакета неизвестно (иначе бы он не передавался), то сравнить его не с чем. Для решения этой задачи к передаваемой информации узлом-отправителем добавляется некоторая служебная информация, используя которую можно определить факт искажения принятой информации. Эта служебная информация (контрольная сумма) вычисляется как функция от основной информации по известному алгоритму. При приеме кадра адресат опять рассчитывает по тому же алгоритму контрольную сумму и сравнивает с переданной в составе кадра. В случае их совпадения делается вывод о достоверности принятых данных. Передача служебной информации, конечно, снижает полезную пропускную способность канала, но является платой за возможность обнаружения ошибок. В настоящее время наиболее широкое распространение получили циклические избыточные коды (CRC – Cyclic Redundancy Code). В этом методе исходные данные рассматриваются как одно многоразрядное двоичное число. Это число делят на известное 17 или 33 разрядное число и получают остаток от деления (16 или 32 разрядный). Этот остаток и передается вместе с данными. При получении кадра опять производят деление на тоже число и сравнивают полученный остаток с принятым. Этот метод имеет достаточно высокие диагностические возможности – может обнаруживать все одиночные ошибки, двойные ошибки и ошибки в нечетном числе бит. При этом избыточность его минимальна. Существуют и другие методы контроля корректности и даже методы, позволяющие восстанавливать искаженные данные (например, коды Рида-Соломона), но они обладают очень большой избыточностью и при решении рассматриваемых задач не применяются. Вторая часть задачи – устранение ошибок передачи состоит в том, что необходимо организовать повторную передачу искаженного или потерянного кадра. Чтобы убедиться в необходимости повторной передачи данных, отправитель нумерует все отправляемые кадры и для каждого кадра ожидает от адресата положительной квитанции – служебного кадра, сигнализирующего о том, что кадр был получен и данные в нем оказались корректными. Время ожидания ограничено – при отправке каждого кадра отправитель запускает таймер, и если по истечении определенного промежутка времени (тайм-аута) положительная квитанция не получена, кадр считается потерянным и его передают повторно. Адресат в случае получения кадра с искаженными данными может передать отрицательную квитанцию – явно указывая на необходимость повторной передачи искаженного кадра. Существует два метода организации процесса обмена квитанциями: с простоями и скользящего окна. Метод с простоями требует, чтобы отправитель, послав кадр, дожидался получения положительной (или отрицательной) квитанции. И только после этого посылал новый кадр (или повторял искаженный). Если же по истечению тайм-аута никакой квитанции не получено, передача этого кадра повторяется. Этот метод обладает очень низкой производительностью и применяется в не надежных сетях с высоким уровнем ошибок. Метод скользящего окна позволяет отправителю передавать в сеть некоторое количество кадров в непрерывном режиме без получения на них положительных квитанций. Количество кадров, которое можно передавать таким образом, называется шириной окна. За это время должна прийти квитанция на первый из отправленных кадров. Тогда окно сдвигается на один кадр. При получении следующей квитанции – еще на один кадр и т.д. Таким образом, при согласованной передаче кадров и квитанций, квитанции на очередной кадр приходят до исчерпания окна, окно постоянно сдвигается по последовательности кадров и отправитель не прекращает передачи своих кадров. Однако, в случае прихода отрицательной квитанции или истечения тайм-аута на какой либо кадр, приходится повторно передавать не только этот кадр, но и все кадры, которые были отправлены после него. Таким образом, большая величина окна эффективна в сетях, обеспечивающих надежную передачу данных с минимумом ошибок. В ненадежных сетях размер окна уменьшают, так как при частых потерях кадров резко возрастает количество повторно переданных данных. 15) качестве первого примера мы рассмотрим самый простой протокол. Данные передаются только в одном направлении. Сетевой уровень на передающей и приемной сторонах находится в состоянии постоянной готовности. Временем обработки можно пренебречь. Размер буфера неограничен. И что лучше всего, канал связи между уровнями передачи данных никогда не теряет и не искажает кадры. Этот совершенно нереальный протокол, который мы назовем «утопия», показан в листинге 3.2. Протокол состоит из двух процедур, sender (отправитель) и receiver (получатель). Процедура sender работает на уровне передачи данных посылающей машины, а процедура receiver — на уровне передачи данных принимающей машины. Ни последовательные номера, ни подтверждения не используются, поэтому МАХ_ SEQ не требуется. Единственным возможным событием является frame_arriva1 (то есть прибытие неповрежденного кадра). Процедура sender представляет собой бесконечный цикл, начинающийся с оператора while, посылающий данные на линию с максимально возможной скоростью. Тело цикла состоит из трех действий: получения пакета (всегда обязательное) с сетевого уровня, формирования исходящего пакета с помощью переменной s и отсылки пакета адресату. Из служебных полей кадра данный протокол использует только поле info, поскольку другие поля относятся к обработке ошибок и управлению потоком, которые в данном протоколе не применяются. Процедура принимающей стороны ничуть не сложнее. Вначале она ожидает, пока что-нибудь произойдет, причем единственно возможным событием в данном протоколе может быть получение неповрежденного пакета. Когда пакет появляется, процедура wait_for_event возвращает управление, при этом переменной event присваивается значение frame_arrivai (которое все равно игнорируется). Обращение к процедуре from_physical_layer удаляет вновь прибывший кадр из аппаратного буфера и помещает его в переменную г. Наконец, порция данных передается сетевому уровню, а уровень передачи данных отправляется ждать следующий кадр. Теперь мы отбросим самое нереальное предположение, использованное в протоколе 1, — способность получающего сетевого уровня мгновенно обрабатывать приходящие данные (или, что то же самое, наличие у получающего уровня передачи данных неограниченного буферного пространства, в которое он помещает все приходящие кадры). Сохраняется предположение о том, что в канале связи нет ошибок. Линия связи остается симплексной. Основная проблема, которую нам предстоит решить, — как предотвратить ситуацию, когда отправитель посылает данные быстрее, чем получатель может их обработать. То есть если получателю требуется время Л б чтобы выполнить процедуры Фгот_рЬу$ка1_1ауег и 1о_пе1ыогк_1ауег, то отправитель должен передавать со средней скоростью меньшей, чем один кадр за интервал времени Д Г. Более того, если мы предполагаем, что в принимающей аппаратуре не производится автоматической буферизации, то отправитель не должен посылать новый кадр до тех пор, пока старый кадр не будет считан процедурой бгот_рбу51са1_1ауег. В противном случае новый кадр окажется записанным поверх старого. При некоторых обстоятельствах (например, при синхронной передаче, когда уровень передачи данных принимающей машины обрабатывает всего одну входную линию) может быть достаточно всего лишь вставить задержку в передающую программу протокола 1, снизив скорость его работы настолько, чтобы уберечь принимающую сторону от забивания данными. Однако в реальных условиях обычно каждый уровень передачи данных должен одновременно обрабатывать несколько линий, и время, необходимое на обработку одного кадра, может меняться в довольно значительных пределах. Если разработчик сети может рассчитать наихудшую ситуацию для приемника, он может запрограммировать настолько медленную работу отправителя, что даже при самой медленной обработке поступающих кадров получатель будет успевать их обрабатывать. Недостаток такого подхода в его консерватизме. В данном случае использование пропускной способности будет намного ниже оптимального уровня. Исключением может быть только один случай — когда время реакции принимающего уровня передачи данных изменяется очень незначительно. Лучшим решением данной проблемы является обратная связь со стороны получателя. Передав пакет сетевому уровню, получатель посылает небольшой управляющий пакет отправителю, разрешая тем самым посылать следующий кадр. Отправитель, отослав кадр, должен ждать разрешения на отправку следующего кадра. Протоколы, в которых отправитель посылает один кадр, после чего ожидает подтверждения, называются протоколами с ожиданием. В листинге 3.3 приведен пример симплексного протокола с ожиданием. 13 Ключевые аспекты организации уровня передачи данных Уровень передачи данных (канальный уровень) реализует процессы: интерфейса для сетевого уровня; обработки ошибок передачи данных; управления потоком данных, согласованного с характеристиками приемопередатчиков. Канальный уровень получает пакеты с сетевого уровня и формирует кадры для передачи, содержащие: заголовок, поле данных и “концевик”. Уровень передачи данных предоставляет различные сервисы в разных системах: 1. Сервис без подтверждений, без установки соединения. 2. Сервис с подтверждениями, без установки соединения. 3. Сервис с подтверждениями, ориентированный на соединение. Уровень передачи данных разбивает поток битов с физического уровня на отдельные кадры и считает для каждого кадра контрольную сумму. Когда кадр прибывает, его контрольная сумма подсчитывается снова. Если она отличается, то сервис уровня передачи данных игнорирует испорченный кадр и посылает сообщение об ошибке. Используют ряд способов маркировки границ кадров: 1. Подсчет количества символов. 2. Сигнальные байты с символьным заполнением. 3. Стартовые и стоповые биты с битовым заполнением. 4. Запрещенные сигналы физического уровня. Обнаружение и исправление ошибок Канальный уровень должен обнаруживать ошибки передачи данных, связанные с искажением бит в принятом кадре данных или с потерей кадра, и по возможности их корректировать. Большая часть протоколов канального уровня выполняет задачу - обнаружение ошибок, считая, что корректировать ошибки, то есть повторно передавать данные, содержавшие искаженную информацию, должны протоколы верхних уровней. Протоколы канального уровня LLC2 или LAP-Bсамостоятельно решают задачу восстановления искаженных или потерянных кадров. Методы обнаружения ошибок основаны на передаче в составе кадра данных служебной информации - последовательности контроля кадра - Frame Check Sequence(FCS). Контрольная сумма вычисляется как функция от основной информации. Принимающая сторона повторно вычисляет контрольную сумму кадра по известному алгоритму и в случае ее совпадения с контрольной суммой, вычисленной передающей стороной, делает вывод о том, что данные были переданы через сеть корректно. Существует ряд алгоритмов вычисления контрольной суммы, отличающихся вычислительной сложностью и способностью обнаруживать ошибки в данных. Контроль по паритету позволяет обнаружить только одиночные ошибки в проверяемых данных. Метод заключается в суммировании по модулю 2 всех бит контролируемой информации. Метод редко применяется в сетяхиз-заего большой избыточности и невысоких диагностических способностей. Вертикальный и горизонтальный контроль по паритету представляет собой модификацию описанного выше метода. Его отличие состоит в том, что исходные данные рассматриваются в виде матрицы, строки которой составляют байты данных. Контрольный разряд подсчитывается отдельно для каждой строки и для каждого столбца матрицы. Этот метод обнаруживает большую часть двойных ошибок, однако обладает еще большей избыточностью. Циклический избыточный контрольCyclic Redundancy Check (CRC) основан на рассмотрении исходных данных в виде многоразрядного двоичного числа. Например, кадр Ethernet, состоящий из 1024 байт, будет рассматриваться как число, состоящее из 8192 бит. В качестве контрольной информации рассматривается остаток от деления этого числа на известный делитель R. В качестве делителя выбираются 17-ти или 33 - разрядные числа, чтобы остаток от деления имел длины: 16 разрядов (2 байта) или 32 разряда (4 байта). При получении кадра данных снова вычисляется остаток от деления на тот же делитель R, но при этом к данным кадра добавляется и содержащаяся в нем контрольная сумма. Если остаток от деления на R равен нулю (существует модифицированная процедура вычисления остатка, приводящая к получению в случае отсутствия ошибок известного ненулевого остатка, что является более 42 надежным показателем корректности.), то делается вывод об отсутствии ошибок в полученном кадре, в противном случае кадр считается искаженным. Этот метод обладает более высокой вычислительной сложностью, но его диагностические возможности гораздо выше, чем у методов контроля по паритету. Метод CRC обнаруживает все одиночные ошибки, двойные ошибки и ошибки в нечетном числе бит. Метод обладает невысокой степенью избыточности. Например, для кадра Ethernet размером в 1024 байт контрольная информация длиной в 4 байт составляет только 0,4 %. Чтобы убедиться в необходимости повторной передачи данных, отправитель нумерует отправляемые кадры и для каждого кадра ожидает от приемника так называемой положительной квитанции - служебного кадра, извещающего о том, что исходный кадр был получен и данные в нем оказались корректными. Приемник в случае получения кадра с искаженными данными может отправитьотрицательную квитанцию - явное указание на то, что данный кадр нужно передать повторно. Существуют два подхода к организации процесса обмена квитанциями: с простоями и с организацией «окна». Метод с простоями (Idle Source) требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). Если же квитанция не приходит в течение таймаута, то кадр (или квитанция) считается утерянным и его передача повторяется. В этом случае производительность обмена данными существенно снижается, - хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции. |