לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 08-02-2008, 12:46
  לפנים לפנים אינו מחובר  
 
חבר מתאריך: 08.11.07
הודעות: 675
פיתוח מערכת ניתוב בין מחשבים על גבי מדיה שרירותית

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

  • התקשורת עשויה לעבור מעל מדיה שרירותית. יכול להיות שהיא תעבור מעל IP.
    יכול להיות שהיא תעבור מעל dial-up. יכול להיות שהיא תעבור בקבצים על דיסקטים
    או מדיה קשיחה אחרת. ויכול להיות שהיא תעבור מעל עוד מנגנון שלא עלה עדיין
    בדעתנו.
  • אני לא צריך את כל הפיצ'רים שישנם בפרוטוקולי תקשורת קיימים, אלא חלק מאוד
    מסוים מהם.
משתי הסיבות הללו (וכי זה ממש ממש קשה) אני לא רוצה לממש TCP-over-file, או משהו כזה.

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

נניח שרשת המחשבים שלי נראית כך:





תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

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

יש לי חשק עז להעביר הודעה ממחשב A למחשב G. בואו נדבר על זה.

כדי לעשות את זה, הדבר הראשון שאני רוצה לעשות הוא לבנות את טבלות הניתוב שלי.
יש לי שתי דרכים לעשות את זה:

  • הדרך הראשונה, והמועדפת עלי, היא שכל מחשב שולח במרווחי זמן מסוימים
    הודעות של "וואלה גבר אני פה" ב-broadcast על גבי ערוצי התקשורת שיש לו.
    יחד עם הקריאה הזו, הוא שולח את רשימת המחשבים שהוא שמע עליהם (אך
    לא בהכרח מכיר ישירות). עוד בהמשך.
  • הדרך השנייה היא שימוש ב-discovery protocl כלשהו, שבו אפשר לשאול
    "מי מכיר מחשב מסוים?"
ברגע שיש בטבלת הניתוב של מחשב A רשומה עבור מחשב G, הוא שולח הודעה בדרך
שמצוינת בטבלה.

מה קורה עם ה-broadcast-ים האלה מלמעלה? זה אמור להראות בערך כך:
  • A שולח "וואלה גבר אני פה" ל-B,C,D,K. הם רושמים לעצמם שהם מכירים
    את A ישירות דרך IP.
  • D שולח על הדיסקט "וואלה גבר אני פה" ל-E ול-F. מכיוון ש-D כבר מכיר את
    A הוא שולח הודעה קצת יותר מורכבת בעצם: "וואלה גבר אני פה, ואני מכיר
    את A בהופ אחד". E ו-F מקבלים את ההודעה הזו ורושמים לעצמם שהם
    מכירים את D בעזרת דיסקט, ושהם שמעו על A דרך D בהופ אחד.
  • F שולח ל-G הודעה בעזרת dial-up שבה הוא אומר לו "וואלה גבר אני פה,
    ואני מכיר את D בהופ אחד, ואתה A בשני הופים". G רושם לעצמו שהוא
    מכיר את F בעזרת dial-up, ושהוא שמע על D דרך F בהופ אחד, ועל A דרך
    F בשני הופים
    .
בשלב הזה G יכול לשלוח הודעה ל-A בשיטת הסמוך-עלי. G לא יודע איך מגיעים ל-A,
אבל הוא יודע ש-F הוא ה-gateway שלו ל-A. ל-F עצמו אין מושג איך מגיעים ל-A, אבל
הוא יודע ש-D הוא ה-gateway שלו ל-A. כשההודעה מגיעה ל-D הוא רואה שהוא מכיר
את A ישירות דרך IP, ומעביר אליו את ההודעה.

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


