Skip to content
forked from yuanrongxi/razor

A google's congestion Control Algorithm

License

Notifications You must be signed in to change notification settings

ixingqiao/razor

 
 

Repository files navigation

razor

A google's congestion Control Algorithm razor是一个GCC算法实现项目,主体算法来源于webRTC的CC实现,主要了解决点对点视频传输过程中网络拥塞的问题。razor是通过传输的延迟间隔来评估网络的过载与拥塞, 然后通过一个带宽调整控制器(aimd)来决策合适的码率进行视频通信。razor没有继承复杂的webRTC接口,而是将它设置在点对点视频通信的范畴。开发者可以仅仅使用razor 库和自己的传输协议来构建自己的传输体系,也可以直接使用它提供的sim transport传输系统来进行通信,这里需要说明的是sim transport还没有正式线上环境使用过,协议 的安全性没有经受过严格的考验,使用时需谨慎。

编译

下载

  git clone https://github.com/yuanrongxi/razor.git

编译

  用visual studio 2013打开project目录下的工程就可以直接编译,这个工程环境下有单元测试文件,可以进行代码选择修改,
  进行单元测试。

测试

要进行razor的整体测试,需要编译sim transport模块,这里有两个工程,是sim_test下sim_sender和sim_receiver,用visual studio就可以直接进行编译运行。这 两个工程需要配合起来使用,在sim_sender工程代码中填写sim receiver的IP地址和端口,就可以进行通信测试了。如果需要模拟网络,需要relay配合。假如运行sim sender 和receiver机器的IP地址为192.168.1.100,relay机器的IP地址192.168.1.200:6009,那么步骤如下:

在Linux下运行relay:

  ./sim_relay 192.168.1.100:16000 192.168.1.100:16001

运行receiver

  在visual studio下运行receiver

运行sender

  在visual studio中修改sim sender中的sim_sender_test.cpp
	if (sim_connect(1000, "192.168.1.200", 6009) != 0){
	    printf("sim connect failed!\n");
	    goto err;
    }
  修改后直接编译运行即可.

PS:也可以在linux下运行sim sender和sim receiver,直接在他们的目录下make即可编译。

echo

echo是一个windows下的测试程序,它据有视频传输的所有功能,需要在windows下进行编译,依赖于dshow,它同样需要relay来配合。测试步骤如下:

运行relay

在Linux下直接运行 ./sim_relay

编译echo

在visual studio下打开sim_test目录下的echo工程,直接编译

运行echo

在echo UI上将receiver ip地址填写为:192.168.1.200:6009,点击start echo按钮即可

GCC与BBR的对比(来自nkcubert的贡献)

测试条件

操作系统环境:VMWare虚拟机(win10)限定网速

最大视频编码码率:400kBps

测试结果

avatar

微信交流

入群交流请加微信zerok775

About

A google's congestion Control Algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 54.9%
  • C 44.8%
  • Other 0.3%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy