جنوتيلا

نوتيلا عبارة عن شبكة بين الأقرآن، والتي كانت في وقت تكوينها أول شبكة من نوعها بين أقرآن تتصف بكونها غير مركزية، وتؤدي إلى شبكة أخرى، وإلى شبكات أخرى تتبني النموذج. وقد احتفلت بمرور عقد على إنشائها في الرابع عشر من مارس 2010 ولديها قاعدة مستخدمين يقدر عددهم بالملايين في ملفات المشاركة بين الأقرآن.
وفي يونيو 2005 وصل عدد مستخدمي نوتيلا إلى 1.81 كمبيوتر ارتفعوا إلى ثلاثة ملايين عقدة nodes بحلول يناير 2006. وفي أواخر عام 2007، كانت نوتيلا أكثر شبكة مشاركة ملفات على الإنترنت بحصة سوقية تقدر بأكثر من 40%.

التاريخ

تم تطوير أول عميل من قبل جستين فرانكل وتوم بيبر من نولسوفت Nullsoft في أوائل عام 2000، بعد وقت قصير من استحواذ أميركا أونلاين على الشركة. وفي 14 مارس أتيح البرنامج للتحميل على خوادم نولسوفت. وأعلن هذا الحدث على Slashdot، وقام الآلاف بتحميل البرنامج في هذا اليوم. وطرح الكود المصدري لاحقا تحت غطاء GNU General Public License (الرخصة المفتوحة العامة لـ GNU).
وفي اليوم التالي أوقفت أميركا أونلاين إتاحة البرنامج بسبب مخاوف قانونية ومنعت نولسوفت من القيام بأي عمل على المشروع في المستقبل. ولم يوقف ذلك الإجراء نوتيلا؛ إذ أنه بعد أيام قليلة كان قد أعيدت هندسة البروتوكول بصورة معكوسة، وبدأت مستنسخات متوافقة مجانية ومفتوحة المصدر في الظهور. وكان هذا التطور المتوازي للعملاء المختلفين من خلال مجموعات مختلفة لا يزال هو طريقة العمل modus operandi لتطوير نوتيلا اليوم. 
إن شبكة نوتيلا هي بديل موزع تماما لنظم شبه مركزية مثل فاستراك FastTrack (KaZaA) ونابستر Napster الأصلي. إن الشعبية الأولى للشبكة قد تأججت نتيجة للتهديد القانوني الذي واجهته نابستر في بداية عام 2001. إن هذا الارتفاع الشديد في الشعبية قد عكس حدود القدرة التوسعية للبرتوكول الأولي. وفي أوائل عام 2001 سمحت المتغيرات على البروتوكول (طبقت أولا في عملاء الملكية والمصدر المغلق)بتحسين القدرة التوسعية. وبدلا من معاملة كل مستخدم بوصفه عميلا وخادما، فإن بعض المستخدمين يعاملون الآن بوصفهم "أقران ذوو مكانة خاصة" ويتم تمرير طلبات البحث والاستجابات من قبل المستخدمين إليهم.
وقد سمح ذلك للشبكة أن تنمو شعبيتها. وفي أواخر عام 2001، أصبح عميل نوتيلا لايموير بيسك Limewire Basic مجانيا ومصدرا مفتوحا. وفي فبراير 2002، تخلت مورفيس Morpheus، وهي مجموعة مشاركة ملفات تجارية، عن نظامها القائم على برمجيات فاستراك للأقرآن وأصدرت عميلا جديدا قائما على عميل نوتيلا جنوكلوس Gnucleus المجاني ومفتوح المصدر. جديدة قائمة على العميل مجانية ومفتوحة المصادر
ولا تشير كلمة "نوتيلا" اليوم إلى أي مشروع أو أحد البرمجيات، ولكنها تشير إلى بروتوكول مفتوح مستخدم من قبل عملاء متعددين
والاسم هو مزج بين لفظتي GNU ونوتيلا Nutellaوهي الماركة الشهيرة للزبدة بطعم البندق: ومن المفترض أن فرانكل وبيبر قد أكلا كثيرا من نوتيلا خلال عملهم على المشروع الأصلي، وقررا ترخيص برنامجهما لمنتهي الرخصة المفتوحة العامة لـ GNU. ولا ترتبط نوتيلا بمشروع GNU  أو شبكته الخاصة بالأقرآن جنونت GNUnet. 
وفي 26 أكتوبر 2010 وجهت أوامر لخادم نوتيلا الشهير لايموير بالإغلاق من قبل القاضي كيمبا وود بمحكمة المقاطعات الأمريكية في المقاطعة الجنوبية لنيويورك عندما وقعت إنذارا قضائيا ملزما وافق عليه لايموير والمدعون بصناعة التسجيل. ويمكن أن يكون ذلك الحدث قد سبب انخفاضا في حجم الشبكة بسبب أن لايموير كان لديها طاقم عمل يضيف غلقا عن بعد لاستخدام نوتيلا وتحويلات الملفات بسبب أن بعض المستخدمين كانوا قد نصبوا نسخا مؤثرة. 
وفي التاسع من نوفمبر 2010 أعيد إحياء لايموير من قبل فريق سري من المطورين وأطلق عليهم اسم نسخة قراصنة لايموير. وكانت قائمة على لايموير 5.6 بيتا LimeWire 5.6 BETA. وكان لهذه النسخة خوادمها التابعة التي أزيلت وتم تمكين جميع خصائص مجانا.

