Ich versuche zu verstehen, warum UDP-Lochen funktioniert.
- Angesichts Peers
A
,B
hinter einem NAT-Router undServer
mit offenem Port 80. A
sendet ein PaketServer
vom Port1234
. Dadurch öffnet der Router eine Route von / nachA:1234
undS:80
B
sendet ein PaketServer
vom Port4321
. Dadurch öffnet der Router eine Route von / nachB:4321
undS:80
An dieser Stelle A
sollte in der Lage sein zu senden direkt Pakete an B:4321
und B
sollte in der Lage sein , Pakete zu senden direkt an A:1234
.
Ich habe zwei Fragen:
- Ist mein Verständnis des UDP-Lochens korrekt?
- Warum überprüfen Router nicht, ob die IP-Adresse der Paketquelle übereinstimmt
Server
? Ist das nicht ein Sicherheitsrisiko?
UPDATE : Beantworte hier meine eigene Frage, da sie als geschlossen markiert ist. Das Lochen von NAT-Löchern funktioniert wie folgt:
- Angesichts Peers
A
,B
hinter einem NAT-Router undServer
. A
und eineB
Verbindung zuServer
und eine Liste der Ports sendet sie für abgehende / ankommende Verbindungen mit werden.- Angenommen,
A
Port1234
und Port werdenB
aufgelistet4321
, dann wirdA
ein Paket von Port1234
zuB
On-Port gesendet4321
. Dadurch öffnet der Router eine Route von / nachA:1234
undB:4321
. - Der Router von B blockiert die Anforderung stillschweigend, aber der Router von A hält die Verbindung offen und wartet auf eine Antwort.
B
sendet ein Paket von Port4321
zuA
Port1234
. Dadurch öffnet der Router eine Route von / nachB:4321
undA:1234
.A
Der Router von akzeptiert die eingehende Verbindung und denkt, dass dies eine Antwort auf Schritt 3 ist.- Wir sind fertig. Beachten Sie, dass wir während dieses Prozesses nur ausgehende Verbindungen von
A
und verwendet habenB
.
A
undB
kommunizieren direkt miteinander. Ich habe die Frage aktualisiert, um dies deutlicher zu machen.