【技术实现步骤摘要】
增强UDP网络协议以有效传输大型数据单元的技术
技术介绍
[0001]数据包(或数据报)通常通过操作系统的网络堆栈(network stack)运行每个数据包来处理,其分层处理该数据包中的每个报头-例如,以太网报头,互联网协议(IP)报头和传输控制协议(TCP)/用户数据报协议(UDP)报头。由于需要处理每个数据包报头,因此高带宽网络接口可能会导致中央处理器(CPU)利用率高,因为CPU处理大量数据包。因此,可以实现各种解决方案以将某些处理从CPU卸载到另外的一个或更多个硬件组件上,例如网络媒体访问控制(MAC)硬件。例如,已经实现了分段(segmentation)卸载(主要是针对固有排序的TCP连接),从而使CPU上运行的网络堆栈仅处理一个大的TCP有效载荷,而网络MAC硬件负责将较大的TCP有效载荷分段为可以容纳在底层以太网介质的最大传输单元(MTU)中的最大分段大小(MSS)部分,同时根据执行的分段更新TCP/IP报头。
[0002]然而,对于UDP业务,分段卸载更具挑战性,因为UDP有效载荷中没有内置或固有的排序。例如,在应用程序向网 ...
【技术保护点】
【技术特征摘要】
1.一种方法,包括:生成包括来自应用程序的应用程序数据的用户数据报协议(UDP)有效载荷;生成多个UDP数据包,每个UDP数据包包括所述应用程序数据的一部分;编码初始值到所述多个UDP数据包的初始数据包的第一互联网协议(IP)报头字段,编码最终值到所述多个UDP数据包的最终数据包的所述第一IP报头字段,以及编码中间值到所述多个UDP数据包中在所述初始数据包和所述最终数据包之间的每个中间数据包的所述第一IP报头字段;对于从所述初始数据包到所述最终数据包的所述多个UDP数据包中的每一个,递增第二IP报头字段的值;以及将所述多个UDP数据包发送到接收设备。2.根据权利要求1所述的方法,其中所述多个UDP数据包在被所述接收设备接收到时,使所述接收设备根据由所述多个UDP数据包中的每一个的所述第二IP报头字段的值定义的序列,使用所述多个UDP数据包来重新组装所述UDP有效载荷。3.根据权利要求1所述的方法,其中所述第一IP报头字段是生存时间(TTL)报头字段或服务类型(TOS)报头字段中的至少一个,所述第二报头字段是IP标识(ID)报头字段。4.根据权利要求1所述的方法,其中所述初始值指示所述接收设备开始聚合数据包,并且所述最终值指示所述接收设备停止聚合数据包。5.根据权利要求1所述的方法,还包括将不分片(DF)位设置为1。6.根据权利要求1所述的方法,其中所述第一IP报头字段是生存时间(TTL)报头字段,并且所述初始值、所述最终值和所述中间值被编码为所述TTL报头字段的两个最高位。7.根据权利要求1所述的方法,其中所述生成多个UDP数据包包括:执行UDP分段卸载(USO)操作。8.根据权利要求1所述的方法,其中所述初始值、所述最终值和所述中间值彼此不同,并且所述初始值、所述最终值和所述中间值选自:(0,1),(1,0)和(1,1)。9.一种系统,包括:用户数据报协议(UDP)硬件,用于生成包括来自应用程序的应用程序数据的UDP有效载荷;互联网协议(IP)硬件,用于:生成多个UDP数据包,每个UDP数据包包括所述应用程序数据的一部分;将值编码到所述多个UDP数据包中的每一个的生存时间(TTL)字段,以指示至少所述多个UDP数据包的第一数据包、最终数据包以及所述第一数据包和所述最终数据包之间的中间数据包由接收设备聚合;以及对于从所述第一数据包到所述最终数据包的所述多个UDP数据包...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。