首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏音视频技术

    RUDP传输那些事儿

    作为在教育公司来说,学霸君在很多实时场景下确实使用RUDP技术来解决我们的问题,不同场景我们采用的RUDP方式也不一样。 涉及到实时传输我们都会先考虑RUDPRUDP应用在学霸君核心传输体系的各个方面,但不同的系统场景我们设计了不同的RUDP方式,所以基于那些激烈的讨论和我们使用的经验我扒一扒RUDPRUDP是怎么去找这个平衡点的,就要先从RUDP的可靠概念和使用场景来分析。 RUDP在分为发送端和接收端,每一种RUDP在设计的时候会做不一样的选择和精简,概括起来就是图中的单元。 窗口与拥塞控制 窗口 RUDP需要一个收发的滑动窗口系统来配合对应的拥塞算法来做流量控制,有些RUDP需要严格的发送端和接收端的窗口对应,有些RUDP是不要收发窗口严格对应。

    1.2K50发布于 2021-09-02
  • 来自专栏即时通讯技术

    不为人知的网络编程(七):如何让不可靠的UDP变的可靠?

    作为教育公司,学霸君APP在很多实时场景下确实使用了 RUDP 技术来解决我们的问题,不同场景我们采用的 RUDP 方式也不一样。 涉及到实时传输我们都会先考虑 RUDPRUDP 应用在我们APP核心传输体系的各个方面,但不同的系统场景我们设计了不同的 RUDP 方式,所以基于那些激烈的讨论和我们使用的经验,我决定扒一扒 RUDP RUDP 是怎么去找这个平衡点的,就要先从 RUDP 的可靠概念和使用场景来分析。 在描述 RUDP 重传之前先来了解下 RUDP 基本框架,如图: ? RUDP 分为发送端和接收端,每一种 RUDP 在设计的时候会做不一样的选择和精简,概括起来就是图中的单元。 9.1 窗口 RUDP 需要一个收发的滑动窗口系统来配合对应的拥塞算法做流量控制,有些 RUDP 需要发送端和接收端的窗口严格地对应,有些 RUDP 不要求收发窗口严格对应。

    2.6K31发布于 2018-08-29
  • 来自专栏潇湘信安

    内网隧道工具SPP尝鲜

    这篇文章主要是自己研究该工具如何使用的过程 0x02 工具简介 支持的协议:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp)、rhttp(可靠http)、kcp、quic 支持的类型 ping show ping -profile int open profile -proto value main proto type: [tcp rudp ricmp kcp quic rhttp] -proxyproto value proxy proto type: [tcp rudp ricmp kcp quic rhttp udp] -server Server监听udp spp -type server -proto rudp -listen :8888 Client外部使用udp连接,内部封装tcp进行正向代理转发端口 spp -name "test" -type proxy_client -server vps:8888 -fromaddr :8080 -toaddr :8999 -proxyproto tcp -proto rudp

    2K41发布于 2021-07-28
  • 来自专栏网络安全攻防

    【神兵利器】内网渗透之SPP隧道构建

    项目介绍 SPP是一款简单强大的网络代理工具,它可以满足我们在攻防演练过程中的打隧道的基本需求(除去DNS协议),它具备以下特点: 支持的协议:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp /spp -type server -proto tcp -listen :8888 -proto rudp -listen :9999 -proto ricmp -listen 0.0.0.0 c、同时可以使用 name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8081 -toaddr :8081 -proxyproto rudp 8082 -toaddr :8082 -proxyproto ricmp e、Client和Server之间的内部通信,也可以修改为其他协议,外部协议与内部协议之间自动转换,例如 #代理tcp,内部用rudp -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto tcp -proto rudp

    40200编辑于 2025-01-17
  • 来自专栏kayden

    内网隧道之spp

    本文研究支持多协议双向代理的一个工具,spp github:https://github.com/esrrhs/spp 一、概述 1、简介 2020年新鲜出炉,持续更新,来自腾讯大佬,用Go编写 支持的协议:tcp、udp、rudp /spp -type server -proto tcp -listen :8888 -proto rudp -listen :9999 -proto ricmp -listen 0.0.0.0 也可以使用 -type proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080 -proxyproto udp # 代理rudp name "test" -type proxy_client -server www.server.com:8888 -fromaddr :8081 -toaddr :8081 -proxyproto rudp 例如 # 代理tcp,内部用rudp协议转发 .

    1.7K10编辑于 2022-09-29
  • 来自专栏即时通讯技术

    即时通讯技术文集(第4期):不为人知的网络编程 [共14篇]

    涉及到实时传输我们都会先考虑 RUDPRUDP 应用在我们APP核心传输体系的各个方面,但不同的系统场景我们设计了不同的 RUDP 方式,所以基于那些激烈的讨论和我们使用的经验,我决定扒一扒 RUDP

    54630编辑于 2022-11-01
  • 来自专栏简栈文化

    UDP如何实现可靠传输

    分别为 RUDP、RTP、UDT。 开源程序 1、RUDP(Reliable User Datagram Protocol) RUDP 提供一组数据服务质量增强机制,如拥塞控制的改进、重发机制及淡化服务器算法等 ,从而在包丢失和网络拥塞的情况下

    5.8K61发布于 2021-11-04
  • 来自专栏编程小白狼

    实现可靠的 UDP 协议:Go 语言版本

    package rudp import ( "encoding/binary" "errors" ) // PacketType 代表数据包的类型 type PacketType byte const package rudp import ( "log" "net" "sync" "time" ) const maxSeqNum = 1024 // 序列号范围,简单的环形序列号 const s.expectedSeq, seq) } } 四、如何使用 服务器端(接收者) package main import ( "fmt" "log" "net" "yourmodulepath/rudp nil { log.Fatal(err) } } 客户端(发送者) package main import ( "log" "net" "time" "yourmodulepath/rudp = nil { log.Fatal(err) } defer conn.Close() session := rudp.NewSendSession(conn, serverAddr) defer

    40510编辑于 2025-08-21
  • 来自专栏音视频技术

    P2P如何将视频直播带宽降低75%?

    我们推流传输使用的是 RUDP 传输算法,这个 RUDP 是采用了类似 BBR 基于延迟和丢包来设计的拥塞算法,并且对报文做了拥塞丢弃,示意图如下: 关于 RUDP 的细节可以参考我的另一篇文章《怎么让不可靠的 其实大部分时间跨运营商的 Edge server 之间延迟也没有想象的那么大,这可以考虑使用 Edge server 之间点对点通信来解决问题,所以我们设计了一个基于 RUDP 无窗口多路径的传输模型来进行 Edge server 之间的通信,如下图: 上图的通信模型是一个多路径并联通信模型,我们在 RUDP 发送前添加了一个路径路由表,这个路由表记录了各个路径的分发概率,RUDP 每次向接收端发送包时会通过路由表中的概率来选取路径 我们通过 RUDP 实时 ACK 反馈和路径实时 ping 探测来得到网络的状态 (丢包、延迟、抖动),再将网络状态参数输入到逼近函数 f(x) 来确定各条路由的概率,这里有条原则:如果 Edge server

    1.4K30发布于 2021-09-02
  • 来自专栏咖啡拿铁

    视屏面试传输协议到底是TCP还是UDP

    其实这个问题的答案不难想出,我们可以将TCP和UDP的特性互相结合起来,让这个协议既可以保证可靠性,又可以保证实时性,这也就是我们所说的RUDP((Reliable UDP),常见的RUDP协议有QUIC ,WebRTC,Aeron等等,我这里主要介绍谷歌提出的QUIC,带大家领略一下RUDP的精彩,看看他们是如何既能做到可靠又能保证效率。 总结 其实这篇帖子也算是一个扫盲贴,相信有很多朋友没有听说过RUDP相关的一些东西,或者说听说过但是一直以为他是一个很复杂,很难理解的东西,其实在这里摊开来讲RUDP就是一个UDP+应用层可靠协议组成的

    3.2K22发布于 2020-09-01
  • 来自专栏即时通讯技术

    UDP比TCP高效?还真不一定!

    7.4 解决方3:RUDP 详情请查看:《如何让不可靠的UDP变的可靠?》。 文章摘录如下: UDP 实现可靠性既然那么麻烦,那直接用 TCP 好了! RUDP 主要解决以下相关问题。 在一些对延时要求很高的场景下,会用应用层 relay 的方式来做传输路由优化,也就是动态智能选路,这时双方采用 RUDP 方式来传输,中间的延迟进行 relay 选路优化延时。 :某些场景为了避免 TCP 的三次握手和四次挥手的过程,会采用 RUDP 来优化资源的占用率和响应时间,提高系统的并发能力,例如 QUIC。 据了解,目前国内厂商做实时传输一般都会考虑 RUDP。 9.4 QQ聊天中使用的udp协议浅析 曾今的一个讨论贴:《为什么QQ用的是UDP协议而不是TCP协议?》,可以一并读一读。

    76300编辑于 2024-12-27
  • 来自专栏知识分享

    中移ML307R模块使用手册

    47.92.31.46",10002,"CONNECTED" OK 模组没有连接返回 +MIPSTATE: 0,,,,"INITIAL" OK UDP例程示例(和TCP基本一样,连接需要填写 UDP, 接收数据返回的是 rudp 告诉模组我要使用0号socket发送5字节数据 等待模组返回 > 发送要发送的5字节数据: 11111 (也可以填写16进制数) 模块接收数据,假设0号socket接收到16字节 +MIPURC: "rudp

    18.2K11编辑于 2024-05-16
  • 来自专栏知识分享

    中移ML307A(C-SDK,OpenCPU)学习开发-AT指令测试

    47.92.31.46",10002,"CONNECTED" OK 模组没有连接返回 +MIPSTATE: 0,,,,"INITIAL" OK UDP例程示例(和TCP基本一样,连接需要填写 UDP, 接收数据返回的是 rudp 告诉模组我要使用0号socket发送5字节数据 等待模组返回 > 发送要发送的5字节数据: 11111 (也可以填写16进制数) 模块接收数据,假设0号socket接收到16字节 +MIPURC: "rudp

    5.6K10编辑于 2024-05-20
  • 来自专栏即时通讯技术

    P2P技术如何将实时视频直播带宽降低75%?

    我们推流传输使用的是 RUDP 传输算法,这个 RUDP 是采用了类似 BBR 基于延迟和丢包来设计的拥塞算法,并且对报文做了拥塞丢弃。 示意图如下: ? 关于 RUDP 的细节可以参考我的另一篇文章《怎么让不可靠的UDP可靠?》。 其实大部分时间跨运营商的 Edge server 之间延迟也没有想象的那么大,这可以考虑使用 Edge server 之间点对点通信来解决问题,所以我们设计了一个基于 RUDP 无窗口多路径的传输模型来进行 上图的通信模型是一个多路径并联通信模型,我们在 RUDP 发送前添加了一个路径路由表,这个路由表记录了各个路径的分发概率,RUDP 每次向接收端发送包时会通过路由表中的概率来选取路径。 我们通过 RUDP 实时 ACK 反馈和路径实时 ping 探测来得到网络的状态 (丢包、延迟、抖动),再将网络状态参数输入到逼近函数 f(x) 来确定各条路由的概率,这里有条原则:如果 Edge server

    6.1K30发布于 2018-08-29
  • 来自专栏个人路线

    打造鸿蒙三方库生态新基石:从适配共建到生态繁荣

    editline C 48 https://github.com/MathisRosenhauer/libaec libaec C 49 https://github.com/evercomer/rudp rudp C 50 https://github.com/donuts-are-good/libkeva libkeva Go 51 https://github.com/xiph/speexdsp ArcLayout ArcLayout Java 109 https://github.com/boostorg/regex regex C++ 110 https://github.com/evercomer/rudp rudp C 111 http://github.com/google/emoji-segmenter emoji-segmenter C 112 https://github.com/soaic

    70420编辑于 2025-09-03
  • 来自专栏音视频技术

    WebRTC直播课堂实践:实时互动是核心

    在这里推出一个概念,叫做RUDP(Reliable UDP)。 RUDP指的是将TCP和UDP各种优势结合在一起,包含的功能有: 1)冗余编码和前向纠错; 2)场景化的重传策略; 3)带宽自适应调整; 4)更优的拥塞控制算法; 5)多点 relay… 简单解释一下什么叫做场景化的重传 第三,优异的RUDP传输协议;WebRTC原本就是基于UDP的,在UDP上进行优化,可以更有效的使其传输的数据安全、可靠。

    4.5K20发布于 2021-09-01
  • 来自专栏音视频直播技术专家

    音视频直播技术漫谈

    传输,对于实时性不高的产品可以使用RTMP, 对于实时性比较高的必须使用UDP,一般会选用RUDP(可靠性UDP),既可以保证传输速度,又可以防止丢包。 传输 这里主要说一下 RUDP, 我们知道TCP是流式的,可靠传输,而UDP是不可靠传输。它们都是基于IP协议的,而IP协议是不可靠的包传输方式。那么TCP是怎么成为流式可靠传输的呢?

    2.1K30发布于 2020-04-02
  • 来自专栏Czy‘s Blog

    TCP与UDP异同

    运输层无法保证数据的可靠传输,只能通过应用层来实现了,实现的方式可以参照TCP可靠性传输的方式,只是实现不在传输层,实现转移到了应用层,主要通过实现确认机制、重传机制、窗口确认等机制来实现可靠传输,有RUDP

    86550发布于 2020-08-27
  • 来自专栏博文视点Broadview

    如何解决粘包问题?

    通信是可靠的通信方式,TCP栈通过序列号和包重传确认机制保证数据包的有序和一定被正确发送到目的地;如果使用UDP进行通信,且不允许少量丢包,就要自己在UDP的基础上实现类似TCP这种有序和可靠的传输机制了(例如RTP、RUDP

    1.4K10编辑于 2023-05-06
  • 来自专栏面试经验贴

    如何解决粘包问题?

    通信是可靠的通信方式,TCP栈通过序列号和包重传确认机制保证数据包的有序和一定被正确发送到目的地;如果使用UDP进行通信,且不允许少量丢包,就要自己在UDP的基础上实现类似TCP这种有序和可靠的传输机制了(例如RTP、RUDP

    1.4K60发布于 2021-07-23
领券