可靠数据传输原理 《计算机网络——自顶向下方法(James F. Kurose, Keith W. Rose)》读书笔记

本文深入探讨了可靠数据传输的重要性,通过详细解析《计算机网络——自顶向下方法》中的rdt协议,从rdt 1.0到rdt 3.0,再到回退N步(GBN)和选择重传(SR)协议。重点介绍了在不同信道条件下的数据传输策略,如差错检测、确认机制、重传与流水线技术,以及各种协议的工作原理和优缺点。最后,总结了可靠数据传输的关键机制,如序号、确认、定时器和窗口管理,为理解TCP等高级协议奠定了基础。
摘要由CSDN通过智能技术生成

可靠数据传输是网络中最为重要的问题之一。TCP所采用的许多原理,都是可靠数据传输的内容。

图1 说明了我们学习可靠数据传输的框架:

①为上层实体提供的服务抽象是:数据可以通过一条可靠的通道进行传输。借助于可靠通道,数据就不会受到损坏或丢失(如图1 的(a)所示)。

②实现这种服务抽象是可靠数据传输协议(reliabel data transfer protocol)的责任。由于可靠数据传输协议的下一层协议也许是不可靠的(如TCP的下层是不可靠的IP),所以这是一项困难的任务。


        图1 的(b)说明了用于数据传输协议的接口。通过调用rdt_send()可以调用数据传输协议的发送方(rdt表示可靠数据传输协议,reliable data transfer),rdt发送方将数据封装成分组后传给下层协议进行运输。当分组从信道的接收端到达时,将调用rdt_rcv()。rdt接受方对分组进行一定的处理,然后rdt协议调用deliver_data来将可靠的数据向较高层交付。

        在 本节中,考虑到底层信道模型越来越复杂,我们将不断开发一个可靠数据传输协议的发送方和接收方。

一、构建可靠数据传输协议

在开始讨论rdt前,我们需要了解一下有限状态机(Finite-State Machine,FSM)。

    ①FSM中的箭头表示协议从一个状态变迁到另一个状态;

    ②引起变迁的事件显示在表示变迁的横线上方;

    ③事件发生时所采取的动作显示在横线下方;

    ④如果对一个事件没有动作,或没有事件发生而采取一个动作,我们将在横线的上方或下方使用一个符号 A;

    ⑤FSM的初始状态用虚线表示;

1. 经完全可靠信道的可靠数据传输:rdt 1.0

        rdt的发送端只通过rdt_send(data)事件接收来自较高层的数据,产生一个包含该数据的分组packet=make_pkt(data),并将分组发送到通道。实际上,rdt_send(data)是由较高层应用的过程调用产生的(例如:rdt_send(),图中的虚线)。图2 的(a)的FSM定义了发送方的操作

        rdt的接收端通过rdt_rcv(packet)事件从底层信道接收一个分组,从分组中取出data=extract(packet,data),并通过deliver_data(data)将数据传送给较高层。实际上,rdt_rcv(packet)是由较低层协议的过程调用产生的(例如:rdt_rcv(),图中的虚线)。图2中的(b)定义了接收方的操作。


        在这个简单的协议中,一个data与一个packet没有差别。而且,所有的分组是由发送方流向接收方;有了完全可靠的信道,接收方就不需要提供任何反馈信息给发送方,因为不必担心出现差错!这里也假设了接收方接收数据的速率能够与发送方发送数据的速率一样快,所以接收方不需要请求发送方慢一点!

2. 经具有比特差错信道的可靠数据传输

(一)rdt 2.0

        底层信道更为实际的模型是分组中的比特可能受损。在分组的传输、传播和缓存中,这种比特差错通常会出现在网络的物理部件中。现在,仍继续假设,所有的分组(虽然比特可能受损)将按其发送顺序被接收。

        由于信道可能会引入比特差错,为了让发送方知道哪些内容被正确接收,哪些内容接收有误并因此需要重传,接收方收到的报文后,

①如果没有差错,则给发送方返回一条肯定确认(po

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值