Mój router ma dwa protokoły (i opcję „oba”), które mogę wybrać podczas konfigurowania przekierowania portów: UDP i TCP. Jaka jest różnica między tymi dwoma protokołami i kiedy wybrałbyś jeden do drugiego w przekierowaniu portów?
46
Protokół TCP jest wspierany przez pakiety i próby, aby upewnić się, że dane dotrą do celu. UDP jest bezpołączeniowy i „odpala i zapomina”. UDP jest najczęściej używany do aplikacji typu streaming, w przypadku utraty niektórych danych, nie trzeba próbować ich ponownie wysyłać.
To, którego używasz, zależy od aplikacji. Na przykład serwer WWW używa protokołu TCP.
Dobre podsumowanie znajdziesz tutaj:
Jaka jest różnica między protokołami internetowymi UDP i TCP?
Zarówno TCP, jak i UDP działają w modelu TCP / IP warstwy transportowej, ale mają bardzo różne zastosowania.
Najważniejsze różnice to:
TCP:
UDP zorientowany na połączenie: bezpołączeniowy
TCP: kolejność odbioru wiadomości jest gwarantowana
UDP: kolejność nie jest gwarantowana
TCP: ciężki, ze względu na obciążenie związane z łączeniem / zamawianiem
UDP: lekki, bardzo niewielki narzut
TCP: przesyłanie strumieniowe, dane są odczytywane jako „strumień”, bez rozróżnienia, gdzie kończy się jeden pakiet, a zaczyna inny. Może istnieć wiele pakietów na połączenie odczytu.
UDP: datagramy, jeden pakiet na jedno wywołanie odczytu.
Struktura ramy
Gdy dane są przesyłane przez sieć, muszą być obudowane w tak zwane „ramki”. Istnieją różne metody enkapsulacji w zależności od używanego protokołu i topologii. Poniższe obrazy pokazują, jak różnią się struktury ramek TCP i UDP.
Oto struktura ramki TCP:
Jest to struktura ramki UDP, o wiele prostsza:
Typowe protokoły korzystające z TCP to HTTP, FTP i SMTP. Przykładami protokołów używających UDP są DNS i DHCP.
źródło
I wyjaśnienie na poziomie CEO:
źródło
TCP i UDP to protokoły działające na bazie IP. TCP gwarantuje dostawę, a UDP nie. Możesz wybrać jedno lub drugie do przekierowania portów w zależności od usługi, którą próbujesz przekazać. Na przykład HTTP to TCP. Jeśli nie wiesz, jakiego protokołu jest usługa, którą próbujesz przekazać, prawie na pewno jest to TCP.
źródło
Aby odpowiedzieć na inną część pytania, musisz przekazać dalej, z czego korzysta Twoja aplikacja. Aby przekazać ruch HTTP, wybierz TCP. Aby przekazać ruch TFTP, wybierz UDP. Programy p2p używają głównie zarówno tcp, jak i udp, więc przekaż je oba.
Wszystko zależy od protokołu i używanego programu.
źródło
Oprócz wspomnianych różnic, TCP zapewnia również
Kontrola przepływu. Za pomocą mechanizmu okna odbiorca ogranicza liczbę oktetów (bajtów), które chce otrzymać od nadawcy, zanim nadawca będzie musiał czekać na pozwolenie na wysłanie większej ilości danych. Rozmiar okna może być zmieniany przez odbiorcę w trakcie rozmowy. Umożliwia to odbiornikowi „dławienie” prędkości danych pochodzących od nadawcy: UDP nie pozwala na to i wszystko, co odbiorca może zrobić, to wyrzucić dane, których nie może buforować ani przetwarzać po przybyciu.
niektóre bardziej techniczne ułatwienia, takie jak nieciągłe potwierdzanie (wykorzystuje selektywne potwierdzenia, aby umożliwić nadawcy retransmitację tylko brakującej ramki zamiast brakującej ramki i kolejnych, które odbiorca już ma, ale nie mógł potwierdzić w zwykły sposób), obsługę zatorów i adaptacyjna retransmisja (dostosowanie timera decydującego o tym, kiedy ponownie wysłać przesłaną ramkę, gdy potwierdzenie nie zostanie odebrane). Nie są one istotne dla UDP, ale pomagają TCP świadczyć dodatkowe usługi przez UDP bez znacznego zwiększenia obciążenia sieci dla tego samego wolumenu ładunku.
źródło
TCP dokłada starań, aby dane dotarły do odbiorcy; UDP nie.
źródło
Nie wspominając o wszystkich odpowiedziach wyjaśniających jedno kontra drugie. W celu skonfigurowania przekierowania portów reguły są dość proste: musisz wybrać TCP, chyba że dokumenty używanego protokołu / aplikacji mówią o używaniu UDP. Zwykle te, które używają UDP są związane z transmisją strumieniową lub bardzo prostymi rzeczami, które preferują lekkie protokoły / szybkość nad niezawodnością (szczególnie DNS i NTP). Zauważ, że istnieją również inne protokoły oprócz TCP i UDP - ICMP, protokoły tunelowania itp.
źródło
Im bardziej znany jest protokół, tym więcej routerów na ścieżce ingeruje w protokół. Wysyłaj pakiety tcp i istnieje duże prawdopodobieństwo, że odebrane pakiety są bardzo zniekształcone. UDP zwykle nie jest zniekształcony, a pozostałe protokoły 254 IP paylod są zwykle całkowicie nietknięte.
źródło
User Datagram Protocol (UDP)
Jest to część podstawowych protokołów pakietu Internet Protocol Suite. Programy na komputerach w sieci mogą wysyłać krótkie wiadomości nazywane czasami datagramami. UDP nie gwarantuje żadnej niezawodności (zdarza się, że datagram może pojawić się poza kolejnością, jest zduplikowany lub brakuje go bez powiadomienia). Fakt, że nie sprawdza się, czy wszystkie pakiety są rzeczywiście dostarczane, UDP okazuje się szybszy i bardziej wydajny w przypadku aplikacji, które nie wymagają gwarantowanej dostawy. UDP znajduje zastosowanie w takich sytuacjach:
Aplikacje wrażliwe na czas. Unika się problemów związanych z opóźnionymi pakietami
Jest także przydatny dla serwerów, które odpowiadają na małe zapytania od ogromnej liczby klientów. UDP obsługuje transmisję pakietów (przekazuje do wszystkich w sieci lokalnej) i multiemisję (przekazuje do wszystkich subskrybentów).
Protokół kontroli transmisji (TCP)
Jest często określany jako TCP / IP ze względu na znaczenie tego protokołu w pakiecie Internet Protocol Suite. TCP działa na wyższym poziomie, dotyczy tylko dwóch systemów końcowych (np. Między przeglądarką internetową a serwerem WWW). TCP zapewnia niezawodne, sekwencyjne dostarczanie strumienia danych z jednego programu na jednym komputerze do innego programu na innym komputerze. Typowe zastosowania obsługi przegrupowywania wiadomości e-mail przez TCP oraz przesyłania plików i aplikacji internetowych. Wśród zadań zarządzania TCP kontroluje rozmiar wiadomości, szybkość wymiany wiadomości i przeciążenie ruchu w sieci. Jeśli chodzi o IP, obsługuje transmisje niższego poziomu z komputera na komputer jako wiadomość przesyłaną przez Internet.
źródło
Oba są protokołami sieciowymi zbudowanymi na czymś zwanym protokołem internetowym lub IP. Protokół internetowy jest głównym protokołem Internetu i umożliwia na przykład przeglądanie Internetu. Dlatego często zobaczysz te protokoły zapisane jako TCP / IP lub UDP / IP. W rzeczywistości są to podstawowe protokoły Internetu.
W obu przypadkach dane są dzielone na części zwane pakietami. TCP zapewnia, że pakiety te docierają do miejsca docelowego we właściwej kolejności i bez błędów.
Z drugiej strony UDP nie zapewni nawet, że pakiet danych dotrze. Zapewni to tylko, że jeśli to dotrze, będzie bezbłędnie.
Zazwyczaj inne protokoły będą działały na TCP i UDP i są znane jako protokoły aplikacji, ponieważ działają w ramach aplikacji, a nie w systemie operacyjnym. Przeglądarka internetowa korzysta z protokołu HTTP, który będzie korzystał z protokołu TCP.
Wyszukiwania nazw domen lub zapytania DNS często używają UDP, ale mogą także używać TCP. Wiele usług przesyłania strumieniowego korzysta z protokołu UDP poniżej innych protokołów aplikacji.
Mam nadzieję, że odpowie na twoje pytanie w prostszym języku angielskim.
źródło