关于两台处于防火墙内部的客户机的通讯问题 情景:有两台计算机Client1和Client2,分别
位于防火墙NAT1和NAT2内部。
要求:Client1和Client2能够通讯。
基本办法:增加一台服务器SERVER,服务器位置位于
NAT1和NAT2外部且Client1和Client2都能过访问,
Client1和Client2之间的通讯通过SERVER转发。这么做
的缺点是每次Client1和Client2的通讯都必须通过SERVER,
如果该SERVER承担很多这样的客户端的信息中转工作,负荷
将越来越重。
希望的实现办法:
1、因为Client1和Client2分别位于NAT1和NAT2后面,
所以彼此不能看到对方,所以SERVER是必须的。
2、Client1和Client2首先和SERVER通讯,通过SERVER找到
对方。从SERVER端取得对方的一些连接信息。
3、Client1和Client2之间的数据交换在二者之间进行,不
再需要通过SERVER转发。
4、退出步骤:Client1和Client2分别通知SERVER,注销自己
的在线信息。
现在我也不知道“希望的实现办法”有没有可能实现,如能,怎么实现?
位于防火墙NAT1和NAT2内部。
要求:Client1和Client2能够通讯。
基本办法:增加一台服务器SERVER,服务器位置位于
NAT1和NAT2外部且Client1和Client2都能过访问,
Client1和Client2之间的通讯通过SERVER转发。这么做
的缺点是每次Client1和Client2的通讯都必须通过SERVER,
如果该SERVER承担很多这样的客户端的信息中转工作,负荷
将越来越重。
希望的实现办法:
1、因为Client1和Client2分别位于NAT1和NAT2后面,
所以彼此不能看到对方,所以SERVER是必须的。
2、Client1和Client2首先和SERVER通讯,通过SERVER找到
对方。从SERVER端取得对方的一些连接信息。
3、Client1和Client2之间的数据交换在二者之间进行,不
再需要通过SERVER转发。
4、退出步骤:Client1和Client2分别通知SERVER,注销自己
的在线信息。
现在我也不知道“希望的实现办法”有没有可能实现,如能,怎么实现?
解决方案 »
- 手动设置属性页的标题
- 求助关于DHCP相关的系统调用
- vc 中在文本框中输入信息后 敲回车 可以执行OK BUTTON
- 怎么消除命令行程序的窗口
- vcnet如何导入真彩色位图啊?(怎么导入后什么都没有插入啊)明天结帐
- 如何绘制一个坐标系显示物体得旋转啊?
- CListCtrl填充数据3次之后速度变慢如何解决?
- 怎么在VC里面做一个可以让用户指定路径的对话框啊?
- 为什么MFC程序无法退出
- ??? 谁能给我这样一个 CListCtrl 源代码实例 ??? (90分) 做出来后再给 180分
- 怎样在VS.NET中才能使用VC6的文件,老是说“vcspawn.exe是必需的文件,但未能在路径上找到该文件”。
- 作了一个图书管理系统,但是却不知道怎样使用条码阅读器,请大家指教!
1采用udp传输发送数据到server,那么你的server就知道nat给client分配的什么端口
2server将两个client通过nat的端口告诉对方
3这样两个client就可以互通了
4在udp协议上构架自己的可靠性传输协议比如:Client1的5555端口发送数据client1_IP:5555,通过nat1变成了那NAT1_IP:13456(server知道)
Client2的4444端口发送数据client2_IP:10022,通过nat2变成了那NAT2_IP:10022(server知道)
然后server通知client1:client2的地址为NAT2_IP:10022
server通知client2:client1的地址为NAT1_IP:13456
ok了!!!哈哈哈
谢谢,你的方法听起来可以,不知道实际运作如何?待我试一试。
还有,自己重新在udp协议上构架自己的可靠性传输协议。这看来
比较麻烦。
正如 chenjiming(还不够聪明) 所說。2。 用兩對ip. physical ip addres 和 logical ip address(MAC).
原理如下﹕ 每一個LAN下有一個固定的logical ip address. 每一個LAN與另一個LAN相連﹐需要一個設備。(switch, bridge, or router. 通常是router.) 這個設備有一個physical ip address. 而這個設備“擁有”LAN 的 physical ip address列表。 這樣通訊得以實現。
(details to see "Computer Networks" and "Data Communication" and "tcp/ip protocol".)所以你可以作一個軟件﹐模擬router的功能(一個frame/packet的捕捉器﹐ 小數據庫)。