אודות

מפת האתר

דף הבית

טהור P2P - מידע טכני

טהור P2P - ראשי - מידע טכני

 

 

 

הסבר מפורט על Gnutella ניתן למצוא בפרק פרוייקטים קיימים

חלק זה מדבר רק על נושאים טכניים הקשורים ב Gnutella. כל אפליקציית Gnutella מהווה שרת ולקוח גם יחד, היות והיא תומכת במעבר מידע דו-כיווני. מתכנתי Gnutella קוראים לתחנות המריצות אפליקציות אלו -שלקוח (Servent). בכדי להפוך ל-שלקוח עליך להתקין אחת מאפליקציות Gnutella המגוונות כגון BearShare .

לאחר מכן הינך חייב/ת למצוא תחנתשלקוח נוספת שתתקשר איתך. תחנה זו יכולה להיות חבר או משתמש, המריצים אפליקציית Gnutella בעצמם, או לחליפין אתר מפרסם של Gnutella. אנשים בעלי רוחב פס גדול, יעודדו שלקוחים רבים להתחבר אליהם היות והם זמינים ואטרקטיביים. חיבור ישיר יעשה אל התחנות שהסכים ה -שלקוח להתחבר אליהם. מערכות רבות שימשו לשליחת דוא"ל מנקודה לנקודה, עוד מהימים בהם האינטרנט לא היה כה פופולרי, אולם מערכות אלו עבדו על פי תבנית של דחיפת מידע בלבד.

לתחילת העמוד

 

אפליקציות Gnutella להבדיל, נדרשות לתקשר באופן דו-כיווני - לשלוח מידע ולקבל מידע בו זמנית ולכן הפרוטוקול בו עובדת Gnutella מסובך בהרבה מפרוטוקולים ראשוניים אלו של תקשורת P2P.

נתאר פעולת חיפוש ושאיבת מידע פשוטה של שלקוח:

נניח כי שלקוח A מבקש קבצי MP3 מ -שלקוח B. בקשה זו נקראת בשפת ה- P2P שאילתא.לאחר ש- B יעביר ל- A מידע על כל קבצי ה- MP3 שברשותו, הוא יפנה את השאילתא הלאה למחשבים אחרים המקושרים אליו, אולם לא כמו במעבר דוא"ל או פורומי חדשות, ישמור מחשב B רשומה ובה יתעד את פרטי שלקוח A ואת העובדה כי הוא שלח את הבקשה המקורית. באופן זה, החיפוש ייצור עץ ששורשו במחשב A יוזם השאילתא וכל המידע יגיע בסופו של דבר לשורש וזאת באופן שקוף ל שלקוחים מהם נשאב המידע.

לתחילת העמוד

 
 
כיצד נשמרות הבקשות כבקשות נפרדות

לכל בקשה יש מספר זיהוי ייחודי. שיטה זו מאפשרת לתחנות לזהות בקשות חוזרות ולא להתייחס אליהן, כמו כן היא מאפשרת התייחסות לבקשות זהות המגיעות ממחשבים שונים וכן ניתן ליצור חסם זמן לבקשות שמסיבה כלשהי אינן נענות - כל שלקוח  מנהל תור בקשות בגודל קבוע העובד בתצורת FIFO  , כך שהבקשה הישנה ביותר מוחלפת בחדשה ביותר.

אילו סוגי קבצים ניתן לחפש

בעזרת Gnutella ניתן לחפש כל קובץ קיים, אין כל הגבלה. למעשה ניתן להשתמש ב- Gnutella אף לחיפוש כתובות URL בדומה לכל מנוע חיפוש רגיל.

מהו הפרוטוקול עליו רצה Gnutella

Gnutella רצה בבסיסה על פרוטוקול HTTP דבר המצביע על פשטותה. היתרון בשימוש בפרוטוקול זה הוא ששני שלקוחים יכולים לתקשר אפילו אם אחד מהם נמצא מאחורי חומת אש , בהנחה ששרת חומת אש מאפשר יציאת תקשורת דרך PORT 80 . הקומבינציה היחידה שתחסום לחלוטין תקשורת בין שתי תחנות P2P  היא בהיות שתיהן מאחורי שרת חומת אש.

פרוטוקול Gnutella איננו מציין כמה שלקוחים יכולים לתקשר בו זמנית ולמעשה Gnutella מעולם לא נחסמה למספר משתמשים מסויים. מעריכים כי מספר זה נע בין מספר מאות למספר אלפים, אולם אמפירית המספר נראה כגדול בהרבה.

כיצד המערכת מפסיקה חיפוש שאילתא

כמו בפרוטוקול IPלכל שאילתא ב- Gnutella יש זמן חיות. מרגע ששאילתא נכנסת לתור חיפוש ב -שלקוח כלשהו, מתחילה הספירה לאחור לתפוגתה. השאילתא מגיעה משולחיה עם זמן חיות מוגדר מראש, אולם כל שלקוח יכול לשנות זמן חיות זה, בהתאם לצרכיו, אם הזמן הקבוע נראה לו ארוך מדי.

לתחילת העמוד

 

פרוטוקול Gnutella

זהו פרוטוקול פשוט למעשה, שמהותו הוא בעצם הגדרת העברת השאילתא - אותו שם/קובץ ובעצם רשימה, אותה אנו מחפשים בין שלקוח אחד למשנהו. כל שלקוח מטפל בשאילתא כראות עינו אם באמצעות הפעלת פונקצית חיפוש פשוטה על מערך הקבצים ואם באמצעות הפעלת שאילתת SQL  ובכל זאת תחנה מסוימת עלולה לקבוע כי השאילתא הנה מסוג לא ברור, אולי מילה בגופן זר, ובהתאם לכך לחפש מידע לא ברור - ג'יבריש. חיפוש זה ימשיך מתחנה זו ולכל התחנות הנמצאות תחתיה בעץ החיפוש שנוצר, אולם לכשיחזור לנקודת המוצא, יוכל המחפש להשתמש במידע זה בשביל לשכלל את חיפושיו הבאים.

בעייתיות הפרוטוקול היא באותו זמן חיות המוגדר מראש. ניקח לדוגמה יחידת קצה השולחת בקשה עם זמן חיות 10 וכל שלקוח  שמקבל אותה, מתקשר עם 6 תחנות - עד כמיליון הודעות יכולות להציף את הרשת בזמן קצר בתסריט פשוט זה.

ההתפשטות האקספוננציאלית הזו יוצרת הצפה ותנאי תעבורה קשים. למתכנתים אין פתרון מוגדר לבעיה זו למרות שקיימים ניסיונות ליצור מנגנון שיזהה נקודות קצה חסומות וימנע העמסה נוספת שלהם.

לעמוד  הבאלעמוד  הקודם לתחילת העמוד
לעמוד הבא 6 5 4 3 2 1 לעמוד הקודם