消息队列的使用场景 传输层协议有哪些( 三 )


超时:TCP每发送一个报文段,就得这个报文段设置一次计时器 。计时器设置的重传时间到期,但还未收到确认时就要重传这一报文段.
冗余ACK:重传存在的问题是超时周期往往太长,索性的是发送方通常可以在超时事件发生之前,通过注意所谓的冗余ACK来较好的的检测丢包情况 。冗余ACK就是再次确认某个报文段的ACK发送方先前已经收到过该报文段的确认.
TCP流量控制:
TCP供流量控制服务来消除发送方使接收方缓存区溢出的可能性,因此可以说流量控制是一个速度匹配服务,简单点讲其实就是 。发送的东西太多了 。接收得太慢,没有办法匹配 。传输层和数据链路层的流量控制的区别是:传输层定义端到端用户之间的流量控制,数据链路层定义两个中间的相应结点的流量控制 。另外,数据链路层的滑动窗口协议的窗口大小不能动态变化,传输层就可以动态变化.

消息队列的使用场景 传输层协议有哪些

文章插图
TCP拥塞控制:
所谓拥塞控制是指防止过多的数据注入网络,以使网络中的路由器或链路不致过载 。出现拥塞时,端点并不了解拥塞发生的细节 。对通信连接的端点来说,拥塞往往表现为通信时延的增加 。当然,拥塞控制和流量控制也有相似的地方,他们都通过控制发送方发送数据的速创载网率来达到控制效果
拥塞控制和流量控制的区别:拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机,所有的路由器以及于降低网络传输性能有关的所有因素 。相反,流量控制往往是指点对点的通信量的控制及接收端 。控制发送端他所要做的事一直是发送端发送数据的速度,以便使接收端来得及接收.
下面简单讲一个拥赛控制的算法,很简单,大家请看图片

消息队列的使用场景 传输层协议有哪些

文章插图

消息队列的使用场景 传输层协议有哪些

文章插图
本章小结已经疑难点:
1)为什么不采用两次握手建立连接呢?
这主要是为了防止两次握手情况下已失效的连接请求报文段突然又传送到服务端而产生错误 。考虑下面这种情况,客户a向服务器B发送TCP连接请求第一个请求 。报文在网络上某个节点长时间滞留,A超时后认为报文丢失,于是再重传一次连接请求B收到后建立连接,数据传输完毕后,双方断开连接,而此时前一个滞留在网络中的连接,请求到达服务端B,而B认为a又发来连接请求 。此时若使用三次握手,则B向a返回确认报文段,由于是一个失效的请求,因此a不予理睬,建立连接失败 。若采用的是两次握手,在这种情况下,B认为传输连接已经建立,并一直等待a传输数据,而a此时并无连接请求,因此不予理睬,这样就造成了B的资源白白浪费.
2)为何不采用三次握手释放连接且发送最后一次握手报文要等待2MSL的时间呢?
原因有两个:(面试超能问)
1)保证a发送的最后一个确认报文段能够到达b如果a不等待2MSL若a返回的最后确认报文段丢失则必不能进入正常关闭状态而此时已经关闭也不可能再重传.
2)防止出现"已失效的连接请求报文段" a在发送最后一个确认报文段后经过2MSL可保证本连续持续的时间内所产生的所有报文段从网络中消失造成错误的情形与下文不采用两次握手建立连接所述的情形相同.
服务器结束TCP连接的时间要比客户端早一些,因为客户端最后要等待2MSL后才可以进入CLOSED状态(简单点说就是TCP关闭状态)
假设在一个互联网中,所有业务的传输都不出现差错,所有节点也都不会发生故障诗文 。在这种情况下,TCP的可靠交付的功能是否就是多余的?


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: