TCP

W pzreciwieństwie do UDP , protokół TCP ( Transport Control Protocol) jest prawdziwym protokołem transportowym , posiadającym kontrolę przepływu oraz mechanizmy uodporniające na błedy. TCP ( opisanym w RFC 783) jest protokołem połaczeniowym

Segment TCP składa się z nagłówka TCP oraz danych. Jego rozmiar może by©ć określany przez stos TCP/IP. Na przykład domyślnym rozmiarem segmentu TCP/IP dla sieci ethernet jest 1460 bajtów. To pozostawia miejsce na nagłówek TCP( 20 bajtów) oraz nagłóweh IP (20 bajtów)

4 bity

6 bitów

6 bitów

16 bitów

Port żródłowy

Port docelowy

Numer sekwencyjny

Numer potwierdzający

Długość nagłówka w słowach 32bitowych

Zarezerwowane

(6 bitów)

U R G

A C K

P S H

R S H

S Y N

F I N

Rozmiar Okna

Suma kontrolna TCP

Wskażnik Ważności

Opcje(zmienna długość)

Dane ( zmienna długość)

Pierwsze 2 pola nagłówka są identyczne z UDP - są to : 16-bitowe porty żródłowy i docelowy. Identyfikują one proces lub aplikację używającą TCP.

Następnie znajduję się 32-bitowe pole sekwencji i 32-bitowe pole z numerem potwierdzającym. Oba pola zawierają liczby całkowite bez znaku , które po osiągnięciu maksymalnej wartości są ustawiane na zero.

Pole długości jest podobnie implementowane jak w protokole IP.

Pole zarezerwowane jest ustawione na stale jako 0.

Następne pola to :

    • URG: Urgent Pointer field significant
    • ACK: Acknowledgment field significant
    • PSH: Push Function
    • RST: Reset the connection
    • SYN: Synchronize sequence numbers
    • FIN: No more data from sender

Po 6- znacznikach następuje 16-bitowy znacznik okna który jest kluczowy dla kontroli przepływu tego protokołu. Rozmiar okna mówi drugiej stronie jak wiele buforów do odebrania danych jest dostępne na przychodzące dane TCP.Przychodzące dane to dane protokołów wyższych rzędów i dane nagłówka TCP( bez nagłówków IP i DLC)

Następnym skkładnikiem jest 16-bitowa suma kontrolna która jest obliczana analogicznie do sumy z UDP

Ostatnim elementem nagłówka jest 16-bitowy wskażnik ważności , który jest dodawany do numeru sekwencji, aby otrzymać numer ważnego bajtu. Interpretacja tego pola zależy od obsługującej go aplikacji ( naprzykład Telnet ustawi flagę ważności jak użytkownik naciśnie klawisz przerywania).

 

by Krzysztof Pietrzak 2004

[4.Warstwa transportowa] [TCP] [UDP] [SPX]