摘要:
简单分治之归并排序 分治模式,在每层递归有三个步骤: 分解:将原问题分解为若干子问题 解决:递归求解各子问题;当子问题的规模足够小时,则直接求解 合并:合并子问题的解成为原问题的解 include define MAX 0x7fffffff //用作哨兵 / 归并排序 / //辅助子程序 //左右两 阅读全文
摘要:
asio kcp代码走读 (1)kcp_client_wrap类 a 提供方法接口如下: b 包含的私有方法: start_workthread client_event_callback_func handle_client_event_callback do_asio_kcp_connect_l 阅读全文
摘要:
【简单递归】 题目描述 已知 n 个整数b1,b2,…,bn 以及一个整数 k(k<n)。 从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。 例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+ 阅读全文
摘要:
(1) 几个概念介绍 1 seq:数据段的序号,计算方法或者增长方式:seq2=seq1+len1(len仅仅是数据段的长度,不包括TCP头)(同一个发送方的tcp报文序号的计算方法) 2 ACK:确认号的计算方法,接收方的ACK号与发送方的SEQ和LEN之间的关系: 甲:发送“seq:x,len: 阅读全文
摘要:
说明:该文紧接上篇博文“ linux epoll机制对TCP 客户端和服务端的监听C代码通用框架实现 ”讲来 (1)TCP粘包处理数据结构设计 数据结构说明: 每个tcp连接维护一个TCP粘包处理结构体TCP_NL_MSG,代码可以维护一个全局变量map<int, TCP_NL_MSG> g_map 阅读全文
摘要:
1 TCP简介 tcp是一种基于流的应用层协议,其“可靠的数据传输”实现的原理就是,“拥塞控制”的滑动窗口机制,该机制包含的算法主要有“慢启动”,“拥塞避免”,“快速重传”。 2 TCP socket建立和epoll监听实现 数据结构设计 linux环境下,应用层TCP消息体定义如下: 其中,hea 阅读全文
摘要:
优秀编码的几条原则: 1 好的函数实现 层次清晰化 实现尽可能简洁 高内聚:功能尽可能单一 封装性好:对通用处理部分进行抽象封装 函数命令清晰 合理的封装的意义: 对使用者屏蔽了细节处理,重用性好,使用方便。 2 开闭原则 定义:一个软件实体(类、模块或函数)应当对扩展开放,对修改关闭。 比如,一个 阅读全文
摘要:
最近工作中遇到内核模块VM将大的TCP包(超过1500字节)丢弃,重传严重,进而导致整个系统的FTP下载速率低的问题,解决方案有二: 1 不改动内核代码通过修改相关内核参数选项等,使到达该内核模块VM的IP包均为小包,从而规避掉这个丢包问题; 2 为该内核模块开发新需求,使其能够处理大包。 “丢包分 阅读全文
摘要:
linux中获取当前时间、统计程序运行时间,可以使用gettimeofday()得到毫秒级的时间统计,利用rdtsc指令获取纳秒级时间统计。 gettimeofday() 它是一个linux C库函数,封装了系统调用sys_gettimeofday(),在X86_64系统中,该函数是调用vsysca 阅读全文
摘要:
CPU与内存 北桥:主桥,主要用来处理高速信号,负责与处理器的联系;CPU通过FSB前端总线来访问内存控制器。 南桥:IO桥,负责IO总线之间的通信,比如PCI总线、SATA、USB等,可以连接光驱、硬盘、键盘等设备交换数据。 架构一:内存控制器集成在北桥中,缺陷:瓶颈有二,北桥和内存,当处理器和外 阅读全文