سؤال

طلب أحد العملاء أن يكون حد MTU هو 1492.

هل هناك طريقة للقيام بذلك في الكود المصدري (البرنامج في لغة C)؟

هل هناك طريقة أخرى للقيام بذلك بشكل عام؟(إذا كان التكوين؟)

لماذا يحتاج شخص ما إلى تعديل MTU إلى حد معين؟ما هي الفائدة؟والأهم:من خلال تغيير MTU هل هناك أي خطر لكسر الكود؟

هل كانت مفيدة؟

المحلول

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

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

أعتقد أنه يتعلق بتكوين واجهة أكثر من كونه شيئًا تتحكم فيه باستخدام برنامج ؛لذلك من الأفضل التمسك بأمر "ifconfig" أو إيجاد الحل المكافئ لنظام التشغيل Windows.

نصائح أخرى

طريقة برمجية باستخدام C:

Genacodicetagpre

تعمل على الأقل على Ubuntu ، راجع man netdevice .

ال MTU هو الرقم الذي يحدد الحد الأقصى لوحدة الإرسال لكل حزمة.كلما كان حجمه أكبر، كلما تم إرسال بياناتك بشكل أسرع.على افتراض أنه يمكنك إرسال nحزم / حزم من mالحجم إذا m ينمو، m*n ينمو أيضا.

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

يمكنك استخدام ifconfig مع الخيار mtuلتغيير قيمته: ifconfig eth0 mtu 1492.

الطريقة الحديثة لتعيين معلمات الواجهة هي عبر SYSFS giveacodicetagpre.

بواسطة C، فقط افتح واكتب كملفات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top