一种报文转发的方法和设备的制作方法

文档序号:7891797阅读:120来源:国知局
专利名称:一种报文转发的方法和设备的制作方法
技术领域
本发明涉及网络技术领域,尤其涉及一种报文转发的方法和设备。
背景技术
ECN(explicit congestion notification,明确拥塞通告)是一种主动进行流量控制的机制,该机制依赖报文的IP头字段和TCP头字段携带ECN控制信息,可以在不丢包的情况下使TCP (Transmission Control Protocol传输控制协议)发送端感知网络拥塞从而主动降低发送流量以避免网络进一步拥塞和大面积的持续丢包。现有技术中,通常在TCP/IP报文的IP头字段和TCP头字段添加ECN控制信息,而该TCP/IP报文在通过报文转发设备进行转发的过程中,该报文转发设备在使用套接字机制收发报文时会将该TCP/IP报文的IP头字段和TCP头字段剥离,从而导致在转发该TCP/IP报文时,造成位于IP头字段和TCP头字段的信息丢失。

发明内容
本发明的实施例提供一种报文转发的方法和设备,以解决报文转发设备在使用套接字机制转发报文时造成的信息丢失问题。为达到上述目的,本发明的实施例采用如下技术方案提供一种报文转发的方法,所述方法应用于使用套接字机制转发报文的报文转发设备中,包括接收第一报文;剥离所述第一报文的第一报文头字段,获取所述第一报文头字段中的信息以及所述第一报文的负荷;为所述负荷封装第二报文头字段,将所述第一报文头字段中的信息对应写入所述第二报文头字段中,形成第二报文,所述第一报文头字段以及所述第二报文头字段包括互联网协议IP头字段和传输控制协议TCP头字段,所述信息包括所述IP头字段中的第一信息和/或所述TCP头字段中的第二信息;发送所述第二报文。提供一种报文转发设备,所述转发设备使用套接字机制转发报文,包括第一网络接口,用于接收第一报文;剥离获取单元,用于剥离所述第一报文的第一报文头字段,获取所述第一报文头字段中的信息以及所述第一报文的负荷;封装单元,用于为所述负荷封装第二报文头字段,将所述第一报文头字段中的信息对应写入所述第二报文头字段中,形成第二报文,所述第一报文头字段以及所述第二报文头字段包括互联网协议IP头字段和传输控制协议TCP头字段,所述信息包括所述IP头字段中的第一信息和/或所述TCP头字段中的第二信息;第二网络接口,用于发送所述第二报文。
本发明实施例中,报文转发设备接收第一报文,剥离第一报文的第一报文头字段,并获取该第一报文头字段中的信息以及该第一报文的负荷,为该负荷封装第二报文头字段,将第一报文头字段中的信息对应写入该第二报文头字段中,形成第二报文,并发送该第二报文,这样,通过将第一报文剥离的第一报文头字段中的信息对应写入为该第一报文中的负荷重新封装的第二报文头段中,解决了报文转发设备在使用套接字机制转发报文时造成的 目息丢失问题。



