רוחב פס בחיבורי TCP

פורום רשתות, IT ומחשוב כללי - רשתות, ראוטרים, מחשבים ניידים, אביזרים וכו'.
Pentos
חבר פעיל
חבר פעיל
תגובות: 90
הצטרף: פברואר 2008

שליחה

זה שנתב עושה עבורך NAT לא הופך אותו ל-Host. אני לא יודע מאיפה אתה מביא את ההגדרה שלך ל-Host.
זה שיש לנתב כתובת ip public ובצד שני ip private לא הופך אותו ל-host.
NAT זה סוג של קסם ששקוף לרשת ולא מעניין אותה ולא רלוונטי לשאלה שלך על רוחב פס של TCP.

פקודת netstat לא רלוונטית לדיון ואני גם לא מבין איך בדיוק אתה רואה שם את הנתב הביתי שלך? זה מה שאני רואה אצלי למשל:
TCP 192.168.14.118:6982 51.105.249.223:https ESTABLISHED
כתובת פרטית מדברת אל כתובת ציבורית

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

Amir64
גורו
גורו
תגובות: 10928
הצטרף: אוגוסט 2012

שליחה

@Dor1992
כתבת
אתה יודע איפה הטעות הכי גדולה שלך שאתה עכשיו הטעית כאן את כולם? שאתה מערב קליינט וסרבר בhost.
...
אבל המושג host כולל גם קליינט וסרבר:
A host (also known as "network host") is a computer or other device that communicates with other hosts on a network. Hosts on a network include clients and servers -- that send or receive data, services or applications.
...
חבל שאתה ממשיך לנסות ללמד אנשים אחרים כשאתה לא יודע, וכל הזמן אומר שכולם טועים.

nir11
חבר מביא חבר
חבר מביא חבר
תגובות: 3893
הצטרף: אפריל 2007

שליחה

Dor1992 כתב:@udif
לעומת זאת, נתב ביתי שמבצע NAT/PAT מבצע עבודות ניתוב בתוך רשת הLAN על בסיס ממשק הLAN שלו, וברגע שהוא עושה את הNAT/PAT הוא עובר לממשק הWAN שלו שם הוא משמש כHOST ברשת האינטרנט. הוא הHOST שלך כפי שנראה ברשת האינטרנט ואתה אומר את זה בעצמך. משמע, אתה ממשיך להתווכח סתם.
...
·

טוב, זאת כבר שטות. כמו שהוסבר לך, אם המחשב שלך בבית שולח מנת TCP למחשב אחר ברשת האינטרנט, והוא לא מקבל ACK, הוא יעשה retry. הראוטר לעולם לא ייזום פעולה כזו, כי הוא נתב, הוא לא קליינט.
מכייון שהוא עושה NAT, אפשר לטעון שהוא פרוקסי ברמת IP - שולח את הבקשות בשמך, אבל הוא לא פרוקסי ברמת TCP.
כל זה זה סתם הגדרות שהמצאתי כרגע ואני לא מבין את העיסוק האובססיסבי שלך במי הוסט ומי לא.
מעבר לזה הסימוכין שלך על כל מני ותיקים ובכירים בתחום לא עושים רושם.
ראיתי כבר אנשים עם 10 שנים או יותר בתחום ה IT, שיודעים מצויים לקנפג ציודי רשת, הרבה יותר טוב ממני, אבל את העקרונות הם לא מבינים. זה גם טיעון די נלעג, קצת כמו ילד שמקבל מכות בבית ספר והולך לקרוא לאח הגדול שלו.
אתה לא מדייק בעובדות, שואל שאלות משונות וחסרות כל תוחלת, ואז גם עונה ומתווכח עם כל מי שמנסה להסביר לך.

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

Dor1992 פותח השרשור
סמל אישי של משתמש
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 579
הצטרף: אוגוסט 2018
מיקום: חיפה

שליחה

@nir11
·

טוב נעשה סדר שוב.
1. לא אמרתי שהנתב יוזם. ברור שהוא לא היוזם. אבל הוא כן הhost.
Host לא חייב ליזום שום דבר. למשל, host שרץ עליו שרת לא יוזם אלא מקבל חיבורים נכנסים.

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

