计算机网络基础知识
一、可靠数据传输(rdt:reliable data transfer protocol)
1. rdt1.0 经可靠信道的可靠传输
最简单的情况即为底层信道是完全可靠的,所以发送方和接收方只要能正确接收数据即可。
2. rdt2.0 具有比特差错的信道
底层信道更为实际的模型是分组中的比特可能受损的模型,当出现位错误的时候,因为纠正错误的实现难度和代价都比较大,因此实际中都是采用直接重传的方式。
3. rdt2.1 发送方,处理受损的ACK/NAK
rdt2.0的问题有:ACK/NAK可能出错,并且接收方无法确定发送方发过来是新的报文还是因为ACK出错而重传过来的,因此需要给报文编写序号。
4. rdt2.2 无NAK协议
rdt2.1和rdt2.2之间的细微变化在于,接收方此时必须包括由一个ACK报文所确认的分组序号(通过接收方FSM中,在make_pkt()中包括参数ACK 0或ACK 1来实现),发送方此时必须检查接收到的ACK报文中被确认的分组序号(通过发送方FSM中,在isACK()中包括参数0或1来实现)。
5. rdt3.0 具有差错和丢包的信道
rdt3.0中考虑了丢包和延迟分组的情况,因此引入了定时器的机制。
二、拥塞控制
过多的“源”发送过多的数据,使得网络来不及处理