- 博客(30)
- 收藏
- 关注
转载 TCP拥塞控制
0x01 为什么要做拥塞控制我们知道TCP是一个可靠的传输层协议,与UDP最大的不同首先是可靠,然后是,为了实现可靠性,TCP需要在发送端和接收端维护发送窗口和接收窗口来缓存尚未被确认的报文。发送窗口是拥塞控制算法对当前网络传输能力的一个评估,发送窗口越大,拥塞控制算法认为那么什么时候是网络拥塞呢?根据乡农公式,每条信道都有其最大容量,比如我们通过ethtool看到...
2018-12-09 15:35:00
424
转载 TCP/IP OPTION字段
0x01 简介TCP头部和IPV4头部除了固定的20字节外,都设置了 OPTION 字段用于存储自定义的数据,因为TCP头部和IPV4的报文长度字段均为4字节,所表示的最大值为15, 乘4,报文头部最大长度为60字节,因此Option字段最大长度为40字节,足够存储大量的报文控制信息。TCP和IPV4 OPTION的格式均为(标识字段 - 长度 - 数据)格式,一般采取4字节对齐存...
2018-07-12 22:46:00
2434
转载 Google Quic协议
0x01 QuicQUIC协议于2012年实现,2015年提交RFC草案,它是Goolge为了解决当今WEB应用常见的传输层和应用层问题而提出的,从分层结构上可以看做是TCP+TLS+HTTP2的集合,不过是在UDP的基础上实现的主要解决了下面的几个问题Connection establishment latency(连接时延)Flexible conges...
2017-08-28 23:03:00
556
转载 显式拥塞通告(ECN)及其在Linux上的实现
1 ECN简介首先看看ECN握手报文的特点,根据RFC3168,ECN握手报文IP头部不能够设置ECT和CE位的SYN报文TCP标志字段的CWR和ECE位被置1SYN-ACK报文的CWR位被置0,ECE位被置1报文在网络上传输的过程中,如果路由器判断自身发生拥塞则在报文的IP首部设置CE标志服务器端在接收到有CE标志的报文后,立即构造带有ECE标志的...
2017-02-12 16:19:00
2517
转载 MapReduce实现Apriori算法
Apiroi算法在Hadoop MapReduce上的实现输入格式:一行为一个Bucket1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 1 3 5 7 9 12 13 15 17 19 21 23 25 ...
2016-09-28 00:55:00
1583
转载 FTP 代理服务器实现
本文将在Linux环境下实现一个简单的FTP代理服务器,主要内容涉及FTP主动/被动模式和简单的Socket编程。1. 主动模式和被动模式FTP有两种模式,即主动模式(Active Mode)和被动模式(Passive Mode),主要区别在谁在监听数据端口。1.1 主动模式FTP服务器在开启后一直在监听21号端口等待客户端通过任意端口进行连接,客户端通过任意端口port...
2016-05-30 22:39:00
1093
转载 Linux 动态链接库 - dll劫持
如何使用动态链接库Linux下打开使用动态链接库需要三步(实际上和windows下基本一样):1.加载动态链接库,通过调用库函数dlopen()获得链接库的句柄,对应于windows下的 AfxLoadLibrary函数 //参数一filename是.so文件路径 //参数二flag指定解析符号的时间点等 //返回值是链接库的句柄 ...
2015-10-09 23:10:00
392
转载 BUG调试: Jump to the invalid address stated on the next line at 0x0: ???
gdb或者vlagrind报告:==14569== Jump to the invalid address stated on the next line==14569== at 0x0: ???==14569== Address 0x0 is not stack'd, malloc'd or (recently) free'd错误原因:函数通过jm...
2015-09-08 11:44:00
434
转载 Nginx中的进程亲和性 affinity
Nginx采用多进程Master/Worker结构,Worker进程数为CPU个数时工作效率最高,Nginx通过affinity为每个Worker进程绑定一个CPU,避免进程切换带来的消耗,同时能够保证缓存命中率。Nginx配置文件conf/nginx.conf中关于Worker进程个数,和affinity的配置命令:worker_processes 4;worker_...
2015-07-28 10:01:00
146
转载 排列
字符串下一个排列,上一个排列,和随机排列 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 #define MAXLINE 4096 6 7 void next_permutation(char *str); ...
2014-09-17 23:21:00
99
转载 最小生成树 HDU1301 (kuskal & prim)
Kruskal:1.边排序,2.按边从小到大连接森林至树 3.并查集 #include <stdio.h>#include <stdlib.h>#include <memory.h>#define MAXN 27typedef struct{ int u,v,cost;}EDGE;int f...
2014-09-10 22:05:00
108
转载 排序
/***************************************************** *author:chen xin *email:cx2pirate@gmail.com *date:2014.09.08 * **************************************************/#includ...
2014-09-09 23:18:00
91
转载 最短路径HDU3790(Dijkstra)
准备考研,荒废了好多东西,希望做了正确的决定/********************************************************* *author:chen xin *email:cx2pirate@gmail.com *date:2014.09.09 * *************************************...
2014-09-09 23:05:00
95
转载 HDU2138(Miller-Rabin素数检测)
最近在看RSA,找到一个一个大素数是好多加密算法的关键一步,而大素数无法直接构造,一般情况下都是生成一个随机数然后判断是不是素数。判断是否是素数的方法有好多,有的能够准确判断,比如可以直接因式分解(RSA的安全性就基于这是困难的),速度稍微快一点的对素数又有特殊要求,而Miller-Rabin素数检测法可以在一定概率上认为一个数是素数,以极小概率的错误换取时间。Miller-Rabin算...
2014-06-23 23:55:00
184
转载 B树
1 /************************************************ 2 *作者:陈新 3 *时间:2014 6.3 4 *邮箱:cx2pirate@gmail.com 5 * **********************************************/ 6 7 #ifndef _HEADER_B...
2014-06-07 14:07:00
107
转载 红黑树与二叉树
linux内核中有个rbtree,stl源码中也有,标准stl中的map和set都只是包装了下rbtree全部代码:点击打开链接 1 /************************************************************* 2 * 作者:陈新 3 * 邮箱:cx2pirate@gmail.com 4 ...
2014-06-02 12:37:00
90
转载 字符集问题
被各种乱码整得焦头烂额,查了些资料,理了理,挺有意思的。首先是ASCII码,美国搞出来时用32至127表示可打印字符,0至31为控制字符,如0x0A (LF换行),0x0D(CR回车)。然而随着计算机普及,非英语地区开始想使用自己的语言,于是8位ASCII码的最高位也被用上了,而亚洲地区出现使用两个字节表示一个字符的编码,如天朝的GB-2312,台湾的Big5,Japs的JIS等等,...
2014-05-18 23:50:00
135
转载 大整数运算
//(HDU1134,HDU1261)#ifndef HEADER_BIGINT#define HEADER_BIGINT#include <iostream>#include <iomanip>#include <string>using namespace std;class BigInt{ publi...
2014-05-03 15:13:00
98
转载 最大流 USTC1280
挺有意思的一题,最小路径之后最大流 /************************************************************** 作者:陈新 邮箱:cx2pirate@gmail.com 用途:ustc1280.cpp(图) 时间:2014 4月17日 21:55 测试:未验证 思路:先求最短路径,根据dis[v]...
2014-04-21 18:28:00
226
转载 POJ1948
还以为有什么好的方法呢/************************************************************** 作者:陈新 邮箱:cx2pbirate@gmail.com 用途:pboj1948 时间:2014 4月13日 15:17 测试: 12749645 Will4944 1948 Accepted 1025...
2014-04-13 16:03:00
121
转载 并查集(POJ1182)
链接:http://poj.org/problem?id=1182定义一种关系R(x,y),x > y 时 R(x,y) = 2;x = y 时 R(x,y)= 1;x < y 时 R(x,y) = 0则R(x,y)有如下运算法则:R(x,y) = (R(x,u) - R(y,u) + 4) % 3R(x,y) = (R(x,u) + R(u,y) +...
2014-04-12 15:10:00
111
转载 推箱子游戏
推箱子 1 /************************************************************** 2 作者:陈新 3 邮箱:cx2pirate@gmail.com 4 用途:hdu1254_2 5 时间ﺿ014.3.31 21:11 6 测试ﺿ0447364 2014-04-0...
2014-04-01 09:30:00
138
转载 HDU1237
1 /************************************************************** 2 作者:陈新 3 邮箱:cx2pirate@gmail.com 4 用途:hdu1237 5 时间:2014.3.4 23:17 6 编译环境 : g++ 7 数据:10308543 2014-0...
2014-03-15 20:49:00
129
转载 离散傅里叶变换计算乘法
利用傅立叶变换可以把大数乘法时间控制在:O(n*lgn),首先把整数a1a2...an看作多项式f(x) = a1x + a2x^2 + .... an x^n(其中x取10),把整数乘法转换为多项式乘法,多项式一般乘法也要O(n*n)时间,而多项式点值表示法的乘法只需要O(n)的时间,于是就有了条折返路线,如下:1.首先把f(x)扩展为2n次多项式,取2n个点求多项式值 (O(n...
2013-10-26 10:44:00
449
转载 补码负数多一个的问题
这是一个困扰我许久的问题,总是似懂非懂,负数补码表示比原码多一个,8位为-128 -- 127,32位定点整数范围为-32768 -- 32767,有几个点有点感觉:1.负数零的原码补码相同10000000按照取反加1得到00000000,按照取模也是得到00000000所以就多了个10000000没有原码可以转换为它。2.那为什么又将它定位负数最小值?我是这样理解的,01111...
2013-07-07 22:56:00
1913
转载 分支限界
分支界定是一种在问题的解空间树上搜索问题的解的方法,其实就是剪枝广搜,它始终维护一个上下界用来剪枝,一个限界函数计算对解的最有期望。主要用于解决离散问题的优化。分支界定的关键问题:(1)如何确定合适的限界函数(2)如何组织待处理节点表(3)如何记录最优解路径限界函数应该是经过该节点所有搜索路径的最佳期望最大问题:本质还是广搜,复杂度肯定不低...
2013-07-03 11:37:00
113
转载 八数码
A*搜索是最佳优先搜索最广为人知的形式,是一种有信息搜索策略,它的核心是一个估值函数:f(n)=g(n)+h(n),g(n)是从起始点到节点n的路径耗散,而h(n)是从节点n到目标节点的最低耗散路径的估计耗散值,因此f(n)=经过节点n的最低耗散解的估计耗散。完备性证明:A*搜索能够找到最低耗散解的依据是一个可采纳启发式:h(n)不会高估经过节点n的实际耗散,采用可采纳启发式h(n)...
2013-06-30 14:42:00
87
转载 传教士与野人
仅供学习使用,还请大神多多指点! 传教士与野人问题描述:M个传教士和N个野人在河的一边,还有一条能载一个人或者两个人的船。找到一个办法让所有的人都渡到河另一岸...
2013-04-20 20:29:00
214
转载 计算几何
把草稿纸上的集合体转变成代码其中还是有很多细节问题需要注意的,《算法导论》主要介绍了叉积在几何学中的应用。向量的两个运算点积与叉积,点积:ab = |a||b|cos 叉积:a x b = |a||b|sin,由于叉积的形式与面积公式相似,也常用于计算多边形的面积,同时如果a x b > 0则a 向量在b向量的顺时针方向上,利用这个性质,《算法导论》介绍了凸包的求解方法。HDU...
2013-03-17 13:49:00
93
转载 字符串匹配自动机
在长度为n的数组T[n]中查找一个长度为m的数组P[m],如果用朴素字符串匹配方法要用O(mn)的时间,用自动机匹配要O(n)的时间,但一般的自动机要O(ml)的时间(l为字符集的宽度),而KMP只要O(m)的预处理时间。其实最早接触字符串匹配自动机应该是在数字电路中的序列检测器那时候,序列检测器是用硬件区实现一个个状态的转换,这里和那儿是一个原理。主程序维持一个状态量mode是在读...
2013-03-11 21:33:00
118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人