Oyun istemcileri bir sunucunun LAN'ında çalıştığını nasıl bilir?


18

Birçok çok oyunculu oyunda LAN oynama seçeneği vardır. Benim sorum olsa bir istemci bir sunucu LAN nerede olduğunu nasıl biliyor?

Düşünebileceğim tek yol

  1. Yayınları yayın adresi üzerinden gönderin. Bunun dezavantajı bazen farklı ağ ortamlarındaki yönlendiriciler veya anahtarlar tarafından filtrelenmesidir.
  2. Alt ağınızdaki her IP'deki bir sunucuya bağlanmayı deneyin. Bu, yavaş olma dezavantajına sahiptir (Özellikle ağ, IP'leri için 10.XXX.XXX.XXX kullanıyorsa) ve bir mini ddos ​​saldırısı içerir, ancak filtrelenmez.

Oyunlar bunu özellikle diğer ağ ortamlarında nasıl yapar?

Yanıtlar:


32

LAN oynamalı oyunlarda, yapılacak en standart şey, istemcilerin sunucuları bulmak için yayın paketleri göndermesidir. (İstemci bir yayın gönderir, sunucu istemciye doğrudan bir yanıt gönderir)

Genel olarak, istemci her biri yaklaşık bir saniye arayla üç ila beş yayın mesajı gönderecek ve daha sonra herhangi bir yanıt duymamışsa sunucunun olmaması gerektiğine karar verecektir. Birden fazla paket göndermek, hizmet keşfini biraz daha paket kaybına karşı toleranslı hale getirir (ancak LAN'larda oldukça nadirdir) ve aralarında zaman olması, diğer ağ trafiğini çok fazla kesintiye uğratmasını engeller.

Kimse (bildiklerime göre) 2 numaralı seçeneğinizi yapmaz, çünkü LAN'ın performansını düşürür (veya bağlantı girişimlerini sendelemeniz oldukça uzun sürecektir).

Ancak, yayının yerel LAN tarafından filtrelendiği durumlarla başa çıkmak için (oldukça alışılmadık, ancak duyulmayan), çoğu oyun oyuncuların bağlanmak için doğrudan bir IP adresi girmesine izin verecektir. Bu, bu tür durumlarda oyuncuların otomatik olarak bulabilecekleri yayın yapmasalar bile bilinen bir sunucuya bağlanmasına olanak tanır.

İnternet üzerinden oyunlar için, istemciler statik bir meta sunucuya doğrudan bilinen bir istek gönderir. Bu sunucu , bilinen geçerli sunucu örneklerinin adreslerini yanıtlar. Sunucular, aynı şekilde, istemcilerin kendilerine yönlendirilebilmesi için kendi konumlarıyla ilgili bilgi vermek üzere bu meta sunucuyla bağlantı kurar. Bununla birlikte, NAT karmaşıklıkları nedeniyle, bu yaklaşım genellikle bir LAN içinde barındırılan sunucular için çalışmaz. Bu nedenle bu tür bir yaklaşım genellikle LAN oyunları için kullanılmaz.

Ek not: İnternet oyunlarının önce bir nokta sunucusuyla iletişim kurması yaygın bir uygulamadır . Puan sunucusu oyuna meta sunucuyu hangi adresi bulabileceğini söyler ve bu da sunucuların nerede bulunabileceğini söyler. Nokta sunucuları genellikle (kesinlikle her zaman olmasa da) basit bir web sunucusu olarak uygulanır ve bu sistemin oyuna sabit kodlanmış bir adresi olan tek parçasıdır. Bu, oyun geliştiricilerin meta sunucularını gerektiği gibi bir makineden diğerine, sadece nokta sunucusu tarafından döndürülen adresi güncelleyerek hareket ettirmelerini sağlar. Nokta sunucunun, kullanıcıları sunucu yüküne veya coğrafi yakınlığa bağlı olarak farklı meta sunuculara göndermesini sağlayarak basit bir yük dengeleme veya bölge değiştirme biçimi uygulamak için de kullanılabilir.


2
Size + 1'ledim efendim, bu benim de birkaç sorumu yanıtladı.
11'te Raine

2
+1, Yayın, aslında # 2 yapmak için doğru yol olduğu gibi gitmenin yoludur, hehe .. Bu, bir şey dinleyip dinlemediğini görmek için birden fazla IP ile iletişime geçerek yayın yapmak içindir.
James

Evet, yayınla ilgili tek sorun, yayını tüm LAN segmentleri arasında yaymayan belirli (özellikle büyük şirket) LAN'lardır. Gelecekte, çok noktaya yayın muhtemelen bunu yapmanın yeni yolu olacaktır ve tüm LAN segmentlerinde otomatik olarak çalışmalıdır. Ancak şu anda, çok noktaya yayın için uygun yönlendirici desteği, yayının yerini almaya güvenemeyecek kadar sivilceli. Birkaç yıl daha verin ve sonunda işler düzelebilir.
Trevor Powell

Yayını desteklemeyen şirket ağlarıyla birkaç kez karşılaştığımda, genellikle arızalı ekipmanların (bazen yönlendiricinin ürün yazılımının yükseltilmesiyle düzeltildi) neden olduğu her türlü diğer yönlendirme sorununu buldum. Yayın yerel bir LAN bölümünde çalışmıyorsa, kasıtlı olma olasılığı düşüktür.
Randolf Richardson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.