比特币通信协议 - 币圈消息

比特币通信协议篇11、二、TURN简介。在典型的情况下,TURN客户端连接到内网中,并且通过一个或者多个NAT到 详细

比特币通信协议 - 币圈消息

  [复制链接]
11#
回复用户5 发表于 2022-11-3 15:18:22 | 只看该作者

3、SendMechanism使用了Send和Data指令(Indication).其中Send指令用来把数据从client发送到server,而Data指令用来把数据从server发送到client.当使用Send指令时,客户端发送一个SendIndication到服务端,其中包含:XOR-PEER-ADDRESS属性,包含要传给对等端的信息.。
4、服务器接收到了正确的allocation请求,于是返回succcessresponse,可以看到在返回中带有默认的lifetime为1800秒,XOR-MAPPED-ADDRESS以及XOR-RELAY-ADDRESS等属性:。
5、客户端首先发送Allocate请求,但是没带验证信息,因此STUN服务器会返回errorresponse,客户端收到错误后加上所需的验证信息再次请求,才能进行成功的分配.。
6、通过对TurnServer发送indication告知数据的接收方以及数据内容让TurnServer进行转发,从而间接地向对等端发送DATA.而从对等端来看,
7、TURN支持两种方式来创建许可,比如其中一种就是发送CreatePermissionrequest。
8、|Client| -|A| -|Server| |PeerB|。
9、即ChannelDatamessage的头部中头2字节,值得一提的是信道号的选取有如下要求:。
10、Client’s|PeerB。
比特币通信协议篇41、| Dataind(PeerA)
回复 支持 反对

使用道具 举报

12#
回复用户5 发表于 2022-11-3 15:19:06 | 只看该作者

2、
回复 支持 反对

使用道具 举报

13#
回复用户2 发表于 2022-11-3 15:19:52 | 只看该作者
。+ +
回复 支持 反对

使用道具 举报

14#
回复用户1 发表于 2022-11-3 15:20:29 | 只看该作者
+ +||+ +。
3、| -Allocatesuccessresp
回复 支持 反对

使用道具 举报

15#
回复用户6 发表于 2022-11-3 15:21:14 | 只看该作者

4、四、传输。clientserverAB。
5、0x0000-0x3FFF:这一段的值不能用来作为信道号。
6、上一篇STUN协议中介绍了在NAT上进行端口绑定的通用规则,应用程序可以根据这个协议来设计网络以外的通信。但是,STUN/RFC5389协议里能处理的也只有市面上大多数的ConeNAT,对于SymmetricNAT,传统的P2P打洞方法是不适用的。因此为了保证通信能够建立,我们可以在没办法的情况下用保证成功的中继方法,虽然使用中继会对服务器负担加重,而且也算不上P2P,但是至少保证了最坏情况下信道的通畅,从而不至于受NAT类型的限制。TURN/RFC5766就是为此目的而进行的拓展!
7、||===data=== ||。
8、| Refreshrequest -
回复 支持 反对

使用道具 举报

16#
回复用户4 发表于 2022-11-3 15:22:04 | 只看该作者

9、|(PeerAto0x4001)
回复 支持 反对

使用道具 举报

17#
回复用户2 发表于 2022-11-3 15:22:59 | 只看该作者

10、Server-Reflexive+ +。
比特币通信协议篇51、服务器和客户端都保存有一个成为五元组(5-TUPLE)的信息,比如对于客户端来说,和传输协议;服务器也是类似,因为那才是服务器所见到的.服务器和客户端在分配请求中都带有5-TUPLE信息,并且也在接下来的信息传输中使用,因此彼此都知道哪一次分配对应哪一次传输.。
2、|dropped
回复 支持 反对

使用道具 举报

18#
回复用户6 发表于 2022-11-3 15:23:45 | 只看该作者
。TurnServer运行在110,使用默认端口3478,采用用户名和密码验证,其中用户名为pannzh,密码123456。
3、还是那句老话,关于协议具体的细节可以去翻阅RFC5766的草稿,其中每个属性以及其格式都介绍得很详细.。
4、这里使用wireshark来抓包分析,关于wireshark的简介可以参照我之前的文章细说中间人攻击(一),首先TurnClient发送Allocation请求:。
5、|| ==data==================|。
6、前文也说过,若要和peer进行通信,必须先创建一个许可,因此Client向服务器发送CreatePermission请求,其中携带了peer的信息:。
7、150:32102||。AddressAddress|//|+ +。
8、////////。client和peer之间有两种方法通过TURNserver交换应用信息,第一种是使用Send和Data方法(method),第二种是使用通道(channels),两种方法都通过某种方式告知服务器哪个peer应该接收数据,以及服务器告知client数据来自哪个peer.。
9、0x8000-0xFFFF:这一段是保留值,留给以后使用。
10、| Sendind(PeerA)
回复 支持 反对

使用道具 举报

19#
回复用户5 发表于 2022-11-3 15:24:21 | 只看该作者

比特币通信协议篇61、八、实例。|(401Unauthorized)
回复 支持 反对

使用道具 举报

20#
回复用户6 发表于 2022-11-3 15:25:10 | 只看该作者

2、可以看到第一次requst被服务器拒绝,因为后者要求nonce验证信息,服务器的返回中包含了nonce信息,除此之外还包含了ERROR-CODE,SOFTWARE,FINGERPRINT属性.。
3、TURN|/^|PeerA|。
4、| [0x4001]data
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子2930859

发布主题
阅读排行更多+

Powered by 顺水鱼MT4外汇EA网! X3.2© 2001-2017 顺水MT4外汇EA公司.( 陕ICP备17014341号-1