تشخیص و تصحیح خطا
دلایل زیادی مانند نویز، cross-talk و غیره وجود دارند که ممکن است به خراب شدن دادهها در هنگام انتقال کمک کنند. لایههای بالایی بر روی برخی از مشخصات کلی در مورد معماری شبکه کار میکنند و از پردازش دادههای سخت افزاری واقعی آگاهی ندارند. از این رو، لایههای بالایی انتظار انتقال دادههای بدون خطا، بین سیستمها را دارند. در صورت دریافت دادههای نادرست، اکثر برنامههای کاربردی نمیتوانند پردازش اطلاعات را به خوبی انجام دهند. بنابر این تشخیص و تصحیح خطا در شبکههای کامپیوتری الزامی است.
برنامههای کاربردی که پردازش اطلاعاتی مانند صدا و فیلم را انجام میدهند، ممکن است تحت تاثیر قرار نگیرند و با وجود برخی از خطاها ممکن است عملکرد خوبی داشته باشند. اما تمام اطلاعات در یک شبکه کامپیوتری باید به درستی منتقل شوند و خطایی نداشته باشند. در زمان طراحی شبکه کامپیوتری باید تدبیری برای تشخیص و تصحیح خطا در نظر گرفت. لایه پیوند دهنده دستگاهها از برخی مکانیسمهای کنترل خطا برای اطمینان از انتقال فریم (جریان دادههای بیت) با سطح خاصی از دقت استفاده میکنند. اما برای درک چگونگی کنترل خطاها، شناختن انواع خطاها ممکن است ضروری باشد.
شناخت انواع خطاها برای تشخیص و تصحیح خطا
ممکن است سه نوع خطا در دادههای انتقال داده شده وجود داشته باشند.
- خطای موجود در بیت منفرد
در یک فریم، فقط اطلاعات یک بیت به درستی منتقل نشده است.
- خطای ایجاد شده در چند بیت
یک فریم با بیش از یک بیت خطا دریافت میشود.
- خطای پشت سر هم
فریم دریافت شده حاوی بیش از 1 بیت متوالی خراب است.
مکانیسم کنترل خطا ممکن است شامل دو روش باشد:
- تشخیص خطا
- تصحیح خطا
تشخیص خطا
خطاهای موجود در فریمهای دریافت شده با استفاده از Parity Check و Cyclic Redundancy Check (CRC) تشخیص داده میشوند. در هر دو مورد، تعداد کمی از بیت اضافی به همراه دادههای واقعی ارسال میشوند تا تایید شود که بیتهای دریافت شده در انتهای دیگر همان بیتهای اضافه ارسال شدهاند. اگر اطلاعات دریافتی مغایرتی با الگوی تعیین شده داشته باشند، اطلاعات خراب تلقی میشوند.
بررسی توازن بیتها
یک بیت اضافی به همراه بیتهای اصلی ارسال میشود تا به طور مثال تعداد بیتهای ارسال شده در یک بایت زوج باشد. در صورت اشکال در دریافت، این شرط ممکن است برقرار نشود.
فرستنده ضمن ایجاد یک فریم، تعداد بیتهای یک را نیز در یک بایت شمارش میکند. در گیرنده به راحتی تعداد بیتهای یک شمارش میشود و اگر در شمارش، تعداد بیتهای یک متناسب با الگوی تعریف شده باشد، بایت با اطلاعات اشتباه در نظر گرفته نمیشود و پذیرفته میشود. اگر تعداد بیتهای یک برابر الگو نباشد، خطا تشخیص داده میشود. البته اشکالاتی نیز ممکن است این روش داشته باشد و در صورتی که دو بیت صفر شود، این سیستم نمیتواند اختلال در ارسال را تشخیص دهد و تشخیص تصحیح خطا برای گیرنده بسیار سخت است.
بررسی کد افزونگی چرخشی Cyclic Redundancy Check (CRC)
CRC یک روش متفاوت برای تشخیص این که فریم دریافت شده دارای دادههای معتبری است یا خیر. این تکنیک شامل تقسیم باینری بیتهای داده در حال ارسال است. بیتهای کنترلی با استفاده از معادلات ریاضی تولید میشوند. فرستنده یک عملیات تقسیم را روی بیتهای ارسال شده انجام میدهد و باقی مانده را محاسبه میکند. قبل از ارسال بیتهای واقعی، فرستنده باقیمانده را در انتهای بیتهای واقعی اضافه میکند. فرستنده بیتهای داده را با بیتهای کنترل ارسال میکند.
در انتهای دیگر، گیرنده با استفاده از همان تقسیم کننده CRC عملیات تقسیم بر روی دادههای دریافتی را انجام میدهد. اگر نتیجه محاسبات در گیرنده با فرستنده برابر بود، بیتهای داده پذیرفته میشوند، در غیر این صورت، گیرنده تشخیص میدهد که در حین انتقال اطلاعات، اشکالی روی دادهها به وجود آمده و تشخیص و تصحیح خطا در نظر گرفته میشود.
تصحیح خطا
در دنیای دیجیتال، تصحیح خطا از دو طریق قابل انجام است:
تصحیح خطای به عقب
هنگامی که گیرنده خطایی را در دادههای دریافت شده تشخیص دهد، از فرستنده درخواست میکند که واحد داده را دوباره ارسال کند.
تصحیح خطا به جلو
هنگامی که گیرنده خطایی را در دادههای دریافت شده تشخیص دهد، کد تشخیص و تصحیح خطا را اجرا میکند، این به گیرنده کمک میکند تا به صورت خودکار بازیابی و تصحیح برخی از خطاها را انجام دهد.
مورد اول، Backward Error Correction، ساده است و فقط در مواردی که ارسال مجدد گران نیست و یا موجب کندی سرعت شبکه نمیشود، میتوان از آن استفاده کرد. به عنوان مثال، در شبکههای مبتنی بر فیبر نوری. اما در صورت انتقال بیسیم، انتقال مجدد ممکن است هزینه زیادی داشته باشد. در حالت دوم، از اصلاح خطای پیشرو (رو به جلو) استفاده میشود.
برای تصحیح خطا در یک بایت، گیرنده باید دقیقا بداند کدام بیت در قاب خراب است. برای یافتن بیت دارای خطا، از بیتهای اضافی به عنوان بیت برابری برای تشخیص خطا استفاده میشود.
برای کسب اطلاعات بیشتر میتوانید با ما در شبکه گستر ساینا تماس بگیرید تا کارشناسان با تجربه شما را راهنمایی کنند.