شبكات لأكثر المحنكين. الجزء الخامس عشر. جودة الخدمة

SDSM-15. حول جودة الخدمة. الآن مع إمكانية سحب الطلبات .

وهكذا وصلنا إلى موضوع جودة الخدمة.

هل تعرف لماذا الآن فقط ولماذا ستكون المقالة الختامية لدورة SDSM بأكملها؟ لأن جودة الخدمة معقدة بشكل غير عادي. أصعب شيء كان من قبل في الدورة.

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

إن QoS متشابكة للغاية مع هالة الشامانية وعدم القدرة على الوصول لدرجة أن جميع المهندسين الشباب (وليس فقط) يحاولون تجاهل وجودها بعناية ، معتقدين أنه يكفي لإلقاء مشاكل في المال ، وتوسيع الروابط إلى ما لا نهاية. صحيح ، حتى يدركوا أنه مع هذا النهج ، سينتظرهم الفشل حتمًا. إما أن يبدأ العمل بطرح أسئلة غير مريحة ، أو ستكون هناك الكثير من المشاكل التي لا تتعلق تقريبًا بعرض القناة ، ولكنها تعتمد بشكل مباشر على كفاءة استخدامها. نعم ، VoIP يلوح بنشاط بقلم من وراء الكواليس ، وتضربك حركة مرور الإرسال المتعدد بشكل ضار على ظهرك.

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




المحتويات


1. ما الذي يحدد جودة الخدمة؟

  • الخسارة
  • التأخير
  • غضب

2. ثلاثة نماذج لجودة الخدمة

  • أفضل المؤثرات
  • الخدمات المتكاملة
  • خدمات متنوعة

3. آليات DiffServ

4. التصنيف والتوسيم

  • تجمع السلوك
  • متعدد المجالات
  • قائم على الواجهة

5. قوائم الانتظار

6. تجنب الازدحام

  • قطرة الذيل وإسقاط الرأس
  • أحمر
  • محروم

7. إدارة الازدحام

  • أولا ، أولا
  • طابور الأولوية
  • طابور عادل
  • روبن مستدير

8. الحد الأقصى للسرعة

  • تشكيل
  • الشرطة
  • دلو متسرب ودلو رمزي

9. تنفيذ الأجهزة لجودة الخدمة


قبل أن يغوص القارئ في هذه الحفرة ، سأضع ثلاثة إعدادات فيها:

  • لا يمكن حل جميع المشاكل عن طريق توسيع النطاق.
  • لا يقوم QoS بتوسيع النطاق.
  • جودة الخدمة حول إدارة الموارد المحدودة.

1. ما الذي يحدد جودة الخدمة؟


تتوقع الشركة من مكدس الشبكة أن يؤدي وظيفته البسيطة على ما يرام - لتقديم تدفق بت من مضيف إلى آخر: بدون خسارة وفي وقت متوقع.

من هذه الجملة القصيرة ، يمكن اشتقاق جميع مقاييس جودة الشبكة:

  • الخسارة
  • التأخير
  • غضب

تحدد هذه الخصائص الثلاثة جودة الشبكة بغض النظر عن طبيعتها: الحزمة والقناة و IP و MPLS والراديو والحمام .

الخسارة


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

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



كيفية إدارة الخسائر ، إذا كانت حتمية ، في فصل إدارة الازدحام.

كيفية الاستفادة من الخسائر في فصل منع الازدحام.

التأخير


هذا هو الوقت الذي تحتاج فيه البيانات للانتقال من المصدر إلى الوجهة.



يتكون التأخير التراكمي من المكونات التالية.

  • تأخير التسلسل - الوقت الذي تستغرقه العقدة لتحليل الحزمة إلى أجزاء ووضع رابط للعقدة التالية. يتم تحديده من خلال سرعة الواجهة. لذا ، على سبيل المثال ، فإن نقل حزمة بحجم 1500 بايت من خلال واجهة تبلغ 100 ميجابت / ثانية سيستغرق 0.0001 ثانية ، و 56 كيلوبت / ثانية - 0.2 ثانية.
  • تأخر الانتشار هو نتيجة الحد الشائع لسرعة انتشار الموجات الكهرومغناطيسية. لا تسمح لك الفيزياء بالانتقال من نيويورك إلى تومسك على سطح الكوكب بشكل أسرع من 30 مللي ثانية (في الواقع ، حوالي 70 مللي ثانية).
  • التأخيرات التي قدمتها QoS هي ضعف الحزم في قوائم الانتظار ( تأخير انتظار ) ونتائج التشكيل ( تأخير التشكيل). سنتحدث عن هذا كثيرًا اليوم في فصل التحكم في السرعة.
  • التأخير في حزم المعالجة ( تأخير المعالجة ) - الوقت المناسب لتحديد ما يجب فعله مع الحزمة: البحث ، ACL ، NAT ، DPI - وتسليمها من واجهة الإدخال إلى الإخراج. ولكن في اليوم الذي فصلت جونيبر بين التحكم وطائرة البيانات في M40 ، يمكن إهمال تأخيرات المعالجة.

التأخيرات ليست سيئة للغاية بالنسبة للتطبيقات التي لا توجد فيها حاجة للتسرع: مشاركة الملفات ، التصفح ، VoD ، محطات راديو الإنترنت ، إلخ. على العكس من ذلك ، فهي حاسمة للتفاعلية: 200 مللي ثانية غير سارة بالفعل عن طريق الأذن أثناء محادثة هاتفية.

مصطلح مرتبط بالتأخير ليس مرادفًا لـ RTT ( وقت رحلة ذهاب وعودة) هو رحلة ذهاب وإياب. عند تنفيذ الأمر ping والتتبع ، ترى RTT بالضبط ، وليس تأخيرًا أحادي الاتجاه ، على الرغم من أن القيم لها ارتباط.

غضب


يسمى الفرق في التأخير بين تسليم الحزم المتتالية بالارتعاش.



مثل الكمون ، لا يهم التشويه للعديد من التطبيقات. وحتى ، على ما يبدو ، ما هو الفرق - تم تسليم الحزمة ، فماذا بعد؟

ومع ذلك ، بالنسبة للخدمات التفاعلية من المهم.

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

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



هذه هي الخصائص الرئيسية الثلاثة لجودة الشبكة ، ولكن هناك نوعان آخران يلعبان أيضًا دورًا مهمًا.

تسليم عشوائي


يعد عدد من التطبيقات ، مثل المهاتفة و NAS و CES ، حساسة للغاية للتسليم العشوائي للحزم عند وصولها إلى المستلم بترتيب خاطئ تم إرسالها فيه. يمكن أن يؤدي ذلك إلى فقدان الاتصال والأخطاء وإتلاف نظام الملفات.

على الرغم من أن التسليم العشوائي ليس ميزة رسمية لجودة الخدمة ، إلا أنه يشير بالتأكيد إلى جودة الشبكة.

حتى مع وجود TCP متسامح مع هذا النوع من المشاكل ، يحدث تكرار ACK وعمليات إعادة الإرسال.



عرض النطاق الترددي


لا يتم تمييزه كمقياس لجودة الشبكة ، نظرًا لأن عيبه في الواقع ينتج عنه الثلاثة المذكورة أعلاه. ومع ذلك ، في واقعنا ، عندما يجب ضمانه لبعض التطبيقات أو ، على العكس من ذلك ، يجب أن يكون محدودًا بموجب العقد ، على سبيل المثال ، تحتفظ MPLS TE به طوال LSP ، يجدر ذكره ، على الأقل كمقياس ضعيف.
سيتم مناقشة آليات التحكم في السرعة في فصول حدود السرعة.



لماذا يمكن أن تسوء المواصفات؟

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



ثم تطير جميع الحزم بنفس الترتيب الذي وصلت به ولا تواجه أي تأخيرات إضافية - لا يوجد مكان للبقاء فيه.

ولكن في الواقع ، يستعيد كل جهاز توجيه الأجزاء والحزم من الإشارة ، ويفعل شيئًا معهم (لا نفكر في ذلك بعد) ثم يحول الحزم مرة أخرى إلى إشارة.

يظهر تأخير التسلسل. لكن بشكل عام ، هذا ليس مخيفًا لأنه ثابت. ليس مخيفًا طالما أن عرض واجهة الإخراج أكبر من الإدخال.

على سبيل المثال ، عند مدخل الجهاز يوجد منفذ جيجابت ، وعند الإخراج يوجد خط ترحيل راديو 620 ميجا بت / ثانية متصل بنفس منفذ جيجابت؟

لا أحد سيمنع رصاصة من خلال حركة المرور جيجابت الارتباط جيجابت رسميا.
لا يوجد شيء يتعين القيام به - سوف يمتد 380 ميجا بت / ثانية على الأرض.

ها هم - خسائر.

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

أود أن يكون للصوت خط مخصص.

أو هناك خمس واجهات إدخال ، ولكن خرج واحد ، وفي الوقت نفسه بدأت خمس عقد في محاولة ضخ حركة المرور إلى مستلم واحد.

أضف قليلًا من نظرية VoIP (مقالة لم يكتب عنها أحد) - فهي حساسة جدًا للتأخيرات واختلافاتها.

إذا كان هناك دفق TCP من الفيديو من youtube (في وقت كتابة مقال QUIC - لا تزال تجربة) ، فإن التأخير حتى في ثوانٍ لا قيمة له تمامًا بسبب التخزين المؤقت ، فإن المدير بعد أول محادثة من هذا القبيل مع Kamchatka سيتصل برئيس القسم الفني.
في العصور القديمة ، عندما كان مؤلف الدورة لا يزال يؤدي واجبه المنزلي في المساء ، كانت المشكلة حادة بشكل خاص. كانت اتصالات المودم بسرعة 56 كيلو .

وعندما دخلت حزمة 1.5K في مثل هذا الاتصال ، احتلت الخط بأكمله لمدة 200 مللي ثانية. لا أحد يستطيع المرور في هذه اللحظة. صوت؟ لا ، لم اسمع.

لذلك ، فإن سؤال MTU مهم للغاية - يجب ألا تحتل الحزمة الواجهة لفترة طويلة. كلما كانت السرعة أقل ، كانت هناك حاجة إلى MTU أقل.

ها هم - التأخير.

الآن القناة مجانية والتأخير منخفض ، بعد أن بدأ شخص آخر في تنزيل ملف كبير وزاد التأخير. ها هو - غضب.

وبالتالي ، من الضروري أن تطير الحزم الصوتية عبر الأنبوب بأقل قدر من التأخير ، وسوف ينتظر YouTube.

يجب استخدام 620 ميجابايت / ثانية المتاحة للصوت والفيديو وللعملاء B2B الذين يشترون شبكات VPN. أود أن حركة المرور لا تضطهد الأخرى ، لذا نحتاج إلى ضمان الفرقة.



جميع الخصائص المذكورة أعلاه عالمية فيما يتعلق بطبيعة الشبكة. ومع ذلك ، هناك ثلاث طرق مختلفة لتقديمها.

2. ثلاثة نماذج لجودة الخدمة


  • أفضل جهد - لا يوجد ضمان للجودة. الجميع متساوون.
  • IntServ هو ضمان الجودة لكل دفق. حجز الموارد من المصدر إلى الوجهة.
  • DiffServ - لا يوجد حجز. تحدد كل عقدة نفسها كيفية ضمان الجودة الصحيحة.

أفضل جهد (BE)


لا ضمانات.

أبسط نهج لتطبيق جودة الخدمة (QoS) ، التي بدأت منها شبكات IP ولا تزال تُمارس حتى يومنا هذا - أحيانًا لأنها كافية ، ولكن في كثير من الأحيان لأنه لم يفكر أحد في جودة الخدمة.

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

في حالة BE ، تكون جميع فئات الحركة متساوية ؛ ولا يتم منح أي تفضيل لأي منها. وبناءً على ذلك ، لا يوجد ضمان لأي تأخير / غضب أو نطاق.

هذا النهج له اسم غير بديهي إلى حد ما - أفضل جهد ، والذي يضلل الوافد الجديد بكلمة "أفضل".

ومع ذلك ، فإن عبارة "سأبذل قصارى جهدي" تعني أن المتحدث سيحاول القيام بكل ما في وسعه ، ولكنه لا يضمن أي شيء.

لا شيء مطلوب لتطبيق BE - هذا هو السلوك الافتراضي. إنه رخيص الثمن للتصنيع ، ولا يحتاج الموظفون إلى معرفة محددة عميقة ، ولا يمكن تخصيص جودة الخدمة في هذه الحالة.

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

على سبيل المثال ، على الخطوط العابرة للقارات أو في شبكات بعض مراكز البيانات التي لا يوجد فيها زيادة في الاشتراك.
بمعنى آخر ، في الشبكات التي لا تحتوي على ازدحام وحيث لا توجد حاجة إلى الاتصال بأي حركة مرور (على سبيل المثال ، الاتصالات الهاتفية) بطريقة خاصة ، يكون BE مناسبًا تمامًا.

Interv


حجز مسبق للموارد للتدفق من المصدر إلى الوجهة.

قرر آباء شبكات MIT و Xerox و ISI إضافة عنصر قابلية التنبؤ إلى الإنترنت العشوائي المتنامي ، مع الحفاظ على قابليته للتشغيل والمرونة.

لذلك في عام 1994 ، ولدت فكرة IntServ استجابة للنمو السريع لحركة المرور في الوقت الحقيقي وتطوير البث المتعدد. ثم تم تخفيضه إلى IS.

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

تم تعيين مهمة النسخ الاحتياطي لبروتوكول RSVP ، الذي يحتفظ لكل دفق بنطاق على كل جهاز شبكة.

بشكل تقريبي ، قبل إعداد جلسة MarkerP أحادية اللون ذات معدل واحد أو بدء تبادل البيانات ، يرسل المضيفون النهائيون مسار RSVP مع النطاق الترددي المطلوب. وإذا عاد كلاهما RSVP Resv - فيمكنهما بدء الاتصال. في الوقت نفسه ، إذا لم تكن هناك موارد متاحة ، فإن RSVP يُرجع خطأ ولا يمكن للمضيفين التواصل أو متابعة BE.

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

بمعنى ما ، فإن التجسيد الحديث لـ IntServ هو MPLS TE مع إصدار وسم ملائم لـ RSVP - RSVP TE. على الرغم من أنه هنا ، بالطبع ، ليس من البداية إلى النهاية وليس لكل تدفق.

يوصف IntServ في RFC 1633 .
الوثيقة ، من حيث المبدأ ، فضولية لتقييم مدى السذاجة التي يمكن أن تكون في التوقعات.

ديف سيرف


معقدة DiffServ.

عندما أصبح من الواضح في أواخر التسعينات أن نهج IntServ IP فشل ، عقد IETF مجموعة عمل الخدمات المتباينة في عام 1997 ، والتي وضعت المتطلبات التالية لنموذج QoS الجديد:

  • لا إشارات (Adjos ، RSVP!).
  • بناءً على تصنيف حركة المرور المجمعة ، بدلاً من التركيز على التدفقات والعملاء وما إلى ذلك.
  • لديها مجموعة محدودة ومحددة من الإجراءات لمعالجة حركة بيانات الفئات.

ونتيجة لذلك ، وُلد معلم RFC 2474 ( تعريف مجال الخدمات المتمايزة (حقل DS) في عناوين IPv4 و IPv6 ) و RFC 2475 ( بنية للخدمات المتمايزة ) في عام 1998.

وعلاوة على ذلك سوف نتحدث فقط عن DiffServ.

تجدر الإشارة إلى أن اسم DiffServ ليس نقيض IntServ. ويعكس ذلك أننا نميز بين الخدمات التي تقدمها التطبيقات المختلفة ، أو بالأحرى حركة المرور الخاصة بها ، وبعبارة أخرى ، فإننا نشارك / نميز هذه الأنواع من حركة المرور.
يقوم IntServ بنفس الشيء - فهو يميز بين أنواع حركة المرور BE و Real-Time ، المرسلة على نفس الشبكة. على حد سواء: و IntServ و DiffServ - تشير إلى طرق التمييز بين الخدمات.



3. آليات DiffServ


ما هو DiffServ ولماذا تغلب على IntServ؟

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

لكن الأمر لن يكون كذلك .

في قلب DiffServ هو مفهوم IP IP PHB المخضرم بشكل مثالي - Per-Hop Behavior . تتخذ كل عقدة في مسار حركة المرور قرارًا بشكل مستقل حول كيفية التصرف بالنسبة إلى الحزمة الواردة ، بناءً على رؤوسها.

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

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


