TCP 3-Way Handsake Analysis στο Wireshark

Tcp 3 Way Handsake Analysis Sto Wireshark



Το πρωτόκολλο ελέγχου μετάδοσης είναι ένα πολύ σημαντικό πρωτόκολλο στο επίπεδο μεταφοράς για μοντέλο OSI ή TCP/IP. Υπάρχουν πολλά πλεονεκτήματα στο TCP όπως:

  • Το TCP επαναμεταδίδει εάν τυχόν αποσταλμένα δεδομένα δεν επιβεβαιωθούν από τον παραλήπτη μέσα σε κάποιο χρονικό διάστημα.
  • Το TCP δημιουργεί κάποια σύνδεση πριν από την αποστολή των δεδομένων. Ονομάζουμε αυτή τη σύνδεση ως χειραψία 3 κατευθύνσεων.
  • Το TCP διαθέτει μηχανισμό ελέγχου συμφόρησης.
  • Το TCP μπορεί να εντοπίσει σφάλματα χρησιμοποιώντας ορισμένες μεθόδους.

Ας μάθουμε κυρίως για χειραψία 3 κατευθύνσεων TCP. Ας μάθουμε επίσης για τα σημαντικά πεδία στο Wireshark για χειραψία 3 κατευθύνσεων.







Χειραψία 3 κατευθύνσεων

Υπάρχουν τρεις ανταλλαγές καρέ που συμβαίνουν σε μια χειραψία 3 κατευθύνσεων:



  1. ΣΥΝ
  2. VIEW+ACK
  3. ACK

Το πρώτο πλαίσιο αποστέλλεται πάντα από τον πελάτη στον διακομιστή. Ας το καταλάβουμε αυτό από ένα απλό διάγραμμα:



'ΔΙΑΚΟΜΙΣΤΗ-ΠΕΛΑΤΗ'

Frame1: Ο πελάτης στέλνει πλαίσιο SYN στον διακομιστή----------------------------------->

<------------------------------------------- Ο διακομιστής στέλνει πλαίσιο SYN+ACK στον πελάτη: Frame2

Frame3: Ο πελάτης στέλνει πλαίσιο ACK στον διακομιστή----------------------------------->

Μπορούμε να δούμε αυτά τα τρία καρέ στο Wireshark. Το φίλτρο 'tcp' μπορεί να χρησιμοποιηθεί στο Wireshark για να δείτε όλα τα πλαίσια TCP. Εδώ είναι το στιγμιότυπο οθόνης για τα τρία καρέ:





Ας κατανοήσουμε τώρα λεπτομερώς και τα τρία πλαίσια:



ΣΥΝ

Αυτό το πλαίσιο περιέχει πολλές πληροφορίες σχετικά με τις δυνατότητες του πελάτη να ενημερώνει τον διακομιστή. Το ακόλουθο στιγμιότυπο οθόνης δείχνει όλα τα σημαντικά πεδία του πλαισίου SYN:

Ακολουθούν τα σημαντικά πεδία για το πλαίσιο SYN:

Πηγή Λιμάνι: 50602
Λιμάνι προορισμού: 80
Αριθμός ακολουθίας: 0
Αριθμός επιβεβαίωσης: 0
Μήκος κεφαλίδας: 32 byte
Σημαίες: 0x002 (SYN):
Αναγνώριση: Δεν έχει οριστεί
Push: Δεν έχει οριστεί
Επαναφορά: Δεν έχει οριστεί
Syn: Ορισμός  -----> Αυτό το bit ορίστηκε επειδή πρόκειται για πλαίσιο SYN.
Πτερύγιο: Δεν έχει οριστεί

Παράθυρο: 65535
Επείγον δείκτη: 0
Επιλογή TCP - Μέγιστο μέγεθος τμήματος: 1460 byte
Επιλογή TCP - Κλίμακα παραθύρου: 3 (πολλαπλασιασμός επί 8)
Επιλογή TCP - Επιτρέπεται η SACK

VIEW+ACK

Αυτό το πλαίσιο περιέχει πολλές πληροφορίες σχετικά με τις δυνατότητες του διακομιστή να ενημερώνει τον πελάτη. Το παρακάτω στιγμιότυπο οθόνης δείχνει όλα τα σημαντικά πεδία του πλαισίου SYN+ACK:

Αυτό το πλαίσιο αναγνωρίζει επίσης το πλαίσιο SYN που αποστέλλεται από τον πελάτη.

Ακολουθούν τα σημαντικά πεδία για το πλαίσιο SYN+ACK:

