TCP vs UDP: Demystifowanie debaty o niezawodności vs.

Dzisiaj zaczniemy od skupienia się na TCP. Wcześniej w rozdziale warstwowym wspomnieliśmy o ważnym punkcie. W warstwie sieci i poniżej chodzi o host do hosta, co oznacza, że ​​komputer musi wiedzieć, gdzie jest inny komputer, aby się z nim połączyć. Jednak komunikacja w sieci jest często komunikacją międzyprocesową, a nie komunikacją międzymachinową. Dlatego protokół TCP wprowadza koncepcję portu. Port może być zajęty tylko jednym procesem, który zapewnia bezpośrednią komunikację między procesami aplikacyjnymi działającymi na różnych hostach.

Zadaniem warstwy transportowej jest świadczenie bezpośredniej komunikacji między procesami aplikacyjnymi działającymi na różnych hostach, więc jest ono znane również jako protokół z kompleksowego do końca. Warstwa transportowa ukrywa podstawowe szczegóły sieci, umożliwiając proces aplikacji, tak jakby istniał logiczny kanał komunikacyjny między dwoma podmiotami warstw transportowych.

TCP oznacza protokół kontroli transmisji i jest znany jako protokół zorientowany na połączenie. Oznacza to, że zanim jedna aplikacja może zacząć wysyłać dane do drugiej, dwa procesy muszą wykonać uścisk dłoni. Uzupełnienie dłoni jest logicznie połączonym procesem, który zapewnia niezawodną transmisję i uporządkowane odbiór danych. Podczas uścisku dłoni powstaje połączenie między hostami źródłowymi i docelowymi poprzez wymianę serii pakietów kontrolnych i uzgodnienie niektórych parametrów i reguł w celu zapewnienia pomyślnej transmisji danych.

