可靠数据传输原理

本文详细介绍了TCP的可靠数据传输原理,包括错误检测、确认机制、重传策略、滑动窗口协议(GBN、SR)以及TCP的快速重传、流量控制和拥塞控制机制。通过学习,读者能理解TCP如何确保数据的正确传输并优化网络性能。
摘要由CSDN通过智能技术生成

目录


- 概述

TCP可靠数据传输的滑动窗口既不是纯粹的GBN,也不是纯粹的SR,在这两个协议之外又引入了新的东西。

  • 这篇笔记是学习了网易云课堂的《计算机网络之探赜索隐》之后所做。图片来源于课件。
  • 这门课渐进地设计可靠数据传输协议的发送方和接收方,从假设信道完全可靠开始,到逐步考虑数据的传输错误、丢失、性能很差等问题,一步步完善rdt协议。讲完可靠数据传输的原理之后,又以TCP作为实例分析了TCP所实现的可靠数据传输协议。这篇文章也大致以这个脉络展开。
  • rdt表示可靠数据传输协议,用有限状态机来描述发送方和接收方的行为和动作。

- 可靠数据传输原理

数据传输发生错误怎么办?
  • 发生错误:底层信道可能翻转分组中的位(bit)
  • 如何检测到错误:利用校验和检测位错误
  • 如何从错误中恢复?

    • 确认机制:ACK:显式地通知发送方分组已正确接收;NAK:显式地通知发送方分组有错误。
    • 重传机制:发送方收到NAK后,重传分组。(ARQ协议)
  • 发送方的有限状态机:
    (圆圈代表当前所处的状态,带箭头的线代表状态的转换,横线上方指示引起状态变迁的事件,横线下方指示状态转换中采取的活动)

  • 接收方的有限状态机:

ACK/NAK消息发生错误/被破坏怎么办?
  • 如何检测到错误:为ACK/NAK增加校验和
  • ACK/NAK坏掉了怎么办:发送方重传
  • 重传会产生重复分组,怎么办?

    • 序列号机制,发送方给每个分组增加序列号,接收方通过判断序列号是否之前已经接收过,来选择接收或丢弃。
    • 由于停等协议,序列号只需要两个就够用(0,1)。
  • 发送方的有限状态机:

  • 接收方的有限状态机:
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UDP协议是一种无连接的传输协议,它不对数据传输进行可靠性保证,因此在进行数据传输时,可能会出现数据丢失、重复、乱序等问题。为了保证UDP数据传输可靠性,需要使用一些技术手段进行处理,其中最常用的是使用UDP Socket实现可靠数据传输。 UDP Socket是在UDP协议基础上进行实现的一个套接字。UDP Socket可以通过设置一些参数和使用一些技术手段,来实现UDP数据传输可靠性。下面就具体介绍UDP Socket实现可靠数据传输原理。 1.数据分片 UDP Socket将数据分片传输,每个数据分片都包含一个序号,接收端可以通过序号来判断数据分片是否存在丢失、重复或者乱序等问题。如果数据分片存在以上问题,则可以进行相应的处理,从而保证数据传输可靠性。 2.确认机制 UDP Socket采用确认机制来保证数据传输可靠性。发送端在发送每个数据分片后,会等待接收端返回确认信息,确认信息包含接收到的数据的序号。如果接收端返回的确认信息与发送端发送的序号不一致,则说明数据分片存在丢失或者乱序问题,发送端需要重新发送该数据分片。 3.超时重传机制 UDP Socket采用超时重传机制来保证数据传输可靠性。发送端在发送每个数据分片后,会设置一个超时时间,在超时时间内如果未收到接收端的确认信息,则发送端会重新发送该数据分片。通过这种方式,可以保证数据分片不会因为网络问题而丢失。 4.流量控制 UDP Socket采用流量控制来保证数据传输可靠性。在数据传输的过程中,发送端需要根据接收端的处理能力来控制数据的发送速度,防止数据发送过快导致接收端无法及时处理。通过流量控制,可以避免数据丢失或者传输延迟过大的问题。 综上所述,UDP Socket实现可靠数据传输原理主要包括数据分片、确认机制、超时重传机制和流量控制等方面。通过这些技术手段,可以保证UDP数据传输可靠性,从而满足各种网络应用的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值