3. ברגע ביצוע הPAT ממשק הWan של הנתב יוצר Socket משלו עם פורט משלו. ברגע שהוא יצר Socket משלו הוא Tcp Host. הדוגמא שנתתי למעלה ממחישה את זה מצויין: אצלי יישב במחשב שרת שמאזין לפורט 80. בנתב שלי יהיה socket בפורט 80 שכל מה שמגיע לsocket הזה מועבר לפורט 80 במחשב שלי. אבל, וכאן מגיעה התפנית- אם תעשה לממשק הwan של הנתב שלי port scanner על פורט 80, הוא יקבל את הSyn והוא זה שיענה לך. המחשב שנמצא מאחוריו אפילו לא יידע מזה והנתב שלי לא יעביר לו את זה. ממליץ לך לעשות את הניסוי הזה בעצמך עם openwrt ולראות איך הנתב עונה בעצמו על זה והמחשב לא נמצא אפילו בתמונה במצב כזה. מסקנה- אם ממשק הWan פותח סוקטים משלו בכל ביצוע PAT ובנוסף הוא גם מסוגל לענות בעצמו לSyn- הוא מתפקד כHost. ובנוסף, הוא הHOST ברשת האינטרנט. המחשב שלך הוא סתם HOST בתוך הרשת הפרטית שלך שהיא לא רשת האינטרנט.

ואני שוב אחזור להוכחה הניצחת. תפתח פקודת netstat ותראה מי הhost של החיבור בצד השני. אתה תראה שהhost הוא ממשק הWan של הנתב. אתה רוצה לתכנת מחדש את הפקודה ולהמציא את האינטרנט מחדש? יש אפשרות גם שכל הhosts שמופיעים לך בforeign adress יהיו 192.168 וככה ממש תבין מול מי אתה עובד בצד השני. אה, בעצם אתה לא תבין כי 192.168 זו כתובת פרטית שמשמשת רשתות Lan.

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

Amir64
גורו
גורו
תגובות: 10928
הצטרף: אוגוסט 2012

שליחה

Dor1992 כתב:2. מי שבדקתי איתו זה מרצה ותיק בתחום. (מרצה!)
...
אם אתה בודק את הדברים עם מרצה!, למה אתה טורח להטריד בשאלות את חברי האתר, ואז לתקוף אותם?
שאל אותו. קבל את התשובה באמונה עיוורת, (או שאתה לא מאמין שהתשובה שלו נכונה)
ואז שאל אותו את השאלה הבאה.

אתה שואל כאן את כל השאלות רק כדי לעורר ויכוח?

udif
חבר ותיק
חבר ותיק
תגובות: 2083
הצטרף: אוקטובר 2005
מיקום: תל אביב

שליחה

למה אני עונה לך בכלל?

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

עשיתי ניסוי:
בראוטר הביתי יש לי חוק port forward יחיד למספר פורט כלשהוא. קינפגתי אותו לשני מצבים - באחד מהם הוא מגיע לפורט קיים ב HOST ב LAN שלי. במצב השני הוא מנותב ל HOST שלא קיים.

הרצתי 2 פקודות nmap:

קוד: בחירת הכל

nmap -sn -PAppppp aa.bb.cc.dd
nmap -sn -PSppppp aa.bb.cc.dd
ppppp הוא כמובן מספר הפורט הנ"ל, ו aa.bb.cc.dd היא כתובת ה IP של הראוטר.

שתי הפקודות מבצעות PING בשתי דרכים שונות. אחת שולחת SYN ומצפה ל SYN/ACK והשניה שולחת ACK ומצפה ל RST.
את הפקודות שלחתי דרך HOST שיושב אי שם באינטרנט . בשני המקרים (PA ו- PS):
כאשר קינפגתי את ה port forward להגיע ל HOST אמיתי, קיבלתי הודעת nmap של host is up.
כאשר קינפגתי את החוק לכתובת LAN שלא קיימת אצלי, קיבלתי הודעת nmap של Host seems down.

מספיק משכנע שה SYN/ACK/RST מגיעים מה HOST ולא מהראוטר?

אה, ודרך אגב, אני לא CCNA, וחי טוב עם זה.

Batnun
חבר מביא חבר
חבר מביא חבר
תגובות: 3634
הצטרף: מאי 2005

שליחה

