网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
搜索关键字: 所有资讯 行业动态 市场趋势 政策法规 新品发布 技术资讯 价格快报 展会资讯
  • 达普IC芯片交易网 > 新闻中心 > 技术资料 > 正文
  • RSS
  • 利用UDP压缩提升数据包吞吐能力
    http://www.ic72.com 发布时间:2006/7/26 9:02:00

        UDP/IP 报头压缩是一项功能强大的技术,可通过将报头大小压缩高达80%来提高吞吐能力并减少数据包丢失与延迟现象。本文详细描述了在杰尔系统的网络处理器(NP)上进行UDP/IP报头压缩和解压的实现过程,并且探讨了控制处理器在报头压缩/解压过程中所起的作用。

        一个典型的用户数据报协议/互联网协议(UDP/IP)报头包含20字节的IP报头与8字节的UDP报头。UDP报头包含了源与目标UDP端口地址、长度、校验和,而IP报头则有12个不同的字段,包括源/目标IP地址与业务类型(ToS)位。

        在属于相同数据包流的大部分数据包中,大多数报头字段的值往往保持不变。UDP/IP报头压缩基于如下事实:由于这些字段在各个数据包之间保持不变,因而无需在每个数据包中都完整地发送它们。因此,传输端可以利用简单的报头(仅包含3个字段,占用5个字节)替换包含16个字段、占用28个字节的标准报头。

        这种压缩报头包含一个可唯一识别数据流的2字节字段(上下文标识号(CID))、生成字段(1个字节)以及IP标识(2个字节)字段,它们共同构成了5字节压缩报头。接收端通过将原始报头字段替换压缩报头即可实现对报头的解压。

        标题为《IP报头压缩》的IETF RFC2507详细说明了如何压缩报头字段以实现下列目的:

        1. 加快交互响应时间;

        2. 允许将小型数据包用于具有良好线路效率的大量数据传输;

        3. 允许将小型数据包用于对延迟敏感的低数据速率流量;

        4. 减小报头开销;

        5. 降低有损耗链路的丢包率。

        对于有损耗的低速点对点链路,上述压缩可以显著提高传输效率。根据实验结果,本文将介绍如何在网络处理器(NP)中实现上述报头压缩。该NP芯片适用于多业务接入网应用。

    实现过程

        NP的片上控制处理器可用作主处理器。另外,还可以通过诸如IBM PowerPC 750F等外部主处理器控制NP。在该器件的任意端口收到数据包后,其中的分类器模块确定所收到的数据包属于哪个包流。在确定包流之后,流量管理引擎可以访问与此包流相关的状态变量,并做出路由、排队、调度与PDU修改等决定。NP的这种架构非常适用于UDP/IP报头的压缩与解压。

        在收到数据包后,分类器将它们转发到流量管理模块,并表明该PDU属于哪个包流。流量管理模块根据从分类器收到的信息执行压缩或解压。对PDU报头的修改由属于流量管理器一部分的流编辑器(SED)执行(见图1)。

    ic72 技术资料
    图1:NP的架构适合于UDP/IP报头的压缩与解压 

        压缩和解压在无需主处理器协助的情况下即可在快速通道中执行。唯一例外的情况是在开始阶段,当收到某个带新的报头参数的数据包(未建立其数据包流)时,主处理器需协助设置NP执行报头压缩与解压所需的表项目。一旦表项目设置完成,NP即作为快速通道处理的组成部分执行实际的压缩与解压。

    UDP报头压缩

        分类器利用查询树执行UDP/IP数据包报头至CID的映射。如果存在新的包流(即UDP/IP数据包报头查询失败),则按原样发送出数据包。此外该数据包的副本被发送到控制处理器,用于包流设置。

        然后,主处理器在查询表中创建一个项目。快速通道将该表用于此组报头参数,同时将相应的压缩报头分配给该报头参数的组合。后续收到的、带上述报头参数组合的数据包由该查询表项目进行匹配。在报头压缩中用压缩报头值替代相应参数。在SED中将数据包重新写为压缩格式或完整报头格式。

        执行压缩的NP最初需要发送一个具有完整报头的PDU,其中包括所有未经压缩的报头参数与分配给这个特定数据流的CID。该PDU可帮助接收端的NP记录给定CID所对应的解压参数。

        在使用某个压缩报头发送属于相同数据流的后续PDU时,接收端的NP可以用一组正确的报头参数替代该压缩报头,这个过程作为解压过程的一部分。

        通过一种被称为刷新检查(refresh check)的过程(见图2),完整报头能够以不断降低的频率按指定的间隔发送,从而确保了压缩/解压同步。状态引擎决定何时发送带有完整报头格式的数据包。

    ic72 技术资料

    图2:刷新检查过程(online)

        控制处理器负责执行下列辅助压缩的任务:1. 更新查询树,以设置流标识;2. 设置状态引擎参数,以触发具备完整报头的数据包。

    UDP报头解压

        报头解压过程见图3。

    ic72 技术资料
    图3:快速通道中的UDP/IP压缩过程

        如前所述,报头的解压也在快速通道中执行,无需主处理器的帮助(见图4)。

    ic72 技术资料
    图4:UDP/IP解压过程 

        不过,在遇到带有未知报头参数的新报头时,主处理器就会创建所需的查询树项目,以帮助器件执行解压过程。

        分类器利用查询树检查数据包流是否存在。如果属于一个新的数据包流(即CID查询失败),则数据包被发送至控制处理器。控制处理器更新查询表与SED参数存储器。

        然后数据包被返回,以重新插入相同的数据包流。这种实施可确保在主处理器处接收到的、属于相同包流的连续PDU不至于造成为相同包流分配多个CID。另外,它还可以确保所有收到的PDU被正确地重新插回数据包流,从而保证数据包正确的先入/先出顺序。

        每当收到具有完整报头的数据包,该器件都会利用函数编程语言(FPL)树表检查报头。这种检查是为了确保没有设定保持固定的字段发生变化。SED将数据包重新写为未压缩格式。

        控制处理器执行下列辅助解压的任务:

        1. 更新查询树;

        2. 更新SED参数存储器。将未解压的报头保持在SED参数中;

        3. 在完成表项之前保持数据包;

        4. 在设置了新的解压表项之后,将数据包重新插回数据包流;根据需要对报头进行解压。

    本文小结

        实现UDP/IP压缩需要大约1,000行快速通道代码与1,200行慢速通道(主处理器)代码。这些代码用于配置前面所述的分类器与流量管理模块。

        处理器可以保持2Gbps的吞吐能力,同时提供压缩与解压服务。实现的范例表明,该器件能够轻松处理10,000个不同的数据包流。这些流是通过改变用于识别单个数据包流的5个元组(源与目标IP地址、源与目标UDP端口以及ToS字段)中的至少一个参数创建的。

        未压缩的报头携带28个字节的UDP/IP报头信息。而压缩报头替换静态参数之后,上述信息被压缩为5个字节。因此,上述压缩过程可以使报头尺寸缩小80%。总吞吐能力的实际降低取决于与报头相关的有效载荷大小(由于报头占用的空间相对较多,因此有效载荷越小,带宽降幅越大)。

        在采用20字节的有效载荷时,939Mbps的未压缩流量可以压缩至435Mbps(后者也可解压到前者),这说明了吞吐能力节约效果显著。

        功能强大的UDP/IP报头压缩技术可通过使报头缩小80%来提高吞吐能力并减少数据包的丢失与延迟。在有效载荷较低的情况下,通过降低报头开销使吞吐量加倍,从而大幅提高传输效率。


    www.ic72.com 达普IC芯片交易网
  • 行业动态
  • 市场趋势
  • 政策法规
  • 新品发布
  • Baidu

    IC快速检索:abcdefghijklmnopqrstuvwxyz0123456789
    COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
    客户服务:service@IC72.com 库存上载:IC72@IC72.com
    (北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
    京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质