vue项目接口域名动态的获取方法
252
2022-10-17
TCP 流量控制和拥塞控制中的重要机制
停止-等待协议: 放送方发送一个数据包,要收到接收方对该包的确认后,才发送下一个数据包。 缺点:慢,信道利用率低。
ARQ Automatic Repeat reQuest 接收方采用累加确认的方式,接收方不必对每一个分组进行确认,只需要对按序到 达的最后一个分组发送确认。 缺点:当发送方发送了5个分组,中间第3个丢失,那么接收方只对前两个分组进 行确认。发送方只好把后面的3个分组都重传一次。这叫做Go-back-N(回退N)
选择确认 selective ack 接收方对接收到的数据字节流中,若有中间字节块的缺失,只需要重新传输缺失 的就可以了,对已经接收到的字节块无需重传。 需要在TCP首部的选项中设置 ”允许SACK” 的选项。
TCP流量控制: 让发送方的发送速率不要太快,要让接收方来得及接收。端到端的问题。 机制:滑动窗口 S--------------->R 当接收方R 的窗口为0时候,S就不能再发送数据了。当R的窗口不为0时候R会发 送一个数据给S来表明当前的窗口大小,但是为了防止S收不到R又有窗口的通 告,S启动一个持续计时器(persistent timer),只要TCP连接的一方接收到对方 的零窗口通告,就启动持续计时器。若持续计时器设置的时间到期,那么发送一 个零窗口的探测报文段。 Nagle算法: 此算法在TCP的实现中广泛使用。 若发送应用进程把要发送的数据逐个字节地发送到TCP的发送缓存,则发送方就 把第一个数据字节先发出去,把后面到达的数据缓存起来。当发送接收到对第一 个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文段发送出去, 同时继续对随后到达的数据进行缓存。只有收到对前一个报文段的确认后才继续 发送下一个报文段。Nagle算法还规定,当到达的数据已经达到发送窗口的一半或 已经达到报文段的最大长度时,就立即发送一个报文。 糊涂窗口综合症: 接收方缓存已经满了,并且一次只从缓存读取一个字节,所以通告给发送方的窗 口只有一个字节,那么接收方一次只发送一个字节的数据,但是发送效率低,因 为一个字节数据要40个字节协议头部。如果每次发送一个字节的话效率很低,解 决方法是:让接收方等待一段时间,再通告自己的窗口大小给接收方。
TCP拥塞控制:是整个网络的问题(全局性的)。
①慢开始和拥塞避免: 发送方维持一个叫做拥塞窗口CWND(congestion window)的状态变量。发送 方的拥塞窗口等于自己发送窗口。 慢开始: 发送方一开始设置CWND=1,发送一个包,接收到该包确认后,发送方设置 CWND=2,发送之后,接收到该包的确认,发送方设置CWND=4 ……以此类推,成倍增长。 千万注意:窗口大小并不时一次性发送数据的大小,发送方可以根据CWND进行 连续几次的发数据,这连续发送的数据大小不应该超过CWND。 为了防止cwnd增长过大引起网络拥塞,还需要设置一个慢启动开始门限 ssthresh 。 当cwnd等于ssthresh 的时候,cwnd并不在是成倍的增长了,而是逐渐加1
②快重传和快恢复: 快重传要求接收方收到一个失序报文段后立即发送重复确认(目的是让发送方尽早 知道数据段没到达),而不要等到自己发送确认数据时候后捎带。 发送方发送5个报文,第3个缺失,收到第四个报文时候立即发送对第2个的重复确 认,接收到第4个、第五个报文时候也发送对第2个的重复确认。只要发送方一连 收到3个重复确认就应该重发接收发未收到的报文,而不必等到第3个报文的重传 计时器过期才重发。 因此,使用快重传可以提高整个网络的吞吐量。
快恢复与快重传配合使用: 当发送方连续接收到3个重复确认,就执行“乘法减小”算法,把慢开始门限值 ssthresh设置为当前CWND的一半,同时,将此时的CWND=新的ssthresh值,接 下去并不执行慢开始算法。 因为收到3个重复报文并不时意味着网络出现问题,可能仅仅就是那个包缺失了, 所以ssthresh减半后,cwnd在ssthresh的基础上逐渐加1。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~