TCP与UDP的区别
格式对比
ARQ协议
ARQ协议(Automatic Repeat-reQuest),即自动重传请求,是传输层的错误纠正协议之一,它通过使用确认和超时两个机制,在不可靠的网络上实现可靠的信息
传输。
ARQ协议主要有3种模式:
- 停等式(stop-and-wait)ARQ
- 回退n帧(go-back-n)ARQ,
- 选择性重传(selective repeat)ARQ
停等式
停等协议的工作原理如下:
1、发送方对接收方发送数据包,然后等待接收方回复ACK并且开始计时。
2、在等待过程中,发送方停止发送新的数据包。
3、当数据包没有成功被接收方接收,接收方不会发送ACK.这样发送方在等待一
定时间后,重新发送数据包。
4、反复以上步骤直到收到从接收方发送的ACK.
缺点:较长的等待时间导致低的数据传输速度。
回退n帧
为了克服停等协议长时间等待ACK的缺陷,连续ARQ协议会连续发送一组数据包,然后再等待这些数据包的ACK。
什么是滑动窗口:发送方和接收方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接收方确定,目的在于控制发送速度,以免接收方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。协议中规定,对于窗口内未经确认的分组需要重传。
如上图所示,序号为2的分组丢失,因此分组2及之后的分组都将被重传。
总结:GBN采用的技术包括序号、累积确认、检验和以及计时/重传。(TCP采用这种机制)
选择重传
只有接受不到ack的才进行重传,即真正丢包的包重传
TCP的相关概念
RTT和RTO
RTT:往返时延。表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。
RTO:重传超时时间
流量控制
对发送方发送速率的控制
控制原理
发送方收到ack之后,会调整自己的发送速率,也就是调整自己发送窗口的大小,当发送方收到接收窗口的大小为0时,发送方就会停止发送数据,防止出现大量丢包情况的发生。
停止发送后,合适恢复发送:
1、接收方读走数据,主动将接收窗口发送给发送方,恢复发送
2、发送方隔一段时间发送探测包,接收方回应是否可以继续发送
慢启动和快恢复
前提是停止发送,假定接受窗口为n。
慢启动:不管接受窗口是否恢复到n,都从发1个包开始,以指数增长的方式去启动。(适用于以前带宽少的情况,现在用的较少)
快恢复:第一次发较多的包,再以线性增长的方式去启动
技术参考
视频技术参考:https://ke.qq.com/course/417774?flowToken=1041651