栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

UDP可靠性传输协议(QUIC)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UDP可靠性传输协议(QUIC)

目录

UDP与TCP对比可靠性机制

ACK机制重传机制流控控制序号机制重排机制窗口机制 UDP可靠性设计

UDP窗口流控KCP(出于实时性考虑) QUIC

简述优点缺点报文格式建立低时延

UDP与TCP对比


TCP可能出现粘包分包
UDP不可能,且一帧数据必须一次性读完,否则将丢失未读部分

可靠性机制 ACK机制

也就回应机制,每次收到一个包都回给予一次ack,让发送方知道对方已经接收到

重传机制

ARQ协议的三种模式
(1) 即停等式ARQ : 等待ACK, 规定事件内没有收到对面ACK,则重传该帧

(2) 回退n帧ARQ : 不等待对面ACK,每个包存在生命周期,生命结束之前没有收到ACK,则回退到该该包重新发包(错误帧之后的包已经发送过,任然需要重新发送

(3) 选择性重传ARQ : 不等待对面ACK,每个包存在生命周期,生命结束之前没有收到ACK,不需要回退到该该包重新发包, 仅需重发该包

流控控制

控制发送方发送速率,以防止收件方读取数据不及时,造成缓存满后丢弃数据包
(1) 收件方告知发送方缓存剩余空间,以便于发件方控制发送速率
(2) 如果发件方因为对方缓存已满而停止发送,则需要收件方适时通知发件方开发送
4. 拥塞控制
(1) 慢启动 :网络拥塞之后,尝试从少数包开始发送,逐渐按指数增长发送包,直到包数恢复到正常数量(因为带宽越来越大,该方案已废弃)
(2) 快恢复 : 网络拥塞之后,尝试从半数的包开始发送,逐次增多

序号机制 重排机制 窗口机制 UDP可靠性设计 UDP窗口流控 KCP(出于实时性考虑)

    RTO翻倍
    TCP超时计算为RTO时间不断翻倍
    KCP中超时计算为RTO时间不断乘以1.5(经验值,试验证明该值较好)

    重传机制
    TCP使用回退N帧ARQ机制(全部重传)
    KCP使用选择性重传ARQ机制

    快速重传
    出现跳包现象(接收方收到的包是不连续的,多个中间包缺失),此时不考虑RTO,优化丢包时候的传输效率

    ACK延迟
    TCP为了更好的利用宽带,延迟发送ACK,如此RRT时间较大
    KCP中可以设置是否延迟

    ACK、UNA
    5.1 解释UNA: 比如UNA 3,则表示告知sender,包0、1、2都已经收到,这个时候sender将释放掉包0、1、2,后续如果需要重传,这三个包也不会进入重传队列,
    5.2 KCP是ACK+UNA机制
    5.3 TCP是二选一

    非退让流控
    TCP使用公平退让法则(发送窗口大小决定因素:发送缓存大小,接收端剩余缓存大小,丢包退让,慢启动),
    KCP可以配置跳过丢包退让以及慢启动,使得及时性更加强大

    代码路径:https://github.com/skywind3000/kcp
    上面对于KCP讲解不太清除的可以前往github上学习,再readme中对于优化的性能部分做了很详细的讲解。

8. KCP代码架构

QUIC 简述
    快速UDP网络连接Google提出的实验性网络传输协议位于OSI网络模型传输层用户态基于UDP实现的传输层旨在解决TCP协议的缺陷并最终替代TCP协议,减少数据传输,降低连接建立延迟时间,加快网页传输速度文档连接:https://quicwg.org/base-drafts/rfc9000.html
优点
    灵活的拥塞控制机制(可自我实现,也可以决定是否使用)无队头阻塞(每个stream分别独立,不互相影响)可轻易实现数据迁移(切换网络环境后,不需要重新连接,继续之前的连接通道继续传输数据)包头需要身份验证,包内数据加密,安全性方面比TLS有过之而无不及FEC向前纠错
缺点
    放入内核影响大,所有系统都要更新路由器、防火墙、还有很多中间设备都需要改
报文格式

其中Connection ID为连接号,可以减少三次握手四次挥手的次数
frame Type:

    bit01: stream ID长度bit234: offset长度bit5 : 有无Data Length字段bit6: 指示该stream通道上 是否已结束发送数据,是否处于半关闭状态bit7: 标识该帧是否为stream帧

Stream ID 一个UDP通道上可以存在多个Stream流, 每个流中的报文的完整性相互独立,以此减少异常时候,回退的帧数

建立低时延

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/737150.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号