Co to jest TCP? (Mylinking'sTap sieciowyIBroker pakietu sieciowegomoże przetwarzać zarówno pakiety TCP lub UDP)
TCP (protokół kontroli transmisji) to zorientowany na połączenie, niezawodny protokół komunikacji warstwy transportowej opartej na strumieniu bajtów.

Zorientowane na połączenie: Zorientowane na połączenie oznacza, że ​​komunikacja TCP jest jeden do jednego, to znaczy kompleksowa komunikacja punkt-punkt, w przeciwieństwie do UDP, która może wysyłać wiadomości do wielu hostów w tym samym czasie, więc nie można osiągnąć komunikacji jeden do wielu.
Niezawodny: Niezawodność TCP zapewnia niezawodnie dostarczanie pakietów do odbiornika, niezależnie od zmian łącza sieciowego, co sprawia, że ​​format pakietu protokołu TCP jest bardziej złożony niż w przypadku UDP.
Oparte na strumieniu bajtów: Natura TCP oparta na strumieniu bajtów pozwala na transmisję komunikatów dowolnego rozmiaru i gwarantuje kolejność wiadomości: nawet jeśli poprzednia wiadomość nie została w pełni odebrana, a nawet jeśli kolejne bajty zostały odebrane, TCP nie dostarczy ich do warstwy aplikacji w celu przetwarzania i automatycznie zrzuci opuszczenie pakietów.
Po ustanowieniu połączenia hosta A i hosta B musi tylko użyć wirtualnej linii komunikacyjnej do wysyłania i odbierania danych, zapewniając w ten sposób transmisję danych. Protokół TCP jest odpowiedzialny za kontrolowanie zadań, takich jak ustanowienie połączenia, odłączenie i trzymanie. Należy zauważyć, że tutaj twierdzimy, że linia wirtualna oznacza tylko ustanowienie połączenia, połączenie protokołu TCP wskazuje tylko, że obie strony mogą rozpocząć transmisję danych i zapewnić niezawodność danych. Węzły routingu i transportu są obsługiwane przez urządzenia sieciowe; Sam protokół TCP nie dotyczy tych szczegółów.

Połączenie TCP to usługa pełnego dupleksu, co oznacza, że ​​host A i host B mogą przesyłać dane w obu kierunkach w połączeniu TCP. Oznacza to, że dane mogą być przenoszone między hostem A i hosta B w przepływie dwukierunkowym.

TCP tymczasowo przechowuje dane w buforze do wysłania połączenia. Ten bufor wysyłania jest jednym z pamięci podręcznej ustawionych podczas trójstronnego uścisku dłoni. Następnie TCP wyśle ​​dane w pamięci podręcznej Wyślij do pamięci podręcznej odbierania hosta docelowego w odpowiednim czasie. W praktyce każdy rówieśnik będzie miał pamięć podręczną wysyłania i pamięć podręczną odbiorczą, jak pokazano tutaj:

TCP-UDP

Bufor wysyłania jest obszarem pamięci prowadzonej przez implementację TCP po stronie nadawcy, która służy do tymczasowego przechowywania danych do wysłania. Po wykonaniu trójstronnego uścisku dłoni w celu nawiązania połączenia, pamięć podręczna Wyślij jest skonfigurowana i używana do przechowywania danych. Bufor wysyłania jest dynamicznie dostosowywany zgodnie z przeciążeniem sieci i informacji zwrotnych od odbiornika.

Bufor odbierania to obszar pamięci prowadzonej przez implementację TCP po stronie odbiorczej używanej do tymczasowego przechowywania otrzymanych danych. TCP przechowuje odebrane dane w pamięci podręcznej odbierania i czeka na odczytanie górnej aplikacji.

Należy pamiętać, że rozmiar wysyłania pamięci podręcznej i odbioru jest ograniczony, gdy pamięć podręczna jest pełna, TCP może przyjąć niektóre strategie, takie jak kontrola przeciążenia, kontrola przepływu itp., Aby zapewnić wiarygodną transmisję danych i stabilność sieci.

W sieciach komputerowych transmisja danych między hostami jest przeprowadzana za pomocą segmentów. Więc co to jest segment pakietów?

TCP tworzy segment TCP lub segment pakietów, dzieląc przychodzący strumień na kawałki i dodając nagłówki TCP do każdego kawałka. Każdy segment może być przesyłany tylko przez ograniczony czas i nie może przekroczyć maksymalnego rozmiaru segmentu (MSS). Po drodze przez warstwę łącza przechodzi segment pakietu. Warstwa łącza ma maksymalną jednostkę transmisji (MTU), która jest maksymalnym rozmiarem pakietu, który może przejść przez warstwę łącza danych. Maksymalna jednostka transmisji jest zwykle związana z interfejsem komunikacyjnym.

Więc jaka jest różnica między MSS a MTU?

W sieciach komputerowych architektura hierarchiczna jest bardzo ważna, ponieważ uwzględnia różnice między różnymi poziomami. Każda warstwa ma inną nazwę; W warstwie transportowej dane nazywane są segmentem, aw warstwie sieci dane nazywane są pakietem IP. Dlatego maksymalną jednostkę transmisji (MTU) można traktować jako maksymalny rozmiar pakietu IP, który może być przesyłany przez warstwę sieci, podczas gdy maksymalny rozmiar segmentu (MSS) to koncepcja warstwy transportowej, która odnosi się do maksymalnej ilości danych, które mogą być przesyłane przez pakiet TCP w czasie.

Należy zauważyć, że gdy maksymalny rozmiar segmentu (MSS) jest większy niż maksymalna jednostka transmisji (MTU), fragmentacja IP zostanie wykonana na warstwie sieci, a TCP nie podzieli większych danych na segmenty odpowiednie dla rozmiaru MTU. W warstwie sieciowej będzie sekcja poświęcona warstwie IP.

Struktura segmentu pakietów TCP
Zbadajmy format i zawartość nagłówków TCP.

Segment TCP

Numer sekwencji: Liczba losowa generowana przez komputer, gdy połączenie jest ustanowione jako jego wartość początkowa po ustaleniu połączenia TCP, a numer sekwencji jest wysyłany do odbiornika za pośrednictwem pakietu Syn. Podczas transmisji danych nadawca zwiększa numer sekwencji zgodnie z ilością wysłanych danych. Odbiorca ocenia kolejność danych zgodnie z otrzymanym numerem sekwencji. Jeśli dane zostaną znalezione w kolejności, odbiornik ponownie zamówi dane w celu zapewnienia kolejności danych.

Numer potwierdzenia: Jest to numer sekwencji używany w TCP do potwierdzenia otrzymania danych. Wskazuje numer sekwencji następnych danych, które nadawca oczekuje. W połączeniu TCP odbiornik określa, które dane zostały pomyślnie otrzymane na podstawie numeru sekwencji odebranego segmentu pakietów danych. Gdy odbiornik z powodzeniem odbiera dane, wysyła pakiet ACK do nadawcy, który zawiera numer potwierdzenia. Po otrzymaniu pakietu ACK nadawca może potwierdzić, że dane przed potwierdzeniem numeru odpowiedzi zostały pomyślnie otrzymane.

Bity kontrolne segmentu TCP obejmują następujące:

Ack Bit: Gdy ten bit jest 1, oznacza to, że pole odpowiedzi potwierdzenia jest prawidłowe. TCP określa, że ​​ten bit musi być ustawiony na 1, z wyjątkiem pakietów SYN, gdy połączenie jest początkowo ustalone.
RST BIT: Gdy ten bit wynosi 1, wskazuje, że istnieje wyjątek w połączeniu TCP, a połączenie musi zostać zmuszone do odłączenia.
Syn bit: Gdy ten bit jest ustawiony na 1, oznacza to, że połączenie ma zostać ustalone, a początkowa wartość numeru sekwencji jest ustawiona w polu numeru sekwencji.
Fin bit: Gdy ten bit jest 1, oznacza to, że w przyszłości nie zostaną wysyłane więcej danych, a połączenie jest pożądane.
Różne funkcje i cechy TCP są zawarte przez strukturę segmentów pakietów TCP.

Co to jest UDP? (Mylinking'sTap sieciowyIBroker pakietu sieciowegomoże przetwarzać zarówno pakiety TCP lub UDP)
Protokół DataGram Protocol (UDP) to protokół komunikacji bez połączenia. W porównaniu z TCP UDP nie zapewnia złożonych mechanizmów kontrolnych. Protokół UDP umożliwia aplikacjom bezpośrednio wysyłanie kapsułkowanych pakietów IP bez nawiązania połączenia. Gdy deweloper zdecyduje się używać UDP zamiast TCP, aplikacja komunikuje się bezpośrednio z IP.

Pełna nazwa protokołu UDP to protokół DataGram, a jego nagłówek to tylko osiem bajtów (64 bity), co jest bardzo zwięzłe. Format nagłówka UDP jest następujący:

Segment UDP

Porty docelowe i źródłowe: Ich głównym celem jest wskazanie, który proces UDP powinien wysyłać pakiety.
Rozmiar pakietu: Pole rozmiaru pakietu zawiera rozmiar nagłówka UDP plus rozmiar danych
Suma kontrolna: Zaprojektowany w celu zapewnienia wiarygodnego dostarczania nagłówków i danych UDP Rola sumie kontrolnej jest wykrycie, czy wystąpił błąd lub uszkodzenie podczas transmisji pakietu UDP, aby zapewnić integralność danych.

Różnice między TCP i UDP w Mylinking'sTap sieciowyIBroker pakietu sieciowegomoże przetwarzać zarówno pakiety TCP lub UDP
TCP i UDP różnią się w następujących aspektach:

TCP vs UDP

Połączenie: TCP to protokół transportu zorientowany na połączenie, który wymaga ustalenia połączenia przed przeniesieniem danych. Z drugiej strony UDP nie wymaga połączenia i może natychmiast przesyłać dane.

Obiekt serwisowy: TCP to dwupunktowa usługa jeden do jednego, to znaczy połączenie ma tylko dwa punkty końcowe do komunikowania się ze sobą. Jednak UDP obsługuje interaktywną komunikację jeden do jednego, jeden do wielu i wiele do wielu, która może komunikować się z wieloma gospodarzami.

Niezawodność: TCP zapewnia usługi niezawodnego dostarczania danych, zapewniając, że dane są wolne od błędów, bez strat, bezplikowane i przybywają na żądanie. Z drugiej strony UDP ma swój najlepszy wysiłek i nie gwarantuje wiarygodnej dostawy. UDP może cierpieć na utratę danych i inne sytuacje podczas transmisji.

Kontrola zatorów, kontrola przepływu: TCP ma mechanizmy kontroli zatorów i kontroli przepływu, które mogą dostosować szybkość transmisji danych zgodnie z warunkami sieciowymi, aby zapewnić bezpieczeństwo i stabilność transmisji danych. UDP nie ma mechanizmów kontroli zatorów i kontroli przepływu, nawet jeśli sieć jest bardzo zatłoczona, nie dokona regulacji szybkości wysyłania UDP.

Nagłówek narzutowy: TCP ma długą długość nagłówka, zwykle 20 bajtów, która wzrasta, gdy używane są pola opcji. Z drugiej strony UDP ma stały nagłówek tylko 8 bajtów, więc UDP ma dolny nagłówek.

TCP vs UDP

Scenariusze aplikacji TCP i UDP:
TCP i UDP to dwa różne protokoły warstwy transportowej i mają pewne różnice w scenariuszach aplikacji.

Ponieważ TCP jest protokołem zorientowanym na połączenie, jest stosowany przede wszystkim w scenariuszach, w których wymagane jest wiarygodne dostarczanie danych. Niektóre typowe przypadki użycia obejmują:

Transfer pliku FTP: TCP może zapewnić, że pliki nie zostaną utracone i uszkodzone podczas transferu.
Http/https: TCP zapewnia integralność i poprawność treści internetowych.
Ponieważ UDP jest protokołem bez połączeń, nie zapewnia gwarancji niezawodności, ale ma charakterystykę wydajności i czasu rzeczywistego. UDP nadaje się do następujących scenariuszy:

Ruch o niskim pakiecie, taki jak DNS (system nazwy domeny): Zapytania DNS są zwykle krótkimi pakietami, a UDP może je ukończyć szybciej.
Komunikacja multimedialna, taka jak wideo i audio: W przypadku transmisji multimedialnej o wysokich wymaganiach w czasie rzeczywistym UDP może zapewnić niższe opóźnienie, aby zapewnić, że dane mogą być przesyłane w odpowiednim czasie.
Komunikacja nadawcza: UDP obsługuje komunikację jeden do wielu i wiele do wielu i może być używany do transmisji wiadomości transmisji.

Streszczenie
Dzisiaj dowiedzieliśmy się o TCP. TCP to zorientowany na połączenie, niezawodny protokół komunikacji warstwy transportowej oparty na strumieniu bajtów. Zapewnia wiarygodną transmisję i uporządkowane odbiór danych poprzez ustanowienie połączenia, uścisku dłoni i potwierdzenia. Protokół TCP wykorzystuje porty do realizacji komunikacji między procesami i zapewnia bezpośrednie usługi komunikacyjne dla procesów aplikacji działających na różnych hostach. Połączenia TCP są pełne, co umożliwia jednoczesne transfer danych dwukierunkowych. Natomiast UDP jest protokołem komunikacji zorientowanej na połączenie, który nie zapewnia gwarancji niezawodności i jest odpowiedni do niektórych scenariuszy o wysokich wymaganiach w czasie rzeczywistym. TCP i UDP są różne pod względem trybu połączenia, obiektu serwisowego, niezawodności, kontroli przeciążenia, kontroli przepływu i innych aspektów, a ich scenariusze aplikacji są również różne.


Czas postu: grudzień 03-2024