Den här artikeln är en fri översättning av ett av inläggen i
Med tillstånd av författaren (liksom för tydlighetens och intressets skull) färgade jag den med länkar och kompletterade den med lite personlig forskning.
Inledning
Minst en användare av det anslutande paret måste vara i aktivt läge vid denna tidpunkt. NAT-traverseringsmekanismen kommer att vara användbar när det aktiva läget inte är konfigurerat på någon sida. Detta beror vanligtvis på att en brandvägg eller NAT-enhet blockerar inkommande anslutningar.
Om båda klienterna är i aktivt läge
Den initierande klienten skickar ett kommando som innehåller sin egen IP-adress och port
Om en av klienterna är i passivt läge
Genom navet, en passiv klient A skickar ett kommando
Som en server S i fallet ovan finns en DC-nav
Om båda klienterna är i passivt läge på
Kunder bakom olika NAT A и B gick med i navet S.
Så här ser anslutningen till navet ut från klientsidan A
Hubben accepterar anslutningar på port 1511. Klient A gör utgående anslutningar från sitt privata nätverk via port 50758. Hubben ser i sin tur adressen till NAT-enheten, arbetar med den och sänder den till klienter enligt deras identifierare.
kund A skickar till servern S meddelande som ber om hjälp med att ansluta till en klient B.
Hub: [Outgoing][178.79.159.147:1511] DRCM AAAA BBBB ADCS/0.10 1649612991
Även i passivt läge, klienten B, efter att ha fått det här kommandot, måste rapportera sin privata port som används för att ansluta till hubben via NAT.
Hub: [Incoming][178.79.159.147:1511] DNAT BBBB AAAA ADCS/0.10 59566 1649612991
Efter att ha mottagit denna information kunden A försöker omedelbart upprätta en förbindelse med klienten B och rapporterar sin egen privata hamn.
Hub: [Outgoing][178.79.159.147:1511] D<b>RNT</b> AAAA BBBB ADCS/0.10 <b>50758</b> 1649612991
Vad är intresset? Intresset är att flytta ändpunkten för samma anslutning genom att skapa en ny anslutning till en allmän adress genom en redan använd privat port.
Bingo!
Naturligtvis, i detta fall klienten NAT B har all rätt att avslå den första anslutningsbegäran från en klient A, men hans egen begäran rusar in i "hålet" som skapas av just denna anslutning, och anslutningen upprättas.
Illustration lämplig för hela processen med varningen att
Epilog
När du skriver (original) artikeln arbetar ungefär hälften av DC-klienterna i passivt läge. Det innebär att en fjärdedel av alla möjliga kopplingar inte kan göras.
Ytterligare
Källa: will.com