+3 Daumen
303 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
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 sofort und kostenfrei

x
Made by a lovely community