高速互联网络

高速互联网络的作用是在多个节点之间交换大量数据。OushuDB高速互联网络基于UDP协议。大家可能会疑问为什么OushuDB不使用TCP。其实OushuDB同时支持TCP和UDP两种协议,TCP协议实现早于UDP协议。但是因为我们遇到了TCP不能很好解决的高连接数并发问题,我们才开发了基于UDP的协议。图4展示了一个高速互联网络的例子。

_images/hawk++1_2_4.png

图4. 高速互联网络

例子中各个节点上的执行器进程形成了一个数据交换的流水线。假设每个节点上有1000个进程。有1000个节点,这些进程需要相互交互,每个节点上就会有上百万个连接。TCP是没办法高效地支持这么多的连接数的。所以我们开发了基于UDP的互联协议。针对UDP传输,操作系统是不能保证可靠性的,并且不能保证是有序传递的。所以我们的设计需要保证和支持如下特性:

  • 可靠性:能够保证在丢包的情况下,重传丢失的包
  • 有序性:保证包传递给接受者的最终有序性
  • 流量控制:如果不控制发送者的速度,接收者可能会被淹没,甚至会导致整个网络性能急剧下降
  • 性能和可扩展性:性能和可扩展性是我们需要解决TCP问题的初衷

可支持多种平台