1. TCP trzykierunkowy utrzask ręki
Nadawca wysyła pakiet z flagą SYN=1 i ACK=0 do odbiorcy, prosząc o połączenie, które jest pierwszym udawaniem ręki. Jeśli odbiorca otrzyma żądanie i zezwoli na połączenie, wysyła pakiet z flagami SYN=1 i ACK=1 do nadawcy, informując go o możliwości komunikacji i prosząc o wysłanie pakietu potwierdzającego, którym jest drugi handshake. Na koniec nadawca wysyła pakiet o SYN=0 i ACK=1 do odbiorcy, informując go o potwierdzeniu połączenia, co jest trzecim utrzęseniem ręki. Następnie nawiązuje się połączenie TCP i rozpoczyna się komunikacja.
2. Informacje o flagach w pakiecie TCP
*SYN: Flaga synchronizacji
Pole Synchronize Sequence Numbers jest prawidłowe. Ta flaga jest ważna tylko wtedy, gdy połączenie TCP zostanie nawiązane podczas potrójnego handshake. Serwer połączenia TCP prosi o sprawdzenie numeru seryjnego, który jest początkowym numerem sekwencyjnym początkowego połączenia TCP (zazwyczaj klienta). Tutaj numer sekwencyjny TCP można traktować jako 32-bitowy licznik o zakresie od 0 do 4,294,967,295. Każdy bajt danych wymieniany przez połączenie TCP jest sekwencjonowany. Kolumna numeru sekwencyjnego w nagłówku TCP zawiera numer sekwencyjny pierwszego bajtu segmentu TCP.
*ACK: Flaga potwierdzająca
Pole Numer Potwierdzenia jest poprawne. Najczęściej to bita flaga jest umieszczana. Numer potwierdzenia (w+1, rysunek 1) zawarty w kolumnie numeru potwierdzenia w nagłówku TCP to następny oczekiwany numer sekwencyjny, a zdalny koniec jest oznaczonySystemWszystkie dane zostały pomyślnie odebrane.
*RST: Flaga resetu
Znak resetu jest ważny. Używany do resetowania odpowiadającego połączenia TCP.
*URG: Znak alarmowy
Wskaźnik pilnej wiadomości jest ważny. Ustawienie znaków alarmowych,
*PSH: Logo push
Po umieszczeniu flagi odbiorca nie kolejkuje danych, lecz przekazuje je aplikacji tak szybko, jak to możliwe. Flaga jest zawsze ustawiona przy kontaktach w trybach interakcji, takich jak telnet czy rlogin.
*FIN: Znak końcowy
Pakiet z tą flagą służy do zakończenia wywołania TCP, ale port pozostaje otwarty do odbioru kolejnych danych.
3. Rola kilku stanów TCP w naszej analizie
W warstwie TCP znajduje się pole FLAGS, które ma następujące identyfikatory: SYN, FIN, ACK, PSH, RST, URG. Wśród nich pierwsze pięć pól jest przydatnych do codziennej analizy. Oznaczają następujące: SYN oznacza nawiązanie połączenia, FIN oznacza zamknięcie połączenia, ACK oznacza odpowiedź, PSH oznacza transfer DANYCH, a RST oznacza reset połączenia. Wśród nich ACK może być używany jednocześnie z SYN, FIN itd., na przykład SYN i ACK mogą być 1 jednocześnie, co reprezentuje odpowiedź po nawiązaniu połączenia; jeśli jest to tylko jeden SYN, oznacza jedynie nawiązanie połączenia. Kilka uścisków rąk TCP objawia się właśnie poprzez takie ACK. Jednak SYN i FIN nie będą jednocześnie 1, ponieważ pierwszy oznacza nawiązanie połączenia, a drugi oznacza rozłączenie. RST zwykle pojawia się po FIN do 1, co oznacza reset połączenia. Zazwyczaj, gdy pojawia się pakiet FIN lub RST, zakładamy, że klient jest odłączony od serwera. Gdy pojawiają się pakiety SYN i SYN+ACK, myślimy, że klient nawiązał połączenie z serwerem. PSH 1 zazwyczaj pojawia się tylko w pakietach zawierających zawartość DATA nie-0, co oznacza, że PSH 1 oznacza, że przekazywana jest rzeczywista treść pakietów TCP. Nawiązywanie i zamykanie połączenia TCP odbywa się za pomocą wzorca żądanie-odpowiedź
|