3-kierunkowa analiza potwierdzeń TCP w programie Wireshark

3 Kierunkowa Analiza Potwierdzen Tcp W Programie Wireshark



Transmission Control Protocol jest bardzo ważnym protokołem w warstwie transportowej dla modelu OSI lub TCP/IP. TCP ma wiele zalet, takich jak:

  • TCP dokonuje retransmisji, jeśli jakiekolwiek wysłane dane nie zostaną potwierdzone przez odbiorcę w ciągu pewnego czasu.
  • TCP ustanawia pewne połączenie przed wysłaniem danych. Nazywamy to połączenie trójstronnym uściskiem dłoni.
  • TCP ma mechanizm kontroli przeciążenia.
  • TCP może wykrywać błędy za pomocą niektórych metod.

Uczmy się głównie na 3-way handshake TCP. Dowiedzmy się również o ważnych polach w programie Wireshark dla 3-kierunkowego uzgadniania.







Trójstronny uścisk dłoni

Podczas trójstronnego uzgadniania zachodzą trzy wymiany ramek:



  1. SYN
  2. WYŚWIETL + POTWIERDŹ
  3. POK

Pierwsza ramka jest zawsze wysyłana przez klienta do serwera. Zrozummy to na podstawie prostego diagramu:



„KLIENT” „SERWER”

Ramka 1: Klient wysyła ramkę SYN do serwera---------------------------------->

<-------------------------------------------Serwer wysyła ramkę SYN+ACK do klienta: Frame2

Ramka 3: Klient wysyła ramkę ACK do serwera------------------------------------------------->

Te trzy ramki możemy zobaczyć w programie Wireshark. Filtr „tcp” może być użyty w Wireshark, aby zobaczyć wszystkie ramki TCP. Oto zrzut ekranu dla trzech ramek:





Przyjrzyjmy się teraz szczegółowo wszystkim trzem ramkom:



SYN

Ta ramka zawiera wiele informacji o możliwościach klienta w zakresie informowania serwera. Poniższy zrzut ekranu pokazuje wszystkie ważne pola ramki SYN:

Oto ważne pola dla ramki SYN:

Port źródłowy: 50602
Port docelowy: 80
Numer kolejny: 0
Numer potwierdzenia: 0
Długość nagłówka: 32 bajty
Flagi: 0x002 (SYN):
Potwierdzenie: Nie ustawiono
Push: Nie ustawiono
Resetuj: nie ustawiono
Syn: Ustaw  -----> Ten bit jest ustawiony, ponieważ jest to ramka SYN.
Płetwa: nie ustawiona

Okno: 65535
Pilny wskaźnik: 0
Opcja TCP - Maksymalny rozmiar segmentu: 1460 bajtów
Opcja TCP — Skala okna: 3 (pomnóż przez 8)
Opcja TCP — SACK dozwolony

WYŚWIETL + POTWIERDŹ

Ta ramka zawiera wiele informacji o możliwościach serwera w zakresie informowania klienta. Poniższy zrzut ekranu pokazuje wszystkie ważne pola ramki SYN+ACK:

Ta ramka potwierdza również ramkę SYN wysłaną przez klienta.

Oto ważne pola dla ramki SYN+ACK:

Port źródłowy: 80
Port docelowy: 50602
Numer kolejny: 0
Numer potwierdzenia: 1

Długość nagłówka: 32 bajty (8)
Flagi: 0x012 (SYN, ACK)
Potwierdzenie: Ustaw
Push: Nie ustawiono
Resetuj: nie ustawiono
Jego: Ustaw
Płetwa: nie ustawiona

Okno: 29200
Pilny wskaźnik: 0
Opcja TCP - Maksymalny rozmiar segmentu: 1412 bajtów
Opcja TCP — SACK dozwolony
Opcja TCP — Skala okna: 7 (pomnóż przez 128)

Widzimy, że w tej ramce ustawione są bity „Acknowledge” i „SYN”. Dzieje się tak, ponieważ ta ramka to SYN+ACK.

POK

Ta ramka jest ostatnią ramką 3-kierunkowego uzgadniania, a także potwierdzeniem SYN+ACK przez klienta. Poniższy zrzut ekranu pokazuje wszystkie ważne pola ramki ACK:

Oto ważne pola dla ramki ACK:

Port źródłowy: 50602
Port docelowy: 80
Numer kolejny: 1
Numer potwierdzenia: 1
Długość nagłówka: 20 bajtów (5)
Flagi: 0x010 (ACK)
Pilne: nie ustawiono
Potwierdzenie: Ustaw
Push: Nie ustawiono
Resetuj: nie ustawiono
Syn: Nie ustawiono
Płetwa: nie ustawiona

Okno: 32768

Tutaj ustawiony jest tylko bit „Acknowledge”, ponieważ jest to ramka ACK.

Wyjaśnienie niektórych ważnych wspólnych pól

Port 80 : W tym samouczku zaobserwowaliśmy jeden stały port 80. To dlatego, że jest to przechwytywanie HTTP, a port 80 jest stały (po stronie serwera) do komunikacji HTTP.

Numer sekwencji : Numer kolejny tej klatki. Synchronizacja jest pierwszą klatką, więc mamy 0 jako numer sekwencyjny.

Flagi TCP:

Potwierdzenie – Ten bit jest ustawiany, jeśli ramka jest potwierdzeniem. Przykład: SYN+ACK, ramka ACK.

SYN – Ten bit jest ustawiany, jeśli ramka jest SYN. Przykład: SYN.

Okno : To pole udostępnia maksymalny rozmiar okna nadawcy w trybie odbioru. Przykład: Mamy rozmiar okna 65535 bajtów w ramce SYN. Oznacza to, że odbiornik może otrzymać maksymalnie 65535 bajtów danych TCP w dowolnym momencie.

WOREK Dozwolony : Ten bit jest ustawiony, jeśli wysyłanie obsługuje SACK [potwierdzenie selektywne].

Maksymalny rozmiar segmentu : Możemy to również nazwać MSS. Określa maksymalną ramkę danych, którą nadawca może otrzymać. Przykład: Otrzymujemy MSS jako 1460 bajtów w ramce SYN.

Wniosek

Dowiedzieliśmy się o trójstronnym uzgadnianiu TCP i wszystkich przydatnych polach dla ramek SYN, SYN+ACK i ACK. Jeśli chcesz dowiedzieć się więcej o TCP, możesz skorzystać z tego łącza RFC https://tools.ietf.org/html/rfc793 .