620 likes | 863 Views
فصل7 پروتکلهای لایۀ لینک داده. مکانیزمهای کنترل جریان و کنترل خطا پروتکل HDLC. بحث کلی فصل. بحث ARQ مثالی از پروتکلهای نظیر به نظیر ارائه خواهد نمود. لایۀ لینک داده فریم بندی پروتکل HDLC. فصل7 پروتکلهای لایۀ لینک داده. مکانیزمهای کنترل جریان و کنترل خطا. قابلیت اطمینان و مرتب بودن.
E N D
فصل7 پروتکلهای لایۀ لینک داده مکانیزمهای کنترل جریان و کنترل خطا پروتکل HDLC
بحث کلی فصل • بحث ARQ مثالی از پروتکلهای نظیر به نظیر ارائه خواهد نمود. • لایۀ لینک داده • فریم بندی • پروتکلHDLC
فصل7 پروتکلهای لایۀ لینک داده مکانیزمهای کنترل جریان و کنترل خطا
قابلیت اطمینان و مرتب بودن • قابلیت اطمینان: آیا پیغامها یا جریان اطلاعات بدون خطا و بدون از دست رفتن و تکرار هستند؟ • مرتب بودن: آیا پیغامها یا جریان اطلاعات به ترتیب رسیده اند؟ • پروتکلهای ARQ تشخیص خطا ، ارسال مجدد و کنترل ترتیب را برای ارائۀ قابلیت اطمینان و مرتب بودن ، ترکیب میکنند. • مثال : TCP ، HDLC
کنترل سرعت و جریان • اگر سیستم دریافت کننده به اندازۀ کافی بافر برای پیغامهایی که دریافت میکند نداشته باشد، پیغامها ممکن است، از دست بروند. • اگر مقصد لایۀ n+1 اطلاعاتش را به سرعت بازیابی نکند، بافر مقصد لایۀ n ممکن است سرریز شود. • کنترل جریان و سرعت با استفاده از مکانیزم فشار به عقب، بر اساس میزان بافر آماده در مقصد، میزان انتقال را کنترل میکند. • مثال: TCP ، HDLC
زمانبندی • کاربردهایی که با صوت و ویدیو درگیر هستند، واحدهای اطلاعاتی تولید میکنند که به زمان وابسته اند. • کاربرد مقصد باید ارتباط زمانی را در واحدهای صوت و ویدیو بازسازی کند. • انتقال در شبکه تأخیر و jitter اعمال میکند. • پروتکلهای بازیابی زمان از برچسبهای زمانی و شمارۀ ترتیب برای کنترل تأخیر و jitter در انتقال اطلاعات استفاده میکنند. • مثال : RTP و پروتکلهای مرتبط در انتقال صوت بر روی IP
مالتی پلکسینگ • مالتی پلکسینگ این امکان را فراهم میکند که چندین کاربر لایۀ n+1 سرویس لایۀ n را به اشتراک بگذارند. • یک برچسب مالتی پلکسینگ برای تشخیص کاربران به طور مشخص در مقصد لازم است. • مثال: UDP ، IP
لینک داده بر روی سیمی که مستقیماً به سیستم متصل است، عمل میکند. فریمها ممکن است خراب شوند و یا از دست بروند ولی به ترتیب میرسند. لینک داده کنترل خطا و ارسال مجدد را انجام میدهد. تضمین انتقال بسته بدون خطا بین د و سیستم. Packets Packets Data link layer Data link layer Frames A B Physical layer Physical layer 1 1 2 2 3 3 1 2 1 2 2 1 1 2 Medium 2 1 B A 1 Physical layer entity 2 Data link layer entity 3 Network layer entity کنترل خطا در لایۀ لینک داده (a) (b)
Messages Messages Segments Transport layer Transport layer Network layer Network layer Network layer Network layer Data link layer Data link layer Data link layer Data link layer End system A End system B Physical layer Physical layer Physical layer Physical layer Network کنترل خطا در لایۀ انتقال • پروتکل لایۀ انتقال مانند TCP تکههای پیغام را بر روی شبکه ارسال میکنند و کنترل خطای انتها به انتها و ارسال مجدد را انجام میدهند. • فرض میشود شبکۀ زیرین قابل اطمینان باشد.
فصل 7لایۀ لینک داده پروتکلهای ARQ و انتقال دادۀ قابل اطمینان
Automatic Repeat Request (ARQ) • هدف: برای تضمین اینکه با وجود خطاها و از دست رفتن بستهها، دادهها به ترتیب و بدون خطا و یا تکرار به مقصد رسیده باشند. • ما نگاهی به پروتکلهای زیر میاندازیم: • Stop-and-Wait ARQ • Go-Back N ARQ • Selective Repeat ARQ • مؤلفههای پایۀ ARQ : • کد تشخیص خطا با پوشش خطای وسیع • ACKs(positive acknowledgments) • NAKs(negative acknowlegments) • مکانیزم timeout
Header CRC Information packet Header CRC Control frame: ACKs Information frame Stop-and-Wait ARQ ارسال یک فریم و انتظار برای دریافت فریم Error-free packet Packet Information frame Receiver (Process B) Transmitter (Process A) Timer set after each frame transmission Control frame
(a) Frame 1 lost Time-out Time A Frame 0 Frame 1 Frame 1 Frame 2 ACK ACK B (b) ACK lost Time-out Time A Frame 0 Frame 1 Frame 1 Frame 2 ACK ACK ACK B نیاز به شمارۀ ترتیب • در حالتهای a و b ارسال کنندۀ A به یک شکل عمل میکند • اما در حالت b گیرنده فریم 1 را دو بار دریافت میکند. • سئوال: گیرنده چطور بفهمد این فریم همان فریم 1 است؟ • پاسخ : اضافه کردن شمارۀ ترتیب در هدر • Slastشمارۀ ترتیب آخرین فریم ارسال شده است.
ارسال کنندۀ A ، ACKهای تکراری را اشتباه تفسیر میکند. اشتباهاً فکر میکند که ACK دوم برای فریم 1 است. سئوال : گیرنده چطور بفهمد ACK دوم برای فریم 0 است؟ پاسخ: اضافه کردن شمارۀ ترتیب در هدر ACK Rnextشمارۀ ترتیب فریم بعدی است که گیرنده انتظار دارد دریافت کند. به طور ضمنی دریافت تمام فریمهای قبلی را اعلام میکند. Time-out Time A Frame 0 Frame 0 Frame 2 Frame 1 ACK ACK B شمارههای ترتیب Timeout زود هنگام
t0 = total time to transmit 1 frame A tproc B frame tftime tprop tprop tproc tack مدل Stop-and-Wait bits/info frame bits/ACK frame channel transmission rate
کارایی S&W بر روی کانال بدون خطا bits for header & CRC Effective transmission rate: Transmission efficiency: Effect of frame overhead Effect of Delay-Bandwidth Product Effect of ACK frame
مثال : تأثیر حاصلضرب تأخیر – پهنای باند nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits Stop-and-Wait برای سرعتهای خیلی بالا و تأخیر انتشار بزرگ مناسب نیست.
کارایی S&W در کانال با خطا • 1 – Pf = احتمال اینکه فریم بدون خطا برسد • متوسط تعداد ارسالها برای اولین دریافت بدون خطا 1/ (1–Pf ) است. • اگر یکی از هر 10 ارسال بدون خطا برسد به ظور متوسط 10 ارسال برای موفقیت لازم است. • متوسط زمان کلی برای هر فریم برابر با t0/(1 – Pf) خواهد بود. Effect of frame loss
مثال : تأثیر نرخ خطای بیت nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits Find efficiency for random bit errors with p=0, 10-6, 10-5, 10-4 خطاهای بیت کارایی را تحت تأثیر قرار میدهد در حالی که nfp به 1 نزدیک میشود.
Go-Back-N • بهبود Stop-and-Wait توسط عدم انتظار برای ارسال • مشغول نگه داشتن کانال با ارسال بستهها به طور پیوسته • اجازۀ ارسال به اندازۀ پنجره ای به اندازۀ Wsفریم • از m بیت برای شمارۀ ترتیب استفاده میکند. • اگر ACK قدیمی ترین فریم پیش از اتمام اندارۀ پنجره برسد میتوانیم به ارسال ادامه دهیم. • اگر پنجره کامل شود ، فریمها دوباره ارسال میشوند. • پیشنهاد : استفاده از timeout
4 frames are outstanding; so go back 4 Go-Back-4: Time fr 0 fr 1 fr 2 fr 3 fr 4 fr 5 fr 3 fr 4 fr 5 fr 6 fr 6 fr 7 fr 8 fr 9 A B out of sequence frames ACK1 ACK2 ACK4 ACK5 ACK3 ACK7 ACK6 ACK9 ACK8 Rnext 0 1 2 3 3 4 5 6 7 8 9 Go-Back-N ARQ • ارسال فریمها به صورت خط لولۀ موازی انجام میشود تا کانال مشعول نگه داشته شود. • فریمهای حاوی خطا و فریمهای خارج از ترتیب نادیده گرفته میشوند. • ارسال کننده زمانی که پنجرۀ با اندازۀ 4 پر میشود ،مجبور میشود به عقب برود.
Time-out expires Stop-and-Wait ARQ Time fr 1 fr 0 fr 0 A B ACK1 Receiver is looking for Rnext=0 Four frames are outstanding; so go back 4 Go-Back-N ARQ fr 0 fr 1 fr 2 fr 3 fr 0 fr 1 fr 2 fr 3 fr 4 fr 5 fr 6 Time A B ACK1 ACK5 ACK2 ACK6 ACK4 ACK3 Receiver is looking for Rnext=0 Out-of-sequence frames اندازۀ پنجره باید به اندازۀ کافی بزرگ باشد که زمان round trip را پوشش دهد.
Go-Back-N with Timeout • مشکل Go-Back-N معرفی شده: • اگر فریم گم شود و منبع فریم برای ارسال نداشته باشد، پنجره پر نمی شود و بازیابی آغاز نمی شود. • برای هر فریم از یک timeout استفاده شود: • زمانی که timeout منقضی میشود، تمام فریمها ارسال مجدد میشوند.
Receiver Transmitter Send Window Receive Window ... Frames transmitted and ACKed Slast Srecent Slast+Ws-1 Frames received Buffers Rnext oldest un-ACKed frame Slast Timer Slast+1 Timer ... most recent transmission Srecent Timer ... max Seq # allowed Slast+Ws-1 گیرنده و فرستنده Go-Back-N گیرنده تنها فریمی که خالی از خطا باشد و شمارۀ ترتیب Rnext داشته باشد را میپذیرد. زمانی که چنین فریمی دریافت شود Rnextیکی افزایش مییابد و پنجرۀ دریافت یکی به جلو میلغزد.
Transmitter Send Window m-bit Sequence Numbering ... Frames transmitted and ACKed 0 Slast 2m – 1 1 Srecent Slast+Ws-1 2 Slast send window i i + 1 i + Ws – 1 عمل پنجرۀ لغزان ارسال کننده برای دریافت فریم ACK بدون خطا با سمارۀ ترتیب Slastمنتظر میماند. زمانی که چنین ACK ای برسد، مقدار Slastیکی افزایش مییابد و پنجرۀ ارسال یکی به جلو میلغزد.
M = 22 = 4, Go-Back-3: Transmitter goes back 3 fr 0 fr 1 fr 0 fr 2 fr 2 fr 1 Time A ACK2 ACK3 ACK1 B Receiver has Rnext= 3 , so it rejects the old frame 0 Rnext 0 1 2 3 Maximum Allowable Window Size is Ws = 2m-1 Transmitter goes back 4 M = 22 = 4, Go-Back - 4: fr 0 fr 2 fr 3 fr 1 fr 1 fr 2 fr 3 Time fr 0 A B ACK1 ACK 0 ACK2 ACK3 Receiver has Rnext= 0, but it does not know whether its ACK for frame 0 was received, so it does not know whether this is the old frame 0 or a new frame 0 Rnext 0 1 2 3 0
M = 22 = 4, Go-Back-3: Transmitter goes back 3 fr 0 fr 1 fr 0 fr 2 fr 2 fr 1 Time A ACK2 ACK3 ACK1 B Receiver has Rnext= 3 , so it rejects the old frame 0 Rnext 0 1 2 3 بزرگترین اندازۀ پنجرۀ قابل قبول Ws = 2m-1 است. Transmitter goes back 4 M = 22 = 4, Go-Back - 4: fr 0 fr 2 fr 3 fr 1 fr 1 fr 2 fr 3 Time fr 0 A B ACK1 ACK 0 ACK2 ACK3 Receiver has Rnext= 0, but it does not know whether its ACK for frame 0 was received, so it does not know whether this is the old frame 0 or a new frame 0 Rnext 0 1 2 3 0
کاربردهای Go-Back-N ARQ • HDLC(High-Level Data Link Control) : کنترل لینک دادۀ بیت-محور • مودم V.42 : کنترل خطا بر روی لینکهای تلفن
Tout Tproc Tprop Tf Tprop Tf زمان timeout و اندازۀ پنجرۀ مورد نیاز • مقدار timeout باید اجازۀ : • دو زمان انتشار + یک زمان پردازش : 2 Tprop + Tproc • یک فریم که ارسالش درست پیش از رسیدن بستۀ ما به مقصد آغاز شده است Tf • فریم بعدی ACK را حمل میکند Tf • Ws باید به اندازۀ کافی بزرگ باشد تا کانال را برای Toutمشغول نگه دارد.
اندازۀ پنجرۀ مورد نیاز برای برای Delay –Bandwidth product
کارایی روش Go-Back-N • روش GBN کاملاً کاراست اگر Ws به اندازۀ کافی بزرگ باشد که کانال را مشغول نگه دارد و کانال بدون خطا باشد. • فرض کنید احتمال Pf خطا و گم شدن برای فریمها وجود دارد، در این صورت زمان ارسال فریم برابر است با: • tf if first frame transmission succeeds (1 – Pf) • Tf + Wstf /(1-Pf) if the first transmission does not succeed Pf Delay-bandwidth product determines Ws
مثال : تأثیر نرخ خرابی بیت بر GBN nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits مقایسۀ کارایی S&W و GBN برای خطای بیت تصادفی: p = 0, 10-6, 10-5, 10-4 and R = 1 Mbps & 100 ms 1 Mbps x 100 ms = 100000 bits = 10 frames → Use Ws = 11 • بهبود قابل ملاحظۀ GBN نسبت به S&W برای Delay-bandwidth productهای بزرگ • GBN در صورت رشد نرخ خطا کارایی خود را از دست میدهد.
انتخاب تکراریSelective Repeat ARQ • GBN ARQ کارا نبود زیرا چندین فریم در صورت بروز خطا مجدداً ارسال میشدند. • روش انتخاب تکراری تنها یک فریم را دوباره ارسال میکند. • Timeout باعث میشود تنها فریم مربوطه دوباره ارسال شود. • NAK باعث ارسال مجدد قدیمی ترین فریمی که ACK نشده است میشود. • گیرنده یک پنجرۀ دریافت از شماره ترتیبهایی که میتواند دریافت کند نگه میدارد. • فریمهای بدون خطا ولی خارج از ترتیب که شماره ترتیب آنها در پنجرۀ دریافت هست بافر میشوند. • دریافت فریم با شمارۀ R باعث میشود پنجره یکی یا چند خانه به جلو بلغزد.
fr 1 fr 2 fr 0 fr 3 fr 4 fr 5 fr 2 fr 7 fr 8 fr 11 fr 6 fr 9 fr 10 fr 12 Time A B ACK2 NAK2 ACK2 ACK2 ACK7 ACK8 ACK9 ACK10 ACK11 ACK12 ACK1 ACK2 انتخاب تکراریSelective Repeat ARQ
Receiver Transmitter Receive Window Send Window ... Frames transmitted and ACKed Frames received Rnext Rnext + Wr-1 Slast Srecent Slast+ Ws-1 Buffers Buffers Slast Rnext+ 1 Timer Slast+ 1 Rnext+ 2 Timer ... ... Srecent Timer max Seq # accepted Rnext+ Wr- 1 ... Slast+ Ws - 1 انتخاب تکراریSelective Repeat ARQ
0 0 2m-1 1 2m-1 1 2 2 Rnext Slast j receive window send window i i i + 1 i + Ws– 1 j + Wr– 1 Moves k forward when ACK arrives with Rnext = Slast + k k = 1, …, Ws-1 Moves forward by 1 or more when frame arrives with Seq. # = Rnext پنجرههای ارسال و دریافت Transmitter Receiver
Frame 0 resent پنجرۀ ارسال {2} {0,1,2} {1,2} {.} fr2 fr0 fr0 fr1 A Time B ACK1 ACK2 ACK3 پنجرۀ دریافت {0,1,2} {1,2,3} {2,3,0} {3,0,1} Old frame 0 accepted as a new frame because it falls in the receive window چه سایزهایی از Ws وWr مجاز هستند؟ • Example: M=22=4, Ws=3, Wr=3
Frame 0 resent {0,1} {.} {1} fr0 fr0 fr1 A Time B ACK1 ACK2 {0,1} {1,2} {2,3} Old frame 0 rejected because it falls outside the receive window بیشترین مقدار مجاز : Ws + Wr = 2m • Example: M=22=4, Ws=2, Wr=2 پنجرۀ ارسال پنجرۀ دریافت
فرستنده فریم 0 تا Ws-1 را ارسال میکند : پنجرۀ ارسال خالی تمام آنها به گیرنده میرسد. تمام ACKها گم میشود. پنجره به {Ws,…,Ws+Wr-1} میلغزد. چرا Ws + Wr = 2m مناسب است؟ • پنجرۀ گیرنده به صورت {0, …, Wr} آغاز میشود. • گیرنده فریم 0 را رد میکند زیرا خارج از پنجرۀ گیرنده است. • فرستنده فریم 0 را مجدداً ارسال میکند. 0 0 2m-1 1 2m-1 1 Ws +Wr-1 2 Slast 2 receive window Rnext Ws send window Ws-1
کاربرد انتخاب تکراری • TCP :پروتکل لایۀ انتقال از انواع روشهای انتخاب تکراری برای ارائۀ سرویس مطمئن استفاده میکند. • پروتکلهای اتصال گرای مختص سرویس خاص: کنترل خطا برای پیغامهای سیگنالینگ در شبکههای ATM
کارایی انتخاب تکراری • فرض کنید احتمال خطا و گم شدن فریم Pf باشد بنابراین تعداد ارسالهای لازم برای انتقال یک فریم برابر است با: • tf / (1-Pf)
مثال : تأثیر نرخ خطا بر روش انتخاب تکراری nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits مقایسۀ S&W و GBN و SR برای نرخ خطای تصادفی with p=0, 10-6, 10-5, 10-4 and R= 1 Mbps & 100 ms • روش انتخاب تکراری بهتر از GBN و S&W است اما با افزایش نرخ خطا کارایی اش کاهش مییابد.
مقایسۀ کاراییهای روشهای ARQ Assume na and noare negligible relative to nf, and L = 2(tprop+tproc)R/nf=(Ws-1), then Selective-Repeat: For Pf≈0, SR & GBN same Go-Back-N: For Pf→1, GBN & SW same Stop-and-Wait:
10-9 10-8 10-7 10-6 10-5 10-4 10-3 10-2 10-1 p Delay-Bandwidth product = 10, 100 کارایی روشهای ARQ
فصل 7پروتکلهای لایۀ لینک داده پروتکلHDLC
High-Level Data Link Control (HDLC) • کنترل لینک دادۀ بیت-محور • از Synchronous Data Link Control (SDLC) مشتق شده است. • مرتبط با Link Access Procedure Balanced (LAPB) • LAPD in ISDN • LAPM in cellular telephone signaling
NLPDU Network layer Network layer “Packet” DLSAP DLSDU DLSDU DLSAP DLPDU Data link layer Data link layer “Frame” Physical layer Physical layer
Commands Primary Responses Secondary Secondary Secondary Commands Secondary Primary Responses Primary Secondary Commands Responses مودهای انتقال داده در HDLC • Normal Response Mode • Used in polling multidrop lines • Asynchronous Balanced Mode • Used in full-duplex point-to-point links • مود انتقال زمان برقراری ارتباط توافق میشود.
Flag FCS Control Information Flag Address فرمت فریم HDLC • فیلد کنترلی عملکرد HDLC را مشخص میکند. • کدهای این فیلد معانی خاص دارند: • پرچم : محدودۀ فریم را مشخص میکند. • آدرس: دومین ایستگاه را مشخص میکند.( 1 یا چند 8 تایی) • در مود ABM و یک ایستگاه میتواند به صورت اولیه یا ثانویه عمل کند و آدرس طبق آن تغییر میکند. • کنترل: هدف و عملکرد فریم ( 1 یا 2 هشتایی) • اطلاعات: شامل اطلاعات داده ، طول استاندارد نیست اما پیاده سازی بیشترین بار را دارد. • Frame Check Sequence: 16- or 32-bit CRC
Information Frame 1 2-4 5 6-8 N(R) 0 N(S) P/F Supervisory Frame 1 N(R) 0 S S P/F Unnumbered Frame 1 1 M M M M P/F M فرمت فیلد کنترل • S: Supervisory Function Bits • N(R): Receive Sequence Number • N(S): Send Sequence Number • M: Unnumbered Function Bits • P/F: Poll/final bit used in interaction between primary and secondary