logo

العودة N - بروتوكول النافذة المنزلقة

Go-Back-N (GBN) هو بروتوكول ARQ للنافذة المنزلقة الذي يسمح للمرسل بإرسال إطارات متعددة (حتى حجم نافذة محدد) دون انتظار الإقرارات الفردية.

ضرب المصفوفة في ج
  • في حالة فقدان حزمة ما أو تلفها، يقوم المرسل بإعادة إرسال تلك الحزمة وجميع الحزم اللاحقة في النافذة.
  • مثال: إذا تم إرسال الحزم من 1 إلى 5 وفقدت الحزمة 3، فسيتم إعادة إرسال الحزم 3 و4 و5.

تضمن هذه الآلية الموثوقية ولكنها قد تهدر عرض النطاق الترددي في حالة حدوث أخطاء بشكل متكرر.

السمات المميزة الثلاثة الرئيسية لـ GBN هي:



1. حجم نافذة المرسل (W ق )

إنها ن نفسها. إذا قلنا أن البروتوكول هو GB10، فإن Ws = 10. ويجب أن يكون N دائمًا أكبر من 1 من أجل تنفيذ خطوط الأنابيب. بالنسبة لـ N = 1 فإنه يقلل إلى بروتوكول التوقف والانتظار .

كفاءة GBN = N/(1+2a)

أين

أ = تصر
تص= تأخير الانتشار
تر= تأخير الإرسال من المرسل

ماذا ستكون الكفاءة إذا كان تأخير المعالجة في قائمة الانتظار وتأخير إرسال الإقرار ليس صفراً؟

الكفاءة = N * (الوقت المفيد) / (الوقت الإجمالي)

حيث الوقت المفيد=Tر

الوقت الإجمالي = Tر+ 2 * تص+ صص+ بك + تر(آك)

أين

  • ت ر = تأخير الإرسال من جانب المرسل
  • ت ص = تأخير الانتشار
  • العلاقات العامة = تأخير المعالجة
  • Pq = تأخير قائمة الانتظار
  • ت ر (آك) = تأخير إرسال الإقرار

إذا كان B هو عرض النطاق الترددي للقناة إذن

عرض النطاق الترددي الفعال أو الإنتاجية
= الكفاءة * عرض النطاق الترددي
= (ن/(1+2أ)) * ب

2. حجم نافذة جهاز الاستقبال (W ر )

  • دائما 1 في GBN.
  • يقبل جهاز الاستقبال الحزمة المتوقعة التالية فقط.
  • يتم تجاهل الحزم خارج الترتيب.

3. شكر وتقدير

الإقرارات (ACKs) هي إشارات يرسلها جهاز الاستقبال لتأكيد الاستلام الناجح لحزم البيانات. أنها تضمن التواصل الموثوق بين المرسل والمتلقي. إذا لم يتم استلام ACK خلال فترة زمنية محددة، يفترض المرسل أن الحزمة مفقودة ويعيد إرسالها.

أنواع الاك

ACK التراكمي

  • يؤكد إقرار واحد استلام كافة الحزم حتى نقطة معينة.
  • ميزة: حركة مرور أقل (عدد أقل من ACKs).
  • العيب: أقل موثوقية في حالة فقدان ACK واحد، تظهر حزم متعددة غير معترف بها.

إيك المستقلة

  • يتم التعرف على كل حزمة على حدة.
  • ميزة: موثوقية عالية.
  • العيب: ارتفاع حركة المرور بسبب المزيد من ACKs.

عمل بروتوكول GB-N

صفحة الإرسال

  • يحافظ على نافذة بحجم N (على سبيل المثال، حجم نافذة GB4 = 4).
  • يمكن إرسال ما يصل إلى N من الحزم غير المعترف بها.
  • تحتوي كل حزمة مرسلة على مؤقت.
  • إذا تم استلام ACK، تنزلق النافذة للأمام.
  • في حالة انتهاء المهلة (لحزمة مفقودة)، يقوم المرسل بإعادة إرسال تلك الحزمة وجميع الحزمة اللاحقة في النافذة.

جهة الاستقبال

  • يحافظ على حجم النافذة 1 (WR = 1).
  • يقبل فقط الحزمة المتوقعة بالتسلسل.
  • في حالة وصول الحزمة الصحيحة: يرسل ACK وينتقل إلى الرقم التسلسلي المتوقع التالي.
  • في حالة وصول حزمة خارج الترتيب: قم بتجاهلها وإعادة إرسال ACK لآخر حزمة تم استلامها بشكل صحيح.
Sliding_SET_2-1' title=

العلاقة بين حجم النافذة والأرقام التسلسلية

ال حجم النافذة و أرقام التسلسل في بروتوكول النافذة المنزلقة مثل Go-Back-N أو Selective Repeat ترتبط ارتباطًا وثيقًا.

  • ال حجم النافذة يحدد عدد الحزم التي يمكن للمرسل إرسالها دون الحاجة إلى إقرار بالاستلام. إنه بمثابة حد لكمية البيانات التي يمكن إرسالها قبل أن يتوقف المرسل وينتظر التأكيد.
  • أرقام التسلسل تُستخدم لتسمية الحزم حتى يعرف المتلقي ترتيبها ويمكنه اكتشاف أي حزم مفقودة.

ال حجم النافذة يجب أن يكون أصغر من أو يساوي النطاق المتاح أرقام التسلسل . إذا كان حجم النافذة كبيرًا جدًا مقارنة بنطاق الرقم التسلسلي، فقد يرتبك جهاز الاستقبال لأنه يمكن إعادة استخدام نفس الرقم التسلسلي قبل التعرف على الرقم الأول. وهذا من شأنه أن يجعل من الصعب معرفة ما إذا كانت الحزمة جديدة أم مكررة.

يتم إعطاء العلاقة بين حجم النافذة ورقم التسلسل بواسطة الصيغة:

فيق+ دبليور<= ASN

حيث دبليوقهو حجم نافذة المرسل وWرهو حجم نافذة جهاز الاستقبال ورقم ASN هو الرقم التسلسلي المتوفر.

فيق+ 1<= ASN because Wر= 1 في بروتوكول GB-N

لذا فإن الحد الأدنى من أرقام التسلسل المطلوبة في GBN = N + 1

البتات المطلوبة في GBN = ⌈ سجل2(ن+1)⌉

الرقم 1 الإضافي مطلوب لتجنب مشكلة الحزم المكررة.

مثال على بروتوكول GB-N

النظر في مثال GB4.

استثناء مخصص في Java
  • حجم نافذة المرسل هو 4، لذلك نطلب ما لا يقل عن 4 أرقام تسلسلية لتسمية كل حزمة في النافذة.
  • لنفترض الآن أن جهاز الاستقبال قد تلقى جميع الحزم (0 1 2 و 3 مرسلة من قبل المرسل) وبالتالي ينتظر الآن الحزمة رقم 0 مرة أخرى (لا يمكننا استخدام 4 هنا لأن لدينا 4 أرقام تسلسلية فقط متاحة منذ N = 4).
  • لنفترض الآن أن الإقرار التراكمي للحزم الأربع المذكورة أعلاه قد فقد في الشبكة.
  • من جانب المرسل، ستكون هناك مهلة للحزمة 0، وبالتالي سيتم إرسال جميع الحزم الأربع مرة أخرى.
  • المشكلة الآن هي أن جهاز الاستقبال ينتظر مجموعة جديدة من الحزم التي كان من المفترض أن تبدأ من 0 ولكنه الآن سيتلقى النسخ المكررة من الحزم المقبولة مسبقًا.
  • ولتجنب ذلك، نحتاج إلى رقم تسلسلي إضافي.
  • الآن يمكن لجهاز الاستقبال أن يرفض بسهولة جميع الحزم المكررة التي كانت تبدأ من 0 لأنه الآن سينتظر الحزمة رقم 4 (لقد أضفنا رقم تسلسل إضافي الآن).

يتم شرح ذلك بمساعدة الرسوم التوضيحية أدناه. محاولة مع أرقام التسلسل 4.

Sliding_SET_2-3' loading='lazy' title=

حاول الآن برقم تسلسلي إضافي.

Sliding_SET_2-4' loading='lazy' title=

أصبح من الواضح الآن سبب حاجتنا إلى 1 بت إضافية في بروتوكول GBN.

مزايا بروتوكول GBN

  • سهلة التنفيذ وفعالة للتواصل الموثوق.
  • أداء أفضل من بروتوكولات التوقف والانتظار لشبكات خالية من الأخطاء أو منخفضة الأخطاء.

عيوب بروتوكول GBN

  • غير فعال إذا كانت الأخطاء متكررة حيث قد يلزم إعادة إرسال إطارات متعددة دون داع.
  • يمكن إهدار النطاق الترددي بسبب عمليات إعادة الإرسال الزائدة.
إنشاء اختبار