На этом логическое соединение считается установленным, и в его рамках можно передавать информационные кадры с пользовательскими данными и получать подтверждения об их получении абонентом. После передачи некоторого законченного набора данных, например, файла, узел-отправитель инициирует разрыв логического соединения, посылая соответствующий служебный кадр.
Методы обнаружения и коррекции ошибок в сетях
Канальный уровень модели OSI должен обнаруживать ошибки передачи данных, связанные с искажением бит в принятом кадре данных или с потерей кадра, и по возможности их корректировать.
Большая часть протоколов канального уровня выполняет только первую задачу – обнаружение ошибок, считая, что корректировать ошибки, т.е. повторно передавать данные, содержащие искаженную информацию, должны протоколы верхних уровней. Так, например, работают протоколы локальных сетей (Ethernet, Token Ring, FDDI и др.). Однако существуют и такие протоколы канального уровня, как LAP-B, LLC2, которые самостоятельно решают задачу восстановления искаженных и потерянных кадров.
Обычно для сетей, в которых искажения и потери кадров встречаются очень редко, разрабатываются протоколы канального уровня, в которых не предусматриваются процедуры устранения ошибок.
Напротив, если в сети искажения и потери случаются часто, то желательно уже на канальном уровне использовать протокол с коррекцией ошибок, а не оставлять эту работу протоколам более высоких уровней. Протоколы верхних уровней, например, транспортного или прикладного, работая с большими тайм-аутами, восстановят потерянные данные с большой задержкой. Например, в глобальные сетях первых поколений, использовавших ненадежные каналы связи, протоколы канального уровня всегда выполняли процедуры восстановления потерянных и искаженных данных.
Все методы обнаружения ошибок основаны на передаче в составе кадра данных служебной избыточной информации, по которой можно судить с некоторой степенью вероятности о достоверности принятых данных. Эту служебную информацию принято называть контрольной суммой (или последовательностью контроля кадра FCS – Frame Check Sequence). Контрольная сумма вычисляется как функция от основной информации, причем не обязательно только путем суммирования. Принимающая сторона повторно вычисляет контрольную сумму и в случае ее совпадения с контрольной суммой, вычисленной передающей стороной, заключает, что данные переданы через сеть корректно.
Существует несколько распространенных алгоритмов вычислений контрольной суммы, отличающихся вычислительной сложностью и способностью обнаруживать ошибки в данных. В настоящее время наиболее популярным методом контроля ошибок является циклический избыточный код CRC (Cyclic Redundancy Check). Этот метод, обладая небольшой избыточностью, обнаруживает все ошибки одиночной и двойной кратности и многие ошибки большей кратности. Например, для кадра Ethernet размером в 1024 байт контрольная информация длиной в 4 байта дает избыточность всего 0.4%.
Методы коррекции ошибок в сетях основаны на повторной передаче кадра данных в том случае, если кадр теряется или в нем обнаружены ошибки. С этой целью отправитель нумерует отправляемые кадры и для каждого кадра ожидает от приемника так называемую положительную квитанцию – служебный кадр, подтверждающий, что отправленный кадр был получен и его данные корректны. Время ожидания положительной квитанции ограничено – при отправке каждого кадра передатчик запускает таймер, и если по истечении тайм-аута положительная квитанция не получена, то кадр считается утерянным. В случае получения искаженного кадра приемник может отправить отрицательную квитанцию – явное указание на то, что данный кадр нужно передать повторно.
Существуют два подхода к организации процесса обмена квитанциями: с простоями и с организацией окна.
Метод с простоями требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) и только после этого посылал следующий кадр или повторял искаженный. Если же квитанция не приходит в течение тайм-аута, то кадр считается утерянным, и его передача повторяется. Этот метод отличается простотой, но имеет низкую производительность, т.к. отправитель простаивает в ожидании подтверждающих квитанций.
Второй метод называется методом скользящего окна. В этом методе для повышения коэффициента использования линии связи источнику разрешается передавать некоторое количество кадров без получения на эти кадры положительных квитанций. Количество кадров, которое разрешается передавать без подтверждения, называется размером окна.
Пусть в начальный момент, когда еще не послано ни одного кадра, окно определяет диапазон кадров от 1 до W включительно. Источник начинает передавать кадры и получать на них положительные квитанции. Для простоты предположим, что квитанции поступают в той же последовательности, что и кадры, которым они соответствуют. В момент t1 при получении первой квитанции окно сдвигается на одну позицию, определяя новый диапазон от 2 до W+1. После получения n-ой квитанции окно сдвинется в позицию от n+1 до W+n. При этом процессы отправки кадров и получения квитанций идут достаточно независимо друг от друга.
Все множество кадров источника тогда можно разделить на 4 категории:
· кадры с номерами от 1 до n уже были отправлены и на них получены квитанции, т.е. они находятся за пределами окна слева;
· кадры с номерами от n+1 до m, которые уже отправлены, но квитанции на них еще не получены;
· кадры с номерами от m до W+n, которые еще не отправлены, хотя запрета на их отправку нет;
· кадры с номерами, большими W+n, находятся за пределами окна справа, и их отправка пока что запрещена.
Метод скользящего окна более сложен в реализации, чем метод с простоями, т.к. передатчик должен хранить в буфере все кадры, на которые еще не получены положительные квитанции. Кроме того, требуется отслеживать несколько параметров алгоритма: размер окна W, номер последнего кадра, на который получена положительная квитанция, номер кадра, который еще можно передать в пределах окна без подтверждения.
Приемник может не посылать квитанции на каждый принятый кадр. Если несколько кадров пришли почти одновременно, он может послать квитанцию на последний полученный кадр, подразумевая, что предыдущие кадры также получены корректно.
Отрицательные квитанции бывают двух типов – групповые и избирательные. Групповые квитанции содержат номер кадра, начиная с которого нужно повторить все последующие передачи кадров. Избирательная отрицательная квитанция требует повторной передачи только указанного в ней кадра.
Метод скользящего окна реализован во многих протоколах: LLC2, LAP-B, X.25, TCP, Novell NCP Burst.
Отметим, что метод с простоями является частным случаем метода скользящего окна, когда размер окна равен 1.
Метод скользящего окна имеет два параметра, которые могут заметно влиять на эффективность передачи – размер окна и время тайм-аута. В надежных сетях для повышения скорости обмена данными размер окна нужно увеличивать. В ненадежных сетях размер окна нужно уменьшать, т.к. при частых потерях и искажениях кадров резко возрастает объем повторных передач кадров. Выбор же тайм-аута зависит не от надежности сети, а от задержек передачи кадров сетью. Во многих реализациях метода скользящего окна величина окна и тайм-аут выбираются адаптивно, в зависимости от текущего состояния сети.
Стандартные технологии локальных компьютерных сетей
В настоящее время широко используется ряд стандартных архитектур сетей, к которым относятся Ethernet, Token Ring, FDDI и др. Основные характеристики некоторых популярных сетевых технологий приведены в следующей таблице:
Тип сети | Скорость передачи, Мбит/с | Тип кабеля | Топологии |
Ethernet | 10 | Coaxial, UTP, Fiber optic | Звезда, шина |
Token Ring | 4 или 16 | UTP, STP | Звезда, кольцо |
Arcnet | 2.5 | Coaxial, UTP | Звезда, шина |
FDDI | 100 | Fiber optic | Звезда, кольцо |
CDDI | 100 | UTP, STP | Звезда, кольцо |
ATM | 155-622 | UTP, STP, Fiber optic | Звезда |
100VG-AnyLAN | 100 | UTP, STP | Звезда |
100Base-X | 100 | UTP | Звезда |
Gigabit Ethernet | 1000 | UTP кат.5 | Звезда |
Из нескольких десятков типов проводных соединений в локальных сетях лидируют два стандарта, учрежденных IEEE (Institute of Electrical and Electronic Engineers):IEEE 802.3 (Ethernet) и IEEE 802.5 (Token Ring). Эти два типа сетей стали наиболее популярными в силу того, что они являются открытыми стандартами, а не системами, контролируемыми каким – либо конкретным разработчиком оборудования.
Ethernet и Token Ring относятся к разряду однополосных сетей (определенные множества Ethernet работают и в широкополосном режиме, например, устаревшая версия Ethernet 10Broad-36).
Ethernet и Token Ring отличаются друг от друга, как минимум, тремя аспектами:
· методом последовательной передачи сообщений;
· способом обеспечения целостности каждого передаваемого сообщения;
· организацией кабельных соединений.
Наиболее популярный сетевой стандарт IEEE 802.3 был создан на основе сетевой архитектуры, разработанной компаниями Digital Equipment Corporation (DEC), Xerox и Intel в 1975 г. (фирменный стандарт 1980 г.). Эта исходная сетевая архитектура называлась Ethernet, впоследствии это название стало применяться также и к стандарту IEEE 802.3 (несмотря на некоторые различия между ними). Первая версия стандарта IEEE 802.3 была опубликована в 1985 г., современная версия Ethernet 2.0 принята в 1992 г.