一种ip数据报处理方法及装置制造方法

文档序号:7806232阅读:234来源:国知局
一种ip数据报处理方法及装置制造方法
【专利摘要】本发明实施例公开了一种IP数据报处理方法及装置。其中,该方法包括接收发送方发送的IP数据报;根据所述IP数据报的报头信息,转发所述IP数据报。实施本发明实施例,可以避免网络不通的问题,提高了网络连通率。进一步地,当MTU大于所述IP数据报的大小,则查看所述IP数据报报头信息中的标志字段,根据标识字段中分段标记的不同值,以及预置的数据表中存储有与该IP数据报属于同一数据流的IP数据报的报头信息,可直接根据同一数据流的上一IP数据报的信息进行转发,从而提高网络数据传输效率。
【专利说明】一种IP数据报处理方法及装置

【技术领域】
[0001]本发明涉及通信【技术领域】,具体涉及一种IP数据报处理方法及装置。

【背景技术】
[0002]目前,如校园宿舍、家庭等场所,拥有多台移动设备如智能手机、掌上电脑、笔记本、电子书等可接入网络的的设备,如何实现这些设备之间的连通是亟待解决的问题。
[0003]现有技术中,如笔记本电脑多采用操作系统自带的网络共享服务,通过有线或无线的方式建立网络连接,使多台设备构成一个局域网,然而当系统的网络共享机制打开失败时,或当接收到其他设备发来的数据报时,没有进行地址转换就通过网络端口发送给远端服务器,从而造成网络服务不可用;或者接收到发送方发送的过大的数据帧时,不能及时处理,从而降低了网络连通率及数据传输效率。


【发明内容】

