Scroll to navigation

TC(8) لينكس TC(8)

الاسم

tbf - مرشح دلو الرموز

موجز

tc qdisc ... tbf rate المعدل burst بايت/خلية ( latency مللي ثانية | limit بايت ) [ mpu بايت [ peakrate المعدل mtu بايت/خلية ] ]

يُعرف burst أيضًا باسم buffer وmaxburst. يُعرف mtu أيضًا باسم minburst.

الوصف

مرشح دلو الرموز هو نظام طابور صنفي متاح للتحكم في حركة المرور باستخدام الأمر tc(8).

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

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

خوارزمية

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

عند الإنشاء، يُخزّن TBF بالرموز التي تتوافق مع مقدار حركة المرور التي يمكن انفجارها دفعة واحدة. تصل الرموز بمعدل ثابت، حتى يمتلئ الدلو.

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

إذا لم يكن مقبولاً انفجار الحزم بأقصى سرعة، يمكن تهيئة peakrate للحد من السرعة التي يفرغ بها الدلو. يُنفذ هذا peakrate كـ TBF ثانٍ بدلو صغير جدًا، بحيث لا ينفجر.

لتحقيق الكمال، قد يحتوي الدلو الثاني على حزمة واحدة فقط، مما يؤدي إلى الحد المذكور سابقًا البالغ 1 ميغابت/ثانية.

ينتج هذا الحد عن حقيقة أن النواة يمكنها فقط الخنق لمدة 1 'jiffy' كحد أدنى، والذي يعتمد على HZ كـ 1/HZ. للتشكيل المثالي، يمكن إرسال حزمة واحدة فقط لكل jiffy - بالنسبة لـ HZ=100، يعني هذا 100 حزمة بمتوسط 1000 بايت لكل منها، والذي يتوافق تقريبًا مع 1 ميغابت/ثانية.

المعاملات

انظر tc(8) لكيفية تحديد وحدات هذه القيم.

Limit هو عدد البايتات التي يمكن اصطفافها في انتظار توفر الرموز. يمكنك أيضًا تحديد هذا بالطريقة المعاكسة بتعيين معامل latency، الذي يحدد أقصى مقدار من الوقت يمكن للحزمة أن تبقى فيه في TBF. يأخذ الحساب الأخير في الاعتبار حجم الدلو والمعدل وربما peakrate (إذا تم تعيينه). هذان المعاملان متنافيان.
يُعرف أيضًا باسم buffer أو maxburst. حجم الدلو، بالبايت. هذا هو أقصى مقدار من البايتات يمكن أن تكون الرموز متوفرة له فوريًا. بشكل عام، تتطلب معدلات التشكيل الأكبر مخزنًا مؤقتًا أكبر. بالنسبة لـ 10 ميغابت/ثانية على Intel، تحتاج إلى مخزن مؤقت بحجم 10 كيلوبايت على الأقل إذا كنت تريد الوصول إلى معدلك المُهيأ!

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

تُجرى حسابات استخدام الرمز باستخدام جدول له دقة افتراضية تبلغ 8 حزم. يمكن تغيير هذه الدقة بتحديد حجم cell مع burst. على سبيل المثال، لتحديد مخزن مؤقت بحجم 6000 بايت بحجم خلية 16 بايت، عيّن burst بقيمة 6000/16. ربما لن تضطر أبدًا إلى تعيين هذا. يجب أن يكون قوة صحيحة للعدد 2.

الحزمة ذات الحجم الصفري لا تستخدم عرض نطاق صفري. بالنسبة للإيثرنت، لا تستخدم أي حزمة أقل من 64 بايت. تحدد وحدة الحزمة الدنيا الحد الأدنى لاستخدام الرمز (المحدد بالبايت) لحزمة. القيمة المبدئية هي صفر.
مقبض السرعة. انظر الملاحظات أعلاه حول الحدود! انظر tc(8) للوحدات.

علاوة على ذلك، إذا كان peakrate مرغوبًا، تتوفر المعاملات التالية:

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

تحدد حجم دلو معدل الذروة. للحصول على دقة مثالية، يجب ضبطها على MTU للواجهة. إذا كانت هناك حاجة لمعدل ذروة، ولكن بعض الاندفاعية مقبولة، يمكن رفع هذا الحجم. يسمح حد أدنى للاندفاع بحجم 3000 بايت بمعدل ذروة يبلغ حوالي 3 ميجابت/ثانية، بافتراض حزم بحجم 1000 بايت.

مثل حجم الاندفاع العادي، يمكنك أيضًا تحديد حجم خلية.

أمثلة واستخدامات

لإرفاق TBF بمعدل أقصى مستدام يبلغ 0.5 ميجابت/ثانية، ومعدل ذروة يبلغ 1.0 ميجابت/ثانية، ومخزن مؤقت بحجم 5 كيلوبايت، مع حد لحجم طابور ما قبل الدلو يُحسب بحيث يتسبب TBF في زمن انتقال يبلغ 70 مللي ثانية كحد أقصى، مع سلوك معدل ذروة مثالي، نفذ:

# tc qdisc add dev eth0 handle 10: root tbf rate 0.5mbit \
burst 5kb latency 70ms peakrate 1mbit \
minburst 1540

لإرفاق qdisc داخلي، على سبيل المثال sfq، نفذ:

# tc qdisc add dev eth0 parent 10:1 handle 100: sfq

بدون qdisc داخلي، يعمل طابور TBF كـ bfifo. إذا تم تغيير qdisc الداخلي، فإن الحد/زمن الانتقال لم يعد فعالاً.

انظر أيضًا

tc(8)

المؤلف

Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>. يتم صيانة صفحة الدليل هذه بواسطة bert hubert <ahu@ds9a.nl>

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

13 ديسمبر 2001 iproute2