Ist TCP ein synchrones, oder asynchrones Protokoll?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die Kommunikation von TCP ist synchron, während UDP asynchron kommuniziert. Synchron bedeutet, dass beide Kommunikationspartner aufeinander warten und sich so gegenseitig blockieren können. Beim TCP wird dies durch die ACKs realisiert.

Ich vermute asynchron, weil die Hosts keine synchronisierten Clocks haben und es keine festen time slots gibt in denen Bits übertragen werden.

Du verwechselst hier synchrone Kommunikation mit synchroner Datenübertragung. Für die synchrone Datenübertragung benötigst Du einen gemeinsamen Takt. Das hat aber mit TCP nichts zu tun, weil die Datenübertragung den unteren Schichten des OSI-Modells obliegt.

Ich weiß nicht, was Du mit asynchron meinst, aber bei TCP ist garantiert, dass die Pakete in der richtigen Reihenfolge am Zielgerät ankommen.

Magst Du vielleicht genauer beschreiben, wo Deine Frage genau drauf abzielt?

javaprog 
Fragesteller
 27.08.2022, 16:43

Damit ist die Art der Datenübertragung gemeint. Wurde bei uns in der Vorlesung im Prinzip so wie auf Wikipedia definiert.

Asynchrone- und synchrone Datenübertragung.

0
flauski  27.08.2022, 16:48
@javaprog

OK, wenn es darum geht, wäre es per Definition asynchron, da Pakete rausgeschickt werden, bevor der Empfänger antwortet.

0
franzhartwig  27.08.2022, 16:59
@javaprog
Damit ist die Art der Datenübertragung gemeint

Schau mal in meine Antwort. Mit der Datenübertragung hat TCP nichts zu tun. TCP ist es egal, ob die Daten synchron übertragen werden (z. B. per Frame Relay) oder asynchron (z. B. per Ethernet). Ich gehe davon aus, dass es in der Fragestellung um synchrone bzw. asynchrone Kommunikation geht.

1
franzhartwig  27.08.2022, 17:05

Dieser Beitrag bei Stackoverflow bezieht sich auf die Realisierung der Sockets bei der Programmierung. Gemäß https://dasdev.de/vorteil-von-synchron-vs-asynchron-in-tcp-socket-verbindung/ lässt sich das (auch) bei TCP sowohl synchron als auch asynchron realisieren - beides mit Vor- und Nachteilen.

0
franzhartwig  27.08.2022, 17:21
@LUKEars
oder ist hier eigentlich das Medienzugriffsverfahren gemeint? dafür ist TCP ja zu weit oben im ISO/OSI 7 Schichten Modell... Medienzugriff ist wohl Schicht 1... oder?

Nein, Medienzugriff ist OSI-Schicht 2. MAC steht für Media Access Control, zu Deutsch Medienzugriffssteuerung. Schicht 1 ist die reine Bitübertragung.

TCP ist Schicht 4?

Korrekt, ebenso wie UDP.

0
franzhartwig  27.08.2022, 17:23
@LUKEars
ich meinte wohl den ersten Satz in der Antwort...

Den darf man aber nicht aus dem Kontext ziehen. Die Frage zielt ganz klar auf die Socket-Programmierung, daher ordne ich die Antwort sinnigerweise auch in diesen Kontext ein.

0
franzhartwig  27.08.2022, 17:44
@LUKEars
geht TCP überhaupt ohne socket

Frag mich nicht. Ich habe von Programmierung keine Ahnung. Ich meine, dass "Socket" im Kontext der Programmierung etwas anderes meint als "Socket" im Kontext Netzwerke, wo das die Kombination von IP-Adresse und Port ist. In diesem Kontext geht TCP natürlich nicht ohne Socket.

Aber am Ende ist es egal. Man kann den Socket asynchron oder synchron programmieren, beides ist möglich. Und trotzdem hat das weder mit synchroner Datenübertragung noch mit synchroner Kommunikation zu tun.

Es sind also mittlerweile drei Kontexte, in dem hier der Begriff synchron auftaucht:

  • Datenübertragung
  • Kommunikation
  • Socket-Programmierung in C#
0