2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Как работает bit stuffing
Сообщение26.03.2020, 06:03 
Здравствуйте. Подскажите, пожалуйста, как работает bit stuffing для HDLC протокола? Не понимаю, как происходит декодирование последовательности бит с bit stuffing. Т.е. где-то в середине фрейма была последовательность 01111110, зарезервированная в протоколе под флаг начала отправки данных. Заменили, чтобы не было проблем, на 011111010. Но по факту теперь вместо исходного байта будет байт 01111101, а ноль станет началом нового байта и вся дальнейшая последовательность бит неправильно разобъется на байты.
Понимаю, что на самом деле такой проблемы не должно возникать, но как тогда происходит декодирование такой последовательности?

 
 
 
 Re: Как работает bit stuffing
Сообщение26.03.2020, 07:09 
Bit stuffing работает только для пользовательских данных, внутри кадра, не для флагов начала и конца кадра. Приёмник удаляет лишние нулевые биты перед разбитием потока битов на байты. Потому поток байтов в сообщении и не искажается.

 
 
 
 Re: Как работает bit stuffing
Сообщение26.03.2020, 09:32 
Dmitriy40 в сообщении #1447329 писал(а):
лишние нулевые биты

Хорошо, а как, с другой стороны, приёмник понимает, что нулевой бит в последовательности, равной флагу, это именно bit stuffing, а не заданная пользователем часть его данных?

 
 
 
 Re: Как работает bit stuffing
Сообщение26.03.2020, 11:24 
Аватара пользователя
optimden
Там всё просто, как три советских рубля. Даже проще.

1. Туда. После пяти единиц вставляем ноль, если это в информационном поле кадра.
2. Обратно. После пяти единиц выкидываем ноль, если это в информационном поле кадра.

 
 
 
 Re: Как работает bit stuffing
Сообщение26.03.2020, 11:46 
EUgeneUS в сообщении #1447367 писал(а):
Там всё просто, как три советских рубля. Даже проще.

А если всё же хотим передать в информационном поле кадра последовательность 01111101, не воспринимая её как содержащую bit stuffing?

 
 
 
 Re: Как работает bit stuffing
Сообщение26.03.2020, 11:51 
Так все просто. После пяти единиц отправитель добавляет 0. Получатель его убирает.

Если изначально были пять единиц + 0, то отправитель отправит пять единиц + два нуля, получатель уберет один ноль и получит пять единиц + 0.

 
 
 
 Re: Как работает bit stuffing
Сообщение26.03.2020, 11:54 
kotenok gav в сообщении #1447376 писал(а):
Так все просто

Да, и правда всё просто) Спасибо за пояснение.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group