کامپیوتر , مهندسی 53 بازدید

عوامل زیادی همچون نویز، تداخل خطوط و غیره وجود دارند که می‌توانند باعث از بین رفتن داده‌ها در طی انتقال شوند. لایه‌های بالاتر در نمایی تعمیم‌ یافته از معماری شبکه قرار دارند و از روش پردازش داده‌ها روی شبکه واقعی اطلاع ندارند. از این رو لایه‌های فوقانی انتظار یک انتقال عاری از خطا بین سیستم‌ها را دارند. اغلب اپلیکیشن‌ها در صورت وجود داده‌های خطادار مطابق انتظار رفتار نخواهند کرد. با این وجود، کاربرد‌هایی مانند انتقال صوت و تصویر ممکن است تا این حد متأثر از خطاها نباشند و در صورت وجود پاره‌ای خطاها، همچنان به درستی کار کنند.

لایه داده-لینک از نوعی مکانیسم کنترل خطا استفاده می‌کند تا اطمینان یابد که قاب‌ها (Frames) (جریان‌های بیتی داده) با سطح معینی از دقت انتقال می‌یابند. اما برای درک چگونگی کنترل خطا می‌بایست با انواع خطاهایی که ممکن است پیش بیایند آشنا باشیم.

انواع خطاها

سه نوع خطا ممکن است در شبکه‌های کامپیوتری رخ دهد:

خطای یک بیت منفرد

در یک قاب، تنها یک بیت وجود دارد که به نوعی از بین رفته است.

خطای چند بیت

فریم در حالی دریافت می‌شود که بیش از یک بیت از بین رفته است.

خطای گسترده

فریم شامل چندین بیت متوالی از داده‌های از بین رفته است.

مکانیسم کنترل خطا به دو صورت می‌تواند عمل کند که عبارت هستند از شناسایی خطا و اصلاح خطا و در ادامه به آن‌ها خواهیم پرداخت.

شناسایی خطا

خطاها در فریم‌های دریافتی به وسیله «بررسی توازن» (Parity Check) و بررسی «افزونگی چرخه‌ای» (Cyclic Redundancy) شناسایی می‌شوند. در هر دو حالت، چند بیت اضافی همراه با داده‌های واقعی ارسال می‌شوند تا تأیید شود که بیت‌های دریافتی در سمت دیگر همان‌هایی هستند که ارسال شده‌اند. اگر بررسی متقابل در سمت گیرنده با شکست مواجه شود، بیت‌ها به صورت از بین رفته تلقی می‌شوند.

بررسی توازن

یک بیت اضافی همراه با بیت‌های اصلی ارسال می‌شود تا در صورتی که توازن زوج وجود دارد، تعداد 1-ها زوج شود و یا در صورت وجود توازن فرد، تعداد 1-ها فرد شود.

در این روش فرستنده در زمان ایجاد یک فریم تعداد 1-های داخل آن را می‌شمارد. برای نمونه اگر از توازن زوج استفاده شود و تعداد 1-ها زوج باشد، یک بیت با مقدار 0 اضافه می‌شود. بدین ترتیب تعداد 1-ها زوج باقی می‌ماند. اگر تعداد 1-ها فرد باشد، برای این که زوج شود، یک مقدار 1 دیگر اضافه می‌شود.

در این روش، سمت گیرنده تعداد 1-ها در فریم را می‌شمارد. گر تعداد 1-ها زوج باشد و توازن زوج برقرار باشد، قاب به صورت سالم تصور می‌شود و مورد پذیرش قرار می‌گیرد. اگر تعداد 1-ها فرد باشد و توازن فرد برقرار باشد، همچنان فریم سالم محسوب می‌شود.

اگر در زمان انتقال، تنها یک بیت معکوس شده باشد، گیرنده می‌تواند با شماره تعداد 1-ها این وضعیت را تشخیص دهد. اما زمانی که بیش از یک بیت دارای خطا باشد، در این صورت شناسایی خطا برای گیرنده دشوار خواهد بود.

بررسی افزونگی چرخه‌ای (CRC)

CRC رویکردی متفاوت برای شناسایی سالم بودن داده‌های دریافتی است. این تکنیک شامل تقسیم باینری بیت‌های داده ارسالی است. مقسوم با استفاده از معادله‌های چندجمله‌ای تشکیل می‌شود. در این روش فرستنده عملیات تقسیم را روی بیت‌هایی که قرار است ارسال شوند، انجام داده و باقی‌مانده را محاسبه می‌کند. پیش از ارسال کردن بیت‌های واقعی، فرستنده باقی‌مانده را به انتهای بیت‌های واقعی اضافه می‌کند. بیت‌های داده واقعی به علاوه باقیمانده به نام «کلمه رمز» (Codeword) شناخته می‌شوند. فرستنده بیت‌های داده را به صوت کلمه رمز ارسال می‌کند.

در سمت دیگر، گیرنده عملیات تقسیم را با استفاده از همان مقسوم روی کلمه رمز اجرا می‌کند. اگر باقیمانده کلاً برابر با بیت‌های صفر باشد، داده‌های دریافتی مورد پذیرش قرار می‌گیرند؛ در غیر این صورت داده‌های دریافتی به صورت نوعی داده از بین رفته در زمان انتقال محسوب می‌شوند.

اصلاح خطا

در دنیای دیجیتال، اصلاح خطا به دو روش صورت می‌گیرد:

اصلاح خطای رو به عقب

هنگامی که گیرنده خطایی را در داده‌های دریافتی تشخیص دهد، از فرستنده تقاضا می‌کند که داده‌ها را یک بار دیگر ارسال کند.

اصلاح خطای رو به جلو

زمانی که گیرنده نوعی خطا را در داده‌های دریافتی شناسایی کند، کد اصلاح خطایی را اجرا می‌کند که به بازیابی خودکار و اصلاح برخی از انواع خطا کمک می‌کند.

روش اول که اصلاح خطای رو به عقب نام دارد، آسان است و تنها در مواردی به صورت مؤثر قابل اجرا است که ارسال مجدد داده‌ها مستلزم هزینه بالایی نباشد. برای نمونه فیبر نوری چنین است. اما در مورد روش انتقال بی‌سیم، ارسال مجدد ممکن است هزینه بالایی داشته باشد. در این موارد اخیر، از روش اصلاح رو به جلو استفاده می‌شود.

برای اصلاح خطا در فریم داده‌ها، گیرنده باید دقیقاً بداند که کدام بیت در فریم از بین رفته است. برای موقعیت‌یابی خطا، بیت‌های تکراری به عنوان بیت توازن برای شناسایی خطا مورد استفاده قرار می‌گیرند. برای نمونه یک «کلمه» (Word) یا 7 بیت داده را در قالب ASCII دریافت می‌کنیم و سپس می‌توانیم 8 نوع اطلاعات مورد نیاز خود را داشته باشیم که 7 بیت به ما می‌گویند کدام بیت خطا دارد و یک بیت دیگر به ما اعلام می‌کند که خطایی وجود ندارد.

برای m بیت داده، r بیت افزونگی مورد استفاده قرار می‌گیرد. این r بیت می‌توانند، تعداد 2r ترکیب اطلاعات ارائه کنند. در یک کلمه رمز m+r بیتی، این احتمال وجود دارد که r بیت خودشان نیز از بین بروند. بنابراین تعداد r بیت استفاده می‌شود تا مطمئن شویم که موقعیت m+r بیت کجاست و همچنین اطلاعات بدون خطا هستند، یعنی m+r+1 مورد نیاز هستند.

اگر این مطلب برای شما مفید بوده است،‌ آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *