Risposte NAT e UDP per impostazione predefinita


0

Se invio pacchetti UDP dalla macchina A con porta locale M dietro un NAT alla porta N della macchina B, dove la macchina B è al di fuori del NAT (altrove su Internet), posso ragionevolmente aspettarmi che NAT passi i pacchetti UDP ricevuti dalla macchina B ( porta locale N) di nuovo alla porta M sulla macchina A, senza richiedere il port forwarding manuale sul NAT?

So che la risposta sarebbe sì se il router è configurato per preservare le porte di origine quando possibile e tale porta di origine non è in uso. Ma la mia domanda è più sulla probabilità. La maggior parte delle volte, la maggior parte dei router ha questa configurazione attivata per impostazione predefinita o meno.

In altre parole, se realizzo un gioco multiplayer per usare UDP, sarebbe ragionevole aspettarsi che funzioni sui computer della maggior parte delle persone (anche se sono difficili da usare, la maggior parte delle persone ha dei router)?

Risposte:


0

Le query DNS si comportano così: pacchetto UDP sulla porta 53 dal tuo computer a Internet e viceversa.

Tuttavia è solo in una cosa di "risposta-risposta" e la risposta non dovrebbe essere ritardata nel tempo, altrimenti andrà persa.

In un gioco, ci saranno molti pacchetti dal server ai client. Sarà necessario implementare un polling costante dello stato del server per farlo funzionare. Ricorda: una domanda - una risposta.

Tecnicamente, potresti implementare il tuo gioco in questo modo senza dover aprire le porte sui router


Bene, se il gioco è fps, le prestazioni dovrebbero essere migliori perché non dovrebbe preoccuparsi se i pacchetti vengono effettivamente ricevuti correttamente. Continuerà semplicemente a inviare più pacchetti con nuove coordinate, quindi anche se manca un pacchetto va tutto bene. Tuttavia con tcp / ip se un pacchetto fallisce, c'è un ritardo perché reimposta tutti i pacchetti da 1, di 2, di 4, ecc. Almeno questa è la mia comprensione. Correggimi se sbaglio. Ovviamente il gioco funzionerà con 2 protocolli tcp e udp per le cose a cui importa della consegna al 100% e cose che non lo fanno
Aleks

Sarebbe una prestazione migliore se non fosse necessario effettuare il polling, ma dovrebbe essere sufficiente per la maggior parte dei giochi.
NuTTyX

Diciamo che nel gioco qualcuno si muove. La mia idea è di fare in modo che ogni 2-20 ms invii informazioni al server con le nuove coordinate, allo stesso tempo, il server risponderà con informazioni su ciò che anche tutti gli altri giocatori hanno spostato e confermerà che la mossa è stata eseguita correttamente. In questo caso, anche se un pacchetto o 2 mancano, va tutto bene. Ci sarà anche una connessione tcp parallela per assicurarsi che sia tutta viva, se la connessione TCP si interrompe, tutti vengono avvisati che qualcuno è disconnesso. Ma per il movimento veloce avanti e indietro, dovrebbe essere più veloce con UDP rispetto a tcp o così sembra.
Aleks,

Mai considerato TCP per gli aggiornamenti del gioco. Usa UDP e dimentica di aprire le porte sui router
NuTTyX

Bene, la mia domanda originale è se la maggior parte dei router andrà bene con la traduzione di indirizzamento quando i pacchetti udp provengono dal server al client. La risposta dovrebbe essere più o meno sì o no per la maggior parte del tempo sulla maggior parte dei router.
Aleks,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.