التصميم

من أجل تصور كيف عملت نوتيلا في الأساس، علينا تخيل دائرة واسعة من المستخدمين (يسمون العقد nodes) لكل منهم برمجيات عميلة لنوتيلا. وخلال بدء التشغيل الأولي فإن برمجيات العميل يجب أن تمهد لتشغيل الكمبيوتر وتجد على الأقل واحدا من العقد. وقد استخدمت العديد من المناهج من أجل هذا الأمر، بما فيها قائمة عناوين موجودة مسبقا للعقد العاملة المحتملة مرسلة مع البرمجيات، واستخدام خابيات caches الويب المحدثة للعقد المعروفة (تسمى خابيات ويب نوتيلا)، وخابيات مضيف بروتوكول نقل البيانات UDP host، وحتى المحادثة من خلال الإنترنت IRC وإن كان ذلك بصورة محدودة للغاية. وبمجرد الاتصال، يطلب العميل قائمة بالعناوين العاملة. ويحاول العميل الاتصال بالعقد المرسلة، وكذلك العقد التي يستقبلها من العملاء الأخرىن، حتى يصل إلى حصة محددة. ولا يرتبط ذلك إلا بالكثير من العقد، وتخبئ محليا العناوين التي لم تجربها قبلا، وتنبذ العناوين التي جربتها وعلمت أنها غير صحيحة.
وعندما يريد المستخدم البحث فإن العميل يرسل الطلب لكل عقدة متصلة بنشاط. وفي الإصدار رقم 0.4 من البروتوكول فإن عدد العقد المتصلة بنشاط لعميل ما يكون قليل جدا، ولذلك فإن كل عقدة تقوم بعدئذ بتمرير الطلب لجميع عقدها المتصلة بنشاط، وفي المقابل فإنها تعيد تمرير الطلب، وهكذا دواليك، حتى تصل الرزمة إلى العدد المحدد سلفا من "القفزات" من قبل المرسل (حد أقصى 7).
ومنذ الإصدار رقم 0.6 فإن نوتيلا عبارة عن شبكة مركبة مكونة من عقد ورقية وعقد متطرفة (تسمى أيضا أقرآن متطرفة). وتكون العقد الورقية متصلة بعدد صغير من الأقرآن المتطرفة (نمطيا 3) يسنما تكون كل عقدة متطرفة متصلة بأكثر من 32 من الأقرآن المتطرفة. وفي ظل مثل هذا التفوق في الدرجات، فإن العدد الأقصى من "القفزات" التي يمكن لاستعلام واحد القيام بها قد قلت إلى 4.
وتستخدم الأوراق والأقرآن المتطرفة بروتوكول تدوير الاستعلام QRP من أجل تبادل جدول تدوير الاستعلام QRT، وجدول من 64 فتحة بمؤشر رئيسي ki-slots وحتى فتحتين اثنتين بمؤشر رسالة تتكون من لوحات مفاتيح مجزأة. وترسل عقدة ورقية جدول تدوير الاستعلام الخاص بها إلى كل من الأقرآن المتطرفة التي تتصل بها، وتدمج هذه الأقرآن المتطرفة جدول تدوير الاستعلام بجميع مستوياتها (وتقلل حتى 128 فتحة بمؤشر رئيسي) إضافة إلى جدول تدوير الاستعلام الخاص بها (إذا كانوا يتشاركون في ملفات) وتبادلها مع جيرانهم. ومن ثم فإن تدوير الاستعلام يتم من خلال تجزئة كلمات الاستعلام ورؤية ما إذا كان أيا منهم متصلا في جدول تدوير الاستعلام. وتقوم الأقرآن المتطرفة بذلك التأكد قبل تمرير الاستعلام إلى عقدة ورقية، وأيضا قبل تمرير الاستعلام إلى العقدة المتطرفة للأقرآن بشرط أن تكون تلك هي آخر قفزة يمكن للاستعلام القيام بها.
وإذا أسفر بحث ما عن نتيجة، فإن العقدة التي كانت لها نتيجة تتصل بالباحث. وفي بروتوكول نوتيلا الكلاسيكي فإن رسائل الاستجابة كان يتم إرسالها مرة أخرى بموازاة طريق الاستعلام الذي جاء منه، كما أن الاستعلام نفسه لا يحتوي أية معلومات تعريفية بالعقدة. وقد تمت مراجعة هذه الآلية فيما بعد، وهكذا فإن نتائج البحث حاليا يتم نقلها عبر بروتوكول كتل المستخدم User Datagram Protocol (UDP) مباشرة إلى العقدة التي بدأت البحث، وغالبا ما تكون عقدة أقرآن متطرفة. وهكذا فإنه في البرتوكول الحالي فإن الاستعلامات تحمل عنوان بروتوكول الإنترنت ورقم المنفذ لأي عقدة. وهذا يقلل من حجم البيانات المتدفقة عبر شبكة نوتيلا ويجعلها بصورة كبيرة أكثر تحجيما.
وإذا كان المستخدم يقرر تحميل الملف، فإنهم يتفاوضون مع ناقل الملف. وإذا كانت العقدة التي كانت قد طلبت الملف غير محمية، فإن عقدة الاستعلام يمكن أن تتصل بها مباشرة. بأي حال فإنه إذا كانت العقدة محمية بما يؤدي لوقف عقدة المصدر من تلقي الاتصالات القادمة، فإن العميل الذي يريد تحميل ملف ما يرسله بوصفه "طلب مدفوع" للخادم لعميل بعيد من أجل بدء الوصلة بدلا منه (أي "لدفع" الملف). في البداية فإن طلبات الدفع هذه يتم تدويرها بموازاة السلسلة الأصلية التي اعتادت على إرسال الاستعلام. ومع ذلك فقد كان هذا الأمر لا يعتمد عليه لأن الطرق تنقطع عادة وأن الرزمة المدورة تكون عرضة لسيطرة التدفق. ومن ثم فإن ما يسمى "وسائط الدفع" push proxies ظهرت في المجال. وهي غالبا أقرآن متطرفة لعقدة ورقية وتعلن في نتائج البحث. ويقوم العميل بوصل واحدة من "وسائط الدفع" هذه باستخدام طلب النص المتشعب HTTP ويرسل الوسيط "طلبا بالدففع" إلى ورقة لصالح لاعميل. وطبيعيا فإنه من الممكن أيضا إرسال طلب دفع بخصوص بروتوكول كتل المستخدم إلى وسيط الدفع الذي يكون أكثر كفاءة من استخدام بروتوكول التحكم في النقل TCP. ولوسائط الدفع ميزتان: أولهما أن وصلات الأقرآن المتطرفة-الورقية أكثر ثباتا من الطرق وهو الأمر الذي يجعل من طلبات الدفع أكثر اعتمادية. ثانيا فإنها تقلل حجم البيانات المدورة من خلال شبكة نوتيلا. 
أخيرا عندما ينفصل المستخدم، فإن برمجيات العميل تحفظ قائمة العقد التي كانت متصلة بنشاط بالرزم وتلك التي جمعت من خلالها (الرزم) من أجل الاستخدام مرة أخرى فإنها تحاول الاتصال بما يجعلها مستقلة عن أي نوع من خدمات نظم تمهيد تشغيل الكمبيوتر.
وفي الممارسة فإن منهج البحث هذا حول شبكة نوتيلا لم يكن معتمدا عليه عادة. إن كل عقدة عبارة عن مستخدم كمبيوتر منتظم؛ وهكذا فإنهم يتصلون باستمرار ويقطعون الاتصال باستمرار أيضا، ومن ثم فإن الشبكة لا تكون مستقرة كلية أبدا. أيضا فإن تكلفة عرض النطاق الترددي للبحث في نوتيلا نما في مقابل نمو عدد المستخدمين المتصلين؛, وعادة فإن الوصلات المتشبعة ونقل عقد أبطء يعتبر أمر لا جدوى منه. ومن ثم فإن طلبات البحث سيتم في الغالب تجاهلها ولن يتم الوصول إلا إلى جزء صغير جدا من الشبكة بخصوص الاستعلامات. وتحدد هذه الملاحظة شبكة نوتيلا على أنها نظام توزيعي لا يمكن تحجيمه، ويؤثر في تطور جداول البعثرة، التي تكون أكثر تحجيما لكنها لا تدعم سوى البحث بالصلة الدقيقة، وليس الكلمة الدالة. 
ومن أجل التعامل مع مشكلات عنق الزجاجة، فإن مطوري نوتيلا طبقوا نظاما محددا من الأقرآن المتطرفة والأوراق. وبدلا من ااعتبار جميع العقد متساوية تم الحفاظ على العقد الداخلة في الشبكة على "الحافة" للشبكة كورقة، وليست مسئولة عن أي تدوير، أما العقدالتي كانت قادرة على تدوير الرسائل فقد رقيت إلى أقرآن متطرفة، والتي سوف تقبل وصلات الورقة وتدور الأبحاث ورسائل صيانة الشبكة. وقد سمح ذلك للأبحاث بأن تنتشر أكثر من خلال الشبكة، وسمح للعديد من البدائل في الطوبولوجيا / المخطط الذي حسن من الكفاءة والقدرة التوسعية بصورة كبيرة.
إضافة إلى ذلك فقد تبنت نوتيلا عددا من الفنيات الأخرى من أجل تقليل الازداحم الخانق وجعل الأبحاث أكثر كفاءة. والأمر الأبرز هو بروتوكول تدوير الاستعلام QRP والاستعلام النشط Dynamic Querying (DQ). وباستخدام بروتوكول تدوير الاستعلام لا يصل البحث إلا إلى أولئك العملاء الذين يحتمل أن تكون لديهم الملفات، وهناك عدد قليل جدا من بحوث الملفات تنمو على نطاق واسع بكفاءة أكبر، وباستخدام الاستعلام النشط فإن البحث يتوقف بمجرد أن يحصل البرنامج على نتائج بحث كافية، والتي تقلل بصورة كبيرة قدر الازدحام الخانق الذي تسببه عمليات البحث الجماهيرية. إن نوتيلا للمستخدمين Gnutella for Users بها قدر كبير من المعلومات عن هذه الأمور والتحسينات الأخرى لنوتيلا في الأسلوب الصديق للمستخدم
إن أحد مكاسب جعل نوتيلا غير مركزية هو جعل أنه من الصعوبة بمكان غلق الشبكة التي لا يمكن سوى للمستخدمين أن يقرروا أي محتوى سيكون متاحا. وعلى غير ما هو عليه نابستر Napster حيث أن الشبكة كلها تعتمد على خادم مركزي فإن نوتيلا لا يمكن أن تغلق من خلال غلق أي عقدة ومن المستحيل بالنسبة لأي شركة أن تتحكم في محتويات الشبكة، وهو الأمر الذي يرجع أيضا للعديد من عملاء محتويات نوتيلا المجانية والمصادر المفتوحة الذين يتشاركون في الشبكة.

