"Pure" Peer2peer og routere med NAT
Hej Eksperter...Jeg ved ikke om dette er det rigtige forum til mit spørgsmål.
Jeg er i gang med at udvikle et "pure" p2p program i java fra bunden af med socket's. Idee'en er at jeg gerne vil holde mig til "pure" frem for at bruge en central server til "discovery". Men så opstår der nogle problemer når nu programmet skal fungere over internettet. Hvordan får man eks. kontakt til klienter inde bag en router/firewall som eks. bruger NAT?
Kan det overhovedet lade sig gøre at lave et "pure" p2p som fungere over internettet?
Jeg har kort læst at Bearshare og LimeWire er "pure" men har ikke kikket nærmere på dem om hvor vidt de benytter en discovery-server som Overnet eks. gør det.
Hvis vi forestiller os at en klient (A) på internettet vil downloade fra klient (B) som befinder sig bag en router med NAT. Bag denne router findes eks. yderligere 49 andre klienter.
Hvis klient (A) vil i kontakt med Klient (B) så er det jo adressen på B's NAT-router som (A) skal sende pakker til! NAT benytter jo som bekendt kun een IP-adresse til alle sine klienter "ud-ad-til"! Hvordan får klient (B) pakkerne fra (A)? A sender jo til een IP-adrese som repræsenterer 50 klienter bag routeren.
Jeg ved godt at man kan sætte nogle ting i en NAT-router som gør at pakker som indgår på en bestemt port kan "forwardes" til en af de 50 klienter bag routeren, men det er da noget som manuelt skal sættes op ikke?
Kort sagt hvordan kan man ved hjælp af "pure" p2p få kontakt mellem klienter som er bag NAT-routere?