Amir64 כתב:אתה שואל כאן את כל השאלות רק כדי לעורר ויכוח?
...
זה בדיוק מה שהוא עושה בכל שרשור.


Batnun

.

nir11
חבר מביא חבר
חבר מביא חבר
תגובות: 3893
הצטרף: אפריל 2007

שליחה

Dor1992 כתב:@nir11
·


1. לא אמרתי שהנתב יוזם. ברור שהוא לא היוזם. אבל הוא כן הhost.
Host לא חייב ליזום שום דבר. למשל, host שרץ עליו שרת לא יוזם אלא מקבל חיבורים נכנסים.

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

תשמע, אם דיברת עם מרצה, ועוד ותיק (!), מי אנחנו בכלל...
אז השתכנענו שהראוטר הוא הוסט. הוא לא יוזם אבל הוא הוסט.
אני חוזר לשאלה המקורית דור - מה זה משנה?

nir11
חבר מביא חבר
חבר מביא חבר
תגובות: 3893
הצטרף: אפריל 2007

שליחה

רק בגלל שאתה מתעקש על ההוסט שלך
Every network host is a node, but not every network node is a host. Network infrastructure hardware, such as modems, Ethernet hubs, and network switches are not directly or actively participating in application-level functions, and do not necessarily have a network address, and are not considered to be network hosts.


https://en.wikipedia.org/wiki/Host_(network)

udif
חבר ותיק
חבר ותיק
תגובות: 2083
הצטרף: אוקטובר 2005
מיקום: תל אביב

שליחה

nir11 כתב:רק בגלל שאתה מתעקש על ההוסט שלך
Every network host is a node, but not every network node is a host. Network infrastructure hardware, such as modems, Ethernet hubs, and network switches are not directly or actively participating in application-level functions, and do not necessarily have a network address, and are not considered to be network hosts.


https://en.wikipedia.org/wiki/Host_(network)
...
·

דווקא זה לא כ"כ קשור. הציטוט שלך מדבר על תשתיות L2 שהן בהכרח נטולות כתובת IP (אלא אם כן יש להן ממשק ניהול ב L3).
לעניין, לראוטר יש כתובת IP על כל רשת שהוא מחובר אליה, ולכן אפשר לומר שהוא network host. זה לא קשור לעניין שהוא לא ה HOST שיוזם את הקשר על ה WAN. הוא יכול להיות network host כמו כל ראוטר אחר ועדיין לבצע העברת פקטים בלבד (עד כדי שינוי ה header) בלי להוסיף שום דבר משלו על הרשת.
ואתה יודע מה - שינוי header זה דבר רגיל, כל ראוטר חייב לעשות את זה כשהוא מעדכן את שדה ה TTL.
[/eng]

Batnun
חבר מביא חבר
חבר מביא חבר
תגובות: 3634
הצטרף: מאי 2005

שליחה

למיטב ידיעתי, כל מכשיר עם כתובת IP הוא Network Host, לא משנה אם זה כתובת פרטית או ציבורית.
ברור שראוטר שמבצע NAT מחליף את כתובת ה-IP, אחרת שרתים באינטרנט לא היו יכולים להחזיר מידע למכשירים עם כתובות IP פרטיות, אבל הראוטר עצמו לא יוזם את התקשורת בשום מקרה.
דרך אגב, הראוטר גם לא חייב להשתמש בכתובת שלו כדי לבצע NAT - הוא יכול להשתמש בכתובת שונה מתוך תחום כתובות שה-ISP מנתב אליו.


Batnun

.

nir11
חבר מביא חבר
חבר מביא חבר
תגובות: 3893
הצטרף: אפריל 2007

שליחה

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

דור1992 - ראוטר הוא הוסט.

ag43
חבר ותיק
חבר ותיק
תגובות: 2224
הצטרף: אוגוסט 2008

שליחה


Batnun
חבר מביא חבר
חבר מביא חבר
תגובות: 3634
הצטרף: מאי 2005

שליחה

nir11 כתב:Every network host is a node, but not every network node is a host. Network infrastructure hardware, such as modems, Ethernet hubs, and network switches are not directly or actively participating in application-level functions, and do not necessarily have a network address, and are not considered to be network hosts.