为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例提供的一种报文转发方法的示意图;图2为本发明实施例提供的一种应用于报文转发设备的报文转发方法的流程示意图;图3为本发明实施例提供的一种报文转发设备。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供一种报文转发的方法,如图I所示,该方法的执行主体为一种使用套接字机制转发报文的报文转发设备,包括S101、接收第一报文。其中,该第一报文包含第一报文头字段和该第一报文的负荷。具体地,报文转发设备通过与该第一报文头字段的目的端口号对应的端口接收该第一报文。S102、剥离该第一报文的第一报文头字段,获取该第一报文头字段中的信息以及该第一报文的负荷。其中,该第一报文头字段包括IP头字段和TCP头字段,该报文头字段中的信息包括IP头字段中的第一信息和/或TCP头字段中的第二信息,该第一报文的负荷为该第一报文承载的数据信息。具体地,当该第一报文的IP头字段中包含第一信息且TCP头字段中包含第二信息,报文转发设备在剥离该第一报文的IP头字段和TCP头字段时,获取IP头字段中的第一信息和TCP头字段中的第二信息;当该第一报文头字段中的信息为该第一报文的IP头字段中的第一信息,即该第一报文的TCP头字段不包含任何信息时,报文转发设备在剥离该第一报文的IP头字段和TCP头字段时,只获取IP头字段中的第一信息;
同样地,当该第一报文头字段中的信息为该第一报文的TCP头字段中的第二信息,即该第一报文的 IP头字段不包含任何信息时,报文转发设备在剥离该第一报文的IP头字段和TCP头字段时,只获取TCP头字段中的第二信息。S103、为该第一报文的负荷封装第二报文头字段,将该第一报文头字段中的信息对应写入该第二报文头字段中,形成第二报文。其中,该第二报文头字段包括IP头字段和TCP头字段。具体地,在该报文转发设备获取到第一报文的IP头字段中的第一信息和第一报文的TCP头字段中的第二信息的情况下,在为该第一报文的负荷封装第二报文的IP头字段和TCP头字段时,将该第一信息和第二信息对应写入该第二报文的IP头字段和TCP头字段中,形成第二报文。在该报文转发设备只获取到第一报文的IP头字段中的第一信息的情况下,在为该第一报文的负荷封装第二报文的IP头字段和TCP头字段时,将该第一信息对应写入该第二报文的IP头字段中,形成第二报文,同样地,在该报文转发设备只获取到第一报文的TCP头字段中的第二信息的情况下,在为该第一报文的负荷封装第二报文的IP头字段和TCP头字段时,将该第二信息对应写入该第二报文的TCP头字段中,形成第二报文。另外,上述第一报文头字段的源端口号或源IP地址与上述第二报文头字段的源端口号或源IP地址不同,上述第一报文头字段的目的端口号或目的IP地址与上述第二报文头字段的目的端口号或目的IP地址也不同。S104、发送该第二报文。具体地,该报文转发设备将发送该第二报文的端口号作为该第二报文的源端口号,将接收该第二报文的端口号作为目的端口号,并根据目的端口号将该第二报文发送至该目的端口号对应的端口。需要说明的是,上述实施例中的第一/[目息和第二彳目息可以是相同/[目息,也可以是不同信息,该第一信息和第二信息具体可以是ECN(Explicit Congestion Notification,明确拥塞通告)控制信息,本发明实施例并不局限于此。这样,通过将第一报文剥离的第一报文头字段中的信息对应写入为该第一报文中的负荷重新封装的第二报文头段中,解决了报文转发设备在使用套接字机制转发报文时造成的 目息丢失问题。本发明实施例提供另一种报文转发的方法,属于对图I所示方法的进一步扩展,应用于一种使用套接字机制转发报文的报文转发设备,该报文转发设备包括第一网络接口、剥离获取单元和封装单元以及第二网络接口,本发明实施例中的第一信息和第二信息为ECN控制信息,该第一信息具体为第一 ECN控制信息,该第二信息具体为第二 ECN控制信息,如图2所示,该方法具体步骤包括S201、报文转发设备的第一网络接口接收第一报文。其中,该第一报文包含第一报文头字段和该第一报文的负荷。具体地,该报文转发设备通过与该第一报文头字段的目的端口号对应的端口接收该第一报文。S202、报文转发设备的剥离获取单元接收该第一网络接口单元传递的第一报文。
S203、该剥离获取单元获取该第一报文后,剥离该第一报文的IP头字段和TCP头字段,并获取IP头字段中的第一 ECN控制信息和TCP头字段中的第二 ECN控制信息以及该第一报文的负荷。其中,该ECN控制信息应用于ECN机制,ECN机制是一种主动进行流量控制的机制,该机制依赖报文的IP头字段和TCP头字段携带ECN控制信息。S204、报文转发设备的封装单元接收该剥离获取单元传递的第一 ECN控制信息和第二 ECN控制信息以及第一报文的负荷。S205、该封装单元为该负荷封装第二报文的IP头字段和TCP头字段,并将第一ECN控制信息写入第二报文的IP头字段;将第二 ECN控制信息写入第二报文的TCP头字段,从 而形成第二报文。其中,该第二报文头字段包括IP头字段和TCP头字段,该第二报文的IP头字段中包含第一 ECN控制信息,TCP头字段中包含第二 ECN控制信息,这样,第一 ECN控制信息和第二 ECN控制信息就成功写入至第二报文的IP头字段和TCP头字段,使得该第一 ECN控制信息和第二 ECN控制信息不会随着第一报文的IP头字段和TCP头字段的剥离而丢失。另外,上述第一报文头字段的源端口号或源IP地址与上述第二报文头字段的源端口号或源IP地址不同,上述第一报文头字段的目的端口号或目的IP地址与上述第二报文头字段的目的端口号或目的IP地址也不同。S206、该封装单元将该第二报文传递至报文转发设备的第二网络接口。S207、该第二网络接口将该第二报文发送出去。具体地,该报文转发设备将发送该第二报文的端口号作为该第二报文源端口号,并根据目的端口号将该第二报文发送至该目的端口号对应的端口。需要说明的是,上述第一 ECN控制信息和第二 ECN控制信息可以是相同的ECN控制信息,也可以是不同的ECN控制信息,本发明实施例不限于此。这样,通过将第一报文剥离的IP头字段和TCP头字段中的第一 ECN控制信息和第二 ECN控制信息对应写入为该第一报文中的负荷重新封装的IP头字段和TCP头字段中,解决了现有技术中在剥离第一报文的IP头字段和TCP头字段时造成的第一 ECN控制信息和第二 ECN控制彳目息丢失得到问题。本发明实施例提供一种报文转发设备30,用于实现图I或图2所示的方法,如图3所示,该报文转发设备包括第一网络接口 31,用于接收第一报文;其中,该第一报文包含第一报文头字段和该第一报文的负荷,该第一报文的负荷为该第一报文承载的数据信息。具体地,该第一网络接口 31通过与该第一报文头字段的目的端口号对应的端口接收该第一报文。剥离获取单元32,用于剥离该第一报文的第一报文头字段,获取该第一报文头字段中的信息以及该第一报文的负荷。封装单元33,用于为该负荷封装第二报文头字段,将该第一报文头字段中的信息对应写入该第二报文头字段中,形成第二报文。其中,该第一报文头字段以及该第二报文头字段包括互联网协议IP头字段和传输控制协议TCP头字段,该信息包括该IP头字段中的第一信息和/或该TCP头字段中的第
二信息具体地,当该第一报文的IP头字段中包含第一信息且TCP头字段中包含第二信息时,该剥离获取单元32,用于在剥离该第一报文的IP头字段和TCP头字段时,获取该第一报文的IP头字段中的第一信息和TCP头字段中的第二信息,则对应地,该封装单元33,用于在为该负荷封装第二报文的IP头字段和TCP头字段时,将该第一信息和该第二信息中的至少一个对应写入该第二报文的IP头字段和TCP头字 段中。具体地,当该第一报文头字段中的信息为该第一报文的IP头字段中的第一信息时,即该第一报文的TCP头字段不包含任何信息时,该剥离获取单元32,用于在剥离该第一报文的IP头字段和TCP头字段时,获取该第一报文的IP头字段中的第一信息,则对应地,该封装单元33,用于在为该负荷封装第二报文的IP头字段和TCP头字段时,将该第一信息对应写入该第二报文的IP头字段。具体地,当该第一报文头字段中的信息为该第一报文的TCP头字段中的第二信息时,该剥离获取单元32,用于在剥离该第一报文的IP头字段和TCP头字段时,获取该第一报文的TCP头字段中的第二信息,则对应地,该封装单元33,用于在为该负荷封装第二报文的IP头字段和TCP头字段时,将该第二信息对应写入该第二报文的TCP头字段。第二网络接口 34,用于发送该第二报文。具体地,该第二网络接口 34将发送该第二报文的端口号作为该第二报文的源端口号,并根据目的端口号将该第二报文发送至该目的端口号对应的端口。需要说明的是,上述实施例中的第一信息和第二信息可以是相同信息,也可以是不同信息,该第一信息和第二信息具体可以是ECN控制信息,本发明实施例并不局限于此。另外,上述第一报文头字段的源端口号或源IP地址与上述第二报文头字段的源端口号或源IP地址不同,上述第一报文头字段的目的端口号或目的IP地址与上述第二报文头字段的目的端口号或目的IP地址也不同。通过采用上述实施例中的报文转发设备进行报文的转发,通过将第一报文剥离的第一报文头字段中的信息对应写入为该第一报文中的负荷重新封装的第二报文头段中,解决了报文转发设备在使用套接字机制转发报文时造成的信息丢失问题。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
1.一种报文转发的方法,其特征在于,所述方法应用于使用套接字机制转发报文的报文转发设备中,包括 接收第一报文; 剥离所述第一报文的第一报文头字段,获取所述第一报文头字段中的信息以及所述第一报文的负荷; 为所述负荷封装第二报文头字段,将所述第一报文头字段中的信息对应写入所述第二报文头字段中,形成第二报文,所述第一报文头字段以及所述第二报文头字段包括互联网协议IP头字段和传输控制协议TCP头字段,所述信息包括所述IP头字段中的第一信息和/或所述TCP头字段中的第二信息; 发送所述第二报文。
2.根据权利要求I所述的方法,其特征在于,所述剥离所述第一报文的第一报文头字段,获取所述第一报文头字段中的信息,具体为 在剥离所述第一报文的IP头字段和TCP头字段时,获取所述第一报文的IP头字段中的第一信息和TCP头字段中的第二信息; 所述为所述负荷封装第二报文头字段,将所述第一报文头字段中的信息对应写入所述第二报文头字段中,具体为 在为所述负荷封装第二报文的IP头字段和TCP头字段时,将所述第一信息和所述第二信息对应写入所述第二报文的IP头字段和TCP头字段中。
3.根据权利要求I所述的方法,其特征在于,所述剥离所述第一报文的第一报文头字段,获取所述第一报文头字段中的信息,具体为 在剥离所述第一报文的IP头字段和TCP头字段时,获取所述第一报文的IP头字段中的第一信息; 所述为所述负荷封装第二报文头字段,将所述第一报文头字段中的信息对应写入所述第二报文头字段中,具体为 在为所述负荷封装第二报文的IP头字段和TCP头字段时,将所述第一信息对应写入所述第二报文的IP头字段。
4.根据权利要求I所述的方法,其特征在于,所述剥离所述第一报文的第一报文头字段,获取所述第一报文头字段中的信息,具体为 在剥离所述第一报文的IP头字段和TCP头字段时,获取所述第一报文的TCP头字段中的第二信息; 所述为所述负荷封装第二报文头字段,将所述第一报文头字段中的信息对应写入所述第二报文头字段中,具体为 在为所述负荷封装第二报文的IP头字段和TCP头字段时,将所述第二信息对应写入所述第二报文的TCP头字段。
5.根据权利要求I至4中任一权利要求所述的方法,其特征在于,所述第一信息和所述第二信息为明确拥塞通告ECN控制信息。
6.一种报文转发设备,其特征在于,所述转发设备使用套接字机制转发报文,包括 第一网络接口,用于接收第一报文; 剥离获取单元,用于剥离所述第一报文的第一报文头字段,获取所述第一报文头字段中的信息以及所述第一报文的负荷; 封装单元,用于为所述负荷封装第二报文头字段,将所述第一报文头字段中的信息对应写入所述第二报文头字段中,形成第二报文,所述第一报文头字段以及所述第二报文头字段包括互联网协议IP头字段和传输控制协议TCP头字段,所述信息包括所述IP头字段中的第一信息和/或所述TCP头字段中的第二信息; 第二网络接口,用于发送所述第二报文。
7.根据权利要求6所述的设备,其特征在于,所述剥离获取单元具体用于 在剥离所述第一报文的IP头字段和TCP头字段时,获取所述第一报文的IP头字段中的第一信息和TCP头字段中的第二信息; 所述封装单元,具体用于在为所述负荷封装第二报文的IP头字段和TCP头字段时,将所述第一信息和所述第二信息中对应写入所述第二报文的IP头字段和TCP头字段中。
8.根据权利要求6所述的设备,其特征在于,所述剥离获取单元具体用于 在剥离所述第一报文的IP头字段和TCP头字段时,获取所述第一报文的IP头字段中的第一信息; 所述封装单元,具体用于在为所述负荷封装第二报文的IP头字段和TCP头字段时,将所述第一信息对应写入所述第二报文的IP头字段。
9.根据权利要求6所述的设备,其特征在于,所述剥离获取单元具体用于 在剥离所述第一报文的IP头字段和TCP头字段时,获取所述第一报文的TCP头字段中的第二信息; 所述封装单元,具体用于在为所述负荷封装第二报文的IP头字段和TCP头字段时,将所述第二信息对应写入所述第二报文的TCP头字段。
10.根据权利要求6至9中任一权利要求所述的设备,其特征在于, 所述第一信息和所述第二信息为明确拥塞通告ECN控制信息。
全文摘要
本发明实施例提供一种报文转发的方法和设备,涉及网络技术领域,以解决报文转发设备在使用套接字机制转发报文时造成的信息丢失问题,所述方法包括接收第一报文,在剥离该第一报文的第一报文头字段时,获取该第一报文头字段中的信息以及该第一报文的负荷,并为该负荷封装第二报文头字段,将该第一报文头字段中的信息对应写入该第二报文头字段中,形成第二报文,并发送该第二报文,本发明应用于报文转发。
文档编号H04L29/06GK102638395SQ20121007319
公开日2012年8月15日 申请日期2012年3月19日 优先权日2012年3月19日
发明者郑合文 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1