1.假设机器A通过 机器B 211.100.x.x与互联网相通,机器C通过机器D
168.100.x.x与互联网相通,那么A和C这俩台机器能否建立socket连接(A和C都是非真正的Ip地址),若能则如何建立???
2.请问代理和路由的建立方式有没有区别???
168.100.x.x与互联网相通,那么A和C这俩台机器能否建立socket连接(A和C都是非真正的Ip地址),若能则如何建立???
2.请问代理和路由的建立方式有没有区别???
调试欢乐多
A机器对于B机器是透明的,他们之所以能以互连网连接,是因为代理的问题,A可以以D机器相连接,但是却不可以直接的与B机器连接,除非在机器D上另有一个专门的中间代理。
2、如A有固定地址,而C没有,可由C发起,A服务。
3、如两机都没有固定地址,不可能。
本地10台PC,通过proxy上网,实既上与通过专线+路由 方式没有本质区别。
大家伙儿只得到了一个公网IP,大家都要上,怎么办?NAT 网络地址转换
即建立如下映射关系:
本地IP <=======> 公共IP + PORT
ip包在通过NAT设备时,对其中地址和PORT信息进行相应转换,出去的包改SOURCE信息,让对方知道往哪回复;进来的包改TARGET信息,这样才能回送到真正的发起人。
对端主机并不知道NAT的存在,它以为自己在和公网地址交谈。这就象"网聊",你胡子拉渣也可以冒充MM,但对方并不知晓。这个NAT设备可以是ROUTER,也可以是proxy软件。
说实话,我从未上网聊天过,很土是吧?
今天的话题有一定代表性,看来软件工程师也要知道一些习惯上认为是硬件范畴的知识,比如IP协议相关常识,只会配地址+掩码是不够的。
实既上网络协议本身,是真正的超级软件工程,网络设备的核心也就是各种协议算法。
衷心希望各位网络编程爱好者,拓展知识面,少走弯路。
proxy则只是在内外网间进行NAT映射,内外IP彼此是隔离的。
IP包的内部信息(为方便,称为data),对IP层协议而言,只是数据,就象货物对于货车的关系。
实既上,对于任何具体应用,data本身也有其结构,这种结构可以很简单,也可以很复杂,复杂到一定程度时,开发商也会称其为"协议",我们常说得应用层协议,就是这东西。
建议您读一点儿TCP/IP协议封装的材料,并不难,也不必如何牢记于胸,但有助理解。这就象在入门边缘徘徊的MFC爱好者读《深入浅出MFC》的作用类似。
但我猜您要表达的也许不是这个意思。