Способы обнаружения и устранения ошибок при передачи данных в сетях.
Ошибки связаны с искажением бит в кадре или с потерей кадра. Методы обнаружения ошибок основаны на передаче в составе кадра избыточной информации (контрольных разрядов). Кр вычисляются в передатчике как функция от информационных разрядов(ир). Приемник повторно вычисляет кр по тому же алгоритму и при несовпадении с полученными кр фиксируется ошибка. Методы вычисления кр: контроль по паритету(обнаруживает одиночные и нечетное количество ошибок – контроль по четности, по нечетности), вертикальный и горизонтальный контроль по паритету (обнаруживается большая часть двойных ошибок, велика избыточность), контрольная сумма (передатчик дополняет сумму всех байт кадра до 0 или FF, приемник суммирует по модулю равному разрядности контрольного кода, включая кр, вероятность обнаружения ошибок 99,6%, уменьшается при увеличении разрядности кода), циклический контроль(исходные данные предоставляются многоразрядным двоичным числом в качестве кр берется остаток от деления этого числа на известный делитель, при приеме снова вычисляется остаток от деления на тот же делитель, но делятся данные кадры с полученным кр, если остаток = 0, то ошибки нет, если не =, то ошибка. Обнаруживаются одиночные, двойные и ошибки в нечетном числе бит.)
Методы исправления ошибок основаны на повторной передаче кадра данных. Отправитель нумерует посылаемые кадры и для каждого ожидает положительной квитанции (служебного кадра «ошибок нет»). При получении искаженного кадра приемник посылает отрицательную квитанцию, указывающую, что кадр надо передать повторно. При отправки каждого кадра передатчик запускает таймер, и если по его истечении не получена квитанция, то кадр (возможно квитанция) утерян и выполняется повторная передача. Методы исправления: метод с простоями (передатчик ожидает положительной квитанции и только после этого посылает следующий кадр, иначе повторяет передачу, +: надежность передачи, -: уменьшение производительности), метод скользящего окна (при отправке кадра источнику разрешается до получения квитанции на кадр передать еще некоторое количество кадров, если за это время квитанция так и не пришла, то передача приостанавливается и кадр передается снова, +: увеличивается скорость обмена, -: передатчик должен хранить в буфере все кадры на которые нет квитанций, надо отслеживать номер кадра на который пришла квитанция и номер кадра который можно передать до получения следующей квитанции).
IP адресация: классы сетей, деление на сети и подсети, маски подсетей.
В современных сетях для адресации узлов одновременно используются аппаратные, числовые и символьные адреса. Пользователи адресуют комп-ы с символьными адресами, которые автоматически заменяются в сообщениях передаваемых по сети на числовые адреса. После доставки в сеть назначения вместо числового адреса используется аппаратный адрес комп-а. типы адресов: лок адреса- используются для доставки сообщений в пределах подсети, IP адреса – используются для передачи пакетов между сетями, DNS-имя – символьные адреса с их помощью пользователи адресуют комп-ы.
4 класса IP-адресов: А(1 сеть 10.0.0.0), В(16 сетей 172.16.0.0-172.31.0.0), С(255 сетей 192.161.0.0-192.161.255.0).
Ограничение на IP-адреса узлов и сетей: 1) ни номер сети, ни номер узла не равны всем двоичным 0 или 1. 2)127.х.х.х – запрещен для узлов и сетей, т.к. используется для тестирования программ и взаимодействия процессов в пределах 1 комп-а 3)групповой адрес не содержит ни номера сети, ни номера узла.
Маска – содержит непрерывную последовательность двоичных единиц в тех разрядах, которые в IP адресе и непрерывную последовательность нулей в тех разрядах, которые соответствуют номеру узла.
+ : маска позволяет отказаться от класса адресов, маска используется в маршрутизаторе, маска позволяет администратору структурировать сеть, т.е. делить ее на подсети не требуя от поставщика услуг доп адреса, поставщики услуг могут объединять адресное пространство лс вводя прификсы, уменьшая объем маршрутизации.
Порядок назначения адресов — номера сетей назначаются: централизованно(поставщиками услуг), произвольно(если сеть работает автономно), номера узлов администратор назначает произвольно в пределах разрешенного диапазона адресов, для лок сетей зарезервированы адреса трех классов.
Сетевая технология Ethernet: физический и канальный уровни. Метод доступа CSMA/CD. Обработка коллизий. Топологии. Адресация. Формат кадров.
CSMA/CD реализуется сетевым адаптером аппаратно или микропрограммно, он используется в лс с логической общей шиной, включая радио сети. Сетевой адаптер прослушивает разделяемую среду, признаком ее незанятости является отсутствие несущей, т.е. основной гармоники сигнала. Частота несущей 5-10 МГц, при манчестерском кодировании, если среда не занята, сетевой адаптер передает кадр, который распространяется в обе стороны, после окончания передачи кадра все узлы выдерживают технологическую паузу. Если 2 и более станции передают кадр, возникает коллизия. Приемник обнаруживает коллизию по длине кадра меньше 64Б, а передатчик по несовпадению передаваемых и наблюдаемых сигналов. После этого сетевой адаптер прерывает передачу и усиливает коллизию, посылая jam-последовательность в 32 бита для оповещения других станций, затем сетевой адаптер делает случайную паузу. После 16 неудачных попыток кадр отбрасывается.
Формат кадра: сетевые адаптеры и их драйверы, мосты, коммутаторы, и маршрутизаторы работают со всеми форматами кадров. а) кадр 802.3/LLC: преамбула(необходима для синхронизации приемника и передатчика), SFD (начальный ограничитель кадра), DA (адрес назначения индивидуальный, широковещательный, групповой), SA (адрес источника), L(длина поля данных в байтах), FCS(контрольные разряды CRC). б) кадр Raw802.3/Novell 802.3 такой же как и предыдущий, но без вложенного LLC кадра. в) Ethernet DIX(II) = (б), но вместо поля L, поле Т (тип протокола верхнего уровня, вложившего свой пакет в поле данных кадра). г) Ethernet SWAP – расширение кадра (а), введением заголовка SWAP, который вложен в протокол LLC.
Топологии: шина, звезда с активным центром, двухстороннее соединение пары узлов без хаба, дерево.
Скорость – 10 Мб/с, мах диаметр сети 2500м, мах число станций в сети 1024
Стандарты Ethernet 10 Мб/с.
Толстый коксиал, диаметр 0,5, топология – шина, сегмент кабеля ограничивают терминаторы (заглушки), поглощающие сигналы и препятствующие возникновению отраженных сигналов, трансиверы – с их помощью станции подключаются к кабелю, функции трансивера – приемо-передача данных, определение коллизий по уровню постоянной составляющей, гальваническая развязка, контроль болтливости (если из-за неисправности повышается мах время передачи кадра, то трансивер отсоединяет кабель от передатчика). Повторитель побитно синхронно повторяет сигналы с одного сегмент в другой, улучшая их форму и мощность и синхронизируя их.
Правило «5-4-3» — мах конфигурация стандарта: 5- мах число сегментов, 4- мах число повторителей, 3- мах число нагруженных сегментов. Мах диаметр сети 2500м, мах число узлов 297.
Тонкий коксиал, BNST коннектор – это тройник, одна точка которого соединяется с СА, 2 других с точками разрыва.
Мах диаметр сети – 925м, мах число уровней – 87
Общий недостаток отсутствие оперативной информации о состоянии моноканала. Повреждение кабеля обнаруживается по неработоспособности сети, а поиск – кабельным тестером.
Топология – звезда с активным центром
Мах длина сегмента 100м, определяется полосой пропускания UTP позволяющей передавать данные в манчестерском коде со скоростью 10 Мб/с на 100м мах. Hub выполняет функции повторителя сигналов на всех отрезках подключенных к его портам, обнаруживает коллизию.
Правило 4 хабов. Мах число хабов между любыми двумя станциями равно 4. можно соединять в древовидную структуру. Петли, замкнутые контуры запрещены.
Мах диаметр сети 500м, мах число узлов 1024 достигается в двухуровневом соединении хабов.
Структура, топология как предыдущий.
Стандарты: FOIRL- мах длина сегмента 1000м мах диаметр сети 2500м, 10Base-FL- мах длина сегмента 2000м мах диаметр сети 2500м, 10Base-FB только для соединения «5 хабов», мах длина сегментов 2000м, мах диаметр сети 2740м.
Источник
Способы устранения ошибок при передаче данных
Канальный уровень должен обнаруживать ошибки передачи данных, связанные с искажением бит в принятом кадре данных или с потерей кадра, и по возможности их корректировать.
Большая часть протоколов канального уровня выполняет только первую задачу — обнаружение ошибок, считая, что корректировать ошибки, то есть повторно передавать данные, содержавшие искаженную информацию, должны протоколы верхних уровней. Так работают такие популярные протоколы локальных сетей, как Ethernet, Token Ring, FDDI и другие. Однако существуют протоколы канального уровня, например LLC2 или LAP-B, которые самостоятельно решают задачу восстановления искаженных или потерянных кадров.
Очевидно, что протоколы должны работать наиболее эффективно в типичных условиях работы сети. Поэтому для сетей, в которых искажения и потери кадров являются очень редкими событиями, разрабатываются протоколы типа Ethernet, в которых не предусматриваются процедуры устранения ошибок. Действительно, наличие процедур восстановления данных потребовало бы от конечных узлов дополнительных вычислительных затрат, которые в условиях надежной работы сети являлись бы избыточными.
Напротив, если в сети искажения и потери случаются часто, то желательно уже на канальном уровне использовать протокол с коррекцией ошибок, а не оставлять эту работу протоколам верхних уровней. Протоколы верхних уровней, например транспортного или прикладного, работая с большими тайм-аутами, восстановят потерянные данные с большой задержкой. В глобальных сетях первых поколений, например сетях Х.25, которые работали через ненадежные каналы связи, протоколы канального уровня всегда выполняли процедуры восстановления потерянных и искаженных кадров.
Поэтому нельзя считать, что один протокол лучше другого потому, что он восстанавливает ошибочные кадры, а другой протокол — нет. Каждый протокол должен работать в тех условиях, для которых он разработан.
Все методы обнаружения ошибок основаны на передаче в составе кадра данных служебной избыточной информации, по которой можно судить с некоторой степенью вероятности о достоверности принятых данных. Эту служебную информацию принято называть контрольной суммой или (последовательностью контроля кадра — Frame Check Sequence, FCS). Контрольная сумма вычисляется как функция от основной информации, причем необязательно только путем суммирования. Принимающая сторона повторно вычисляет контрольную сумму кадра по известному алгоритму и в случае ее совпадения с контрольной суммой, вычисленной передающей стороной, делает вывод о том, что данные были переданы через сеть корректно.
Существует несколько распространенных алгоритмов вычисления контрольной суммы, отличающихся вычислительной сложностью и способностью обнаруживать ошибки в данных.
Контроль по паритету представляет собой наиболее простой метод контроля данных. В то же время это наименее мощный алгоритм контроля, так как с его помощью можно обнаружить только одиночные ошибки в проверяемых данных. Метод заключается в суммировании по модулю 2 всех бит контролируемой информации. Например, для данных 100101011 результатом контрольного суммирования будет значение 1. Результат суммирования также представляет собой один бит данных, который пересылается вместе с контролируемой информацией. При искажении при пересылке любого одного бита исходных данных (или контрольного разряда) результат суммирования будет отличаться от принятого контрольного разряда, что говорит об ошибке. Однако двойная ошибка, например 110101010, будет неверно принята за корректные данные. Поэтому контроль по паритету применяется к небольшим порциям данных, как правило, к каждому байту, что дает коэффициент избыточности для этого метода 1/8. Метод редко применяется в вычислительных сетях из-за его большой избыточности и невысоких диагностических способностей.
Вертикальный и горизонтальный контроль по паритету представляет собой модификацию описанного выше метода. Его отличие состоит в том, что исходные данные рассматриваются в виде матрицы, строки которой составляют байты данных. Контрольный разряд подсчитывается отдельно для каждой строки и для каждого столбца матрицы. Этот метод обнаруживает большую часть двойных ошибок, однако обладает еще большей избыточностью. На практике сейчас также почти не применяется.
Циклический избыточный контроль (Cyclic Redundancy Check, CRC) является в настоящее время наиболее популярным методом контроля в вычислительных сетях (и не только в сетях, например, этот метод широко применяется при записи данных на диски и дискеты). Метод основан на рассмотрении исходных данных в виде одного многоразрядного двоичного числа. Например, кадр стандарта Ethernet, состоящий из 1024 байт, будет рассматриваться как одно число, состоящее из 8192 бит. В качестве контрольной информации рассматривается остаток от деления этого числа на известный делитель R. Обычно в качестве делителя выбирается семнадцати- или тридцати трехразрядное число, чтобы остаток от деления имел длину 16 разрядов (2 байт) или 32 разряда (4 байт). При получении кадра данных снова вычисляется остаток от деления на тот же делитель R, но при этом к данным кадра добавляется и содержащаяся в нем контрольная сумма. Если остаток от деления на R равен нулю 1 ( 1 Существуетнесколько модифицированная процедура вычисления остатка, приводящая к получению в случае отсутствия ошибок известного ненулевого остатка, что является более надежным показателем корректности.), то делается вывод об отсутствии ошибок в полученном кадре, в противном случае кадр считается искаженным.
Этот метод обладает более высокой вычислительной сложностью, но его диагностические возможности гораздо выше, чем у методов контроля по паритету. Метод CRC обнаруживает все одиночные ошибки, двойные ошибки и ошибки в нечетном числе бит. Метод обладает также невысокой степенью избыточности. Например, для кадра Ethernet размером в 1024 байт контрольная информация длиной в 4 байт составляет только 0,4 %.
Методы коррекции ошибок в вычислительных сетях основаны на повторной передаче кадра данных в том случае, если кадр теряется и не доходит до адресата или приемник обнаружил в нем искажение информации. Чтобы убедиться в необходимости повторной передачи данных, отправитель нумерует отправляемые кадры и для каждого кадра ожидает от приемника так называемой положительной квитанции — служебного кадра, извещающего о том, что исходный кадр был получен и данные в нем оказались корректными. Время этого ожидания ограничено — при отправке каждого кадра передатчик запускает таймер, и, если по его истечении положительная квитанция на получена, кадр считается утерянным. Приемник в случае получения кадра с искаженными данными может отправить отрицательную квитанцию — явное указание на то, что данный кадр нужно передать повторно.
Существуют два подхода к организации процесса обмена квитанциями: с простоями и с организацией «окна».
Метод с простоями (Idle Source) требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). Если же квитанция не приходит в течение тайм-аута, то кадр (или квитанция) считается утерянным и его передача повторяется. На рис. 2.24, а видно, что в этом случае производительность обмена данными существенно снижается, — хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции. Снижение производительности этого метода коррекции особенно заметно на низкоскоростных каналах связи, то есть в территориальных сетях.
Рис. 2.24. Методы восстановления искаженных и потерянных кадров
Второй метод называется методом «скользящего окна» (sliding window). В этом методе для повышения коэффициента использования линии источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти кадры положительных ответных квитанций. (Далее, где это не искажает существо рассматриваемого вопроса, положительные квитанции для краткости будут называться просто «квитанциями».) Количество кадров, которые разрешается передавать таким образом, называется размером окна. Рисунок 2.24, б иллюстрирует данный метод для окна размером в W кадров.
В начальный момент, когда еще не послано ни одного кадра, окно определяет диапазон кадров с номерами от 1 до W включительно. Источник начинает передавать кадры и получать в ответ квитанции. Для простоты предположим, что квитанции поступают в той же последовательности, что и кадры, которым они соответствуют. В момент t1 при получении первой квитанции К1 окно сдвигается на одну позицию, определяя новый диапазон от 2 до (W+1).
Процессы отправки кадров и получения квитанций идут достаточно независимо друг от друга. Рассмотрим произвольный момент времени tn, когда источник получил квитанцию на кадр с номером n. Окно сдвинулось вправо и определило диапазон разрешенных к передаче кадров от (n+1) до (W+n). Все множество кадров, выходящих из источника, можно разделить на перечисленные ниже группы (рис. 2.24, б).
- Кадры с номерами от 1 доп. уже были отправлены и квитанции на них получены, то есть они находятся за пределами окна слева.
- Кадры, начиная с номера (п+1) и кончая номером (W+n), находятся в пределах окна и потому могут быть отправлены не дожидаясь прихода какой-либо квитанции. Этот диапазон может быть разделен еще на два поддиапазона:
- кадры с номерами от (n+1) до т, которые уже отправлены, но квитанции на них еще не получены;
- кадры с номерами от m до (W+n), которые пока не отправлены, хотя запрета на это нет.
- Все кадры с номерами, большими или равными (W+n+1), находятся за пределами окна справа и поэтому пока не могут быть отправлены.
Перемещение окна вдоль последовательности номеров кадров показано на рис. 2.24, в. Здесь t0 — исходный момент, t1 и tn — моменты прихода квитанций на первый и n-й кадр соответственно. Каждый раз, когда приходит квитанция, окно сдвигается влево, но его размер при этом не меняется и остается равным W. Заметим, что хотя в данном примере размер окна в процессе передачи остается постоянным, в реальных протоколах (например, TCP) можно встретить варианты данного алгоритма с изменяющимся размером окна.
Итак, при отправке кадра с номером n источнику разрешается передать еще W-1 кадров до получения квитанции на кадр n, так что в сеть последним уйдет кадр с номером (W+n-1). Если же за это время квитанция на кадр n так и не пришла, то процесс передачи приостанавливается, и по истечении некоторого тайм-аута кадр n (или квитанция на него) считается утерянным, и он передается снова.
Если же поток квитанций поступает более-менее регулярно, в пределах допуска в W кадров, то скорость обмена достигает максимально возможной величины для данного канала и принятого протокола.
Метод скользящего окна более сложен в реализации, чем метод с простоями, так как передатчик должен хранить в буфере все кадры, на которые пока не получены положительные квитанции. Кроме того, требуется отслеживать несколько параметров алгоритма: размер окна W, номер кадра, на который получена квитанция, номер кадра, который еще можно передать до получения новой квитанции.
Приемник может не посылать квитанции на каждый принятый корректный кадр. Если несколько кадров пришли почти одновременно, то приемник может послать квитанцию только на последний кадр. При этом подразумевается, что все предыдущие кадры также дошли благополучно.
Некоторые методы используют отрицательные квитанции. Отрицательные квитанции бывают двух типов — групповые и избирательные. Групповая квитанция содержит номер кадра, начиная с которого нужно повторить передачу всех кадров, отправленных передатчиком в сеть. Избирательная отрицательная квитанция требует повторной передачи только одного кадра.
Метод скользящего окна реализован во многих протоколах: LLC2, LAP-B, X.25, TCP, Novell NCP Burst Mode.
Метод с простоями является частным случаем метода скользящего окна, когда размер окна равен единице.
Метод скользящего окна имеет два параметра, которые могут заметно влиять на эффективность передачи данных между передатчиком и приемником, — размер окна и величина тайм-аута ожидания квитанции. В надежных сетях, когда кадры искажаются и теряются редко, для повышения скорости обмена данными размер окна нужно увеличивать, так как при этом передатчик будет посылать кадры с меньшими паузами. В ненадежных сетях размер окна следует уменьшать, так как при частых потерях и искажениях кадров резко возрастает объем вторично передаваемых через сеть кадров, а значит, пропускная способность сети будет расходоваться во многом вхолостую — полезная пропускная способность сети будет падать.
Выбор тайм-аута зависит не от надежности сети, а от задержек передачи кадров сетью.
Во многих реализациях метода скользящего окна величина окна и тайм-аут выбираются адаптивно, в зависимости от текущего состояния сети.
Источник