Protokół TCP

    TCP (Transmission Control Protocol) to protokół kontroli transmisji służący do przesyłania danych między procesami różnych maszyn. Należy do modelu TCP/IP. Jest to protokół połączeniowy, który korzysta z protokołu IP do wysyłania i odbierania danych. W odróżnieniu od UDP gwarantuje on transmisję z zachowaniem odpowiedniej kolejności dostarczanych pakietów oraz zapobiega powstawaniu duplikatów. TCP działa w trybie klient-serwer. Połączenie inicjuje klient, a zakończyć połączenie może każda ze stron.

     

    Transmisja danych:

     

    W celu weryfikacji wysyłki i odbioru używane są sumy kontrolne oraz sekwencyjne numery pakietów. Host będący odbiorcą potwierdza otrzymanie pakietów, o konkretnych numerach sekwencyjnych poprzez ustawienie flagi ACK. Jeśli, któreś z pakietów nie dotarły do odbiorcy to host będący nadawcą wysyła je ponownie.

     

    Stany połączenia:

    LISTEN – oznacza gotowość do nawiązania połączenia.

    SYN-SENT – oznacza stan nawiązywania połączenia. Został już wysłany pakiet z flagą SYN i następuję oczekiwanie na pakiet SYN+ACK.

    SYN-RECEIVED – oznacza, że otrzymano pakiet SYN oraz wysłano SYN+ACK. Trwa oczekiwanie na pakiet ACK.

    ESTABLISHED – oznacza, że połączenie zostało prawidłowo nawiązane.

    FIN-WAIT-1 – oznacza, że został wysłany pakiet FIN. Dane nadal mogą być odbierane, ale wysyłanie nie jest już możliwe.

    FIN-WAIT-2 – oznacza, że otrzymano potwierdzenie własnego pakietu z flagą FIN oraz trwa oczekiwanie na pakiet FIN ze strony serwera.

    CLOSE-WAIT – oznacza, że otrzymano już pakiet FIN oraz wysłano ACK. Trwa oczekiwanie na przesłanie własnego pakietu FIN.

    CLOSING – oznacza, że trwa proces zamknięcia połączenia.

    LAST-ACK – oznacza, że otrzymano i wysłano pakiet FIN oraz trwa oczekiwanie na ostatni już pakiet z flagą ACK.

    TIME-WAIT – oznacza, że trwa oczekiwanie na to czy druga strona otrzymała potwierdzenie rozłączenia. W tym stanie połączenie nie może być dłużej niż 4 minuty.

    CLOSED – oznacza, że połączenie zostało zamknięte.