کنترل خطای انتقال
شکل ۲‑۱۴: لایه پیوند داده ای
فریم بندی داده در اترنت
برای اترنت دو نوع فریم دیتا وجود دارد. یکی فریم DIX V2.0 که مربوط به نسخه اترنت ۲ میباشد و دیگری فریم IEEE802. ، این دو فریم در شکل زیر با هم مقایسه شده اند[۵].
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
شکل ۲‑۱۵: فریم بندی دیتا در اترنت[۵]
همانطور که در شکل ملاحظه میشود سایز کلی هر دو نوع فریم یکی است ولی برخی فیلدهای آنها با هم متفاوت است. این تفاوت موجب میشود که اگر دو وسیله ،یکی منطبق بر DIX و دیگری منطبق بر IEEE802.3، روی یک کابل یا محیط فیزیکی بسته شوند، با یکدیگر نتوانند ارتباط بر قرار کنند. از اینرو در انتخاب سخت افزار و پیکر بندی سیستم بایستی توجه لازم برای یکسان سازی پروتکل به عمل آید. از آنجا که اترنت صنعتی منطبق بر IEEE802.3 میباشد فرمت DIX را مورد بحث قرار نمیدهیم.
فیلدهای مختلف فریم دیتای IEEE802.3 در زیر تشریح شده است:
PRE: مخفف Preamble که به معنای مقدمه فریم است. این فیلد ۷ بایت است که هر بایت آن بصورت ۰۱۰۱۰۱۰۱ میباشد.
SFD: مخفف Start of Frame Delimiter شروع فریم را به گیرنده اطلاع میدهد و یک بایت و به صورت ۰۱۰۱۰۱۰۱ میباشد.
DA: مخفف Destination Address یعنی آدرس گیرنده است که میتواند یکی از سه حالت زیر را داشته باشد:
Unicast: یک گیرنده خاص را مشخص میکند. در این حالت آخرین بیت سمت چپ ۰ است.
Multicast: یک گروه شامل چند گیرنده خاص را مشخص را میکند در این حالت آخرین بیت سمت چپ ۱ است.
Broadcast: تمامی گیرندهها را مشخص میکند در این حالت تمامی بیت های آدرس ۱ است.
در آدرس دهی گیرنده و فرستنده فوق، از آدرس سخت افزاری گیرنده یعنی آدرس[۳۹] MAC که یک آدرس ۶ بایتی است استفاده میگردد. در فریم دیتا ۶ بایت مربوط به آدرس مبدا، یک آدرس MAC Address ثابت را نشان میدهد ولی برای آدرس مقصد سه حالت فوق الذکر وجود دارد. با توجه به توضیحات قبل در حالت Broadcast آدرس MAC کد هگز FF-FF-FF-FF-FF-FF است که معرف تمام وسایل متصل به باس میباشد و در حالت Multicast سه بایت آخر آدرس یک گروه خاص را نشان میدهد. در حالت Unicast آدرس فوق منحصر به فرد است.
هرکارت شبکه اترنت دارای یک آدرس MAC منحصر به فرد است که در داخل آن ذخیره شده است و متشکل از ۶ بایت است که هر بایت آن بصورت کد هگز ظاهر میشود. ۳ بایت اول معرف نام سازنده است و ۳ بایت بعدی نوع و سریال محصول را نشان میدهد. بنابراین هر سازنده ماکزیمم میتواند ۲۲۴ کارت شبکه تولید نماید. اگر تعداد به این حد برسد سازنده بایستی یک کد جدید از موسسه Inter-NIC درخواست نماید.
SA: مخفف Source Address یعنی آدرس سخت افزاری فرستنده را مشخص میکند که یک آدرس ۶ بایتی منحصر به فرد است.
Length: طول فیلد دیتا (فیلد بعدی) را با یک عدد ۲ بایتی مشخص میکند. در فرمت DIX این فیلد وجود ندارد و بجای آن فیلد Type آورده شده است. در نسخه قدیمی اترنت تاکیدی بر ضمانت تحویل درست دیتا به گیرنده نبوده است از اینرو فیلد Type که فقط مشخص میکرد کدام لایه بالاتر برای انتقال دیتا استفاده شده است بکار میرفت، ولی در IEEE موضوع ارسال درست و بدون خطای دیتا بیشتر مورد توجه قرار گرفته و از اینرو فیلد Length جایگزین فیلد Type شده است. یکی از مواردی که اجازه نمیدهد DIX و IEEE802.3 بطور صحیح روی یک کابل با هم ارتباط برقرار کنند همین فیلد میباشد.
Data: دیتای اصلی که لازم است منتقل شود. طول این فیلد حداقل ۴۶ و حداکثر ۱۵۰۰ بایت است.
Pad: اگر طول فیلد دیتا کمتر از ۴۶ بایت باشد آنقدر به آن صفر اضافه میشود تا به ۴۶ بایت برسد به این اضافات Pad میگویند. علت استفاده از Pad به دلیل محدودیت های مربوط به تصادم دیتا بین فرستندگان مختلف است که در ادامه تشریح خواهد شد. لازم به ذکر است وقتی به Data بایت های Pad اضافه میگردد، در این حالت فیلد Length طول واقعی Data بدون Pad را نشان میدهد تا با توجه به آن گیرنده بتواند دیتای اصلی را از Pad جدا کند.
FCS : مخفف Frame Check Sequence برای کنترل خطا بکار میرود. روش کنترل خطا به صورت CRC یعنی Cyclic Redundancy Check است مطابق با الگوریتم CRC عملیات منطقی روی فیلدهای DA و SA و Length و Data انجام میشود و نتیجه در ۴ بایت در این فیلد قرار میگیرد وهمراه با بسته دیتا ارسال میگردد. گیرنده پس از دریافت بسته ابتدا بدون توجه به FCS مقدار CRC را طبق همان الگوریتم روی فیلدهای مزبور بدست میآورد سپس نتیجه را با مقدار CRC فرستنده مقایسه می کند اگر یکی بود فریم را قبول در غیر اینصورت آنرا دور میریزد. در شبکه های اترنت که در آنها سوییچ استفاده شده این منطق توسط سوئیچ در بین راه اجرا میگردد و بدین طریق سوئیچ از انتشار فریم های خراب و آسیب دیده از نویز
جلوگیری میکند.
نکته ای که در این میان قابل ذکر است آنست که اگر فریم خراب باشد در لایه دوم (پیوند داده ای) هیچ مکانیسمی برای اطلاع رسانی به فرستنده وجود ندارد. این وظیفه به لایه های بالاتر محول شده است[۵].
روش دسترسی به باس در اترنت
همانطور که ذکر شد یکی از وظایف لایه دوم (پیوند داده ای) کنترل دسترسی به باس شبکه است که از تکنیک CSMA/CD استفاده میکند. در این تکنیک برخلاف تکنیک Token هیچگونه نوبت بندی بین ایستگاهها برای در اختیار گرفتن باس وجود ندارد. تمام ایستگاهها به باس گوش میدهند یعنی جریان باس را چک
میکنند (که به این فاز Carrier Sense گفته میشود) و هرگاه که باس خالی بود و ولتاژ معادل ۰ یا ۱ منطقی روی آن وجود نداشت میتوانند اقدام به ارسال نمایند (که به این فاز Multiple Access گفته میشود چون ایستگاهها برای دسترسی به باس با یکدیگر مجادله میکنند.) ایستگاه فرستنده فریم دیتا را روی باس قرار
میدهد. میدانیم برای ارسال دیتا سه سرویس ارتباطی وجود دارد. اگر سرویس Broadcast باشد همه ایستگاهها آن را کامل دریافت میکنند ولی اگر سرویس Unicast باشد ایستگاهها اگرچه همگی فیلدهای اول فریم را دریافت کرده اند ولی با چک کردن فیلد آدرس مقصد بجز ایستگاه گیرنده سایرین به دریافت ادامه
نمیدهند [۵].
ویژگی گوش دادن به باس در CSMA موجب میشود که بر خلاف تکنیک Token زمان تلف شده ای وجود نداشته باشد و در شرایط نرمال از باس بصورت موثر استفاده گردد. در کنار این حسن بزرگ یک عیب نیز وجود دارد و آن بروز تصادم یا برخورد[۴۰] است. در تکنیک Token به دلیل نوبت بندی دقیق هیچگاه بین دیتای ارسالی ایستگاها برخورد رخ نمی دهد. ولی در روش CSMA به دلیل عدم وجود نوبت بندی بروز تصادم اجتناب پذیر است. از این رو شبکههایی مانند اترنت که از این تکنیک استفاده میکنند اگر به آرامی بارگذاری شوند با سرعت خوب و تاخیر کم کار میکنند، ولی در بارگذاری زیاد سرعت آن خیلی پایین میآید که عامل اصلی آن بروز تصادم است. فرض کنید دو ایستگاه در حال چک کردن باس هستند و به محض اینکه آنرا خالی دیدند شروع به ارسال نمایند تصادم رخ خواهد داد. به عنوان مثال وقتی یک سیستم مشغول حس کردن Carrier است ممکن است سیستم دیگری قبلا ارسال را شروع کرده باشد ولی سیگنال آن هنوز به سیستم اول نرسیده است برای روشن شدن موضوع توجه کنید که سرعت اترنت (در انواع اولیه ) برابر ۱۰Mbps یا ده میلیون بیت در ثانیه است پس ارسال هر بیت ۱۰۰ نانو ثانیه طول میکشد. از آنجا که نور و الکتریسیته در هر نانو ثانیه حدود ۳۰ سانتی متر را میپیمایند پس وقتی بیت اول ارسالی به اندازه ۳۰ سانتی متر را روی باس پیمود بیت دوم ارسال میگردد. اکنون در یک شبکه بزرگ در نظر بگیرید. دو ایستگاه با یکدیگر ۱۰۰ متر فاصله دارند. بدیهی است اگر هر دو باس را خالی ببینند و اقدام به ارسال بیت اول کنند هنوز این دو بیت به یکدیگر نرسیده بیت دوم ارسال میشود به عبارت دیگر دو ایستگاه در اواسط ارسال بیت چهارم است که متوجه برخورد میشوند. یعنی هر دو ایستگاه همزمان شروع به ارسال کرده اند ولی دیتای آنها با چند نانوثانیه تاخیر تصادم پیدا کرده است بدیهی است اگر فاصله بیش از این بود با تاخیر بیشتر متوجه برخورد میشدند و اگر فاصله از حدی بیشتر باشد هر دو تمامی فریم دیتا را ارسال کرده اند و متوجه برخورد نشده اند. از همین جاست که محدودیتی با عنوان Collision Domain تعریف میگردد. بدترین وضعیت بین دو ایستگاهی است که بیشترین فاصله را با هم داشته و در مسیر مابین آنها وسایلی که تاخیر ایجاد میکنند مانند تکرارگرها بیشتر بکار رفته باشد. البته در هنگام طراحی شبکه لازم است در کلیه مسیرها محاسبات لازم انجام پذیرد این محاسبات حد ماکزیمم طول کابل شبکه و تعداد وسایل ر ا مشخص خواهد ساخت. با این وجود بعضا محاسبات را فقط روی بدترین وضعیت (مسیر) انجام میدهند اگر نتیجه رضایت بخش بود از تکرار محاسبه برای سایر مسیرا صرفنظر میکنند.
بطور خلاصه میتوان گفت که در تکنیک CSMA سه وضعیت کاری برای ایستگاه وجود دارد [۵]:
Listen
Transmition
Collision
در وضعیت Listen ایستگاه در حال چک کردن جریان باس است وقتی که باس آزاد نیست عبور بیتها با جریانی در حد ۱۸ تا ۲۰ میلی آمپر همراه است. وقتی از باس جریانی عبور نکند آزاد است و ایستگاه میتواند عمل ارسال را شروع کند یعنی به وضعیت Transmition در میآید. فرستنده در حین ارسال بطور مداوم جریان باس را چک میکند. اگر برخورد پیش بیاید جریان باس بالا میرود مثلا روی کابل کواکس وقتی جریان از ۲۴ میلی آمپر فراتر رود این نشانه بروز تصادم است. در این حالت فرستنده به وضعیت سوم میرود. بلافاصله عمل ارسال دیتا را متوقف کرده و شروع به ارسال سیگنال ۳۲ بیتی (Jam Signal) می کند. هدف از ارسال سیگنال Jam آنست که گیرنده یا گیرندگانی که بخشی از فریم قبلی را دریافت کرده اند بجای فیلد CRC صحیح سیگنال Jam را بگیرند و در نتیجه فریمی که دریافت نموده اند را دور بریزند.
در هنگام برخورد، سیگنال برخورد به سمت ایستگاهها برمیگردد. زمان رسیدن سیگنال به ایستگاه بستگی به فاصله آن تا محل برخورد و نیز بستگی به المانهای واسطی که در مسیر قرار دارند از جمله ریپیترها دارد.
در وضعیت Collision پس از وقوع تصادم بین دو ایستگاه، باس تا زمانی که ارسال مجدد خود را انجام ندهند برای سایر ایستگاهها آزاد نخواهد بود. هرکدام از ایستگاههایی که دیتای آنها دچار برخورد شده با وقوع تصادم ابتدا سیگنال Jam را ارسال نموده سپس به اندازه یک پریود زمانی قبل از ارسال مجدد منتظرمیماند. به این پریود زمانی زمان عقب گرد یا Back off میگویند [۵].
شکل ۲‑۷: تصادم دیتا در اترنت [۳۰]
بنابراین بطور خلاصه برای بهبود Determinism و اطمینان از انتقال دیتا در زمان مناسب در اترنت گامهای زیر برداشته شده است:
افزایش سرعت از ۱۰ به ۱۰۰Mbps و بالابردن ظرفیت انتقال
استفاده از سوئیچ برای محدود سازی و جدا سازی Collision Domain بخش های مختلف شبکه
استفاده از روش Full Duplex با بکار بردن سوئیچ های مدرن
استفاده از سوییچ بجای هاب برای چک کردن بسته های خراب و عدم ارسال آنها روی شبکه
استفاده از سوئیچ به جای هاب برای چک کردن آدرس بسته دیتا و ارسال فقط به پورت موردنظر و نه به همه پورتها
تمام موارد فوق منجر به کاهش ترافیک و به دنبال آن کاهش تصادم روی شبکه میشوند و در نتیجه قطعیت انتقال دیتا در زمان مناسب را بهبود میبخشند[۹].
لایه شبکه[۴۱] در اترنت
این لایه مسئول ارتباط end-to-end در کل شبکه به هم پیوسته است و مدیریت دیتا را در شبکه به عهده دارد. یک شبکه بزرگ ممکن است از چندین زیر شبکه کوچک تشکیل شده باشد که این زیر شبکهها توسط واسط هایی مانند به هم متصل هستند. لایه پیوند داده ای مسئول انتقال فریم در یک زیر شبکه است در حالی که لایه Network مدیریت دیتا بین دو وسیله در کل شبکه را بعهده دارد حتی اگر این دو وسیله روی دو زیر شبکه مختلف قرار گرفته باشند[۵].
شکل ۲‑۸: لایه شبکه