TCP Geschwindigkeit/UDP verlust

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Jan_

Ehemaliger Admin

Betreff: TCP Geschwindigkeit/UDP verlust

BeitragDo, Nov 25, 2004 8:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hiho,

Ich bin gerade dabei zu entscheiden, ob ich TCP oder UDP benutzte.
Ich hbae gehört das bei I-net ver bindungen man für Wichtige DAten UDP vergessen kann.

Nun wollte ich nachfragen, wielangsam TCP ist, und wieviel verlust bei UDP entsteht.
between angels and insects
 

IonPainter

BeitragDo, Nov 25, 2004 10:06
Antworten mit Zitat
Benutzer-Profile anzeigen
welches anwendungsgebiet? spiel? trojaner? Wink

Jan_

Ehemaliger Admin

BeitragDo, Nov 25, 2004 10:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Spiel, aber die Daten müssen ankommen

@ ION lol, kein Troyaner.
between angels and insects
 

IonPainter

BeitragDo, Nov 25, 2004 10:22
Antworten mit Zitat
Benutzer-Profile anzeigen
tcp!

Jan_

Ehemaliger Admin

BeitragDo, Nov 25, 2004 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie siehts aus mit nem Chat, Rene hatte gesagt, über UDP kommt blos jede 2. Nachricht an.
between angels and insects
 

getlose

BeitragDo, Nov 25, 2004 10:50
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, soviel ich weiß wird bei tcp automatisch
geprüft ob die nachricht (oder was auch immer)
angekommen ist, bei udp wirst dir wohl
ne eigene funktion coden müssen. (checksumme
prüfen usw.)

hab aber auch nich so die ahnung davon,
müsste mal jemanden finden mit dem ich
das n bissel testen kann. :)

Jan_

Ehemaliger Admin

BeitragDo, Nov 25, 2004 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, wie kommt man mit TCP durch nen Proxy durch?
between angels and insects
 

IonPainter

BeitragDo, Nov 25, 2004 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
es kommt fast jede nachricht bei udp an aber eben nur fast! jede 2te ist unrealistich, du hast vllt 1-2% Verlust...

Jan_

Ehemaliger Admin

BeitragDo, Nov 25, 2004 12:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Oho, würde es sich lohnen, Per UDP zu Testen, ob alles da ist, oder eher nicht?
between angels and insects
 

getlose

BeitragDo, Nov 25, 2004 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
kommt ganz darauf an was du machen willst. also bei nem
chat-programm wäre es ganz gut wenn jede nachricht ankommt,
bei nem shooter wo ununterbrochen die position usw. eines
players gesendet wird ist es fast egal, da man davon ausgehen
kann das die nächste nachricht ankommen wird und somit
korigiert wird...

Jan_

Ehemaliger Admin

BeitragDo, Nov 25, 2004 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
@Getlose, ja ist klar.

Es war so gemeint,
Ist es schneller, selber abzufragen unter UDP, Ob angekommen,
Oder ist es schneller, TCP zu nutzten?
between angels and insects
 

getlose

BeitragDo, Nov 25, 2004 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, also ich denke mal das wird in etwa genauso schnell wie
tcp sein wenn du in udp (wie es tcp auto. macht) dann noch
die checksumme anforderst. tcp ist ja im grunde genommen
nur "komfortables udp" da man ja nix selber machen muss :)
 

IonPainter

BeitragDo, Nov 25, 2004 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
udp ist schneller weil:

Arrow du nur einen 8 byte großen header hast (tcp hat mehr als das doppelte)
Arrow nicht immer zwangsläufig ein prüfpaket zurückgesschickt wird

bei bedarf machste dir dein prüfpaket halt selber...

für chat, strategiespiel, u.s.w. wo es nicht so sehr auf speed ankommt ist tcp trotzdem empfehlenswert da aussedem die nachrichten immer in der rehienfolge ankommen wie sie auch abgeschickt wurden.

Jan_

Ehemaliger Admin

BeitragDo, Nov 25, 2004 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, dann werde ich wohl auf TCP setzten, Danke Ion.
between angels and insects

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragDo, Nov 25, 2004 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
TCP hat aber einen EXTREMEN Nachteil - zumindest wenn du damit ein "schnelles" Spiel schreiben willst. Also einen Shooter oder sowas:
Die TCP Routinen halten dein Programm komplett an. Das heisst: Wenn z.B. eine TCP Nachricht nicht ankommt, dann wird dein Programm solange angehalten bis nach dem x-ten Sendeversuch endlich ein OK vom Empfänger gekommen ist.
Das ist bei 2 Spielern in der Regel noch nicht tragisch. Aber spätestens bei mehr Spielern wird das zu einem richtigen Problem. Vor allem wenn die Pings schlecht sind musst du dann damit leben, dass das gesamte Spiel dank TCP ordentlich ruckelt.

Es gibt schließlich nicht umsonst so komplexe UDP Libs wie BlitzPlay die ein sicheres Übertragen mit UDP möglich machen. Denn da hält BB dann nicht einfach an um auf die Nachrichten zu warten!

Ich kann das hier so behaupten, da ich mit CS2D quasi alle Möglichkeiten durchprobiert habe. DirectPlay, UDP ohne sichere Übertragung, TCP, UDP mit sicherer Übertragung. Und bei letzterem ist es auch geblieben.
Und man kann nicht einfach sagen, dass so viel % von UDP Nachrichten ankommen und so viel % nicht. Das hängt von der "qualität" (Ping, Bandbreite, Auslastung) der Verbindung und wahrscheinlich noch von vielen anderen, mir unbekannten und mysteriösen Faktoren ab!
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com

TheShadow

Moderator

BeitragDo, Nov 25, 2004 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Also soweit ich weiß benutzt bittorrent udp für datenübertragung - und das sind locker einige Gigabyte. Warum kommen dann die Daten gut an? Ganz einfach, weil da jeder block eine eigene checksumme bekommt (und alle checksummen werden zuerst natürlich am anfang über TCP übertragen)

bei einem shooter würde ich das per udp machen und zusätzlich eine checksumme mitschicken (crc32)... falls, es nicht mit checksumme nicht passt, dann sollte man die spielerposition nicht ändern... andernfalls aktualisieren...

bei chat sollte man tcp nehmen
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group