Связи на физическом уровне могут быть описаны в терминах "передача-прием", характеризующих взаимодействующие устройства, а также состояние конечных точек. Операции на физическом уровне могут быть отнесены либо к последовательным, либо к параллельным.
2.1. Схемы взаимодействия устройств.
Существует 3 схемы взаимодействия устройств:
Симплексная. Обеспечивает одностороннюю передачу (только в одном направлении). Связь двухпроводная (телерадиовещание).
Полудуплекс. Передача в любую сторону. Используя соответствующее оборудование, можно менять направление потока данных в линии (движение через узкий мост, теннис). Для связи необходимо 2 провода. Система имеет конечное время переключения.
Дуплекс. При наличии связи с двумя каналами появляется возможность передавать информацию в обоих направлениях. Обычно, по одному каналу информация передается в одну сторону, а по другому - в другую. Если конечное оборудование способно одновременно передавать и принимать данные, то система в целом может обеспечить двусторонний обмен данными (дорога, отдельная для каждого направления). Для передачи необходимо 4 провода, т.е. 2 канала передачи. Улучшается эффективность системы, т.к. исчезает время переключения каналов.
2.2. Архитектура физического уровня.
Существует 2 архитектуры физического уровня:
Точка - точка. Два взаимодействующих устройства разделяют одну связь. Она может быть симплексной или полудуплексной.
Точка - множество точек. Этот тип архитектуры предполагает, что данные, передаваемые одним устройством физического уровня, принимаются множеством устройств. Такие связи являются симплексными (кабельное телевидение), полудуплексными (10/100 BaseT Ethernet) или дуплексными (SONET).
На базе этих двух архитектур строятся другие топологии, являющиеся вариацией 2-х базовых архитектур.
На базе 3 основных топологий строится более сложная топология - дерево или сетка.
Топология может быть физической и логической. Физическая топология определяет правила физических соединений узлов (прокладку реальных кабелей).
bus - шина
star - звезда
ring - кольцо
mesh - сетка
Логическая топология определяет направление потоков данных между узлами сети. Обе топологии относительно независимы друг от друга. В логической шине информация, передаваемая одним узлом, одновременно доступна для всех узлов, подключенных к одному сегменту. Логическая шина может быть реализована на физической шине, звезде, дереве и сетке. Шина на звезде реализуется через внутреннюю цифровую шину в центральном устройстве (повторителе).
Логическое кольцо - информация передается последовательно от узла к узлу. Каждый узел принимает кадры только от предыдущего и посылает только последующему узлу по кольцу. Узел транслирует дальше по сети все кадры, а обрабатывает только адресуемые ему. Реализуется на физическом кольце или на звезде с кольцом внутри концентратора. Современный подход к построению высокопроизводительных сетей переносит большую часть функций на центральные сетевые устройства (концентраторы). При этом можно говорить о логической звезде. Реализация логического кольца на физической звезде.
2.3. Методы доступа.
Метод доступа определяет способ или правила, в соответствии с которыми узел может получить или отправить данные. Методы доступа могут быть:
вероятностными;
детерминированными;
Вероятностный - узел, желающий послать данные в сеть, прослушивает сеть. Если линия занята или обнаружена коллизия (столкновение сигналов от двух передатчиков), то попытка передачи откладывается на некоторое время. Детерминированный метод доступа - узлы получают доступ к среде в предопределенном порядке. Последовательность определяется контроллером сети, который может быть централизованным (его функции может выполнять сервер) или распределенными (функции выполняются оборудованием всех узлов). Общий недостаток вероятностных методов доступа - неопределенное время прохождение кадров, резко возрастающее при увеличении нагрузки на сеть. Основное преимущество детерминированного метода доступа - ограниченное время прохождения кадра, мало зависящее от нагрузки. К вероятностным методам доступа относятся CSMA/CD и CSMA/CA. CSMA/CD - множественный доступ с прослушиванием несущей и обнаружением коллизий. CSMA/CA - множественный доступ с прослушиванием несущей и избежанием коллизий. Основные типы детерминированного доступа:
доступ с передачей маркера
поллинг (опрос готовности) узлов на передачу
CSMA/CD: узел, готовый послать кадр, прослушивает линию. При отсутствии несущей он начинает передачу кадра, одновременно контролируя состояние линии. При обнаружении коллизий передача прекращается, и повторная попытка откладывается на случайное время. Частота коллизий связана с количеством и активностью подключенных узлов. Применяется в сетевых архитектурах Ethernet, EtherTalk (Apple), IBM PC Network, AT&T StartLAN. CSMA/CA: узел, готовый послать кадр, прослушивает линию. При отсутствии несущей он посылает короткий сигнал запроса на передачу RTS и определенное время ожидает ответа CTS от адресата назначения. При отсутствии ответа CTS попытка передачи откладывается (предполагается возможность коллизий). При получении ответа в линию посылается кадр. Применяется в сети Apple Local Talk. Доступ с передачей маркера (token). Маркер последовательно, от одного ПК к другому передается до тех пор, пока его не получит узел, которому требуется передача данных. Этот узел добавляет к маркеру свои данные, указывает в маркере адрес свой и получателя и отправляет его дальше по кольцу. Маркер с данными проходит по кольцу, пока не достигнет адресуемого узла, который снимает данные (физически они остаются при маркере) и делает пометку в маркере, т.е. формирует подтверждение о получении данных. После этого маркер отправляют дальше. При достижении узла отправителя последний определяет по маркеру судьбу своих данных. При наличии подтверждения данные снимаются с маркера и он, пустой, опять отправляется по кругу. При отсутствии подтверждения от получателя принимает решение повторить или нет передачу. В кольце с диаметром 200 м. маркер может циркулировать с частотой 10000 оборотов в секунду.
2.4. Технология передачи данных.
Существует 2 основные технологии передачи данных:
широкополосная передача (аналоговая)
узкополосная передача (для цифровых сигналов)
Широкополосная передача основана на использовании постоянно изменяющихся волн для переноса информации по каналу связи. Их обычно представляют синусоидальной функцией и поэтому называют синусоидальной волной.
Она может быть описана следующими параметрами:
частота - представляет собой последовательность переходов, составляющих один цикл (средняя точка, верхний экстремум, средняя точка, нижний экстремум, средняя точка). Количество таких циклов за одну секунду называется частотой синусоидальной волны. Измеряется в циклах за секунду или в герцах.
амплитуда - представляет собой относительное расстояние между экстремумами волны.
фаза отдельно взятой синусоидальной волны измеряется относительно другой синусоидальной волны (опорной) и выражается как угловой сдвиг между этими двумя волнами. Выражение "две синусоидальные волны сдвинуты по фазе на 180 градусов" означает, что в один и тот же момент одна из волн достигает максимального экстремума, а другая - минимального.
Узкополосная передача:
полярное кодирование. Основано на использовании дискретных состояний канала связи для передачи по нему информации. Эти дискретные состояния обычно представлены как некие импульсы (как правило, напряжения) и носят название прямоугольной волны. Разработано множество схем представления цифровых сигналов или цифрового кодирования. Цифровая единица представлена напряжением +12V, а цифровой ноль - напряжением -12V.
униполярное кодирование.
биполярное кодирование (с возвратом к нулю). Цифровые нули представлены отсутствием напряжения, а цифровые единицы - знакогенерирующимися 3-х вольтовыми импульсами.
Потенциальное кодирование - информативным является уровень сигнала в определенные моменты времени. Потоковое кодирование - информативным является наличие или отсутствие тока в линии. В сетях используется потенциальное кодирование. Если необходимо передать цифровые данные по аналоговой линии передачи, необходим механизм представления цифровых данных в форме синусоидальной волны, чтобы показать присутствие единиц и нулей. Если выполняется манипулирование амплитудой, то это амплитудная модуляция. Частотой - частотная модуляция. Фазой - фазовая модуляция.
Для передачи данных, особенно по телефонным линиям, применяется переменный ток. Непрерывный сигнал на частоте от 1000 до 2000Гц называется синусоидальной несущей частотой. Амплитуда, частота, фаза несущей могут изменяться (модулироваться) для передачи информации. При амплитудной модуляции используются 2 разные амплитуды сигнала, соответствующие значениям 0 и 1 (рис. Б. Амплитуда либо нулевая, либо ненулевая). При частотной модуляции для передачи цифрового сигнала используется несколько различных частот (рис. В). При простейшей фазовой модуляции применяется сдвиг фазы несущей частоты на 180 градусов через определенные интервалы времени (рис. Г). Два состояния кодируются наличием либо отсутствием фазового сдвига на границе каждого бита. Устройство, принимающее последовательный поток битов, и преобразующее его в выходной сигнал, модулируемый одним или несколькими из приведенных способов, а также выполняющее обратные преобразования называется модемом. Устанавливается между цифровым компьютером и аналоговой телефонной линией. Все хорошие модемы используют комбинированные методы модуляции сигналов для передачи максимального количества бит.
2.5. Сравнение широкополосной и узкополосной передачи сигналов.
Телефонная линия - широкополосная линия связи. Линия T1 - узкополосной канал. Соответственно и передаваемая информация может быть и аналоговой и цифровой. Выделяют 2 типа оборудования: DTE - терминальное оборудование. DCE - телекоммуникационное оборудование. DTE генерирует информацию в форме данных, которые могут быть переданы по каналу связи. Она может быть цифровой и аналоговой. DCE получает данные от DTE в его формате и преобразовывает их в формат, совместимый с существующим каналом связи. Схема кодирования:
На рисунке представлена матрица из 4-х элементов. Столбцы определяют природу линий связи, а строки - вид информации, генерируемый устройством DTE. I квадрант. Информация в аналоговой форме должна быть передана через широкополосной канал (речь, передаваемая по телефонной линии (звуковой сигнал (DTE) -> микрофон (DCE) -> аналоговый сигнал)). II квадрант. Цифровая информация должна быть передана по аналоговому каналу. Схема преобразования: ПК (DTE) -> модем (DCE) -> аналоговый канал. III квадрант. Поток аналоговой информации должен быть передан через цифровой канал. Видеоинформация (DTE) -> кодек (DCE) -> цифровая линия T1. IV квадрант. Цифровая информация должна быть передана по цифровой линии. Выполняется преобразование схемы кодирования сигнала, используемого DTE, в схему, используемую линией связи. Например, RS-232 (COM порт) использует полярную схему кодирования сигналов, а канал связи использует кодирование BPRZ, отличающееся от предыдущего. DCE, осуществляющий это преобразование называется модулем обслуживания канала и данных (CSU/DSU). Оборудование DCE играет важную роль в реализации физического уровня. Используя различные типы функций DCE, любая информация (аналоговая или цифровая) может быть приведена в форму, совместимую с любым каналом связи (узкополосным или широкополосным).
2.6. Ограничения на передачу сигнала и информационная емкость канала.
Пропускная способность линий связи - это количество бит, передаваемых по линиям связи за единицу времени. Измеряется: бит/сек, Кбит/сек, Мбит/сек, Гбит/сек. Полоса пропускания линий связи - это диапазон частот, гарантированно воспринимаемых приемником. Это физическая характеристика среды передачи данных и зависит обычно от конструкции, толщины и длины носителя. Сетевой трафик - поток информации, передаваемый по сети. Кроме полезной информации, включает и служебную ее часть - неизбежные накладные расходы на организацию взаимодействия узлов сети. Каналы связи имеют ограниченную пропускную способность. Она связана с его полосой пропускания и соотношением сигнал/шум в канале. Первым фактором, определяющим количество информации, которая может быть передана по каналу, является максимальная скорость передачи сигнала, поддерживаемая этим каналом связи. Наличие изменения в сигнале может рассматриваться как сигнализирующее событие вне зависимости от природы сигнала (аналогового или цифрового). Для широкополосных систем изменение одной частоты или амплитуды на другую свидетельствует о сигнализирующем событии. Для узкополосных систем переход от одного дискретного состояния в другое (например, от +12V к -12V) также является подобным событием. Такие сигнализирующие события обычно носят специальное название - боды. Таким образом, максимальная скорость передачи сигналов, поддерживаемая каналом, эквивалентна максимальной скорости передачи в бодах, поддерживаемых этим каналом связи. На уровне физических сигналов вместо битовой скорости (бит/сек) оперируют понятием изменения сигнала в линии, измеряемой в бодах. Под ней понимается число изменений различных состояний линии за единицу времени. В 1924 г. Гарольд Найквист (Bell Telephone Laboratories) открыл зависимость между полосой пропускания канала связи и его максимальной скоростью передачи в бодах. Скорость в бодах не может превышать полосу пропускания канала более чем вдвое, т.е. для телефонной лини с полосой пропускания 3000 Гц, скорость передачи в бодах не может быть выше, чем 6000 бод. Во многих схемах кодирования каждый переход сигнала в канале соответствует передаче бита от передатчика (Tx) к приемнику (Rx). Тогда скорость в бодах и битах совпадает (1 бит за один бод). Другие схемы кодирования (для аналоговой и цифровой) могут передать более одного бита в течение одного сигнализирующего события (несколько бит за один бод). В них скорость в битах будет больше скорости в бодах. Такие схемы классифицируются в терминах, характеризующих количество бит информации, переданных за каждый переход сигнала.
dibit - 2 бита/бод
tribit - 3 бита/бод
quadbit - 4 бита/бод
Сейчас широко распространена схема кодирования DPSK - относительная фазовая модуляция. Если демодулятор может распознать разницу между двумя фазами синусоидальной волны, он передает один бит информации с каждым изменением фазы. Для создания такого модема можно назначить ноль одной фазе (например, со сдвигом 0 градусов), а цифровое значение 1 - другой фазе (со сдвигом 180 градусов). Каждый раз при переключении модема между фазами 0 и 180 передается один бит информации. Чувствительность демодулятора можно повысить, чтобы он различал промежуточные фазы (90 и 270 градусов), т.е. при распознавании 4-х фаз волны мы можем назначить каждой фазе 2-х битовое значение.
0 градусов - 00
90 градусов - 01
180 градусов - 10
270 градусов - 11
2.7. Последовательная и параллельная передача.
Параллельная передача.
Последовательная передача.
При параллельной передаче все линии используются для передачи данных, кроме одной, зарезервированной для передачи синхросигнала между отправителем и получателем. Биты передаются через линии одновременно с большой скоростью, но это преимущество нейтрализуется явлением, называемым перекосом шины или рассогласованием, при котором устройство реагирует на распространяемый сигнал не одинаково. Т.к. каждая линия канала связи имеет свои электрические характеристики, биты данных в каждом канале могут вести себя по-разному. Тогда биты, помещенные источником в канал, имея разную относительную скорость достигнут приемника в разное время. Этот эффект усиливается с расстоянием, поэтому параллельные имеют ограничение по длине. В последовательной передаче между источником и приемником существует только один канал связи, поэтому биты должны следовать по каналу один за другим. Это вызывает ограничение по скорости в сравнении с параллельными каналами. В последовательных каналах нет проблемы рассогласования, поэтому их можно использовать для связи на дальних расстояниях. Но возникает другая проблема - необходимость в синхронизации приемника и передатчика.
2.8. Побитная синхронизация.
Rx (приемник) должен четко знать, когда нужно обратиться к линии, чтобы снять бит. Проблема решается использованием синхронизирующих устройств (генераторов) на каждом конце линии. Генератор передатчика задает темп передачи бит в линию. Генератор получателя определяет темп, с которым он должен опрашивать линию. Если генератор передатчика должен выдавать в линию 100 бит/сек, то он настраивается на такую скорость и на ходе получателя тогда биты будут появляться каждую 1/100 сек. Если генератор получателя тоже настроен на 100 бит/сек, то получатель будет опрашивать линию 100 раз в сек. Получатель обычно опрашивает состояние линии в течение очень короткого времени, чтобы определить находится линия в состоянии 1 или 0. При опросе линии во время перехода от 1 к 0 или наоборот возникает неоднозначность. Лучшей точкой для опроса является положение в центре бита и получатель может найти его, используя переход 1-0 или 0-1 в качестве опорной точки. Получатель может запустить его на одном из этих переходов, подождать половину времени длительности бита и затем опросить состояние линии. Стробирование (опрос) линии выполняется через интервал времени, равный длительности одного бита. Если генераторы Tx и Rx работают с одинаковой частотой, то биты будут опрашиваться в "правильные" моменты времени. При расхождении генераторов возможны ошибки распознания бит. Обычно генераторы всегда будут расходиться в частотах, поэтому необходима постоянная их синхронизация через определенные промежутки времени. Есть некоторые системы, в которых сигналы синхронизации передаются по линиям вместе с данными, так что получатель может выделить синхроимпульсы, которые точно совпадают с синхроимпульсами самого источника. Существует два способа синхронизации передатчика и приемника:
Основывается на явной синхронизации при обмене информацией. Это синхронная передача. Она означает, что передатчик и приемник синхронизируются от одного источника. Приемник работает при этом синхронно с передатчиком (с фазовым сдвигом, обусловленным временем распространения сигнала). Синхросигнал либо передается по отдельной линии связи, либо встроен в основной сигнал с помощью самосинхронизирующего кодирования. При синхропередаче передатчик постоянно активен. Он непрерывно посылает битовую последовательность если не полезных данных, то некоторого заполнителя.
Основывается на неявной синхронизации взаимодействующих устройств. Это асинхронная передача, т.е. передатчик и приемник не пользуются общим источником синхронизации. Передача очередной порции может быть начата в любой момент времени и время прохождения соседних блоков данных между передатчиком и приемником может быть разным.
2.9. Посимвольная синхронизация.
Посимвольная синхронизация заключается в определении группы бит, принадлежащих конкретному символу. Задача - определить в сплошном потоке бит первый бит символа. Тогда, зная количество бит в символе, можно собирать символы. Определение первого бита в символе зависит от типа передачи. Определение символов в синхронной передаче. Используются для передачи целых блоков данных. При этом длительность каждого бита в передаче одинакова и интервал времени между передачей последнего бита символа и первого бита следующего символа равна нулю или целому числу интервала времени, необходимого для передачи целого символа. Чтобы правильно определить начало символа в передаваемом блоке, перед ним указывается символ синхронизации (СИН). Это символ из таблицы кодов 16h. Приемник постоянно проверяет каждый принятый символ на равенство этой комбинации. Если она обнаруживается, то приемник начнет отсчитывать по 8 бит и собирать символы. Может возникнуть ложная синхронизация, если приемник выделит из потока символов комбинацию, совпадающую с "СИН". Для избежания этого вставляют 2 или 4 "СИН". Тогда приемник, обнаружив один "СИН" ожидает следующий "СИН" и если не находит, то переходит в режим "поиск синхронизации". Определение символов в асинхронной передаче. Используется в системах, где символы передаются поодиночке и не существует каких-либо жестких временных соотношений между соседними символами. Символы могут передаваться непрерывным потоком с нулевым промежутком между ними как в синхронной передаче, либо с промежутками между соседними символами от нескольких секунд до нескольких часов. При этом приемник должен восстанавливать синхронизацию на каждый символ и опознавать первый бит каждого символа. Это достигается включением в код каждого символа стартового элемента, который указывает на начало каждого символа.
Получатель обнаруживает стартовый элемент, опрашивая состояние линии. Когда линия свободна, т.е. по ней не передаются данные, то обычно она находится в состоянии единицы. При необходимости послать символ, передатчик переходит сначала в состояние ноль, который играет роль стартового элемента и извещает приемник о том, что следующие биты являются информационными, т.е. источник (Tx) генерирует стартовый бит, переключая линию из состояния 1 в состояние 0 на интервал времени, равный длительности одного бита. Далее следуют информационные биты. Приемник (Rx) обнаруживает изменение состояния линии и запускает свой генератор. Через интервал времени, равный половине длительности бита, получатель снова опрашивает линию, чтобы убедиться, что она все еще находится в состоянии ноль. Если это действительно так, то Rx интерпретирует ноль как стартовый бит, после чего он опрашивает линию с интервалами, равными длительности одного бита и собирает поступающий символ. Если после опроса линии приемник снова обнаружит 1, то он отнесет начальный переход из состояния 1 в состояние 0 на счет всплеска шума и не предпримет никаких действий. В конце каждого символа передается стоповый бит, чтобы вернуть генератор приемника в исходное состояние до начала передачи следующего символа. Стоповый элемент равен 1, а его длительность может быть разной в разных системах. Длина стопового бита определяется таким образом, чтобы дать устройству время для обработки символа и возвращения системы в исходное состояние. Пример: передается 240 символов. Определить эффективность при синхронной и асинхронной передаче.
2.10. Контроль достоверности передачи.
При передаче данных по сложным распределенным сетям, имеющим линии связи, подверженные действиям помех, принимают ряд мер для обеспечения контроля достоверности (отсутствие ошибок). Контроль достоверности передачи требует введения некоторой избыточности в передаваемую информацию. Избыточность может вводиться как на уровне отдельных передаваемых символов или их групп, так и на уровне передаваемых кадров. В избыточные поля передатчик (Tx) помещает код, вычисляемый по определенным правилам и с полезной информацией. Приемник (Rx) сравнивает этот код с тем значением, которое он вычислил сам. Не совпадение значений свидетельствует об искажении информации, а совпадение - о высокой вероятности правильной передачи. Вероятность обнаружения ошибки зависит от схемы контроля и соотношения размеров информационного и контрольного полей. Самая надежная схема - это контроль паритета. Самая неэкономичная - это дублирование информации. Самое надежное обнаружение дает CRC-контроль. Схема с вычислением контрольной суммы находится между паритетом и CRC.
Дублирование информации. Сводится к повторению Tx одного и того же элемента дважды. Приемник проверяет совпадение копий. Дубль может возвращаться и приемником (Rx). Передатчик, приняв его сравнивает с тем, что послал и на основании этого делает вывод о правильности передачи. Дублироваться может каждый бит, каждый байт или кадр. Дублирование может применяться лишь для отдельных коротких элементов кадра. Дублирование приводит к 100% накладным расходам.
Контроль паритета. Использует контрольный бит, дополняющий число единичных бит контролируемого элемента до четного (контроль четности) или нечетного (контроль нечетности) значения, в зависимости от принятого соглашения.
Контроль паритета позволяет обнаруживать только ошибки нечетной кратности. Искажения 2, 4 и т.д. бит контролируемой области останутся незамеченными. Кроме горизонтального, контроль может быть и вертикальным. При горизонтальном контроле бит паритета P вводится в каждый передаваемый символ. При вертикальном контроле для каждой группы символов (в данном случае 8 байт) биты паритета подсчитываются для каждой позиции и собираются в отдельный контрольный символ. Возможно также сочетание горизонтального и вертикального контроля.
Контрольные суммы. Применяются для контроля целого кадра или нескольких его полей. Для них в кадре определено специальное поле (1, 2 или 4 байта). В контрольной сумме в свернутом виде хранится характеристика всех информационных битов. Разрядность контрольного кода определяет разрядность суммируемых слов. Существует два варианта подсчета контрольной суммы:
сумма по модулю 2 всех байтов или слов пакета (xor).
Легко считается программным путем, но плохо выявляет искажение нескольких близких битов.
арифметическая сумма всех байтов или слов пакета. При ее вычислении отбрасываются старшие разряды переполнения.
Чем больше длина кадра при той же длине контрольного кода, тем меньше вероятность обнаружения ошибок. Обнаружение ошибок ~99,6%
Избыточный циклический код (CRC). Пример: CRC - 4 бита.
10011 - делитель (простое число). Его разрядность на единицу больше, чем требуемая разрядность CRC. Для 8-разрядного CRC берется 9 (для 4 - 5; для 16 - 17) При делении вместо вычитания применяют сложение по модулю 2. Для 17 бит делитель определяется: x16+x12+x5+1=1000100000010001b Используется более сложный алгоритм. Вычисление программным путем сложное. Применяется аппаратная реализация. Надежность метода выше. Вероятность обнаружения ошибок составляет 99,9984%. N - количество бит в пакете. Для вычисления CRC это число делится на некоторое постоянное число, выбранное специальным образом. Частное от этого деления отбрасывается, а остаток используется в качестве контрольной суммы. Кадр, как длинное двоичное число с нулевым полем CRC делится на полином и остаток этого деления по модулю 2 помещается в поле CRC передаваемых данных. Приемник делит принятый кадр вместе с полем CRC на тот же полином и сравнивает остаток от деления с некоторым эталоном.
2.11. Кодирование информации при выдаче в каналы связи.
Кодирование выполняется на двух нижних уровнях (MAC-подуровень и физический уровень). Определяет способ представления данных сигналами, распространяющимися по среде передачи. В общем случае может быть двухступенчатым:
Логическое кодирование
Физическое кодирование
На принимающей стороне выполняется симметричное декодирование. Логическое кодирование преобразует поток бит сформированного кадра MAC-уровня в последовательность символов, подлежащих физическому кодированию для передачи по линии связи. Логическое кодирование позволяет решить следующие задачи:
Исключить длинные монотонные последовательности нулей и единиц, неудобные для самокодирования.
Обеспечить распознание границ кадра и особых состояний в непрерывном битовом потоке.
Код 4B/5B Любая комбинация из 4-х бит заменяется на 5 в передатчике, и наоборот, в приемнике обратно 5 бит преобразуются в 4. Получается двукратная избыточность: 24=16; 25=32 комбинации, т.е. 16 входных комбинаций представляются символами из 32-комбинационного набора.
Из набора 32 комбинаций, 16 используются для передачи 4-битных групп от 0 до 15. Оставшиеся 16 комбинаций используются для служебных целей, например, для маркировки границ кадров. Используемые комбинации тщательно подбирались, чтобы обеспечить достаточное количество передач для поддержки синхронизации с тактовым генератором. Код 8B/10B Используется та же схема для кодирования, т.е. 8 бит кодируются 10-битным символом. Здесь 4-кратная избыточность (28=256; 210=1024), т.к. 256 возможных входных значений кодируются 1024 выходными. Этот код обеспечивает стабильное соотношение 0 и 1 в выходном потоке, не зависящем от входных данных. Это свойство актуально для лазерных оптических передатчиков. От данного соотношения зависит их нагрев и при колебании степени нагрева увеличивается количество ошибок приема. Применяется в гигабитной сети на оптоволокне. Код 5B/6B - 5 бит входного потока кодируется 6-битными символами. Применяется в сетевой технологии 100VG-Any LAN. Код 8B/6T - 8 бит входного потока кодируются шестью троичными цифрами (0, 1 или 2). Применяется в 100Base-T4. Вставка бит - бит-ориентированная схема исключения недопустимых последовательностей бит. Здесь входной поток рассматривается как непрерывная цепочка бит, для которой последовательность из более чем пяти смежных единиц рассматривается как служебный сигнал. Если в передаваемом потоке встречается непрерывная цепочка единиц, то после каждой пятой в выходной поток Tx вставляет ноль. Rx анализирует приходящую последовательность и если после цепочки 011111 он принимает 0, то его отбрасывает, а саму цепочку 011111 присоединяет к выходному потоку данных. Если принятый бит - единица, то цепочку 0111111 рассматривает как элемент служебного символа.
2.12. Физическое кодирование.
Ни в одной из версий технологии Ethernet не применяется прямое двоичное кодирование бита 0 напряжением 0 вольт и бита 1 - напряжением +5 вольт, т.к. такой способ приводит к неоднозначности. Если одна станция посылает битовую строку 00010000, то другая станция может интерпретировать ее либо как 10000, либо как 01000, т.к. она не может отличить "отсутствие сигнала" от бита 0. Поэтому принимающей машине необходим способ однозначного определения начала, конца и середины каждого бита без помощи внешнего таймера. Кодирование сигнала на физическом уровне позволяет приемнику синхронизироваться с передатчиком по смене напряжения в середине периода битов. Наиболее часто используемые системы кодирования:
NRZ (Non Return Zero) - без возврата у нулю
Манчестер II
RZ (Return to Zero) - с возвратом к нулю
NRZ - простейший код, обычный цифровой сигнал (может быть преобразован на обратную полярность или изменены уровни соответствующие нулю и единице). Достоинства - простая реализация; не нужно кодировать и декодировать на концах. Минимальная пропускная способность при требуемой скорости (для обеспечения пропускной способности в 10Мбит/сек полоса пропускания составит 5 МГц, т.к. одно колебание равно 2 битам). Код NRZ используется только при передаче коротких пакетов и на малой скорости. Для синхронизации передачи байта используется старт-стоповый бит. Манчестерский код. Получил наибольшее распространение в сетях с электрическими кабелями. Является самосинхронизирующимся, т.е. несущим в себе синхроимпульс. Имеет два уровня. Логическому нулю соответствует положительный переход в центре бита, т.е. первая половина битового интервала - низкий уровень, вторая половина - высокий. Логической единице соответствует отрицательный переход в центре бита. Обязательное наличие перехода в центре бита позволяет легко выделить синхросигнал. Это дает возможность передавать информацию большими пакетами и без потерь из-за рассинхронизации. Допустимое расхождение часов - до 25 %. При передаче цепочки бит из одних нулей или едини необходима частота в 10 Мгц при скорости в 10 Мбит/сек. Для передачи последовательностей из чередующихся нулей и единиц необходимо 5 Мгц. RZ - это трехуровневый код. После значащего уровня сигнала в первой половине передаваемого бита информации следует возврат к некоему нулевому уровню. Переход к нему происходит в середине бита. Логическому нулю при этом соответствует положительный импульс, логической единице - отрицательный. Здесь на 1 бит приходится 2 изменения уровня напряжения, поэтому для скорости в 10 Мбит/сек требуется пропускная способность в 10 МГц.
2.13. Управление потоком данных.
Это средство согласования темпа передачи данных с возможностями приемника. Хотя битовые скорости Tx и Rx должны совпадать, возможны ситуации, когда Tx передает в темпе, неприемлемом для Rx. Тогда буфера Rx переполняются и часть передаваемой информации теряется. Средства управления потоком позволяют Rx подать Tx сигнал на приостановку или продолжение передачи данных. Средства управления потоком могут использовать либо информационный канал (полудуплекс), либо иметь дополнительный обратный канал передачи (дуплекс). Существует управление потоком на нижних уровнях модели OSI и на верхних протокольных уровнях. Управление потоком на нижних уровнях может быть реализовано следующими способами:
XON/XOFF. Предполагает наличие двунаправленного канала передачи данных. Если Rx не успевает принимать данные, то по второй линии посылает сигнал XOFF. Tx, получив его, приостанавливает передачу. Когда Rx снова может принимать, то посылает сигнал XON, по которому Tx возобновляет передачу. Этот программный протокол используется в последовательном интерфейсе RS232C.
RTS/CTS. Реализуется по одному каналу передачи с данными. CTS - это аппаратный сигнал, останавливающий передачу данных, если приемник не готов к их приему. Остановить передачу байта уже невозможно, если он пошел в линию. Сигнал RTS возобновляет передачу данных. Реализован в параллельных интерфейсах.
На верхних протокольных уровнях контроль потока реализуется методом квитирования - посылки уведомления Rx о получении данных. На каждый принятый кадр Rx отвечает коротким кадром подтверждения. Это и есть уведомление о получении кадра. Если кадр принят корректно, посылается положительное подтверждение ACK. При получении ошибочного кадра посылается отрицательное подтверждение NACK. В ответ на него, Tx посылает "плохой" кадр повторно. При отсутствии подтверждения в течение определенного времени (timeout), Tx также делает повторную передачу, но на ожидании теряется время. На протокольном уровне схема приема подтверждения может быть разной:
Простейший случай - послав кадр, Tx ждет ответа и только после него посылает следующий кадр или повторяет предыдущий, если получено подтверждение NACK или истек timeout. В кадре подтверждения не требуется идентификация того кадра, в ответ на который идет подтверждение. Недостаток - темп посылки кадров ограничивается временем оборота по сети, в которое входит: время на передачу, время на прохождение кадра по сети, время реакции приемника, время передачи и прохождения подтверждения.
Пакетная передача (burst transfer). Tx посылает серию последовательных кадров, на которые должен получить общее подтверждение, что экономит время. Подтверждение может быть обезличенным. Тогда в случае NACK приходится посылать повторно весь пакет кадров целиком. Если в подтверждении есть место для списка хороших и плохих кадров, то повторно можно посылать только плохие, но при этом возникает проблема идентификации кадров и подтверждений.
Метод "скользящего окна" - это эффективный гибрид индивидуальных подтверждений и пакетной передачи. Tx посылает серию нумерованных кадров, зная, что приход подтверждения может задерживаться относительно своего кадра на время оборота по сети. Это время может быть предварительно определено, и ширина окна определяется числом кадров, которые можно передать на выбранной скорости передачи за время оборота. Подтверждения нумеруются в соответствии с кадрами. Если Tx не получает подтверждение на кадр, выходящий из окна наблюдения, он считает его потерянным и повторяет его передачу. При NACK повторно посылается только этот кадр. На случай повтора, Tx должен держать в буфере все кадры окна, замещая подтвержденные новыми.