学习
实践
活动
专区
工具
TVP
写文章

Trinity和Celer节点路由模式的不同

问:鉴于Trinity的路由交易使用的是最短路径模式,Celer白皮书中提到这种模式会引发网络拥堵、不平衡,那么Trinity的路由交易如何解决可能出现的网络拥堵与不稳定的问题?对此应该如何理解?

答:可以这样来理解

1. Trinity路由算法是依据图论的基础来实现的。图能够很好表达分布式网络的连接状态及路径的可视化。

2. Trinity最短路径,是在全路径基础上按照收费最少原则来确定最短路径。在单一原则下的确会造成网络的不平衡和拥塞。

后续,Trinity会增加路径平衡算法来确保网路的畅通和平衡。

对于Celer的模式,Trinity属于预选路模式。一旦路径确定,后续节点不需要繁复的寻路过程,极大地提高网络效率。Celer到达下个节点的时候,节点还是需要对该数据报文的寻路计算。(Celer的网络寻路:《网络中任意一个节点只需要感知其相邻节点,并根据数学模型计算最佳下一跳节点。另外,在路由的过程中,不需要额外的协调方法,可以自然而然维护通道的平衡性。》摘自网络)

Trinity寻路只需考虑路径与路径之间的时效,途径节点的压力状态,就可以实现celer的路径计算。

严格来说Celer的寻路模式跟现有的路由器寻路模式相似。而Trinity的寻路模式属于大数据中寻求最优化解决方案。

在Celer方案中,我们设计一个模型:

我们有数据要从a发往g,设定在a刚要发出数据报文的时候p接入c,而且c-p之间的RTT最短。当c接收到数据报文的时候,在该模型中,c并不知道g具体在哪个位置。计算p为下一跳,p接收后,又会把数据报文重新发送给c。

同时在该模型也有很大可能出现个别节点的压力骤增,导致网络拥塞。见下图:

因为数学模型要建立必须需要一定的参数。设定上图各个节点都满足模型所需要的参数(除RTT)的情况下,那么RTT就是唯一能参考的参数。如果c要往g发送100条消息,那么这100条消息就都会沿c->a->b->d到达g。网络的平衡就被打破,如果c发送的数据更多,那么a,b,d,g就会形成处理瓶颈。

在Trinty网络中,按照现在选路原则。设定所有节点的话费都一样,也会得到c->a->b->d->g的路径。但是c能够知道到达g的所有路径,所以只需要更改选路原则(例:增加节点压力预测),就能分流一部分数据通过其他节点发送出去,恢复网络平衡。

3.关于状态通道的可视化描述,trinity团队目前有来自内部的和外部的多项改进提案,后续会在github上公开,会更好的听取社区的建议,但是目前这个阶段状态通道与大家理想中的状态通道还有差距,许多细节还在调整,所以关于状态通道的可视化描述会在后期合适的时机做出来。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180921G1WBL600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券