1.6 שכבת התעבורה פתרון
פתרון לתרגול¶
1. הסבר על ריבוב בתקשורת¶
שכבת התעבורה אחראית על שני דברים עיקריים: ריבוב ואמינות. ריבוב מאפשר למחשב לשלוח מספר פקטות שונות ממספר תוכנות שונות, כל אחת עם פורט שונה, ומאפשר ליחידת הרשת להבחין בין כל אחת מהן.
דוגמה:¶
כאשר מחשב שולח פקטה עם כתובת IP, כל פקטה תכיל גם את מספר הפורט של התוכנה ששולחת אותה (פורט מקור) וגם את הפורט שאליו היא נשלחת (פורט יעד).
- לדוגמה:
- מחשב PC1 שולח פקטה עם
src port: 1234ו-dest port: 80אל PC2 - מחשב PC2 מחזירה פקטה עם
src port: 80ו-dest port: 1234אל PC1
- מחשב 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 הוא מייצג חיבור בין שני מחשבים, ומכיל את:
- כתובת ה-IP של המחשב השולח.
- פורט המקור.
- כתובת ה-IP של המחשב המקבל.
- פורט היעד.
- פרוטוקול התעבורה (TCP או UDP).
9. שימוש בפקודות ניהול רשת¶
9.1 סריקות פורטים עם Nmap¶
סריקות פורטים באמצעות Nmap מאפשרות לאתר פורטים פתוחים על מחשבים. לדוגמה:
9.2 יצירת חיבור בעזרת Ncat¶
ניצול כלי ncat להאזנה על פורטים או חיבור אליהם:
- יצירת חיבור האזנה:
- חיבור אל פורט:
9.3 הפקודה netstat¶
הפקודה מראה לנו את כל החיבורים הפתוחים בפורטים במחשב שלנו