https://en.wikipedia.org/wiki/Host_(network)
...
הקטע החשוב בערך הזה של וויקיפדיה הוא דווקא במשפט הראשון בעמוד:
Hosts are assigned at least one network address
...
Network Address (כתובת רשת) יכולה להיות במקרה הזה כתובת IP או כתובת MAC.

אבל כמובן שכל המקורות שנביא בשרשור הזה בטלים בשישים כי:
כולנו למדנו CCNA. אין טעם להרצות כאן.
...
מי שבדקתי איתו זה מרצה ותיק בתחום. (מרצה!)
...

Batnun

.

NegativeIQ
חבר מביא חבר
חבר מביא חבר
תגובות: 4485
הצטרף: דצמבר 2005

שליחה

@Dor1992
מקווה שאולי תקשיב למישהו שתקשורת ואינטרנט הם החיים המקצועיים שלו גם מבחינה אקדמית וגם מבחינת עבודה בפועל. ראוטר הוא לא אחד מהצדדים לחיבור TCP, גם כשמדובר ב-NAT או PAT. אם אתה רוצה הוכחה אז אתה יכול להתחבר ב-telnet או SSH לראוטר (תצטרך כמובן ראוטר שמאפשר גישה כזאת) ולהריץ עליו את פקודת netstat ותוכל להיווכח שלא תראה שם שום חיבור TCP למעט חיבור ה-SSH שכרגע יצרת אליו.
אכן, NAT צריך לעקוב אחרי חיבורי TCP כי הוא מחליף את ה-IP של פקטות יוצאות ב-IP של עצמו והוא צריך לדעת לאן להחזיר את התשובות אבל זה נרשם בטבלה אחרת, טבלה של חיבורים שפתוחים דרך ה-NAT, והראוטר לא מתייחס לזה כחיבור שהוא אחד מהצדדים שלו. כשמגיעה פקטה נכנסת, ה-NAT בודק האם ה"שלישיה" שלה (IP מקור, פורט מקור ופורט יעד) תואם לאחד מהחיבורים שנמצאים בטבלה שלו ואם כן הוא משנה את השדה של IP היעד (ולפעמים גם פורט היעד) בהתאם למה שרשום בטבלה ומכאן זה ניתוב רגיל לגמרי. הכל נעשה ברמת הפקטה הבודדת, נכנסת פקטה אחת, יוצאת פקטה אחת, והקוד שמטפל ב-TCP פרופר, לרבות TCP Sequencing ו-Retransmissions לא רץ על ה-NAT בשום שלב אלא רק על ה-Endpoints (זה בניגוד ל-Proxy או Port Redirection ברמת האפליקציה).

לשאלתך לגבי מהירות, המהירות תהיה של הקישור הכי איטי בין כל שני ראוטרים בשרשרת, שיכול להיות החיבור שלך לספק, החיבור של הצד השני לספק שלו או כל קישור בין שני ראוטרים של ספקים אחד לשני בדרך. השליטה במהירות של חיבור TCP מתבצעת בצד של השולח (כאשר כל אחד מהצדדים בחיבור מנהל אותו בנפרד עבור המידע שעובר ממנו לצד השני) באמצעות Congestion Window, ערך שאומר כמה פקטות TCP המחשב ישלח בחיבור מסויים לפני שהוא יעצור ויחכה לאישור מהצד השני. בתחילת החיבור הגודל של הערך הזה הוא אחד, כלומר המחשב ישלח פקטה בודדת ויחכה לאישור קבלה מהצד השני לפני הפקטה השניה, וכאן אני אדגיש ש-NAT שנמצא באמצע לא ישלח אישור כזה בעצמו - הוא ישנה את IP המקור ל-IP של עצמו ויעביר את הפקטה הלאה ואז יחזיר את פקטת האישור אם וכאשר היא תתקבל, או במילים אחרות, אם לעולם לא יישלח אישור כזה (כי הפקטה הלכה לאיבוד או כי מראש ניסית להתחבר ל-IP שלא קיים) המחשב שלך לעולם לא יקבל אישור כזה כי ה-NAT לא ימציא אותו (שוב, זה בניגוד ל-Proxy). בכל מקרה המנגנון הזה שמתחיל בפקטה בודדת נקרא Slow Start. ככל שנראה שהחיבור תקין הגודל של החלון הזה גדל והמחשב מרשה לעצמו לשדר "צרור" יותר גדול של פקטות לפני שהוא עוצר ומחכה לאישור מהצד השני.
עכשיו לגבי כל ראוטר בדרך (בין אם NAT ובין אם לא), הווא מקבל את הפקטה מ-Interface אחד ואמור להוציא אותה מ-Interface אחר, אבל הוא אמור לעשות עליה פעולות מסויימות, כגון ולידציה של שדה ה-Checksum והורדת ה-TTL שלה ב-1, מה שאומר שהפקטה חייבת להישמר לרגע בזיכרון של הראוטר. ברגע שהראוטר סיים את הטיפול בפקטה הוא מנסה להוציא אותה מה-Interface השני, ואם הוא לא יכול כי הוא בדיוק משדר פקטה אחרת דרך אותו Interface אז הפקטה תישאר בזיכרון של הראוטר בתור עד שה-Interface יתפנה, וזה אומר שה-Latency של החיבור מבחינת תחנות הקצה גדל. מעבר לזה, הגודל של הזיכרון של הראוטר מוגבל, ואם אין לפקטה מקום בתור אז היא פשוט נזרקת, ואז תחנות הקצה רואות את זה כ-Packet Loss. ברגע ש-TCP רואה שיש לו Packet Loss אז הגודל של החלון יורד חזרה ואז עולה שוב לאט עד שבסוף זה מתכנס לערך הגדול ביותר שבו אין נפילות וזאת המהירות שאתה מקבל.

