سؤال

كيف أجد المسار MTU بين الاتصال؟ أحتاج إلى هذا لتحديد حجم حزمة اتصال UDP الخاص بي. هل هناك أشياء مثل اكتشاف المسار MTU في .NET؟

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

المحلول

مأخوذ من هنا:

لا يدعم Winsock الإبلاغ عن MTU المكتشفة ، على الرغم من أن مداخن TCP/IP الأخرى تفعل (على سبيل المثال AIX من خلال خيار Socket IP_GETPMTU). نظرًا لأن Winsock لا يمكن أن يبلغ عن أنه ، لا يمكن .NET توفير واجهة برمجة التطبيقات (والتي يجب أن تكون على رأس Winsock).

نصائح أخرى

لقد وجدت طريقة (حلول) للعثور على المسار MTU لـ UDP على C#. فقط حاول إرسال حزمة UDP باستخدام UDPClient.dontfragment إلى True. إذا كان يلقي استثناءً ، فقم بتقليل حجم الحزمة حتى لا يتم إلقاء استثناء. إذا كان أي شخص يرغب في رؤية بعض العينة ، فقط اسأل.

هل حاولت استخدام libpcap مع C#؟ هناك مكتبة تسمى SharppCap يمكنك استخدامها للعثور على PMTU.

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