[0004]本发明实施例所要解决的技术问题是提供一种IP数据报处理方法及装置,用于提高网络连通率,并改善数据传输效率。
[0005]本发明实施例提供一种IP数据报处理方法,包括:
[0006]接收发送方发送的IP数据报;
[0007]根据所述IP数据报的报头信息,转发所述IP数据报。
[0008]其中,所述接收发送方发送的IP数据报之后,以及所述根据所述IP数据报的报头信息,转发所述IP数据报之前,所述方法还包括:
[0009]检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小,若检测结果为是,则丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报;
[0010]发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报。
[0011]其中,所述方法还包括:
[0012]若检测结果为否,则触发执行所述根据所述IP数据报的报头信息,转发所述IP数据报的步骤。
[0013]其中,所述IP数据报的报头信息中标志字段包括分段标记,其中,所述分段标记用于指示是否能对所述IP数据报进行分段,当所述分段标记为第一值时,所述IP数据报是分段数据报;当所述分段标记为第二值时,则所述IP数据报不是分段数据报。
[0014]作为一种可选地实施方式,所述根据所述IP数据报的报头信息,转发所述IP数据报,包括:
[0015]查看所述IP数据报报头信息中的标志字段;
[0016]若所述查看的结果为标志字段的分段标记为第二值,则根据所述IP数据报的报头信息,发送所述IP数据报。
[0017]其中,所述方法还包括:
[0018]若所述查看的结果为标志字段的分段标记为第一值,则查询预置的数据表中是否存储有与所述IP数据报属于同一数据流的IP数据报的报头信息;
[0019]若所述查询结果为否,则存储所述IP数据报的报头信息到所述预置的数据表中,并根据所述IP数据报的报头信息,发送所述IP数据报。
[0020]其中,所述方法还包括:
[0021]若所述查询结果为是,则根据所述存储的与所述IP数据报属于同一数据流的IP数据报的报头信息,发送所述IP数据报。
[0022]作为另一种可选地实施方式,所述方法还包括:
[0023]若所述查看的结果为所述标志字段的分段标记为第一值,则将所述IP数据报存储到缓存中;
[0024]根据所述IP数据报的报头信息,查询所述缓存中是否存储有与所述IP数据报属于同一数据流的所有IP数据报;
[0025]若是,则根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报。
[0026]其中,所述根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报,包括:
[0027]根据所述IP数据报报头信息中的偏移量将所述与所述IP数据报属于同一数据流的所有IP数据报重组为一个IP数据报;
[0028]根据所述IP数据报的报头信息,发送所述重组的IP数据报。
[0029]其中,所述根据所述IP数据报的报头信息,发送所述IP数据报,包括:
[0030]修改所述IP数据报的报头信息;
[0031]将所述IP数据报发送给所述修改的报头信息指示的接收方。
[0032]相应地,本发明实施例还提供一种IP数据报处理装置,其特征在于,包括:
[0033]接收模块,用于接收发送方发送的IP数据报;
[0034]转发模块,用于根据所述IP数据报的报头信息,转发所述IP数据报。
[0035]其中,所述装置还包括:
[0036]检测模块,用于检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小;
[0037]第一处理模块,用于若所述检测单元的检测结果为是时,丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报;
[0038]发送模块,用于发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报。
[0039]其中,所述装置还包括:
[0040]第二处理模块,用于若所述检测模块的检测结果为否时,触发所述转发单元执行根据所述IP数据报的报头信息,转发所述IP数据报的步骤。
[0041]其中,所述IP数据报的报头信息中标志字段包括分段标记,其中,所述分段标记用于指示是否能对所述IP数据报进行分段,当所述分段标记为第一值时,所述IP数据报是分段数据报;当所述分段标记为第二值时,则所述IP数据报不是分段数据报。
[0042]其中,所述转发模块,包括:
[0043]查看单元,用于查看所述IP数据报报头信息中的标志字段;
[0044]第一发送单元,用于若所述查看单元查看的结果为标志字段的分段标记为第二值,则根据所述IP数据报的报头信息,发送所述IP数据报。
[0045]作为一种可选地实施方式,所述转发模块还包括:
[0046]第一查询单元,用于若所述查看单元查看的结果为标志字段的分段标记为第一值,则查询预置的数据表中是否存储有与所述IP数据报属于同一数据流的IP数据报的报头/[目息;
[0047]第一存储单元,用于若所述第一查询单元查询的结果为否,则将所述IP数据报的报头信息存储到所述预置的数据表中;
[0048]第二发送单元,用于根据所述IP数据报的报头信息,发送所述IP数据报。
[0049]其中,所述转发模块还包括:
[0050]第三发送单元,用于若所述第一查询单元查询的结果为是,则根据所存储的与所述IP数据报属于同一数据流的IP数据报的报头信息,发送所述IP数据报。
[0051]作为另一种可选地实施方式,所述转发模块还包括:
[0052]第二存储单元,用于若所述查看单元查看的结果为所述标志字段的分段标记为第一值,则将所述IP数据报存储到缓存中;
[0053]第二查询单元,用于根据所述IP数据报的报头信息,查询所述缓存中是否存储有与所述IP数据报属于同一数据流的所有IP数据报;
[0054]第四发送单元,用于若所述第二查询单元的查询结果为是,则根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报。
[0055]其中,所述第四发送单元,包括:
[0056]重组子单元,用于根据所述IP数据报报头信息中的偏移量将所述与所述IP数据报属于同一数据流的所有IP数据报重组为一个IP数据报;
[0057]第一发送子单元,用于根据所述IP数据报的报头信息,发送所述重组的IP数据报。
[0058]其中,所述第一发送单元,包括:
[0059]修改子单元,用于修改所述IP数据报的报头信息;
[0060]第二发送子单元,用于将所述IP数据报发送给所述修改的报头信息指示的接收方。
[0061]本发明实施例首先接收发送方发送的IP数据报,然后根据所述IP数据报的报头信息,转发所述IP数据报,与现有技术中,采用系统网络共享服务发送IP数据报方式相比,提高了网络连通率及数据传输效率。

【专利附图】

【附图说明】
[0062]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0063]图1是本发明实施例公开的一种IP数据报处理方法的流程示意图;
[0064]图2是本发明实施例公开的另一种IP数据报处理方法的流程示意图;
[0065]图3是本发明实施例公开的一种ICMP包格式的示意图;
[0066]图4本发明实施例公开的又一种IP数据报处理方法的流程示意图;
[0067]图5是本发明实施例公开的一种IP数据报处理装置的结构示意图;
[0068]图6是本发明实施例公开的另一种IP数据报处理装置的结构示意图。

