美文网首页
2019-06-16 计算机网络 自顶向下方法 第三章2

2019-06-16 计算机网络 自顶向下方法 第三章2

作者: ShawnPanCn | 来源:发表于2019-06-16 22:47 被阅读0次

4.5 TCP连接管理

三次握手:

为什么是3次握手?

1、主要是为了防止已经失效的连接请求报文突然又传送到了服务器,从而产生错误连接。2、改为两次握手可能产生死锁。假设A向B发送请求,B收到请求后发送确认信号。此时如果按照两次握手协议,连接已建立,B开始传输数据。然后如果B的确认信号A没有接受到,A将不能知道B的序列号,将无法接受B的数据。而B在发送数据超时后会重复发送数据,从而死锁。

四次挥手:

为什么要客户端要等待2MSL(报文最大生存时间)?

1、保证客户端发送的最后一个ACK报文能够到达服务器。2、如果客户端直接进入closed状态,而服务端还有数据在网络中,当有一个新连接的端口和服务端端口一样时,那么客户端会认为这些数据是新连接的。

当主机接收到一个TCP报文段,其端口号或源IP地址与该主机上进行中的套接字都不匹配,此时主机会向源发送一个特殊的重置报文段,其RST标志位置1.

4.6 拥塞控制

拥塞的原因:发送流量超过链路容量,重传机制,

拥塞的代价:当分组的到达速率接近链路容量时,分组经历的排队时延是巨大的;发送方在遇到大时延时进行的不必要重传会引起路由器来转发不必要的分组;一个分组沿一条路径被丢弃时,每个上游路由器用于转发该分组的传输容量被浪费。

拥塞控制的方法:(1)端到端拥塞控制,网络层并没有为运输层的拥塞控制提供支持,TCP运用的方式,只能推断是否发生拥塞。(2)网络辅助的拥塞控制,路由器可以向发送端反馈网络的拥塞情况,但还未被用于TCP中。

4.7 TCP拥塞控制(加性增、乘性减(AIMD)拥塞控制方法)

TCP采用的方法是让每一个发送方根据所感知到的网络拥塞程度来限制其能向连接发送流量的速率。

如何调整发送方的发送速率:在发送方跟踪一个变量,即拥塞窗口(cwnd),其对一个TCP发送方能向网络中发送流量的速率进行了限制(发送方中未被确认的数据量不超过cwnd和rwnd的最小值)。

如何感知拥塞:通过出现超时或3次冗余ACK来确认是否发生拥塞。

TCP发送方能够以更高的速率发送而不会使网络拥塞,有三个原则:(1)一个丢失的报文段意味拥塞,此时应降低TCP发送方速率(减小cwnd的大小)。(2)一个确认报文段指示网络正在向接收方交付发送方的报文段,此时可以增加发送方的速率。(3)带宽探测

TCP拥塞控制算法:慢启动,拥塞避免,快速恢复

(1)慢启动

当TCP连接开始时,cwnd的值置为1个MSS(最大报文段长度),每当传输的报文段首次被确认就增加1个MSS,因此cwnd以指数增长。

指数增长的结束方案:(1)如果出现超时的丢包事件,将慢启动阈值ssthresh置为cwnd/2,并将cwnd重新置为1并重新开始慢启动。(2)当新的cwnd增长到超过ssthresh时,结束慢启动进入拥塞避免模式。(3)如果检测到3个冗余ACK则进入快速恢复状态。

(2)拥塞避免

每个RTT(往返时间)只增加一个MSS。假设当前MSS为1460字节而cwnd为14600字节,则一个RTT发送10个报文段,每到达一个ACK增加MSS/10的拥塞窗口长度,当收到10个报文段的所有ACK时增则会增加1个MSS。

当出现超时时,将ssthresh置为cwnd/2,同时将cwnd置为1,开始慢启动。当出现3次冗余ACK时,表示当前网络仍可以交付,TCP将ssthresh置为cwnd/2,同时cwnd=cwnd/2+3MSS,并进入快速恢复。

(3)快速恢复

在快速恢复中,对于引起TCP进入快速恢复状态的缺失报文段,每收到一个它的冗余ACK就将cwnd增加一个MSS。当收到丢失报文段的ACK时,cwnd=ssthresh,并进入拥塞避免。如果在这个阶段超时,同样进入慢启动。

TCP拥塞控制的FSM

公平性:在K条TCP连接经过传输速率为R的链路时,如果每条连接的平均传输速率接近R/K,则认为该拥塞控制是公平的。在每条TCP连接的RTT相等的情况下,上述TCP拥塞控制是公平的(详见图3.56),但实际中RTT小的连接会有更高的吞吐量。

相关文章

网友评论

      本文标题:2019-06-16 计算机网络 自顶向下方法 第三章2

      本文链接:https://www.haomeiwen.com/subject/bumnfctx.html