BDT协议千人-百日测试第一阶段测试情况通报

2018-06-08

BDT是由GeekChain基金会支持并计划使用的,由巴克云开发的下一代无中心P2P协议,联合合作伙伴极路由共同发起的一次测试,测试在不同网络环境和设备中进行。其目的是为了实现更好的P2P连接成功率、更高效的进行广播以及更强的传输性能。

2018年4月20日“1024-千人”内测活动正式开启,测试周期为一百天,将于7月30日结束第一轮测试。

本次协议测试均面向WIN系统用户,参与者通过下载BDT程序测试软件即可注册参与,对于联接测试网络成功的客户端均会给予GCT奖励,截至5月底,获得奖励最多的客户端已经获得了337.7771个GCT。

现就第一阶段的测试情况进行简要说明:

一.现阶段测试目标:

1.对中国互联网用户网络环境进行摸底

a. 对称NAT

b. UDP协议封禁情况

c. 跨运营商通信障碍

2.协议性能测试:在稳定中心辅助服务器帮助下的穿透连接能力和传输性能;并持续提高连通率和传输速度;从而提高区块链基础数据传输能力。

二.测试用例简介:

一个简单的ECHO程序,实现客户端和服务端互连,连通后,由客户端向服务器发送一小段(1MB)数据(下面称为负载数据),服务端收到负载数据后,原样返还给客户端。客户端和服务端都运行在测试志愿者提供的windows系统上,启动后向巴克云服务器注册自己,更新客户端脚本到最新版本,并启动ECHO服务端监听端口;由服务器向它下发测试指令,向其他志愿者运行的测试程序发起连接,并把连接和传输情况上报到服务器;连接过程中需要公网服务器提供穿透服务(称为SN),现阶段SN是由巴克云提供的一台中心服务器,后续会改为分布式SN提供穿透服务。

三.统计数据摘引(2018年5月27日):

当日上线用户数: 1707

最大同时在线Peer数: 1247

当日上线Peer总数: 1963(对称NAT:44)

参与IP数: 706

连通率:

发起连接数:139773

成功连接数:120647,成功率:86.3%

中断次数:47597

传输效率:

负载数据(BYTE):59979066606

两端发送数据量和(BYTE):129142350408(UDP)+52881046(TCP)

两端发包数量和(个):111749302(UDP) + 7367(TCP)

两端接收数据量和(BYTE):110797295197(UDP)+53288766(TCP)

两端收包数量和(个):98218447(UDP) + 12052(TCP) *TCP收包比发包多是因为握手包发包没上报,而收包上报了,多出包的平均大小差不多是100B左右,差不多是握手包大小

总传输时间(S):11313313

平均速度(BYTE/S):5301

四.协议测试阶段性小结:

1.用户网络环境:

从本报告的1963用户样本来看,其中44人在对称NAT环境;60人涉嫌UDP协议封禁;

因为网络环境复杂,不能绝对准确地识别出用户网络环境,这里给出我们的简单判定规则:

a. 对称NAT:在一次成功连接发生时,连接发起方同时上报自己从服务器上查得对端地址(ip:port)和实际通信过程使用的地址,如果实际使用地址(必须是公网地址)不在服务器返回地址列表中,说明对端向自己和服务器通信使用的地址不同,则判定为对称NAT;这种NAT环境无法对“对称NAT”和“port restricted NAT”穿透直连;

b. Udp封禁:目前简单地对各Peer统计“收包/发包”比例,收回的udp包太少,一般认为是UDP封禁;统计数据中有60个用户收包比例不足0.05,绝大多数其实就是0。

2.运营商通信障碍:

跨运营商通信肯定会慢一点,暂时没有留意到什么过于尖锐的实质性问题,这块数据暂时没有。

3.传输性能和连通率:

可持续进行改进优化。

BDT底层协议的百日千人测试启动十分顺利,参与测试节点数在GCT社区的推动下几乎是在3天内就达到了预期节点数,后续因为参与节点数过多,我们紧急临时上线了排队功能并组建了QQ群进行测试相关问题的沟通和说明。

BDT底层协议测试将按计划继续进行,在现阶段测试所回收的数据中,作为开发者我们非常欣喜的看到该协议在穿透中国普通家庭多达五层的通讯协议层是可实现并具有效率的,在传输性能和连通率上同样拥有巨大的优化空间。“西湖十里孤山路,犹记荷花处。翠茎红蕊最关情。不是薰风、吹得晚来晴。”绝美江南,醉人杭州,但在2018年6月6日,众人来杭,不观西湖,足迹所向皆指一处——GBLS(全球无眠区块链领袖峰会)。