【具体实施方式】
[0069]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0070]本发明实施例中提供了一种IP数据报处理方法及装置,可以提高网络连通率,并改善数据传输效率。以下分别进行详细说明。
[0071]实施例一:
[0072]请参见图1,图1为本发明实施例提供的一种IP数据报处理方法的流程示意图,如图1所示,该方法包括以下步骤:
[0073]S101,终端接收发送方发送的IP数据报。
[0074]S102,终端根据IP数据报的报头信息,转发IP数据报。
[0075]具体地,终端根据IP数据报的报头信息,转发IP数据报的过程为先对接收到的IP数据报进行修改,然后将修改后的IP数据报根据其报头信息的指示,发送出去。
[0076]进一步地,在接收到发送方发送的IP数据报之后,终端检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小,若检测结果为是,则丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报,发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报;若检测结果为否,则触发执行所述根据所述IP数据报的报头信息,转发所述IP数据报的步骤。
[0077]其中,所述IP数据报的报头信息中标志字段包括分段标记,其中,所述分段标记用于指示是否能对所述IP数据报进行分段,当所述分段标记为第一值时,所述IP数据报是分段数据报;当所述分段标记为第二值时,则所述IP数据报不是分段数据报。
[0078]具体地,终端在执行步骤S102时,还包括以下步骤:
[0079]查看所述IP数据报报头信息中的标志字段;
[0080]若所述查看的结果为标志字段的分段标记为第二值,则根据所述IP数据报的报头信息,发送所述IP数据报;
[0081]作为一种可选地实施方式,若所述查看的结果为标志字段的分段标记为第一值,则查询预置的数据表中是否存储有与所述IP数据报属于同一数据流的IP数据报的报头信息,若所述查询结果为否,则存储所述IP数据报的报头信息到所述预置的数据表中,并根据所述IP数据报的报头信息,发送所述IP数据报;若所述查询结果为是,则根据所述存储的与所述IP数据报属于同一数据流的IP数据报的报头信息,发送所述IP数据报;
[0082]作为另一种可选地实施方式,若所述查看的结果为所述标志字段的分段标记为第一值,则将所述IP数据报存储到缓存中,根据所述IP数据报的报头信息,查询所述缓存中是否存储有与所述IP数据报属于同一数据流的所有IP数据报,若是,则根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报。
[0083]其中,所述根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报,包括:根据所述IP数据报报头信息中的偏移量将所述与所述IP数据报属于同一数据流的所有IP数据报重组为一个IP数据报;根据所述IP数据报的报头信息,发送所述重组的IP数据报。
[0084]本发明实施例首先接收发送方发送的IP数据报,然后根据所述IP数据报的报头信息,转发所述IP数据报,与现有技术中,采用系统网络共享服务发送IP数据报方式相比,提高了网络连通率及数据传输效率。
[0085]实施例二:
[0086]请参见图2,图2为本发明实施例公开的另一种IP数据报处理方法的流程示意图,是图1所述的方法进一步优化得到的,具体地,如图2所示,该方法包括以下步骤:
[0087]S201,终端接收发送方发送的IP数据报;
[0088]S202,终端检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小;
[0089]其中,最大传输单元(Maximum Transmiss1n Unit, MTU)是指通信协议某一层上面所能通过的最大数据报大小(以字节为单位),该参数与通信接口有关,如网络接口卡、串口等。
[0090]执行步骤S202是由于当一台终端有大量的数据要发送给另一台主机的时候,数据时作为一系列的IP数据报传输的,该IP数据报最好具有在从源点到目的点的路径上不需要分片的最大尺寸,若有则执行如下步骤S203和S204,从而避免执行IP数据报处理的终端无法实现 Internet 控制报文协议(Internet Control Message Protocol, ICMP)卸载导致网络不通的问题。
[0091]S203,终端如果检测出MTU小于所述IP数据报的大小,则丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报;
[0092]S204,终端发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报;
[0093]具体地,请参见图3,图3为一种优选的ICMP包,其具体内容包括类型、代码、检验和、未用(必须为0)、下一站网络的MTU、IP首部(包括选项)以及原始IP数据报中数据的前8字节,其中,前五项内容共占8字节。
[0094]S205,终端如果检测出MTU大于所述IP数据报的大小,则查看所述IP数据报报头信息中的标志字段;
[0095]终端如果检测出MTU大于所述IP数据报的大小,则查看所述IP数据报报头信息中的标志字段,对报头信息进行修改,再转发出去,具体请参见如下步骤S206至S209.
[0096]S206,若所述查看的结果为标志字段的分段标记为第二值,则终端根据所述IP数据报的报头信息,发送所述IP数据报;
[0097]S207,若所述查看的结果为标志字段的分段标记为第一值,则终端查询预置的数据表中是否存储有与所述IP数据报属于同一数据流的IP数据报的报头信息;
[0098]S208,若所述查询结果为否,则终端存储所述IP数据报的报头信息到所述预置的数据表中,并根据所述IP数据报的报头信息,发送所述IP数据报;
[0099]S209,若所述查询结果为是,则终端根据所述存储的与所述IP数据报属于同一数据流的IP数据报的报头信息,发送所述IP数据报。
[0100]例如,标识字段在IP数据报的报头信息中占3位,第I位作为保留;第二位(DF)为分段标记位,若该分段标记取第二值(如为I)时,表示该IP数据报没有被分段,直接可以根据报头信息,对报头信息进行修改后,转发出去,若该分段标记取第一值(如为O)时,表示该IP数据报为分段数据报;第三位(More fragments)更多分段,用于表示该IP数据报为数据流中哪个分段,若取值为I可表示数据流未完,后续还有分段数据报,若取值为0,则表示这是唯一的分段,例如该IP数据报不是分段数据报,没有被分段。总之,第二位(DF)为分段标记位不同,对应的IP数据报的处理也不同,具体如步骤S206至S209的处理。
[0101 ] 在本发明实施例中,终端接收到发送方发送的IP数据报后,通过检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小,确定对该IP数据报的下一步处理,从而避免网络不通的问题,提高了网络连通率。进一步地,当MTU大于所述IP数据报的大小,则查看所述IP数据报报头信息中的标志字段,当标识字段中分段标记为第一值时,且预置的数据表中存储有与该IP数据报属于同一数据流的IP数据报的报头信息,可直接根据同一数据流的上一 IP数据报的信息进行转发,从而提高网络数据传输效率。
[0102]实施例三:
[0103]请参见图4,图4为本发明实施例公开的又一种IP数据报处理方法的流程示意图,图4所述的方法是在图1所述的实施例的基础上进行优化得到的,如图4所示,该方法包括以下步骤:
[0104]S301,终端接收发送方发送的IP数据报;
[0105]S302,终端检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小;
[0106]S303,若检测结果为是,终端丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报;
[0107]S304,终端发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报;
[0108]S305,若检测结果为否,终端查看所述IP数据报报头信息中的标志字段;
[0109]所述IP数据报的报头信息中标志字段包括分段标记,其中,所述分段标记用于指示是否能对所述IP数据报进行分段,当所述分段标记为第一值时,所述IP数据报是分段数据报;当所述分段标记为第二值时,则所述IP数据报不是分段数据报。
[0110]S306,若所述查看的结果为标志字段的分段标记为第二值,则终端根据所述IP数据报的报头信息,发送所述IP数据报;
[0111]S307,若所述查看的结果为所述标志字段的分段标记为第一值,则终端将所述IP数据报存储到缓存中;
[0112]S308,终端根据所述IP数据报的报头信息,查询所述缓存中是否存储有与所述IP数据报属于同一数据流的所有IP数据报;
[0113]S309,若是,则终端根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报。
[0114]其中,所述终端根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报具体为:终端根据所述IP数据报报头信息中的偏移量将所述与所述IP数据报属于同一数据流的所有IP数据报重组为一个IP数据报;根据所述IP数据报的报头信息,发送所述重组的IP数据报。
[0115]具体地,分段标记为第一值时,则从源地址到目的地址的时候,由于网络延迟或者不同传输路径的关系,在到达目的主机时,如本终端时,这些分段的IP数据报并不总是有序的排列,有可能处于无序的状态,因此执行IP数据报的终端需要将与该IP数据报属于同一数据流的所有IP数据报都存储到缓存中,再根据该数据流中的所有IP数据报的偏移量(该偏移量位于IP数据报的报头信息中)将所有IP数据报重组为一个IP数据报,其中该重组的IP数据报包括属于同一数据流的所有IP数据报。
[0116]本发明实施例中,终端对分段标记为第一值的IP数据报的处理方式与上述发明实施例中的不同,两种处理方式可以同时存在在执行IP数据报处理的终端中,由终端根据不同设置或信息选择不同的处理方式。
[0117]与上述发明实施例相比,本发明实施例同样可以实现避免网络不通的问题,提高了网络连通率以及网络数据传输效率。进一步地,本发明实施例通过将与IP数据报属于同一数据流的所有IP数据报全部存储到缓存后,再进行重组、转发,减轻了终端的处理负担。
[0118]实施例四:
[0119]请参见图5,图5为本发明实施例公开地一种IP数据报处理装置的结构示意图,如图5所示,该装置包括以下模块及单元。
[0120]接收模块1,用于接收发送方发送的IP数据报;
[0121]转发模块2,用于根据所述接收模块I接收的IP数据报的报头信息,转发所述IP数据报。
[0122]其中,所述装置还包括检测模块,用于检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小;第一处理模块,用于若所述检测模块的检测结果为是时,丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报;发送模块,用于发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报;第二处理模块,用于若所述检测模块的检测结果为否时,触发所述转发单元执行根据所述IP数据报的报头信息,转发所述IP数据报的步骤。
[0123]其中,所述IP数据报的报头信息中标志字段包括分段标记,其中,所述分段标记用于指示是否能对所述IP数据报进行分段,当所述分段标记为第一值时,所述IP数据报是分段数据报;当所述分段标记为第二值时,则所述IP数据报不是分段数据报。
[0124]作为一种可选地实施方式,所述转发模块还包括:
[0125]第一查询单元,用于若所述查看单元查看的结果为标志字段的分段标记为第一值,则查询预置的数据表中是否存储有与所述IP数据报属于同一数据流的IP数据报的报头/[目息;
[0126]第一存储单元,用于若所述第一查询单元查询的结果为否,则将所述IP数据报的报头信息存储到所述预置的数据表中;
[0127]第二发送单元,用于根据所述IP数据报的报头信息,发送所述IP数据报。
[0128]第三发送单元,用于若所述第一查询单元查询的结果为是,则根据所存储的与所述IP数据报属于同一数据流的IP数据报的报头信息,发送所述IP数据报。
[0129]作为另一种可选地实施方式,所述转发模块还包括:第二存储单元,用于若所述查看单元查看的结果为所述标志字段的分段标记为第一值,则将所述IP数据报存储到缓存中;第二查询单元,用于根据所述IP数据报的报头信息,查询所述缓存中是否存储有与所述IP数据报属于同一数据流的所有IP数据报;第四发送单元,用于若所述第二查询单元的查询结果为是,则根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报。其中,所述第四发送单元,包括:重组子单元,用于根据所述IP数据报报头信息中的偏移量将所述与所述IP数据报属于同一数据流的所有IP数据报重组为一个IP数据报;第一发送子单元,用于根据所述IP数据报的报头信息,发送所述重组的IP数据报。
[0130]其中,所述第一发送单元,包括:修改子单元,用于修改所述IP数据报的报头信息;第二发送子单元,用于将所述IP数据报发送给所述修改的报头信息指示的接收方。
[0131]本发明实施例所述的IP数据报处理装置可首先接收发送方发送的IP数据报,然后根据所述IP数据报的报头信息,转发所述IP数据报,与现有技术中,采用系统网络共享服务发送IP数据报方式相比,终端可提高网络连通率及数据传输效率。
[0132]请参见图6,图6为本发明实施例公开的另一种IP数据报处理装置的结构示意图,图6所示的装置是图5所示装置进一步优化得到的,具体地,如图6所示,该装置包括以下模块及单元。
[0133]接收模块1,用于接收发送方发送的IP数据报。
[0134]转发模块2,用于根据所述接收模块接收的IP数据报的报头信息,转发所述IP数据报。
[0135]检测模块3,用于检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小。
[0136]其中,最大传输单元(Maximum Transmiss1n Unit, MTU)是指通信协议某一层上面所能通过的最大数据报大小(以字节为单位),该参数与通信接口有关,如网络接口卡、串口等。
[0137]由于当一台终端有大量的数据要发送给另一台主机的时候,数据时作为一系列的IP数据报传输的,该IP数据报最好具有在从源点到目的点的路径上不需要分段的最大尺寸,若检测模块3检测结果为是,则通过如下所述的第一处理模块4和发送模块5可避免执行IP数据报处理的终端无法实现Internet控制报文协议(Internet Control MessageProtocol, ICMP)卸载导致网络不通的问题。
[0138]第一处理模块4,用于若所述检测模块的检测结果为是时,丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报;
[0139]发送模块5,用于发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报。
[0140]具体地,请参见图3,图3为一种优选的ICMP包,其具体内容包括类型、代码、检验和、未用(必须为0)、下一站网络的MTU、IP首部(包括选项)以及原始IP数据报中数据的前8字节,其中,前五项内容共占8字节。
[0141]另外,所述装置还包括:
[0142]第二处理模块6,用于若所述检测模块的检测结果为否时,触发所述转发单元执行根据所述IP数据报的报头信息,转发所述IP数据报的步骤。
[0143]其中,所述IP数据报的报头信息中标志字段包括分段标记,其中,所述分段标记用于指示是否能对所述IP数据报进行分段,当所述分段标记为第一值时,所述IP数据报是分段数据报;当所述分段标记为第二值时,则所述IP数据报不是分段数据报。
[0144]例如,标识字段在IP数据报的报头信息中占3位,第I位作为保留;第二位(DF)为分段标记位,若该分段标记取第二值(如为I)时,表示该IP数据报没有被分段,直接可以根据报头信息,对报头信息进行修改后,转发出去,若该分段标记取第一值(如为O)时,表示该IP数据报为分段数据报;第三位(More fragments)更多分段,用于表示该IP数据报为数据流中哪个分段,若取值为I可表示数据流未完,后续还有分段数据报,若取值为0,则表示这是唯一的分段,例如该IP数据报不是分段数据报,没有被分段。总之,第二位(DF)为分段标记位不同,对应的IP数据报的处理也不同,具体由如下所述转发模块2所包括的单元或子单元进行处理。
[0145]作为一种可选地实施方式,所述转发模块2,包括:
[0146]查看单元21,用于查看所述IP数据报报头信息中的标志字段;
[0147]第一发送单元22,用于若所述查看单元查看的结果为标志字段的分段标记为第二值,则根据所述IP数据报的报头信息,发送所述IP数据报。
[0148]第一查询单元23,用于若所述查看单元查看的结果为标志字段的分段标记为第一值,则查询预置的数据表中是否存储有与所述IP数据报属于同一数据流的IP数据报的报头/[目息;
[0149]第一存储单元24,用于若所述第一查询单元查询的结果为否,则将所述IP数据报的报头信息存储到所述预置的数据表中;
[0150]第二发送单元25,用于根据所述IP数据报的报头信息,发送所述IP数据报。
[0151]第三发送单元26,用于若所述第一查询单元查询的结果为是,则根据所存储的与所述IP数据报属于同一数据流的IP数据报的报头信息,发送所述IP数据报。
[0152]作为另一种可选地实施方式,所述转发模块2还包括:
[0153]第二存储单元27,用于若所述查看单元21查看的结果为所述标志字段的分段标记为第一值,则将所述IP数据报存储到缓存中;
[0154]第二查询单元28,用于根据所述IP数据报的报头信息,查询所述缓存中是否存储有与所述IP数据报属于同一数据流的所有IP数据报;
[0155]第四发送单元29,用于若所述第二查询单元的查询结果为是,则根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报。
[0156]其中,所述第四发送单元29,包括:
[0157]重组子单元,用于根据所述IP数据报报头信息中的偏移量将所述与所述IP数据报属于同一数据流的所有IP数据报重组为一个IP数据报;
[0158]第一发送子单元,用于根据所述IP数据报的报头信息,发送所述重组的IP数据报。
[0159]进一步地,所述第一发送单元22,包括:
[0160]修改子单元,用于修改所述IP数据报的报头信息;
[0161]第二发送子单元,用于将所述IP数据报发送给所述修改的报头信息指示的接收方。
[0162]具体地,分段标记为第一值时,则从源地址到目的地址的时候,由于网络延迟或者不同传输路径的关系,在到达目的主机时,如本发明实施例所述IP数据报处理装置时,这些分段的IP数据报并不总是有序的排列,有可能处于无序的状态,因此该装置需要将与该IP数据报属于同一数据流的所有IP数据报都存储到缓存中,再根据该数据流中的所有IP数据报的偏移量(该偏移量位于IP数据报的报头信息中)重组为一个IP数据报,其中该重组的IP数据报包括属于同一数据流的所有IP数据报。
[0163]另外需要注意的是,本发明实施例中IP数据报处理装置可同时包括转发模块2的两种可选地实施方式,或者这两种可选地实施方式中的任一种,即本发明实施例对此不做限定。
[0164]在本发明实施例中,IP数据报处理装置接收到发送方发送的IP数据报后,通过检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小,确定对该IP数据报的下一步处理,从而避免网络不通的问题,提高了网络连通率。进一步地,当MTU大于所述IP数据报的大小,则查看所述IP数据报报头信息中的标志字段,根据标识字段中分段标记的不同值,如为第一值时,且预置的数据表中存储有与该IP数据报属于同一数据流的IP数据报的报头信息时,如目的IP地址等,IP数据报处理装置可直接根据同一数据流的上一IP数据报的信息进行转发,从而提高网络数据传输效率;或者,IP数据报处理装置将与IP数据报属于同一数据流的所有IP数据报全部存储到缓存后,再进行重组、转发,减轻处理负担。
[0165]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0166]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0167]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0168]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0169]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0170]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0171 ] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0172]上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【权利要求】
1.一种IP数据报处理方法,其特征在于,包括: 接收发送方发送的IP数据报; 根据所述IP数据报的报头信息,转发所述IP数据报。
2.如权利要求1所述的方法,其特征在于,所述接收发送方发送的IP数据报之后,以及所述根据所述IP数据报的报头信息,转发所述IP数据报之前,所述方法还包括: 检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小,若检测结果为是,则丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报; 发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报。
3.如权利要求2所述的方法,其特征在于,所述方法还包括: 若检测结果为否,则触发执行所述根据所述IP数据报的报头信息,转发所述IP数据报的步骤。
4.如权利要求3所述的方法,其特征在于,所述IP数据报的报头信息中标志字段包括分段标记,其中, 所述分段标记用于指示是否能对所述IP数据报进行分段,当所述分段标记为第一值时,所述IP数据报是分段数据报;当所述分段标记为第二值时,则所述IP数据报不是分段数据报。
5.如权利要求4所述的方法,其特征在于,所述根据所述IP数据报的报头信息,转发所述IP数据报,包括: 查看所述IP数据报报头信息中的标志字段; 若所述查看的结果为标志字段的分段标记为第二值,则根据所述IP数据报的报头信息,发送所述IP数据报。
6.如权利要求5所述的方法,其特征在于,所述方法还包括: 若所述查看的结果为标志字段的分段标记为第一值,则查询预置的数据表中是否存储有与所述IP数据报属于同一数据流的IP数据报的报头信息; 若所述查询结果为否,则存储所述IP数据报的报头信息到所述预置的数据表中,并根据所述IP数据报的报头信息,发送所述IP数据报。
7.如权利要求6所述的方法,其特征在于,所述方法还包括: 若所述查询结果为是,则根据所述存储的与所述IP数据报属于同一数据流的IP数据报的报头信息,发送所述IP数据报。
8.如权利要求5所述的方法,其特征在于,所述方法还包括: 若所述查看的结果为所述标志字段的分段标记为第一值,则将所述IP数据报存储到缓存中; 根据所述IP数据报的报头信息,查询所述缓存中是否存储有与所述IP数据报属于同一数据流的所有IP数据报; 若是,则根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报。
9.如权利要求8所述的方法,其特征在于,所述根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报,包括: 根据所述IP数据报报头信息中的偏移量将所述与所述IP数据报属于同一数据流的所有IP数据报重组为一个IP数据报; 根据所述IP数据报的报头信息,发送所述重组的IP数据报。
10.如权利要求5或6所述的方法,其特征在于,所述根据所述IP数据报的报头信息,发送所述IP数据报,包括: 修改所述IP数据报的报头信息; 将所述IP数据报发送给所述修改的报头信息指示的接收方。
11.一种IP数据报处理装置,其特征在于,包括: 接收模块,用于接收发送方发送的IP数据报; 转发模块,用于根据所述接收模块接收的IP数据报的报头信息,转发所述IP数据报。
12.如权利要求11所述的装置,其特征在于,所述装置还包括: 检测模块,用于检测网络接口卡指示的最大传输单元MTU是否小于所述IP数据报的大小; 第一处理模块,用于若所述检测模块的检测结果为是时,丢弃所述IP数据报,并封装一个Internet控制报文协议ICMP数据报; 发送模块,用于发送所述ICMP数据报给发送方以使所述发送方根据所述ICMP数据报对所述IP数据报进行分段并发送分段后的IP数据报。
13.如权利要求12所述的装置,其特征在于,所述装置还包括: 第二处理模块,用于若所述检测模块的检测结果为否时,触发所述转发单元执行根据所述IP数据报的报头信息,转发所述IP数据报的步骤。
14.如权利要求13所述的装置,其特征在于,所述IP数据报的报头信息中标志字段包括分段标记,其中,所述分段标记用于指示是否能对所述IP数据报进行分段,当所述分段标记为第一值时,所述IP数据报是分段数据报;当所述分段标记为第二值时,则所述IP数据报不是分段数据报。
15.如权利要求14所述的装置,其特征在于,所述转发模块,包括: 查看单元,用于查看所述IP数据报报头信息中的标志字段; 第一发送单元,用于若所述查看单元查看的结果为标志字段的分段标记为第二值,则根据所述IP数据报的报头信息,发送所述IP数据报。
16.如权利要求14所述的装置,其特征在于,所述转发模块还包括: 第一查询单元,用于若所述查看单元查看的结果为标志字段的分段标记为第一值,则查询预置的数据表中是否存储有与所述IP数据报属于同一数据流的IP数据报的报头信息; 第一存储单元,用于若所述第一查询单元查询的结果为否,则将所述IP数据报的报头信息存储到所述预置的数据表中; 第二发送单元,用于根据所述IP数据报的报头信息,发送所述IP数据报。
17.如权利要求16所述的装置,其特征在于,所述转发模块还包括: 第三发送单元,用于若所述第一查询单元查询的结果为是,则根据所存储的与所述IP数据报属于同一数据流的IP数据报的报头信息,发送所述IP数据报。
18.如权利要求15所述的装置,其特征在于,所述转发模块还包括: 第二存储单元,用于若所述查看单元查看的结果为所述标志字段的分段标记为第一值,则将所述IP数据报存储到缓存中; 第二查询单元,用于根据所述IP数据报的报头信息,查询所述缓存中是否存储有与所述IP数据报属于同一数据流的所有IP数据报; 第四发送单元,用于若所述第二查询单元的查询结果为是,则根据所述IP数据报的报头信息,发送与所述IP数据报属于同一数据流的所有IP数据报。
19.如权利要求18所述的装置,其特征在于,所述第四发送单元,包括: 重组子单元,用于根据所述IP数据报报头信息中的偏移量将所述与所述IP数据报属于同一数据流的所有IP数据报重组为一个IP数据报; 第一发送子单元,用于根据所述IP数据报的报头信息,发送所述重组的IP数据报。
20.如权利要求15所述的装置,其特征在于,所述第一发送单元,包括: 修改子单元,用于修改所述IP数据报的报头信息; 第二发送子单元,用于将所述IP数据报发送给所述修改的报头信息指示的接收方。
【文档编号】H04L12/46GK104052680SQ201410265868
【公开日】2014年9月17日 申请日期:2014年6月13日 优先权日:2014年6月13日
【发明者】徐建新, 李峥嵘, 陈南利, 李伟健, 郑伟鹏 申请人:珠海市君天电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1