报头压缩方案简介(初步)

报头压缩方案简介

CTCP

最早的报头压缩方案——CTCP(“Compressing TCP/IP Headers for Low-Speed Serial Links”, RFC 1144, 也称VJHC),由LBL实验室的Van Jacobson在1990年开发。他提出了一种压缩IP/TCP报头的基本方法来提高在低速穿行链路上传输数据的效率。CTCP能将40字节的IP/TCP报头压缩到4字节。CTCP压缩器检测传输层重传,发送一个更新整个上下文的报头。这个修理机制不需要压缩器和解压器之间任何明确地信令。现在CTCP被普遍应用于IP协议栈中。但是CTCP采用计时超时的差错恢复机制,因此不适用于来回响应时间较长的链路。

IPHC

一个通用的包头压缩方案——IPHC(“IP Header Compression”,RFC 2507)是由瑞典Lulea大学的Dr.Stephen, Dr.Mikael, Degermark和Bjorn Nordgren在1999年开发的。它能够压缩任意的IP、TCP、和UDP报头。这个压缩算法特别为在非无效的报文丢失率的链路上设计的。当压缩非TCP报头时,IPHC不适用差值编码,是健壮的。当压缩TCP报头时,CTCP的修理机制用链路层的否定应答机制来增强和加速修理。但是,IPHC不压缩RTP报头。

CRTP

CRTP(“Compressing IP/UDP/RTP Headers for Low-Speed Serial Links”, RFC 2508)协议是由S Casner和V Jacobson在1999年开发的。其目的是解决在低速串行链路上传输语音和视频报文时遇到的一些特殊问题。CRTP能够用来压缩传输语音和视频报文的IP/UDP/RTP报头,在逐跳的基础上减少开销。CRTP在往返时间段的本地链路上性能最好。当不用UDP校检和时,这个报头压缩方案将40字节的IP/UDP/RTP报头压缩到最小2个字节。如果使用UDP校检和,最小的CRTP报头是4字节。因为UDP/RTP不重传,所以CRTP不使用与CTCP相同的修理机制。CRTP使用称为CONTEXT_STATE的从解压器到压缩器的明确地信令信息来之食上下文不同步。这样,链路的往返时间限制了这个上下文修理机制的速度。
在往返时间长的有损链路上,如大多数的蜂窝链路,CRTP的性能并不好。因为上下文在至少一个连路的往返时间里不同步,每个在链路上丢失的报文引起随后的几个报文丢失。对于语音会话来说,这种长时间的损耗事件会降低语音质量。而且,带宽被CRTP更新上下文时所发送的大报头浪费了。CRTP对有损蜂窝链路性能不够好。

ROHC

由于无线网络传输误码率搞,链路往返时间长。当压缩/解压方不同步,会引起许多分组丢失,而现有的报头压缩机制不能有效检测context被破坏的情况,不适用于无线链路。因此IETF中ROHC工作小组提出了对无线链路具有很强容错能力,包括帧丢失和误码残留的报头压缩机制(Robust Header Compression, IETF RFC 3095),ROHC针对不同协议,有不同的压缩子协议,目前规范的子协议有RTP/UDP/IP, UNCOMPRESSED, UDP/IP, ESP/IP报头的模型。
在这里插入图片描述
数据报中的分区,众所周知,有的在传输过程中是固定不变的,有的是可能变化的,有的是一定变化的。ROHC就是利用报文的这些不同特性来对报文的不同区域分别进行压缩。
在这里插入图片描述

  • ROHC的三种压缩方状态
    – IR(初始化和重置状态):用于初始、更新静态域和动态域信息。
    – FO(一级压缩状态):此时压缩方需要传递完整的动态信头域信息。
    – SO(二级压缩状态):最高级压缩状态。
  • 三种解压方状态
    – NC(无上下文状态):数据流刚开始传输时解压方所处的状态,压缩方需要发送包含完整报文头的分组。
    – FC(全上下文状态):解压方已经获得了足够的静态域信息和动态域的变化规律信息,此时解压方已经可以接受压缩方发送的ROHC压缩分组
  • 三种工作模式
    – 单向U模式:当不存在或者不能使用反馈通道时,ROHC工作在U模式,此时,解压方不能向压缩方发送反馈信息。
    – 双向优化O模式:可以利用反馈信道时,工作在O模式。
    – 双向可靠R模式:当无线链路质量较好的时候,状态转移完全采用反馈原则。

部分内容转自:https://blog.csdn.net/baidu_35692628/article/details/70799954

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: TCP报头和UDP报头是两种不同的协议头部,用于在网络通信中传输数据。TCP报头和UDP报头有一些共同的字段,但也有一些不同之处。 TCP报头包含以下字段:头部长度、序列号、确认号、窗口大小等。头部长度字段占4比特,指定了TCP报头的长度,以32比特为单位。如果没有TCP选项字段,则报头长度值为5,表示报头长度为20字节。\[1\]序列号和确认号是用于保证数据包的可靠传输,确保每个数据包都被对方成功接收。\[2\] UDP报头相对简单,只包含源端口号、目标端口号、长度和校验和等字段。UDP报头长度固定为8字节。UDP协议是一种无连接的协议,不提供可靠性和流量控制,适用于对实时性要求较高的应用场景。 总结来说,TCP报头和UDP报头都是用于在网络通信中传输数据的协议头部,但TCP报头提供了可靠性和流量控制等功能,而UDP报头则更加简单,适用于实时性要求较高的应用。 #### 引用[.reference_title] - *1* *3* [ip报头,tcp报头,udp报头解析](https://blog.csdn.net/fjhfjhfjh123/article/details/52014978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [TCP和UDP的详细内容](https://blog.csdn.net/MasterIE/article/details/124968228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值