可靠数据传输协议
我们知道,TCP和UDP都是基于IP网际协议来传输数据的,但是IP网际协议是一种不可靠数据传输协议,它不负责数据丢失等情况,而TCP是一种可靠数据传输,因此我们需要来关注TCP是如何实现可靠数据传输的
经完全可靠信道的可靠数据传输:rdt1.0
rdt的假设前提是我们的数据在底层信道的传输是不会出现丢失和出错的,那么我们定义一个概念
- 有限状态机FSM: 定义了接收方和发送方的操作
可以预想到,rdt1.0的FSM肯定是很简单的,因为底层信道就实现了可靠数据传输(假设的)
rdt1.0的发送方和接收方的FSM如下:
经具有比特差错信道的可靠数据传输:rdt2.0
实际中在信道传输的数据是很有可能受损的,这个时候我们应当让发送方重传该分组,那么发送方如何知道是否重传一个分组呢?
- ACK:当接收方收到一个分组时,如果该分组没有比特损伤,那么就给发送方发送一个ACK表示肯定确认,ACK可以用1比特的1表示
- NAK:当接收方收到一个损伤的分组时,就给发送方发送一个NAK表示否定确认,NAK可以用1比特的0表示