עבור לתוכן

האם קיים פורט שתמיד פתוח להאזנה (גם מאחורי ראוטר)?

Featured Replies

פורסם

רציתי לדעת האם קיים פורט TCP אשר פתוח תמיד. גם אם אני מאחורי ראוטר וללא הפניית פורטים.

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

פורסם

לא

נניח בשלילה שכן

קיים פורט N שפתוח תמיד

מכאן נובע שלכל מחשב X מאחורי הראוטר ניתן להגיע דרך פורט N

סתירה

מ.ש.ל

יש broadcast שיכול להיות פתוח, אבל כשמו כן הוא, והוא יגיע לכל המחשבים ולא לאחד ספציפי.

פורסם

צריך להבדיל בין 2 דברים

1. אתה יוזם קשר TCP לאנשהו

2. מישהו יוצר קשר TCP אליך

כל קשר TCP הוא דו כיווני, מהרגע שהוא נוצר הודעות יכולות לעבור לשני הצדדים בלי בעיה.

כשאתה מתחבר ל-ICQ אתה יוזם קשר TCP עם השרת המרכזי שלהם, הקשר הזה נשאר פתוח כל הזמן.

כשאתה שולח הודעה אתה שולח אותה על אותו קשר שאתה יזמת.

על אותו רעיון אתה מורידים דפים מהאינטרנט.

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

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

פורסם
  • מחבר

אסף - חחח מישהו מושפע יותר מידי מהלימודים... :)

אגב, Broadcast יכול אולי לבוא בחשבון... (?)

עריכה: שם זה גם UDP וגם צריך להאזין לפורט מסוים, לא? איך זה הולך? (אין לי הרבה ידע בדברים האלה)

Holy - את התשובה שלך כבר ידעתי.

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

קצת רקע: בעצם אני רוצה לכתוב תוכנית קטנה שמאזינה לפורט מסוים, לבקשות TCP (שרת קטן, בקיצור). והייתי מעדיף שהוא יעבוד בלי לשחק עם הפניות פורטים וכו'.

פורסם

שוב ב-ICQ אתה יוצר קשר לשרת המרכזי כשאתה מפעיל את התוכנה והקשר נשאר כל הזמן פתוח

כשאתה שולח הודעה ההודעה נשלחת לשרת המרכזי ששולח אותו ליעד

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

ב-UDP לא קיים קשר כמו ב-TCP והודעות נשלחות מידע ללא יצירת קשר אבל מבחינת הראוטר אין הבדל.

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

ב-UDP הראוטר מזהה את החבילה ראשונה שאתה שולח לאנשהו וזוכר מאיזה ולאיזה מחשב ופורט היא נשלחה ומעביר באופן אוטומטי את ההודעות החוזרות למחשב ולפורט.

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

פורסם
  • מחבר

לגבי קשר שפתוח תמיד - לא יודע. לא בטוח בזה.

אבל... עד כמה שידוע לי... הקשר בין שני חברים באייסיקיו הוא P2P. (לא?)

כלומר חיבור ישיר בין חבר לחבר.

פורסם

הקשר הוא לא P2P אלה קישור לשרת מרכזי (שגם מציג לכל המשתמשים האחרים האם אתה מחובר או מנותק)

אם הקישור היה P2P כל אלה שמחוברים מאחורי ראוטר היו צריכים להגדיר פורטים (והם לא)

אולי אתה לא בטוח, אבל אני כן.

אתה מוזמן לעשות netstat בשביל לראות את כל החיבורים שלך ותראה שיש לך שם חיבור שב-Foreign Address הפורט הוא 5190 (שזה הפורט שאתה מתחבר לשרת המרכזי כמו שמוגדר ב-Prefrences -> Connections -> Server)

פורסם

העברת קבצים בICQ היא P2P לכן לא תוכל לקבל קובץ בלי לשחרר פורטים בנתב, כמו שנאמר אם היוזם חיצוני אז לא פותחים

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

פורסם
  • מחבר

Holy - כנראה שאתה צודק (אגב, יש לך סימוכין?).

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

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

ואגב ביררתי קצת לגבי Broadcast - גם זה לא יעזור.

עריכה:

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

פורסם

תחפש על ה ICQ PROTOCOL ותראה שהוא צודק...

ואכן, במרבית בפרוקוטולים, כל התעבורה בינך לבין אחרים עוברת על השרתים (לך תדע אם הם שומרים את זה), לכן עדיף אם אפשר להצפין את התקשורת :)

ולא דרוש "תותח רשתות" בשביל זה, קצת קריאה בנושא ואתה תבין לבד..

פורסם
  • מחבר

אני עדיין לא מבין איך אייסיקיו עומד בתעבורה המטורפת הזאת...

וה"תותח" במקרה היה שם. יותר קל לשאול... :) ככה אני מקבל תשובה קצרה, קולעת ואמינה.

אין לי זמן ו(בעיקר)סבלנות להתחיל לקרוא.

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

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

פורסם

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

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

ג) אני ממליץ לך להסתכל בקוד של MIRANDA או GAIM (יותר מומלץ), אתה תוכל לראות את האינטרקציה של הפרוטוקול, גם עם השרתים וגם עם התוכנה...

ד) הפרוקוטול של ICQ הוא OSCAR, לכן שאתה מחפש בגוגל אל תרשום ICQ PROTOCOL אלה OSCAR PROTOCOL SPECIFICATION או משהו כזה..

פורסם
  • מחבר

תודה על התגובה.

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

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

ג) לא תודה, גדול עלי (ראה א') :)

ד) אני אנסה.

פורסם

Holy - כנראה שאתה צודק (אגב, יש לך סימוכין?).

אתה מוזמן לעשות netstat בשביל לראות את כל החיבורים שלך ותראה שיש לך שם חיבור שב-Foreign Address הפורט הוא 5190 (שזה הפורט שאתה מתחבר לשרת המרכזי כמו שמוגדר ב-Prefrences -> Connections -> Server)

ארכיון

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

דיונים חדשים