Ein verbindungsorientierter Dienst baut vor der Kommunikation eine Verbindung zwischen Sender und Empfänger auf
und muss diese am Ende auch wieder lösen bzw. abbauen. Bei einem verbindungslosen Dienst wird keine Verbindung aufgebaut.
Jede Nachricht wird unabhängig von allen anderen gesendet.
Das TCP-Protokoll ist ein ist ein zuverlässiges, verbindungsorientiertes Protokoll. Zuverlässig bedeutet,
es überträgt den Bytestrom fehlerfrei vom Sender zum Empfänger.
Die darunter liegende Schicht, die Internetschicht, abreitet nicht zuverlässig,
also muss das TCP-Protokoll geeignete Fehlererkennungs- und Korrekturmechanismen anwenden.
Dabei wird der zu übertragende Bytestrom in einzelne Nachrichten, die so genannten Segmente,
zerlegt und mit einem Header versehen. Die Segmente werden dann an die Internetschicht weitergeleitet und von der Netzzugangsschicht übertragen.
Die Transportschicht des Zielhosts verbindet die Segmente wieder zu einem zusammenhängenden Ausgabestrom.
Der Zielhost sendet für jedes empfangene Segment eine Bestätigung.
Im Falle eines zerstörten Segments wird ein entsprechender
Fehlercode an den Quellhost gesendet und dieser muss das fehlerhafte Segment erneut übertragen.
Außerdem reguliert TCP den Datenstrom, damit ein langsamer Empfänger nicht mit zu vielen Nachrichten überschwemmt wird.
Das UDP-Protokoll ist ein unzuverlässiges, verbindungsloses Protokoll.
D.h. es wird keine Verbindung aufgebaut und der Empfänger sendet keine Bestätigung über dem Empfang der Daten.
Der Vorteil von UDP liegt in einer schnellen Übertragung mit geringem Verwaltungsaufwand.
UDP wird vor allem bei einfachen Anfrage/Antwort-Protokollen und bei Anwendungen mit eigenen Fehlerkorrekturmechanismen verwendet.
UDP findet auch Anwendung, falls die Geschwindigkeit der Übertragung wichtiger als eine fehlerfreie Zustellung ist.
Dienste können nach Dienstqualität klassifiziert werden.
Verbindungsorientierte Dienste bieten den Vorteil der aktiven Fehlerkorrektur, sie sind also zuverlässiger hinsichtlich Übertragungsfehler.
Bei manchen Anwendungen sind die Verzögerungen durch Rückmeldungen jedoch inakzeptabel,
diese verwenden meist unzuverlässige Übertragungsdienste. ''Voice over IP'' und ''Video Streaming'' gehören dazu.
Angenommen, die Laufzeit eines Sprachpakets zu einem Computer beträgt 1/5s und dies wäre für Voice over IP
eine noch akzeptable Zeit. Falls ein Fehler auftritt, dauert die Rückmeldung jedoch mindestens ebenso lange und die korrekte Antwort nocheinmal.
Das würde eine Verzögerung von mehr als einer halben Sekunde zur Folge haben.
Die Sprache würde demzufolge bei jedem fehlerhaften Paket stocken.
Dahingegen ist die verlorene Information nicht so bedeutend, es entsteht nur ein kleines Knacken in der Leitung oder ein unverständliches Wort.
Höchstens in einem sehr schnellen lokalen Netzwerk könnte man sich den Luxus eines zuverlässigen,
verbindungsorientierten Dienstes erlauben. Hier treten allerdings Probleme bei Überbelastung des Netzwerks auf.
Aufgrund der für Echtzeitanwendungen hohen Übertragungszeiten im Internet,
sind unzuverlässige Dienste für Voice over IP die einzige Möglichkeit.
Dennoch ist es möglich, die Auswirkung der Übertragungsfehler zu reduzieren. Zum Beispiel durch spezielle Kompressionsverfahren,
die in den kritischen Bereichen der Sprache redundant sind,
kann man erreichen, dass Fehler mit hoher Wahrscheinlichkeit unwichtige Informationen zerstören.
Der grobe Wellenverlauf der Sprache muss redundant komprimiert sein, die Feinheiten für hohe Sprachqualität können
notfalls verloren gehen.