问一些关于路由与NAT的问题

a184485789 2011-06-28 12:50:32
小弟正在做一个关于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映射表记录情况又是怎样的?路由器是怎么个反映?

这些问题小弟真弄不懂,来位大侠救救我把!
...全文
103 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
萨拉嘿 2011-06-30
  • 打赏
  • 举报
回复
1.应由C->S 再S->C NAT映射后的两个客户端(同网段)的IP相同,端口号不同 服务器只需要向这个两个地址发送信息路由会发送给对应的客户端
2.- - 没看明白。。是想两个客户端之间通信还是干啥?
3.A要与B通信 A->S获取B的信息,同时S向B发送A要发送的请求,同时将A的信息告知B 由B->A发信息(信息被丢弃,但通路创建) 此时A向B发送信息便可以了
至尊贱客 2011-06-30
  • 打赏
  • 举报
回复
不会帮顶~~~~~~~~
a184485789 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hhc123 的回复:]
http://www.chinaunix.net/jh/29/402963.html
[/Quote]

这篇文章我看过,其中有句重要的话理解不了.
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,"

谢谢
hhc123 2011-06-29
  • 打赏
  • 举报
回复
a184485789 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 q198708wyp 的回复:]
我只能大概给你说一下啊,因为我刚毕业 有些东西我还是记得一点的不过,不是很拿的准。同一个网段内,包的发送是直接发送的不通过路由器的转发。
路由器上的IP是xxx.xxx.xxx.70,默认网关是xxx.xxx.xxx.69。再说了 你把地址写清楚点么,IP地址分为
五类,这些东西你先要搞清楚吧,同一个网段内的网络前缀是一样。IP地址:网络号+子网号+主机号 如果有子网存在的话 否则只有1 3 ……
[/Quote]

这些我知道,我写的IP地址是外网IP,通过255.255.255.252划分子网,划分了一个子网,我内部PC访问内部Server采用外网IP地址,访问后Server记录下内网PC的nat映射后的外网IP地址,肯定经过路由器的,如果不经过的话可以发送,但是就是Server他不知道我内部PC机的内网IP啊,因为我是通过外网IP访问Server的
Calm2049 2011-06-29
  • 打赏
  • 举报
回复
up.
q198708wyp 2011-06-29
  • 打赏
  • 举报
回复
我只能大概给你说一下啊,因为我刚毕业 有些东西我还是记得一点的不过,不是很拿的准。同一个网段内,包的发送是直接发送的不通过路由器的转发。
路由器上的IP是xxx.xxx.xxx.70,默认网关是xxx.xxx.xxx.69。再说了 你把地址写清楚点么,IP地址分为
五类,这些东西你先要搞清楚吧,同一个网段内的网络前缀是一样。IP地址:网络号+子网号+主机号 如果有子网存在的话 否则只有1 3 ,判断有没有在同一个 子网里面,主要是通过子网掩码来判断写成二进制数(百度) 不清楚再问
a184485789 2011-06-29
  • 打赏
  • 举报
回复
一天了,还没消息,再顶一次
isjoe 2011-06-29
  • 打赏
  • 举报
回复
看看NAT打洞的技术文章把
a184485789 2011-06-29
  • 打赏
  • 举报
回复
cjh200102 2011-06-28
  • 打赏
  • 举报
回复
没做过。

帮顶楼主。
a184485789 2011-06-28
  • 打赏
  • 举报
回复
自己顶一下

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