TCP Geschwindigkeit/UDP verlust
Übersicht

![]() |
Jan_Ehemaliger AdminBetreff: TCP Geschwindigkeit/UDP verlust |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
welches anwendungsgebiet? spiel? trojaner? ![]() |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Spiel, aber die Daten müssen ankommen
@ ION lol, kein Troyaner. |
||
between angels and insects |
IonPainter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tcp! | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie siehts aus mit nem Chat, Rene hatte gesagt, über UDP kommt blos jede 2. Nachricht an. | ||
between angels and insects |
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ähm, wie kommt man mit TCP durch nen Proxy durch? | ||
between angels and insects |
IonPainter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oho, würde es sich lohnen, Per UDP zu Testen, ob alles da ist, oder eher nicht? | ||
between angels and insects |
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
udp ist schneller weil:
![]() ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, dann werde ich wohl auf TCP setzten, Danke Ion. | ||
between angels and insects |
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group