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‬‬