TCP 3-Way Handsak Analysis ב-Wireshark

Tcp 3 Way Handsak Analysis B Wireshark



פרוטוקול בקרת שידור הוא פרוטוקול חשוב מאוד בשכבת התחבורה עבור מודל OSI או TCP/IP. ישנם יתרונות רבים ב-TCP כמו:

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

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







לחיצת יד תלת כיוונית

ישנן שלוש חילופי מסגרות המתרחשות בלחיצת יד תלת כיוונית:



  1. SYN
  2. צפה+ACK
  3. ACK

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



'CLIENT' 'SERVER'

מסגרת1: לקוח שולח מסגרת SYN לשרת----------------------------------------->

<--------------------------------------------שרת שולח מסגרת SYN+ACK ללקוח: Frame2

מסגרת 3: הלקוח שולח מסגרת ACK לשרת ---------------------------------->

אנו יכולים לראות את שלושת המסגרות הללו ב-Wireshark. ניתן להשתמש במסנן 'tcp' ב-Wireshark כדי לראות את כל מסגרות ה-TCP. הנה צילום המסך של שלושת הפריימים:





כעת נבין את כל שלושת המסגרות לפרטים:



SYN

מסגרת זו מכילה מידע רב על היכולות של הלקוח ליידע את השרת. צילום המסך הבא מציג את כל השדות החשובים של מסגרת SYN:

להלן השדות החשובים עבור מסגרת SYN:

יציאת מקור: 50602
נמל היעד: 80
מספר רצף: 0
מספר אישור: 0
אורך כותרת: 32 בתים
דגלים: 0x002 (SYN):
הכרה: לא נקבע
דחיפה: לא מוגדר
איפוס: לא מוגדר
Syn: הגדר  -----> הביט הזה הוגדר בגלל שזוהי מסגרת SYN.
סנפיר: לא מוגדר

חלון: 65535
מצביע דחוף: 0
אפשרות TCP - גודל מקטע מרבי: 1460 בתים
אפשרות TCP - קנה מידה חלון: 3 (הכפל ב-8)
אפשרות TCP - SACK מותר

צפה+ACK

מסגרת זו מכילה מידע רב על היכולות של השרת ליידע את הלקוח. צילום המסך הבא מציג את כל השדות החשובים של מסגרת SYN+ACK:

מסגרת זו גם מאשרת את המסגרת SYN שנשלחת על ידי הלקוח.

להלן השדות החשובים עבור מסגרת SYN+ACK:

יציאת מקור: 80
נמל יעד: 50602
מספר רצף: 0
מספר אישור: 1

אורך כותרת: 32 בתים (8)
דגלים: 0x012 (SYN, ACK)
הכרה: קבע
דחיפה: לא מוגדר
איפוס: לא מוגדר
שלו: סט
סנפיר: לא מוגדר

חלון: 29200
מצביע דחוף: 0
אפשרות TCP - גודל מקטע מרבי: 1412 בתים
אפשרות TCP - SACK מותר
אפשרות TCP - קנה מידה של חלון: 7 (כפל ב-128)

אנו יכולים לראות כי סיביות 'אישור' ו-'SYN' מוגדרות במסגרת זו. הסיבה לכך היא שהמסגרת הזו היא SYN+ACK.

ACK

מסגרת זו היא המסגרת האחרונה של לחיצת היד התלת-כיוונית וגם האישור של ה-SYN+ACK על ידי הלקוח. צילום המסך הבא מציג את כל השדות החשובים של מסגרת ACK:

להלן השדות החשובים עבור מסגרת ACK:

יציאת מקור: 50602
נמל היעד: 80
מספר רצף: 1
מספר אישור: 1
אורך כותרת: 20 בתים (5)
דגלים: 0x010 (ACK)
דחוף: לא מוגדר
הכרה: קבע
דחיפה: לא מוגדר
איפוס: לא מוגדר
Syn: לא מוגדר
סנפיר: לא מוגדר

חלון: 32768

כאן, רק סיבית 'אישור' מוגדרת מכיוון שזו מסגרת ACK.

הסבר לכמה שדות נפוצים חשובים

יציאה 80 : צפינו ביציאה אחת קבועה 80 במדריך זה. זה בגלל שזו לכידת HTTP ויציאה 80 קבועה (צד השרת) לתקשורת HTTP.

מספר רצף : מספר הרצף של אותה מסגרת. סינכרון הוא המסגרת הראשונה ולכן יש לנו 0 כמספר רצף.

דגלי TCP:

הכרה – ביט זה מוגדר אם המסגרת היא ACK. דוגמה: SYN+ACK, מסגרת ACK.

SYN - ביט זה מוגדר אם המסגרת היא SYN. דוגמה: SYN.

חַלוֹן : שדה זה חולק את גודל החלון המרבי של השולח במצב קבלה. דוגמה: יש לנו גודל חלון של 65535 בתים במסגרת SYN. המשמעות היא שהמקלט יכול לקבל נתוני TCP מקסימליים של 65535 בתים בכל נקודת זמן.

SACK מותר : ביט זה מוגדר אם השליחה תומכת ב-SACK [אישור סלקטיבי].

גודל פלח מקסימלי : אנחנו יכולים לקרוא לזה גם MSS. זה מגדיר את מסגרת הנתונים המקסימלית שהשולח יכול לקבל. דוגמה: אנו מקבלים MSS כ-1460 בתים במסגרת SYN.

סיכום

למדנו על לחיצת היד התלת-כיוונית של TCP וכל השדות השימושיים עבור מסגרות SYN, SYN+ACK ו-ACK. אם אתה רוצה ללמוד עוד על TCP, אתה יכול לעקוב אחר קישור RFC זה https://tools.ietf.org/html/rfc793 .