两台电脑如何通过互联网相互通信,如一台电脑在公司内部局域网查看外网ip(可以上外网),一台电脑在家里?

一台笔记本连两个网络(一个内部局域网,一个外网)设置方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
一台笔记本连两个网络(一个内部局域网,一个外网)设置方法
上传于|0|0|文档简介
&&本文档介绍用一台电脑如何可以同时上外网和内网
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢比如QQ,打开QQ,它连接上服务器,向QQ服务器发消息,因为QQ服务器IP地址固定,好理解。
问题是:假如QQ服务器给我发消息,我的IP地址192.168.0.2(内网的),QQ服务器是如何把消息发给我的呢?
我想是不是这样:QQ服务器把消息发给了路由器IP(123.45.56.244),然后路由器再根据所发消息中的MAC地址查找出是内网中的哪一台电脑,再把消息发到那台电脑上,于是我就收到了消息。
是这样的吗?请高手帮忙解释一下啊。
我用VC做软件的,会用SOCKET通信,就是不明白这些地方是什么原理,怎么回事。
回复讨论(解决方案)
留个名字,等结果.楼主应该讲到了关键点...
估计lz已经说对了,可以抓包分析看看
差不多是你理解的样子,可以网上搜索一下NAT。
分析一下数据链路层协议,应该就明白了。
比如QQ,打开QQ,它连接上服务器,向QQ服务器发消息,因为QQ服务器IP地址固定,好理解。&
问题是:假如QQ服务器给我发消息,我的IP地址192.168.0.2(内网的),QQ服务器是如何把消息发给我的呢?&
我想是不是这样:QQ服务器把消息发给了路由器IP(123.45.56.244),然后路由器再根据所发消息中的MAC地址查找出是内网中的哪一台电脑,再把消息发到那台电脑上,于是我就收到了消息。&
是这样的吗?请高手帮忙解释一下啊。&
1.如果QQ使用了UDP登陆,那么QQ连接QQ服务器时,本地QQ打开UDP端口X&&-&&你的网关打开UDP端口Y&&-&&QQ服务器
&&QQ服务器知道了你的网关IP以及使用的UDP端口Y,只要将消息发送到你网关的UDP端口Y,你的网关就会将消息转发给你.
2.如果使用TCP登陆,那就不需要涉及这些端口问题,TCP是连接通道来的,一旦你的QQ连接上QQ服务器,这条&通道&就一直存在,数据就是通过这条通道传送的.
QQ服务器把消息发给了路由器IP(123.45.56.244),然后路由器再根据所发消息中的MAC地址查找出是内网中的哪一台电脑,
这是怎么做到的??难道路由器能解出QQ协议里发送的MAC地址?或者??
5楼的话我基本上都明白,可是我该怎么给你说呢。
这样说吧,现在只考虑TCP连接:QQ服务器收到QQ的登录消息(即请求连接)后,为此QQ建立一个套接字,以后QQ服务器只要给此QQ发消息,就只需要这个套接字就可以了,是的,这是正确的,问题是:它只用这个套接字,其它的比如目的IP地址,端口号等信息就完全不再需要了么。它用这个套接字发的消息,难道这个套接字里头就没有包含目的IP地址吗?
如果的确没有IP地址的话,就像5楼说的,“通道”,我只需要把消息发到“通道”的另外一头就可以了,至少那一头的IP地址等等无论怎么变我都不管它。
如果套接字里还是有IP地址,通过此套接字发送消息还是需要目的IP地址来发送消息的,那么问题还是上面的那样,我是内网,它到底发给谁了?是不是发给网关(也就是路由器吧)了,然后网关找到我了,网关是不是通过MAC地址还是其它的什么信息找到我的呢?
先发给的是网关,网关里有个映射表,担心找不到你?
5楼的话我基本上都明白,可是我该怎么给你说呢。&
这样说吧,现在只考虑TCP连接:QQ服务器收到QQ的登录消息(即请求连接)后,为此QQ建立一个套接字,以后QQ服务器只要给此QQ发消息,就只需要这个套接字就可以了,是的,这是正确的,问题是:它只用这个套接字,其它的比如目的IP地址,端口号等信息就完全不再需要了么。它用这个套接字发的消息,难道这个套接字里头就没有包含目的IP地址吗?&
如果的确没有IP地址的话,就像5楼说…
TCP是具有连接的,也就是一旦连接上,QQ服务器自然知道你的IP地址等(网关IP地址),但TCP连接不需要再使用这些信息.TCP连接相当于在两个不同地方拉起一个&桥&连接双方,一旦连接上了,就根本不需要再知道对方在什么地方,因为通过这个&桥&就能到达对方那里了.UDP就不同,UDP是没有连接的,所以每次发信息到对方都要使用对方的IP,端口等才可以.
哎,说实话,我还是很迷茫。虽然这些大道理我也懂。
哎,端口和IP缺一不可,说了这么多还是不懂看来你得去问下做路由器的师傅,数据咋传的
我觉得楼主说得基本正确了。
发向服务器:&&&本机---&路由器---&服务器
发向本机&&:&&服务器---&路由器---&本机
开始连接服务器时就要经过路由器,应该就会在协议里加上&关于本机和路由器关系的东西了。服务器发向本机时就逆向....
路由器内部的运作颇为复杂
但是用最简单的思维,考虑TCP
局域网中路由器上有个简单的IP-MAC对应表,确保内网的机器通过(IP)互识,你机器的IP地址对于外网毫无意义,事实上在外网上没有你的存在
所以,外边的人永远找不到你,除非你和路由器是铁哥们,让路由器把外边来的信息分发给你(端口绑定)
路由器,有一个公网IP,它是唯一可以直接与外界通信的实体
但是你可以拐弯抹角地找到与网络连通的所有人
这样的运作是不公平的,外面的那个家伙是服务器,等你上钩,一旦你上钩,路由器有责任维护一条虚线
你是客户端,很脆弱,连接可能常常中断,每次中断后你都会立即死皮厚脸地越挫越勇,就是这么回事
服务器开放一个端口,比如80,只是用于监听连接请求的,真实的通道用的是一个大得多的专门为某一连接服务的端口
正如楼上所说的,IP+PORT对应另一个IP+PORT,缺一不可,这样的四个元素完成信息的一段传输,信息从起点到终点,是一个漫长的过程
其实搞清楚内网跟外网中间有什么就可以了
如果有NAT,那你就要穿透NAT
如果有SOCKET代理,那就要穿透SOCKET代理
至于如何穿透NAT,SOCKET,网上的资料很多
NAT-PT协议
Network&Address&Translation&-&Protocol&Translation&(NAT-PT)
http://www.ietf.org/rfc/rfc2766.txt
引用楼主&zhllxt&的帖子:
比如QQ,打开QQ,它连接上服务器,向QQ服务器发消息,因为QQ服务器IP地址固定,好理解。
问题是:假如QQ服务器给我发消息,我的IP地址192.168.0.2(内网的),QQ服务器是如何把消息发给我的呢?
我想是不是这样:QQ服务器把消息发给了路由器IP(123.45.56.244),然后路由器再根据所发消息中的MAC地址查找出是内网中的哪一台电脑,再把消息发到那台电脑上,于是我就收到了消息。
是这样的吗?请高手帮忙解释一下啊。
1.如果QQ使用了UDP登陆,那么QQ连接QQ服务器时,本地QQ打开UDP端口X&&-&&你的网关打开UDP端口Y&&-&&QQ服务器
&&QQ服务器知道了你的网关IP以及使用的UDP端口Y,只要将消息发送到你网关的UDP端口Y,你的网关就会将消息转发给你.
2.如果使用TCP登陆,那就不需要涉及这些端口问题,TCP是连接通道来的,一旦你的QQ连接上QQ服务器,这条&通道&就一直存在,数据就是通过这条通道传送的.
强人,分析得有理。

我要回帖

更多关于 局域网查看外网ip 的文章

 

随机推荐