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

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

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

  [复制链接]
27364 25
wangjia 发表于 2022-11-3 15:10:58 | 只看该作者 |阅读模式 打印 上一主题 下一主题
比特币通信协议篇11、二、TURN简介。在典型的情况下,TURN客户端连接到内网中,并且通过一个或者多个NAT到达公网,TURN服务器架设在公网中,不同的客户端以TURN服务器为中继和其他peer进行通信,。
2、| CreatePermissionreq(PeerA)
收藏
收藏0
转播
转播
分享
分享
分享
淘帖0

精彩评论25

跳转到指定楼层
沙发
回复用户2 发表于 2022-11-3 15:11:33 | 只看该作者

3、在下一次request请求中,客户端加上了收到的nonce,以及USERNAME和REALM等属性,再次发送到TurnServer:。
4、1:15:210:49191。
5、服务器如果通过验证,就会返回successresponse,随后Client可以通过上文说到的两种方法与Peer进行通讯,比如下面的Sendindication方法:。
6、
回复 支持 反对

使用道具 举报

板凳
回复用户3 发表于 2022-11-3 15:12:30 | 只看该作者
||。|(15:50000)
回复 支持 反对

使用道具 举报

地板
回复用户3 发表于 2022-11-3 15:13:12 | 只看该作者

7、TurnClient运行在106,为了方便,令peer也在106运行,端口为59593。
8、七、信道机制(Channels)。
9、2:15:3478|+-+//PeerA。
10、Client’sServer|/
回复 支持 反对

使用道具 举报

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


比特币通信协议篇21、||dropped||。
回复 支持 反对

使用道具 举报

6#
回复用户6 发表于 2022-11-3 15:15:00 | 只看该作者
|v|T|2:49582。
2、|| ==data====||。
3、
回复 支持 反对

使用道具 举报

7#
回复用户6 发表于 2022-11-3 15:15:36 | 只看该作者
|/+-+。如果TURN使用于ICE协议中,由ICE在多个候选中进行评估,一般来说中继的优先级都是最低的。TURN协议被设计为ICE协议(InteractiveConnectivityEstablishment)的一部分,而且也强烈建议用户在他们的程序里使用ICE,但是也可以独立于ICE的运行。值得一提的是,TURN协议本身是STUN的一个拓展,因此绝大部分TURN报文都是STUN类型的,作为STUN的一个拓展,TURN增加了新的方法和属性。因此阅读本章时最好先了解一下STUN协议!
4、PeerA。当服务器收到SendIndication之后,会将DATA部分的数据解析出来,并将其以UDP的格式转发到对应的端点去,Send/DataIndication是不支持验证的,因为长效验证机制不支持对indication的验证,因此为了防止攻击,TURN要求client在给对等端发送indication之前先安装一个到对等端的许可(permission),client到PeerB没有安装许可,导致其indication数据包将被服务器丢弃,对于peerB也是同样:。
5、在上一章也提到过,因为RFC是标准协议,因此实现上往往有良好的兼容性和拓展性.现存的开源P2P应用程序,如果按照标准来设计,可以很容易与之对接.其中比较著名的就是PJSIP,PJSIP是一个开源的多媒体通信库,实现了许多标准协议,如SIP,SDP,RTP,STUN,TURN和ICE.当然我们也能自己实现.比如GitHub上的TurnServer就是其中一个对TURN服务端的实现.下面在局域网环境下对TURN数据包进行简要分析.首先有如下机器情况:。
6、HostTransportTransport|//
回复 支持 反对

使用道具 举报

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

7、|+-+
回复 支持 反对

使用道具 举报

9#
回复用户2 发表于 2022-11-3 15:16:43 | 只看该作者
A|/Address。
8、TransportAddressTransportAddressAddress。
9、| Allocatefailure
回复 支持 反对

使用道具 举报

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

10、TURN的全称为TraversalUsingRelaysaroundNAT,是STUN/RFC5389的一个拓展,主要添加了Relay功能。如果终端在NAT之后,那么在特定的情景下,有可能使得终端无法和其对等端进行直接的通信,这时就需要公网的服务器作为一个中继,对来往的数据进行转发。这个转发的协议就被定义为TURN。TURN和其他中继协议的不同之处在于,而这些行为如何完成,是不在TURN协议范围之内的。其中一个可用的方式是客户端通过email来告知对等端信息,另一种方式是客户端使用一些指定的协议,如“introduction”或“rendezvous”,详见RFC。
比特币通信协议篇31、对于一些应用程序,比如VOIP(VoiceoverIP),在Send/DataIndication中多加的36字节格式信息会加重客户端和服务端之间的带宽压力.为改善这种情况,TURN提供了第二种方法来让client和peer交互数据.该方法使用另一种数据包格式,即ChannelDatamessage,信道数据报文.ChannelDatamessage不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channelnumber).每一个使用中的信道号都与一个特定的peer绑定,客户端首先发送一个信道绑定请求(ChannelBindRequest)到服务器,并且可以通过重新发送ChannelBindRequest来刷新持续时间.和Allocation不同的是,并没有直接删除绑定的方法,只能等待其超时自动失效.。
2、| Allocaterequest
回复 支持 反对

使用道具 举报

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

本版积分规则

关注0

粉丝0

帖子2930859

发布主题
阅读排行更多+

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