ip - How to connect to an open tcp port on client machine from an unknown server? -


i have been reading lot different nat traversal techniques, still little unclear how works.

if open tcp port on client machine , send request arbitrary nonexistent server (which won't respond), client nat have open channel, correct? can use (unknown) computer @ different ip address access client port if know both public , private ip of client port number?

or nat check server packet coming , block since not same ip address original request client machine?

thanks in advance!

to answer question, need know little nat's mapping , filtering behavior. first let me state information nat's mapping behavior,

if send packet internal ip:port through nat's ip:port address nat creates map between internal , ip:port. other wise no 1 outside of nat can send anything.

there 4 types of nat,

full-cone nat: if sent packet internal ip:port through nat's ip:port out side host can send packet internal ip:port sending packet nat's ip:port.

address restricted cone nat: outside host can send packets internal ip:port sending packets nat's ip:port if internal ip:port @ least packet has been sent outside host's ip address through nat's ip:port. here outside host's port doesn't matter. ip address has same.

port restricted cone nat: same address restricted time out side host's port matters. @ least packet sent internal ip:port outside host's ip:port through nat's ip:port allow out side host send packets ip:port through nat's ip:port.

symmetric nat: mapping behavior little different others. previous 3 types of nats, internal ip:port no matter send data go through nat's same ip:port. symmetric nat different destination data go through nat's same ip different port. , port restricted cone, incoming packet allowed through nat if data sent outside host's ip:port.

so scenario if nat full cone nat 1 unknown knows nat's public ip:port sent packet unknown server, can send data through udp transport. other nat blocked did not send data outside host. tcp connection no 1 can send data if know private , public ip:port behind different nat. read details form answer.

read details on wiki.


Comments