it-swarm.com.de

Unterschied zwischen TCP und UDP?

Was ist der Unterschied zwischen TCP und UDP?

Ich weiß, dass TCP bei nicht zeitkritischen Anwendungen verwendet wird, und UDP wird für Spiele oder Anwendungen verwendet, die eine schnelle Datenübertragung erfordern. Ich weiß, dass TCP wird für HTTP, HTTPs, FTP, SMTP und Telnet verwendet. Ich weiß, dass UDP für DNS und DHCP verwendet wird.

Aber wieso? Welche Eigenschaften von TCP und UDP machen es für ihre jeweiligen Anwendungsfälle nützlich?

137
user749414

TCP ist ein verbindungsorientierter Stream über ein IP-Netzwerk. Es garantiert, dass alle gesendeten Pakete das Ziel in der richtigen Reihenfolge erreichen. Dies impliziert die Verwendung von Bestätigungspaketen, die an den Absender zurückgesendet werden, und eine automatische Neuübertragung, die zusätzliche Verzögerungen und eine allgemein weniger effiziente Übertragung als UDP verursacht.

UDP ist ein verbindungsloses Protokoll. Die Kommunikation ist Datagramm orientiert. Die Integrität wird nur für das einzelne Datagramm garantiert. Datagramme erreichen den Bestimmungsort und kommen möglicherweise nicht in der richtigen Reihenfolge oder überhaupt nicht an. Es ist effizienter als TCP, da es non ACK verwendet. Es wird im Allgemeinen für die Echtzeitkommunikation verwendet, bei der ein kleiner Prozentsatz der Paketverlustrate dem Overhead einer TCP -Verbindung vorzuziehen ist.

In bestimmten Situationen wird UDP verwendet, da die Übertragung von Rundsendepaketen möglich ist. Dies ist in Fällen wie dem Protokoll DHCP manchmal von grundlegender Bedeutung, da der Clientcomputer noch keine IP -Adresse erhalten hat (dies ist der Zweck des Protokolls DHCP zur Verhandlung). Es ist keine Möglichkeit, einen TCP -Stream ohne die IP -Adresse selbst einzurichten.

114
Heisenbug

Von der Skullbox-Artikel:

TCP (Transmission Control Protocol) ist das im Internet am häufigsten verwendete Protokoll. Der Grund dafür ist, dass TCP eine Fehlerkorrektur anbietet. Bei Verwendung des TCP) - Protokolls liegt eine "garantierte Zustellung" vor. Dies liegt größtenteils an Eine Methode mit der Bezeichnung "Flusskontrolle". Die Flusskontrolle bestimmt, wann Daten erneut gesendet werden müssen, und stoppt den Datenfluss, bis vorherige Pakete erfolgreich übertragen wurden. Dies funktioniert, da beim Senden eines Datenpakets eine Kollision auftreten kann In diesem Fall fordert der Client das Paket erneut vom Server an, bis das gesamte Paket vollständig und mit dem Original identisch ist.

UDP (User Datagram Protocol) ist ein anderes im Internet gebräuchliches Protokoll. UDP wird jedoch niemals zum Senden wichtiger Daten wie Webseiten, Datenbankinformationen usw. verwendet. UDP wird üblicherweise zum Streamen von Audio und Video verwendet. Streaming-Medien wie Windows Media-Audiodateien (.WMA), Real Player (.RM) und andere verwenden UDP, weil es Geschwindigkeit bietet! Der Grund, warum UDP schneller als TCP ist, ist, dass es keine Form der Flusskontrolle oder Fehlerkorrektur gibt. Die über das Internet gesendeten Daten sind von Kollisionen betroffen und es treten Fehler auf. Denken Sie daran, dass UDP ist Das ist der Hauptgrund, warum Streaming-Medien nicht von hoher Qualität sind.

2) TCP benötigt mehr Verarbeitung auf Netzwerkschnittstellenebene, wohingegen dies bei UDP nicht der Fall ist.

3) TCP verwendet 3-Wege-Handshake, Überlastungskontrolle, Flusskontrolle und andere Mechanismen, um eine zuverlässige Übertragung sicherzustellen.

4) UDP wird hauptsächlich in Fällen verwendet, in denen die Paketverzögerung schwerwiegender ist als der Paketverlust.

50
p27

Stellen Sie sich TCP als dedizierte geplante UPS/FedEx-Abholung/Abgabe von Paketen zwischen zwei Standorten vor, während UDP dem Werfen einer Postkarte in eine Mailbox entspricht.

UPS/FedEx wird ihr Möglichstes tun, um sicherzustellen, dass das Paket, das Sie verschicken, dort ankommt und pünktlich ankommt. Mit der Postkarte haben Sie Glück, wenn sie überhaupt ankommt und möglicherweise nicht in Ordnung oder zu spät ankommt (wie oft haben Sie eine Postkarte von jemandem erhalten, NACHDEM sie aus dem Urlaub nach Hause gekommen sind?)

