דף הבית » איך ל » איך לקוח ביטורנט בהתחלה לגלות את עמיתיו?

    איך לקוח ביטורנט בהתחלה לגלות את עמיתיו?

    כאשר לקוח סיקור שלך מצטרף נחיל לשתף ולאסוף חתיכות קבצים, איך בדיוק הוא יודע איפה כל עמיתים שלה? המשך לקרוא כאשר אנו לחטט בתוך המנגנונים שמתחת את פרוטוקול BitTorrent.

    מפגש השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה מחודשת של Stack Exchange, קיבוץ מונחה על ידי הקהילה של אתרי אינטרנט של Q & A.

    השאלה

    SuperUser הקורא סטיב V. היתה שאלה ספציפית מאוד על טבלה Distributed Hash Table (DHT) בתוך פרוטוקול BitTorrent:

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

    אני מבין את הרעיון של גשש: לקוחות להתחבר לשרת מרכזי אשר שומרת רשימה של עמיתים נחיל.

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

    השאלה שלי היא, איך DHT עובד? זה, כיצד יכול לקוח חדש להצטרף נחיל ללא גשש או את הידע של לפחות חבר אחד של נחיל להחליף עמיתים עם?

    (הערה: הסברים פשוטים הם הטובים ביותר).

    השאלה שלו בתורו הניע תשובה מפורטת באמת על הפונקציות השונות של מערכת BitTorrent; בואו נסתכל על זה עכשיו.

    התשובה

    SuperUser תורם Alquixotic מציעה הסבר מעמיק:

    כיצד יכול לקוח חדש להצטרף נחיל ללא גשש או את הידע של לפחות חבר אחד של נחיל להחליף עמיתים עם?

    אתה לא יכול. זה בלתי אפשרי.*

    * (אלא אם כן הצומת שלך רשת מקומית קורה כבר צומת ב- DHT. במקרה זה, אתה יכול להשתמש במנגנון שידור, כגון Avahi, כדי "לגלות" את זה עמיתים, ואת המגף מהם. אבל איך הם bootstrap עצמם? בסופו של דבר, תוכל להכות מצב שבו אתה צריך להתחבר לאינטרנט הציבורי. והאינטרנט הציבורי הוא שידור ליעד בודד בלבד, לא שידור לקבוצה, כך שאתה תקוע באמצעות רשימות קבועות מראש של עמיתים).

    הפניות

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

    חשיפה

    עם פרוטוקול Kademlia, כאשר אתה מצטרף לרשת, אתה עובר הליך bootstrapping, אשר בהחלט דורש כי אתה יודע, מראש, את כתובת ה- IP ואת היציאה של לפחות צומת אחת כבר השתתפות ברשת DHT. גשש שאתה מתחבר, למשל, עשוי להיות עצמו צומת DHT. ברגע שאתה מחובר צומת DHT אחד, לאחר מכן להמשיך להוריד מידע מן DHT, אשר מספק לך מידע קישוריות עבור צמתים נוספים, ולאחר מכן לנווט כי "גרף" מבנה כדי להשיג חיבורים יותר ויותר צמתים, אשר יכול לספק את שניהם קישוריות צמתים אחרים, נתונים מטען (נתחי ההורדה).

    אני חושב השאלה האמיתית שלך מודגש - זה איך להצטרף לרשת DHT Kademlia בלי לדעת כלחברים אחרים - מבוססת על הנחה שקרית.

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

    ביסודו של דבר, ה- DHT מבוזר רק כמנגנון ההצטרפות, ומכיוון שמנגנון ההצטרפות הוא שביר למדי (אין שום דרך "לשדר" את כל האינטרנט! שידור חד-כיווניכדי המארח שהוקצה מראש הפרט כדי לקבל את הנתונים DHT), Kademlia DHT הוא לא באמת מבוזר. לא במובן הקפדני של המילה.

    תארו לעצמכם תרחיש זה: מי שרוצה P2P להפסיק יוצא ומכין התקפה את כל נפוץ יציב DHT צמתים המשמשים bootstrapping. ברגע שהם ביצעו את ההתקפה שלהם, הם מעיפים אותה את כל צמתים בבת אחת. וואם; כל צומת DHT bootstrapping הוא למטה כל אחד נפל. עכשיו מה? אתה תקוע עם חיבור עוקבים מרכזי כדי להוריד רשימות מסורתיות של עמיתים מאלה. ובכן, אם הם תוקפים את עוקבים מדי, אז אתה באמת, באמת במעלה הנחל. במילים אחרות, Kademlia ואת כל רשת BT מוגבל על ידי מגבלות של האינטרנט עצמו, כי, יש מספר סופי (וגם קטן יחסית) של מחשבים, כי אתה צריך לתקוף בהצלחה או לקחת למצב לא מקוון כדי למנוע> 90% של משתמשים מתחבר לרשת.

    לאחר "pseudo מרכזי" bootstrapping צמתים נעלמו כל, את הצמתים הפנימיים של DHT, אשר אינם bootstrapping כי אף אחד מחוץ DHT יודע על הצמתים הפנימיים, הם חסרי תועלת; הם לא יכולים להביא צמתים חדשים לתוך DHT. אז, כמו כל הצומת הפנימי מתנתק DHT לאורך זמן, או בשל אנשים לכבות את המחשבים שלהם, אתחול מחדש של עדכונים, וכו ', הרשת תקרוס.

    כמובן, כדי לעקוף את זה, מישהו יכול לפרוס לקוח BitTorrent תוקנו עם רשימה חדשה של צמתים DHT יציב מראש או כתובות DNS, ולפרסם בקול רם לקהילה P2P להשתמש ברשימה החדשה במקום. אבל זה יהפוך למצב "ואק- a- שומה" שבו התוקפן (אוכל צומת) היה בהדרגה להוריד את הרשימות האלה עצמם, ואת היעד החדש אמיץ bootstrapping צמתים, ואז לקחת אותם לא מקוון, מדי.

    לא רק למדנו את התשובה לשאלה המקורית, אלא גם למדנו לא מעט על טיבה של מערכת BitTorrent ועל הפגיעות שלה.


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