UDP und TCP Länge des Schreibbefehls

Aufrufe: 723     Aktiv: 19.11.2021 um 18:55

0

Hallo zusammen,

ich bin mir hier nicht sicher, ob ich die Frage richtig verstehe. Es geht um folgende zwei Fragen:

Kann der Empfänger feststellen, wie viele Bytes der Absender mit einem Schreibbefehl gesendet hat? Zwei Fragen, weil es einmal auf UDP und einmal auf TCP bezogen ist.

Ist damit die im Header aufgeführte Längenangabe gemeint oder was versteht man unter Schreibbefehl in diesem Fall. Bei UDP müsste die Antwort demnach JA sein, weil es dort ein Längenfeld gibt, das einzeigt, wie groß das Datagramm (Daten und Header) ist.

Bei TCP gibt es meines Wissens nach nur das Data Offset, das aber ja nur anzeigt, wie groß der Header ist und somit ab wo die Daten beginnen.

Oder ist damit etwas ganz anderes gemeint??

Danke schon einmal!

Diese Frage melden
gefragt

Student, Punkte: 56

 
Kommentar schreiben
1 Antwort
0

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.

Diese Antwort melden
geantwortet

Punkte: 30

 

Kommentar schreiben