关于内网NAT打洞的问题
我想问问,为什么TCP和udp编程,会遇到内网打洞的问题?
我用java编写了一个聊天程序,基于UDP,突然发现了问题,就是外网机无法与内网机通信,后来才发觉原来是需要打洞的,但是发觉,打洞不是什么很容易的事情,C++的代码老长老长的。。。。。。,java的相关代码没找到
问题1:
既然内网的是需要打洞才能通信的,那QQ,msn,甚至是瑞星的升级程序,要TCP通信的,它们都会打洞的?
问题2:
ping包,既ICMP包,发出去,能够收回,为什么ping包不需要打洞?很奇怪啊,还有http,ftp它们为什么就不需要打洞?
问题3;
实现TCP打洞,或者让内网的用户能和外网的完全正常通信,有没有稍微简单点的方法?
大家挑自己知道的问题答吧,谢谢