Protokół TCP:
- Protokół TCP służy do wymiany tzw. segmentów między hostami,
' - Każdy segment rozpoczyna się od nagłówka o wielkości 20 bajtów, to 40 bajtów),
- każdy segment nie może przekraczać 65535 bajtów (ok. 64KB),
lir?
(łączy rozmiar nagłówka IP i TCP
0 |
4-9 |
10-15 |
16-31 |
Port źródłowy |
Port docelowy | ||
Numer sekwencyjny | |||
Numer potwierdzenia | |||
Długość nagłówka |
N ie wykorzystane |
Znaczniki |
Rozmiar okna |
Suma kontrolna |
Wskaźnik pilności | ||
Opcje (0 lub 32-bitowe słowa) | |||
Dane |
1. Port źródłowy, Port docelowy (16 bitów) - to numery portów stanowiące interfejsy dla aplikacji komunikujących się za pomocą TCP. Numer IP i numer portu tworzy 48 bitowe gniazdo (socket) identyfikujące jednoznacznie połączenie,
2. Numer sekwencyjny (32 bity) - to unikalny numer przypisywany każdemu bajtowi przesyłanych danych, w ten sposób numerowane są wszystkie bajty w segmencie,
3l Numer potwierdzenia (32 bity) - zawiera kolejny numer sekwencyjny spodziewany przez odbiorcę i jest wykorzystywany przez TCP do upewnienia się, że żaden wysłany segment nie ulegnie zagubieniu w trasie,
4. Długość nagłówka (4 bity) - określa rozmiar nagłówka liczony w 32-bitowych słowach,
5. Niewykorzystane (6 bitów) - zarezerwowane na przyszłość,
6. Znaczniki (6 bitów) - to pola stosowane do zarządzania protokołem,
- URG - (1) - informuje, że pole Wskaźnik pilności jest istotne, oznacza to, że segment przenosi dane o szczególnym znaczeniu,
- ACK - (1) - istotne jest pole Numer potwierdzenia, gdy jest (0) pole to jest ignorowane,
- PSH-(l) - oznacza dane natychmiastowe do wysłania i przekazania ich docelowej aplikacji bez pośrednictwa buforowania,
- RST - (1) - sygnalizuje konieczność brutalne zerwanie połączenia, stosowane jest w sytuacji problemowej (zresetowane),
- SYN - (1) - stosowany jest do żądania nawiązywania połączenia i synchronizacji numerów sekwencyjnych,
- FIN - (1) - oznacza polecenia zakończenia przesyłu danych i zwolnienia połączenia,
7. Rozmiar okna (16 bitów) - określa liczbę bajtów jakie mogą zostać wysłane począwszy od bajtu o numerze sekwencyjnym określonym w polu Numer potwierdzenia. 0 - oznacza, że przesiane bajty do tej pory zostały poprawnie odebrane,
8. Suma kontrolna (16 bitów) - zapewnia dodatkową kontrole poprawności transmisji,
9. Wskaźnik pilności (16 bitów) - gdy URG jest oznaczone, pole to zawiera wskaźnik pierwszego bajtu pilnych danych (przesunięcie pierwszego bajtu danych pilnych względem początku segmentu).
10. Opcje - pole to umożliwia umieszczenie w nagłówku niestandardowych informacji np. określenie przez hosta wielkości ładunku użytecznego - treści segmentu jaką jest w stanie przesłać (wielkość okna),
MTU (Maximum Transfer Unit) - jest to wielkość segmentu jaka może być przesłana przez sieć, zwykle wynosi 1500 bajtów,
Cechą charakterystyczną TCP jest numerowanie i potwierdzanie otrzymanych segmentów w określonej kolejności, każdy segment otrzymuje unikatowy numer,