udif
חבר ותיק
חבר ותיק
תגובות: 2083
הצטרף: אוקטובר 2005
מיקום: תל אביב

שליחה

@NegativeIQ
·
הסבר יפה ומעמיק, רק דבר אחד - גודל החלון נמדד לא לפי מספר הפקטים אלא לפי האורך הכולל בבייטים.

NegativeIQ
חבר מביא חבר
חבר מביא חבר
תגובות: 4485
הצטרף: דצמבר 2005

שליחה

udif כתב:@NegativeIQ
·
הסבר יפה ומעמיק, רק דבר אחד - גודל החלון נמדד לא לפי מספר הפקטים אלא לפי האורך הכולל בבייטים.
...
עד כמה שאני זוכר יש את ה-Sliding Window הרגיל שהוא בבייטים ואת ה-Congestion Window שהוא בפקטות, וכמות המידע שנשלח הוא המכפלה שלהם, אבל יכול להיות שאני טועה.

udif
חבר ותיק
חבר ותיק
תגובות: 2083
הצטרף: אוקטובר 2005
מיקום: תל אביב

שליחה

לפי מה שאני מבין (מקווה שאני לא טועה), חישוב גודל ה congestion window הוא תמיד ע"י מכפלה של ה maximum segment size ולכן אתה יכול לומר שהוא סופר פקטות, אבל השימוש בפועל נמדד ע"י צבירת כמות הבייטים שכרגע "באוויר" ולא ע"י ספירת הפקטים שנשלחו.

Dor1992 פותח השרשור
סמל אישי של משתמש
חבר פעיל במיוחד
חבר פעיל במיוחד
תגובות: 579
הצטרף: אוגוסט 2018
מיקום: חיפה

שליחה

@NegativeIQ
·

אני מבין מה אתה אומר.

השאלה היא איך ממשק הwan של הראוטר עונה בעצמו לsyn? הרי אם אני פותח שרת אפאצ׳י במחשב שלי שמאזין לפורט 80 ואני מגדיר בראוטר שממשק הwan שלו גם יאזין לפורט 80 וברגע שיקבל בפורט 80 חבילה. הוא יבצע Nat ויעביר את החבילה למחשב שלי.

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

ziv_r
סמל אישי של משתמש
עורך ראשי HTmag
עורך ראשי HTmag
תגובות: 46508
הצטרף: ינואר 2005

שליחה

@Dor1992
לפני שהעילית של חברי האתר משקיעים ועונים שוב לשאלה הזאת, חסר הבהרות מצידך:
1. למה אתה שואל אותנו ולא את המרצה שלך?
2. מה המטרה של השאלה?

חזור אל “רשתות, אינטרנט ו- Fiber”