نوتيلا 2

إن بروتوكول نوتيلا 2، والذي يشار له عادة على أنه G2 ليس، بالرغم من اسمه، بروتوكولا وارثا لنوتيلا، لكنه انفراجة له. غن النقطة الأساسية التي تثير اللبس لدى العديد من مطوري نوتيلا هي أن اسم "نوتيلا2" ينقل تحديثا أو تفوقا، مما يؤدي إلى شعار "أن نوتيلا 2 يشعل الحرب". وتضمنت الانتقادات الأخرى استخدام نوتيلا لشبكة لنظام تميهد تشغيل الكمبيوتر لأقرآن G2 ,والتوثيق الشيء لبروتوكول G2.
إضافة إلى ذلك فإن البحث الذي يجرب مجددا عميل شاريزا Shareaza الذي كان أحد عملاء G2 الأوائل، يمكن أن يشكل عبئا غير ضروريا على شبكة نوتيلا.
وقد وقعت الانفراجة في عام 2002 وحقق كلا من البروتوكولين تكرارات مميزة منذ ذلك الوقت. وكان لـ G2 ميزات وعيوب مقارنة بنوتيلا. وهناك ميزة غالبا ما تذكر فيما يتعلق بالبحث الهجين لنوتيلا 2 بطريقة أكثر كفاءة مقارنة بتدفق الاستعلام في نوتيلا الأصلي، والذي كان مستخدما في عام 2002. وهناك ميزة في نوتيلا وهي أن عدد المستخدمين يقدر بالملايين، حيث أن شبكة G2 تعتبر تقريبا نظام ذو حجم أصغر. ومن الصعب مقارنة البروتوكولات في شكلها الحالي؛ وقد يكون لخيار العميل الفرد تأثير أكبر بالنسبة للمستخدم النهائي على أي شبكة.

البرمجيات

تقارن الجداول التالية المعلومات العامة والفنية لعدد من التطبيقات الداعمة لشبكة نوتيلا. إن الجداول لا تحاول تقديم قائمة كاملة بعملاء نوتيلا. إن الجداول قاصرة على العملاء الذين يمكنهم المشاركة في شبكة نوتيلا الحالية.