小弟正在做一个关于P2P的软件,技术遇到很多障碍,来这里找下答案,希望大家来帮帮我啊!!!公司情况是这样的,我们公司现在有个外网IPxxx.xxx.xxx.70,子网掩码255.255.255.252,只划分了一个子网,并且NAT是Cone NAT,我采用的通信协议时UDP,有如下几个问题:1.路由器上的IP是xxx.xxx.xxx.70,默认网关是xxx.xxx.xxx.69,这两者区别是什么,如果数据包从内网发送到外网,并且从外网进入内网,怎么个走法?2.内网客户端访问内网服务器,用的是外网IP,即用192.168.100.186:2887访问xxx.xxx.xxx.70:8181,此时服务器记录下来的源地址是内网路由地址及NAT转换后的端口192.168.100.254:10000,这种访问数据包需要通过路由器发送到外网再回来吗?还是直接通过路由器回来?3.还是上面的情况,现在有两个内网客户端A B,我从xxx.xxx.xxx.70:8181取得对方的IP,A取得B的IP 192.168.100.254:10000,B取得A的IP 192.168.100.254:20000,如果A直接访问B访问不通,此时NAT映射表记录情况是怎样的,
然后B访问A也不通,此时NAT映射表记录情况又是怎样的?路由器是怎么个反映?这些问题小弟真弄不懂,来位大侠救救我把!
然后B访问A也不通,此时NAT映射表记录情况又是怎样的?路由器是怎么个反映?这些问题小弟真弄不懂,来位大侠救救我把!
路由器上的IP是xxx.xxx.xxx.70,默认网关是xxx.xxx.xxx.69。再说了 你把地址写清楚点么,IP地址分为
五类,这些东西你先要搞清楚吧,同一个网段内的网络前缀是一样。IP地址:网络号+子网号+主机号 如果有子网存在的话 否则只有1 3 ,判断有没有在同一个 子网里面,主要是通过子网掩码来判断写成二进制数(百度) 不清楚再问
这些我知道,我写的IP地址是外网IP,通过255.255.255.252划分子网,划分了一个子网,我内部PC访问内部Server采用外网IP地址,访问后Server记录下内网PC的nat映射后的外网IP地址,肯定经过路由器的,如果不经过的话可以发送,但是就是Server他不知道我内部PC机的内网IP啊,因为我是通过外网IP访问Server的
这篇文章我看过,其中有句重要的话理解不了.
The two clients will be
able to communicate with each other this way as long as the NAT
allows hosts on the internal network to open translated UDP sessions
with other internal hosts and not just with external hosts. We refer
to this situation as "loopback translation," 谢谢
http://www.cppblog.com/ivenher/articles/2682.html
2.- - 没看明白。。是想两个客户端之间通信还是干啥?
3.A要与B通信 A->S获取B的信息,同时S向B发送A要发送的请求,同时将A的信息告知B 由B->A发信息(信息被丢弃,但通路创建) 此时A向B发送信息便可以了