计算机网络知识总结(六)

本文介绍了TCP的流量控制机制,通过滑动窗口和AdvertisedWindow字段确保发送速率适应接收方处理能力。同时,探讨了QUIC协议的出现原因,包括为了解决HTTP/2.0的队头阻塞问题以及QUIC的特点,如快速连接建立、无队头阻塞、前向纠错等,旨在提高网络传输效率。
摘要由CSDN通过智能技术生成

计算机网络知识总结

一、TCP流量控制

TCP用滑动窗口做流量控制,TCP头里有一个字段叫Advised Window,用来通知发送方自己还有多少缓存区可以用来接收数据。而发送方根据接收方的处理能力来处理数据,避免发送数据过多,接收方处理不过来
在这里插入图片描述
计算方法:

  • 接收方在Ack中记录自己的AdvertisedWindow = MaxRcvBuffer – (LastByteRcvd - LastByteRead),随Ack回复到发送方。
  • 发送方根据Ack中的AdvertisedWindow值,需保证LastByteSent - LastByteAckedAdvertisedWindow,则窗口内剩余可发送的数据大小EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked),以保证接收方可以处理。(就是说保证已经发送过去待确认的数据+这次即将发送的数据 <= AdvertisedWindow )。

二、QUIC(HTPP/3.0)

1.为什么需要QUIC?

HTTP2.0的版本中,已经实现了多路复用,但是TCP报文数据是依赖报文数据之间的顺序的,所以HTTP2.0并没有从根本上解决队头阻塞的问题。Google考虑到修改TCP协议难度较大,而使用UDP不需要三次握手,可以从根本上解决队头阻塞的问题。因此对UDP下手,基于UDP提出了QUICQuick UDP Internet Connections)。

2.QUIC的特点

在这里插入图片描述

  1. TCP不同,不需要三次握手来建立链接
  2. 实现了自己的加密层,也不不需要TLSTLS握手也避免了
  3. 由于UDP数据包不依赖于数据包的顺序,因此从根本上解决了队头阻塞问题
  4. 由于UDP并没有建立链接,没有重传机制,但是有自己的前向纠错机制:发送的每个数据包还包含了足够的其他数据包的数据,可以重建出丢失的数据
  5. TCP的链接依赖IP和端口号,只要有一个发生了变化,就得重新建立链接,这使得移动端的网络体验会因为wifi的切换或者基站的切换而变差。而QUIC拥有自己的标识符(Connection UUID),不依赖于IP和端口号,不会因为上述问题导致重连。

参考博文:
[1]: https://juejin.cn/post/6844903588922130440
[2]: https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp/#why-fewer-packets-matter-so-much

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值