三、数据链路层——流量控制月可靠传输机制
流量控制
1.为什么要有流量控制?
发送方如果发送的太快,接收方如果来不及接收,所以需要流量控制来协调。
2.流量控制的方式?
停止——等待:发送方发一个,接收方回一个。
滑动窗口协议:发送方维持一个发送窗口,接收方维持一个接收窗口。发送窗口大小表示还没收到对方确认消息的情况下还能发送多少个
数据帧。接收方只接收窗口以内的数据。
3.协议与窗口关系:
停止-等待:发 = 1 接 = 1
后退N帧: 发 = n, 接 = 1
选择重传协议:发 > 1 ,接 > 1
可靠传输机制
要确认。
确认。
超时重传。
单帧滑动窗口与停止-等待协议
多帧滑动窗口与后退N帧协议(GBN)
发送窗口可以在发送窗口足够的情况下,可以一直发送帧。
接受方要求必须顺序接收。
采用n比特对帧编号,发送窗口的大小是 1 <= W <= 2n - 1。
原因:假如3个比特可以编出 01234567,8个编号。发送方发送了0~7号共8个数据帧。
这个时候情况一:数据帧正确接收,发送端又发送了8个新的数据帧,其编号是 0~7.
情况二:确诊帧丢失,超时重传,发送端又发了8个旧的数据帧,其编号是 0~7。
这个时候接收端就懵逼了,它不知道这个是重传的还是新的?
选择重传协议SR
接收方可以发送否定帧,发送方只用重传发送错误的帧。
W发送 = W接收 = 2n-1