يتم تحديد نموذج السلوك من خلال مجموعة من الأدوات ومعلماتها: الشرطة ، والإسقاط ، والانتظار ، والجدولة ، والتشكيل.

باستخدام نماذج السلوك المتاحة ، يمكن للشبكة توفير فئات مختلفة من الخدمة ( فئة الخدمة ).

أي أن فئات مختلفة من حركة المرور يمكن أن تتلقى مستويات مختلفة من الخدمة على الشبكة من خلال تطبيق PHBs مختلفة عليها.

وفقًا لذلك ، تحتاج أولاً إلى تحديد فئة حركة الخدمة التي تشير - التصنيف .

تصنف كل عقدة بشكل مستقل الحزم الواردة.



بعد التصنيف ، يحدث قياس ( قياس ) - عدد البتات / البايتات لحركة المرور من هذه الفئة التي وصلت إلى جهاز التوجيه.

استنادًا إلى النتائج ، يمكن طلاء الحزم ( التلوين ): أخضر (داخل الحد المحدد) ، أصفر (خارج الحد) ، أحمر (سحرت بالكامل الساحل).



إذا لزم الأمر ، يتم ضبط الأمن (آسف لورقة البحث هذه ، فهناك خيار أفضل - الكتابة ، سأتغير). يقوم الملمع بناءً على لون الحزمة بتعيين إجراء للحزمة - إرسال أو تجاهل أو إعادة وضع علامة.



بعد ذلك ، يجب أن تقع الحزمة في أحد قوائم الانتظار ( قائمة الانتظار ). يتم تخصيص قائمة انتظار منفصلة لكل فئة خدمة ، مما يسمح بالتمييز بينها باستخدام PHBs مختلفة.

ولكن حتى قبل دخول الحزمة إلى قائمة الانتظار ، يمكن إسقاطها ( Dropper ) إذا كانت قائمة الانتظار ممتلئة.

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



عند الخروج من قائمة الانتظار ، يعمل المشكل ، ومهمته تشبه إلى حد كبير مهمة البوليستر - للحد من حركة المرور إلى قيمة معينة.

يمكنك تكوين الأشكال العشوائية لقوائم الانتظار الفردية ، أو حتى داخل قوائم الانتظار.
على الفرق بين المشكل والبوليستر في الفصل Speed ​​Limit.

يجب أن تدمج جميع قوائم الانتظار في النهاية في واجهة إخراج واحدة.

تذكر الوضع عندما تندمج 8 ممرات على الطريق إلى 3. بدون تحكم حركة المرور ، يتحول هذا إلى فوضى. لن يكون الفصل بالتناوب منطقيًا إذا كان لدينا نفس الناتج مثل المدخلات.

لذلك ، هناك مرسل خاص ( المجدول ) ، الذي يأخذ دوريًا الحزم من قوائم الانتظار المختلفة ويرسلها إلى الواجهة ( الجدولة ).

في الواقع ، تعد مجموعة من قوائم الانتظار والمرسل هي أهم آلية QoS التي تسمح لك بتطبيق قواعد مختلفة على فئات مختلفة من حركة المرور ، واحدة توفر نطاقًا تردديًا واسعًا ، والآخر منخفض الكمون ، والثالث نقص في السقوط.

ثم تذهب الحزم بالفعل إلى الواجهة ، حيث يتم تحويل الحزم إلى دفق بت - التسلسل ( التسلسل ) ثم إشارة البيئة.



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

لهذا ، أولاً ، على جميع أجهزة التوجيه ، يتم تكوين نفس الفئات و PHB ، وثانيًا ، يتم استخدام تمييز الحزمة - يتم تسجيل انتمائها لفئة معينة في الرأس (IP ، MPLS ، 802.1q).

وجمال DiffServ هو أن العقدة التالية يمكن أن تعتمد على هذا التصنيف للتصنيف.

تسمى منطقة الثقة هذه ، التي تنطبق عليها نفس قواعد تصنيف حركة المرور ونفس السلوكيات ، مجال DiffServ ( DiffServ-Domain ).



وبالتالي ، عند مدخل نطاق DiffServ ، يمكننا تصنيف حزمة استنادًا إلى 5-Tuple أو واجهة ، ووضع علامة عليها ( Remark / Rewrite ) وفقًا لقواعد المجال ، وستثق العقد الأخرى في هذه العلامة ولن تصنف تصنيفًا معقدًا.
أي أنه لا توجد إشارات صريحة في DiffServ ، ولكن العقدة يمكن أن تخبر كل الفئات التالية التي تحتاج إلى توفير هذه الحزمة ، في انتظار الثقة بها.

عند الوصلات بين نطاقات DiffServ ، تحتاج إلى التفاوض على سياسات جودة الخدمة (أو لا).

ستبدو الصورة كاملة على النحو التالي:


لتوضيح الأمر ، سأعطي نظيرًا من الحياة الواقعية.
الطيران بالطائرة (وليس النصر).
هناك ثلاث فئات للخدمة (CoS): الاقتصاد ، والأعمال التجارية ، أولاً.
عند شراء تذكرة ، يتم التصنيف - يحصل الراكب على فئة معينة من الخدمة بناءً على السعر.
يوجد في المطار علامة (ملاحظة) - يتم إصدار تذكرة تشير إلى الفئة.
هناك سلوكان (PHBs): أفضل جهد و Premium.
هناك آليات تنفذ السلوكيات: غرفة انتظار مشتركة أو صالة VIP ، حافلة صغيرة أو حافلة مشتركة ، مقاعد كبيرة مريحة أو صفوف ضيقة ، عدد الركاب لكل مضيفة طيران ، القدرة على طلب الكحول.
اعتمادًا على الفئة ، يتم تعيين نماذج السلوك - إلى اقتصاد أفضل جهد ، إلى الأعمال - Premium الأساسية ، والأول - Premium SUPER-POWER-NINJA-TURBO-NEO-ULTRA-HYPER-MEGA-MULTI-ALPHA-META-EXTRA-UBER-PREFIX!
في نفس الوقت ، يختلف اثنان من الأقساط في ذلك ، في أحدهما يقدمان كوبًا من نصف حلو ، وفي الآخر لديهم عدد غير محدود من Bacardi.

ثم ، عند الوصول إلى المطار ، يأتي الجميع من باب واحد. أولئك الذين حاولوا إحضار أسلحة معهم أو ليس لديهم تذكرة لا يُسمح لهم (إسقاط). يدخل رجال الأعمال والاقتصاد إلى غرف انتظار مختلفة ووسائل نقل مختلفة (قائمة انتظار). أولاً سمحوا بدخول الدرجة الأولى على متن الطائرة ، ثم الأعمال ، ثم الاقتصاد (الجدولة) ، ولكن بعد ذلك سافروا جميعًا إلى وجهتهم بطائرة واحدة (واجهة).

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

يمكن للمطار التالي التعامل مع الركاب بطريقة مختلفة تمامًا - حيث يختلف PHB الخاص به. ولكن في الوقت نفسه ، إذا لم يغير الراكب شركة الطيران ، فمن المرجح أن الموقف تجاهه لن يتغير ، لأن شركة واحدة هي نطاق DiffServ واحد.
كما لاحظت ، DiffServ معقد للغاية (أو إلى ما لا نهاية). لكننا سنحلل كل شيء موصوف أعلاه. في الوقت نفسه ، في المقالة ، لن أخوض في الفروق الدقيقة في التنفيذ المادي (يمكن أن تختلف حتى على لوحتين من نفس جهاز التوجيه) ، لن أتحدث عن HQoS و MPLS DS-TE.

عتبة دخول دائرة المهندسين الذين يفهمون تقنية QoS أعلى بكثير من بروتوكولات التوجيه ، MPLS ، أو سامحني ، Radya ، STP.

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

طوال بقية هذا المقال ، سأقوم بتحليل DiffServ فقط.

أدناه سنقوم بتحليل جميع الأدوات والعمليات المشار إليها في الرسم التوضيحي.





في سياق توسيع الموضوع ، سأعرض بعض الأشياء في الممارسة.
سنعمل مع هذه الشبكة:



Trisolarans هو عميل موفر linkmeup مع نقطتي اتصال.

المنطقة الصفراء هي نطاق DiffServ لشبكة linkmeup ، حيث يتم تطبيق سياسة QoS واحدة.
Linkmeup_R1 هو جهاز CPE تتم إدارته بواسطة الموفر ، وبالتالي في منطقة موثوق بها. يتم رفع OSPF معه ويتم التفاعل من خلال IP نظيف.

يوجد في صميم الشبكة MPLS + LDP + MP-BGP مع L3VPN ، الممتدة من Linkmeup_R2 إلى Linkmeup_R4.
سأقدم كل التعليقات الأخرى حسب الضرورة.

ملف التكوين الأولي .



4. التصنيف والتوسيم


داخل شبكته ، يحدد المسؤول فئات الخدمة التي يمكنه توفيرها لحركة المرور.

لذلك ، فإن أول شيء تفعله كل عقدة عندما تتلقى حزمة هو تصنيفها.

هناك ثلاث طرق:

  1. مجموع السلوك ( بكالوريوس )
    فقط ثق في تسمية الحزمة الموجودة في رأسها. على سبيل المثال ، حقل IP DSCP.
    يطلق عليه ذلك لأنه تحت نفس التسمية في حقل DSCP يتم تجميع فئات مختلفة من حركة المرور التي تتوقع نفس السلوك فيما يتعلق بأنفسهم. على سبيل المثال ، سيتم تجميع جميع جلسات SIP في فصل واحد.

    عدد فئات الخدمة المحتملة ، وبالتالي أنماط السلوك ، محدودة. وفقًا لذلك ، من المستحيل لكل فئة (أو أكثر من ذلك بالنسبة للتيار) فصل فئة منفصلة - من الضروري التجميع.
  2. قائم على الواجهة
    يجب وضع كل ما يتعلق بواجهة معينة في فئة حركة مرور واحدة. على سبيل المثال ، نحن على يقين من أن خادم قاعدة البيانات متصل بهذا المنفذ وليس أكثر. وفي محطة عمل موظف آخر.
  3. MultiField ( MF )
    تحليل حقول رأس الحزمة - عناوين IP والمنافذ وعناوين MAC. بشكل عام ، المجالات التعسفية.

    على سبيل المثال ، يجب وضع علامة على كل حركة المرور التي تذهب إلى الشبكة الفرعية 10.127.721.0/24 على المنفذ 5000 كحركة مرور ، وتتطلب بشكل مشروط الفئة الخامسة من الخدمة.

يحدد المسؤول مجموعة فئات الخدمة التي يمكن أن توفرها الشبكة ، ويعينها بعض القيمة الرقمية.

عند مدخل مجال DS ، لا نثق في أي شخص ، لذلك يتم إجراء التصنيف بالطريقة الثانية أو الثالثة: بناءً على العناوين والبروتوكولات أو الواجهات ، يتم تحديد فئة الخدمة والقيمة الرقمية المقابلة.

عند الخروج من العقدة الأولى ، يتم ترميز هذا الرقم في حقل DSCP لرأس IP (أو حقل آخر من فئة حركة المرور: فئة حركة MPLS ، فئة حركة مرور IPv6 ، إيثرنت 802.1p) - تحدث ملاحظة.

من المعتاد الوثوق بهذا التصنيف داخل نطاق DS ، وبالتالي ، تستخدم نقاط العبور طريقة التصنيف الأولى (BA) - وهي أبسط طريقة. لا يوجد تحليل عنوان معقد ، فقط انظر إلى الرقم المسجل.

عند تقاطع مجالين ، يمكنك التصنيف استنادًا إلى واجهة أو MF ، كما وصفت أعلاه ، أو يمكنك الوثوق في علامة BA مع التحفظات.

على سبيل المثال ، ثق في جميع القيم باستثناء 6 و 7 ، وأعد تعيين 6 و 7 إلى 5.

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



تجمع السلوك


تستخدم مكتبة الإسكندرية تصنيفًا بسيطًا جدًا - أرى رقمًا - أفهم الفصل.
إذن ما هو الرقم؟ وفي أي مجال يتم تسجيله؟

  • فئة مرور IPv6
  • فئة الحركة MPLS
  • إيثرنت 802.1p

يعتمد التصنيف بشكل أساسي على رأس الاستبدال.

أسمي رأس التنقل بناءً على ذلك يحدد الجهاز مكان إرسال الحزمة بحيث يصبح أقرب إلى المستلم.
بمعنى ، إذا وصلت حزمة IP إلى جهاز التوجيه ، فسيتم تحليل رأس IP وحقل DSCP. في حالة وصول MPLS ، يتم تحليلها - فئة حركة مرور MPLS.

إذا وصلت حزمة Ethernet + VLAN + MPLS + IP إلى مفتاح L2 عادي ، فسيتم تحليل 802.1p (على الرغم من إمكانية تغيير ذلك).

شروط استخدام IPv4


يرافقنا مجال جودة الخدمة تمامًا مثل IP. كان من المفترض أن يحمل حقل TOS ذي الثماني بتات - نوع الخدمة - أولوية الحزمة.

حتى قبل ظهور DiffServ ، وصف RFC 791 ( بروتوكول الإنترنت ) المجال مثل هذا:

أسبقية IP (IPP) + DTR + 00.



أي أن أولوية الحزمة تذهب ، ثم بتات الدقة في التأخير ، الإنتاجية ، الموثوقية (0 - بدون متطلبات ، 1 - مع المتطلبات).

يجب أن تكون البتتان الأخيرتان صفر.

تحدد الأولوية القيم التالية ...
111 - التحكم بالشبكة
110 - التحكم في الشبكة الداخلية
101 - CRITIC / ECP
100 - تجاوز الفلاش
011 - فلاش
010 - فوري
001 - الأولوية
000 - روتين

لاحقًا في RFC 1349 ( نوع الخدمة في مجموعة بروتوكول الإنترنت ) ، تم إعادة تعريف حقل TOS قليلاً:



بقيت البتات الثلاثة اليسرى أولوية IP ، تحولت الأربعة التالية إلى TOS بعد إضافة بت التكلفة.

إليك كيفية قراءة الوحدات في وحدات TOS هذه:

  • D - "تقليل d elay" ،
  • T - "زيادة الحد الأقصى للحجم" ،
  • R - "تحقيق أقصى قدر من الموثوقية" ،
  • ج - "التقليل إلى أدنى حد ممكن".

لم تساهم الأوصاف الضبابية في شعبية هذا النهج.

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

لذلك ، في سياق DiffServ ، تمت إعادة تعريف حقل TOS مرة أخرى في RFC 2474 ( تعريف مجال الخدمات المتمايزة (حقل DS) في عناوين IPv4 و IPv6 ):



بدلاً من بتات IPP و DTRC ، تم إدخال DSCP للحقل المكون من ستة بتات - نقطة رمز الخدمات المتمايزة ، ولم يتم استخدام البتتين الأيمن.

منذ تلك اللحظة ، كان حقل DSCP هو الذي كان يجب أن يصبح العلامة الرئيسية لـ DiffServ: يتم كتابة قيمة (رمز) معينة فيه ، والتي تميز داخل نطاق DS فئة الخدمة المحددة التي تتطلبها الحزمة وأولوية إسقاطها. هذا هو نفس الرقم.

يمكن للمسؤول استخدام كل 6 بت من DSCP كما يراه مناسبًا ، ومشاركة ما يصل إلى 64 فئة خدمة كحد أقصى.

ومع ذلك ، من أجل التوافق مع IP Preedence ، احتفظوا بدور Class Selector للبتات الثلاثة الأولى.

أي ، كما هو الحال في IPP ، تسمح لك 3 بتات من Class Selector بتحديد 8 فئات.



ومع ذلك ، لا يزال هذا ليس أكثر من ترتيب يمكن للمسؤول ، في حدود نطاق DS الخاص به ، تجاهل واستخدام كل البتات الستة حسب تقديره.

علاوة على ذلك ، ألاحظ أيضًا أنه وفقًا لتوصيات IETF ، كلما زادت القيمة المسجلة في CS ، زادت الحاجة إلى هذه الحركة إلى الخدمة.

ولكن لا ينبغي أن يؤخذ هذا على أنه حقيقة لا يمكن إنكارها.

