zerok的专栏

人生不是自我放逐,而是力求完美。

P2P技术是如何将直播带宽降低75%的

实时直播经过去年的千播大战后已经成为互联网应用的标配技术,但直播平台的成本却一直居高不下,各个平台除了挖主播、挖网红以外,其背后高额的带宽费用也是他们最大的一块成本。现阶段直播技术在传输方面分为两块:CDN和连麦系统,CDN负责流媒体的分发传输,连麦系统负责解决同时多个主播间互动的实时通信传输问题...

2018-01-04 18:14:52

阅读数 4846

评论数 4

RUDP传输那些事儿

最近和很多实时音视频领域的朋友交流中都有谈论到RUDP(Reliable UDP),这其实是个老生常谈的问题,RUDP在很多著名的项目上都有使用,例如google的QUIC和webRTC。

2017-11-06 09:43:48

阅读数 2074

评论数 1

C++高性能服务框架revolver:RUDP(可靠UDP)算法详解

上一篇BLOG已经介绍了revolver RUDP的传输性能、基本的框架和接口,这篇文章我重点讲述RUDP的实现细节。在RUDP的模块中最为重要的是其收发缓冲控制和CCC发送窗口控制、CCC发送慢启动控制、CCC快恢复控制等几个过程。 数据块定义 在RUDP模块中,所有发送的数据被定义成RUD...

2014-03-19 10:45:05

阅读数 7909

评论数 3

C++高性能服务框架revover:rudp总体介绍(可靠UDP传输)

在revolver框架中实现了一个高效可靠的RUDP通信方式,这个通信方式是基于UDP实现一种模拟TCP传输数据的行为。在很多实际应用中,udp/TCP都不是最好的通信方式,例如:点对点文件传输、视频数据高速传输、服务器之间大数据备份同步、高实时rts操作类网游等。TCP和UDP在一定程度上是无法...

2014-03-18 17:56:40

阅读数 11140

评论数 31

linux和windows下UDP发送效率的有趣比较

今天在测试UDP发送效率和RUDP代码时效的问题,偶然的机会发现一个比较有趣的事情,先把我的测试代码贴上来看看,代码如下: int test_udp() { //_beginthread(sock_recv, 0, NULL); CUDPRecvhread recv_thr; recv_t...

2014-03-18 15:33:50

阅读数 2686

评论数 0

redis数据记录过期源代码分析

最近在分析redis源代码,一直想写一点相关的东西,空不出时间来整理。今天好不容易空出时间来,把自己对redis关于记录过期和过期检测的流程理解写来。用过redis的人都知道,redis对相关记录的过期设置和memcached是相似的。

2014-03-14 13:20:43

阅读数 4136

评论数 0

C++高性能服务框架revolver:协议接口描述和翻译语言

在一个稍微复杂的系统中会涉及到多语言编程,例如:后端C++和JAVA,脚本用LUA,前端可能是C++ AS等等。所以所有模块之间的协议统一变得非常重要,这样做的目的是减少中间的调试和差错。在revolver框架中,实现了一个基于简单的接口语言来实现多语言之间接口协议的实现。所有的协议接口通过一个简...

2014-03-08 14:01:45

阅读数 2226

评论数 1

C++高性能服务框架revolver:同时支持100万个的定时事件的定时器

在高性能的服务器程序当中,定时器是必不可少的部件,而且定时器的效率是直接影响到服务的性能。在众多的开源项目中,定时器设计都有各有各的方法,例如ACE和libEvent都采用了最小堆的算法实现,还有其他的开源项目采用平衡二叉树来做定时的器管理算法。不管是最小堆还是平衡二叉树,其定时器扫描都是O(1)...

2014-03-03 16:16:09

阅读数 4562

评论数 4

C++高性能服务框架revolver:core结构与接口介绍

revolver的核心部件库core是基于revolver base之上进行封装的,实现TCP连接管理、消息隐射管理、服务登记和感知 、IFrame框架和插件等。以下是core的模块结构图:

2014-02-27 10:43:21

阅读数 2262

评论数 0

一种服务器的负载均衡选取算法

在很多分布式系统里面会遇到一个均衡节点选取的问题:一般是1个负载管理服务器,多个应用服务单元。当有连接或者业务来是,先会去询问负载管理器获取一个负载轻的服务单元,一般的选取就是选取负载最轻的那个。通常情况下是不会有问题的,如果你的应用服务器单元跑的是类似视频服务这种应用,就会出现这样一种情况,某个...

2014-02-25 18:02:03

阅读数 1485

评论数 1

C++高性能服务框架revolver:base结构分析

revolver基础库的结构图如下: 主要是三部分:reactor模块、关联组件模块、独立组件。 1.reactor reactor模块主要是实现网络的分时复用设计的模块,可以在同一个线程模式下处理来自网络的读写事件、内部消息事件、定时器事件。以下是reactor的接口定义:class CR...

2014-02-25 16:52:08

阅读数 2205

评论数 0

C++高性能服务框架revolver:下载、编译和工程介绍

昨天我把自己的第一个开源项目revolver代码提交到了GitHub上,revolver是一个C++开发的LINUX网络服务框架。这个代码算是我从2012年到现在的积累,开源的目的是希望高手指正问题和分享自己的一些经验,我会持续改进和优化,也希望更多的地方使用revovler。revolver框架...

2014-02-25 13:48:37

阅读数 3610

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