Transcript network1-8
ادامه فصل سوم:
الیه فیزیکی
بخش 8
فریم بندی ()Framing
فریم بندی یعنی این که الیه پیوند داده فرستنده ،اطالعات (رشته ای از بیت ها) را در یک قالب
مشخص و مورد توافق فرستنده و گیرنده قرار دهد و مرز ابتدا و انتهای آن قالب را مشخص کند.
در شبکه های کامپیوتری از روش های فریم بندی زیر استفاده می شود:
.1
.2
.3
.4
.5
.6
درج فاصله زمانی
استفاده از بیت های کنترلی (روش آسنکرون یا ناهمزمان)
استفاده از بایت های کنترلی
قرار دادن طول فریم در سر فصل یک فریم
روش ترکیبی
روش رمز گذاری فیزیکی
3
درج فاصله زمانی
•در این روش فریم های اطالعاتی فقط در زمان های خاص مورد توافق فرستنده و گیرنده ارسال
می شوند.
•مشکل این روش این است که همزمان کردن زمان و ساعت بین کامپیوترهای فرستنده و گیرنده
به سادگی امکان پذیر نیست و
• این روش به ندرت در شبکه های کامپیوتری استفاده می شود.
4
استفاده از بیت های کنترلی (روش آسنکرون یا ناهمزمان)
در این روش زمان بندی و هم زمان کردن فرستنده و گیرنده اصالً مهم نیست و اطالعات در هر
زمانی و توسط یک الگوی خاص مورد توافق فرستنده و گیرنده (پروتکل) ارسال و دریافت می شود.
ارسال یک فریم اطالعاتی به صورت بایت به بایت و به صورت زیر است:
الف -عدم ارسال اطالعات یا بیکاربودن کانال در این روش با ارسال یک باینری مشخص می شود.
ب -فرستنده قبل از ارسال هر بایت ،یک بیت صفر به نام بیت آغازین ) (StartBitارسال می کند.
ج -سپس فرستنده هشت بیت داده (کاهی هفت بیت) را ارسال می کند.
د -ممکن است برای تشخیص خطا ،در صورت وقوع خطا ،یک بیت توازن ( )Parityبعد از هشت بیت داده ارسال
شود .این امر اختیاری ولی مورد توافق فرستنده و کیرنده است.
هـ -در انتها یک بیت یک (گاهی اوقات دو بیت یک) به نام بیت اختتام ( )Stop Bitارسال می کند.
و -دوباره برای ارسال بایت بعدی همان مراحل (ب تا هـ) تکرار می شود تا کل اطالعات ارسال کند.
5
استفاده از بیت های کنترلی (روش آسنکرون یا ناهمزمان)
ارسال هشت بیت داده توسط روش آسنکرون
در روش آسنکرون برای ارسال هر هشت بیت داده حداقل ده بیت (یک بت آغازین و یک بیت اختتام و هشت بت
داده) بایستی ارسال شود و این امر موجب سرباری ( )Orerheadزیاد در هنگام ارسال اطالعات می شود .درصد
سرباری را از رابطه زیر می توان به دست آورد:
ارتباط و انتقال داده بین کی بورد و کامپیوتر به روش آسنکرون قابل پیاده سازی است.
6
استفاده از بیت های کنترلی (روش آسنکرون یا ناهمزمان)
مثال -سیستمی از روش آسنکرون برای ارسال اطالعات استفاده می کند اگر برای ارسال هر هشت
بیت داده یک بیت آغازین ،یک بیت توازن و دو بیت اختتام ارسال کند .درصد سرباری به ازا هر
بایت را به دست آورید.
حل :برای ارسال هر هشت بیت داده مفید چهار بیت غیر ضروری بایستی ارسال شود بنابراین:
4
= 8+4 × 100% = 33%سرباری درصد
7
استفاده از بایت های کنترلی
این روش به دو صورت
سنکرون بایت گرا
و
سنکرون بیت گرا
قابل پیاده سازی است.
8
روش سنکرون بایت گرا
برای کاهش سرباری روش آسنکرون می توان بایت ها را به صورت پی در پی بدون افزودن بیت
آغازین و اختتام ارسال کرد.
در این روش از چهار بایت کنترلی ( )DLE ،SYNCH ،ETX ،STXمطابق زیر استفاده می
شود:
الف -فرستنده قبل از ارسال بایت های داده ابتدا صفر ،یک یا چندین بایت کنترلی SYNCHارسال می کند.
بایت SYNCHبه صورت هشت بیت یک و صفر متوالی است یعنی ( .)01010101از بایت SYNCHبرای همزمان
سازی گیرنده با فرستنده استفاده می شود .در واقع پالس ساعت فرستنده یعنی یک موج مربعی از فرستنده برای
گیرنده ارسال می شود.
ب -سپس فرستنده بایت کنترلی ( STXهشت بیت) را ارسال می کند.
9
روش سنکرون بایت گرا
ج -سپس فرستنده بایت های داده را به صورت متوالی و با توجه به شرط زیر ارسال می کند.
شرط :در صورتی که در هنگام انتقال داده یکی از چهار بایت کنترلی ( )DLE ،SYNCH ،ETX ،STXبه عنوان
داده بخواهند ارسال شوند ،فرستنده بایستی قبل از آن یک بایت کنترلی DLEاضافه نموده و سپس ارسال کند و
گیرنده با دریافت هر ،DLEبه طور خودکار آن را حذف نموده و بایت بعدی را که حتماً یک بایت کنترلی است به
عنوان بایت داده محسوب می کند.
د -پس از ارسال آخرین بایت داده فرستنده یک بایت کنترلی ETXارسال می کند.
هـ -برای ارسال فریم بعدی مراحل فوق دوباره تکرار می شوند.
روش ارسال سنکرون بایت گرا است.
10
روش سنکرون بیت گرا با استفاده از پروتکل HDLCیا پروتکل Bit Stuffing
در این روش ،ارسال اطالعات به صورت ارسال رشته ای از بیت های داده است فقط شروع و پایان
هر فریم با یک بایت( )01111110به نام پرچم مشخص می شود.
همانند روش سنکرون بایت گرا ممکن است فرستنده در هنگام انتقال داده با رشته ای همانند
بایت پرچم مواجه شود و اگر آن را همان طور ارسال کند گیرنده به صورت اشتباه آن را به عنوان
انتهای فرم تفسیر می کند.
بنابراین برای حل این مشکل ،فرستنده به طور خودکار یک بیت صفر بعد از هر پنج بیت متوالی
یک اضافه می نماید تا هیچ گاه شش یک متوالی در هنگام انتقال داده ایجاد نشود.
گیرنده نیز پس از دریافت هر پنج بیت متوالی یک و سپس یک بیت صفر ،به طور خودکار آن صفر
را حذف می کند.
همان طور که مشخص است انتقال داده در این روش مضربی از بایت نیست.
11
در هر دو روش سنکرون در صورتی که گیرنده در زمانی که فریم ارسال
می شود ،روشن شود و یا کنترل دریافت یک فریم داده را از دست بدهد،
کافی است که باقی مانده داده های دریافتی را جستجو نماید تا الگوی
بایتی خاصی مانند STXیا بایت پرچم را پیدا نموده تا بتوانند فریم
بعدی را دریافت نماید.
12
قرار دادن طول فریم در سر فصل یک فریم
در این روش فرستنده طول فریم ( تعداد بایت های یک فریم) را در ابتدای فریم ارسالی قرار می
دهد و گیرنده نیز با دریافت یک فریم و با بررسی ابتدای آن می تواند انتهای آن را مشخص کند.
این روش معموالً مناسب نیست زیرا در صورت رخداد خطا در ابتدای فریم و از بین رفتن مقدار
طول فریم ،همزمانی گیرنده و فرستنده از دست می رود و نه تنها آن فریم از بین می رود بلکه مرز
شروع و مقدار طول فریم های بعدی نیز مشخص نمی شوند و دیگر فریم ها نیز از بین می روند از
این روش به ندرت استفاده می شود.
13
روش ترکیبی
استفاده از بایت های کنترلی به همراه قرار دادن طول فریم
بعضی از پروتکل های شبکه نظیر اترنت و توکن رینگ از این روش استفاده می کنند.
14
روش رمز گذاری فیزیکی
در این روش الیه فیزیکی فرستنده ،صفر باینری را با یک ولتاژ ،یک باینری را با ولتاژ دیگر و عدم
ارسال داده را با ولتاژ سوم مشخص می کند بنابراین گیرنده به راحتی می تواند مرز ابتدا و انتهای
یک فریم را مشخص کند.
زیرا قبل و بعد از ارسال فریم ،روی کانال ولتاژ سوم (عدم ارسال) قرار دارد .مثالی از این روش
کدگذاری منچستر در پروتکل اترنت.
معموالً پروتکل ها یا استاندارد های مختلف از فریم های گوناگونی استفاده می کنند .شکل
زیرنمایش عمومی یک فریم داده است که اکثر پروتکل ها کم و بیش از این فریم استفاده می
کنند.
15
روش رمز گذاری فیزیکی
هر فریم به تعداد فیلد تقسیم می شود .و هر فیلد یک یا چند بایت است.
الیه پیوند داده ،اطالعات را از الیه باالتر تحویل گرفته و سر فصل و دنباله را به آن اضافه می
کند(فریم بندی) و آن را برای ارسال به الیه فیزیکی تحویل می دهد.
فیلد شروع و انتهای فریم همانند بایت های کنترلی در روش سنکرون بایت گرا هستند.
فیلد آدرس شامل آدرس فیزیکی MACکامپیوتر فرستنده و گیرنده است.
فیلد طول نشان دهنده تعداد بایت های یک فریم و یا تعداد بایت های داده است.
فیلد کنترل خطا برای تشخیص خطا توسط گیرنده در صورت وقوع خطا در هنگام انتقال داده به
کار می رود.
16
کنترل خطا()Error Control
در هنگام انتقال داده ممکن است به علت وجود نویز در محیط ،داده های ارسالی دچار تغییر شده
و گیرنده آن را خطادار دریافت نماید.
بنابرایم بایستی به طریقی گیرنده متوجه دریافت خطادار داده ها شود تا از آن ها استفاده نکند.
بهطورکلی دو نوع خطا در شبکههای انتقال داده رخ میدهد :
.1خطای تک بیتی) (Single-bit errorو
.2خطای پیوسته ()Burst error
17
کنترل خطا
کنترل خطا در شبکههای کامپیوتری به دو رویکرد -1کشف خطا و -2تصحیح خطا تقسیم میشود.
در رویکرد کشف خطا ،گیرنده متوجه وقوع خطا در فریم میشود ولی نمیتواند فریم خطادار را تصحیح کند پس
بایستی از فرستنده درخواست کند ،تا آن فریم را دوباره ارسال نماید .اما در رویکرد تصحیح خطا یا گیرنده عالوه بر
کشف خطا در فریم میتواند خطای رخ داده را تصحیح نماید.
افزونگی( :)Redundancyمفهوم کلیدی در کشف یا تصحیح خطا ،افزونگی است .به عبارت دیگر برای اینکه
بتواند خطا را کشف یا تصحیح کرد بایستی بایستی بیت یا بیت های اضافه به همراه داده ارسال نمود.
مکانیزمهای کشف /تصحیح خطا توسط الیه پیوند داده فرستنده برروی فریم داده قرار میگیرد و در هنگام انتقال داده
در رسانه انتقال و در صورت رخداد خطا در فریم و با دریافت آن فریم توسط گیرنده ،الیه پیوند داده گیرنده با بررسی
آن مکانیزمها متوجه وقوع خطا میشود و یا آن را تصحیح میکند و یا درخواست ارسال مجدد مینماید.
البته تمام مراحل خطا یابی و یا تصحیح خطا از دید الیههای باالتر پنهان است.
18
فاصله همینگ
•برای درک بهتر کارکرد و چگونگی مکانیزم های کشف و تصحیح خطاقاصله همینگ تعریف می
شود.
•فاصله همینگ دو کد باینری تعداد بیت های متفاوت در موقعیت یکسان بیتی آن دو کد است.
•مثالً دو کد باینری 10110001و 11110010دارای فاصله همینگ d=3است.
•زیرا بیت های اول و دوم و هفتم آن ها متفوت است.
•فاصله همینگ دو کد را با XORنمودن بیت های آن و شمارش تعداد یک های حاصل می
توان تعیین نمود.
19
فاصله همینگ
•اگر فاصله همینگ دو کد dیاشد برای تبدیل یک کد به کد دیگر بایستی dخطای تک
بیتی رخ دهد به عبارت بهتر اگر در هنگام انتقال یکی از کدها خطا رخ دهد و حداکثرd-1
بیت تغییر کند ،گیرنده می تواند آن خطا را کشف کند.
بیت
•از طرف دیگر اگر فاصله همینگ دو کد dباشد حتی اگر در هنگام انتقال کد
تغییر کند ([] به معنی جزء صحیح است) گیرنده می تواند عالوه بر کشف خطا آن را نیز
تصحیح نماید .بنابراین اگر فاصله همینگ دو کد dباشد ،در هنگام انتقال داده ،توسط گیرنده
بیت خطا تصحیح می شود.
d-1بیت خطا تشخیص و
•به همین ترتیب فاصله همینگ یک مجموعه کد به صورت حداقل فاصله همینگ موجود بین
دو به دو کد های آن مجموعه تعریف می شود.
20
مثالی از فاصله همینگ
مثال اگر مجموعه کدی شامل سه مقدار { }01110،11001،10100باشد فاصله همینگ آن ها
را به دست آورید و در صورت انتقال این کد ها حداکثر چند بیت خطا را گیرنده می تواند
تشخیص دهد یا تصحیح نماید.
حل :فاصله همینگ d=3می شود.
،پس یک بیت خطا را
،d-1=2پس دو بیت تغییر خطا را تشخیص می دهد و =1
تصحیح می کند.
21
•
•
•
در شبکه های کامپیوتری معموالً به علت سرباری زیاد از مکانیزم تصحیح خطـا
اســـتفاده نمـــی شـــود مگـــر جاهـــایی کـــه کانـــال از نـــوع کـــامالً یـــک
طرفه()Simplexباشد.
مثالً به هنگام انتقال داده برای دستگاه های رسیور ماهواره به علت ذات کانـال
کامالً یک طرفه از مکانیسم های تصحیح خطا استفاده می شود.
در اکثر شبکه ها از مکانیسم کشف خطا و درخواسـت ارسـال مجـدد اطالعـات
استفاده می شود.
22
مکانیزم های تشخیص خطا
مکانیزم های تشخیص خطا که معموالً در شبکه های کامپیوتری استفاده می شوند عبارتند از:
-1بیت توازن()Parity bit
-2جمع مقابله ای ()Checksum
-3کد افزونه چرخش (Cyclic Redundancy Code)CRC
23
بیت توازن()Parity bit
•بیت توازن به صورت زوج( )evenو فرد( )oddبه کار می رود.
•مطابق تعریف ،بیت توازن زوج بیتی است (صفر یـا یـک) کـه بـه هـر هشـت بیـت داده(یـک
کداسکی) اضافه می شود تا تعداد یک های داده به همراه بیت توازن را زوج کند.
• بیت توازن فرد نیز بیتی است که به هر هشت بیت داده اضافه می شود تا تعداد یک های داده
به همراه بیت توازن را فرد کند.
•بیت توازن باعث می شود که فاصله همینگ مجموعه کدهای اسکی برابر d=2شود.
•بنابراین مکانیزم کشف خطا با استفاده از بیت توازن(چه زوج و چه فـرد) نمـی توانـد خطـا را
تصحیح کند اما می تواند یک بیت خطا را تشخیص دهد.
•البته با توجه به ماهیت بیت توازن ،بیت توازن توانایی تشخیص تعداد فرد تغییر بیت(خطـا) را
نیز دارد.
بیت توازن()Parity bit
مثال :داده 10110010دارای چهار بیت یک است (عدد زوج)
بنابراین بیت توازن زوج آن صفر است و یا داده 0010000دارای یک بیت یک است (عدد
فرد) پس بیت توازن زوج آن یک است.
فرستنده و گیرنده روی مکانیزم کشف خطا مثالً استفاده از بیت توازن زوج توافق دارند (مث ً
ال
در پروتکل آسنکرون) بنابراین فرستنده برای ارسال هر فریم با ارسال هر هشت بیت داده ،بیت
توازن زوج آن را نیز محاسبه نموده و ارسال می کند و گیرنده با دریافت هر نه بیت ،تعداد یک
های آن را می شمارد و در صورتی که تعداد یک های آن فرد باشد حتماً خطا رخ داده است و
یک بار دیگر درخواست ارسال کل فریم را می نماید.
جمع مقابله ای ()Checksum
در این مکانیزم کشف خطا ،الیه پیوند داده فرستنده تک تک بایت های فریم داده (حتی
بایت های کنترلی و فیلد آدرس و طول و )...را با یکدیگر جمع کرده ،مکمل یک گرفته و آن
را به عنوان Checksumیک بایتی درانتهای فریم ارسال می کند.
الیه پیوند داده گیرنده نیز با دریافت فریم داده تمامی بایت های آن را (از جمله
)Checksumبا یکدیگر جمع می کند در صورتی که حاصل غیر صفر باشد حتماً فریم
خطادار شده است زیرا حاصل جمع یک عدد با مکمل یک آن عدد برابر صفر است.
در صورتی که عمل جمع در سمت فرستنده و به صورت دو بایتی ( 16بیتی) باشد و مکمل
یک حاصل جمع به صورت 16بیتی محاسبه شود Checksum ،حاصل دو بایتی می
شود و نسبت به Checksumیک بایتی قابلیت کشف خطای بیشتری دارد.
کد افزونه چرخش (Cyclic Redundancy Code)CRC
در این مکانیزم کشف خطا ،الیه پیوند داده فرستنده بایت های فریم داده (رشته ای از بیت
های صفر و یک) را بر یک چند جمله ای مولد (یک عدد باینری) تقسیم نموده و باقی مانده
را به عنوان CRCدر انتهای فریم ارسال می کند.
الیه پیوند داده گیرنده نیز با تقسیم داده دریافتی بر همان چند جمله ای مورد توافق
فرستنده و گیرنده و به دست آوردن باقی مانده ،متوجه وقوع خطا یا عدم وقوع خطا می شود.
چند جمله ای مولد ،یک چند جمله ای است که ضرایب توان های آن فقط صفر و یک باشد
آن حتماً یک باشد.
و ضریب توان
مثالً
یک چند جمله ای مولد است.
یک چند جمله ای مولد را توسط رشته ای از بیت ها می توان نمایش داد به طوری که
موقعیت هر بیت نشان دهنده توان آن چند جمله ای و مقدار هر بیت (صفر و یک) نشان
دهنده ضریب توان آن چند جمله ای است.
27
مثالی از کد افزونه چرخش CRC
به طور مثال چند جمله ای
نشان داد .یعنی:
را با داده 10010011می توان
28
کد افزونه چرخش (Cyclic Redundancy Code)CRC
باالترین توان یک چند جمله ای را درجه آن چند جمله ای می نامند .چند جمله ای از
را با n+1بیت می توان نمایش داد.
درجه nرا مثالً
برای تولید CRCفریم داده بر چند جمله ای مولد تقسیم می شود و اگر چند جمله ای
از درجه nباشد باقی مانده یک درجه از چند جمله ای مولد یعنی از درجه n-1می شود.
پس باقی مانده یا CRCرا با nبیت می توان نمایش داد.
در مکانیسم کشف خطای ،CRCفرستنده باقی مانده را محاسبه و ارسال می کند و به
خارج قسمت کاری ندارد.
دلیل این امر این است که همواره باقی مانده تقسیم فریم داده با هر طولی بر یک چند
جمله ای ثابت با درجه nهمواره ثابت و برابر nبیت است در حالی که طول خارج قسمت
آن با توجه به طول فریم تغییر می کند و نا مشخص است.
29
محاسبه CRCیا باقی مانده تقسیم فریم داده بر چند جمله ای از درجه n
برای محاسبه CRCیا باقی مانده تقسیم فریم داده (رشته ای از بیت های صفر و یک) بر چند
جمله ای از درجه ( nرشته n+1بیتی) مراحل زیر بایستی توسط الیه پیوند داده فرستنده انجام
شود:
الف -ابتدا nرقم صفر به سمت راست داده اضافه می شود دلیل اضافه شدن صفر در مرحله د
گفته می شود.
ب -سپس عمل تقسیم انجتم می شود با این تفاوت که به جای عمل تفریق از عمل XOR
استفاده می شود .حاصل XORدو بیت صفر یا دو بیت یک برابر صفر و حاصل XORیک بیت
صفر با یک بیت یک همواره یک می شود.
ج -در نهایت باقیمانده nبیتی به عنوان CRCدر انتهای فریم داده ارسال می شود.
د -گیرنده با ذریافت فریم داده به همراه CRCعمل تقسیم بر چند جمله ای مولد مورد توافق را
انجام می دهد در صورتی که فریم صحیح دریافت شده باشد بایستی باقیمانده تقسیم صفر شود
زیرا در مرحله الف و قبل از عمل تقسیم nرقم صفر به سمت راست داده اضافه شده است.
30
مثالی از کد افزونه چرخش CRC
مثال :اگر فرستنده بخواهد داده 1000110101را ارسال کند و چند جمله ای مورد توافق
یعنی 1001باشد آن گاه فرستنده CRCرا به صورت
فرستنده و گیرنده
زیر محاسبه می کند:
حل :ابندا سه بیت صفر به سمت راست داده اضافه می شود و سپس عمل تقسیم انجام می
شود.
سه بیت کم ارزش به
عنوان CRCو در انتهای
داده به صورت زیر
ارسال می شود:
1000110101010
31
کد افزونه چرخش (Cyclic Redundancy Code)CRC
برای افزایش سرعت ،محاسبه CRCبه صورت سخت افزاری با استفاده از شیفت رجستر و
گیت های XORانجام می شود.
دو چند جمله ای استاندارد که برای محاسبه CRCبه صورت 16بیتی (مضرب بایت) به کار
می روند ،عبارتند از:
دو CRCفوق تمام خطاهای تک بیت و دو بیتی ،تعداد فرد خطای بیتی و تمام خطا های به
طول 16بیت یا کم تر و 99\997درصد از خطاهای پیوسته 17بیتی و 99\998درصد از
خطاهای پیوسته 18بیتی را تشخیص می دهد.
32
کنترل جریان ()Flow Control
در هنگام اتصال کامپیوتر ها به شبکه های کامپیوتری محدودیتی از نظر اتصال کامپیوتر هایی با
سرعت پائین و کارت شبکه کند یا کامپیوترهایی با سرعت باال و کارت شبکه سریع وجود ندارد.
بنابراین اگر کامپیوتر فرستنده ای با سرعت باال فریم های داده را برای کامپیوتر گیرنده ای کند
ارسال نماید ،گیرنده نمی تواند تمامی فریم ها را دریافت کند بنابراین بایستی با استفاده از
مکانیزمی جریان داده ما بین فرستنده و گیرنده را کنترل نمود.
فرستنده سریع نمی تواند سرعت خود را کند نماید بنابراین کنترل جریان داده بر عهده گیرنده
است زیرا در صورتی که فریم ها را سریع دریافت کند ابتدا آن ها را بافر می کند و اگر نتواند آن
ها را پردازش کند و بافر را خالی کند بایستی به فرستنده اطالع دهد تا ارسال داده را متوقف
کند.
33
روشهای کنترل جریان ()Flow Control
سه راه حل زیر برای کنترل جریان داده بین فرستنده و گیرنده به کار می رود:
-1کنترل جریان نرم افزاری XON-XOFF
-2کنترل جریان سخت افزاری RTS – CTS
-3روش کنترل جریان نرم افزاری در الیه انتقال پروتکل TCP\IP
34
کنترل جریان نرم افزاری XON-XOFF
XONو XOFFدو پیغام کنترلی هستند که از طرف گیرنده برای فرستنده ارسال می
شوند XOFF.به معنای توقف ارسال و XONبه معنی ادامه ارسال است.
(1
(2
(3
(4
(5
(6
(7
انتقال داده
بافر گیرنده پر می شود (معموالً وقتی آن پر می شود).
ارسال XOFF
توقف ارسال
بافر گیرنده خالی می شود (معموالً وقتی آن خالی می شود).
ارسال XON
ادامه انتقال داده با توجه به مراحل دوم تا ششم
جریان انتقال داده بین مودم و کامپیوتر می تواند به صورت XON-XOFFکنترل شود.
35
کنترل جریان سخت افزاری RTS – CTS
(Request To Send) RTSبه معنای آمادگی ارسال و (Clear To Send ) CTSبه معنای آمادگی
دریافت است.
RTSو CTSدو سیگنال کنترلی هستند که از طریق کانال کنترل فرستنده و گیرنده را به یکدیگر متصل می
کنند و همانند یک بیت مقادیر صفر یا یک می توانند داشته باشند.
RTSرا فرستنده و CTSرا گیرنده کنترل می کند.
RTS = 1یعنی فرستنده آماده ارسال است،
CTS = 1یعنی گیرنده آماده دریافت است (همانند ارسال )XONو
CTS = 0یعنی گیرنده آمادگی دریافت را ندارد (همانند ارسال .)XOFF
در این روش انتقال داده از طریق کانال داده و کنترل جریان از طریق کانال کنترل انجام می گیرد.
بلوک دیاگرام روش کنترل جریان سخت افزاری RTS – CTS
36
کنترل جریان سخت افزاری RTS – CTS
(RTS =1)1
(CTS=1)2
( )3ارسال داده
آن پر می شود).
( )4بافر گیرنده پر می شود (معموالً وقتی
(CTS= 0 )5
( )6توقف ارسال
آن خالی می شود).
( )7بافر گیرنده خالی می شود (معموالً وقتی
(CTS= 1 )8
( )9ادامه ارسال داده
جریان داده ما بین مودم و کامپیوتر همچنین می تواند به صورت روش
سخت افزاری RTS – CTSنیز کنترل شود.
روش سخت افزاری نسبت به روش نرم افزاری سریع تر است زیرا به جای
ارسال پیغام کنترلی روی کانال داده از سیگنال کنترلی صفر یا یک استفاده
می کند .اما روش سخت افزاری هزینه بیش تری دارد و عالوه بر کانال داده
نیاز به کانال کنترلی هم دارد.
دیاگرام زمانی روش کنترل جریان
سخت افزاری RTS – CTS
37
روش کنترل جریان نرم افزاری در الیه انتقال پروتکل TCP\IP
این روش مربوط به الیه انتقال در پروتکل TCP\IPاست و وظیفه الیه پیوند داده نیست در این
روش گیرنده به جای ارسال XONیا XOFFبعد از دریافت هر فریم داده یک پیغام ACKرا
ارسال می کند که در آن اندازه بافر خالی خود را به فرستنده اطالع می دهد.
گیرنده با ارسال ACKبا هر اندازه غیر صفر به معنای ادامه ارسال است.
مزیت کنترل جریان در الیه انتقال پروتکل TCP\IPنسبت به روش XON-XOFFدر این
است که گیرنده همواره وضعیت بافر خالی خود را به فرستنده اطالع می دهد.
کنترل جریان در شبکه های کامپیوتری و ما بین دو کامپیوتر بر اساس پروتکل TCP\IPاست.
38
مدیریت کانال
منظور از مدیریت کانال ،تعیین نحوه دسترسی به کانال ،چگونگی انتقال داده ،بحث کنترل خطا و
کنترل جریان است.
مدیریت کانال بردو نوع است:
-1مدیریت کانال نقطه به نقطه و
-2مدیریت کانال پخش هماهنگی.
•مدیریت کانال نقطه به نقطه ساده تر است زیرا یک کانال فقط متعلق به دو کامپیوتر است و فقط
دو کامپیوتر به ارسال و دریافت داده می پردازد.
•اما مدیریت کانال پخش هماهنگی به علت دسترسی چندین کامپیوتر به یک کانال مشترک و
استفاده اشتراکی آن ها مشکل تر است.
مدیریت کانال نقطه به نقطه به سه صورت انجام می شود:
-1روش IDLE ARQیا Stop & Wait
-2روش Selective Reject ARQ
-3روش Go Back N ARQ
39
مدیریت کانال نقطه به نقطه
برای توضیح سه روش فوق از دیاگرام زمانی استفاده می شود.
در این دیاگرام ،گذر زمان و محور زمان از باال به پایین است و جهت انتقال داده با فلش مورب (پدیده تأخیر)
نشان داده می شود.
فرستنده اطالعات را در قالب فریم های شماره گذاری شده مرتب ارسال می کند.
گیرنده با دریافت صحیح هر فریم (با بررسی مکانیزم کشف خطای قرار داده شده در فریم توسَط فرستنده)
یک پاسخ ACKبه همراه شماره فریم دریافت شده برای فرستنده ارسال می کند و یا یک ( NACKپاسخ
منفی) به همراه شماره فریم در صورت دریافت خطادار فریم برای فرستنده ارسال می کند و فرستنده نیز با
دریافت NACKملزم به ارسال مجدد آن فریم است.
خطای رخ داده در فریم یا ACKیا NACKبا ضربدر × مشخص می شود.
به مدیریت فریمها و یا پاسخهای گمشده نسبت به فریم ها و پاسخهای خطا دار مشکلتر است.
هنگامی که فریم توسط فرستنده ارسال میشود یک زمان سنج شروع به کار مینماید و اگر زمان سنج
منقضی شود و هیچ گونه پاسخی از سمت گیرنده دریافت نشود فرض میشود که یا خود فریم و یا پاسخ
گیرنده گم شده است.
پس فریم دوباره ارسال میشود در حالی که زمان سنج دوباره شروع به کار میکند و مطابق روش
گفته شده فرستنده منتظر پاسخ میشود.
بنابراین نیاز است که یک نسخه از فریم در فرستنده باقی بماند تا زمانی که فرستنده مطمئن شود که آن
فریم به درستی و بدون خطا به گیرنده رسیده است .
40
مدیریت کانال نقطه به نقطه
از طرف دیگر اگر گیرنده فریم را بدون خطا دریافت کرد و پاسخ ACKرا در جواب فرستنده ارسال نمود ولی
بنا به دالیلی این پاسخ گم شود و زمان سنج فرستنده منقضی شود ،فرستنده دوباره فریم را ارسال میکند و با
دریافت فریم توسط گیرنده ،گیرنده باید به طریقی متوجه شود که همان فریم داده قبلی است که دوباره
ارسال شده است بنابراین کلیه فریمها بایستی شمارهگذاری شوند که این امر با اضافه کردن یک فیلد به فریم
داده به نام شماره ترتیب ) (Sequence numberانجام میگیرد.
البته نکته مهم تعیین محدوده شماره ترتیب است .از آنجایی که هدف کاهش طول فریم به منظور کاهش
سربار است بنابراین میتوان از تعداد بیت کم برای مقداردهی شماره فریم و به صورت چرخشی و شماره
گذاری مجدد استفاده نمود.
بهطور مثال اگر فیلد شماره ترتیب nبیت باشد آنگاه شماره ترتیب فریمها از 0شروع و به 2𝑛 − 1ختم
میشود و دوباره تکرار میشود .بهعبارتدیگر شماره ترتیب به پیمانه 𝑛 2است.
اگر n=3باشد بنابراین شماره ترتیب فریم از 0تا 7و فقط به ترتیب زیر میتواند باشد.
…0.1.2.3.4.5.6.7.0.1.2.3.4.5.6.7.0.1.2
به سه روش فوق )Automatic Repeat reQuest( ARQیا درخواست تکرار خودکار (در صورت
مواجهه با فریم خطادار) می گویند.
41
روش IDLE ARQایست و انتظار ()Stop & Wait
در این روش فرستنده فریم داده را ارسال نموده و منتظر پاسخ گیرنده می ماند .فرستنده در این
حالت بیکار ( )IDLEاست .در صورت دریافت NACKاز گیرنده یکبار دیگر همان فریم را ارسال
می کند وگرنه با دریافت ACKفریم بعدی را ارسال می کند.
دیاگرام زمانی روش IDLE ARQ
42
روش عدم پذیرش انتخابی Selective Reject ARQ
•
•
•
•
•
•
•
•
در این روش فرستنده فریم های داده را به طور پیوسته و بدون انتظار برای دریافت پاسخ ACKیا NACK
ارسال می کند و گیرنده نیز به صورت پی در پی و با دریافت هر فریم پاسخ مناسب را برای فرستنده ارسال می
کند.
فرستنده با دریافت NACKبه همراه شماره فریم خطادار ،فقط همان فریم را دوباره ارسال می کند و دوباره به
ارسال باقیمانده فریم ها می پردازد.
فرستنده با دریافت ACKبه ادامه ارسال باقیمانده فریم ها می پردازد.
در این روش فرستنده دیگر بیکار نیست.
به تعداد فریم هایی که یک فرستنده می تواند ارسال کند تا زمانی که پاسخ ACKیا NACKرا برای اولین
فریم ارسالی دریافت کند پنجره فرستنده میگویند .
پنجره گیرنده نیز به این معنی است که چه تعداد فریم بایستی گیرنده نگهداری کند تا بتواند آنها را به الیه
باالتر (الیه شبکه) تحویل دهد.
پنجره فرستنده بایستی دقیقاً برابر با پنجره گیرنده باشد و مقدار آن حداکثر برابر 2𝑛−1است جایی که تعداد n
تعداد بیت شماره ترتیب است.
با توجه به اینکه اندازه پنجره گیرنده و فرستنده یکسان است گیرنده میتواند کلیه فریمهای ارسال شده توسط
فرستنده را به صورت نامرتب (از نظر شماره ترتیب فریمها) دریافت کند ولی بایستی آنها را به صورت مرتب به
الیه شبکه خود تحویل شود.
43
دیاگرام زمانی روشSelective Reject
پنجره زمانی شکل فوق برابر چهار است .پنجره زمانی روش IDLE ARQبرابر
یک است .به این روش تکرار انتخابی ( )Selective Rejectنیز می گویند.
44
روش عدم پذیرش انتخابی Selective Reject ARQ
به تعداد فریم هایی که یک فرستنده می تواند ارسال کند تا زمانی که پاسخ ACKیا NACKرا برای اولین
فریم ارسالی دریافت کند پنجره زمانی می گویند .پنجره زمانی شکل فوق برابر چهار است.
پنجره زمانی روش IDLE ARQبرابر یک است .به این روش تکرار انتخابی ( )Selective Rejectنیز می
گویند.
45
روش بازگشت به عقب به اندازه (Go Back N ARQ)N
در این روش نیز همانند روش قبلی ،فرستنده فریم های داده را به طور پیوسته و بدون انتظار برای
دریافت پاسخ از گیرنده ارسال می کند و گیرنده نیز پاسخ مناسب را برای فرستنده ارسال می کند.
فرستنده با دریافت NACKبه همراه شماره فریم خطادار به عقب بازگشت نموده و یکبار دیگر
تمامی فریم ها را از فریم خطادار به بعد به صورت پیوسته ارسال می کند.
اگر اندازه پنجره زمانی Nباشد در صورت رخداد خطا در یک فریم ،بازگشت به عقب به اندازه N
خواهد بود.
46
نمایش دیاگرام زمانی روش Go Back N
47
مقایسه سه روش مدیریت کانال نقطه به نقطه
می توان مکانیزم کنترل جریان را در سه روش فوق به راحتی پیاده سازی نمود .فقط کافی
است از طرف گیرنده اندازه بافر خالی و یا پیغام XON-XOFFبه همراه ACKبرای
فرستنده ارسال شود.
کنترل خطا در هر سه روش به درستی انجام می شود پس قابلیت اطمینان سه روش باال است.
بهره وری و کارایی کانال به ترتیب در روش های Go Back N ،Selective Rejectو
IDLEکاهش می یابد.
زیرا در روش IDLEفرستنده زمان زیادی بیکار و منتظر دریافت پاسخ از گیرنده است پس از
کانال ستفاده نمی شود.
48
مقایسه سه روش مدیریت کانال نقطه به نقطه
در روش Go Back Nدر صورت رخداد خطا یک بار دیگر فریم خطادار و فریم های بعد از
آن (حتی اگر سالم دریافت شده باشند) دوباره ارسال می شوند بنابراین مقداری از ظرفیت
کانال به انتقال دوباره فریم های دریافت شده به صورت صحیح اختصاص می یابد.
ولی در روش Selective Rejectاین مشکل وجود ندارد.
روش IDLEمی تواند با استفاده از کانال Half Duplexپیاده سازی شود.
زیرا انتقال اطالعات در هر دو جهت اما به صورت ناهمزمان وجود دارد.
ولی دو روش دیگر بایستی حتماً با استفاده از کانال Full Duplexنسبت به Half
Duplexهزینه بیشتری دارد.
49
مقایسه سه روش مدیریت کانال نقطه به نقطه
از طرف دیگر بافر گیرنده برای نگهداری فریم های دریافتی در دو روش IDLEو Back Nمی تواند فقط
گنجایش یک فریم را داشته باشد زیرا ترتیب دریافت فریم ها به صورت صحیح در هر دو روش حفظ شده است و
الیه پیوند داده گیرنده می تواند داده های سالم را به ترتیب به الیه باالتر تحویل دهد.
اما در روش Selective Rejectاگر یک فریم خطادار دریافت شود و گیرنده از فرستنده درخواست ارسال
مجدد آن فریم را نماید تا دریافت فریم صحیح ،گیرنده بایستی دیگر فریم های بعدی دریافتی به صورت صحیح را
بافر و ذخیره نماید زیرا دیگر آن ها ارسال مجدد نمی شوند و در نهایت پس از دریافت صحیح فریم خطادار شده،
الیه پیوند داده گیرنده می تواند تمامی فریم های بافر شده را به صورت مرتب به الیه باالتر تحویل دهد.
با توجه به نوع کانال و نیز حجم بافر گیرنده ،هزینه پیاده سازی روش های Selective Rejectو Go
Back Nو IDLEبه ترتیب کاهش می یابد.
50