较高的发送速度和较低的接受速度 之间的不匹配,会造成传输出错,所以数据链路层需要流量控制机制。简单说就是让发送方慢点发送,发送太快的话接收方缓冲区就会溢出
需要区别的是,流量控制机制不仅在数据链路层有,传输层也有流量控制,两者之间的区别是:链路层的流量控制是点对点,传输层的流量控制是端到端。 由于主机之间的中间设备路由器、交换机只有物理层、数据链路层、网络层,没有传输层,也就决定数据链路层的流量控制 作用在相邻两个结点之间,传输层的流量控制 作用在相邻两个主机之间
数据链路层流量控制手段:接收方可以正常收到的时候需要发送一个确认帧,收不下的时候就不会发送这个确认帧
传输层流量控制手段:接收方给发送方发送的是 一个窗口公告 ,告知接收方现在缓冲区的信息
流量控制方法:
一个帧一个帧的发送。
收到一个确认信息,发送窗口可以向前移动一格。
发送窗口一般含有多个帧,这多个帧可以一次发送一个,也可以一次发送多个帧
停止等待协议:发送窗口大小=1,接收窗口大小=1
后退N帧协议(GBN):发送窗口大小\(>\) 1,接收窗口大小=1
选择重传协议(SR):发送窗口大小$>\(1,接收窗口大小\)>$1
!!!数据链路层的流量控制上面三种方法的发送窗口和接收窗口的大小都是固定不变的;但是在传输层的流量控制中 发送窗口和接收窗口大小则会发生变化。
滑动窗口机制可以解决两大问题:
①解决流量控制 试想:要是发送方没有收到确认帧,窗口就不会移动,不就卡死了
②解决可靠传输 发送方经过设定好的时间后,但是还是没有收到确认帧,发送方就会自动重新传刚才发的那个帧 [发送方自动重传机制]
原文:https://www.cnblogs.com/fennleo/p/13434098.html