Ist TCP ein synchrones, oder asynchrones Protokoll?
Ich vermute asynchron, weil die Hosts keine synchronisierten Clocks haben und es keine festen time slots gibt in denen Bits übertragen werden.
Allerdings werden bei TCP SYN-Flags übertragen, weshalb ich mir nicht sicher bin. Kann das jemand aufklären?
3 Antworten
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?
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.
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.
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? TCP ist Schicht 4?
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.
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.
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#
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.