Artariel Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 öncelikle bildiğim ya da bildiğimi sandığım şeyleri söyleyeyim. udp: ben attım, tutarsan tuttun protokolü. yani paket kesin gönderiliyor (?) ama alıcı alabiliyor mu alamıyor mu. bildiğim kadarıyla olay bu. recv fonksiyonu yalnızca tek sefer çalışıyor, alamadığın veriler gg peki oyunda veya malum programda gönderilebilecek maksimum paket boyunu biliyorsak ve buna göre receive yapıyorsak güvensiz olan taraf neresi ? sonuçta packet loss olayı tcpde de yok mu
Mr_Hand Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 packet loss tcpde de var da udpde paketi yollayanın losstan haberi olmuyo.
Genel Yönetici GERGE Mesaj tarihi: Ağustos 22, 2012 Genel Yönetici Mesaj tarihi: Ağustos 22, 2012 O heryerde var ama oyun uynarken çok büyük bir fark yaratmaz ekstem bir sorun olmadığı sürece.
Fly Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 hayir udpnin karsi tarafa gidip gitmeyecegini gitse bozulmadigini bilemezsin, yollayan adam paket yolladigini bilir ama alici taraf udp dinliyorsa paket kendine ulastiginda bilir sadece receive sana tek bir pakedi donduruyor bufferda bekleyen, kalani cope atmiyor tekrar receive yapacaksin cope giden sey receive'in uzerinde calistigi paket 100 byte buffer verirsen 65kbytelik paket sizlere omur olmali, error veriyor truncate ettigine dair ama yarim pakedi de imha ediyor olmasi lazim udpyi ne amacla dusundugunu soylersen daha net bisey diyebiliriz
Eralpb Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 TCP'de packet loss olmaz. Layer of abstractionlar var, kablodaki elektrik sinyali -> ethernet protokolü -> ip protokol -> tcp protokolü. IP protokolünde veya altında packet loss olsa bile TCP'nin amacı bunları application layer'a taşımamaktır, ayrıca gönderilen tüm paketlerin tamamen ve sırayla alınmasını garanti eder. UDP ise gönderirsin; alabilir, almayabilir, eksik alabilir, out of order alabilir. O yüzden position falan udp ile gönderilir bi paket'i alamazsan bile 1 ms sonra yenisini alırsın oyuncu farketmez. recv ile 1 char okudun bufferda 10 char vardı 9u gitti diye bir olay olduğunu sanmıyorum ama emin değilim.. almaktan kastım buffera girmesi yoksa recv değil
di Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 Eralp yazidigini cok ufak duzelteyim, package loss zaten TCP duzeyinde olmaz (olur mu lan yoksa ? kendi kafami karistirdim. heh). Gerisi anlattiginiz gibi, TCP 3-way handshake ile iletisimin sorunsuz oldugunu kontrol eder, UDP kontrol etmez. Saldim cayira mevlam kayira misali gonderir paketi, basina ne geldigini sallamaz.
Artariel Mesaj tarihi: Ağustos 22, 2012 Konuyu açan Mesaj tarihi: Ağustos 22, 2012 reyou said: oyunlarda udp mi kullaniliyo? real time oyunlarda position update tarzı sürekli ve hızlı olması gereken şeyler udpye kalıyor işte
reyou Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 hmm mantikli, yanis tcp guvenilir ama yavas, udp hizli ama rizikolu
tiLi Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 KHaRoN said: google: three way handshake http://i.ytimg.com/vi/Bqsvli1AITE/0.jpg
Gladmir Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 Ikisinin de pitfall lari var. TCP header inda fazladan tasidigin checksum ve/veya diger transmission flag lerini udp icin impl edebilirsin, bkz. secure udp.
El-Barto Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 TCP'de stream olarak yolladigin icin, yolladigin paket gidene kadar tekrar deneniyo o yuzden online oyun icin gereksiz ve hatta cogu noktada zararli da. Mesela pozisyon, rotasyon gibi bilgileri yollarken her paketin yollanmasindan emin olmana gerek yok cunku arada kaybolan paketin senin objenin hareketine orani cok kucuk kalir. ama pozisyonu tcpyle yolluyo olsaydin kayip paketler olustukca beklemek zorunda kalirdi streamin. eger oyun real time degilse kabul edilebilir bi durum ama diger turlu udp kullanmak sart. ama chat, item alma, olme vs.. gibi tek seferlik ve oyunun gidisatina etki edecek mesajlari da udp olarak yollamak istersen 'reliable udp' die bi kavram var. karsi tarafin tcpde oldugu gibi kesin almasini sagliyo. tabii ek olarak tcpnin overheadinin udp'den cok daha buyuk olmasi da var.
nedanko Mesaj tarihi: Ağustos 22, 2012 Mesaj tarihi: Ağustos 22, 2012 TCP nin olayi reliable olmasi, yani tcp gonderdigin dataya guvenebilirsin. TCP nin bir cok fail safe mekanizmasi vardir. Ornegin paketi yollar sonra bir timer calistirir, o timer bitene kadar bi reply gelmezse bu paket kayboldu der ve tekrar atar. Data kaybi olusmaz. Tabii TCP de verifikasyonlar oldugu icin daha yavas bi teknolojidir. UDP de ise atar ama gitti mi gitmedi mi ugrasmaz, unreliable olur ama daha performansli calisir. O yuzden http ftp vs bildigin cogu sey TCP den calisir cunku data kaybi kabul edilmez. Oyunlar gibi data kaybinin kabul edilebildigi ve performansin onemli oldugu yerlerde UDP kullanilir. Error checking application layer a tasinir. Yani paket eksik geldiyse oyun ona gore duzeltme yapar. Kucuk ornek ve modern oyunlarda gecerli bile olmayabilir, teorik acidan al, basit ornek. Ornegin oyunda yuruyosun, birinci karedesin. 2-3-4-5 gidiyor. UDP de 3-4 u kacirdi ve 5 i aldi, seni 2 ye geri atar. (yoksa hile olur zaten) O yuzden ornegin, browser based oyunlar hic bi zaman web oyunlari kadar real time olamayacak (yeni protokoller icat edilmedigi surece) Tabii facebook ornegin dunyanin en zeki yazilimcilarinin bulustugu bir yer oldugu icin, orada custom cozumler gelistirilmis. Performansi artirmak icin, tcp yi kaldirmislar UDP ye gecmisler. Az paket kaybi olur demisler, cunku kendi datacenterlarimiz vs error verifikasyonunu application layer a tasiriz, %20-30 bile kar etsek kardir demisler. Fakat o kadar saglikli networklerde bile dusunuldugunden fazla cikmis kayip. Bu sefer onu iyilestirecek bazi TCP ozelliklerini (hepsini degil), kendi custom protokollerine tasimislar. Yani adamlarin kendine ozel TCP/UDP karisimi protokolu var ic iletisim icin.
Öne çıkan mesajlar