摘要:
一、概述我们之前介绍过Tahoe版本中,无论是快速重传还是RTO超时重传,都会触发乘法减小,将cwnd置为1,然后重新开始慢启动过程。在reno版本中引入快速回复,当发生快速重传的时候,就会触发快速恢复过程,但是reno中的快速恢复过程在收到partial ACK的时候就会退出。在new reno中对快速恢复进行了改进,只有当收到的ack number越过recovery point的时候,才会退... 阅读全文
posted @ 2016-11-07 14:28
lshs
阅读(4981)
评论(0)
推荐(0)
摘要:
一、概述在RFC2861中,区分了TCP连接数据传输的三种状态network-limited:TCP的数据传输受限于拥塞窗口而不能发送更多的数据application-limited:TCP的数据传输速率受限与应用层的数据写入速率,并没有到达拥塞窗口上限,有些文档也称呼这种场景为data-limitedidle:发送端没有额外的数据等待发送,当数据发送间隔超过一个RTO的时候就认为是ilde态。之... 阅读全文
posted @ 2016-11-07 14:26
lshs
阅读(3694)
评论(4)
推荐(0)
摘要:
在本篇中我们继续上一篇文章wireshark的示例讲解,上一篇介绍了一个综合示例后,本篇介绍一些简单的示例,在读本篇前建议先把上一篇读完,为了节省篇幅,本篇只针对一些特殊的场景点报文进行讲解,不会像上一篇一样对每个报文都进行讲解并随报文更新相关状态变量的值了。一、wireshark示例本篇示例的TCP测试仍然设置初始拥塞窗口为3,并关闭TSO、GSO等功能。同时设置wireshark使其不在inf... 阅读全文
posted @ 2016-11-07 14:24
lshs
阅读(2839)
评论(5)
推荐(0)
摘要:
一、Linux中的慢启动和拥塞避免 Linux中采用了Google论文的建议把IW初始化成了10了。在linux中一般有三种场景会触发慢启动过程1、连接初始建立发送数据的时候,此时cwnd初始化为10,ssthresh初始化为0x7fffffff,因此会触发慢启动。但是当路由表中有对应的设置的时候,cwnd和ssthresh会被路由表中的设置的值覆盖,有可能连接建立后直接进入拥塞避免阶... 阅读全文
posted @ 2016-11-07 14:22
lshs
阅读(4620)
评论(0)
推荐(0)
摘要:
本篇中先介绍一下慢启动和拥塞避免的大概过程,下一篇中将会给出多个linux下reno拥塞控制算法的wireshark示例,并详细解释慢启动和拥塞避免的过程。一、慢启动(slow start) 一个TCP连接启动的时候并不知道cwnd应该取多大的值适合当前的网络状况,因此TCP发送方会从一个较小的初始值指数抬升cwnd到某一个值,这个cwnd抬升的过程就叫做慢启动。除了初始建立tcp连... 阅读全文
posted @ 2016-11-07 14:21
lshs
阅读(12499)
评论(4)
推荐(1)
摘要:
一、拥塞控制的相关算法 早期的TCP协议只有基于窗口的流控(flow control)机制而没有拥塞控制机制,因而易导致网络拥塞。1988年Jacobson针对TCP在网络拥塞控制方面的不足,提出了“慢启动(Slow Start)”和“拥塞避免(Congestion Avoidance)”算法。1990年Jacobson又做了两个修正。在这二十来年的发展过程中,与拥塞控制相关的有四个... 阅读全文
posted @ 2016-11-07 14:18
lshs
阅读(5575)
评论(0)
推荐(0)
摘要:
一、拥塞控制(Congestion Control)背景 TCP协议一开始是没有拥塞控制的,但是在1986年10月,美国的NSFnet骨干网的速率由于负载过重(拥塞)导致实际速率下降为预期速率的千分之一,严重降低了网络性能。NSFnet是当时Internet的重要组成部分,为了避免拥塞或者有效的减轻 阅读全文
posted @ 2016-11-07 14:15
lshs
阅读(2694)
评论(0)
推荐(0)
摘要:
linux内核源码Documentation目录下存在kprobe介绍文档如下 Kprobes allows multiple probes at the same address. Currently, however, there cannot be multiple jprobes on th 阅读全文
posted @ 2016-11-07 14:14
lshs
阅读(1134)
评论(0)
推荐(0)
摘要:
一、TCP存活(keepalive)检测的背景 对于TCP设计来说,如果一个客户端和服务器端建立连接后,不在进行数据传输,那么这个连接将会一直存在下去,理论上即使中间的路由器崩溃重启、或者中间的网络线路拔掉在插上等等,只要客户端和服务器端的主机没有发生异常,这个TCP连接仍然是处于连接状态的。这样会有两个问题1、服务器端可能需要内存等资源保存每个连接的状态信息,即使这个连接在实际上已... 阅读全文
posted @ 2016-11-07 14:10
lshs
阅读(4854)
评论(0)
推荐(1)
摘要:
在这篇文章中我们看一下server端在接收到异常数据系列时的处理,主要目的是通过wireshark示例对这些异常数据系列的处理有一个直观的认识,感兴趣的自行阅读相关代码和协议,这里不再进行详细介绍在进行下面的测试前,首先如下设置相关的参数,其中window参数指定了到127.0.0.2的tcp连接的最大接收窗口。root@Inspiron:/home/******/tcp12# ip route ... 阅读全文
posted @ 2016-11-07 14:09
lshs
阅读(1568)
评论(0)
推荐(0)

浙公网安备 33010602011771号