### 计算机网络复习总结 #### 运输层概览与特性 计算机网络的运输层主要负责在源端和目的端之间提供端到端的数据传输服务。这一层包括两个重要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。两者的主要区别在于其提供的服务类型和服务质量。 - **TCP (Transmission Control Protocol)**: 面向连接的服务,意味着在数据传输之前需要建立一个可靠的连接。一旦连接建立成功,数据可以在两个方向上进行传输。TCP还提供了可靠的数据传输服务,确保所有数据包无误且按正确顺序到达目的地。 - **面向连接**:在数据传输之前,TCP需要通过三次握手来建立连接,从而确保通信双方都已经准备好。 - **可靠性**:TCP通过序号、确认应答(ACK)、重传机制、流量控制和拥塞控制等机制来保证数据的完整性和有序性。 - **UDP (User Datagram Protocol)**: 无连接的服务,不保证数据的可靠传输,也没有拥塞控制机制。但是,它提供了一个轻量级的传输层服务,比TCP更快。 - **无连接**:UDP发送数据之前不需要建立连接,也不维护任何连接状态。 - **不可靠性**:UDP不对数据包进行排序或检查错误,因此可能存在数据丢失、重复或乱序的情况。 #### 可靠数据传输协议 为了提高数据传输的可靠性,设计了多种可靠的传输协议。这些协议的核心思想是通过确认应答(ACK)和超时重传机制来检测并纠正传输过程中可能出现的错误。 - **RDT 2.0**: 最简单的可靠数据传输协议之一,通过发送方和接收方之间的简单交互实现数据的可靠传输。 - 发送方发送数据后,会等待接收方的ACK确认。 - 如果未在规定时间内接收到ACK,则重传数据。 - 接收方校验数据包,如果正确则发送ACK;如果错误,则丢弃数据包并不发送ACK。 #### 同时向多个主机发送数据的设计问题 假设有一个场景,主机A需要同时向主机B和C发送数据包。A通过广播信道与B和C相连,这意味着A发送的数据包会被广播到B和C。假设广播信道独立地可能导致数据包丢失或损坏。设计一种类似于停等式错误控制协议,以确保A在知道B和C均已正确接收到当前数据包之后才从上层获取新数据。 - **FSM设计**:利用有限状态机(FSM)来设计协议的基本流程。 - 发送方有三个状态:发送数据、等待B的ACK、等待C的ACK。 - 接收方B也有三个状态:等待数据、确认正确数据、发送期望的序列号。 #### 发送方状态机设计 - **初始状态**:发送方发送数据包。 - 如果在规定时间内未收到任何ACK,重新发送数据包并重新计时。 - 如果收到错误的ACK,继续等待。 - 如果收到B的正确ACK,进入等待C的ACK状态。 - 如果超时,重新发送数据包并重新计时。 - 如果收到C的正确ACK,增加seq值并发送新的数据包。 - 如果收到C的正确ACK,增加seq值并发送新的数据包。 #### 接收方B的状态机设计 - **收到数据+数据有错误**:等待数据接收。 - **收到数据+数据没有错误+是当前需要的序列号**:发送正确接收的ACK,并将期望的序列号加1。 - **收到数据+数据没有错误+不是当前需要的序列号**:发送期望的序列号的ACK。 通过这种方式,即使在存在数据包丢失和损坏的情况下,也能确保数据被可靠地传输给所有目的地。这种设计可以有效地应用于需要向多个目的地同时发送数据的应用场景中。 #### 总结 运输层是计算机网络中至关重要的一层,它提供了端到端的数据传输服务。通过TCP和UDP两种协议的选择,可以根据具体应用场景的需求来平衡可靠性和性能。此外,通过可靠数据传输协议的设计,如RDT 2.0和停等式错误控制协议,可以进一步增强数据传输的可靠性,尤其是在需要同时向多个目的地发送数据的情况下。
- 粉丝: 170
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助