可靠传输的means
在数据链路层会给上层网络层提供可靠传输或者不可靠传输,不可靠传输是指检测到传输差错的时候只是丢弃该分组而不进行任何处理,而可靠传输会给发送者一个信号进行重发该分组。
以下给出的三种基本实现机制是提出一些问题,慢慢改进一些地方进行提出的,xdm可以根据这个进行理解和记忆。
First-停止-等待协议(SW)
第一个问题:接收方如何通知发送方该数据分组在传输过程中出现差错呢?我们可以让接收方给发送方一个确认分组ACK,当发送方收到来自接收方的确认分组的时候就知道分组传输完成,此时就可以进行下一个分组的传输,相应的如果在传输过程中发生一系列的差错,接收方检测到就会给发送方发送一个否认分组NAK,此时发送方收到这个否认分组的时候就会重新发送该分组。
第二个问题:如果在数据分组传输的过程中丢失了,那么接收方也就不会接收到该分组也就不会发出确认或者否认分组,这样该如何解决呢?
我们可以设置一个超时计时器,超时计时器的时间应该大于往返时间RTT。当若到了超时重传计时器的时间之后,发送方就可以重发该分组。
第三个问题:如果在接收方发送确认分组的过程中由于某种原因,导致确认分组滞留了一段时间,此时已经到达了超时重传计时器的时间,那么发送方就会重新发送此分组,那么此时接收方如何区分这是新的分组还是重复的分组呢?
我们可以将分组就行0/1编号,根据该序号就可以判别是否为重复分组。如果为重复分组就可以丢弃。
类似的我们也可以将确认分组就行编号,这样发送方也就可以分别出是否为重复的分组。
四个问题,四个解决方法就可以提出了我们的停止-等待 协议(SW)