上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 利用crash工具,我们可以很方便的查看正在运行内核的一些全局变量的数据结构,如TCP的ehash、bhash哈希桶,全局变量的查看比较简单。Crash工具还允许我们查看调用堆栈内部的局部变量,下面示例查看一个进程的listen sock结构(实际上从file->private_data中查看更为方 阅读全文
posted @ 2016-11-07 14:36 lshs 阅读(1825) 评论(0) 推荐(0) 编辑
摘要: 一、概述这里主要简单分析一个丢包重传并恢复的场景,通过不同的设置让这个相同的场景分别触发RACK重传和前向重传,通过对比说明以下问题:Forward Retransmit可以产生只有重传标记的数据包,也可以产生同时具有重传标记和SACK标记的数据包,注意这里说的这些数据包是没有Lost标记的,这是前向重传与之前介绍的快速重传及其变种的差异,进而会对in_flight的统计产生影响。Recovery... 阅读全文
posted @ 2016-11-07 14:36 lshs 阅读(2454) 评论(0) 推荐(0) 编辑
摘要: 一、概述这里的重点是介绍TLP、ER与拥塞控制并不是介绍TLP和ER本身,因此TLP和ER的详细内容请翻前文。在TLP与拥塞控制的交互中有几个点需要注意1、TLP触发的重传后,TCP仍然处于Open状态,TLP重传也不会更新lost_out等状态变量,TLP重传发出的是探测报文并不是因为当前确定丢包而重传。2、TLP与ER/FACK是相互组合的,TLP触发的FACK重传与之前介绍的FACK下快速恢... 阅读全文
posted @ 2016-11-07 14:35 lshs 阅读(2197) 评论(0) 推荐(0) 编辑
摘要: 一、概述我们之前在SACK关闭场景下的拥塞撤销那篇文章中提到过Eifel探测算法(Eifel Detection Algorithm),最早在介绍DSACK和FRTO的时候我们就有提到过Eifel探测算法。Eifel探测算法是基于TSopt选项中TSV的单调非减特性设计的。简单介绍一下Linux中Eifel探测算法的实现,Linux会在TCP进行第一次重传的时候把重传数据包的TSV记录在状态变量r... 阅读全文
posted @ 2016-11-07 14:34 lshs 阅读(1591) 评论(0) 推荐(0) 编辑
摘要: 一、概述DSACK下的虚假重传的检测我们之前重传部分的文章已经介绍过了,这里简单说一下拥塞控制部分的实现。linux内部会维护一个undo_retrans状态变量,其值为已经重传的次数减掉被DSACK检测到的虚假重传的次数,例如当前总共重传了5个数据包,DSACK检测到3个虚假重传,那么undo_retrans即为2。undo_retrans初始化为-1,当发生重传的时候,如果undo_retra... 阅读全文
posted @ 2016-11-07 14:33 lshs 阅读(1667) 评论(0) 推荐(0) 编辑
摘要: 一、概述FRTO虚假超时重传检测我们之前重传章节的文章已经介绍过了,这里不再重复介绍,针对后面的示例在说明两点1、FRTO只能用于虚假超时重传的探测,不能用于虚假快速重传的探测。2、延迟ER重传触发的进入Recovery状态时候,并不会立即更新cwnd。本篇在演示FRTO的同时,还会涉及到ER超时重传、TLP探测、SACK关闭场景下的拥塞撤销,后面或者前面都会有针对这些场景的专门介绍文章。一、wi... 阅读全文
posted @ 2016-11-07 14:32 lshs 阅读(1680) 评论(0) 推荐(0) 编辑
摘要: 一、概述FACK下的重传我们在之前的重传部分已经进行了介绍,这里简单介绍一下随着FACK提出的拥塞控制算法的改进及随后的进一步改进。从我们之前介绍的RFC2582和RFC5681中可以看到,快速恢复下当探测到丢包的时候,会设置ssthresh = max (FlightSize / 2, 2*MSS)、 cwnd=ssthresh+3*MSS,随后发送端收到dup ACK的时候进行cwnd的inf... 阅读全文
posted @ 2016-11-07 14:31 lshs 阅读(4036) 评论(2) 推荐(0) 编辑
摘要: 一、概述 1、SACK下的特殊处理过程 SACK下的拥塞控制处理是linux中拥塞控制的实现依据,再次强调一遍RFC6675的重要性,linux中拥塞控制主体框架的实现是与RFC6675一致的,所以如果要理解linux中拥塞控制的实现,强烈建议看一下RFC6675。我这里给出RFC6675中SACK 阅读全文
posted @ 2016-11-07 14:31 lshs 阅读(1626) 评论(2) 推荐(0) 编辑
摘要: 一、概述这篇文章介绍一下TCP从Recovery状态恢复到Open状态的时候cwnd的更新。我们在tcp重传部分的文章中曾经介绍过虚假重传的概念,Linux在探测到虚假重传的时候就会执行拥塞撤销操作。所谓的拥塞撤销是指撤销虚假的快速重传或者RTO超时重传对拥塞窗口的影响。有多种方法可能会触发拥塞撤销如前面介绍的DSACK和FRTO以及后面要介绍的Eifel算法以及本文介绍的SACK关闭场景下的拥塞... 阅读全文
posted @ 2016-11-07 14:30 lshs 阅读(2805) 评论(0) 推荐(0) 编辑
摘要: 修改linux内核代码或者内核模块的时候,搞不好就会造成linux死机崩溃,crash死机后/var/log/kern.log里面不会有任何异常信息记录。这时候kdump就会派上用场了,网上kdump的中英文介绍资料很多,但是很多都是基于系统自带的linux进行说明的,这里记录一下在新编译的内核上使 阅读全文
posted @ 2016-11-07 14:30 lshs 阅读(6282) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页