جریان بیت
یک جریان بیت (به انگلیسی: Bitstream یا Bit stream) که با نام دنبالهٔ دودویی (انگلیسی: Binary sequence) نیز شناخته میشود، یک دنباله از بیتها است.
یک جریان بایت (انگلیسی: Bytestream) دنبالهای از بایتها است. معمولاً هر بایت معادل ۸ بیت (هشتتایی یا اُکتت) است و بنابراین، عبارت جریان هشتتایی نیز برای نامگذاری آن به کار میرود. یک اُکتت میتواند با روشهای مختلف به صورت دنبالهای ۸ بیتی رمزگذاری شود (مراجعه کنید به endianness). بنابراین، هیچ ترجمهٔ منحصربهفرد و مستقیمی بین جریان بیتها و جریان بایتها وجود ندارد.
جریان بیتها و جریان بایتها بهطور گسترده در ارتباطات از راه دور و محاسبات استفاده میشوند. بهعنوان مثال، جریان همزمان بیتها توسط SONET انجام میشود، و پروتکل کنترل انتقال جریانی از بایتها را بهطور غیرهمزمان انتقال میدهد.
رابطهٔ بین جریان بیتها و جریان بایتها
در عمل، جریان بیتها بهطور مستقیم برای رمزگذاری جریان بایتها استفاده نمیشود؛ بلکه یک کانال ارتباطی ممکن است از یک روش علامتدهی (سیگنالینگ) که مستقیماً به بیت ترجمه نمیشود استفاده کند (مثلاً از طریق انتقال سیگنال با فرکانسهای مختلف) و همچنین معمولاً اطلاعات دیگر مانند فریم و تصحیح خطا را نیز همراه با دادههایش رمزگذاری میکند.
مثالها
عبارت bitstream یا جریان بیتها معمولاً برای توصیف پیکربندی دادههای بارگذاریشده در یک مدار مجتمع دیجیتال برنامهپذیر (FPGA) استفاده میشود. اگرچه اکثر FPGAها همچنین از یک روش بارگذاری موازی بایتها پشتیبانی میکنند، اما استفاده از عبارت bitstream ممکن است سرچشمه گرفته از روش معمول پیکربندی یک جریان دنبالهدار از بیتها در FPGA، یا از یک PROM یا تراشهٔ حافظهٔ فلش باشد. جزئیات قالب جریان بیتها برای یک FPGA مشخص، معمولاً مختص به شرکت تولیدکننده و فروشندهٔ آن FPGA است.
در ریاضیات، چندین دنبالهٔ بینهایت خاص تشکیلشده از بیتها بهدلیل خصوصیات ریاضی آنها مورد مطالعه قرار گرفتهاند. این موارد شامل دنبالهٔ باوم-شیرین، دنبالهٔ Ehrenfeucht-Mycielski، کلمهٔ فیبوناچی، دنبالهٔ Kolakoski، دنبالهٔ تا کردن معمولی کاغذ، دنبالهٔ Rudin-Shapiro و دنبالهٔ Thue-Morse است.
در اکثر سیستم عاملها از جمله شبهیونیکس و ویندوز، کتابخانههای استاندارد I/O دسترسی به فایلهای سطح پایین یا بافر شده را به الگویی از جریان بایتها تبدیل میکنند. بهویژه در سیستم عامل شبهیونیکس، هر فرایند دارای سه جریان استاندارد است که این سه جریان، نمونهای از جریان یکطرفهٔ بایتها هستند. مکانیسم لولهکشی در یونیکس ارتباطاتی از نوع bytestream را بین فرایندهای مختلف فراهم میکند.
الگوریتمهای فشردهسازی اغلب با استفاده از جریان بیتها کد خود را اجرا میکنند، زیرا ۸ بیتی که توسط یک بایت (کوچکترین واحد حافظه که قابلآدرسدهی است) ارائه شده، ممکن است بی فایده باشند. اگرچه این روش بهطور معمول در زبانهای سطح پایین اجرا میشود، برخی از زبانهای سطح بالا مانند پایتون[1] و جاوا[2] رابطهای محلی برای bitstream I/O ارائه میدهند.
مثالی معروف از یک پروتکل ارتباطی که سرویسی مبتنی بر جریان بایتها را به مشتریان خود ارائه میدهد، پروتکل کنترل انتقال (TCP) در مجموعهٔ پروتکلهای اینترنت است که یک bytestream دو طرفه را فراهم میکند.
نوع رسانهٔ اینترنتی برای یک جریان دلخواه از بایتها، application/octet-stream است. انواع دیگر رسانهها برای bytestreams در قالبهای شناختهشده در دسترس هستند.
منابع
- "Bitstream". Python Software Foundation. Archived from the original on 2016-09-08.
- "Class BitSet". Oracle. Archived from the original on 2016-11-30.