Hallo Daniela,
du hast schon die richtigen Schlüsse gezogen.
TL;DR: Bei UDP geht das, bei TCP nur durch Einsatz eines Paketierungsmechanismus
Bei UDP versendet man Datagramme, bei denen die Menge an Daten pro Datagramm bekannt ist. Wenn der Sender mehr Daten schreiben will als in ein Datagramm passen, müssen die Daten auf mehrere Datagramme aufgeteilt werden. Der Empfänger bekommt bei einem "Lesebefehl" immer ein Datagramm mit allen darin enthaltenen Daten. Daher kann der Empfänger daraus ableiten wie viele Daten der Sender pro Schreibbefehl versendet hat.
Im Gegensatz dazu verwendet TCP einen Datenstrom. Der Sender kann quasi beliebig viele Daten schreiben und diese werden von TCP in der richtigen Reihenfolge zum Empfänger gesendet. Der Empfänger kann aber beim Lesebefehl nur sagen wie viele Daten er aus dem eingehenden Datenstrom lesen möchte. Falls der Empfänger wissen möchte wie viele Daten der Sender pro Schreibvorgang gesendet hat, muss ein Paketierungsmechanismus auf TCP aufgesetzt werden, welcher z.b. in einem weiteren Header die Länge der folgenden Nutzdaten angibt.
Punkte: 30