摘要: 先看效果 代码实现 需要修改适配相关的端口,或者wireshark设置强制解析 do -- 简单的认为单个tcp报文就是单个rcmb消息,假设不会拆包或者合包 local p_RCMB = Proto("RCMB","Redis Cluster message bus") --RCmb协议的基础字段 阅读全文
posted @ 2020-10-05 12:24 lshs 阅读(529) 评论(0) 推荐(0) 编辑
摘要: 结构图netlink特点netlink socket创建流程代码流程关键函数关键变量相关函数netlink bind绑定流程代码流程相关函数/宏定义connect调用代码流程sendto & sendmsg关键函数wireshark 抓取netlink报文netlink_recvmsg关键函数其他资 阅读全文
posted @ 2020-10-05 11:56 lshs 阅读(1681) 评论(1) 推荐(0) 编辑
摘要: 一、模块加载方法1、在配置文件或者启动参数里面通过指令加载2、Redis启动后,通过指令加载,另外可以查询当前所有已加载模块。可以卸载已经加载的模块,注意name为模块的注册名字,不一定和模块文件名相同。二、介绍Redis模块是一种动态库,可以用与Redis内核相似的运行速度和特性来扩展Redis内核的功能。作者认为lua脚本只是组合Redis内核的现有功能,但是Redis模块则可以扩展Redis... 阅读全文
posted @ 2016-12-19 17:30 lshs 阅读(2806) 评论(0) 推荐(1) 编辑
摘要: Redis4.0版本相比原来3.x版本,增加了很多新特性,如模块化、PSYN2.0、非阻塞DEL和FLUSHALL/FLUSHDB、RDB-AOF混合持久化等功能。尤其是模块化功能,作者从七年前的redis1.0版本就开始谋划,终于在4.0版本发布了,所以版本号也就从3.x直接迭代到了4.0以表示版本变化之大。简单看了一下新版的PSYN2.0,虽然很多细节没搞清楚,但是大概流程倒是搞明白了。一、主... 阅读全文
posted @ 2016-12-18 19:09 lshs 阅读(3786) 评论(3) 推荐(0) 编辑
摘要: 具体每种重传类型的wireshark示例解说参考前文 来自为知笔记(Wiz) 阅读全文
posted @ 2016-11-07 14:54 lshs 阅读(2490) 评论(3) 推荐(0) 编辑
摘要: 目前已经有了英文版第二版的TCPIP详解,中文版暂时还没有,但是英文版还是有好几处错误,作者和官方竟然没有维护一个勘误表。 个人阅读过程中针对TCP部分可能有问题的地方简单勘误一下 P596:示意图中最后一条TCP消息,Seq=K+1,作者写成了Seq=K。 P600:TCP同关示意图中最后一条TC 阅读全文
posted @ 2016-11-07 14:52 lshs 阅读(2038) 评论(0) 推荐(0) 编辑
摘要: 一、epoll_create & epoll_create1 SYSCALL_DEFINE1(epoll_create, int, size) sys_epoll_create->sys_epoll_create1 SYSCALL_DEFINE1(epoll_create1, int, flags) 阅读全文
posted @ 2016-11-07 14:50 lshs 阅读(2868) 评论(0) 推荐(1) 编辑
摘要: 一、概述 ECN的相关内容是在RFC3168中定义的,这里我简单描述一下RFC3168涉及的主要内容。 1、AQM和RED 目前TCP中多数的拥塞控制算法都是通过缓慢增加拥塞窗口直到检测到丢包来进行慢启动的,这就会导致数据包在路由器缓存队列堆积,当路由器没有复杂的调度和缓存管理策略的时候,路由器一般 阅读全文
posted @ 2016-11-07 14:40 lshs 阅读(9536) 评论(0) 推荐(0) 编辑
摘要: 前面我们演示分析了100+个wireshark TCP实例,拥塞控制部分也介绍常见的拥塞处理场景以及4种拥塞撤销机制,但是我们一直使用的都是reno拥塞控制算法。实际上拥塞控制发展到今天已经有了各种各样的拥塞控制算法,而且普遍认为单纯基于丢包的reno拥塞控制算法已经不适应当前internet网络了,最近谷歌又折腾出了一个BBR拥塞控制算法,对比国内,还没有一个在TCP领域有突出贡献的公司,谷歌在... 阅读全文
posted @ 2016-11-07 14:40 lshs 阅读(5090) 评论(0) 推荐(0) 编辑
摘要: 一、概述我们之前介绍过rtt、ssthresh等变量,这些变量一般在TCP连接建立的时候有个初始值,然后随着TCP的数据交互逐渐调整到适应对应的网络状态的值。但是如果每次TCP建立连接都依靠默认初始值逐渐调整,那么可能需要一段时间才能调整到合适值,这显然会降低TCP性能,对于这种场景一种优化方案就是destination metrics。RFC2140中描述,如果新建立的连接从已经关闭的连接缓存的... 阅读全文
posted @ 2016-11-07 14:37 lshs 阅读(2447) 评论(0) 推荐(0) 编辑