إذا كانت البتات الثلاثة الأولى تحدد فئة الحركة ، فسيتم استخدام الثلاثة التالية للإشارة إلى أولوية إسقاط الحزمة (أولوية الإسقاط أو أولوية فقدان الحزمة - PLP ).
ثمانية فصول - هل هو كثير أم قليل؟ للوهلة الأولى ، هذا ليس كافيًا - بعد كل شيء ، هناك العديد من الزيارات المختلفة على الشبكة التي يرغب المرء في تمييز كل بروتوكول حسب الفصل. ومع ذلك ، اتضح أن ثمانية كافية لجميع السيناريوهات المحتملة.
لكل فئة ، تحتاج إلى تحديد PHB الذي سيتعامل معه بطريقة أو بأخرى بطريقة مختلفة عن الفئات الأخرى.
ومع زيادة المقسوم عليه ، لا يزيد العائد (المورد).
أنا لا أتحدث عن عمد عن القيم الدقيقة لفئة حركة المرور التي يصفونها ، نظرًا لعدم وجود معايير ويمكنك استخدامها رسميًا حسب تقديرك الخاص. أدناه سأخبرك بالفئات والقيم المقابلة الموصى بها.
بت ECN ...
ظهر حقل ECN ثنائي البت فقط في RFC 3168 ( إعلام ازدحام صريح ). تم تعريف الحقل بغرض جيد وهو إبلاغ المضيفين النهائيين صراحة أن شخصًا ما كان يعاني من الازدحام على طول الطريق.
على سبيل المثال ، عندما تتأخر الحزم في قوائم انتظار جهاز التوجيه لفترة طويلة وتملأها ، على سبيل المثال ، بنسبة 85٪ ، فإنها تغير قيمة ECN ، حيث تخبر المضيف النهائي بما يجب أن يكون أبطأ - شيء مثل إيقاف الإطارات مؤقتًا على إيثرنت.

في هذه الحالة ، يجب على المرسل تقليل معدل الإرسال وتقليل الحمل على عقدة المعاناة.

في الوقت نفسه ، من الناحية النظرية ، لا يلزم دعم هذا المجال من قبل جميع نقاط العبور. أي أن استخدام ECN لا يكسر الشبكة التي لا تدعمه.

الهدف جيد ، ولكن قبل التطبيق في الحياة لم يتم العثور على ECN بشكل خاص. في الوقت الحاضر ، تنظر المقاييس الضخمة والمفرطة في هاتين الجزأين باهتمام جديد .

ECN هي واحدة من آليات تجنب الازدحام الموصوفة أدناه.



ممارسة تصنيف DSCP


لا يؤذي القليل من الممارسة.

المخطط هو نفسه.



للبدء ، ما عليك سوى إرسال طلب ICMP:

Linkmeup_R1#ping ip 172.16.2.2 source 172.16.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.2.2, timeout is 2 seconds: Packet sent with a source address of 172.16.1.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms 

Linkmeup_R1. E0 / 0.


pcapng

والآن مع تعيين قيمة DSCP.

  Linkmeup_R1#ping ip 172.16.2.2 source 172.16.1.1 tos 184 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.2.2, timeout is 2 seconds: Packet sent with a source address of 172.16.1.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms 

القيمة 184 هي التمثيل العشري للثنائي 10111000. من بينها ، أول 6 بت هي 101110 ، أي العشرية 46 ، وهذه هي الفئة EF.

جدول قيم TOS القياسية لـ popingushki ...

مزيد من التفاصيل
أدناه في النص في فصل توصية IETF ، سأخبرك من أين جاءت هذه الأرقام والأسماء.

Linkmeup_R2. E0 / 0


pcapng

ملاحظة غريبة: تحدد وجهة pingushka في رد ICMP Echo نفس قيمة الفئة كما كانت في طلب Echo. هذا أمر منطقي - إذا أرسل المرسل حزمة ذات مستوى معين من الأهمية ، فمن الواضح أنه يريد استردادها مضمونة.

Linkmeup_R2. E0 / 0


ملف تكوين تصنيف DSCP.

فئة مرور IPv6


IPv6 لا يختلف كثيرًا من حيث جودة الخدمة عن IPv4. ينقسم حقل الثماني بتات ، المسمى فئة المرور ، إلى قسمين. تلعب البتات الستة الأولى - DSCP - نفس الدور بالضبط.



نعم ، ظهر Flow Label. يقولون أنه يمكن استخدامه للتمييز الإضافي للفئات. لكن هذه الفكرة لم تطبق بعد في الحياة.

فئة الحركة MPLS


تركز مفهوم DiffServ على شبكات IP مع توجيه رأس IP. هذا مجرد سوء حظ - بعد 3 سنوات ، نشروا RFC 3031 ( بنية تبديل الملصقات المتعددة البروتوكولات ). وبدأت MPLS في الاستحواذ على مزودي الشبكات.

لا يمكن تمديد DiffServ إليه.

بمصادفة محظوظة ، تم وضع حقل EXP ثلاثي بت في MPLS لأي حالة تجريبية. وعلى الرغم من حقيقة أنه منذ وقت طويل في RFC 5462 ( حقل "EXP" تمت إعادة تسميته إلى حقل "فئة المرور" ) أصبح رسميًا حقل فئة المرور ، عن طريق القصور الذاتي يطلق عليه IExPi.

هناك مشكلة واحدة - طوله هو ثلاث بتات ، مما يحد من عدد القيم الممكنة إلى 9. ليس صغيرًا فحسب ، بل 3 أوامر ثنائية أقل من DSCP.



نظرًا لأن MPLS Traffic Class غالبًا ما تكون موروثة من حزمة IP DSCP ، لدينا أرشفة بخسارة. أو ... لا ، لا تريد أن تعرف ذلك ... L-LSP . يستخدم تركيبة من تصنيف حركة المرور + قيمة التسمية.
بشكل عام ، فإن الوضع غريب - تم تصميم MPLS كوسيلة مساعدة IP لاتخاذ قرارات سريعة - تم الكشف عن تسمية MPLS على الفور في CAM بواسطة Full Match ، بدلاً من Longest Prefix Match التقليدية. أي أنهم عرفوا عن IP ، وشاركوا في التبديل ، لكنهم لم ينصوا على مجال أولوية عادي.
في الواقع ، رأينا بالفعل أعلاه أن البتات الثلاثة الأولى فقط من DSCP تُستخدم لتحديد فئة الحركة ، والبتات الثلاثة الأخرى هي أولوية الأسبقية (أو PLP - أولوية فقدان الحزمة).

لذلك ، فيما يتعلق بفئات الخدمة ، لا يزال لدينا مراسلات 1: 1 ، نفقد المعلومات فقط حول Drop Precedence.

في حالة MPLS ، يمكن أن يعتمد التصنيف كما في IP على الواجهة أو MF أو IP DSCP أو MPLS من فئة الحركة.

يعني التصنيف كتابة قيمة في حقل فئة حركة المرور في رأس MPLS.

قد تحتوي الحزمة على رؤوس MPLS متعددة. لأغراض DiffServ ، يتم استخدام الجزء العلوي فقط.

هناك ثلاثة سيناريوهات مختلفة لإعادة وضع العلامات عند نقل حزمة من مقطع IP خالص إلى آخر عبر مجال MPLS: (هذا مجرد مقتطف من المقالة ).

  1. وضع موحد
  2. وضع الأنابيب
  3. وضع ماسورة قصيرة

طرق التشغيل ...

وضع موحد


هذا نموذج مسطح من طرف إلى طرف.



في Ingress PE ، نحن نثق في IP DSCP وننسخ ( بشكل صارم ، عرض ، ولكن من أجل البساطة سنقول "نسخ" ) قيمته في MPLS EXP (كل من رؤوس النفق والشبكات الافتراضية الخاصة). عند الإخراج من Ingress PE ، تتم معالجة الحزمة بالفعل وفقًا لقيمة حقل EXP لرأس MPLS العلوي.

يعالج كل نقل P أيضًا الحزم بناءً على EXP العلوي. ولكن في الوقت نفسه ، يمكنه تغييره إذا أراد عامل الهاتف ذلك.

تزيل العقدة قبل الأخيرة تسمية النقل (PHP) وتنسخ قيمة EXP إلى رأس VPN. لا يهم ما يقف هناك - في الوضع الموحد ، يحدث النسخ.

يقوم Egress PE ، بإزالة تسمية VPN ، بنسخ قيمة EXP إلى IP DSCP ، حتى إذا تم كتابة شيء آخر هناك.

أي إذا تغيرت قيمة ملصق EXP في رأس النفق في مكان ما في الوسط ، فسيتم توريث هذا التغيير بواسطة حزمة IP.

وضع الأنابيب




إذا قررنا في Ingress PE عدم الوثوق بقيمة DSCP ، يتم إدراج قيمة EXP التي يريدها المشغل في رؤوس MPLS.

ولكن من المقبول نسخ تلك الموجودة في DSCP. على سبيل المثال ، يمكنك إعادة تعريف القيم - نسخ كل شيء حتى EF ، وتعيين CS6 و CS7 إلى EF.

ينظر كل ترانزيت P فقط إلى EXP الخاص برأس MPLS العلوي.

تزيل العقدة قبل الأخيرة تسمية النقل (PHP) وتنسخ قيمة EXP إلى رأس VPN.

يقوم Egress PE أولاً بمعالجة الحزمة استنادًا إلى حقل EXP في رأس MPLS ، ثم يقوم بإزالتها فقط ، دون نسخ القيمة إلى DSCP.

أي ، بغض النظر عما حدث لحقل EXP في رؤوس MPLS ، يظل IP DSCP دون تغيير.

يمكن استخدام مثل هذا السيناريو عندما يكون لدى المشغل نطاق Diff-Serv خاص به ، ولا يريد أن تؤثر حركة مرور العميل عليه بطريقة أو بأخرى.

وضع ماسورة قصيرة




يمكنك اعتبار هذا الوضع بمثابة شكل من أشكال وضع الأنابيب. والفرق الوحيد هو أنه عند الخروج من شبكة MPLS ، تتم معالجة الحزمة وفقًا لحقل IP DSCP ، وليس MPLS EXP.

وهذا يعني أن العميل هو الذي يحدد أولوية الحزمة عند الإخراج وليس العامل.
لا يثق Ingress PE بالحزم الواردة IP DSCP
نظرة PS العابرة في حقل EXP من الرأس العلوي.
يزيل ما قبل الأخير P ملصق النقل وينسخ القيمة إلى تسمية VPN.
يقوم Egress PE أولاً بإزالة تسمية MPLS ، ثم معالجة الحزمة في قوائم الانتظار.

شرح من سيسكو .



ممارسة التصنيف فئة الحركة MPLS


المخطط هو نفسه:


ملف التكوين هو نفسه.

في الرسم التخطيطي لشبكة linkmeup ، هناك انتقال من IP إلى MPLS إلى Linkmeup_R2.
دعونا نرى ما يحدث مع وضع العلامات عند ping ping ip 172.16.2.2 المصدر 172.16.1.1 إلى 184 .

Linkmeup_R2. E0 / 0.

pcapng

لذا ، نرى أن ملصق EF الأصلي في IP DSCP قد تم تحويله إلى القيمة 5 لحقل EXP MPLS (وهو أيضًا فئة المرور ، تذكر ذلك) لكل من رأس VPN ورأس النقل.
هنا نشهد طريقة التشغيل الموحدة.



إيثرنت 802.1p


يفسر عدم وجود مجال أولوية في 802.3 (إيثرنت) بحقيقة أن إيثرنت قد تم التخطيط له في الأصل حصريًا كحل لقطاع LAN. للحصول على أموال متواضعة ، يمكنك الحصول على عرض نطاق ترددي مفرط ، وستكون الوصلة الصاعدة دائمًا بمثابة اختناق - ليس هناك ما يدعو للقلق بشأن تحديد الأولويات.

ومع ذلك ، سرعان ما أصبح من الواضح أن الجاذبية المالية لـ Ethernet + IP تأخذ هذه الحزمة إلى مستويات العمود الفقري وشبكة WAN. والتعايش في قطاع LAN واحد من السيول والهواتف يحتاج إلى حل.

لحسن الحظ ، وصل 802.1q (VLAN) في الوقت المناسب لذلك ، حيث تم تخصيص حقل 3 بت (مرة أخرى) للأولويات.

في خطة DiffServ ، يسمح لك هذا الحقل بتعريف نفس 8 فئات لحركة المرور.





عند استقبال حزمة ، يأخذ جهاز الشبكة في نطاق DS في معظم الحالات في الاعتبار الرأس الذي يستخدمه للتبديل:

  • محول إيثرنت - 802.1p
  • عقدة MPLS - فئة حركة MPLS
  • جهاز توجيه IP - IP DSCP

على الرغم من أن هذا السلوك يمكن تغييره: تصنيف قائم على الواجهة ومتعدد الحقول. ويمكنك أحيانًا أن تذكر صراحةً في حقل CoS أي عنوان يجب النظر إليه.



قائم على الواجهة


هذه هي أسهل طريقة لتصنيف الحزم على الجبين. كل شيء يتم سكبه في الواجهة المحددة تم تمييزه بفئة معينة.

في بعض الحالات ، تكون هذه الدقة كافية ، لذلك يتم استخدام الواجهة في الحياة.

ممارسة التصنيف القائم على واجهة


المخطط هو نفسه:



ينقسم إعداد سياسات جودة الخدمة (QoS) في معدات معظم البائعين إلى مراحل.

  1. أولاً ، يتم تعريف المصنف:
    class-map match-all TRISOLARANS_INTERFACE_CM
    match input-interface Ethernet0/2

    كل ما يتعلق بواجهة Ethernet0 / 2.
  2. بعد ذلك ، يتم إنشاء سياسة حيث يرتبط المصنف والإجراء اللازم.

      policy-map TRISOLARANS_REMARK class TRISOLARANS_INTERFACE_CM set ip dscp cs7 

    إذا كانت الحزمة تفي بمصنف TRISOLARANS_INTERFACE_CM ، اكتب CS7 في حقل DSCP.
    هنا أتقدم على نفسي باستخدام CS7 الغامض ، ثم EF و AF. أدناه يمكنك أن تقرأ عن هذه الاختصارات والاتفاقيات المقبولة. في هذه الأثناء ، يكفي أن تعرف أن هذه فئات مختلفة بمستويات خدمة مختلفة.
  3. والخطوة الأخيرة هي تطبيق السياسة على الواجهة:

      interface Ethernet0/2 service-policy input TRISOLARANS_REMARK 

    هنا ، يعد المصنف فائضًا قليلاً ، مما سيتحقق من أن الحزمة قد وصلت إلى واجهة e0 / 2 ، حيث نقوم بعد ذلك بتطبيق السياسة. يمكن للمرء أن يكتب أي تطابق:

     class-map match-all TRISOLARANS_INTERFACE_CM match any 

    ومع ذلك ، يمكن بالفعل تطبيق السياسة على vlanif أو على واجهة الإخراج ، لذلك من الممكن.


قم بتشغيل ping المعتاد على 172.16.2.2 (Trisolaran2) مع Trisolaran1:



وفي التفريغ بين Linkmeup_R1 و Linkmeup_R2 سنرى ما يلي:


pcapng

التصنيف القائم على واجهة ملف التكوين.

متعدد المجالات


النوع الأكثر شيوعًا للتصنيف عند مدخل مجال DS. نحن لا نثق في التسمية الحالية ، وعلى أساس رؤوس الحزمة ، نعين فئة.

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

أداة مرنة إلى حد ما ، ولكن في الوقت نفسه مرهقة - تحتاج إلى إنشاء قواعد صعبة لكل فصل دراسي. لذلك ، داخل مجال DS ، تكون درجة البكالوريوس أكثر ملاءمة.

ممارسة تصنيف MF


المخطط هو نفسه:



من الأمثلة العملية المذكورة أعلاه ، يمكن ملاحظة أن أجهزة الشبكة تعتمد بشكل افتراضي على وضع العلامات الموثوق بها للحزم الواردة.

هذا جيد داخل نطاق DS ، ولكنه غير مقبول عند نقطة الدخول.

