适用服务
之前,我们介绍了一般情况下数据链路层给网络层提供的三种服务,对于无确认的无连接服务,我们不管发出去的帧是否正确抵达目标主机,发送方只要把出境帧留存就可以了,但对于可靠的面向连接的服务,就需要采用差错控制手段,确保发出的每个帧都会被真正接收到并只接受一次。
可能的情况
每一帧都到达
接收方发回一些特殊的控制帧,对所接收到的帧进行肯定(代表正确接收)或否定(代表出现错误需要重传)。
有一帧丢了
如果一个帧丢了,接收方是永远不会做出反应的,那怎么办呢?
可以在发送方发出一帧的同时启动一个计时器,并设置足够长的超时值。当收到确认帧后被取消。如果帧或确认帧丢失,计时器到时,一种显然的方案就是重发该帧。
确认帧丢了
可如果只是确认帧丢了,那么重传就会造成重复接收同一帧。为了避免这种情况,可以给发送出去的帧分配序号,如0,1,0,1…,如果接收方连续收到两个相同序号就丢弃一个。
下一节我们将介绍数据链路层的流量控制。