بیت پرکنی
در انتقال داده و مخابرات، بیتپُرکنی (که ندرتاً با عنوان توجیه مثبت نیز شناخته میشود) (به انگلیسی: bit stuffing) به معنای درج بیتهای بدون اطلاعات در داده است. بیتهای پُر شده را نباید با بیت افزونه اشتباه گرفت.
بیتپُرکنی برای اهداف گوناگونی بهکار میرود. از جمله همگامسازی و رساندن جریانهای بیتی با نرخ بیت متفاوت به یک نرخ بیت یکسان، یا برای پُر کردن بافرها یا فریمها. محل بیتهای افزودهشده به انتهای دریافتکننده پیوند داده اعلام میشود تا بتواند این بیتهای اضافی را حذف کرده و جریانهای بیت به نرخ یا شکل اولیه خود بازگردند. بیتپُرکنی میتواند برای همگامسازی چند کانال پیش از مالتیپلکس یا تطبیق نرخ دو کانال منفرد با یکدیگر بهکار رود.
کاربرد دیگر بیتپُرکنی در رمزگذاری طول محدود (RLL)[الف] است. بدین صورت که محدویتی بر روی ارسال تعداد بیتهای متوالی با یک مقدار ثابت در داده ایجاد میشود. در نتیجه، در مواردی که نیاز به ارسال بیتهای با مقدار ثابت و بیشتر از حداکثر تعداد مجاز بیتهای متوالی وجود دارد، مجبوریم یک بیت با مقدار مخالف در جریان داده درج کنیم. از آنجا که این قاعده کلی و پایهای است، گیرنده برای پیدا کردن و برداشتن بیتهای پر شده، به اطلاعات اضافی درباره جایگاه پر شده نیاز ندارد. این کار برای افزایش گذردهی سیگنال با اطمینان از دریافت مطمئن آن است. در کاربرد دیگر، در مواردی که داده به طور اتفاقی شامل کلماتِ کدِ رزروشدهای مانند دنباله همگامسازی فریم است، از این روش برای گریز از آنها استفاده میشود.

بیتپُرکنی تضمین نمیکند که بارِ فریم سالم باقی بماند (یعنی دچار خطاهای انتقال نشده باشد)؛ این روش صرفاً تلاشی برای اطمینان از آغاز و پایان درست انتقال است. روشهای تشخیص و تصحیح خطا برای بررسی خرابی فریم پس از تحویل و، در صورت لزوم، برای ارسال مجدد آن بهکار میروند.
جاگذاری صفر-بیتی
طرح رمزگذاری NRZI، بیتِ ۰ را بهصورت یک گذار سیگنال و بیتِ ۱ را بهعنوان عدم تغییر ارسال میکند. در این حالت، بیتپُرکنی بهعنوان درج یک بیت ۰ پس از یک رشته طولانی از بیتهای ۱ توصیف میشود.
این روش توسط کنترل پیوند داده همزمان[ب](کوتهنوشت: SDLC) شرکت آیبیام رایج شد، که بعدها به کنترل پیوند داده سطح بالا[پ](کوتهنوشت: HDLC) تغییر نام داد. علاوه بر این، در حالتهای کمسرعت و تمامسرعت یواسبی نیز استفاده میشود. ممکن است که پس از یک توالی طولانی از بیتهای ۱، هیچ دادهای ارسال نشود و همین موضوع باعث میشود که ساعتهای فرستنده و گیرنده ناهمگام شوند. با درج یک بیت ۰ پس از پنج بیت ۱ پیاپی (در SDLC) یا شش بیت ۱ پیاپی (در یواسبی)، فرستنده تضمین میکند که بیش از شش یا هفت دوره زمانی بیت بین دو گذار فاصله نیفتد. گیرنده میتواند ساعت خود را با این گذارها همگام کرده و بازیابی داده را بهدرستی انجام دهد.
در SDLC، دنباله بیتی «01111110» که شامل شش بیت ۱ متوالی است، بایت پرچم بهشمار میآید. بیتپُرکنی تضمین میکند که این الگو در داده عادی هرگز پدید نیاید؛ بنابراین میتوان از آن به عنوان نشانگری برای آغاز و پایان فریم استفاده کرد بدون آنکه با داده معمولی اشتباه شود.[۱]
مهمترین عیب بیتپُرکنی آن است که نرخ کد قابل پیشبینی نیست. زیرا کاملاً به داده در حال انتقال وابسته است.
منبع: برگرفته از استاندارد فدرال ۱۰۳۷C در حمایت از MIL-STD-188
جستارهای وابسته
- پر کردن بایت با افزونه ثابت
یادداشت
منابع
- ↑ Kevin R. Fall and W. Richard Stevens, TCP/IP Illustrated Volume 1: The Protocols, Second Edition, Addison-Wesley, 2012, Kindle Edition loc 3505