والآن دعونا لا نثق عمياء؟ على Linkmeup_R2 ، سيتم تصنيف ICMP كـ EF (على سبيل المثال فقط) ، و TCP كـ AF12 ، وكل شيء آخر هو CS0.
سيكون هذا تصنيف MF (متعدد المجالات).

  1. الإجراء هو نفسه ، ولكننا الآن سنطابقه عن طريق قوائم التحكم في الوصول (ACLs) التي لم تبتعد عن فئات حركة المرور الضرورية ، لذلك نقوم أولاً بإنشائها.

    على Linkmeup_R2:

      ip access-list extended TRISOLARANS_ICMP_ACL permit icmp any any ip access-list extended TRISOLARANS_TCP_ACL permit tcp any any ip access-list extended TRISOLARANS_OTHER_ACL permit ip any any 

  2. بعد ذلك ، نحدد المصنفات:

      class-map match-all TRISOLARANS_TCP_CM match access-group name TRISOLARANS_TCP_ACL class-map match-all TRISOLARANS_OTHER_CM match access-group name TRISOLARANS_OTHER_ACL class-map match-all TRISOLARANS_ICMP_CM match access-group name TRISOLARANS_ICMP_ACL 

  3. والآن نحدد قواعد الملاحظة في السياسة:

      policy-map TRISOLARANS_ADMISSION_CONTROL class TRISOLARANS_ICMP_CM set ip dscp ef class TRISOLARANS_TCP_CM set ip dscp af11 class TRISOLARANS_OTHER_CM set ip dscp default 

  4. ونعلق السياسة على الواجهة. عند الإدخال ، على التوالي ، لأنه يجب اتخاذ القرار عند مدخل الشبكة.

      interface Ethernet0/1 service-policy input TRISOLARANS_ADMISSION_CONTROL 


اختبار ICMP من المضيف النهائي Trisolaran1. لا نحدد الفئة عن قصد - الافتراضي هو 0.

لقد قمت بالفعل بإزالة السياسة باستخدام Linkmeup_R1 ، لذلك تأتي حركة المرور مع وضع علامة CS0 ، وليس CS7.



في ما يلي مقعدين قريبين ، مع Linkmeup_R1 و Linkmeup_R2:

Linkmeup_R1. E0 / 0.

pcapng

Linkmeup_R2. E0 / 0.

pcapng

يمكن ملاحظة أنه بعد المصنفات وإعادة التسمية على Linkmeup_R2 على حزم ICMP ، لم يتغير DSCP فقط إلى EF ، بل أصبح MPLS Traffic Class يساوي 5.

اختبار مماثل مع تلنت 172.16.2.2. 80 - لذا تحقق من TCP:



Linkmeup_R1. E0 / 0.

pcapng

Linkmeup_R2. E0 / 0.

pcapng

اقرأ - ما هو مطلوب وما هو متوقع. يتم إرسال TCP كـ AF11.

سيختبر الاختبار التالي UDP ، الذي يجب أن يذهب إلى CS0 وفقًا لمصنفاتنا. سنستخدم iperf لهذا (إحضاره إلى Linux Tiny Core عبر التطبيقات). على الجانب البعيد iperf3 -s - بدء تشغيل الخادم ، على iperf3 -c -u -t1 المحلي - العميل ( -c ) ، بروتوكول UDP ( -u ) ، اختبار لمدة ثانية واحدة ( -t1 ).



Linkmeup_R1. E0 / 0.

pcapng

Linkmeup_R2. E0 / 0

pcapng

من الآن فصاعدًا ، سيتم تصنيف كل ما يأتي إلى هذه الواجهة وفقًا للقواعد المكونة.



وضع العلامات داخل الجهاز


مرة أخرى: عند مدخل تصنيف مجال DS يمكن أن يحدث MF أو قائم على الواجهة أو درجة البكالوريوس.
بين عقد نطاق DS ، تحمل الحزمة في الرأس إشارة حول فئة الخدمة المطلوبة ويتم تصنيفها من قبل BA.

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

أي العنوان 1 ⇒ التصنيف class فئة الخدمة الداخلية ⇒ العنوان 2.

في بعض الحالات ، تحتاج إلى عرض حقل رأس بروتوكول واحد في حقل رأس بروتوكول آخر ، على سبيل المثال ، DSCP في فئة حركة المرور.

يحدث هذا فقط من خلال الوسم الداخلي المتوسط.

على سبيل المثال ، رأس DSCP ⇒ التصنيف Class فئة الخدمة الداخلية Head رأس فئة الحركة.

من الناحية الرسمية ، يمكن استدعاء الطبقات الداخلية كما تريد ، أو ببساطة ترقيمها ، ولديهم فقط قائمة انتظار معينة مخصصة لهم.

في العمق الذي نتعمق فيه في هذه المقالة ، لا يهم ما يطلق عليه ، فمن المهم أن يرتبط نموذج سلوك معين بقيم معينة لحقول جودة الخدمة.

إذا كنا نتحدث عن تطبيقات جودة الخدمة المحددة ، فإن عدد فئات الخدمة التي يمكن للجهاز توفيرها لا يزيد عن عدد قوائم الانتظار المتاحة. غالبًا ما يكون هناك ثمانية منهم (إما تحت تأثير IPP ، أو في بعض الأحيان باتفاق غير مكتوب). ومع ذلك ، اعتمادًا على البائع أو الجهاز أو اللوحة ، يمكن أن تكون إما أكثر أو أقل.

بمعنى ، إذا كان هناك 4 قوائم انتظار ، فإن فئات الخدمة ببساطة لا معنى للقيام بأكثر من أربعة.

لنتحدث عن هذا بمزيد من التفصيل في فصل الأجهزة.

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

لذلك ، راجع الجداول أدناه مع حصة من الشك (وبالتالي ، تحت المفسد).

على سبيل المثال هواوي . هنا ، فئة الخدمة هي الطبقة الداخلية جدًا من الحزمة.

بمعنى ، إذا تم تصنيف BA عند الإدخال ، فستتم ترجمة قيم DSCP إلى قيم فئة الخدمة والألوان المقابلة.



يجدر الانتباه إلى حقيقة أن العديد من قيم DSCP لا يتم استخدامها ، ويتم بالفعل معالجة الحزم التي تحمل هذه العلامات كـ BE.

فيما يلي جدول مطابق للخلف يوضح قيم DSCP التي سيتم تعيينها لحركة المرور عند إعادة تمييز الإخراج.



لاحظ أن AF فقط له تدرج لوني. BE ، EF ، CS6 ، CS7 - كلها خضراء فقط.

هذا جدول لتحويل حقول IPP و MPLS Traffic Class و 802.1 p Ethernet إلى فئات خدمة داخلية.



والعودة.



لاحظ أنه يتم فقدان أي معلومات حول أولوية الإسقاط بشكل عام هنا.

يجب أن يتكرر - هذا مجرد مثال محدد للمطابقات الافتراضية من بائع تم اختياره عشوائيًا . بالنسبة للآخرين ، قد يكون هذا مختلفًا. يمكن للمسؤولين تكوين فئات مختلفة تمامًا من الخدمات و PHBs على شبكتهم.


من حيث PHB ، لا يوجد فرق على الإطلاق في ما يستخدم للتصنيف - DSCP ، فئة المرور ، 802.1p.

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



توصيات IETF (فئات المرور وفئات الخدمة والسلوكيات)


لا تقيس المعايير على الإطلاق أي فئات خدمة معينة يجب أن توجد ، وكيفية تصنيفها وتمييزها ، وأي PHB يمكن تطبيقها عليها.

هذا تحت رحمة البائعين ومديري الشبكات.

لدينا 3 بتات فقط - نستخدمها كما نريد.

هذا جيد:

  • تختار كل قطعة من الحديد (البائع) بشكل مستقل الآليات التي يجب استخدامها لـ PHB - بدون إشارات ، ولا توجد مشاكل توافق.
  • يمكن لمسؤول كل شبكة توزيع حركة المرور بمرونة بين الفئات المختلفة ، واختيار الفئات نفسها و PHB المقابلة.

هذا سيء:

  • على حدود نطاقات DS ، تنشأ مشاكل التحويل.
  • في ظروف الحرية الكاملة للعمل - البعض في الغابة ، وبعضهم شيطان.

لذلك ، أصدر IETF في عام 2006 دليلًا تدريبيًا حول كيفية التعامل مع التمايز في الخدمة: RFC 4594 ( إرشادات التكوين لفئات خدمة DiffServ ).

فيما يلي ملخص موجز RFC هذا.

نماذج السلوك (PHB)


مدافع - إعادة توجيه افتراضي
شحنة قياسية.
إذا لم يتم تعيين نموذج سلوك لنموذج حركة المرور على وجه التحديد ، فستتم معالجته باستخدام إعادة التوجيه الافتراضية.

هذا هو أفضل جهد - سيقوم الجهاز بكل شيء ممكن ، لكنه لا يضمن أي شيء. من الممكن حدوث قطرات ، واضطراب ، وتأخيرات لا يمكن التنبؤ بها ، وتشويش عائم ، ولكن هذا ليس دقيقًا.

هذا النموذج مناسب للتطبيقات غير المتساهلة ، مثل تنزيلات البريد أو الملفات.
بالمناسبة ، هناك PHB وأقل تحديدًا - جهد أقل .

AF - إعادة التوجيه المؤكد
شحنة مضمونة.
هذا هو BE محسن. تظهر بعض الضمانات هنا ، على سبيل المثال ، العصابات. لا تزال القطرات والتأخيرات العائمة ممكنة ، ولكن إلى حد أقل بكثير.

النموذج مناسب للوسائط المتعددة: الجري ، مؤتمرات الفيديو ، الألعاب عبر الإنترنت.
RFC 2597 ( إعادة توجيه مجموعة PHB المضمونة ).

EF - الشحن المعجل
شحنة الطوارئ.
تتدفق جميع الموارد والأولويات هنا. هذا نموذج للتطبيقات التي لا تحتاج إلى خسائر ، أو تأخيرات قصيرة ، أو غضب مستقر ، ولكنها ليست جشعة للفرقة. مثل ، على سبيل المثال ، الاتصالات الهاتفية أو خدمة محاكاة الأسلاك (CES - خدمة محاكاة الدوائر).

من غير المرجح للغاية الخسائر والتشويش والتأخير العائم في EF.
RFC 3246 ( إعادة توجيه PHB المعجلة ).

CS - محدد الفئة
تم تصميم هذه السلوكيات للحفاظ على التوافق مع الإصدارات السابقة مع أسبقية IP في الشبكات القادرة على DS.

الفئات التالية موجودة في IPP: CS0 ، CS1 ، CS2 ، CS3 ، CS4 ، CS5 ، CS6 ، CS7.
لا يوجد دائمًا PHB منفصل لكل منهم ، وعادة ما يكون هناك اثنان أو ثلاثة ، والباقي يتم ترجمته ببساطة إلى أقرب فئة DSCP والحصول على PHB المقابل.
لذلك ، على سبيل المثال ، يمكن تصنيف الحزمة المسماة CS 011000 على أنها 011010.

من CS ، بالتأكيد CS6 ، CS7 فقط ، الموصى بها ل NCP - بروتوكول التحكم في الشبكة وتتطلب PHB منفصل ، يتم الاحتفاظ بها في المعدات.

مثل EF ، تم تصميم PHB CS6.7 للفصول التي لها وقت استجابة وخسارة عالية جدًا ، لكنها تتحمل إلى حد ما تمييز النطاق.
تتمثل مهمة PHB لـ CS6.7 في توفير مستوى من الخدمة يزيل السقوط والتأخير حتى في حالة التحميل الزائد المفرط للواجهة والرقاقة وقوائم الانتظار.



من المهم أن نفهم أن PHB هو مفهوم مجردة - وفي الواقع يتم تنفيذها من خلال الآليات المتاحة على المعدات الحقيقية.

وبالتالي ، يمكن أن تختلف نفس PHB المحددة في مجال DS على Juniper و Huawei.

علاوة على ذلك ، فإن PHB واحد ليس مجموعة ثابتة من الإجراءات ؛ على سبيل المثال ، قد يتكون AF PHB من عدة خيارات تختلف في مستوى الضمانات (النطاق ، التأخيرات المقبولة).



فئات الخدمة


اعتنى IETF بالإداريين وحدد الفئات الرئيسية للتطبيقات وفئات الخدمات الخاصة بهم.

لن أكون مطولًا هنا ، فقط أدخل زوجان من لوحات RFC التوجيهية هذه.

فئات التطبيق:



متطلبات خصائص الشبكة:



وأخيرًا ، أسماء الفئات الموصى بها وقيم DSCP المقابلة: من



خلال دمج الفئات المذكورة أعلاه بطرق مختلفة (لتلائم الفئات الثمانية المتوفرة) ، يمكنك الحصول على حلول QoS لشبكات مختلفة.

ولعل الأكثر شيوعًا هو هذا: تمثل



فئة DF (أو BE) حركة مرور غير متسامحة تمامًا - فهي تتلقى الانتباه على أساس متبقي.

يخدم PHB AF الفئات AF1 و AF2 و AF3 و AF4. كلهم بحاجة إلى توفير ممر ، على حساب التأخير والخسائر. يتم التحكم في الخسائر بواسطة بتات إسقاط الأسبقية ، ولهذا السبب تسمى AFxy ، حيث x هي فئة الخدمة و y هي إسقاط الأسبقية.

تحتاج إي أف إلى نوع من الحد الأدنى من ضمان النطاق ، ولكن الأهم من ذلك - ضمان التأخير وعدم الاستقرار وعدم الخسارة.

يتطلب CS6 و CS7 عرض نطاق ترددي أقل ، لأن هذا هو عدد قليل من حزم الخدمة التي لا تزال فيها الرشقات ممكنة (تحديث BGP ، على سبيل المثال) ، ولكن الخسائر والتأخيرات غير مقبولة فيها - ما هو استخدام BFD مع جهاز ضبط الوقت 10 مللي ثانية إذا تعطل Hello قوائم انتظار 100 مللي ثانية؟

وهذا يعني أن 4 فصول من أصل 8 دروس متاحة تم إعطاؤها تحت AF.

وعلى الرغم من حقيقة أنهم يفعلون ذلك بالضبط ، أكرر أن هذه مجرد توصيات ، ولا شيء يمنع ثلاث فئات في نطاق DS من تعيين EF واثنين فقط إلى AF.



ملخص التصنيف


عند مدخل العقدة ، يتم تصنيف الحزمة على أساس واجهة ، MF ، أو تصنيفها (BA).
التصنيف هو قيمة حقول DSCP في IPv4 وفئة المرور في IPv6 وفي MPLS أو 802.1p في 802.1q.
هناك 8 فئات للخدمة تجمع فئات مختلفة من حركة المرور. يتم تعيين PHB الخاص بكل فئة ، مما يفي بمتطلبات الفصل.

وفقًا لتوصيات IETF ، يتم تمييز فئات الخدمة التالية: CS1 ، CS0 ، AF11 ، AF12 ، AF13 ، AF21 ، CS2 ، AF22 ، AF23 ، CS3 ، AF31 ، AF32 ، AF33 ، CS4 ، AF41 ، AF42 ، AF43 ، CS5 ، EF ، CS6 ، CS7 في زيادة أهمية حركة المرور.

من بينها ، يمكنك اختيار مجموعة مكونة من 8 ، والتي يمكن ترميزها بالفعل في حقول CoS.
التركيبة الأكثر شيوعًا: CS0 و AF1 و AF2 و AF3 و AF4 و EF و CS6 و CS7 مع 3 تدرجات لونية للتركيز البؤري التلقائي.

يتم تعيين PHB لكل فئة ، والتي يوجد منها 3 - إعادة توجيه افتراضي ، إعادة توجيه مضمونة ، إعادة توجيه معجلة بترتيب زيادة الخطورة. جانبا قليلا هو محدد فئة PHB. قد تختلف كل PHB حسب معلمات الأداة ، ولكن المزيد عن ذلك لاحقًا.



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

لكن الواقع يضرب VPN على ILV.

  1. ليس في كل مكان يوجد بصريات. RRL هي واقعنا. في بعض الأحيان في وقت الحادث (وليس فقط) في رابط الراديو الضيق يريد الزحف إلى كل حركة مرور الشبكة.
  2. رشقات المرور هي واقعنا. تنتقل دفقات الحركة القصيرة المدى بسهولة إلى الطابور ، مما يجبر على إسقاط الحزم الضرورية للغاية.
  3. الاتصالات الهاتفية وعقد المؤتمرات عبر الفيديو والألعاب عبر الإنترنت هي واقعنا. إذا كانت قائمة الانتظار مشغولة إلى حد ما على الأقل ، تبدأ التأخيرات في الرقص.