עד כאן הכל טוב, ובדיוק כאן מתחילות הבעיות. כמה מהן גדולות, וכמה מהם כנראה
טריוויאליות, אבל אני לא מכיר את הפיתרונות:
  1. איך לדאוג שלא יכתבו שטויות כמו ש-J מכיר את B דרך A? זה נכון לחלוטין,
    אבל J מדבר עם K שיכול לדבר ישירות עם B, באותה מידה שהוא יכול לעשות
    זאת דרך A?
    בהינתן שאין לאף מחשב את כל הגרף (אפשר לראות שעובר פחות מידע בין
    המחשבים), איך עושים דבר כזה?
  2. איך לבחור נתיב בהינתן שיש כמה אפשרויות? הודעה מ-A ל-G יכולה לעבור
    דרך K או דרך D, ואם היא עוברת דרך K היא יכולה לעבור דרך H או דרך I.
    עם כמות המידע שאני מדבר עליה, ברור שבוחרים בדרך עם ה-TTL הנמוך
    ביותר מבחינת הופים, אבל זה לא מספיק טוב.
    התכנון הוא שיעבור עוד מידע חוץ מהופים, כמו רוחב פס ב-IP, קצב תקשורת
    ב-dial-up, וכמה פעמים עובר הדיסקט בין המחשבים במקרה של הדיסקט.
    לכל שיטת תקשורת ישנם פרמטרים ייחודיים שצריך להתחשב בהם, בנוסף
    לפרמטרים כלליים כמו סיכוי ל-packet loss (שאיתו נגיד שאני יכול להתמודד
    על ידי הכפלה של סיכויים)
  3. איך לבחור מדיניויות לפרוטוקול הניתוב שלי? לדוגמה, איזו מדיניות invalidation
    אני צריך להחיל? בכל פעם שאני לא מצליח לדבר עם מחשב למחוק אותו מהטבלה
    שלי ולשלוח לכולם הודעה שאני לא מכיר אותו יותר? לנסות קצת יותר? איך אני
    בכלל יכול להגיד מושג כזה לדיסקט (שם קשה לקבוע מתי "איבדתי קשר" עם מחשב)
פיתרון זמני שחשבתי עליו הוא הפרדה לשלוש שכבות של מערכת התקשורת הזו:
  1. למטה תהיה השכבה ה"פיזית" שלי, שתורכב מכל מיני provider-ים, שיאפשרו
    תקשורת על פני כל מיני ערוצים.
  2. באמצע תהיה טבלת הניתוב והלוגיקה שלה.
  3. למעלה יהיו אלגוריתמי ניתוב. בשלב הראשון יהיה אלגוריתם כושל שייבחר את
    הנתיב עם מינימום ההופים. ואחר כך, אלוהים גדול...
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

זה עדיין מעלה כמה שאלות:
  1. מה לעשות עם פרמטרים שייחודים ל-provider?
  2. איך ישפיעו האלגוריתמים על הטבלות הסטטיות? אלגוריתם הניתוב הרי גם
    קובע איזה "שמעתי על" להעביר למחשבים אחרים כשאני מספר להם איזה
    גבר אני. מותר לאלגוריתמים לסמוך או לדרוש הימצאות של אלגוריתמים
    מסוימים על מחשבים אחרים?
  3. ועוד שאלות אל אלגוריתמי הניתוב: מותר לפלאגינים האלה לדבר ברשת
    בעצם כדי לברר פרטים כמו אלה שבשאלה הקודמת? אלה רק אלגוריתמים
    שרצים כשרוצים להעביר הודעה, או שאלה פלאגינים בעלי תפקודיות רחבה
    יותר, שיכולים לעשות מה שבא להם במסגרת שטבלת הניתוב וה-provider-ים
    מספקים להם?
כל הצעה וכיוון עבודה יעזרו. אני מעדיף כיוונים ספציפיים ולא הפניה לספרות, כי רוב
המידע או תאורטי לחלוטין, או עוסק בפרוטוקלי תקשורת קיימים, שהסברתי למעלה
מדוע אני מעדיף לא להתעסק איתם (נותן לי הרבה יותר ממה שאני צריך, לא מטפל
בכמה נושאים ספציפיים שיש לי, ומסובך להחריד).

תודה.
_____________________________________
"Saying java is nice because it works on all platforms is like saying anal sex is nice because it works on all genders".

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 21:54

הדף נוצר ב 0.07 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר