libtorrent.

مكتبة C ++ Bittorrent
التحميل الان

libtorrent. الترتيب والملخص

الإعلانات

  • Rating:
  • اسم الناشر:
  • Rasterbar Software
  • أنظمة التشغيل:
  • Windows XP / Vista / 7
  • حجم الملف:
  • 980 KB

libtorrent. العلامات


libtorrent. وصف

ميزة كاملة C ++ تنفيذ تورنت التركيز على الكفاءة والتطوير Libtorrent هي ميزة كاملة C ++ تطبيق Bittorrent التركيز على الكفاءة والتطوير. يعمل على الأجهزة المضمنة وكذلك أجهزة الكمبيوتر المكتبية. إنه يتميز بواجهة مكتبة موثقة بشكل جيد سهل الاستخدام. يأتي مع عميل Bittorrent بسيط يظهر استخدام المكتبة. الأهداف الرئيسية ل Libtorrent هي: * أن تكون وحدة المعالجة المركزية فعالة * أن تكون فعالة الذاكرة * أن تكون سهلة الاستخدام للغاية سمات libtorrent تحت التطوير النشط. إنه مشروع مستمر. تدعم الدولة الحالية وتشمل الميزات التالية: امتدادات * واجهة البرنامج المساعد لتنفيذ امتدادات تورنت مخصصة دون الحاجة إلى تعديل libtorrent * يدعم السيول المقتبرة (باستخدام بروتوكول Kademlia Kademlia DHT) مع بعض ملحقات DHT. BEP 5. * يدعم بروتوكول تمديد Bittorrent. انظر الامتدادات. BEP 10. * يدعم بروتوكول نقل البيانات الوصفية يوتورنت BEP 9 (I.E. الروابط المغناطيس). * يدعم بروتوكول تبادل الأقران uTorrent (PEX). * يدعم اكتشاف النظير المحلي (المتعددات المتعددة الأقران على نفس الشبكة المحلية) * دعم ملحق متعدد المراحل (يدعم كل من BEP 12 الصارم والتفسير أوتورنت). * قصاصات المقتفي * يدعم ملحق LT_TRACKERS، لتبادل تعقب بين أقرانه * http sening، كما هو محدد في BEP 17 و BEP 19. * يدعم بروتوكول تعقب UDP. (BEP 15). * يدعم التمديد NO_PEER_ID = 1 الذي سيخفف من تعقب التحميل. * يدعم المعلمة Compact = 1 تعقب. * سوبر البذر / البذر الأولي (BEP 16). * السيول الخاصة (BEP 27). * دعم IPv6، بما في ذلك BEP 7 و BEP 24. * دعم لسيول شجرة التجزئة الميرك. هذا يجعل حجم ملفات سيل على نطاق جيد مع حجم المحتوى. إدارة القرص * يستخدم خيط I / O منفصل لم يكن لديك القرص من أي وقت مضى حظر على الشبكة أو التفاعل العميل. (انظر المواضيع). * يدعم الملفات> 2 غيغابايت. * دعم استئناف سريع، وسيلة للتخلص من فحص القطعة المكلفة في بداية سيل المستأنف. يحفظ حالة التخزين، PICE_PICKER الدولة وكذلك جميع الأقران المحليين في ملف استئناف سريع منفصل. * لديه ذاكرة التخزين المؤقت للقراءة والكتابة قرص قابل للتعديل لتحسين إنتاجية القرص. * قوائم الانتظار السيول التحقق من الملفات، بدلا من التحقق من كل منهم بالتوازي. * ليس لديه أي متطلبات على النظام قطعة في سيل يستأنف. هذا يعني أنه يمكن استئناف سيل تم تنزيله بواسطة أي عميل. * يدعم كل من الملفات المتناقضة وتخصيص الملفات المدمجة (حيث يتم توحيد القطع على القرص) * وضع SEED، حيث يفترض أن تكون الملفات الموجودة على القرص كاملة، وتم التحقق من كل قطعة من كل قطعة أول مرة يتم فيها طلبها. شبكة الاتصال * يضبط طول قائمة انتظار الطلب اعتمادا على معدل التنزيل. * يقدم السيول متعددة على منفذ واحد وفي موضوع واحد * قطعة اختيار على مستوى كتلة (بدلا من مستوى القطعة). هذا يعني أنه يمكن تنزيل أجزاء من نفس القطعة من أقران مختلفين. كما يفضل تنزيل القطع بأكملها من أقرانه واحد إذا كانت سرعة التنزيل مرتفعة بما يكفي من هذا النظير بالذات. * يدعم وكلاء HTTP ومصادقة الوكيل الأساسية * يدعم ردود تعقب gzzeced * يمكن أن تحد من التحميل وتحميل استخدام النطاق الترددي والحد الأقصى لعدد الأقران غير المحتملين * إمكانية الحد من عدد الاتصالات. * التأخيرات لها رسائل إذا لم تكن هناك حركة مرور صادرة أخرى إلى النظير، ولا ترسل رسائل إلى أقرانها التي تحتوي بالفعل على القطعة. هذا يوفر عرض النطاق الترددي. * تنزيل انتقائي. القدرة على تحديد أجزاء من سيل تريد تنزيلها. * تصفية IP لعدم السماح بعنوان IP وبطال IP من الاتصال والتواصل. * دعم NAT-PMP و UPNP (تعيين المنفذ التلقائي على أجهزة التوجيه التي تدعمها) * تنفذ فتحات تحميل تلقائية، لتحسين معدل التنزيل دون نشر سعة تحميل رقيقة جدا. يتم ضبط عدد فتحات التحميل بناء على قدرة تنزيل الأقران على العمل حتى بالنسبة للاتصالات التي هي أوامر ذات حجم أسرع من غيرها. ميزات الميزات: التخزين المؤقت القرص. يتم إجراء جميع القرص I / O في Libtorrent بشكل غير متزامن لخيط الشبكة، من خلال القرص IO الخيط. عند قراءة كتلة، يقرأ مؤشر ترابط القرص IO جميع الكتل اللاحقة من تلك القطعة في ذاكرة التخزين المؤقت للقراءة، على افتراض أن النظير الذي يطلب الكتلة سوف يطلب أيضا المزيد من كتل من نفس القطعة. هذا يقلل من عدد Syscalls لقراءة البيانات. كما أنه يقلل من التأخير من البحث. وبالمثل، لطلبات الكتابة، يتم التخزين المؤقت الكتل ومسح إلى القرص مرة واحدة قطعة واحدة كاملة كاملة أو قطعة هي الأقل مؤخرا بتحديث واحد عند الحاجة إلى مساحة أكبر ذاكرة التخزين المؤقت. ذاكرة التخزين المؤقت بشكل حيوي يخصص مساحة بين الكتابة ومخبأ للقراءة. والأولوية ذاكرة التخزين المؤقت الكتابة بدقة على مخبأ القراءة. وتخوض الكتل مخبأ التي هي في استخدامها، إلى الذاكرة الفعلية لتجنب ذلك يتم ترحيلها إلى القرص. السماح التخزين المؤقت على القرص ليتم ترحيلها إلى وسائل القرص الذي سيصبح غير فعالة للغاية للقضاء عليه، لأنه لا بد من قراءة مرة أخرى إلى الذاكرة الفعلية فقط أن أعود مسح إلى القرص مرة أخرى. من أجل ذاكرة حفظ وواستدعاءات النظام، وتستخدم عمليات ملف iovec إلى كتل مخبأ متعددة دافق في مكالمة واحدة. على أنظمة الذاكرة منخفضة، التخزين المؤقت على القرص يمكن تعطيل تماما أو تعيين إلى حد أقل، لحفظ الذاكرة. الخوارزمية قرص التخزين المؤقت هو شكلي بين "LRU 'و' أكبر متجاورة. أكبر خوارزمية متجاورة هو الافتراضي وتمسح أكبر كتلة متجاورة من مخازن، بدلا من بيغ جميع الكتل التي تنتمي إلى القطعة التي كانت مكتوبة على الأقل في الآونة الأخيرة. عالية الأداء الفرعي للقرص في بعض الحالات، التخزين المؤقت على القرص قد لا تكفي لتوفير أقصى قدر من الأداء. أحد الأمثلة على ذلك هو البذر الأداء العالي، وإلى عدد كبير من الزملاء، على مدى يصل ارتباط سريع. في الحالة هذه، فإن المبلغ من ذاكرة الوصول العشوائي ببساطة قد لا تكون كافية ليقرأ القرص ذاكرة التخزين المؤقت. عندما يكون هناك لا يكفي RAM إلى القرص مخبأ يقرأ، القرص الإنتاجية سوف تحط عادة لأداء مهامها على النحو سيئة كما هو الحال مع أي مخبأ في كل شيء، مع الغالبية العظمى من الوقت الذي يقضيه في انتظار رئيس القرص لالتماس. لحل هذه المشكلة، أنواع libtorrent قراءة طلبات قدراتهم البدنية تعويض على القرص. يتم معالجتها عن طريق الحصول على قراءة القرص رئيس اكتساح ذهابا وإيابا على محرك الأقراص. هذا يجعل libtorrent مناسبة جدا لنطاق واسع، وارتفاع الإنتاجية البذر. هذه المؤامرات يوضح القرص الفعلي تعويض ليقرأ مع مرور الوقت. المؤامرة اليسرى من تشغيل حيث يتم تشغيل عملية قرص إعادة ترتيب وإيقاف righ هو عندما يكون تشغيله. الحق واحد لديه سلس نسبيا شرط شكل موجة في حين واحد اليسار هو أكثر عشوائية ويتضمن أطول بكثير تسعى ذهابا وإيابا على القرص. يتم دعم حقيقي القرص الفعلي الاستفسارات تعويض فقط على نواة لينكس الجديدة، ماك OS X و Windows 2000 وما فوق. على وحدات المعالجة المركزية مع مخابئ L2 صغيرة، نسخ الذاكرة يمكن أن تكون عمليات باهظة الثمن. فمن المهم للحفاظ على النسخ إلى أدنى حد ممكن على هذه الآلات. وهذا ينطبق في الغالب على الأنظمة المضمنة. من أجل تقليل عدد المرات التي يتم نسخ البيانات الواردة، وتلقي العازلة للبيانات الحمولة تم تلقيها مباشرة في صفحة محاذاة منطقة عازلة القرص. إذا تم تشفير الاتصال، يتم فك المخزن المؤقت في نفس المكان. ثم يتم نقل المخزن المؤقت إلى ذاكرة التخزين المؤقت على القرص دون يتم نسخها. مرة واحدة وقد وردت جميع الكتل من أجل قطعة، أو احتياجات ذاكرة التخزين المؤقت يمكن مسح، يتم تمرير جميع الكتل مباشرة إلى writev () لطردهم في syscall واحد. عندما البذر وتحميلها بشكل عام، يتم تجنب النسخ غير الضرورية خلال تخزين القطع في المخازن الانحياز، التي يتم نسخها مرة واحدة في المخزن إرسال النظير في. إرسال النظير في المخزن لا يضمن أن يكون الانحياز، على الرغم من أنها في معظم الوقت. ثم يتم تشفير المخزن المؤقت الإرسال مع مفتاح محددة الأقران وبالسلاسل على iovec لإرسال. وهذا يعني أن هناك نسخة واحدة مساحة المستخدم من أجل السماح طلبات الزملاء محاذاتها والتشفير نظير محددة. ويتضح ذلك من الشكل التالي: قطعة منقار قطعة منقار هو العنصر الرئيسي في تنفيذ تورنت. هو الأمثل قطعة منقار في libtorrent للعثور بسرعة أندر القطع. إنها تحافظ على قائمة من جميع القطع المتاحة مرتبة حسب نادرة، والقطع مع نفس نادرة، تعديلا. أندر الوضع الأول هو المهيمن وضع قطعة منقار. ويدعم وسائط أخرى أيضا، وتستخدم من قبل أقرانهم في حالات محددة. قطعة منقار يسمح الجمع بين توافر قطعة مع أولوية. معا تحديد ترتيب القائمة قطعة. لن اختار القطع مع أولوية 0، والذي يستخدم لميزة تحميل انتقائية. من أجل الحصول على عدد قليل من القطع المكتوبة جزئيا، فإن أقرانهم لديهم تقارب نحو اختيار الكتل من نفس القطع مثل أقران الآخرين في نفس فئة السرعة. فئة السرعة هي تصنيف خشن من أقرانهم بناء على سعر تنزيلهم. هذا يجعل أقرانهم بطيئين يختارون كتل من نفس القطعة، واختيار أقرانهم سريعون من نفس القطعة، وبالتالي تقليل احتمال حدوث أقرانهم بطيئين إكمال القطع. يمكن أيضا تعيين منتقي القطعة لتنزيل القطع بالترتيب المتسلسل. تورنت شجرة التجزئة تتميز السيول شجرة التجزئة MERKLE امتداد يتيح لملف سيل فقط يحتوي على تجزئة الجذر لشجرة التجزئة التي تشكلها القطعة. الفائدة الرئيسية لهذه الميزة هي أنه بغض النظر عن عدد القطع الموجودة في سيل، فإن الملف البالورنت سيكون دائما بنفس الحجم. لن ينمو إلا مع عدد الملفات (نظرا لأنه لا يزال يتعين عليه احتواء أسماء الملفات). مع السيول العادية، يتعين على العملاء طلب كتل متعددة للقطع، وعادة ما تكون من أقران مختلفين، قبل أن يتم التحقق من البيانات مقابل القطعة التجزئة. كلما زادت القطع، كلما زاد طولها لتنزيل قطعة كاملة وتحقق منها. قبل التحقق من القطعة، لا يمكن تقاسمها مع Swarm، مما يعني أن أحجام قطعة أكبر، وبيانات التحول البطيئة لديها عند تنزيلها من قبل أقرانهم. نظرا لأنه في المتوسط، يجب أن تجلس البيانات، في انتظار، في مخازن العملاء قبل التحقق منها ويمكن تحميلها مرة أخرى. مشكلة أخرى مع أحجام قطعة كبيرة هي أنه من الصعب على العميل تحديد الأقران الضار أو عربات التي تجرها الدواب عند فشل قطعة، وسوف يستغرق الأمر وقتا أطول لإعادة تنزيله واتخاذ المزيد من المحاولات قبل أن تنجح قطعة أكبر القطع. حجم القطعة في السيول العادية هو مفاضلة بين حجم ملف .torrent نفسه وحجم قطعة. في كثير من الأحيان، بالنسبة للملفات التي هي 4 غيغابايت، حجم القطعة هو 2 أو 4 ميغابايت، فقط لتجنب جعل ملف .torrent كبير جدا. تدوير Merkle تحل هذه المشكلات عن طريق إزالة المفاضلة بين حجم اللون وحجم قطعة. مع السيول Merkle، يمكن أن يكون حجم القطعة هو الحد الأدنى لحجم الكتلة (16 كيلو بايت)، والذي يتيح للأقران التحقق من كل كتلة من البيانات المستلمة من أقرانهم، على الفور. هذا يعطي الحد الأدنى من وقت التحول ويزيل تماما مشكلة تحديد الأقران الخبيث. يتم بناء تجزئة الجذر من خلال التجزئة جميع القطعة تزحام الزوجين، حتى ينهار جميعهم إلى الجذر. تخزين ملف تخصيص تطبيق تخزين Libtorrent قابل للتخصيص. هذا يعني أن عميل BitTorrent للأغراض الخاصة يمكن أن يحل محل الطريقة الافتراضية لتخزين الملفات على القرص. عند تنفيذ ذاكرة التخزين المؤقتة Bittorrent، لا يهم كيفية تخزين البيانات على القرص، طالما أنه يمكن استرجاعها وتصنيفها. في هذه الحالة، يمكن تنفيذ فئة تخزين جديدة (الوراثة من فئة Storage_Interface) التي تتجنب الخطوة غير الضرورية من فتحات التعيين إلى الملفات والإزاحات. يمكن أن يتجاهل التخزين حدود الملفات وتوزع سيل بأكمله في ملف واحد (الذي سينتهي الأمر بكونه جميع الملفات المتسلسلة). الميزة الرئيسية لهذا، بخلاف مكسب أداء وحدة المعالجة المركزية الطفيفة، هي أن جميع عمليات الملفات ستكون محاذاة الصفحة (والقطاع). يتيح ذلك كفاءة I / O غير المقصودة، ويمكن أن يؤدي ذلك إلى مزيد من التخزين المؤقت للقراءة أكثر كفاءة (باستخدام ذاكرة التخزين المؤقت المضمنة في القرص بدلا من الاعتماد على ذاكرة التخزين المؤقت على قرص نظام التشغيل). تدعم واجهة التخزين أنظمة التشغيل حيث يمكنك طلب مناطق متفرقة (مثل Windows و Solaris). ميزة هذا هو أنه عند التحقق من الملفات، يمكن تخطي المناطق المعروفة بأنها متناثر، والتي يمكن أن تقلل من الوقت للتحقق من سيل بشكل كبير. سهل الاستخدام API أحد أهداف التصميم في واجهة برمجة تطبيقات Libtorrent هو إجراء عمليات مشتركة بسيطة، ولكن لا يزال من الممكن القيام بعمليات معقدة ومتقدمة.


libtorrent. برامج ذات صلة

MDX.

مكون إدارة الذاكرة مفتوح المصدر ...

380 304 KB

تحميل

طين

الكلام القائم على جافا إلى مكتبة النص ...

146 2.8 MB

تحميل