自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Webrtc delay-base-bwe代码分析(6): 整体分析

Webrtc delay-base-bwe代码分析(6): 整体分析

2017-05-22 19:46:27 1999

原创 Webrtc delay-base-bwe代码分析(5): AimdRateControl模块

@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(5): AimdRateControl模块0. 简介这个模块是根据OveruseDetector模块计算出来的状态来维护码率控制模块的自动状态机,并更新估算出来的对端发送速率,提供给REMB进行反馈。1. 原理一共维持三个状态,增长、保持、衰减,状态转换根据OveruseDe

2017-05-22 19:44:11 2085 2

原创 Webrtc delay-base-bwe代码分析(4): OveruseDetector模块

@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(4): OveruseDetector模块0. 简介这个模块主要是根据OveruseEstimator模块校正后的到达时间差来对链路使用状态进行评估,为有限自动状态机提供状态转换的条件,同时本模块还有GCC文档中提到的自适应阈值计算。阈值自适应原因如下: 个人理解: -

2017-05-22 19:35:49 1548

原创 Webrtc delay-base-bwe代码分析(3): OveruseEstimator模块

@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(3): OveruseEstimator模块该模块是一个卡尔曼滤波,根据当前到达时间差和传输大小的值,对到达时间差进行滤波,计算更精准的到达时间差。0. 卡尔曼滤波基础公式从参考文档中获得基础公式及对应变量意义。公式: 变量:1. OveruseEstimator的卡尔曼滤

2017-05-22 19:32:48 2004

原创 Webrtc delay-base-bwe代码分析(2): InterArrival模块

@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(2): InterArrival模块0. 参考文档[1] google congestion control [2] Rtp payload format for h2641. 功能该模块主要对到达的时间进行小范围内的统计、采样,并根据一定的时间间隔计算出对应的延迟、传输大

2017-05-22 19:30:18 1801 1

原创 Webrtc delay-base-bwe代码分析(1): RateStatistics模块

