+3 Daumen
1,4k Aufrufe


1. Einführung

UDP (User Datagram Protocol) und TCP (Transmission Control Protocol) sind zwei Transportprotokolle auf der Transportschicht (Schicht 4) des ISO/OSI-Schichtenmodells des Internets. Sie unterscheiden sich in vielen Punkten und sind für unterschiedliche Zweck geeignet. Im Folgenden sollen die Unterschiede dieser beiden Protokolle dargestellt werden.

2. Unterschiede zwischen UDP und TCP

UDPTCP
UDP produziert keinen Overhead für das Herstellen, Aufrechterhalten und Schließen einer Verbindung (verbindungsloses Protokoll). Daher ist es sehr gut für Broadcast- und Multicast-Übertragungen geeignet.TCP ist ein verbindungsorientiertes Protokoll, d. h. die Geräte müssen vor der Datenübermittlung eine Verbindung aufbauen und diese nach der Transmission wieder schließen.
Die erfolgreiche Übermittlung von Daten von der Quelle zum Ziel kann nicht garantiert werden.TCP ist zuverlässig, da es die Zustellung von Daten an den Zielrouter sicherstellt.
UDP bietet nur standardmäßige Fehlerkennungsmechanismen auf Basis von Checksummen.TCP stellt umfangreiche Mechanismen zum Erkennen von Fehlern bereit. Es bietet z. B. Flow Control und Paket-Acknowledgements (ACKs).
UDP ist schneller, einfacher und effizienter als TCP.TCP ist langsamer als UDP.
Eine Sequenzierung von Daten ist bei UDP nicht vorgesehen. Wenn die Reihenfolge der Paketankunft entscheidend ist, übernimmt dies die Anwendungsschicht (Schicht 5).TCP bietet eine Sequenzierung von Daten an, d. h. sie kommen in der „richtigen“ Reihenfolge beim Empfänger an.
Das erneute Übertragen verlorengegangener Pakete ist nicht vorgesehen (keine Retransmission).Verlorengegangene Pakete können erneut gesendet werden (Retransmission).
Der UDP Header besitzt eine Größe von 8 Bytes. Es handelt sich um ein leichtgewichtiges Übertragungsprotokoll.Der TCP Header besitzt eine Größe von 20 Bytes. Es handelt sich um ein schwergewichtiges Übertragungsprotokoll.
UDP wird von DHCP, TFTP, SNMP, DNS, RIP und VoIP genutzt.TCP wird von HTTP/HTTPS, FTP, Telnet und SMTP genutzt.

Die Tabelle als Grafik:

differences.png


3. Wann nutzt man welches Protokoll?

UDP wird vor allem bei Streaming- und Multimedia-Applikationen (z. B. VoIP) verwendet. Besonders bei schnellen Online-Multiplayerspielen (z. B. Fortnite als Shooter-Game) ist ein ruckelfreies Spielerlebnis gewünscht, weshalb der Verlust einzelner Pakete durchaus in Kauf genommen werden kann. Es ist zwar nervig, wenn das Aiming aufgrund falsch kommunizierter Map-Daten nicht funktioniert, doch in gewisser Weise tolerierbar. Beim Streaming von Netflix ist es auch nicht notwendig, dass jedes einzelne Pixel in einer Full HD Auflösung richtig ankommt, da man sie ohnehin nicht alle für sich selbst betrachtet wahrnimmt. Die Alternative wäre entweder hohe Wartzeit, bis der gesamte Film geladen ist oder ständiges Ruckeln, das abhängig von verschiedenen Störfaktoren (z. B. Netzwerk-Interferenzen, Witterung, Signalstärke) mal öfter und mal seltener auftritt.

TCP auf der anderen Seite wird verwendet, wenn man sicherstellen will, dass die versendeten Daten auch tatsächlich ankommen. Es wäre fatal, wenn bspw. nur 70% aller E-Mails oder Whats-App-Nachrichten ankommen würden. Genauso könnte es bei der Verwendung von UDP statt TCP passieren, dass die Nachrichten in unterschiedlicher Reihenfolge beim Empfänger eingehen, weshalb dieser Use-Case für die Verwendung von TCP prädestiniert ist. Auch beim Download von Dateien aus dem Internet ist TCP eine gute Wahl, da Paketverluste und falsche Reihenfolgen berücksichtigt werden, was ansonsten zu korrupten bzw. nicht anzeigbaren Dateien führen kann.

Deaktiviert man hingegen den Nagle Algorithmus, dann könnte TCP auch als Transportprotokoll für Online-Games verwendet werden (so verhält es sich z. B. in World of Warcraft).

Autor: Florian André Dalwigk

Dieser Artikel hat 50 Bonuspunkte erhalten. Schreib auch du einen Artikel.
geschlossen: Stack-Artikel
Avatar von

Schöner Artikel und Glückwunsch zum Video :)

Könntest du die Tabelle noch als HTML-Tabelle einstellen?

Gerne:

<style type="text/css">
/*<![CDATA[*/
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-nb0w{font-weight:bold;background-color:#d8f9d9;border-color:inherit;text-align:center;vertical-align:top}
.tg .tg-rjs3{font-weight:bold;background-color:#ffccc9;border-color:inherit;text-align:center}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
/*]]>*/
</style><table class="tg" style="undefined;table-layout: fixed; width: 802px">
    <colgroup>
        <col style="width: 1" />
        <col style="width: 1" />
    </colgroup>

    <tr>
        <th class="tg-rjs3">
            UDP
        </th>
        <th class="tg-nb0w">
            TCP
        </th>
    </tr>

    <tr>
        <td class="tg-0pky">
            UDP produziert <span style="font-weight:bold;color:rgb(206, 99, 1)">keinen Overhead</span> für das <span style="font-weight:bold;color:rgb(206, 99, 1)">Herstellen</span>, <span style=
            "font-weight:bold;color:rgb(206, 99, 1)">Aufrechterhalten</span> und <span style="font-weight:bold;color:rgb(206, 99, 1)">Schließen</span> einer Verbindung (<span style=
            "font-weight:bold;color:rgb(206, 99, 1)">verbindungsloses Protokoll</span>). Daher ist es sehr gut für <span style="font-weight:bold;color:rgb(206, 99, 1)">Broadcast-</span> und
            <span style="font-weight:bold;color:rgb(206, 99, 1)">Multicast-Übertragungen</span> geeignet.
        </td>
        <td class="tg-0pky">
            TCP ist ein <span style="font-weight:bold;color:rgb(206, 99, 1)">verbindungsorientiertes Protokoll</span>, d. h. die Geräte müssen vor der Datenübermittlung eine <span style=
            "font-weight:bold;color:rgb(206, 99, 1)">Verbindung aufbauen</span> und diese nach der Transmission <span style="font-weight:bold;color:rgb(206, 99, 1)">wieder schließen</span>.
        </td>
    </tr>

    <tr>
        <td class="tg-0pky">
            Die erfolgreiche Übermittlung von Daten von der Quelle zum Ziel kann <span style="font-weight:bold;color:rgb(206, 99, 1)">nicht garantiert</span> werden.
        </td>
        <td class="tg-0pky">
            TCP ist <span style="font-weight:bold;color:rgb(206, 99, 1)">zuverlässig</span>, da es die Zustellung von Daten an den Zielrouter sicherstellt.
        </td>
    </tr>

    <tr>
        <td class="tg-0pky">
            UDP bietet <span style="font-weight:bold;color:rgb(206, 99, 1)">nur standardmäßige Fehlerkennungsmechanismen</span> auf Basis von <span style=
            "font-weight:bold;color:rgb(206, 99, 1)">Checksummen</span><span style="color:rgb(51, 51, 51)">.</span>
        </td>
        <td class="tg-0pky">
            TCP stellt <span style="font-weight:bold;color:rgb(206, 99, 1)">umfangreiche Mechanismen zum Erkennen von Fehlern</span> bereit. Es bietet z. B. <span style=
            "font-weight:bold;color:rgb(206, 99, 1)">Flow Control</span> und <span style="font-weight:bold;color:rgb(206, 99, 1)">Paket-Acknowledgements</span> (ACKs).
        </td>
    </tr>

    <tr>
        <td class="tg-0pky">
            UDP ist <span style="font-weight:bold;color:rgb(206, 99, 1)">schneller</span>, <span style="font-weight:bold;color:rgb(206, 99, 1)">einfacher</span> und <span style=
            "font-weight:bold;color:rgb(206, 99, 1)">effizienter</span> als TCP.
        </td>
        <td class="tg-0pky">
            TCP ist <span style="font-weight:bold;color:rgb(206, 99, 1)">langsamer</span> als UDP.
        </td>
    </tr>

    <tr>
        <td class="tg-0pky">
            Eine <span style="font-weight:bold;color:rgb(206, 99, 1)">Sequenzierung von Daten</span> ist bei UDP <span style="font-weight:bold;color:rgb(206, 99, 1)">nicht vorgesehen</span>. Wenn die
            Reihenfolge der Paketankunft entscheidend ist, übernimmt dies die <span style="font-weight:bold;color:rgb(206, 99, 1)">Anwendungsschicht</span> (Schicht 5).
        </td>
        <td class="tg-0pky">
            TCP bietet eine <span style="font-weight:bold;color:rgb(206, 99, 1)">Sequenzierung von Daten</span> an, d. h. sie kommen in der <span style=
            "font-weight:bold;color:rgb(206, 99, 1)">„richtigen“ Reihenfolge</span> beim Empfänger an.
        </td>
    </tr>

    <tr>
        <td class="tg-0pky">
            Das <span style="font-weight:bold;color:rgb(206, 99, 1)">erneute Übertragen</span> verlorengegangener Pakete ist <span style="font-weight:bold;color:rgb(206, 99, 1)">nicht
            vorgesehen</span> (<span style="font-weight:bold;color:rgb(206, 99, 1)">keine Retransmission</span><span style="color:rgb(51, 51, 51)">)</span>.
        </td>
        <td class="tg-0pky">
            Verlorengegangene Pakete können <span style="font-weight:bold;color:rgb(206, 99, 1)">erneut gesendet</span> werden (<span style=
            "font-weight:bold;color:rgb(206, 99, 1)">Retransmission</span>).
        </td>
    </tr>

    <tr>
        <td class="tg-0pky">
            Der UDP <span style="font-weight:bold;color:rgb(206, 99, 1)">Header</span> besitzt eine Größe von <span style="font-weight:bold;color:rgb(206, 99, 1)">8 Bytes</span>. Es handelt sich um
            ein <span style="font-weight:bold;color:rgb(206, 99, 1)">leichtgewichtiges Übertragungsprotokoll</span>.
        </td>
        <td class="tg-0pky">
            Der TCP <span style="font-weight:bold;color:rgb(206, 99, 1)">Header</span> besitzt eine Größe von <span style="font-weight:bold;color:rgb(206, 99, 1)">20 Bytes</span>. Es handelt sich um
            ein <span style="font-weight:bold;color:rgb(206, 99, 1)">schwergewichtiges</span> Übertragungsprotokoll.
        </td>
    </tr>

    <tr>
        <td class="tg-0pky">
            UDP wird von <span style="font-weight:bold;color:rgb(206, 99, 1)">DHCP</span>, <span style="font-weight:bold;color:rgb(206, 99, 1)">TFTP</span>, <span style=
            "font-weight:bold;color:rgb(206, 99, 1)">SNMP</span>, <span style="font-weight:bold;color:rgb(206, 99, 1)">DNS</span>, <span style="font-weight:bold;color:rgb(206, 99, 1)">RIP</span> und
            <span style="font-weight:bold;color:rgb(206, 99, 1)">VoIP</span> genutzt.
        </td>
        <td class="tg-0pky">
            TCP wird von <span style="font-weight:bold;color:rgb(206, 99, 1)">HTTP/HTTPS</span>, <span style="font-weight:bold;color:rgb(206, 99, 1)">FTP</span>, <span style=
            "font-weight:bold;color:rgb(206, 99, 1)">Telnet</span> und <span style="font-weight:bold;color:rgb(206, 99, 1)">SMTP</span> genutzt.
        </td>
    </tr>
</table>

Könntest Du das evtl. einbauen? Bei mir geht das irgendwie schief :/

Geht leider nicht, da CSS-Klassen herausgefiltert werden. Und auch style-Deklarierungen.

Lösung: Einfach die Standard-Tabelle im Editor wählen. Die Grafik kann darunter stehen bleiben. So hat der Leser die Auswahlmöglichkeit.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community