看看网上的介绍很好懂~但是也有很多问题~
比如: 有一个拥有公网(Pub) IP的主机S,一内网主机C. 现在 S要通过NAT与C通信.
如果S直接发信息给C(经过NAT),因为S并不知道C在NAT上对应的Pub Ip和port,发送肯定不成功~这时,需要服务器通知C,要求C先向S发送一个信息,这样,NAT就记录了C的信息(建了Session),然后,S再向C发送消息,NAT搜索记录就可以找到C对应的Pub IP和port,可以发送了!
问题:"需要服务器通知C,要求C先向S发送一个信息"----这里的'通知C'是由自己写的'p2p server'程序发出的,还是由NAT自动完成的?
如果是由的'p2p server'程序发出,那server程序岂不也要记录NAT上的信息?这又该如何实现?
如果是NAT自动完成的,那么我想不出p2p Client 和 p2p server 有什么不同?