VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 960|回复: 5

问一下内网穿透的问题

[复制链接]
34_avatar_middle
最佳答案
0 
在线会员 发表于 2016-3-18 15:58:20 | 显示全部楼层 |阅读模式
3驿站币
4.3 从应用程序的角度来看TCP“打洞”从应用程序的角度来看,在进行TCP“打洞”的时候都发生了什么呢?假定A首先向B发出SYN包,该包发往B的公网 endpoint,并且被B的NAT设备丢弃,但是B发往A的公网endpoint的SYN包则通过A的NAT到达了A,然后,会发生以下的两种结果中的一种,具体是哪一种取决于操作系统对TCP协议的实现:(1)A的TCP实现会发现收到的SYN包就是其发起连接并希望联入的B的SYN包,通俗一点来说就是“说曹操,曹操到”的意思,本来A要去找B,结果B自己找上门来了。A的TCP协议栈因此会把B做为A向B发起连接connect的一部分,并认为连接已经成功。程序A调用的异步connect()函数将成功返回,A的listen()等待从外部联入的函数将没有任何反映。此时,B联入A的操作在A程序的内部被理解为A联入B连接成功,并且A开始使用这个连接与B开始p2p通信。由于收到的SYN包中不包含A需要的ACK数据,因此,A的TCP将用 SYN-ACK包回应B的公网endpoint,并且将使用先前A发向B的SYN包一样的序列号。一旦B的TCP收到由A发来的SYN-ACK包,则把自己的ACK包发给A,然后两端建立起TCP连接。简单的说,第一种,就是即使A发往B的SYN包被B的NAT丢弃了,但是由于B发往A的包到达了A。结果是,A认为自己连接成功了,B也认为自己连接成功了,不管是谁成功了,总之连接是已经建立起来了。(2)另外一种结果是,A的TCP实现没有像(1)中所讲的那么“智能”,它没有发现现在联入的B就是自己希望联入的。就好比在机场接人,明明遇到了自己想要接的人却不认识,误认为是其它的人,安排别人给接走了,后来才知道是自己错过了机会,但是无论如何,人已经接到了任务已经完成了。然后,A通过常规的listen()函数和accept()函数得到与B的连接,而由A发起的向B的公网endpoint的连接会以失败告终。尽管A向B的连接失败,A仍然得到了B发起的向A的连接,等效于A与B之间已经联通,不管中间过程如何,A与B已经连接起来了,结果是A和B的基于TCP协议的p2p连接已经建立起来了。第一种结果适用于基于BSD的操作系统对于TCP的实现,而第二种结果更加普遍一些,多数linux和windows系统都会按照第二种结果来处理。


这是我在别的地方找到的一段话。有一个问题。nat的意思时网络地址转换。也就是说内网主机发出一个请求后相应的端口号和IP地址都会改变。最起码,两台电脑同时使用一个端口向外请求时有一个是要改变的。那么内网主机不一定会得到转换后的端口号。那么如上文所说,A主机就不一定能够向B主机的公网endpoint发送SYN包了。





上一篇:求助-单进程多WebBrowser-cookies不串联办法
下一篇:得到 m_FStatus 状态后怎么不能得到时间
34_avatar_middle
最佳答案
0 
在线会员 发表于 2016-3-18 16:11:47 | 显示全部楼层
内网打洞不都是UDP么
34_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2016-3-18 16:39:35 | 显示全部楼层
你的意思是说我找来的那一段话不成立是么?
51_avatar_middle
最佳答案
82 
online_admins 发表于 2016-3-18 17:02:05 | 显示全部楼层
Smoke 发表于 2016-3-18 16:39
你的意思是说我找来的那一段话不成立是么?

TCP打洞技术感觉没必要深入研究了,我们公司去年研究这块研究了一段时间,TCP的打洞很不稳定,而且设备的支持也不是很多,另外,针对 3G、4G 网的情况好像是没什么办法,所以这块没必要深究了
34_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2016-3-18 17:10:19 | 显示全部楼层
本帖最后由 Smoke 于 2016-3-18 20:04 编辑
TCP打洞技术感觉没必要深入研究了,我们公司去年研究这块研究了一段时间,TCP的打洞很不稳定,而且设备的支持也不是很多,另外,针对 3G、4G 网的情况好像是没什么办法,所以这块没必要深究了

3g,4g还要打洞么?他不本来就是一个外网的ip地址么?
34_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2016-3-19 11:08:27 | 显示全部楼层
Syc 发表于 2016-3-18 17:02
TCP打洞技术感觉没必要深入研究了,我们公司去年研究这块研究了一段时间,TCP的打洞很不稳定,而且设备的 ...

那你们公司最终使用了怎样的解决方案呢?
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-25 16:37

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表