עבור לתוכן

פניית Server ל Client מאוחרי NAT

Featured Replies

פורסם

שלום,

בא נניח את הסיטואציה הבאה:

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

Client A פונה ל Server כדי שיתן לו את תחזית מזג האוויר

Client A יודע בדיוק את ה IP וה PORT (פרוטוקול TCP\IP) ומבצע רישום לשרת פעם יחידה.

מאותו הרגע ה Server מודיע על כל שינוי מזג האוויר ופונה ל Client לעדכן אותו (ה Server יודע בדיוק מה ה IP של ה Client כיוון שברישום ה Client שלח אליו את הכתובת IP שלו)

עכשיו לשאלות:

1. במידה וה Client יושב מאחורי NAT כיצד ידע השרת לחזור לאותו ה Client (למרות שיש לו את ה IP שלן) לאחר שה Client נרשם פעם יחידה?

2. במידה והלקוח משנה כל פעם את הכתובת שלו (כי הוא מקבל כתובת IP מחדש בכל חיבור לאינטרנט) כיצד ידע ה Server להחזיר לו תשובה?

תודה לעוזרים

פורסם

א. ערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה.

ב. מה הקשר פה לתכנות?

פורסם

לגבי השאלה הראשונה, זה היופי ב-NAT.

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

הפאקט יוצא בדרכו אל CNN. השרת של CNN מקבל אותה (שוב, לא רלוונטי איך) ורוצה להחזיר תשובה. השרת של CNN בוחן את ה- Header של הפאקט ומחליט שאם הוא רוצה להחזיר את התשובה הוא צריך להחזיר אותה אל מי שביקש, דהיינו 212.10.10.1 בפורט 4025.

http://dc.fresh.co.il/dcboard.cgi?az=show_thread&om=7206&forum=Networking&viewmode=all

אני ממש לא בטוח לגבי השאלה השניה, אבל אני מניח שצריך איזה COOKIE, לא?

פורסם
  • מחבר

שניצל - לא מצאתי תת פורום אחר שאוכל לשאול בו את השאלה.

eranx - אני יודע מה זה NAT ואיך הוא פועל. ולכן לא קיבלתי ממך תשובה.

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

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

בנקודה זו הלקוח בכלל לא פונה יותר לשרת ולכן השאלה הגדולה כיצד ידע השרת לאן להחזיר (נגון שהשרת יודע מה ה IP של הלקוח אבל מה קורה אם הוא יושב אחרי NAT)

ושוב תודה

פורסם

מה שאתה מתאר זה session יחיד ולא רישום סטאטי.

זה לא אמור לעניין את השרת מה מתרחש מאחורי הNAT.

פורסם

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

אחרת הרשומה בNAT תסגר.

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

פורסם
  • מחבר

מסתבר שכל עוד שה session לא נסגר (כאשר הלקוח יוזם את ההתקשרות עם השרת) השרת יכול להחזיר לו תשובה ללא ידיעה אם הוא נמצא מאחרי NAT או לא (כי זה כבר נרשם)

תודה על התשובות

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים