WolfSign : |
אני לא מתמצא בקטע המטמטי של העניין אבל המנוע של הביטורנט הפך להיות מיושן וצולע לעומת זה של emule . לפי המודל של ביטורנט שתיארת פה ייקח להוריד סרט באורך 700 מגה משהו כמו שלושים שנה...
|
הבחירה בביטורנט נובעת משתי סיבות: היא לא מקושרת בהכרח לשימושים לא חוקיים (ולראיה כמות ההפצות שמאפשרות היום הורדה בשיטה זו - מנדרייק, פדורה, סלאק ועוד...) וסיבה שניה היא שמדובר בקוד פתוח וחופשי (אני לא יודע אם eMule כזו אבל היא לא עונה על הקריטריון הראשון).
כנראה שיש סיבה טובה מאוד למה דווקא ביטורנט הפכה לחביבת מפיצי תוכנה חופשית, כך שאם מישהו יודע אז אפשר לספק מידע גם על זה...
בכל מקרה, חשבתי קצת על המקרה שכולם מתחילים להוריד בו זמנית ואפילו למקרה אחד פשוט הבעיה לא פשוטה בכלל. בגדול, הורדה מביטורנט מורכבת משני חלקים: החלק הראשון, שבו לא מנוצל רוחב הפס העולה של כל המתחברים, והחלק השני שבו יש מספיק מקטעים ייחודיים אצל כל המחוברים לרשת כך שכולם מעלים בתפוקה מקסימלית.
ברשת לא סימטרית (דהיינו המחוברים בעלי רוחב פס העלאה שונה) הבעיה הרבה יותר מסובכת כי אז ביטורנט מקצה רוחב פס להורדה לפי מה שמספקים כלפי מעלה. בהנחה שלכולם אותו רוחב פס עולה כמו שהגדרתי, בתיאוריה כולם צריכים לקבל הזנה אחידה מהזורע הראשוני.
אם נניח שיש זורע ראשוני אחד ועשר עלוקות, ורוחב הפס העולה של הזורע הוא 10KB אז כ"א מהעלוקות יקבל 1KB. בהנחה שכל מקטע הוא 1KB, הרי שאחרי שכ"א מעשר העלוקות הוריד 1KB של מקטע אחר, פתאום כל עלוקה יכולה להוריד 11KB (כאשר 1 מהזורע ו 1 מכ"א מהעלוקות האחרות).
במצב האופטימלי, כל זורע/עלוקה יעלה 10KB ובסה"כ 110KB בדוגמה שהבאתי. בחלוקה ל 10 עלוקות כל עלוקה תוכל להוריד במקסימום 11K. במצב זה, כל עלוקה תוריד את ה ISO בכ 15 שעות. אבל, יש את החלק הראשון שהוא תנאי לניצול מקסימלי. אם לא יהיו מספיק מקטעים זמינים, לא ינוצל רוחב הפס ואז לא נגיע אפילו ל 11KB.
החלק הראשון, מסבך עוד יותר את הבעיה כי נראה שצריך להיות שיווי משקל בין מספר העלוקות לגודל כל מקטע. למה? אם למשל מקטע הוא של 1K ויש 10 עלוקות, אז נדרש להמתין פרק זמן של 1הורדת 1K לפני שכל עלוקה תתחיל לתרום לשאר. לעומת זאת אם יהיו 100 עלוקות שכ"א תקבל 0.1K ברור שזמן ה Setup להפצת המקטע הראשון יגדל פי 10.
עוד רמה של סיבוך היא, נניח שכולם הורידו את המקטע הראשון מכל העלוקות האחרות, האם הזמן שעבר הספיק לכולם להוריד עוד מקטע חדש מהזורע. אם כן, אנחנו בתפוקה מקסימלית (דהיינו שלב ב) אחרת אנחנו חוזרים לנקודת האפס ועוד פעם כולם צריכים להוריד מקטע אחד שלם מהזורע כדי שאפשר יהיה להפיץ...
עכשיו תסבכו ע"י נוסחה סטטיסטית של כמה מתחברים/מתנתקים בו זמנית, רוחבי פס שונים וכו', ותראו שהבעיה בכלל לא פשוטה