Protokół TCP lub Transmission Control Protocol jest protokołem warstwy transportowej znajdującym się w warstwie
4 w modelu OSI i jest zorientowany na połączenie, po
raz kolejny umożliwia dostęp do protokołów o wysokiej warstwie dostępu do warstwy sieciowej lub warstwy IP, ale
w tym przypadku zapewnia niezawodność.
Jest to połączenie zorientowane
przed transmisją, sesja jest ustanawiana między 2 urządzeniami.
TCP ogólnie implementuje tryb pełnego dupleksu.
Są pewne wyjątki, ale nie będziemy
ich tutaj omawiać Innymi słowy, połączenie TCP jest parą obwodów wirtualnych
po jednym w każdym kierunku, które działają w trybie pełnego dupleksu.
Nadajnik może odbierać dane w tym samym czasie, co ich nadawanie.
Oba hosty w rozmowie mogą przesyłać i odbierać w tym samym czasie.
w TCP sprawdzane są błędy,
ponieważ w datagramie jest suma kontrolna, aby sprawdzić, czy nie ma korupcji.
Segmenty TCP są również ponumerowane kolejno aby miejsce docelowe mogło zmienić kolejność segmentów i określić, czy brakuje danych.
Istnieje również potwierdzenie odbioru danych, więc wszystkie dane są potwierdzane przez odbiornik.
nadajnik lub nadawca może ponownie wysłać segment lub zakończyć połączenie, jeśli stwierdzi, że
odbiornik nie jest już zaangażowany w rozmowę.
TCP implementuje funkcje odzyskiwania danych, innymi słowy
może nastąpić ponowna transmisja utraconych danych.
Jeśli więc nie ma potwierdzenia segmentu, segment zostanie ponownie przesłany.
Segment TCP jest wysyłany przy użyciu pakietów IP.
Nagłówek TCP będzie podążał za nagłówkiem IP dostarczającym informacje specyficzne dla protokołu TCP.
Jak widać, nagłówek TCP ma znacznie więcej opcji niż nagłówek UDP.
Najpierw mamy 16-bitowy numer portu źródłowego, który identyfikuje port wysyłający.
Mamy 16-bitowy port docelowy, który identyfikuje port odbierający.
Jest 32-bitowy numer sekwencyjny, jeśli ustawiony jest bit SYN, to jest
początkowy numer sekwencji.
Numer sekwencyjny faktycznego pierwszego bajtu danych to ten numer kolejny plus 1.
Jeśli bit SYN nie jest ustawiony, to numer sekwencji jest skumulowanym numerem sekwencji pierwszego
bajtu danych tego pakietu dla bieżącej sesji.
Następnie ma 32-bitowy numer potwierdzenia.
Jeśli flaga ACK jest ustawiona lub bit jest ustawiony, to
wartość numeru potwierdzenia jest
kolejnym numerem sekwencji, który odbiorca spodziewa się odebrać.
To pole potwierdza odbiór wszystkich wcześniejszych bajtów.
Pierwsze potwierdzenie ACK lub potwierdzenie wysłane przez każdy koniec
potwierdza drugi koniec początkowego numeru sekwencyjnego, ale brak danych.
Długość nagłówka lub przesunięcie danych określa rozmiar nagłówka TCP w słowach 32-bitowych.
Minimalny rozmiar nagłówka to 5 słów, a maksymalna to 15 słów.
Minimalny rozmiar nagłówka to 20 bajtów,
a maksymalny rozmiar nagłówka to
60 bajtów w IPv4, co pozwala na dodanie do 40 bajtów opcji w nagłówku.
Rezerwa wypełnia zestaw do 0 i jest rezerwowana do wykorzystania w przyszłości.
Teraz w nagłówku TCP jest dużo flag lub bitów kontrolnych, a my nie przejdziemy przez
wszystkie z nich.
Zredukowana flaga z ograniczonym oknem jest częścią mechanizmu powiadamiania o
przeciążeniu używanego w połączeniu z polem lub
flagą echa lub znacznika ECE bitu lub flagi lub echa.
Ponownie wykorzystane w powiadomieniu o zatorze.
Może to być wykorzystane w jakości usług, w których sieć i
host komunikują się w celu wskazania zatoru, umożliwiając
nadajnikowi zdawanie sobie sprawy z konieczności spowolnienia.
Flaga URG może wskazywać, że ten odcinek jest pilny i powinien zostać przetworzony tak
szybko, jak to możliwe.
Flaga ACK, jak wspomniano, służy do potwierdzania danych.
PSH jest flagą ustawioną przez nadajnik TCP, aby natychmiast przełączyć odbiornik TCP 60 dane
tego segmentu do gniazda aplikacji odbiorcy
wraz z wszystkimi innymi danymi w kolejności, które odbiorca jeszcze nie dał tej aplikacji.
Nastawić; resetuje połączenie innymi słowy, połączenie jest wyłączone.
SYN służy do synchronizacji numerów sekwencji.
Tylko pierwszy pakiet wysłany z każdego końca będzie miał ustawioną tę flagę.
FIN oznacza, że nie ma więcej danych od nadawcy.
Rozmiar okna o długości 16 bitów
określa rozmiar odebranego okna,
czyli liczbę bajtów, którą odbiornik obecnie chce odebrać, za chwilę
będziemy rozmawiać o kontroli przepływu i rozmiarach okien.
TCP zawiera również 16-bitową sumę kontrolną TCP, która
służy do sprawdzania błędów nagłówka i danych.
16-bitowy pilny wskaźnik jest używany z flagą URG, która
po włączeniu oznacza, że użyto 16-bitowego pilnego wskaźnika.
Wskazuje to na przesunięcie względem numeru sekwencji wskazującego ostatni pilny bajt danych.
Istnieją również różne opcje
dostępne w TCP, ale są one poza zakresem tego kursu.
I na koniec mamy dane, które są danymi z wyższych warstw
protokołów zamkniętych w nagłówku TCP.
Istnieje kilka przykładów aplikacji opartych na TCP lub UDP.
Przykładami są protokoły przesyłania plików; Protokół FTP lub protokół transferu plików
TFTP lub protokół przesyłania plików, NFS lub sieciowy system plików.
W wiadomościach e-mail często używamy protokołu POP3 lub Post Office Protocol do odbierania poczty Simple Mail Transfer Protocol lub SMTP w celu wysyłania poczty lub
protokołu IMAP lub Internet Message Access Protocol, który jest innym protokołem używanym
do pobierania wiadomości e-mail 86 Do zdalnego logowania się
do urządzeń możemy użyć telnetu, który
wysyła ruch w postaci czystego tekstu i dlatego jest
w bezpiecznym lub bezpiecznym SHELL lub SSH, który pozwala
na bezpieczne połączenie ze zdalnymi urządzeniami.
Do zarządzania siecią możemy użyć Simple Network Management Protocol lub SNMP, a do zarządzania nazwami
możemy użyć Domain Name System, który pozwala
na użycie nazw zamiast adresów IP i
tłumaczy te znaczące nazwy domenowe na adresy
IP, na przykład cisco. com zostanie przekonwertowany na adres
IP, gdy użytkownik przegląda Internet.
Przed kontynuowaniem chcę jeszcze raz wspomnieć, jak odwzorowania działają
między różnymi warstwami modelu OSI.
W warstwie 2 w ramce Ethernet 2 znajduje się pole o nazwie numer typu co pozwala gospodarzowi na rozróżnienie między wieloma protokołami warstwy 3 w warstwie 3 pamiętaj, że możesz używać protokołu takiego jak IPv4 lub IPv6 lub w dawnych czasach IPX lub Apple Talk.
Tak więc w warstwie 2 NEC musi wiedzieć, który protokół warstwy 3 wysyła ten ruch, a numer
typu jest używany do rozróżnienia różnych protokołów warstwy 3.
W warstwie 3 stosuje się numer protokołu w celu rozróżnienia 105 różne protokoły działające na warstwie 4, więc w
nagłówku IP pole protokołu będzie wskazywać, gdzie TCP lub UDP jest używane w warstwie 4. W warstwie 4 numer
portu jest używany do rozróżnienia wielu aplikacji używanych w warstwie 7. 108 Należy więc zauważyć, że w warstwie 4 sposób, w
jaki TCP lub UDP wie, do której aplikacji przeznaczony jest ten ruch, jest numerem portu.