في ممارستي ، كانت هناك أمثلة عندما تحولت المهاتفة إلى رمز مورس على شبكة محملة بنسبة لا تزيد عن 40 ٪. مجرد إعادة وضع علامة عليه في EF حل المشكلة للحظات.
حان الوقت للتعامل مع الأدوات التي تتيح لك تقديم خدمات مختلفة لفئات مختلفة.



أدوات PHB


هناك في الواقع ثلاث مجموعات فقط من أدوات QoS التي تعالج الحزم بنشاط:

  • تجنب الازدحام - ما يجب القيام به حتى لا تكون سيئًا.
  • إدارة الازدحام - ماذا تفعل عندما تكون سيئة بالفعل.
  • تحديد المعدل - كيف لا تضع على الشبكة أكثر مما ينبغي ، وليس الإفراج بقدر ما لا يمكنهم قبوله.

لكن جميعهم ، بشكل عام ، لن يكون له فائدة إذا لم يكن لقائمة الانتظار.

5. قوائم الانتظار


في المتنزه ، لا يمكنك إعطاء أولوية لشخص ما إذا لم تقم بتنظيم قائمة انتظار منفصلة لأولئك الذين دفعوا أكثر.

نفس الوضع في الشبكات.

إذا كانت كل حركة المرور في قائمة انتظار واحدة ، فلن تتمكن من سحب الحزم المهمة من وسطها لمنحها الأولوية.

هذا هو السبب ، بعد التصنيف ، يتم وضع الحزم في قائمة الانتظار المقابلة لهذه الفئة.

ثم تنتقل قائمة انتظار واحدة (مع البيانات الصوتية) بسرعة ، ولكن مع نطاق محدود ، وأبطأ (تدفق) آخر ، ولكن مع نطاق عريض ، وستذهب بعض الموارد وفقًا للمبدأ المتبقي.

ولكن في حدود كل قائمة انتظار منفصلة ، تنطبق نفس القاعدة - لا يمكنك سحب حزمة من الوسط - فقط من رأسها.

كل قائمة انتظار لها طول محدود معين. من ناحية ، تملي هذا قيود الأجهزة ، ومن ناحية أخرى ، لا معنى لإبقاء الحزم في قائمة الانتظار لفترة طويلة. ليست هناك حاجة إلى حزمة VoIP إذا تأخرت لمدة 200 مللي ثانية. سيطلب TCP إعادة التوجيه ، بشكل مشروط ، بعد انتهاء صلاحية RTT (المكون في sysctl). لذلك ، ليس الإسقاط دائمًا سيئًا.
يجب على مطوري ومصممي معدات الشبكة إيجاد حل وسط بين محاولات حفظ الحزمة لأطول فترة ممكنة ، وعلى العكس من ذلك ، لمنع إهدار النطاق الترددي ، في محاولة لتسليم الحزمة التي لم تعد هناك حاجة إليها.

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

إذا كان هناك حركة مرور أكثر مما يمكن أن تتعامل معه رقاقة التبديل أو واجهة الإخراج ، تبدأ قوائم الانتظار في الامتلاء. والاستخدام المزمن فوق 20-30 ٪ هو بالفعل حالة يجب معالجتها.



6. تجنب الازدحام


في حياة أي جهاز توجيه ، يأتي وقت عندما تكون قائمة الانتظار ممتلئة. مكان وضع الحزمة ، إذا لم يكن هناك بالتأكيد مكان لوضعها - هذا كل شيء ، انتهى المخزن المؤقت ، ولن يكون هناك ، حتى إذا كان من الجيد أن ننظر ، حتى إذا كنت تدفع المزيد.

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

وإذا كان هذا ، ففكر أنه لم يأت.

وتسمى هذه النهجين الذيل قطرة و رئيس قطرة .

قطرة الذيل وإسقاط الرأس


Tail Drop - أبسط آلية لإدارة قائمة الانتظار - يتجاهل جميع الحزم التي وصلت حديثًا والتي لا تتناسب مع المخزن المؤقت. يسقط



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



يتمتع Head Drop بميزة أخرى غير واضحة - إذا أسقطت الحزمة في بداية قائمة الانتظار ، فسيعرف المستلم بسرعة عن الازدحام على الشبكة ويبلغ المرسل. في حالة Tail Drop ، ستصل المعلومات حول الحزمة المسقطة ، ربما ، إلى مئات المللي ثانية لاحقًا - حتى تنتقل من ذيل الخط إلى رأسها.

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



يمكن أن يعمل قطرة الذيل وقطرة الرأس في وقت واحد.





الذيل وقطرة الرأس هي تجنب الازدحام "الجبهة". يمكنك أن تقول - هذا غيابه.
لا نفعل أي شيء حتى امتلاء قائمة الانتظار بنسبة 100٪. وبعد ذلك ، نبدأ في التخلص من جميع الحزم التي وصلت حديثًا (أو التي تأخرت لفترة طويلة).

إذا لم تكن بحاجة إلى فعل أي شيء لتحقيق الهدف ، فهناك فارق بسيط في مكان ما.
وهذا فارق بسيط هو TCP.

نذكر ( عميق و عميق جدا ) كيف TCP - كلمة حول التطبيقات الحالية.

هناك نافذة منزلقة (نافذة منزلقة أو rwnd - نافذة المعلن المتلقي ) ، والتي يتحكم بها المستلم ، تخبر المرسل بالمقدار الذي يمكن إرساله.

وهناك نافذة الزائد ( CWND - نافذة الازدحام) ، الذي يستجيب لمشاكل الشبكة ويسيطر عليه المرسل.

تبدأ عملية نقل البيانات ببداية بطيئة ( بدء بطيء ) مع زيادة أسية في CWND. مع كل مقطع مؤكد ، تتم إضافة حجم MSS واحد إلى CWND ، أي أنه يتضاعف في وقت يساوي RTT (البيانات هناك ، ACK back) (الكلام عن Reno / NewReno).

على سبيل المثال



يستمر النمو الأسي إلى قيمة تسمى ssthreshold (Slow Start Threshold) ، والتي يتم تحديدها في تكوين TCP على المضيف.

بعد ذلك ، يبدأ النمو الخطي لـ 1 / CWND لكل مقطع مؤكد حتى يتوقف على RWND أو تبدأ الخسائر (يتم تأكيد الخسارة بإعادة التأكيد (تكرار ACK) أو لا يوجد تأكيد على الإطلاق).

بمجرد اكتشاف فقدان المقطع ، يحدث TCP Backoff - يقوم TCP بتقليل النافذة بشكل كبير ، مما يقلل في الواقع من سرعة الإرسال - وتبدأ آلية الاسترداد السريع :

  1. إرسال الأجزاء المفقودة (إعادة الإرسال السريع) ،
  2. تضاعف النافذة لأسفل ،
  3. تصبح قيمة ssthreshold مساوية لنصف النافذة التي تم الوصول إليها ،
  4. يبدأ النمو الخطي مرة أخرى حتى الخسارة الأولى ،
  5. كرر.



يمكن أن يعني الخسارة إما الانهيار الكامل لجزء من الشبكة ثم اعتبارها مفقودة ، أو الازدحام على الخط (قراءة تجاوز سعة المخزن المؤقت وتجاهل جزء من هذه الجلسة).
هذه هي طريقة TCP لزيادة الاستفادة من عرض النطاق الترددي المتاح والتعامل مع الازدحام. وهي فعالة للغاية.

ولكن ، ما الذي يؤدي إليه Tail Drop؟

  1. دعنا نقول من خلال جهاز توجيه يكمن مسار الآلاف من جلسات TCP. في مرحلة ما ، وصلت حركة مرور الجلسة إلى 1.1 جيجابت / ثانية ، وسرعة واجهة الإخراج - 1 جيجابت / ثانية.
  2. حركة المرور ويأتي أسرع من الأوراق، وتمتلئ مخازن vsklyan .
  3. يتم تشغيل Tail Drop حتى يقوم المرسل بتخزين بعض الحزم من قائمة الانتظار.
  4. Fast Recovery ( Slow Start).
  5. , , Tail Drop .
  6. TCP- , .
  7. .
  8. Fast Recovery/Slow Start.
  9. .

تعرف على المزيد حول التغييرات في آليات TCP في RFC 2001 ( بدء بطيء لـ TCP ، وتجنب الازدحام ، وإعادة الإرسال السريع ، وخوارزميات الاسترداد السريع ).

هذا هو الشكل المميز لهذا الوضع، دعا تزامن العالمي للTCP ( من العالمية للTCP تزامن ):



العالمي - لأنها تعاني العديد من الدورات التي أنشئت من خلال تلك العقدة.
التزامن ، لأنهم يعانون في نفس الوقت. وسيتكرر الوضع حتى يكون هناك حمل زائد.

TCP - لأن UDP ، الذي لا يحتوي على آليات للتحكم في الازدحام ، لا يتأثر به.

لم يكن هناك شيء سيئ سيحدث في هذا الموقف لو لم يتسبب في استخدام الشريط دون المستوى الأمثل - الفجوات بين أسنان المنشار - الأموال المهدرة.

المشكلة الثانية هي TCP Starvation - استنفاد TCP. بينما يتباطأ بروتوكول TCP لخفض الحمل (دعونا لا نكون مكروهين - أولاً وقبل كل شيء ، من أجل نقل بياناتنا بالتأكيد) ، UDP ، كل هذه المعاناة الأخلاقية بشكل عام بواسطة مخطط البيانات - يرسل قدر الإمكان.

لذلك ، يتم تقليل كمية حركة مرور TCP ، ويزداد UDP (ربما) ، الدورة التالية من Loss - Fast Recovery تحدث عند عتبة أقل. يشغل UDP مساحة. ينخفض ​​إجمالي مقدار حركة مرور TCP.

كيفية حل المشكلة ، من الأفضل تجنبها. دعونا نحاول تقليل الحمل قبل أن يملأ قائمة الانتظار باستخدام Fast Recovery / Slow Start ، الذي كان ضدنا للتو.

RED - الكشف المبكر العشوائي


ولكن ماذا لو أخذنا ونسقط قطرات على جزء من العازلة؟

نسبيًا ، ابدأ في إسقاط الحزم العشوائية عندما تكون قائمة الانتظار ممتلئة بنسبة 80٪ ، مما يجبر بعض جلسات TCP على تقليل النافذة ، وبالتالي السرعة.

وإذا كانت قائمة الانتظار ممتلئة بنسبة 90٪ ، نبدأ في إسقاط 50٪ من الحزم عشوائيًا.
90٪ - الاحتمال ينمو إلى ذيل القطرة (يتم تجاهل 100٪ من الحزم الجديدة).

تسمى الآليات التي تنفذ إدارة قوائم الانتظار هذه AQM - إدارة قوائم الانتظار التكيفية (أو النشطة).

هذه هي الطريقة التي يعمل بها RED .
الكشف المبكر - إصلاح الحمل الزائد المحتمل ؛
عشوائي - تجاهل الحزم بشكل عشوائي.
في بعض الأحيان يقومون بفك شفرة RED (في رأيي ، بشكل أكثر دلالة بشكل صحيح) ، مثل Random Early Discard.

من الناحية التخطيطية ، يبدو الأمر كما يلي:





حتى يتم ملء المخزن المؤقت بنسبة 80٪ ، لا يتم تجاهل الحزم على الإطلاق - الاحتمال هو 0٪.
من 80 إلى 100 علبة يتم التخلص منها ، وكلما زاد ملء قائمة الانتظار.
لذا فإن النسبة المئوية تنمو من 0 إلى 30.

من الآثار الجانبية لـ RED هو أن جلسات TCP القوية من المرجح أن تتباطأ ، وذلك ببساطة لأن هناك الكثير من الحزم ومن المرجح أن يتم إسقاطها.

يتم حل عدم كفاءة استخدام الشريط الأحمر عن طريق تخفيف جزء أصغر بكثير من الجلسات دون التسبب في مثل هذا التراجع الخطير بين الأسنان.
لنفس السبب بالضبط لا يمكن لـ UDP أن تشغل كل شيء.

WRED - الكشف المبكر العشوائي الموزون


ولكن في جلسة الاستماع للجميع ، ربما ، لا يزال WRED . لقد اقترح القارئ الذكي لـ linkmeup بالفعل أن هذا هو نفس RED ، ولكنه مرجح بالتناوب. ولم يكن على حق تماما.
تعمل RED ضمن نفس قائمة الانتظار. ليس من المنطقي أن ننظر إلى الوراء في EF إذا كان BE ممتلئًا. وبالتالي ، فإن الوزن بالتناوب لن يجلب أي شيء.
هنا يعمل إسقاط الأسبقية فقط.

وضمن قائمة الانتظار نفسها ، يكون للرزم ذات أولوية إسقاط مختلفة منحنيات مختلفة. وكلما انخفضت الأولوية ، زاد احتمال ضربها.



هناك ثلاثة منحنيات هنا:
الأحمر - حركة مرور أقل أولوية (من حيث الإسقاط) ، أصفر - أكثر ، أخضر - الحد الأقصى.
يبدأ التخلص من حركة المرور الحمراء عندما يكون المخزن المؤقت ممتلئًا بنسبة 20٪ ، ومن 20 إلى 40 ينخفض ​​إلى 20٪ ، ثم Tail Drop.
يبدأ اللون الأصفر لاحقًا - من 30 إلى 50 يتم التخلص منه حتى 10٪ ، ثم - ذيل القطرة.
الأخضر هو الأقل عرضة: من 50 إلى 100 ينمو بسلاسة إلى 5٪. التالي هو ذيل قطرة.
في حالة DSCP ، يمكن أن يكون هذا AF11 و AF12 و AF13 ، على التوالي أخضر وأصفر وأحمر.



من المهم جدًا هنا أنه يعمل مع TCP ولا ينطبق على UDP على الإطلاق.
أو يتجاهل تطبيق يستخدم UDP الخسائر ، كما هو الحال في الاتصالات الهاتفية أو دفق الفيديو ، وهذا يؤثر سلبًا على ما يراه المستخدم.

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

هذا هو السبب في استخدام ذيل قطرة فقط ل EF.

بالنسبة إلى CS6 ، CS7 ، يتم استخدام Tail Drop أيضًا ، نظرًا لعدم وجود سرعات عالية مفترضة ولن يحل WRED أي شيء.

بالنسبة إلى AF ، يتم تطبيق WRED. AFxy ، حيث x هي فئة الخدمة ، أي قائمة الانتظار التي تقع فيها ، و y هي أولوية الإسقاط - نفس اللون.

بالنسبة إلى BE ، يتم اتخاذ القرار بناءً على حركة المرور السائدة في قائمة الانتظار هذه.

داخل جهاز توجيه واحد ، يتم استخدام وضع العلامات الخاص بالحزم الداخلية ، بشكل مختلف عن ذلك الذي يحمل الرؤوس. لذلك ، يمكن معالجة MPLS و 802.1 q ، حيث لا يمكن ترميز أولوية التراجع ، في قوائم انتظار بأولويات إسقاط مختلفة.
على سبيل المثال ، جاءت حزمة MPLS إلى العقدة ، ولا تحمل علامة إسقاط الأسبقية ، ومع ذلك ، وفقًا لنتائج التلميع ، تبين أنها صفراء ويمكن التخلص منها قبل وضعها في قائمة الانتظار (والتي يمكن تحديدها بواسطة حقل فئة المرور).

من الجدير بالذكر أن قوس قزح بأكمله موجود فقط داخل العقدة. لا يوجد مفهوم اللون في الخط الفاصل بين الجيران.

على الرغم من أنه من الممكن ، بالطبع ، ترميز اللون في جزء أولوية الأسبقية من DSCP.
يمكن أن تظهر قطرات أيضًا في شبكة غير محملة ، حيث يبدو أنه لا يجب أن يكون تجاوز قائمة الانتظار. كيف؟
قد يكون السبب في ذلك رشقات نارية قصيرة - رشقات نارية - من حركة المرور. أبسط مثال - قررت 5 تطبيقات في نفس الوقت نقل حركة المرور إلى مضيف واحد.
مثال أكثر تعقيدًا - يتم توصيل المرسل عبر واجهة 10 جيجابت / ثانية ، وجهاز الاستقبال 1 جيجابت / ثانية. تسمح لك البيئة نفسها بصياغة الحزم بشكل أسرع على المرسل. يطلب التحكم في تدفق إيثرنت في المستقبل من أقرب مضيف إبطاء ، وتبدأ الحزم في التراكم في المخازن المؤقتة.


حسنًا ، ماذا تفعل عندما تزداد الأمور سوءًا؟

