网络编程
文章平均质量分 77
禾田八久
这个作者很懒,什么都没留下…
展开
-
跳跃表的实现
Redis 的跳跃表由 redis.h/zskiplistNode 和 redis.h/zskiplist 两个结构定义, 其中 zskiplistNode 结构用于表示跳跃表节点, 而zskiplist 结构则用于保存跳跃表节点的相关信息, 比如节点的数量, 以及指向表头节点和表尾节点的指针, 等等。 header | tail | level \n 5 | length \n 3转载 2015-06-02 22:26:48 · 661 阅读 · 0 评论 -
一致性hash算法释义
//转载至http://www.cnblogs.com/haippy/archive/2011/12/10/2282943.html一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,转载 2015-06-02 15:38:13 · 649 阅读 · 0 评论 -
网络传输协议之二进制反码校验和剖析
网络传输协议之二进制反码校验和剖析什么是二进制反码求和?对一个无符号数,先求其反码(按位取反之意,与有符号数中定义的反码表示是不相同的),然后从低位到高位,按位相加,等于2则进1,若最高位有进位,需要向最低位加1。在这个定义中,与补码加法有些区别的是,若最高位有进位,需要向最低位进位。理解起来有些抽象,以4bit为例加以说明。假设0010是补码表示,则其反码是各2进制位按位取反1101,同理补码1010的反码表示为01原创 2015-05-23 23:52:15 · 2692 阅读 · 0 评论 -
linux c、c++高并发服务内存泄露追踪分析
最近,我一直忙于追踪分析,咱公司高并发代理服务器内存一直占用过高的问题。该问题表现如下,使用python脚本压测,服务器使用的物理内存一直飙升很快上G、虚拟内存更是高达数10G,没有下降的趋势。当压测程序停止运行后,整个服务占用的物理内存以及虚拟内存并没有下降的趋势。首先简诉咱服务器运行的平台是centos-6.3(linux-2.6.32),该服务器是多进程的,基于libevent网络通信框原创 2015-09-19 00:19:10 · 10629 阅读 · 1 评论 -
linux多进程可伸缩模型探索
最近,在工作中遇到了一个需求,希望网络框架可以动态的增加或者减少进程数。采用多进程模型,可以提高服务的并发性。云平台提供的服务都是多租户的,每个用户对并发性的需求是不一样的。如果接入层同时为多个用户提供服务,可能会出现相资源竞争、相互干扰的现象,定位和排查问题比较复杂。为了避免这个问题,那就一个接入层只服务一个客户,这样避免了资源竞争,相互干扰。随之而来的是,接入层部署的数量将会显著增长。接入层到原创 2016-07-03 16:20:57 · 896 阅读 · 0 评论 -
分析tcp-rst数据报文产生场景以及判断谁主动断开连接
判断tcp连接断开方向是排查线上问题的重要依据和基础。根据我在实际工作中的经验总结,主要分析了连接断开并不是四次挥手的场景下,如何判断哪一方主动断开连接,也分析了产生rst标识的数据报文的场景。原创 2016-01-24 16:35:35 · 3563 阅读 · 0 评论