@(webrtc)[webrtc, congestion control]Webrtc delay-base-bwe代码分析(1): RateStatistics模块RateStatistics这个类的作用为记录一个时间窗口内的速率值,并返回当前时间区域内的码率值。单独开一个文章主要是用来描述其用来记录速率值的桶,一开始看的比较迷糊。class RateStatistics { // Count

2017-05-22 19:22:43 1683

原创 webrtc中rtcp反馈与码率控制模块分析

webrtc中rtcp反馈与码率控制模块分析

2017-05-09 15:10:34 5240 1

原创 TCP的FRTO理解

TCP的FRTO理解本文主要描述内核4.9.4中的TCP丢包处理与frto相关的操作,主要覆盖使用sack的场景。0. 参考文档[1] RFC-5682 [2] linuxtcp.ps [3] frto.pdf1. FRTO要解决的问题FRTO主要是用来处理在DSACK生效时,突发的延迟触发RTO超时后,不必要的延迟和重传报文的ack造成了DSACK而产生非必要的快速重传[1]。 传统的基于D

2017-04-11 19:12:30 2317 2

原创 QUIC中文翻译

翻译地址距离上次完整翻译一篇文章已经好几年了,那还是本科毕设用的文章翻译,那时候还能用谷歌翻译,现在也又能了……….整体翻译因个人水平有限比较僵硬词汇量还是太差。。对于翻译,并不用把每句话都翻译出来,整段话意思一致就可以了。对于某些名词,也不需要完完全全翻译。顺便庆祝IG获得DAC冠军

2017-04-05 16:09:37 1202 1

原创 linux内核TCP拥塞控制两个速率增长阶段代码分析

TCP拥塞控制两个速率增长阶段分析0. 参考文档[1] rfc-5681 [2] tcp-abc-rfc [3] rfc-3465 [4] rfc-37421. 拥塞控制个人理解1.1 慢启动与拥塞避免慢启动和拥塞避免,主要是用于拥塞控制中拥塞窗口增长的维护。根据阈值,拥塞控制其实分为两部分,小于阈值的慢启动阶段,大于阈值进入拥塞避免阶段。慢启动作为拥塞控制的一部分,我觉得其名字取的比较具有混

2017-04-01 11:00:28 1529

原创 读书笔记-TCP简介

读书笔记-TCP简介本文主要记录阅读linuxtcp文章,了TCP拥塞控制的基础

2017-03-19 22:25:04 565

原创 从janus中学习webrtc的ice简单交换过程

本文通过web和janus进行实时音视频通信的Demo,结合rfc-5245来学习webrtc中ice交换的过程。

2017-02-21 14:54:33 12152 1

原创 Glib内存管理模块之magazine layer

Glib中使用了slab进行内存管理,同时引入了magazine cache来进行多级缓存。本文主要介绍magazine cache部分实现。

2016-12-01 15:09:31 1825

原创 state-threads的协程切换

state-threads是一个C语言实现的轻量级协程库,基于setjmp和longjmp来对不同协程进行切换。本文将先分析其保存上下文的setjmp和longjmp的汇编代码,简单分析其上下文切换的过程。

2016-11-10 11:58:50 1562

原创 gstreamer的collectpad源码分析

gstreamer的collectpad是一类特殊的pad,这类pad工作于收集模式,用于管理控制若干个pad组成的pad集合的数据同步处理。大部分的合成器(muxer)均使用collectpad来收集音视频数据,并根据可重载的收集条件判断函数对不同pad之间的数据进行处理(或同步)。 由于collectpad中大部分处理函数均可重载(set_func),因此本文只讨论默认的处理函数。

2016-11-08 10:16:40 4158

原创 gstreamer中rtpjitterbuffer的定时器线程及重传请求代码分析

本文主要描述gstreamer中rtpjitterbuffer的定时器线程的处理流程

2016-10-12 23:26:13 3349 4

原创 gstreamer中的rtpjitterbuffer代码分析:推送线程

本文主要分析gstreamer中的rtpjitterbuffer中推送数据线程的代码。

2016-10-09 22:20:56 3014

原创 gstreamer中的rtpjitterbuffer

本文主要介绍了gstreamer中的rtpjitterbuffer功能、简要处理流程及一些参数。

2016-10-09 22:20:28 3421

原创 内核源码IO多路复用EPOLL

本文简单介绍epoll流程

2016-05-16 11:39:48 7897

原创 内核源码IO多路复用之select

本文将基于内核2.6.32版本,简单了解select运作的原理。

2016-05-11 19:22:39 5948

原创 内核listen的backlog和简单的三次握手分析

前面通过抓包分析了listen backlog对全连接和半连接的影响,本文将从内核源码上简单了解下三次握手的过程以及backlog在中间所起的作用。

2016-05-04 23:22:02 6369 2

原创 Listen的backlog参数现象解析

介绍Listen中的backlog参数

2016-04-29 18:42:19 1465

原创 [源码]SQUID的简单内存调试方法

SQUID自身使用了一种简单的内存调试方式,可以在程序运行的时候对内存的使用情况进行监控调试(指开发层面的监控,如泄漏,内存合法性,不是运维层面的内存监控)。本文简单介绍其内部实现。不过对于其内存泄漏检查的部分代码仍有疑惑。

2016-04-09 15:01:42 938

原创 同名函数及链接过程

同名函数的构建及正常调用。

2016-03-06 23:07:49 2283

原创 UDP的connect

一、 简介:UDP是无连接的协议,不需要connect可以直接使用sendto/sendmsg等携带对端信息的函数对数据进行发送接收,但是其实UDP的socket也是可以进行connect的。connect完的socket和未connect的socket有如下区别:[1]1. 可以使用不指定目的信息的接收发送函数,如read/write2. 由已连接UDP套接字引发的异步错误会返回

2016-02-28 12:08:30 1360

原创 使用UDP的connect获取本机IP

使用UDP connect获取本机出口IP

2016-02-26 23:58:24 4322 2

原创 NGX的第三方负载均衡模块fair

nginx第三方负载均衡模块upstream_fair代码阅读

2016-02-15 09:05:48 2657

转载 Mac下的VI bundle配置

最早查看的文章来自http://www.jianshu.com/p/95d8335aeac7,但是根据其步骤发现安装和使用过程中总有部分问题,现总结如下:问题1:Unknown function: vundle##rc解决:将vundle##rc()修改为vundle#begin(),同时下载bundle项目到本地sudo git clone https://github.com/gm

2016-01-23 17:54:41 3044

原创 C++11内存模型

《C++并发编程实战》第五章-C++内存模型和原子类型操作

2016-01-12 14:34:56 883

原创 并发程序的乱序之一:编译器指令重排

并发执行的程序存在三种场景的乱序,编译器对指令重排导致变量之间的隐式逻辑打乱,多线程的内核调度,多核之间的cache一致性。

2016-01-11 14:13:18 3664

原创 C++11的future和promise及active object并发模式

《C++并发编程实战》中提到了C++11中的future,网上查找一些资料大都只说了使用,并没有详细介绍future。本文简单介绍了我对future的理解

2016-01-07 10:46:19 3514

原创 Nginx负载均衡代码之加权轮询

NGX的加权轮询实现代码

2016-01-07 10:40:06 957

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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