7. إدارة الازدحام


عندما يكون كل شيء سيئًا ، يجب إعطاء أولوية المعالجة لحركة مرور أكثر أهمية. يتم تحديد أهمية كل حزمة في مرحلة التصنيف.

لكن ما هو السيء؟

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

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

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

كيف تدير الطوابير المختلفة لتقديم مستويات مختلفة من الخدمات؟
إزالة الحزم من قوائم الانتظار المختلفة بطرق مختلفة.

يعمل المرسل في هذا.

سننظر في غالبية المرسلين اليوم ، بدءًا من الأبسط:

  • FIFO - سطر واحد فقط ، كل شيء في BE ، C - الظلم.
  • PQ - الطريق إلى القلة ، أذناب تفسح المجال.
  • فيصل القاسم - الجميع متساوون.
  • DWRR - جميعهم متساوون ، ولكن البعض أكثر تكافؤًا.

FIFO - أول من يخرج أولاً


أبسط الحالات ، في الواقع غياب جودة الخدمة ، هو أن يتم التعامل مع جميع حركة المرور بنفس الطريقة - في قائمة انتظار واحدة.

تغادر الحزم قائمة الانتظار تمامًا بالترتيب الذي وصلت به إلى هناك ، ومن هنا جاء الاسم: أولاً - أولاً ثم اليسار .

FIFO ليس مرسلًا بالمعنى الكامل للكلمة ، ولا آلية DiffServ بشكل عام ، لأنه لا يفصل بالفعل بين الفئات.

إذا بدأت قائمة الانتظار بالامتلاء ، وبدأ التأخير والارتعاش في النمو ، فلا يمكنك إدارتها ، لأنه لا يمكنك سحب حزمة مهمة من منتصف قائمة الانتظار.

يمكن لجلسات TCP القوية التي يبلغ حجمها 1500 بايت أن تشغل قائمة الانتظار بأكملها ، مما يتسبب في معاناة حزم الصوت الصغيرة.

في FIFO ، يتم دمج جميع الفئات في CS0.



ومع ذلك ، على الرغم من كل هذه العيوب ، فهذه هي الطريقة التي تعمل بها الإنترنت الآن.

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

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

FIFO لم يكن كافيًا ، لذلك قاموا بإنشاء العديد من قوائم الانتظار وبدأوا في إنتاج مخططات جدولة حركة المرور.

ومع ذلك ، فإن FIFO لا تغادر حياتنا أبدًا: داخل كل قائمة انتظار ، تتم معالجة الحزم دائمًا وفقًا لمبدأ FIFO.

PQ - الأولوية في قائمة الانتظار


الآلية الثانية الأكثر تعقيدًا ومحاولة تقسيم الخدمة إلى فئات هي قائمة انتظار ذات أولوية .

يتم وضع حركة المرور الآن في العديد من قوائم الانتظار وفقًا لفئتها - الأولوية (على سبيل المثال ، على الرغم من أنه ليس بالضرورة ، نفس BE ، AF1-4 ، EF ، CS6-7). المرسل يمر من قائمة انتظار واحدة تلو الأخرى.

أولاً ، يتخطى جميع الحزم من قائمة الانتظار ذات الأولوية القصوى ، ثم من أقل ، ثم من أقل. وهكذا في دائرة.

لا يبدأ المرسل في استرداد الحزم ذات الأولوية المنخفضة حتى تكون قائمة انتظار الأولوية العليا فارغة.



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



PQ يعمل تقريبا مثل FIFO.

إنه رائع لأنواع حركة المرور مثل حزم البروتوكول والصوت ، حيث تكون التأخيرات حرجة والحجم الإجمالي ليس كبيرًا جدًا.

حسنًا ، يجب أن تعترف ، لا يجب أن تبقي BFD Hello نظرًا لحقيقة أن العديد من مقاطع الفيديو الكبيرة من YouTube قد أتت؟

ولكن هنا يكمن الافتقار إلى PQ - إذا تم تحميل قائمة انتظار الأولوية بحركة المرور ، فلن يتحول المرسل إلى الآخرين على الإطلاق.

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

ليست هناك حاجة للحديث عن حارة مضمونة لكل خط أيضًا.
يمكن قطع قوائم الانتظار ذات الأولوية العالية من خلال سرعة حركة المرور التي تتم معالجتها فيها. ثم الآخرين لن يجوعوا. ومع ذلك ، فإن التحكم في ذلك ليس بالأمر السهل.



تمر الآليات التالية بجميع قوائم الانتظار بدورها ، مع أخذ كمية معينة من البيانات منها ، مما يوفر ظروفًا أكثر صدقًا. لكنهم يفعلون ذلك بشكل مختلف.

FQ-Fair Queuing


المنافس التالي لدور المرسل المثالي هو آليات الاصطفاف العادل .

FQ - قائمة انتظار عادلة


بدأ تاريخها في عام 1985 ، عندما اقترح جون ناجل إنشاء قائمة انتظار لكل دفق بيانات. من الناحية الروحية ، هذا قريب من نهج IntServ ويمكن تفسيره بسهولة بحقيقة أن فكرة فئات الخدمة ، مثل DiffServ ، لم تكن موجودة في ذلك الوقت.

استخرج FQ نفس كمية البيانات من كل قائمة انتظار بالترتيب.

يكمن الصدق في حقيقة أن المرسل لا يعمل مع عدد الحزم ، ولكن مع عدد البتات التي يمكن إرسالها من كل قائمة انتظار.

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

هناك ثلاثة عيوب:
الأول - الواضح - وهو مكلف للغاية - لبدء قائمة انتظار لكل تيار ، وحساب وزن كل حزمة والقلق دائمًا بشأن البتات التي سيتم تخطيها وحجم الحزمة.
الثانية - أقل وضوحًا - تحصل جميع سلاسل المحادثات على فرص متساوية من حيث النطاق الترددي. وإذا أردت غير متكافئة؟
الثالث - غير الواضح - صدق FQ مطلق: كل شخص لديه تأخيرات متساوية ، ولكن هناك خيوط أكثر أهمية من التأخير من الفرقة.
على سبيل المثال ، من بين 256 دفق هناك صوت ، مما يعني أن كل واحد منهم سيصل فقط من 256 سلسلة.
وماذا أفعل معهم غير واضح.



هنا يمكنك أن ترى أنه بسبب الحجم الكبير للحزمة في المرحلة الثالثة ، في الدورتين الأوليين قمنا بمعالجة حزمة واحدة من الأولين.

إن وصف آليات كل بت من Round Robin و GPS يتجاوز بالفعل نطاق هذه المقالة ، وأحيل القارئ إلى دراسة مستقلة .


WFQ - قائمة انتظار عادلة مرجحة


حاول العيوب الثانية والثالثة جزئيًا من FQ إغلاق WFQ ، الذي نشر في عام 1989.
تم تزويد كل قائمة انتظار بالوزن ، وبالتالي ، الحق في إعطاء حركة المرور بمضاعفات الوزن لدورة واحدة.
تم حساب الوزن على أساس معلمتين: لا تزال ذات صلة ثم أولوية IP وطول الحزمة.

في سياق WFQ ، كلما زاد الوزن ، كلما كان أسوأ.
لذلك ، كلما زادت أولوية IP ، انخفض وزن الحزمة.
كلما كان حجم العبوة أصغر ، كان وزنه أصغر.
وبالتالي ، فإن الحزم الصغيرة ذات الأولوية العالية تحصل على أكبر قدر من الموارد ، بينما ينتظر عمالقة الأولوية المنخفضة.
في الرسم التوضيحي أدناه ، تلقت الحزم مثل هذه الأوزان بحيث يتم في البداية تخطي حزمة واحدة من قائمة الانتظار الأولى ، ثم يتم معالجة اثنين من الثانية ، ومرة ​​أخرى من الأولى ثم تتم معالجة الثالثة فقط. لذا ، على سبيل المثال ، يمكن أن يحدث إذا كان حجم الحزم في المرحلة الثانية صغيرًا نسبيًا.



حول الهندسة القاسية لـ WFQ ، مع وقت انتهاء الحزمة ، والوقت الافتراضي ونظرية الباروكة ، يمكنك القراءة في وثيقة ملونة غريبة .

ومع ذلك ، فإن هذا لم يحل المشاكل الأولى والثالثة. كان النهج القائم على التدفق غير مريح تمامًا ، ولم تتلقها التدفقات التي كانت بحاجة إلى تأخيرات قصيرة واضطراب مستقر.
ومع ذلك ، لم يمنع هذا استخدام WFQ في بعض أجهزة Cisco (معظمها قديمة). كان هناك ما يصل إلى 256 قائمة انتظار تم وضع سلاسل الرسائل فيها بناءً على تجزئة رؤوسها. حل وسط بين النموذج القائم على التدفق والموارد المحدودة.

CBWFQ - WFQ القائم على الفئة


جعل CBWFQ النهج لمشكلة التعقيد مع ظهور DiffServ. صنّف السلوك الإجمالي جميع فئات الزيارات إلى 8 فئات ، وبالتالي ، قوائم الانتظار. أعطاه هذا اسمًا وطابورًا مبسطًا للغاية.

اكتسب الوزن في CBWFQ معنى مختلفًا. تم تعيين الوزن للفئات (وليس سلاسل العمليات) يدويًا في التكوين بناءً على طلب المسؤول ، لأن حقل DSCP كان مستخدمًا بالفعل للتصنيف.

أي أن DSCP حدد قائمة الانتظار التي سيتم وضعها والوزن المكون - عدد الممرات المتاحة لقائمة الانتظار هذه.

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

والحاجة إلى المراقبة المستمرة لحجم الحزم ، وتجزئتها وإلغاء تجزئتها ، لم تختف.

CBWFQ + LLQ - قائمة انتظار منخفضة الكمون


النهج النهائي ، تتويجا لنهج كل بتة ، هو اتحاد CBWFQ مع PQ.
يصبح أحد قوائم الانتظار ما يسمى LLQ (قائمة انتظار زمن الوصول المنخفض) ، وبينما تتم معالجة جميع قوائم الانتظار الأخرى بواسطة مدير CBWFQ ، يعمل مدير PQ بين LLQs والباقي.

أي أنه بينما توجد حزم في LLQ ، فإن قوائم الانتظار المتبقية تنتظر ، وتتزايد تأخيراتها. بمجرد نفاد الحزم في LLQ ، ذهبنا لمعالجة الباقي. ظهرت الحزم في LLQ - نسوا البقية ، عادوا إليها.

يعمل FIFO أيضًا داخل LLQ ، لذلك لا يجب عليك دفع كل شيء دون الوصول إلى هناك ، مما يزيد من استخدام المخزن المؤقت والتأخير في نفس الوقت.

ومع ذلك ، من أجل عدم تجويع قوائم الانتظار غير ذات الأولوية ، من المفيد تعيين حد عرض النطاق الترددي في LLQ.



فالأغنام ممتلئة والذئاب آمنة.

RR - راوند روبن


يدا بيد مع FQ مشى و RR .
كان أحدهم صادقًا ، ولكنه ليس بسيطًا. والآخر هو عكس ذلك تماما.



ذهب RR من خلال قوائم الانتظار ، واستخراج عدد متساو من الحزم منها. النهج هو أكثر بدائية من FQ ، وبالتالي غير أمين فيما يتعلق بالتدفقات المختلفة. يمكن للمصادر العدوانية أن تغمر الشريط بسهولة مع حزم بحجم 1500 بايت.

ومع ذلك ، كان من السهل جدًا تنفيذه - لا تحتاج إلى معرفة حجم الحزمة في قائمة الانتظار ، وتجزئتها ، ثم جمعها مرة أخرى.

ومع ذلك ، فإن ظلمه في تخصيص الشريط منع طريقه إلى العالم - في عالم الشبكات ، لم يتم تنفيذ Round-Robin النقي.

WRR - جولة روبن المرجحة


نفس المصير مع WRR ، الذي أضاف وزنا إلى قوائم الانتظار على أساس أسبقية IP. في WRR ، لم يتم إخراج عدد متساو من الحزم ، ولكن مضاعفًا لوزن قائمة الانتظار.

قد يكون من الممكن إعطاء وزن أكبر لقوائم الانتظار ذات الحزم الصغيرة ، ولكن القيام بذلك ديناميكيًا لم يكن ممكنًا.



DWRR - روبن عجز مرجح جولة


وفجأة ، تم اقتراح نهج غريب للغاية في عام 1995 من قبل M. Shreedhar و G. Varghese.
لكل سطر حد ائتمان منفصل بالبتات.

عند المرور من الطابور ، يتم إصدار العديد من الحزم حيث يوجد رصيد كافٍ.

يتم خصم حجم الحزمة في رأس قائمة الانتظار من مبلغ القرض.
إذا كان الفرق أكبر من الصفر ، تتم إزالة هذه الحزمة ويتم فحص الحزمة التالية. لذلك حتى يكون الفرق أقل من الصفر.

إذا لم يكن حتى في الحزمة الأولى ما يكفي من الائتمان ، حسنًا ، للأسف ، التدفقات الطينية ، يبقى في قائمة الانتظار.
قبل التمرير التالي ، يتم زيادة رصيد كل سطر بمقدار معين ، يسمى الكم .

بالنسبة إلى قوائم الانتظار المختلفة ، يختلف الكم - فكلما زاد النطاق الذي تحتاج إلى تقديمه ، زاد الكم.

وبالتالي ، تتلقى جميع قوائم الانتظار عرض نطاق ترددي مضمون ، بغض النظر عن حجم الحزم الموجودة فيه.



من الشرح أعلاه ، لن يكون واضحًا لي كيف يعمل هذا.

دعونا نرسم الخطوات ...
:

  • DRR ( W),
  • 4 ,
  • 0- 500 ,
  • 1- — 1000,
  • 2- 1500,
  • 3- 4000,
  • — 1600 .



1

1. 0
, 1600 ()
0- . :
— (1600 — 500 = 1100).
— — (1100 — 500 = 600).
— — (600 — 500 = 100).
— (100 — 500 = -400). .
— 100 .



1. 1
— (1600 — 1000 = 600).
(600 — 1000 = -400). .
— 600 .



1. 2
— (1600 — 1500 = 100).
(100 — 1000 = -900). .
— 100 .



1. 3
. (1600 — 4000 = -2400).
.
— 1600 .



, :

  • 0 — 1500
  • 1 — 1000
  • 2 — 1500
  • 3 — 0

:

  • 0 — 100
  • 1 — 600
  • 2 — 100
  • 3 — 1600

2

— 1600 .

2. 0
1700 (100 + 1600).
— (1700 — 3*500 = 200).
.
— 200 .



2. 1
2200 (600 + 1600).
— (2200 — 2*1000 = 200).
.
— 200 .


2. 2
1700 (100 + 1600).
— (2200 — 1500 = 200).
— .
— 200 .



2. 3
3200 (1600 + 1600).
(3200 — 4000 = -800)
— 3200 .


, :

  • 0 — 3000
  • 1 — 3000
  • 2 — 3000
  • 3 — 0

:

  • 0 — 200
  • 1 — 200
  • 2 — 200
  • 3 — 3200

3

— 1600 .

3. 0
1800 (200 + 1600).
— (1800 — 3*500 = 300).
.
— 300 .



3. 1
1800 (200 + 1600).
— (1800 — 1000 = 800).
— 800 .



3. 2
1800 (200 + 1600).
— (1800 — 1500 = 300).
— 300 .



3. 3
3- !
4800 (3200 + 1600).
— (4800 — 4000 = 800).
— 800 .



, :

  • 0 — 4500
  • 1 — 4000
  • 2 — 4500
  • 3 — 4000

:

  • 0 — 300
  • 1 — 800
  • 2 — 300
  • 3 — 800



DRR. .

, .



DWRR DRR , , , .



DRR, — , .

: , . .

مع DWRR ، يبقى السؤال مع ضمان التأخير والارتعاش - الوزن لا يحلها بأي شكل من الأشكال.
نظريا ، يمكنك أن تفعل نفس الشيء مع CB-WFQ ، مضيفا LLQ.

ومع ذلك ، هذا ليس سوى واحد من السيناريوهات المحتملة لشعبية متزايدة اليوم.

PB-DWRR - DWRR على أساس الأولوية


في الواقع ، أصبح الاتجاه السائد اليوم هو PB-DWRR - جولة مرجحة للعجز القائم على الأولوية روبن.

هذا هو نفس DWRR الشرير القديم ، حيث يتم إضافة قائمة انتظار أخرى - الأولوية ، حيث تتم معالجة الحزم بأولوية أعلى. هذا لا يعني أنها حصلت على شريط أكبر ، ولكن سيتم أخذ هذه العبوات من هناك في كثير من الأحيان.



هناك عدة طرق لتنفيذ PB-DWRR. في بعضها ، كما هو الحال في PQ ، تتم إزالة أي حزمة تصل إلى قائمة انتظار الأولوية على الفور. في حالات أخرى ، يتم الوصول إليه في كل مرة يتحرك فيها المرسل بين قوائم الانتظار. ثالثًا ، يتم تقديم رصيد وكمية لذلك ، بحيث لا يمكن لقائمة انتظار الأولوية الضغط على الشريط بأكمله.
بالطبع ، لن نقوم بتحليلها.

ملخص قصير حول آليات الإرسال


على مدى عقود ، كانت البشرية تحاول حل أصعب مشكلة في ضمان المستوى المناسب من الخدمة والتوزيع العادل للفرقة. كانت قوائم الانتظار هي الأداة الرئيسية ؛ وكان السؤال الوحيد هو كيفية الحصول على الحزم من قوائم الانتظار ، في محاولة لدفعها إلى واجهة واحدة.

بدءًا من FIFO ، اخترع PQ - كان الصوت قادرًا على التعايش مع ركوب الأمواج ، ولكن لم يكن هناك شك في ضمان الفرقة.

ظهرت العديد من FQ الوحشية ، WFQ ، والتي عملت إن لم يكن لكل تدفق ، ثم تقريبا مثل هذا. جاء CB-WFQ إلى المجتمع الطبقي ، لكن الأمر لم يكن أسهل.

كبديل ، طور RR. أصبح WRR ، ثم DWRR.
وفي أعماق كل من المرسل يعيش FIFO.

ومع ذلك ، كما ترى ، لا يوجد مرسل عالمي يتعامل مع جميع الفئات كما تتطلب. إنه دائمًا مزيج من المرسلين ، يحل أحدهم مشكلة ضمان التأخير والارتعاش وعدم وجود خسائر ، ويخصص الآخر نطاقًا.
CBWFQ + LLQ أو PB-WDRR أو WDRR + PQ.

على المعدات الحقيقية ، يمكنك تحديد قوائم الانتظار التي يجب معالجتها مع أي مرسل.

CBWFQ ، WDRR ومشتقاتها هي المفضلة اليوم.
PQ ، FQ ، WFQ ، RR ، WRR - نحن لا نحزن ولا نتذكر (إلا إذا كنا بالطبع نستعد ل CCIE Clipper).



لذا ، فإن المرسلين قادرون على ضمان السرعة ، ولكن كيف يمكن الحد من ذلك من الأعلى؟

8. الحد الأقصى للسرعة


الحاجة إلى الحد من سرعة حركة المرور للوهلة الأولى واضحة - لا تدع العميل يخرج من فرقته وفقًا للاتفاقية.

نعمولكن ليس هذا فقط. لنفترض أن هناك نطاق RRL يبلغ 620 ميجابت / ثانية متصلاً عبر منفذ 1 جيجابت / ثانية. إذا قمت بنقل جيجابت بالكامل إليه ، فعندئذ في مكان ما على RRL ، والذي ، على الأرجح ، ليس لديه فكرة عن قوائم الانتظار وجودة الخدمة ، ستبدأ قطرات وحشية ذات طبيعة عشوائية ، غير مرتبطة بالأولويات الحقيقية لحركة المرور.

ومع ذلك ، إذا قمت بتمكين تشكيل ما يصل إلى 600 ميجا بايت / ثانية على جهاز التوجيه ، فلن يتم تجاهل EF و CS6 و CS7 على الإطلاق ، وفي BE و AFx ، سيتم توزيع النطاق والقطرات وفقًا لأوزانهم. سيصل RRL إلى 600 ميجا بايت / ثانية وسنحصل على صورة يمكن التنبؤ بها.

مثال آخر هو التحكم في القبول. على سبيل المثال ، وافق عاملان على الثقة في علامات بعضهما البعض ، باستثناء CS7 - إذا كان هناك شيء في CS7 - تجاهل. بالنسبة لـ CS6 و EF - ضع قائمة انتظار منفصلة مع ضمان التأخير وعدم الخسارة.

ولكن ، ماذا لو بدأ الشريك الماكر في صب السيول في هذه الخطوط؟ وداعا الهاتفية. ومن المرجح أن تنهار البروتوكولات.

من المنطقي في هذه الحالة الاتفاق مع شريك حول الشريط. يتم تخطي كل شيء يناسب العقد. ما لا يصلح - تجاهل أو نقل إلى قائمة انتظار أخرى - BE ، على سبيل المثال. وبالتالي ، فإننا نحمي شبكتنا وخدماتنا.

هناك نهجان مختلفان بشكل أساسي للحد من السرعة: التلميع والتشكيل. يحلون مشكلة واحدة ، ولكن بطرق مختلفة.

ضع في اعتبارك الفرق باستخدام مثال لملف تعريف حركة المرور هذا:




شرطة المرور


الشرطة تحد من السرعة بإسقاط حركة المرور الزائدة.
كل شيء يتجاوز القيمة المحددة ، تقطع البوليستر وتتخلص منها.



يتم نسيان ما قطع. تظهر الصورة أن الحزمة الحمراء ليست في حركة المرور بعد البوليستر.

وإليك ما سيبدو عليه الملف الشخصي المحدد بعد البوليستر:



بسبب شدة التدابير المتخذة ، يسمى هذا ضبط الشرطة .
ومع ذلك ، هناك إجراءات أخرى محتملة.
عادة ما يعمل جهاز الربط مع عداد حركة المرور. يقوم جهاز القياس بتلوين الأكياس ، كما تتذكر ، باللون الأخضر أو ​​الأصفر أو الأحمر.
وعلى أساس هذا اللون بالفعل ، قد لا تتخلص البوليستر من العبوة ، ولكنها تضعها في فئة أخرى. هذه إجراءات ميسرة - الشرطة الناعمة .
يمكن تطبيقه على كل من حركة المرور الواردة وحركة المرور الصادرة.
السمة المميزة لجهاز التحلل هي القدرة على امتصاص دفقات حركة المرور وتحديد السرعة القصوى المسموح بها بفضل آلية Bucken Bucket.
هذا ، في الواقع ، كل شيء ليس أعلى من القيمة المحددة لا يتم قطعه - يُسمح بتجاوزه قليلاً - يتم تخطي الاندفاعات القصيرة أو التجاوزات الصغيرة للنطاق المخصص.

يتم تحديد اسم "الشرطة" من خلال النسبة الصارمة للأداة إلى حركة المرور الزائدة - التخلص من الرتبة أو تخفيضها إلى فئة أدنى.

تشكيل حركة المرور


يحد الشكل من السرعة عن طريق التخزين المؤقت لحركة المرور الزائدة.

كل حركة المرور الواردة تمر من خلال المخزن المؤقت. يقوم المشكل بإزالة الحزم من هذا المخزن المؤقت بسرعة ثابتة.

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

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



يوضح الرسم التوضيحي بوضوح كيف تصل الحزمة في المخزن المؤقت t2 للوقت في الوقت t3 عند الإخراج. t3-t2 هو التأخير الذي يقدمه المشكل.

عادة ما يتم تطبيق المشكل على حركة المرور الصادرة.

هكذا يبدو ملف التعريف بعد المشكل.



يشير الاسم "تشكيل" إلى أن الأداة تعطي ملف تعريف حركة المرور شكلاً ، وتسويته.

الميزة الرئيسية لهذا النهج هي الاستخدام الأمثل للنطاق الحالي - بدلاً من إسقاط حركة المرور المفرطة ، نقوم بتأجيله.

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

تشكيل مقابل تلميع


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

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

بالنسبة لأولئك الذين تكون الحزمة المتأخرة هي نفسها تمامًا مثل الحزمة المفقودة ، فمن الأفضل أن تسقطها على الفور - ثم تلميع.

لا يؤثر المشكل على رؤوس الحزمة ومصيرها خارج العقدة ، بينما بعد التلميع يمكن للجهاز إعادة تصنيف الصف في الرأس. على سبيل المثال ، عند الإدخال ، كانت الحزمة تحتوي على الفئة AF11 ، وقياسها باللون الأصفر داخل الجهاز ، وعند الإخراج أعادت وضع علامة على فئتها على AF12 - في العقدة التالية سيكون لها احتمال أكبر للسقوط.





ممارسة تلميع وتشكيل


المخطط هو نفسه:



ملف التكوين.

نلاحظ هذه الصورة دون تطبيق قيود:



سنستمر على النحو التالي:

  • على واجهة الإدخال Linkmeup_R2 (e0 / 1) سنقوم بتكوين التلميع - سيكون هذا هو التحكم في الإدخال. بموجب الاتفاقية ، نعطي 10 ميجا بت / ثانية.
  • على واجهة الإخراج Linkmeup_R4 (e0 / 2) ، قم بتكوين التشكيل بسرعة 20 ميجا بت / ثانية.

لنبدأ مع المشكل على Linkmeup_R4 .

تطابق كل شيء:

  class-map match-all TRISOLARANS_ALL_CM match any 

شكل يصل إلى 20 ميجا بايت / ثانية:

  policy-map TRISOLARANS_SHAPING class TRISOLARANS_ALL_CM shape average 20000000 

تنطبق على واجهة الإخراج:

  interface Ethernet0/2 service-policy output TRISOLARANS_SHAPING 

كل شيء يجب أن يترك (الإخراج) واجهة Ethernet0 / 2 ، شكل يصل إلى 20 ميجا بت / ثانية.

ملف تكوين المشكل.

وإليكم النتيجة:



تبين خطًا مسطحًا إلى حد ما من إجمالي الإنتاجية والرسومات الممزقة لكل تيار فردي.

والحقيقة هي أننا نقصر المشكل على الفرقة العامة. ومع ذلك ، اعتمادًا على النظام الأساسي ، يمكن أيضًا تشكيل التدفقات الفردية بشكل فردي ، وبالتالي الحصول على فرص متساوية.



الآن قم بتكوين التلميع على Linkmeup_R2.

نضيف بوليستر إلى السياسة الحالية.

  policy-map TRISOLARANS_ADMISSION_CONTROL class TRISOLARANS_TCP_CM police cir 10000000 bc 1875000 conform-action transmit exceed-action drop 

تم تطبيق السياسة بالفعل على الواجهة:

  interface Ethernet0/1 service-policy input TRISOLARANS_ADMISSION_CONTROL 

هنا نشير إلى متوسط ​​السرعة المسموح بها CIR (10 ميجا بايت / ثانية) والانفجار المسموح به Bc (1،875،000 بايت حوالي 14.6 ميجا بايت).

بعد ذلك ، شرحًا لكيفية عمل البوليستر ، سأخبرك ما هي CIR و Bc وكيفية تحديد هذه القيم.

ملف تكوين بوليسر.

لوحظت هذه الصورة مع polysing. تظهر على الفور تغييرات مفاجئة في مستوى السرعة:





ولكن يتم الحصول على مثل هذه الصورة المثيرة للاهتمام إذا جعلنا حجم الرشقة المسموح به صغيرًا جدًا ، على سبيل المثال ، 10000 بايت.

  police cir 10000000 bc 10000 conform-action transmit exceed-action drop 



انخفضت السرعة الإجمالية على الفور إلى حوالي 2Mb / s.
كن حذرا مع إعداد الرشقات :)

طاولة الاختبار.



دلو متسرب ودلو رمزي


يبدو سهلا وواضحا. ولكن كيف يعمل في الممارسة ويتم تنفيذه في الأجهزة؟

مثال.

هل حد 400 ميجا بايت / ثانية كثير (أو قليل)؟ في المتوسط ​​، يستخدم العميل 320 فقط. ولكن في بعض الأحيان يرتفع إلى 410 لمدة 5 دقائق. وأحيانًا تصل إلى 460 للدقيقة. وأحيانًا تصل إلى 500 لمدة نصف ثانية.
كما يقول linkmeup المزود التعاقدي - 400 وهذا كل شيء! إذا كنت تريد المزيد ، اتصل بتعريف قنوات الأنمي 1Gb / s + 27.
ويمكننا زيادة ولاء العملاء إذا لم يتعارض ذلك مع الآخرين من خلال السماح بهذه الطفرات.
كيفية السماح بـ 460 ميجا بت / ثانية لمدة دقيقة واحدة فقط ، وليس 30 أو للأبد؟
كيف تسمح بـ 500 ميجا بت / ثانية ، إذا كان النطاق مجانيًا ، واضغط على 400 ، إذا ظهر مستهلكون آخرون؟

الآن خذ استراحة ، صب دلو قوي.

لنبدأ بالآلية الأبسط التي يستخدمها المشكل - دلو التسرب.

خوارزمية دلو متسرب


دلو متسرب دلو متسرب.



لدينا دلو مع فتحة بحجم معين في الأسفل. يتم سكب / سكب الأكياس في هذا الدلو من الأعلى. ومن الأسفل ، تتدفق بمعدل بت ثابت.

عند امتلاء الجرافة ، يبدأ التخلص من الحزم الجديدة.

يتم تحديد حجم الثقب من خلال حد السرعة المحدد ، والذي يتم قياسه بالنسبة للدلو المتسرب بالبت في الثانية.

يحدد حجم الجرافة وملئها وسرعة الإخراج التأخير الذي يحدثه المشكل.
من أجل الراحة ، عادة ما يتم قياس حجم الجرافة بالمللي ثانية أو بالثواني.

من حيث التنفيذ ، Leaky Bucket هو مخزن مؤقت منتظم يعتمد على SD-RAM.

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

دلو التسرب يستخدم فقط للتشكيل وغير مناسب للتلميع.

خوارزمية دلو الرمز المميز


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

رقائق التبديل لا تفهم حقًا ما هو الوقت ، فهي تزداد سوءًا كم عدد البتات التي ترسلها لكل وحدة زمنية. وظيفتهم هي الدرس.

هل هذا يقترب قليلاً من 400.000.000 بت في الثانية ، أو 400000 001 بالفعل؟



واجه مطورو ASIC تحديًا هندسيًا غير تافه.

تم تقسيمها إلى مهمتين فرعيتين:

  1. في الواقع الحد من السرعة عن طريق التخلص من الحزم غير الضرورية على أساس حالة بسيطة للغاية. يتم على رقائق التبديل.
  2. خلق هذا الشرط البسيط ، الذي يتعامل مع شريحة أكثر تعقيدا (أكثر تخصصا) ، تتبع الوقت.

تسمى الخوارزمية التي تحل المشكلة الثانية دلو الرمز المميز. فكرته أنيقة وبسيطة (لا).

تتمثل مهمة Token Bucket في تمرير حركة المرور إذا كانت تقع ضمن التقييد وتجاهل / طلاء باللون الأحمر إذا لم يكن كذلك.

من المهم السماح برشقات حركة المرور ، لأن هذا أمر طبيعي.
وإذا كانت دفقات Leaky Bucket تم تخزينها مؤقتًا ، فإن دلو Token لا يقوم بتخزين أي شيء.

سعر منفرد - تعليم بلونين


في الوقت الحالي ، لا تنتبه إلى الاسم =)
لدينا دلو تسقط فيه العملات بسرعة ثابتة - 400 ميغاواط في الثانية ، على سبيل المثال.

يبلغ حجم الدلو 600 مليون عملة. أي أنه يتم ملؤها في ثانية ونصف.

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





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



قد تكون الحزمة التالية من العملات المعدنية كافية بالفعل - أولاً ، قد تكون الحزمة أصغر ، وثانياً ، تهاجم المزيد من العملات المعدنية خلال هذه الفترة.

إذا كان الدلو ممتلئًا بالفعل ، فسيتم التخلص من جميع العملات المعدنية الجديدة.



كل هذا يتوقف على معدل وصول الحزمة وحجمها.
إذا كانت أقل من أو تساوي 400 ميجابايت في الثانية ، فسيكون هناك دائمًا عملات معدنية كافية.
إذا كانت أعلى ، فستفقد بعض الحزم.
مثال أكثر تحديدًا مع صور gif ، لأننا جميعًا نحب.



  • يوجد دلو بسعة 2500 بايت. في البداية ، يحتوي على 550 توكينز.
    هناك ثلاث حزم من 1000 بايت على خط الأنابيب تريد إرسالها إلى الواجهة.
    في كل فتحة زمنية ، تقع 500 بايت في الدلو (500 * 8 = 4000 بت / فتحة زمنية - حد بوليزر).
  • 500 . . 1000 , 1050 — . . 1000 .
    50 .
  • 500 — 550. — 1000 — .
    , .
  • 500 — 1050. — 1000 — .
    , .

