לדלג לתוכן

1.6 שכבת התעבורה פתרון

פתרון לתרגול

1. הסבר על ריבוב בתקשורת

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

דוגמה:

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

  • לדוגמה:
    • מחשב PC1 שולח פקטה עם src port: 1234 ו- dest port: 80 אל PC2
    • מחשב PC2 מחזירה פקטה עם src port: 80 ו- dest port: 1234 אל PC1

תוצאה:

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


2. פתרון בעיית האמינות ב- UDP

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

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


3. פתרון בעיית האמינות ב- TCP

פרוטוקול TCP לא רק פותר את בעיית הריבוב, אלא גם מספק פתרון לאמינות. דרך פעולתו כוללת את ההליך הבא:

3.1 תחילת חיבור ב- TCP (Three-Way Handshake)

  • שלב 1: מחשב א' שולח פקטת SYN למחשב ב' כדי להתחיל חיבור.
  • שלב 2: מחשב ב' שולח פקטת SYN-ACK חזרה, מאשר את החיבור ושולח גם SYN כדי להראות שהוא מוכן.
  • שלב 3: מחשב א' שולח פקטת ACK כדי לאשר את החיבור.

3.2 סיום חיבור ב- TCP

  • שלב 1: מחשב א' שולח פקטת FIN כדי להתחיל לסיים את החיבור.
  • שלב 2: מחשב ב' שולח פקטת ACK לאשר את הסיום, ואז שולח גם FIN כדי לסיים את החיבור.
  • שלב 3: מחשב א' שולח פקטת ACK סופית.

3.3 סירוב חיבור ב- TCP

כאשר חיבור צריך להיתקל בסירוב, אפשר לשלוח פקטת RST בכל שלב של החיבור.

  • פקטת RST משמשת להפסיק חיבור באופן מיידי ולא דורשת ACK.

4. ניהול שיחות ב- TCP

במהלך שיחה בין שני מחשבים ב- TCP:

  • שליחת מידע: כל פקטה מכילה שדה SEQ שמציין את המיקום של הבית המועבר, ושדה Length שמציין את גודל המידע שנשלח.
  • קבלת מידע: כל פקטה מכילה שדה ACK שמציין את המספר של הבית האחרון שהתקבל בהצלחה.

5. הגנה מפני TCP Injection

כדי להימנע מהתקפות כמו TCP Injection, שבהן האקרים מנסים לנחש את ה- SEQ ו- ACK ולהזרים פקטות שקריות, ה- TCP משתמש ב- ISN (Initial Sequence Number), שהוא מספר אקראי שמתחיל כל חיבור. בדרך זו, האקרים לא יכולים לנחש את המספרים ולהזרים פקטות.


6. פקטות ב- TCP

  • כל פקטה ב- TCP כוללת שדות כמו SEQ, ACK, Length, Checksum, וכן שדה Timeout במקרה של חיבור תקול.
  • במקרים בהם אחד הצדדים לא מדבר במשך זמן מסוים, הוא יכול לשלוח פקטת Keep-Alive כדי לשמור על החיבור פתוח.

7. סיכום על הבדל בין TCP ל- UDP

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

8. הFive Tuple

ה- Five Tuple הוא מייצג חיבור בין שני מחשבים, ומכיל את:

  1. כתובת ה-IP של המחשב השולח.
  2. פורט המקור.
  3. כתובת ה-IP של המחשב המקבל.
  4. פורט היעד.
  5. פרוטוקול התעבורה (TCP או UDP).

9. שימוש בפקודות ניהול רשת

9.1 סריקות פורטים עם Nmap

סריקות פורטים באמצעות Nmap מאפשרות לאתר פורטים פתוחים על מחשבים. לדוגמה:

nmap 45.33.32.156

9.2 יצירת חיבור בעזרת Ncat

ניצול כלי ncat להאזנה על פורטים או חיבור אליהם:

  • יצירת חיבור האזנה:
ncat -lnvp 4444
  • חיבור אל פורט:
ncat 127.0.0.1 4444

9.3 הפקודה netstat

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

netstat