大家好,欢迎来到IT知识分享网。
一,什么是URG,什么是PSH。
URG与PSH都是TCP报文中的控制位,其中URG(URGent)是紧急的意思,当URG为1时表示紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不是按照原来的排队顺序进行来传送。
当URG置为1后,发送应用进程就告诉发送方的TCP有紧急数据需要传送,于是发送方TCP就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。此时要与首部中的紧急指针配合使用。
二,两者的区别
1,URG有效代表有紧急的数据,TCP接收方收到后,会把该数据插入到本报文段的最前面,此时还要与紧急指针配合使用
2,PSH是把报文尽快推出去,它不会改变报文的顺序,而是尽快将报文交付,而不用受限与缓冲是否被填满
3,PSH很少使用。
三,常见的TCP定时器
重传计时器:Retransmission Timer
坚持计时器:Persistent Timer
保活计时器:Keeplive Timer
2MSL定时器:Time_Wait Timer
四,各自的特点及使用场景
1、重传计时器
TCP的发送方没有在规定的时间内收到确认就要重传已发送的报文段。这种重传概念很容易理解,但重传时间的选择却不简单。
如果吧超时重传的时间这是的太短,就会引起很多报文段不必要的重传,是网络负荷量增加。但若设置的太长,使网络的空闲时间增大,降低了传输效率。
TCP采用了一种自适应算法,它记录每一个报文段发出的时间,以及收到相应的确认的时间,这两个时间差就是豹纹的往返时间RTT。
重传时间 = 2*RTT;
RTT是动态计算的:
RTT=旧的 RTT*i + (1-i)*当前RTT。i的值通常取90%,即新的RTT是以前的RTT值的90%加上当前RTT值的10%
Kam算法:在计算加权平均RTTs时,只要报文重传了,就不在采用其往返时间样本。
2、坚持计时器
坚持定时器是使用在一方滑动窗口为0之后,另外一方停止传输数据,进入坚持定时器的轮询,直到滑动窗口不再为0了。
首先是滑动窗口,可以简单理解为缓冲区剩余空间大小。不管是写缓冲还是读缓冲,一旦一方通告了自己的滑动窗口大小,另外一方就会根据滑动窗口大小传递窗口大小的数据了。但是,当被通告,一方的滑动窗口大小为0的时候,另外一方就会启动坚持定时器,基本也是使用TCP指数退避方法,第一次1.5秒,第二次1.5×2秒,第三次1.5×4…
其次是糊涂窗口综合症。这个症状是滑动窗口引起的。病因是发送方和接收方在一个很小的滑动窗口的时候就开始数据传输,传输结束之后,读写的消费速度也并没有那么快,导致下次传输的时候,滑动窗口还是那么小。然后现象就是每次传输的数据都非常小。就好比每次开出去的火车载货量只有一节车厢,其实我们是希望能攒够n节车厢才开始传输。
糊涂窗口综合症有解决办法,还不止一种,在接收方或者发送方都可以解决。大致就是如果接收方解决,那么接收方在接收窗口小于一定大小的时候,对所有的接收请求都返回窗口为0的包,来触发另外一方的坚持定时器。同样发送方也是,在可以发送的数据大于一定窗口的时候才发送。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/148409.html