2500 , 2500 — . MTU , , , 1,5-2 .

:

CBS = CIR ( )*1,5 ()/8 ( )

, (Bc), , (1 875 000 ) . (10 000 ), , MTU, .
لماذا حجم الدلو؟ إن تدفق البتات ليس دائمًا متجانسًا ، وهذا واضح. حد 400 ميجا بايت / ثانية ليس خطًا مقاربًا - يمكن لحركة المرور عبوره. يسمح حجم العملات المعدنية المخزنة للرشقات الصغيرة بالتحليق دون التخلص منها ، ولكن الحفاظ على متوسط ​​السرعة عند 400 ميجابايت / ثانية.

على سبيل المثال ، سيسمح تيار مستقر يبلغ 399 ميجا بت / ثانية في 600 ثانية للدلو بالملء حتى الحافة.
علاوة على ذلك ، يمكن أن ترتفع حركة المرور إلى 1000Mb / s وتبقى عند هذا المستوى لمدة ثانية واحدة - 600 Mm (Megamonet) من الأسهم و 400 Mm / s نطاق مضمون.

أو ، يمكن أن تصل حركة المرور إلى 410 ميجا بت / ثانية وتبقى على هذا النحو لمدة 60 ثانية.



أي أن عرض العملات المعدنية يسمح لك بتجاوز القيد لفترة طويلة قليلاً أو التخلص من ارتفاع قصير ولكن مرتفع.
الآن إلى المصطلحات.
معدل استلام العملات المعدنية في الدلو - CIR - معدل المعلومات الملتزم بها (متوسط ​​السرعة المضمونة). يقاس بت في الثانية.
عدد العملات المعدنية التي يمكن تخزينها في الدلو - CBS - حجم الاندفاع الملتزم . الحد الأقصى المسموح به لحجم الرشقة. يقاس بالبايت. في بعض الأحيان ، كما لاحظت ، تسمى Bc .
Tc - عدد العملات المعدنية (الرمز المميز) في دلو C (CBS) في الوقت الحالي.


" Tc ", , RFC 2697 ( A Single Rate Three Color Marker ).
Tc, , .
.
, , Token Bucket, TDM (Time-Division Multiplexing) — .
— , , .
CIR . .
, — , — , — .
, .
( Cisco) Tc , — Bc . Bc = CIR*Tc .
Tc Bc .
هذا هو أبسط سيناريو. يطلق عليه سعر واحد - لونين .
المعدل الفردي يعني أن هناك متوسط ​​واحد فقط للسرعة المسموح بها ولونين - يمكنك تلوين حركة المرور بأحد لونين: أخضر أو ​​أحمر.

  1. إذا كان عدد العملات المعدنية المتاحة (البتات) في الدلو C أكبر من عدد القطع التي يجب تخطيها في الوقت الحالي ، فإن الحزمة ملونة باللون الأخضر - وهو احتمال منخفض للسقوط في المستقبل. تتم إزالة العملات المعدنية من الدلو.
  2. خلاف ذلك ، يتم طلاء الحزمة باللون الأحمر - احتمال كبير لسقوط (أو ، في كثير من الأحيان ، قطرة مؤقتة). عملات معدنية وبالتالي دلاء يتم سحب C .

يستخدم للتلميع في PHB CS و EF ، حيث لا يتوقع حدوث زيادة في السرعة ، ولكن إذا حدث ذلك ، فمن الأفضل التخلص منه على الفور.

علاوة على ذلك ، سننظر في الأمر أكثر صعوبة: سعر فردي - ثلاثة ألوان.

سعر منفرد - ثلاثة ألوان مميزة


, . , , ?
sr-TCM ( Single Rate — Three Color Marking ) — E . , C , E .



CIR CBS EBS — Excess Burst Size — . TeE .



B . ثم

  1. C , . C B (: Tc — B).
  2. C , E . , ( ), E B .


  3. E , , .



, Tc Te .
8000 , C 3000 , E — 7000. C , E — — .

. , CIR+CBS ( , / ) — . , C , Te E .

أي أنه يمكنك تخطي أكثر قليلاً ، ولكن في حالة الازدحام ، من المرجح التخلص منها.

تم وصف sr-TCM في RFC 2697 .
تستخدم لتلميع في PHB AF.

حسنًا ، النظام الأخير هو الأكثر مرونة وبالتالي فهو معقد - معدلان - ثلاثة ألوان.

اثنان - معدل ثلاثة ألوان


ولد نموذج Tr-TCM من فكرة أنه لا يضر بالمستخدمين الآخرين وأنواع حركة المرور ، فلماذا لا يمنح العميل فرصًا أكثر متعة أو يبيع بشكل أفضل.
دعنا نقول له إنه مضمون 400 ميغا بايت / ثانية ، وإذا كانت هناك موارد مجانية ، فحينئذٍ 500. هل أنت مستعد لدفع 30 روبل أكثر؟

وأضاف آخر دلو P .

وبالتالي:

CIR - متوسط ​​السرعة المضمونة.
CBS هو نفس حجم الرذاذ المسموح به (حجم الجرافة C ).
PIR - معدل معلومات الذروة - متوسط ​​السرعة القصوى.
EBS - حجم الرشقة المسموح به أثناء القمم (حجم الجرافة P ).

على عكس sr-TCM ، في tr-TCM ، يتم تسليم العملات المعدنية بشكل مستقل إلى كل من الدلاء. في C - بسرعة CIR ، في P - PIR.



ما هي القواعد؟

تصل حزمة بحجم B بايت.

  1. إذا لم يكن هناك ما يكفي من العملات المعدنية في الدلو P ، فسيتم تمييز الحزمة باللون الأحمر. لا يتم سحب العملات المعدنية . خلاف ذلك:
  2. إذا لم يكن هناك ما يكفي من العملات المعدنية في الدلو C ، يتم تمييز الحزمة باللون الأصفر ، ويتم إخراج العملات المعدنية B من الدلو P. خلاف ذلك:
  3. تم تمييز الحزمة باللون الأخضر وتم رسم العملات المعدنية B من الدلاء .



tr-TCM .

, . , C , P , , PIR ( C , P ́ ).

, , , P , C .

tr-TCM , .

tr-TCM RFC 2698 .
PHB AF.




أثناء تأجيل حركة المرور عند تجاوزها ، يتجاهلها التلميع.
التشكيل غير مناسب للتطبيقات الحساسة للكمون والارتعاش.
لتنفيذ التلميع في الأجهزة ، يتم استخدام خوارزمية Token Bucket ، لتشكيل - Leaky Bucket.

يمكن أن يكون دلو الرمز المميز:

  • مع دلو واحد - معدل واحد - وسم بلونين. يسمح برشقات نارية صالحة.
  • مع دلاء - معدل واحد - ثلاثة ألوان (sr-TCM). يسكب الفائض من الجرافة C (CBS) في الجرافة E. يسمح بالزيادات المسموح بها والمتكررة.
  • مع دلاء - معدلين - ثلاثة ألوان (tr-TCM). يتم تجديد الدلاء C و P (PBS) بشكل مستقل بسرعات مختلفة. يسمح بالسرعة القصوى والانفجارات المسموح بها والمفرطة.

يركز sr-TCM على مقدار حركة المرور فوق الحد. tr-TCM - بالسرعة التي يصل بها.

يمكن استخدام التلميع عند الإدخال والإخراج من الجهاز. تشكيل في الغالب عند الخروج.
بالنسبة إلى PHB CS و EF ، يتم استخدام علامة لون ثنائية بمعدل أحادي.
بالنسبة إلى AF أو sr-TCM أو tr-TCM.

لفهم أفضل ، أوصي بالرجوع إلى RFC الأصلي أو القراءة هنا .
Token Bucket . , , , , .
, — , . , , , — .
, . — . .


أعلاه ، وصفت جميع الآليات الأساسية لجودة الخدمة ، إن لم تكن عميقة في جودة الخدمة الهرمية. نظام متطور يحتوي على العديد من الأجزاء المتحركة.
كل شيء على ما يرام (صحيح؟) بدا حتى الآن ، ولكن ما الذي يحدث تحت لوحة الفانيليا الخارجية لجهاز التوجيه؟

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

9. تنفيذ الأجهزة لجودة الخدمة


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

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

بشكل عام ، سأخلي إخلاء المسؤولية من أن كل شيء في الواقع ليس هو نفسه في الواقع ، وسأذهب وفقًا لإصدار عرض تقديمي بسيط.

اغفر لي زملائي الكمال.

ما الذي يتحكم في سلوك العقدة ويطلق الآليات المناسبة فيما يتعلق بالحزمة؟ الأولوية التي تحملها في أحد العناوين؟ نعم ولا.



, .



, , - .

(BA MF) .

.
— , , , (CoS) (Drop Precedence). — DSCP, .

, , , .

Cisco QoS Group, Juniper — Forwarding Class, Huawei : - internal priorities, - local priorities, - Service-Class, - CoS. — .

, .
, , , , — .

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

يعرّف التصنيف الداخلي لـ CoS و Drop Precedence السلوك فقط داخل عقدة معينة ولا يتم تمريره بشكل صريح إلى الجيران ، باستثناء إعادة تسمية العناوين.

تحدد CoS و Drop Precedence PHB وآلياته ومعلماته: منع الازدحام وإدارة الازدحام والجدولة وإعادة التسمية.



ما هي الدوائر التي تمر بها الحزم بين واجهات الإدخال والإخراج؟ لقد راجعت في مقال سابق . في الواقع ، اتضح أنه غير مجدول ، لأنه في مرحلة ما أصبح من الواضح أنه بدون فهم الهندسة المعمارية كان من السابق لأوانه التحدث عن جودة الخدمة.

ومع ذلك ، دعنا نكرر.



  1. تضرب الإشارة واجهة الإدخال المادية ورقاقة (PIC). يتدفق منه دفق صغير ثم حزمة تحتوي على جميع الرؤوس.
  2. بجوار شريحة تحويل الإدخال (FE) ، حيث يتم فصل الرؤوس عن نص الحزمة. يحدث التصنيف ويتم تحديد مكان إرسال الحزمة بشكل أكبر.
  3. بجوار قائمة انتظار الإدخال (TM / VOQ). بالفعل هنا يتم وضع الحزم في طوابير مختلفة بناءً على فئتها.
  4. بالإضافة إلى مصنع التحويل (إن وجد).
  5. بجوار قائمة انتظار الإخراج (TM).
  6. (FE), .
  7. (, ) (PIC).

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

في الواقع ، هناك مكانان فقط تعمل فيه آليات جودة الخدمة - شريحة تبديل وشريحة / قائمة انتظار إدارة حركة المرور.

في الوقت نفسه ، تحدث العمليات على رقاقة التحويل التي تتطلب التحليل أو الإجراءات مع الرؤوس.

  • التصنيف
  • تلميع
  • إعادة التسمية

تتولى TM الباقي. بشكل أساسي ، هذه عمليات روتينية مع خوارزمية محددة مسبقًا ومعلمات مخصصة:

  • منع الازدحام
  • إدارة الازدحام
  • تشكيل

TM هو مخزن مؤقت ذكي ، عادة ما يعتمد على ذاكرة الوصول العشوائي.

إنه ذكي لأنه ، أ) قابل للبرمجة ، ب) يمكنه القيام بكل أنواع الأشياء الصعبة مع قوائم الانتظار.
غالبًا ما يتم توزيعها - توجد شرائح SD-RAM على كل لوحة واجهة ، ويتم دمجها معًا في VOQ (قائمة انتظار الإخراج الظاهري) ، والتي تحل مشكلة حظر خط الرأس.
والحقيقة هي أنه إذا تم خنق شريحة التبديل أو واجهة الإخراج ، فإنهم يطلبون من رقاقة الإدخال أن تبطئ ولا ترسل حركة المرور لبعض الوقت. إذا كان هناك طابور واحد فقط في جميع الاتجاهات ، فمن المخيب للآمال للغاية أن جميع الآخرين يعانون من واجهة إخراج واحدة. هذا هو رأس حجب الخط.

VOQ ، على لوحة واجهة الإدخال ، ينشئ العديد من قوائم انتظار الإخراج الظاهري لكل واجهة إخراج موجودة.

علاوة على ذلك ، تأخذ هذه الخطوط في المعدات الحديثة في الاعتبار وضع العلامات على العبوة.
حول VOQ موصوفة بتفاصيل كافية في سلسلة من الملاحظات هنا .

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

VOQ هو قائمة انتظار برامج (المصطلح الإنجليزي Software Queue هو أكثر دقة). بعد ذلك ، قبل الواجهة مباشرة ، يوجد أيضًا قائمة انتظار للأجهزة ، والتي تعمل دائمًا بشكل صارم وفقًا لـ FIFO. يكاد يكون من المستحيل التحكم في أي من معلماتها (على سبيل المثال ، تسمح لك Cisco بتكوين العمق فقط باستخدام الأمر tx-ring-limit).

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

حجم قائمة انتظار الأجهزة صغير جدًا (وحدات الحزم) ، لأن المرسل يقوم بكل عمل تكديس معدل الخط.

لسوء الحظ ، يمكنك هنا إجراء الكثير من التحفظات ، بل وإلغاء كل شيء بقلم أحمر وقول "البائع X ليس كذلك".



أود أن أدلي بملاحظة أخرى حول حزم الخدمات. يتم التعامل معها بشكل مختلف عن حزم مستخدم العبور.

يتم إنشاؤها محليًا ، ولا يتم التحقق من مطابقتها لقواعد ACL وحدود السرعة.

الحزم من الخارج المخصصة لوحدة المعالجة المركزية من رقاقة تحويل الإخراج تقع في قوائم انتظار أخرى - إلى وحدة المعالجة المركزية - بناءً على نوع البروتوكول.

على سبيل المثال ، BFD له الأولوية القصوى ، OSPF يمكن أن ينتظر لفترة أطول ، و ICMP بشكل عام ليس مخيفًا لإسقاط. أي أنه كلما زادت أهمية الحزمة لكي تعمل الشبكة ، زادت فئة الخدمة عند الإرسال إلى وحدة المعالجة المركزية. هذا هو السبب في أنه من الطبيعي أن نرى تأخيرات متفاوتة في قفزة العبور في اختبار الاتصال أو التتبع - لا تعد ICMP حركة مرور ذات أولوية لوحدة المعالجة المركزية.
بالإضافة إلى ذلك ، يتم تطبيق حزم البروتوكولCoPP - حماية طائرة التحكم (أو الشرطة) - تحديد السرعة لتجنب الاستخدام العالي لوحدة المعالجة المركزية - مرة أخرى ، انخفاضات يمكن التنبؤ بها بشكل أفضل في قوائم الانتظار ذات الأولوية المنخفضة قبل بدء المشاكل.
سوف يساعد CoPP من كل من DoS المستهدفة ومن سلوك الشبكة غير الطبيعي (على سبيل المثال ، الحلقات) عندما يبدأ الكثير من حركة مرور البث في الوصول إلى الجهاز.



روابط مفيدة



وبالطبع ، جناح RFC ...


الخلاصة


كان لهذا الإصدار العديد من المراجعين.
شكرا لك
ألكسندر فاتن ( LoxmatiyMamont ) لكلمة تعريفية ونصيحة قيمة حول تعبير ووضوح النص.
ألكسندر كليبر (metallicat20) لمراجعة نظيره.
ألكسندر كليمينكو (@ v00lk) لانتقاد شديد والتغييرات الأكثر ضخامة في الأيام الأخيرة.
Andrey Glazkov (@ glazgoo) للحصول على تعليقات حول البنية والمصطلحات والفواصل.
Artyom Chernobay لـ KDPV.
أنطون كلوككوف (NAT_GTX) لاتصالات مع ميران.
Miran (miran.ru) لتنظيم خادم مع إيفا والبث. تقليديا ، عائلتي ، التي ، مع ذلك ، عانت هذه المرة على الأقل بسبب غيابها بالقرب من أصعب اللحظات.

Source: https://habr.com/ru/post/ar420525/


All Articles