1Sep

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

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

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

השאלה

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

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

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

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

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

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

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

תשובה

תרומת SuperQuer Allquixotic מציעה הסבר מעמיק:

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

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

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

הפניות

Bittorrent 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.ברגע שהם ביים את ההתקפה שלהם, הם באביב זה על כל הצמתים בבת אחת. Wham ;כל צומת DHT bootstrapping הוא למטה כל אחד נפל.עכשיו מה?אתה תקוע עם חיבור מרכזי מעקב כדי להוריד רשימות מסורתיות של עמיתים מאלה.ובכן, אם הם תוקפים את עוקבים מדי, אז אתה באמת, באמת במעלה הנחל.במילים אחרות, Kademlia ואת כל רשת BT מוגבל על ידי מגבלות האינטרנט עצמו, כי, יש מספר סופי( וגם קטן יחסית) של מחשבים, כי אתה צריך לתקוף בהצלחה או לקחת למצב לא מקוון כדי למנוע & gt; 90% מהמשתמשים מתחבר לרשת.

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

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

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

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