首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏简栈文化

    UDP如何实现可靠传输

    传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠传输的方式,只是实现不在传输层,实现转移到了应用层。 最简单的方式是在应用层模仿传输层TCP的可靠传输。 下面不考虑拥塞处理,可靠UDP的简单设计。 1、添加seq/ack机制,确保数据发送到对端 2、添加发送和接收缓冲区,主要是用户超时重传。 3、添加超时重传机制。 目前有如下开源程序利用udp实现了可靠的数据传输。分别为 RUDP、RTP、UDT。 3、UDT(UDP-based Data Transfer Protocol) 基于UDP的数据传输协议(UDP-basedData Transfer Protocol,简称UDT)是一种互联网数据传输协议 它同时支持可靠的数据流传输和部分可靠的数据报传输。由于UDT完全在UDP上实现,它也可以应用在除了高速数据传输之外的其它应用领域,例如点到点技术(P2P),防火墙穿透,多媒体数据传输等等。

    5.8K61发布于 2021-11-04
  • 来自专栏韩曙亮的移动开发专栏

    【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )

    文章目录 一、TCP 可靠传输 二、TCP 可靠传输机制 三、TCP 快速重传 机制 一、TCP 可靠传输 ---- 可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 完全一致 ; ① 网络层 可靠性 : 只 负责 提供 最大努力交付 , 是 不可靠传输 ; ② 传输可靠性 : 传输层 使用 TCP 协议 实现 可靠传输 ; 二、TCP 可靠传输机制 ---- TCP 实现可靠传输机制 : ① 校验 : 使用 伪首部 进行校验 ; ② 序号 : 每个字节编一个序号 ; 序号 字段 的值是 报文段 第一个字节的序号 ; ③ 确认 : 累计确认 ; ④ 重传 : , 4 , 5 报文段 ; 接收方 收到 1 号报文 , 向 发送方 返回 1 号 确认 ACK ; 2 号报文 丢失 ; 接收方 收到 3 号报文 , 向 发送方 返回 1 号 确认 ACK ; 接收方 收到 4 号报文 , 向 发送方 返回 1 号 确认 ACK ; 接收方 收到 5 号报文 , 向 发送方 返回 1 号 确认 ACK ; 如果 发送方 连续收到 3 个相同 确认号 的 冗余 ACK

    1.9K00编辑于 2023-03-28
  • 来自专栏Java后端修炼

    TCP 传输为什么可靠

    这一定程度上保证了TCP传输可靠性,而不是我随便想发就发,不管你收到了没有。 3)重传机制 上面讲到了确认应答,那么如果没有收到应答应该在何时开始重传呢? 这就是快速重传可以实现的,我们都知道传输的报文包的seq是顺序出去的,那么假设发送端发生了包a、包b、包c、包d,如果包b在中途丢了,在这个传输过程中对于接收端来说,他会先回复包a的确认,之后如果没有收到包 它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。确认和超时其实就是上面2)、3)两点的内容,这不过这里聚合起来讲。 这种方式显而易见的可以保证可靠性,但是问题也很显然,如果对端确认得慢,那么传输速率也会随之被影响。 这种做法的好处是信道利用率较高,但是如果发送端发送5个包,对端收到了1、2、4、5,根据该定义,对端只会确认2号包,因此发送端会重发3、4、5号包【回退N】,但其实只丢了一个,但发送端并不清楚。

    1.2K20编辑于 2022-09-20
  • 来自专栏笔记本

    RabbitMQ的消息可靠传输

    RabbitMQ的消息可靠传输AMQP协议架构RabbitMQ是基于AMQP协议实现的消息中间件,AMQP有一套自己的架构,RabbitMQ的架构也基于此。如图所示就是AMQP协议的基础架构。 消息可靠性保障消息丢失的场景1.生产者发送消息的过程中,Broker宕机、网络断开,或者是生产者发送的消息,MQ没有办法接收(交换机不匹配、无法路由到队列中)。 3.消费者在取消息的过程中,Broker宕机,或者网络断开。消费者拿到消息之后,处理出错了,或者是拿到消息之后还没来及的存储就宕机了。总之,如果不做可靠性保障,消息丢失是不可避免地会发生的。 注意点上面的消息可靠性保障有几个注意点:因为ack机制需要知道这个ack是确认了哪条消息的成功投递,所以每条消息都要有一个唯一id,可以使用默认的也可以通过UUID手动给定。 RabbitMQ 提供的 confirm、持久化、ack 机制 仅能在网络良好、组件正常时提供可靠性保证。

    29021编辑于 2025-07-08
  • 来自专栏全栈程序员必看

    叙事传输的说服机制_简述传输层实现可靠传输措施

    比如某个时刻,系统中只有1个UE在进行上行大数据量的传输,如果将PUCCH放在频带的中间,就会造成eNB只能给该UE分配有限的RB资源,造成资源浪费的同时,也不能满足UE的流量需求。如下图所示。 在计算第二个时隙的时候,HP取值为3,意味着需要将VRB的图案(即RB27、RB28、RB29)整体向右移动3个子带,因而PRB的位置分别是RB16、RB17、RB18。 (图8) (3)公式中,CURRENT_TX_NB的含义在Type1类型的跳频也有用到,表示当前TB块的HARQ传输次数。 (图10) (图11) (5)公式中使用的C序列,请参考博文《LTE下行物理层传输机制(1)-天线端口Antenna Port和小区特定参考信号CRS》中的相关描述。 -09) Physical layer procedures (33GPP TS 36.211 V9.1.0 (2010-03) Physical Channels and Modulation (

    95530编辑于 2022-11-17
  • 来自专栏程序生涯

    TCP 协议如何保证可靠传输

    2、数据校验 3、数据合理分片和排序:   UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一片都小于MTU.而接收方 二、滑动窗口   上面笼统地说了tcp保证可靠传输的机制,下面说说如何用滑动窗口来实现。 为什么要使用滑动窗口 因为发送端希望在收到确认前,继续发送其它报文段。 比如说在收到0号报文的确认前还发出了1-3号的报文,这样提高了信道的利用率。但可以想想,0-4发出去后可能要重传,所以需要一个缓冲区维护这些报文,所以就有了窗口。 ?   RTT:往返时间。 值得注意的几个点 1上图是cwnd随传输轮次的变化,每过一个RTT就算一轮。 2超时就可以认为是拥塞了 快重传和快恢复:上一个算法的加强版 ? 快重传:收到3个同样的确认就立刻重传,不等到超时; 快恢复:cwnd不是从1重新开始。

    3.8K20发布于 2020-08-14
  • 来自专栏C/C++与音视频

    流媒体传输协议浅析(三)可靠UDP传输方案

    一、引言 从流媒体的业务特征和TCP,UDP各种特点,UDP在媒体传输方面具有很大优越性,但UDP可靠性需要业务开发这投入大量的人力;相反 tcp 技术成熟,可以复用已稳定的http 服务器技术,不需要投入人力和技术解决可靠性问题 RTP码流 三、可靠性的UDP传输方案 既然udp是音视频传输的理想方案,但udp可靠性工作需要投入大量工作,技术门槛高,小团队几乎望而却步。 类似的sctp,quic,kcp的可靠UDP传输方法某些大厂开始引入媒体传输中,下面介绍几种目前比较流行的可靠UDP技术。 参考实现:https://github.com/skywind3000/kcp )QUIC QUIC是Google实现的一种可靠UDP传输协议,并且已经被选择作为HTTP/3的基础。 不是一种可靠UDP协议,而是一种跟TCP/UDP平级的传输层协议,是IETF在2000年指定的标准协议。

    2.8K30编辑于 2022-06-14
  • 来自专栏码出code

    SpringBoot 整合 RabbitMQ 实现消息可靠传输

    消息的可靠传输是面试必问的问题之一,保证消息的可靠传输主要在生产端开启 comfirm 模式,RabbitMQ 开启持久化,消费端关闭自动 ack 模式。 消息丢失分析 一条消息的从生产到消费,消息丢失可能发生在以下几个阶段: 生产端丢失:生产者无法传输到 RabbitMQ 存储端丢失:RabbitMQ 存储自身挂了 消费端丢失:存储由于网络问题,无法发送到消费端 ,或者消费挂了,无法发送正常消费 RabbitMQ 从生产端、储存端、消费端都对可靠传输做很好的支持。 生产阶段 生产阶段通过请求确认机制,来确保消息的可靠传输

    57230编辑于 2023-02-26
  • 来自专栏DPU

    RDMA - IB规范卷1 - 传输3_不可靠服务

    C9-173:对于使用不可靠连接服务的 HCA 请求者,传输层客户端编程的初始 PSN 应作为 BTH:PSN 显示于请求者生成的第一个请求数据包中 o9-120:如果 TCA 实现不可靠连接服务,则传输层客户端编程的初始 C9-174:对于使用不可靠连接服务的 HCA,传输层应仅在发送队列处于适合传输请求数据包的状态时修改(更新)PSN。 o9-121:如果 TCA 实现不可靠连接服务,则传输层应仅在发送队列处于适合传输请求数据包的状态时修改(更新)PSN。 例如,对于 HCA,当队列对处于初始化状态时,传输层不会修改 PSN。o9-127:如果 TCA 实现不可靠连接服务,则传输层仅当接收队列处于正确状态以接收入站请求数据包。 此图显示了不可靠数据报 QP 的两个视图。处理器 1 上的进程 A 与三个进程通信:处理器 2 上的进程 C 和 D,以及处理器 3 上的进程 E。右侧视图显示了软件如何查看连接。

    54610编辑于 2025-05-11
  • 来自专栏分布式与微服务

    TCP是怎么实现可靠传输

    前言 我们都知道tcp的传输可靠的,那么你知道tcp是如何实现数据的可靠传输的吗?今天就和大家一起探讨一下tcp是如何实现数据可靠传输的。 可靠传输的工作原理 我们知道网络传输是不可靠的,因为网络有着许多的不可控因素。那么要达成可靠传输,我们需要满足以下两点。 而TCP正是基于滑动窗口协议来实现可靠传输的,所以我们重点分析滑动窗口协议。 滑动窗口协议 什么是滑动窗口协议? 直到接收到序号3的数据,才会发送3,4,5,6的确认信息给发送端,然后将接收完的数据丢弃,并且向右移动接收窗口的预期接收序号值。 至此,关于TCP是如何实现可靠传输已经分析完了,相信大家对TCP的可靠传输已经有了一定的理解了。 最后 最后,如果有任何疑问,欢迎在下方评论区留言。

    1K20编辑于 2022-11-18
  • 来自专栏媒矿工厂

    安全可靠传输协议-SRT

    Alex Converse首先介绍了什么是SRT,SRT是一种基于UDP的流媒体传输协议,可以用于网络条件不好的场景。然后解释了为什么选择SRT,主要包括SRT与RTMP两种协议的对比。 附上演讲视频: 附上之前有关SRT的帖子: SRT: 开源的视频传输协议 SRT协议技术讨论 SRT协议的内部工作原理 RTMP vs SRT:延迟与最大带宽的比较 通过SRT Hub和Microsoft

    2K30发布于 2020-02-13
  • 来自专栏贾维斯Echo的博客

    TCP协议-如何保证传输可靠

    TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。这篇博客,我们就重点讨论一下TCP协议如何确保传输可靠性的。 确保传输可靠性的方式 TCP协议保证数据传输可靠性的方式主要有: 校验和 序列号 确认应答 超时重传 连接管理 流量控制 拥塞控制 校验和 计算方式:在数据传输的过程中 这也是TCP传输可靠性的保证之一。 超时重传 在进行TCP传输时,由于确认应答与序列号机制,也就是说发送方发送一部分数据后,都会等待接收方发送的ACK报文,并解析ACK报文,判断数据是否传输成功。 拥塞控制是TCP在传输时尽可能快的将数据传输,并且避免拥塞造成的一系列问题。是可靠性的保证,同时也是维护了传输的高效性。 3、TCP给发送的每一一个包进行编号 ,接收方对数据包进行排序,把有序数据传送给应用层。

    84750编辑于 2023-10-18
  • 来自专栏DPU

    RDMA - IB规范卷1 - 传输层2(可靠服务-可靠数据报)

    (RDETH) - 4 字节中规定的该报头创建要求,以及第 301 页上的 9.6 数据包传输头验证和第 312 页上的 9.7 可靠服务至 9.7.6 中规定的用于处理 RD 消息的可靠传输要求。 “无连接”可靠数据报服务的两种视图。右图显示了 3 个处理器上 4 个进程之间的可靠数据报通信的软件视图。 HCA 硬件读取数据缓冲区,构建传输头(包括与 EE 上下文关联的“数据包序列”号),并将数据包放到线路上。此过程从步骤 3 开始重复,直到整个消息发送完毕。 在 PSN=3 处接收 'r3' 可能会造成数据损坏问题。 o9-114.a3:在实现可靠数据报服务的 CA 中,响应方应在每个响应数据包的 AETH 中返回 MSN。o9-114.a4:使用可靠数据报服务的 CA 响应方应将其 MSN 值初始化为零。

    77910编辑于 2025-04-26
  • 来自专栏媒矿工厂

    可靠互联网传输协议(RIST)简介

    为解决在公共网络上的丢包问题,同时解决各厂商设备之间缺乏互操作性的问题,Video Services Forum (VSF) 于2017年初成立了可靠的互联网流传输协议(Reliable Internet 数据包可以通过标准单播或多播IP网络从RIST编码器传输到RIST解码器,预计偶尔会遇到数据包丢失的情况。 RIST解码器:RIST解码器负责整个传输系统的大部分处理。 性能测试 性能测试结果引用自Cobalt Digital公司的报告[3]。 每个测试重复10次,测试结果如下: 图3 单个丢包性能测试 图4 5个突发丢包性能测试 上述结果表明,无论是单个丢包还是5个突发丢包,重传请求次数大于6就可以抵御10%的丢包率。 RIST.shtml [2] http://www.videoservicesforum.org/activity_groups/RIST_poster_for_VidTrans2018Feb25.pdf [3]

    5.8K30发布于 2019-08-14
  • 来自专栏Java程序猿部落

    如何保证消息的可靠传输

    面试题 如何保证消息的可靠传输?或者说,如何处理消息丢失的问题?

    1.3K10发布于 2019-05-31
  • 来自专栏媒矿工厂

    RIST –可靠的互联网流传输

    本文来自Broadcast focus的技术文章,主题是RIST-可靠的互联网流传输。 从任何地方上网似乎正越来越成为可能。当然,严格意义上讲,这并不正确,但将互联网连接到某个地方的选择正在逐年增加。 虽然RIST越来越被视为流媒体工作流程中可靠、低延迟的一部分,但重要的是要了解它的用途是让广播公司在自己的工作流程中移动视频和将视频移动到云上。 RIST的Simple Profile提供了以下特性: 使用ARQ的可靠传输(包丢失恢复) 重传控制,以停止带宽使用失控 链路聚合 路径冗余 虽然Simple Profile很有用,但是在Main Profile 才开始具有SRT协议的类似的特性,也就是能够加密数据,这是在互联网传输的关键功能。 多流通道 高比特率支持 总之,RIST是一个主要和次要贡献的协议,它允许可靠、低延迟的视频和音频交付作为广播或流工作流的一部分。

    1.3K30发布于 2020-08-11
  • 来自专栏云计算运维

    TCP协议-如何保证传输可靠

    确保传输可靠性的方式 TCP协议保证数据传输可靠性的方式主要有: 校验和 序列号 确认应答 超时重传 连接管理 流量控制 拥塞控制 校验和 计算方式:在数据传输的过程中,将发送的数据段都当做一个16位的整数 image.png 注意:如果接收方比对校验和与发送方不一致,那么数据一定传输有误。但是如果接收方比对校验和与发送方一致,数据不一定传输成功。 确认应答与序列号 序列号:TCP传输时将每个字节的数据都进行了编号,这就是序列号。 确认应答:TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。 这也是TCP传输可靠性的保证之一。 超时重传 在进行TCP传输时,由于确认应答与序列号机制,也就是说发送方发送一部分数据后,都会等待接收方发送的ACK报文,并解析ACK报文,判断数据是否传输成功。 如果这个等待的时间过长,那么会影响TCP传输的整体效率,如果等待时间过短,又会导致频繁的发送重复的包。如何权衡?

    1K00发布于 2021-08-30
  • 来自专栏blog1

    计网——可靠数据传输原理

    计网——可靠数据传输原理 最近也是用了几天时间读了一下top-down中运输层的可靠数据传输原理,之后看了一下科大的网课。其中的内容也是相当多,一节课的内容足足学了几天。 在学习这一章之前,我们在早期的学习中了解到这是TCP协议可以实现的功能,在学习TCP如何实现这些功能前,我们先来看如何来传输可靠的数据,即——可靠数据传输原理。 我们假设提供可靠数据传输(rdt)的是运输层(实际上rdt的实现也会在链路层以及应用层),图示说明了我们学习可靠数据传输的框架:为上层提供服务的抽象是:数据可以通过一条可靠的信道传输,借助与可靠信道,数据就不会损坏或丢失 但刚刚提到过,网络层IP协议提供的是不可靠的服务,所以在运输层中,我们需要实现一些协议,来把不可靠的数据传输变为可靠的数据传输,这个协议就是可靠数据传输协议(rdt)。 rdt1.0(经完全可靠信道的可靠数据传输) 首先我们考虑最简单的情况,即底层信道是完全可靠的,没有比特出错,也没有分组丢失。

    1.3K11编辑于 2022-12-26
  • 来自专栏码出code

    如何保证消息队列的可靠传输

    生产者丢失数据 首先要确保写入 RabbitMQ 的消息别丢,消息队列通过请求确认机制,保证消息的可靠传输

    49610编辑于 2023-02-25
  • 来自专栏IT当时语_青山师_JAVA技术栈

    消息队列如何保证消息可靠传输

    消息队列如何保证消息可靠传输 随着互联网的发展,消息队列已经成为了系统设计中不可或缺的一部分。它可以实现系统之间的异步通信和解耦,提高整体系统的可靠性和性能。 但是,由于网络的不可靠性和系统崩溃等原因,消息在传输过程中可能会出现丢失和重复等问题。为了解决这些问题,消息队列需要采用一系列机制来保证消息的可靠传输可靠传输机制 为了保证消息的可靠传输,常见的机制包括: 持久化存储 在消息发送之前,消息队列需要将消息进行持久化存储,确保消息在遭遇意外情况时也不会丢失。 下面介绍如何使用 JAVA 语言和 Apache Kafka 实现消息的可靠传输。 总结 以上就是消息队列如何保证消息可靠传输的介绍。

    90410编辑于 2023-05-05
领券