组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者: 李超(licc_li licc_li@sina.com) 译文发布时间:2001-5-23 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须 保留本文档的翻译及版权信息。 Network Working Group S. Casner Request for Comments: 2508 Cisco Systems Category: Standards Track V. Jacobson Cisco Systems February 1999 低速串行链路下IP/UDP/RTP数据包头的压缩 (RFC 2508 Compressing IP/UDP/RTP Headers for Low-Speed Serial Links) 本备忘录的状态 本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以 得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化程度 和状态。本备忘录的发布不受任何限制。 版权声明 Copyright (C) The Internet Society (1999). All Rights Reserved. 摘要 本文描述了一种对IP/UDP/RTP数据报头进行压缩的方法,它可以降低在低速串行链路上 的网络开销。多数情况下,三个头可压缩到2-4字节。 请赐教并将您的建议发送到工作组邮件列表rem-conf@es.net或直接给作者。 本文中的关键字“必须”,“必须不”,“要求的”,“应该”,“不应该”,“会”,“不会”, “建议”,“或许”,“可选的”在 RFC 2119 中解释。 目录 本备忘录的状态 1 版权声明 1 摘要 1 1. 介绍 2 2. 设想和折中 2 2.1. 单工与全双工 3 2.2. 分片与分层 3 3.压缩算法 3 3.1.基本概念 3 3.2 RTP数据包头压缩 4 3.3协议 5 3.4. RTCP控制包压缩 12 3.5.非RTP UDP包压缩 13 4.与分片的交互 13 5.压缩协商 13 6.致谢 14 7.参考文献 14 8. 安全性考虑 14 9.作者地址 15 10.版权声明 15 1. 介绍 随着实时传输协议(RTP)成为正式的RFC[1]发行,人们对于利用RTP实现不同的网络音视 频应用程序间互操作的兴趣也日益增长。然而,我们也注意到,当使用低速链路如14.4Kb/s 或28.8Kb/s拨号时,12字节的RTP头对于仅有20字节的负载而言开销实在太大。(为了减少 头占用的字节,一些已经在类似环境下存在的应用通常使用自定义的协议,而这样做的代价 就是削减了RTP相关的功能。) 事实上,正如在TCP中已经取得巨大成功,也可通过压缩技术来令IP/UDP/RTP包头变小。 这时,压缩可以针对于RTP头(在端到端应用中),或者IP,UDP,RTP的组合头(在Link-by-Link 应用中)。将40字节的组合头一起进行压缩比仅压缩12字节的RTP头更具实际效果,因为两 种情况下的结果大小均为约2-4字节。同时,由于延迟和丢失率都很低,对Link-by-Link应 用进行压缩性能上也更好。因此我们在这里定义的方法就是针对Link-by-link应用下 IP/UDP/RTP头进行组合压缩。 本文定义的压缩方案可应用于IPv4包、IPv6包或封装了多个IP头的包。为了能同时在IPv6 和IPv4下使用,这里定义的IP/UDP/RTP压缩符合[3]中规定的通用压缩框架。该框架把TCP 和非TCP定义为IP之上的两个传输类。本规范将IP/UDP/TCP从非TCP类中抽取出来创建为第三 类。 2. 设想和折中 本压缩方案的目标是,在不发送UDP校验和的情况下,将大多数包的IP/UDP/RTP头压缩到 2个字节,在带校验和时则压缩到4个字节。这一方案的提出主要是受使用14.4kb/s和 28.8kb/s拨号调制解调器发送音视频时遇到的相关问题所引起。这些链路提供全双工通信, 所以协议利用了这点,尽管协议在用于单工链路时可能性能会有所下降。该方案在本地链路 上往返时间(RTT)很低,从而实现性能最高。 为了降低低速链路下的延迟,除了在第四节中确定了分片和压缩中可能使用的一些交互 外,本规范并未提出大型数据包的分片和占先策略。分片方案可能会单独定义并与本压缩方 案配合使用。 应该注意到,实现的简单性是评价压缩方案的一个重要因素。通信服务器可能要用一个 处理器支持多达100个拨号调制解调器的数据压缩。因此,如下的考虑都是比较恰当的,即 在设计阶段为了实现简单而牺牲一些通用性,或者在设计上灵活通用但为了简单性可对设计 进行子集化。通过在压缩和解压器之间用更复杂的模型通信改变头字段还可以达成更好的压 缩效果,但其复杂性却是没必要的。下一节将讨论这里列出的一些折中方案。 2.1. 单工与全双工 在没有其它限制的情况下,单工链路上的压缩方案应成为首选。但为防止错误发生,单 工链路上的操作需要用一个含有压缩状态信息的未压缩包头进行周期性的刷新。如果明显的 错误信号可以返回,则恢复延迟也可以实质性地缩短,无错误情况的开销也会降低。为了实 现这些性能的优化,本规范包括了一个可逆向发送的明显错误指示。 在单工链路中,可以使用周期性刷新来取代。解压器一旦侦测到错误存在于某个特定的 流中,它可以简单地放弃该流中所有的包直到接收到一个未压缩的头为止,然后继续解压。 其致命弱点在于可能要在恢复解压前要放弃大量的包。周期性刷新的方法在[3]的3.3节中进 行描述,它应用于单工链路的IP/UDP/RTP压缩,或者应用于其它非TCP包流的高延迟链路。 2.2. 分片与分层 在低速链路上发送大型数据包所需时间而导致的延迟对于单向音频应用不算什么大问 题,因为接收方可以适应延迟变动。但对于交互式的交谈,最小端到端延迟是非常关键的。 对大的,非实时数据包进行分片以允许小的实时包在分片间隙进行传送可以降低这种延迟。 本规范只处理压缩,并且假定,如果包括分片,也将被处理为一个单独层。将分片和压 缩按这种方式进行集成并不可取,因为一旦如此,在没有必要或不可能进行分片的情况下, 连压缩都不能使用。类似地,应该避免预留协议的任何需求。除了要求链路层提供一些包类 型码,一个包长度指示和良好的错误检测外,该压缩方案可独立于任何其它机制而应用在本 地链路的两端。 相反,单独对IP/UDP和RTP层进行压缩丢失了太多的压缩效率,这些效率可以通过将它们 一起对待而得到。由于相同的函数可以应用于所有层,实现跨越这些协议层边界的方案是恰 当的。 3.压缩算法 本文定义的压缩算法主要利用了RFC 1144[2]描述的TCP/IP头压缩的设计。读者可以参考 该RFC获取更多的关于对包头进行压缩的基本动机和通用原理。 3.1.基本概念 对TCP头压缩的研究发现,IP和TCP头有一半的字节在整个连接期间保持不变,这正是降 低数据率的两个要素中的首要因素。因此,在发送一次未压缩头之后,可以将这些字段从其 后的压缩头中除去。其余的压缩来自对变化字段进行区分编码以减少长度,以及在通常情况 下根据包长度计算变化而完全删除掉变化字段。这一长度由链路层协议指示。 对于RTP头的压缩也可以采用一些相同的技术。不过最大的收获在于人们发现,尽管每个 包中总有几个字节要发生变化,但包与包之间的区别却是恒定的,因此二次差分为0。在会 话期间,通过维护压缩与解压器共享的未压缩头与一次差分序列,所需通信的便只有二次差 分为0的指示了。在这种情况下,如果不考虑任何信息丢失,则解压器在收到一个压缩包后 可以通过将一次差分结果加到保存的未压缩头来重建原始包头。象TCP/IP头压缩为多个同时 的TCP连接维护一个共享状态一样,IP/UDP/RTP压缩也应该为多个会话环境维护状态。一个 会话环境是由IP源地址和目的地址,UDP源端口和目的端口,以及RTP的SSRC字段定义。解压 器在实现时可以对这些字段使用哈希函数来检索存储的会话环境列表。压缩包携带一个称为 会话环境标识符或者CID的小整数来指示该包应该解释到哪个环境中。解压方可以使用CID 直接在存储的环境列表中来进行检索。 由于RTP压缩是无损压缩,它可应用于任何可从中受益的UDP通信。当然最可能的例子就 是RTP包,不过也可以使用试探法来判断一个包是否为RTP包,因为即便试探法给出的答案是 错的也不会造成什么损害。这样做需要对所有的UDP包或者至少对偶数端口号的包(见3.4节) 执行压缩算法。 为了避免将来无谓地重试,大多数压缩器在实现时都要维护包流的一个“拒绝缓存”来 记录那些多次作为RTP包尝试而压缩失败的包。压缩失败往往意味着潜在的RTP包头中一些在 多数时间应保持恒定字段却发生了变化,如负载类型字段。即便其它类似的字段都保持不变, 为了避免耗尽所有的可用会话环境,一个SSRC字段不断改变的包流也应放入拒绝缓存。拒绝 缓存可通过源IP地址和目的IP地址以及UDP端口对进行索引,而SSRC字段因为可能发生变化 不能用来作为索引。当RTP压缩失败,IP和UDP头仍然可以被压缩。分片后不是初始片的IP 包和长度不够容纳一个完整UDP头的包都不能作为FULL_HEADER发送。另外,没有容纳至少12 字节UDP数据的包也不能用于创建RTP环境。如果这样的包作为FULL_HEADER包发送,它后面 可以跟随COMPRESSED_UDP包但不能跟随COMPRESSED_RTP包。 3.2 RTP数据包头压缩 在IPv4包头中只有总长度,包ID和校验和字段会发生改变。因为在链路层已经提供了长 度,这里总长度是冗余的,同时由于本压缩方案必须依靠链路层实现良好的错误检测(如PPP 的CRC[4]),头校验和也可以省略掉。于是只剩下了包ID,而在假定没有IP分片的情况下它 也无参加通信。不过为了保持无损压缩,包ID的变化也将被传输。对每个包而言,包ID通常 每次加1或者一个很小的整数值。(有些系统中包ID的增量为交换的字节数,这对压缩效率 有一些轻微的影响。)而IPv6包头既没有包ID字段,也没有头校验和字段,只有负载长度字 段会发生变化。 由于在IP层和链路层均有相应字段,UDP头中的长度字段也是冗余的。如果选择不产生UDP 校验和则UDP的校验和字段为常数0。否则必须对校验和进行交互通信以保证无损压缩。一个 重要原则就是为需要的应用程序维护端到端的错误检测。 在RTP头中,作为特定环境标识的一部分,给定的环境的SSRC标识符是恒定不变的。对大 多数包而言,只有顺序号和时间戳是因包而异的。如果没有包丢失或者乱序,顺序号应按步 进值1逐包改变。对音频包,时间戳应按采样周期增加。对于视频,时间戳在每帧的第一个 包是发生改变,而在后面该帧的其它包中保持不变。如果每个视频帧只占据一个包,且视频 帧按照恒定的速率产生,则帧与帧之间时间戳的变化也是恒定的。 注意到每当这种情况出现,顺序号和时间戳字段的二次差分均为0,所以下一个包头的相应 字段值可通过前一个未压缩包头的该字段加上存在会话环境一次差分值得到。当二次差分不 为0时,变化量通常也要远小于字段中所有位的数目,所以可通过对新的一次差分进行编码 并传输该编码来达到压缩的目的,不用传输绝对值。 一个音频会话峰(talkspurt)中M位将在第一个包中设置,而一个视频帧中M位在最后一个 包中设置。如果它作为一个常量字段则每次变化都要发送整个RTP头,如此会造成压缩效率 明显下降。因此,压缩头中的一位将明确地携带M位。如果包通过RTP混合器流动,特别是音 频数据,则CSRC列表和CC记数将发生改变。但CSRC列表将在会话峰期间保持不变,所以它只 需在发生变化时才发送。 3.3协议 压缩协议必须维护一个状态牢靠的压缩器和解压器的共享信息集合。对每个IP/UDP/RTP 包流都有一个单独的通过源地址IP,目的地址IP,UDP端口对和RTP SSRC字段组合定义的会 话环境。要维护的会话环境数目可通过双方协商而定。每个环境通过一个8位或者16位的标 识符来标识,具体范围要根据协商的环境数量决定,所以最大值为65536。未压缩和压缩的 包都必须携带环境ID和一个4位的用来检测包通信中丢失的顺序号。每个环境都有自己的顺 序号空间,所以单个包的丢失只会影响到一个环境。 每个环境共享的信息包括如下项目 ? 完整的IP, UDP和RTP头,对最后一个由压缩器发送或者解压器重建的包,可能还 包括CSRC表。 ? IPv4 ID字段的一次差分结果,当收到环境中的一个未压缩IP头时初始化为1,每 次收到一个压缩包中的delta IPv4 ID字段时更新。 ? RTP时间戳字段的一次差分结果,当收到环境中的一个未压缩IP头时初始化为0, 每次收到一个压缩包中的delta RTP时间戳字段时更新。 ? 最后一个4位顺序号,用来检测双方通信时的包丢失情况。 ? IPv6(见[3])UDP包的非差分编码当前产生号。对于IPv4,如果没有使用下面定 义的COMPRESSED_NON_TCP包类型,则产生号可设置为0。 ? 一个经过双方协商,可选的环境相关的delta编码表(见3.3.4节)。 为了在不同的压缩和解压器形式下进行通信,本协议依靠链路层为除IPv4和IPv6外的四 种新的包格式提供指示: FULL_HEADER
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。