10 bad_sheep

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 14w+

TCP速率与窗口,带宽,RTT之间的关系

<br />以下部分内容是自己的理解,可能会有差错,如有发现,欢迎指正。<br /><br />窗口:<br />TCP是一个滑动窗口协议,即一个TCP连接的发送端在某个时刻能发多少数据是由滑动窗口控制的,而滑动窗口的大小实际上是由两个窗口共同决定的,一个是接收端的通告窗口,这个窗口值在TCP协议头部信息中有,会随着数据的ACK包发送给发送端,这个值表示的是在接收端的TCP协议缓存中还有多少剩余空间,发送端必须保证发送的数据不超过这个剩余空间以免造成缓冲区溢出,这个窗口是接收端用来进行流量限制的,在传输过程

2011-01-22 16:50:00

Socket编程中的强制关闭与优雅关闭及相关socket选项

<br /><br />以下描述主要是针对windows平台下的TCP socket而言。<br />首先需要区分一下关闭socket和关闭TCP连接的区别,关闭TCP连接是指TCP协议层的东西,就是两个TCP端之间交换了一些协议包(FIN,RST等),具体的交换过程可以看TCP协议,这里不详细描述了。而关闭socket是指关闭用户应用程序中的socket句柄,释放相关资源。但是当用户关闭socket句柄时会隐含的触发TCP连接的关闭过程。<br />TCP连接的关闭过程有两种,一种是优雅关闭(gracef

2011-01-21 21:38:00

关于微软汽车加油问题的数学推导过程

<br />题目如下:<br />  一辆载油500升的汽车从A开往1000公里外的B,已知汽车每公里耗油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从A到B最少需要多少油。<br /> <br /> <br /> <br />这个题想了好多天也没想出来,在网上找答案也都是基本相同的,只给出了一个结论,而没有一个详细推导过程。今天没事在家仔细<br /> <br />的推导了一下,终于有些眉目了。记录如下:<br />由最少耗油的要求,先得有几个前提:<br />

2010-08-22 13:38:00

差之毫厘谬以千里----精度丢失引起的问题

<br />      场景是这样的,开发中需要统计某个正整数A的平均值,数A是随时间变化的。这本来是一个很简单的问题,可以用一个值B来统计这个A的累积和,在用B除以统计次数就可以了。但是开始时不想另外搞一个值B。所以推了一个公式出来,设n为统计次数,f(n)为前n次的统计平均值,Xn为第n次统计时的A值,那么很容易就可以得到公式:f(n) = [(n-1)*f(n-1) + Xn]/n,这个看似没有任何问题吧,开始我也以为是,但是使用过程中发现算出的平均值随时间慢慢变的越来越小。时间长了之后发现这个不太对

2010-08-15 10:52:00

Windows SEH中的局部展开与全局展开

<br />经过阅读windows核心编程一书,对SEH中的局部展开和全局展开终于有了一个比较清晰的概念。<br />先说说__finally块的语义,__finally块语义就是只要是指令流将要流出其对应的__try块时,则__finally块中的代码将得到执行。那么所谓展开就是保证__finally块中的代码得到执行。下面详细解释下局部展开和全局展开<br />。<br /> <br />局部展开就是指某个函数中的__try块中的代码因为执行了return,break,goto,continue等指令使

2010-08-11 12:02:00

幸运数问题

<br />题目是:<br />定义“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888<br />定义“近似幸运号码”是能被任意一个幸运号码整除的那些号码,比如6,8,12,16<br />现在问对闭区间[a, b],“近似幸运号码”的个数。<br /> <br />解法:<br />算法的基本思路还是利用二叉树,先求出小于上限的所有幸运号码,然后求每个幸运号码的倍数,所有倍数在区间内的即为所求。<br />因为基本幸运号码为2个:6,8。设上限的数据位数为n,那么n位幸运号码的

2010-07-03 18:08:00

0,1序列问题

<br />题目如下:<br />用n个1和m个0组成字符串,要求任意的前k个字符中,1的个数不能少于0的个数。<br />问满足要求的字符串数目。<br /> <br /> <br />解法:<br />该题的解法也是看了一些牛人的提示才知道的,也才知道catalan数这种东东,catalan数的一个典型应用实例跟这个题很相似,其分析过程也很有启发作用,这个应用实例是这样的:<br />一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?<br />实例分析过程:<br />对于每一个

2010-07-03 17:55:00

容斥原理

<br />容斥原理:  <br />在计数时,必须注意无一重复,无一遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。<br /><br />详细推理:<br />两个集合的容斥关系公式:A∪B = A+B - A∩B (∩:重合的部分) <br />三个集合的容斥关系公式:A∪B∪C = A+B+C - A∩B

2010-07-03 17:38:00

catalan数

【Catalan数——卡特兰数】一.Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n) = C(2n-2,n-1)/n,n=1,2,3,...(其中C(2n-2,n-1)表示2n-2个中取n-1个的组合数)二.Catalan数公式推导截图:三.Catalan数的典型应用:1.括号化问题。矩阵链乘: P=A1×A2×A3×……×An,依据乘法结合律,不改变其

2010-07-03 17:13:00

笔试题解法讨论

今天在论坛上上看到了几道迅雷的笔试题,觉得还是挺难的,思考了好一阵,有了个大致的思路,现在想记下来以便以后回顾,同时也想起个抛砖引玉的作用,如果有某位xdjm看到了,发现有错误或者有更好的解法,都请告诉我,大家一起讨论,共同进步。题目有3道,如下:一、实现一个高性能的文件缓存系统,先写好思路,再编码实现。二、实现一个高效率的程序(包括所需程序代码),以尽量短的时间,将用户信息表中150张按照时间hash的表(每张表的数据量为100万,数据字段包含《最近修改时间戳/username/nickname/出生地/

2010-06-20 20:06:00

内存字节对齐详解[转载]

<br />一、什么是对齐,以及为什么要对齐:<br />1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。<br />2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要

2010-06-11 09:13:00

同步/异步,阻塞/非阻塞IO

<br />看来网上一篇说同步/异步io,阻塞/非阻塞io概念区别的文章,感觉写的不错,使用去银行办理事务的比喻很生动贴切(原文在这里http://www.cppblog.com/converse/archive/2009/05/13/82879.html),然而我对此两组概念的理解与作者还是有所出入。作者所言,同步/异步是消息通知机制的不同,阻塞/非阻塞时程序等待消息时的状态不同。比如如果一个人去排队等待办理业务就是同步,而拿着序号等待叫号办理就是异步。如果排队时或等待叫号时还做其他事情就是非阻塞,如果不

2010-06-04 23:47:00

查看更多

勋章 我的勋章
    暂无奖章