一次诡异的TCP连接异常分析
近期测试发现,项目中的ProxySvr从DatStore模块下载数据偶现失败,从返回的错误码来看,框架层提示网络错误,数据下载都是内网传输,带包ping测试rtt、丢包率正常,网络出问题的机率很小。
这种网络问题,通常就需要使用抓包工具tcpdump进行抓包来辅助分析,在ProxySvr上[……]
近期测试发现,项目中的ProxySvr从DatStore模块下载数据偶现失败,从返回的错误码来看,框架层提示网络错误,数据下载都是内网传输,带包ping测试rtt、丢包率正常,网络出问题的机率很小。
这种网络问题,通常就需要使用抓包工具tcpdump进行抓包来辅助分析,在ProxySvr上[……]
近期团队内部举行了几次代码评审,初衷是想通过代码评审,发现潜在问题,减少上线后影响用户体验。与此同时,交流编程技巧,拓宽编程思路,提升整体的编码能力。
整个代码评审采用由易入难,先总体再具体的思路,主要流程如下。
首先要讲述分享的代码,在系统架构中的位置。具体功能、调用关系、交互[……]
无论是手机APP还是大疆无人机,都需要与后台Server打交道。打交道使用的语言,就是数据协议。常见的协议包括标准的HTTP协议、DNS解析协议。
大部分CS结构,开发者都会采用自定义的应用层协议。协议设计的好坏对于模块的性能、兼容性、安全性具有重要意义。
自定义协议[……]
最近在使用RPC框架开发后台Server,RPC默认将协议数据通过Protobuf进行封装。大多数场景下,这样做都没啥问题。然而,我们Server使用RPC框架后,数据处理延时增长了2倍。
近期调研发现,FEC实现算法有两种,cm256和OpenFEC算法,验证这两种算法在相同丢包率下,两种算法恢复后的丢包率、恢复耗时,以便选择出使用哪种算法性能更优。[……]
在 n×m 个点组成的地图上,每一个点可以用坐标 (x, y)(1≤x≤n,1≤y≤m)来表示。地图上爬来了一只小蚂蚁,小蚂蚁从地图边界上的一点出发(形式化地说,从 (x0,y0) (x0=1或x0=n或y0=1或y0=m )出[……]