虽然很容易混淆,但是谢希仁说的很清楚,数据链路层使用自动重传请求即arq协议来实现可靠传输,跟运输层tcp协议机制非常接近所以在传输层讲。链路层中发送的单位是帧,确认的是按序收到的最后一个帧编号,比如收到12456那么他就只确认2,发送方就知道他起码3没收到,456还不清楚,如果是选择重传那就只需要发送3了,而这里既然是GBN那就只能退回直接重发3456,那么接受方就直接确认6这个就是连续arq,也就是不用逐个确认。而tcp报文段是面向字节的,每次确认的是按序收到的序号的下一个字节(数据部分)序号,这就是传输层和链路层在确认序号上的差别,当然,tcp是选择重传的,不是后退,链路层如果不是连续arq那就退化成普通的停止等待了,也相当于在连续arq模式中把接受窗口大小设置为1,发送方每次就只能发送一个帧,发完就等确认。而现在底层传输一般比较稳定,因此连续arq就提高了信道的利用率得到广泛使用
大哥~~谁说没收到一号帧啊~~~题目中只不过是没有收到一号帧的确认帧而已啊~~接收方在接收到一串数据后如果没有出错,只是确认这一串数据的最后一个数据,也就是题目中的2,当发送方收到2的确认帧,就说明1号帧也已经有序的收到了···它并不是收到的数据都发送确认帧···如果1号帧有错误的话···他是不可能发送1号的确认帧,更不会发送2号的确认帧!
另外,选择重传还有拥塞控制方面的好处,而底层不需要这种高层的功能,这也正体现了osi系统的分工有序层次分明,简单说就是在底层保证一次可靠,较高层保证一次可靠,而中间不可靠也不会对传输有很大影响,更何况现在的通信质量都很高
我刚开始也是那么理解的,不过书上说后退N帧不是说收到的确认帧顺序不连续就要从新发吗,明显收到我不连续啊,不过后来我又想是不是有一个时间限制,在超过了那个时间后收到的帧不连续才会从新发啊