Πηγή Λιμάνι: 80
Λιμάνι προορισμού: 50602
Αριθμός ακολουθίας: 0
Αριθμός επιβεβαίωσης: 1

Μήκος κεφαλίδας: 32 byte (8)
Σημαίες: 0x012 (SYN, ACK)
Αναγνώριση: Σετ
Push: Δεν έχει οριστεί
Επαναφορά: Δεν έχει οριστεί
Δικό του: Σετ
Πτερύγιο: Δεν έχει οριστεί

Παράθυρο: 29200
Επείγον δείκτη: 0
Επιλογή TCP - Μέγιστο μέγεθος τμήματος: 1412 byte
Επιλογή TCP - Επιτρέπεται η SACK
Επιλογή TCP - Κλίμακα παραθύρου: 7 (πολλαπλασιασμός επί 128)

Μπορούμε να δούμε ότι τα bit 'Acknowledge' και 'SYN' έχουν οριστεί σε αυτό το πλαίσιο. Αυτό συμβαίνει επειδή αυτό το πλαίσιο είναι SYN+ACK.

ACK

Αυτό το πλαίσιο είναι το τελευταίο καρέ της χειραψίας 3 κατευθύνσεων και επίσης η επιβεβαίωση του SYN+ACK από τον πελάτη. Το ακόλουθο στιγμιότυπο οθόνης δείχνει όλα τα σημαντικά πεδία του πλαισίου ACK:

Ακολουθούν τα σημαντικά πεδία για το πλαίσιο ACK:

Πηγή Λιμάνι: 50602
Λιμάνι προορισμού: 80
Αριθμός Ακολουθίας: 1
Αριθμός επιβεβαίωσης: 1
Μήκος κεφαλίδας: 20 byte (5)
Σημαίες: 0x010 (ACK)
Επείγον: Δεν έχει οριστεί
Αναγνώριση: Σετ
Push: Δεν έχει οριστεί
Επαναφορά: Δεν έχει οριστεί
Syn: Δεν έχει οριστεί
Πτερύγιο: Δεν έχει οριστεί

Παράθυρο: 32768

Εδώ, μόνο το bit 'Acknowledge' έχει οριστεί επειδή αυτό είναι ένα πλαίσιο ACK.

Επεξήγηση για ορισμένα σημαντικά κοινά πεδία

Θύρα 80 : Παρατηρήσαμε μια σταθερή θύρα 80 σε αυτό το σεμινάριο. Αυτό συμβαίνει επειδή πρόκειται για λήψη HTTP και η θύρα 80 είναι σταθερή (από την πλευρά του διακομιστή) για επικοινωνία HTTP.

Αριθμός ακολουθίας : Ο αριθμός σειράς αυτού του πλαισίου. Ο συγχρονισμός είναι το πρώτο πλαίσιο, επομένως έχουμε το 0 ως αύξοντα αριθμό.

Σημαίες TCP:

Αναγνώριση – Αυτό το bit ρυθμίζεται εάν το πλαίσιο είναι ACK. Παράδειγμα: SYN+ACK, ACK πλαίσιο.

ΣΥΝ – Αυτό το bit ορίζεται εάν το πλαίσιο είναι SYN. Παράδειγμα: ΣΥΝ.

Παράθυρο : Αυτό το πεδίο μοιράζεται το μέγιστο μέγεθος παραθύρου του αποστολέα στη λειτουργία λήψης. Παράδειγμα: Έχουμε μέγεθος παραθύρου 65535 byte στο πλαίσιο SYN. Αυτό σημαίνει ότι ο δέκτης μπορεί να λάβει ένα μέγιστο TCP δεδομένων 65535 byte ανά πάσα στιγμή.

ΣΑΚΟΥΛΑ Επιτρέπεται : Αυτό το bit ορίζεται εάν η αποστολή υποστηρίζει SACK [επιλεκτική επιβεβαίωση].

Μέγιστο μέγεθος τμήματος : Μπορούμε να το ονομάσουμε και MSS. Αυτό ορίζει το μέγιστο πλαίσιο δεδομένων που μπορεί να λάβει ο αποστολέας. Παράδειγμα: Λαμβάνουμε MSS ως 1460 byte στο πλαίσιο SYN.

συμπέρασμα

Μάθαμε για την τριπλή χειραψία TCP και όλα τα χρήσιμα πεδία για τα πλαίσια SYN, SYN+ACK και ACK. Εάν θέλετε να μάθετε περισσότερα για το TCP, μπορείτε να ακολουθήσετε αυτόν τον σύνδεσμο RFC https://tools.ietf.org/html/rfc793 .