суббота, 11 июня 2011 г.

Отличие bit-oriented от byte-oriented протоколов

Bit-oriented (бит-ориентированный) протокол -
разделяет данные на 2м уровне с помощью некоторой последовательности битов, определенной для данного протокола - например, 01111110 для  протокола HDLC (high-level data-link control). Это позволяет посылать данные любой длины. После отправляемого блока данных ставится такой флаг. Устройство-получатель, зафиксировав такой флаг, узнает, что это конец данных. При этом в протоколе указывается, что делать, если надо передать данные, содержащие последовательность битов таких же, как флаг. 


Например, для HDLC хотим передать как данные 01111110 - в этом случае, после 5 подряд идущих единиц данных добавляется 0. То есть, в данных вместо 01111110 будет 011111010. Этот метод называется bit stuffing - по сути, вставка неинформативных битов в данные с целью отличить их от синхронизирующих данных ( в нашем случае флага 01111110).


Кроме HDLC, бит-ориентированным является Ethernet, ESF (Extended Super Frame) и многие другие. Хотя Ethernet в некоторых источниках называют frame-oriented (ориентированным на фреймы), но основной идеи отделения данных с помощью флагов, про которые написано выше, это не меняет. В Ethernet фрейме часть с такой последовательностью битов называется ограничитель начала фрейма (Start Frame Delimiter).


Byte-oriented (байт-ориентированный) протокол - 
разделение данных канального уровня происходит с помощью некоторого строго определенного байта ( или character по-другому). 
Иногда byte-oriented протокол называют еще character-oriented протокол. 
Минус его в том, что нельзя передать любое количество битов, а только число, кратное размеру байта. Также эти character зарезервированы и соответственно в блоке данных их передавать нельзя.


Сейчас байт-ориентированные протоколы фактически не используются. Из тех, что использовали - старые протоколы BISYNC (Binary Synchronous Communication) и EBCDIC (Extended Binary Coded Decimal Interchange Code ).

Комментариев нет:

Отправить комментарий