TCP kommt einem garantierten Übermittlungsprotokoll so nahe wie möglich, während UDP nur "best effort" ist.

40
Marc B

Gründe, warum UDP für DNS und DHCP verwendet wird:

DNS - TCP erfordert mehr Ressourcen vom Server (der auf Verbindungen wartet) als vom Client. Insbesondere, wenn die TCP= Verbindung geschlossen wird, Der Server muss die Details der Verbindung zwei Minuten lang speichern (im Speicher halten), und zwar in einem als TIME_WAIT_2 bezeichneten Zustand. Dies ist eine Funktion, die verhindert, dass irrtümlich wiederholte Pakete einer vorherigen Verbindung als Teil einer aktuellen Verbindung interpretiert werden TIME_WAIT_2 belegt den Kernelspeicher auf dem Server DNS-Anforderungen sind gering und kommen häufig von vielen verschiedenen Clients an Dieses Verwendungsmuster erhöht die Belastung des Servers im Vergleich zu den Clients Es wurde angenommen, dass UDP verwendet wird, das keine Verbindungen und keinen Status zu hat Beibehalten auf Client oder Server würde dieses Problem verbessern.

DHCP - DHCP ist eine Erweiterung von BOOTP. BOOTP ist ein Protokoll, mit dem Client-Computer Konfigurationsinformationen von einem Server abrufen, während der Client bootet. Um den Server zu lokalisieren, wird eine Sendung gesendet, in der nach BOOTP- (oder DHCP-) Servern gefragt wird. Broadcasts können nur über ein verbindungsloses Protokoll wie UDP gesendet werden. Aus diesem Grund benötigte BOOTP mindestens ein UDP-Paket für die Sendung zur Lokalisierung des Servers. Da BOOTP während des Startvorgangs des Clients ausgeführt wird und in diesem Zeitraum möglicherweise nicht der gesamte TCP/IP-Stack des Clients geladen und ausgeführt wird, ist UDP möglicherweise das einzige Protokoll, für das der Client bereit ist Zeit. Schließlich haben einige DHCP/BOOTP-Clients nur UDP an Bord. Beispielsweise implementieren einige IP-Thermostate nur UDP. Der Grund dafür ist, dass sie mit so kleinen Prozessoren und wenig Arbeitsspeicher ausgestattet sind, dass sie nicht in der Lage sind, TCP - dennoch müssen sie beim Booten eine IP-Adresse abrufen.

Wie bereits erwähnt, eignet sich UDP auch zum Streamen von Medien, insbesondere von Audio. Unter Netzwerkverzögerung klingen Gespräche besser, wenn Sie die verzögerten Pakete einfach verwerfen. Sie können dies mit UDP tun, aber mit TCP) erhalten Sie während der Verzögerung nur eine Pause, gefolgt von Audio, das immer so lange verzögert wird, wie es bereits unterbrochen wurde Gespräche, das ist inakzeptabel.

20
Heath Hunnicutt

Einer der Unterschiede ist kurz

UDP : Nachricht senden und nicht zurückblicken, wenn sie das Ziel erreicht hat, verbindungsloses Protokoll
TCP : Nachricht senden und garantieren, dass das Ziel erreicht wird, verbindungsorientiertes Protokoll

15
mcaaltuntas

TCP baut eine Verbindung auf, bevor die eigentliche Datenübertragung stattfindet, UDP nicht. Auf diese Weise kann UDP eine schnellere Zustellung ermöglichen. Anwendungen wie DNS, Zeitserverzugriff verwenden daher UDP.

Im Gegensatz zu UDP verwendet TCP die Überlastungskontrolle. Es reagiert auf die Netzwerklast. Im Gegensatz zu UDP verlangsamt es sich, wenn eine Überlastung des Netzwerks unmittelbar bevorsteht. Anwendungen wie Multimedia, die einen konstanten Durchsatz bevorzugen, setzen möglicherweise auf UDP.

Außerdem ist UDP unzuverlässig und reagiert nicht auf Paketverluste. Verlustempfindliche Anwendungen wie die Multimedia-Übertragung bevorzugen daher UDP. TCP ist ein zuverlässiges Protokoll, daher bevorzugen Anwendungen, die Zuverlässigkeit erfordern, wie z. B. Webübertragung, E-Mail, Dateidownload, TCP.

Außerdem ist UDP im heutigen Internet nicht so einladend wie TCP aufgrund von mittleren Boxen. Einige Anwendungen wie Skype fallen auf TCP, wenn angenommen wird, dass eine UDP-Verbindung besteht verstopft.

9
Timir

Kurze und einfache Unterschiede zwischen Tcp- und Udp-Protokoll:

1) Tcp - Übertragungssteuerungsprotokoll und Udp - Benutzerdatagrammprotokoll.

2) Tcp ist ein zuverlässiges Protokoll, wobei Udp ein unzuverlässiges Protokoll ist.

3) Tcp ist ein Stream-orientiertes Protokoll, während Udp ein nachrichtenorientiertes Protokoll ist.

4) Tcp ist langsamer als Udp.

2
msc
2
rapt

Laufen Sie in diesen Thread und lassen Sie mich versuchen, es auf diese Weise auszudrücken.

TCP

-Wege-Handshake

Bob: Hey Amy, ich möchte dir ein Geheimnis verraten
Amy: Okay, mach weiter, ich bin bereit
Bob: [~ # ~] ok [~ # ~]

Kommunikation
Bob: 'I', das ist der erste Buchstabe
Amy: Erster Brief erhalten, bitte senden Sie mir den zweiten Brief
Bob: '', das ist der zweite Buchstabe
Amy: Zweiter Brief erhalten, bitte senden Sie mir den dritten Brief
Bob: 'L', dies ist der dritte Buchstabe
Nach einer Weile
Bob: 'L', dies ist der dritte Buchstabe
Amy: Dritter Brief erhalten, bitte senden Sie mir den vierten Brief
Bob: 'O', dies ist der vierte Buchstabe
Amy: ...
......

4-Wege-Handshake
Bob: Mein Geheimnis ist gelüftet, jetzt kennst du mein Herz.
Amy: Okay. Ich habe nichts zu sagen.
Bob: OK.

UDP

Bob: Ich liebe dich
Amy erhielt: OVI L E

TCP ist zuverlässiger als UDP, auch wenn die Nachrichtenreihenfolge garantiert ist. Das ist zweifellos der Grund, warum UDP leichter und effizienter ist.

1
Gearon

Einfache Erklärung durch Analogie

TCP ist so.

Stellen Sie sich vor, Sie haben einen Brieffreund auf dem Mars (wir haben in den guten alten Tagen vor dem Internet mit Briefen kommuniziert).

Sie müssen Ihrem Brieffreund die sieben Gewohnheiten hochwirksamer Menschen vermitteln. Also beschließen Sie, es in sieben separaten Briefen zu senden:

  1. Buchstabe 1 - Seien Sie proaktiv
  2. Buchstabe 2 - Beginnen Sie mit dem Ende im Kopf ...

etc.

usw. Buchstabe 7 - Schärfen Sie die Säge

Bedarf:

Sie möchten sicherstellen, dass Ihr Brieffreund alle Ihre Briefe - in der Reihenfolge und dass sie perfekt ankommen. Wenn Ihre Stiftzahlung den Buchstaben 7 vor dem Buchstaben 1 erhält, ist das nicht gut. Wenn Ihr Brieffreund alle Buchstaben außer Buchstabe 3 erhält, ist das auch nicht gut.

So stellen wir sicher, dass unsere Anforderungen erfüllt werden:

  • Bestätigungsschreiben: Ihr Brieffreund sendet ein Bestätigungsschreiben mit der Aufschrift "Ich habe Brief 1 erhalten". Auf diese Weise wissen Sie, dass Ihr Brieffreund es erhalten hat. Wenn ein Brief nicht oder nicht in der richtigen Reihenfolge eintrifft, müssen Sie anhalten und den Brief und alle nachfolgenden Briefe erneut senden.
  • Flusskontrolle: Ungefähr zu Weihnachten wissen Sie, dass Ihr Brieffreund eine Menge E-Mails erhalten wird. Sie werden also langsamer, weil Sie Ihren Brieffreund nicht überfordern möchten. (Ihr Brieffreund sendet Ihnen ständige Aktualisierungen über die Anzahl der ungelesenen Nachrichten in der Mailbox des Brieffreunds. Wenn Ihr Brieffreund mitteilt, dass der Posteingang kurz vor der Explosion steht, weil er so voll ist, verlangsamen Sie das Senden Ihrer Briefe, weil Ihr Brieffreund kann sie nicht lesen.
  • Perfekte Anreise. Manchmal kann ein Brief, während Sie ihn mit der Post verschicken, zerrissen werden oder eine Schnecke kann die Hälfte davon essen. Woher wissen Sie, dass alle Ihre Briefe in einwandfreiem Zustand angekommen sind? Nun, Ihr Brieffreund gibt Ihnen einen Mechanismus, mit dem Sie prüfen können, ob er den vollständigen Brief enthält und ob es genau der Brief war, den Sie gesendet haben. (z. B. über eine Wortzählung usw.). eine grundlegende Analogie.
0
BKSpurgeon