تم إنشاء هذه الترجمة باستخدام التعلم الآلي وقد لا تكون دقيقة بنسبة 100%. عرض النسخة الإنجليزية

مكتبة Ministreaming

ملاحظات تاريخية حول أول طبقة نقل شبيهة بـ TCP في I2P

ملاحظة

تم تحسين وتوسيع مكتبة ministreaming بواسطة مكتبة streaming “الكاملة”. ministreaming مُهملة وغير متوافقة مع تطبيقات اليوم. الوثائق التالية قديمة. لاحظ أيضاً أن streaming تمدد ministreaming في نفس حزمة Java (net.i2p.client.streaming)، لذلك تحتوي وثائق API الحالية على كليهما. الفئات والطرق المُهملة في ministreaming مُحددة بوضوح كمُهملة في Javadocs.

مكتبة Ministreaming

مكتبة ministreaming هي طبقة فوق نواة I2CP الأساسية التي تتيح تدفقات موثوقة ومرتبة ومصادق عليها من الرسائل للعمل عبر طبقة رسائل غير موثوقة وغير مرتبة وغير مصادق عليها. تماماً مثل العلاقة بين TCP و IP، تحتوي هذه الوظيفة للتدفق على سلسلة كاملة من المقايضات والتحسينات المتاحة، لكن بدلاً من دمج هذه الوظيفة في كود I2P الأساسي، تم فصلها إلى مكتبة منفصلة للحفاظ على التعقيدات الشبيهة بـ TCP منفصلة وللسماح بتنفيذات بديلة محسنة.

تم كتابة مكتبة ministreaming بواسطة mihi كجزء من تطبيق I2PTunnel الخاص به ثم تم استخراجها وإصدارها تحت رخصة BSD. تُسمى مكتبة “mini"streaming لأنها تقوم ببعض التبسيطات في التنفيذ، بينما يمكن تحسين مكتبة streaming أكثر قوة للعمل عبر I2P. المشكلتان الرئيسيتان في مكتبة ministreaming هما استخدامها لبروتوكول إنشاء TCP التقليدي ذو المرحلتين وحجم النافذة الثابت الحالي وهو 1. مشكلة الإنشاء طفيفة بالنسبة للتدفقات طويلة المدى، ولكن بالنسبة للتدفقات القصيرة، مثل طلبات HTTP السريعة، يمكن أن يكون التأثير كبيراً. أما بالنسبة لحجم النافذة، فإن مكتبة ministreaming لا تحتفظ بأي معرف أو ترتيب ضمن الرسائل المرسلة (أو تتضمن أي ACK أو SACK على مستوى التطبيق)، لذلك يجب أن تنتظر في المتوسط ضعف الوقت الذي يستغرقه إرسال رسالة قبل إرسال أخرى.

حتى مع هذه المشاكل، تؤدي مكتبة ministreaming أداءً جيداً جداً في العديد من الحالات، وواجهة برمجة التطبيقات الخاصة بها بسيطة جداً وقادرة على البقاء دون تغيير مع إدخال تطبيقات streaming مختلفة. يتم نشر المكتبة في ملف ministreaming.jar الخاص بها. يمكن للمطورين في Java الذين يرغبون في استخدامها الوصول إلى واجهة برمجة التطبيقات مباشرة، بينما يمكن للمطورين في اللغات الأخرى استخدامها من خلال دعم streaming في SAM .

Was this page helpful?