עבור לתוכן

על נתבים, שיתוף קבצים וחיבורים במקביל

Featured Replies

פורסם
  • מחבר

nikf - נראה לי שאני ואתה מדברים על דברים טיפה שונים.

לא ,תפקידו העיקרי של הראוטר זה ROUTING וזה רוב העבודה שלו ("רק להעביר פאקטים" זה מה שמבלבל אותך),

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

טבלת NAT בהחלט מעמיסה על ה CPU ועל הזכרון המועט שיש אבל רוב העבודה היא לא הטבלה הזאת .

חיבור FTP לא יוצר הרבה חיבורים במקביל ,אלה ברצף ,יש חיבור אחד במקביל.

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

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

הדוגמא הכי טובה שאתה יכול לחשוב עליה היא DOS ATTACK ,זה לא קשור לNAT כי אפשר להפנות את ההתקפה ל IP הראשי,

זה אותו רעיון בדיוק ,יותר מידי תעבורה יחסית למה שהראוטר מסוגל לטפל,גורם ל CPU לעמוד על 100% ,לקו לקרוס לפעמים ולראוטר להתקע לפעמים.

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

  • תגובות 59
  • צפיות 6.1k
  • נוצר
  • תגובה אחרונה
פורסם

אני חושב שאני מבין היכן אנחנו לא מסכימים ,תרשה לי לפרט,

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

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

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

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

ללא שום קשר ל NAT , (בנוסף NAT מעמיס עוד יותר ,גם הפעלת FW בראוטר מעמיס, הפעלת QOS מעמיס ...)

אני ראיתי שוב ושוב ראוטרים מגיעים למגבלות שלהם ללא NAT בגלל תוכנות שיתוף,

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

אגב ,

טכנית אפשר גם בבית לא להגדיר NAT

אפשר גם בבית לקבל IP אמיתי ולבטל NAT עבור תחנת האימיול (בעלות כספית)

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

פורסם
  • מחבר

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

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

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

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

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

פורסם

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

פורסם
  • מחבר

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

נכון.

האם באמת יש לך 1000 רשומות בטבלת ניתוב בגלל P2P? אולי, אם הנתב הוא באמת נתב עם ממשקים רבים (כמו הנתבים של ספקי השירות למשל), וצריך לקבל החלטת ניתוב לכל IP. הייתי מצפה שנתבים המיועדים לבתים ועסקים קטנים לא יחזיקו כל IP שהם אי-פעם ראו בטבלת ניתוב, כי בד"כ רק ממשק אחד שלהם מוביל לרשת הרחבה (WAN) והשאר זה פשוט תחנות קצה ברשת פנימית או סגמטים של אותה רשת (אפילו אם לא מדובר ב-NAT).

זה יהיה מאוד בזבזני לנתב כזה לנהל טבלת IP ברמה כלל-אינטרנטית, אבל לך תדע, אולי הם באמת עושים את זה...

פורסם

טבלת הניתוב בנתב ביתי היא פשוטה מאוד. לרוב הנתבים יש רק שני אינטרפייסים: WAN ו-LAN (שמחובר ל-switch מובנה ופשוט בנתב). אין מיליון אינטרפייסים, אין Vlanים ואין ACL. הכל מאוד פשוט.

עיקר העומס הוא טבלאת ה-NAT. כדי להבין את הבעיה, תבדילו בין "סתם NAT" (או overload או hide NAT או PAT) לבין port forward.

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

כאשר גולשים באינטרנט, נפתחים עד 10 connections ובאימיול נפתחים 400 connections.

ההבדל הוא בין חיפוש בטבלה בת 10 שורות, או חיפוש בטבלה בת 400 שורות.

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

פורסם

בגלל זה (אני מניח) שלרוב הם משתמשים בטבלת ערבול.

פורסם

עירבול? מה זה, מג'ימיקס?

פורסם

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

פורסם

אין "עירבול".

יש טבלת ניתוב אחת, יש טבלת NAT אחרת, ואם יש לך נתב מתוחכם, יש לך גם טבלת FIB (או CEF) כדי לזרז את העניינים.

אין פה טריקים מדהימים.

פורסם

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

פורסם

לא מכיר כזאת טבלה (לא בשם הזה לפחות)

תן קישור

פורסם

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

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

נ.ב.

עד כמה שאני מעדיף עברית, היה יותר קל להגיד hash table.

פורסם

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

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

נ.ב.

בלינוקס המימוש של NAT הוא ע"י hash table.

ארכיון

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

דיונים חדשים