能力值:
( LV2,RANK:10 )
|
-
-
2 楼
现在最怀疑的 就是 链路不可 复用 。
|
能力值:
( LV9,RANK:180 )
|
-
-
3 楼
了解一下tcp的三次握手,了解一下tcp的ack和seq,不要想当然和以为。tcp打洞如果能做出产品落地,你可以开一个独角兽公司了。
最后于 2020-4-10 22:35
被layerfsd编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
还是困惑
|
能力值:
( LV15,RANK:595 )
|
-
-
5 楼
TCP打洞相比于UDP的难点是如何建立握手,内核对于三次握手中不一致的SYN ACK包都会丢弃,这里不仅仅是双方的内核,还包括中间路由器、ISP的内核,所以很难进行稳定打穿。 “一些对tcp打洞有研究的人”想的也太简单了,本地端口复用是不够的,为什么这么说,因为那篇文章就是我写的(https://evilpan.com/2015/10/31/p2p-over-middle-box/), 希望没有误人子弟,想了解研究的理论可以看看paper,然后再看看理论和实践的差距。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
了解,谢谢解惑。
|
能力值:
( LV1,RANK:0 )
|
-
-
7 楼
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
老外曾经有一篇论文讨论个这个问题(10~20年前了),最后通过实验得出的结论是:加上驱动程序进行收发数据包,那么TCP打洞可以达到UDP打洞的成功率。但如果要上驱动了,意义已经不大。
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
各位都是 学术型 高手 啊。。 我一脸懵逼的近来。。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
TCP安全性问题很多。国外开始以UDP为主的
|
能力值:
( LV12,RANK:340 )
|
-
-
11 楼
了解下对称型NAT和锥形NAT。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
你这个流程似乎有些问题,不知道你的nat类型是怎么样的 如果服务端1侧不是full cone nat,那么第二步之后,服务端1还需要给客户端2的ip+port发送数据包。如果不这么做,服务端1处的nat就没有对应的映射,那么客户端2的包就没法进入nat。 不过,正如5楼所说,如果网络的中间设备使用了seq检测之类的技术,上面这个方法就行不通了,所以最好的方法就是两端同时connect。 我自己试验的时候,在两边都是port restricted nat的时候已经可以成功打洞了
最后于 2020-11-2 14:33
被mb_dtudyjqc编辑
,原因:
|
能力值:
( LV3,RANK:30 )
|
-
-
13 楼
NAT什么的就不要讨论了,没有意义,NAT不就分4个类型,123能打洞,4不能打洞,除非你有神一样的随机预测能力。
tcp打洞不难啊,比udp好用多了,udp会被ISP各种qos。 首先设计一套 Listen Accept Connect 信令。 服务端A发Listen给服务器,服务器拿到A的外网地址。注意服务端是保持连接的,不需要关闭,当然你想关闭也行,我这边是多点对单点的结构,服务端永远在线,不关闭与服务器的连接。 客户端B发Connect给服务器,服务器拿到B的外网地址。服务器发送Accept携带B的外网地址给A。服务器发送Connec回应携带A的外网地址给B。B随后关闭与服务器的连接。 A端口复用创建socket,然后connect B的地址 B端口复用创建socket,然后connect A的地址
怎样,简单吧,就是AB两端拿到地址后connect互怼。大部分tcp打洞都是这样玩的,比如teamviewer,anydesk之类的。。
上述流程我做了一个基于p2p的vpn,没有公开发布,一直在自己使用,没有任何问题。跨平台支持windows/linux/solaris/hpux/aix....
打洞的成功率?只要是NAT123,1次成功,没有失败的可能性。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
MengXP
NAT什么的就不要讨论了,没有意义,NAT不就分4个类型,123能打洞,4不能打洞,除非你有神一样的随机预测能力。
tcp打洞不难啊,比udp好用多了,udp会被ISP各种qos。
首先设计一 ...
发listen给服务器?listen怎么发呢
|
能力值:
( LV3,RANK:30 )
|
-
-
15 楼
通信报文信令。。
|
能力值:
( LV3,RANK:30 )
|
-
-
16 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
MengXP
通信报文信令。。
服务端listen,客户端syn,还能主动发listen ?
|
能力值:
( LV3,RANK:30 )
|
-
-
18 楼
mb_foyotena
服务端listen,客户端syn,还能主动发listen[em_13]? mdzz
最后于 2020-11-3 20:06
被MengXP编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
MengXP
我特么都说了是信令。。。
#define CONN_TYPE_P2P 0x43503250 //P2PC
typedef enum _P2P_CMD {
P2pCmdLis ...
你说自定义的不就简单明了了
|
能力值:
( LV3,RANK:30 )
|
-
-
20 楼
mb_foyotena
你说自定义的不就简单明了了
我都说了首先设计一套 listen accept connect 信令,下面还给了详细步骤,自己语文能力不行,脑瓜子理解不了,就别赖别人好吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
MengXP
我都说了首先设计一套 listen accept connect 信令,下面还给了详细步骤,自己语文能力不行,脑瓜子理解不了,就别赖别人好吧。
杠精?您这语文够牛逼的,设计一套计算机信令,难道等于自己做一套计算机?
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
MengXP
我都说了首先设计一套 listen accept connect 信令,下面还给了详细步骤,自己语文能力不行,脑瓜子理解不了,就别赖别人好吧。
算了,不跟傻子扯,弄一破玩意还趾高气扬,要不是以为有什么高科技能让别人主动连,才懒得问呢,结果啥也不是
|
|
|