2013-06-04 12 views
14

Bunu yapmak için önerilen bir yol hakkında bir makale okudum. Eğer doğru bir şekilde hatırlarsam, araştırmacılar birbirleriyle HTTP paketleri göndererek başka bir ağdaki başka bir ağdaki bir istemci ile bağlantı kurmayı başarılı bir şekilde gerçekleştirdiler (Alice, Bob'un bir web sunucusu olduğunu iddia ederken Bob bir HTTP web sunucusu olduğunu iddia ediyor).Bağlantı noktası iletme veya bir merkezileştirilmemiş sunucu olmadan eşler arası bağlantıyı nasıl oluşturursunuz?

ben mantıklı olmadığından emin değilim, ama makale bulabilirsiniz ya da herkesin nasıl bir merkezi sunucu veya bağlantı noktası yönlendirme olmadan birlikte iki müşteri bağlamak için başka fikirleri var mı nerede bilen var mı?

Bu mümkün mü?

Düzenleme: Program dinler hem bilgisayar ve liman IP'leri bilemez.

+0

P2P http://en.wikipedia.org/wiki/UDP_hole_punching ile arşivine, ancak merkezi bir sunucu olmadan, diğer üyelerin IP'leri bulamıyorum. – Deepsy

+0

@Deepsy, her iki tarafın IP ve portunu biliyor olsanız bile mi? – mwaboff

cevap

21

Bu mümkündür. Sorunuza en az 2 parça bakın. (Bu, HTTP paketi olmayacak. Bu, daha sonra daha karmaşıktır.)

İlk önce, merkezi olmayan P2P ağı adı verilen bir kavram hakkında konuşuyor olabilirsiniz. Merkezi olmayan eşler arası ağın ardındaki ana fikir, böyle bir ağdaki düğümlerin merkezi sunucu veya sunucu grubu gerektirmeyeceği gerçeğidir. Zaten bildiği gibi

, en yaygın merkezileşmiş eşler arası ağlar alışverişinde bulunmak ve düğümler arasında birleştiricisi korumak için böyle bir merkezi sistem gerektirir. Temel kavram, bağlantı ve kullanılabilirliğini korumak için ağdaki diğer düğümler hakkında bilgi almak için yeni düğümün ana sunuculardan birine bağlanacağı gibi. Merkezi sistem, ağ durumunu, ilgili bilgileri ve birbirleri arasındaki merkezi koordinasyonu sürekli olarak senkronize eden sunucular aracılığıyla korunur.

Merkezi olmayan ağ, diğer taraftan, herhangi bir yapı ya da önceden belirlenmiş bir çekirdeğe sahip değildir. Bu eşler arası model ayrıca yapılandırılmamış P2P ağları olarak da adlandırılır. Herhangi bir yeni düğüm, orijinal bağlantıyı "ana" düğümünden kopyalar veya devralır ve kendi listesinden fazla mesaiyi oluşturacaktır. Bu tür yapılandırılmamış ağların çeşitli yerelleşme kategorileri vardır.

İlginçtir ki, merkezi komuta ve kontrol sisteminin olmayışı modern zararlı yazılım botnet için seçim bir çözüm haline getirir. Harika bir örnek, Pasif P2P Monitor (PPM) olarak adlandırılan Storm botnet olabilir. PPM, virüs bulaşmış ana makinenin güvenlik duvarı veya NAT'ın arkasında olup olmadığına bakılmaksızın, virüslü konakları bulup eşler listesi oluşturmayı başardı. Wikipedia'nın Storm botnet makalesi ilginç bir okumadır. Fırtına botnet ağı tarafından uygulanan mükemmel kavramsal analiz ve teknikleri sağlayan Towards Complete Node Enumeration in a Peer-to-Peer Botnet adında büyük bir işbirliği çalışması da vardır.

'dan ikincisi, UDP delme deliğinden bahsediyor olabilirsiniz. Üçüncü bir buluşma sunucusu aracılığıyla 3. yorum ana bilgisayarını kullanarak NAT yönlendiricisi/ağ geçidinin arkasındaki 2 ana bilgisayar arasındaki bağlantıyı sürdürmek için kullanılan bir teknik veya algoritmadır.

Bryan Ford, Pyda Srisuresh ve Dan Kegel tarafından harika bir makale var: Peer-to-Peer Communication Across Network Address Translators.

+0

İyi yazılmış ve kaynaklı bilgiler için teşekkür ederiz.UDP deliği delme işlemine daha fazla baktığımda bunun aradığım şey olduğunu fark ettim (bir sebepten dolayı merkezi bir sunucuya ihtiyaç duyduğumu düşündüm ama şimdi IP ve port bilgisine sahip olduğumu fark ettim). – mwaboff

+1

Bir şey değil. Yardım edebileceğime sevindim. – PSS

+1

SO akıllı akıllar var. – frostymarvelous

İlgili konular