网络数据分发方法及装置、存储介质、服务端与流程

文档序号:16672879发布日期:2019-01-18 23:42阅读:178来源:国知局
网络数据分发方法及装置、存储介质、服务端与流程

本发明涉及通信传输领域,尤其涉及一种网络数据分发方法装置、存储介质、服务端。



背景技术:

随着网络及通信技术的不断发展,网络设备的数据发送以及数据网络的数据分发的能力要求越来越高。

在通信网络中,由于某些网络数据内容同时被多个终端用户获取,数据传输网络就需要对这些网络数据内容“复制”多份然后传输至不同的用户地址。现有的网络数据分发方法中cpu负责对需要传输至多个用户的网络数据内容进行组包和发送即完成“复制”和传输的过程。这种方法的问题在于组包和发送的过程会占用大量cpu的资源,不利于提升数据分发的效率,尤其是当成千上万的用户需要访问网络数据时,占用资源的情况会更加明显,从而导致网络延时问题严重。

而现有的另一种方法是采用内容分发网络来解决数据包组包和发送的问题。内容分发网络(cdn,contentdeliverynetwork)主要是建立在互联网络上的一种特殊的网络内容分发网络,cdn技术的原理是将网络数据内容发布到最接近网络用户的边缘服务器,从而使用户能以最快的速度,从最接近的服务器获取到所需要的网络内容。这种方法的缺陷是需要配置大量的网络设备,增加网络部署成本。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种网络数据分发方法及装置、存储介质、服务端,能够有效降低cpu资源的占用,减少服务器的数量,降低网络部署成本,提高网络数据传输的实时性。

为了解决上述技术问题,本发明实施例提供了一种网络数据分发方法,包括步骤:

响应于外部网络的数据传输请求,通过外部网口接收数据包并对所述数据包进行数据检测;

若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址;其中,所述数据包的分发地址包括指向内部网口连接的终端和/或指向非所述内部网口连接的终端;

当判断到所述数据包的分发地址指向内部网口连接的终端时,将所述数据包发送给与所述终端连接的内部网口;

当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息;其中,每一所述数据包的目的地址信息包括从本地到对应目的终端的链路信息,n≥1;

将目的地址信息修改后的所述数据包发送至与所述外部网络连接的所述外部网口。

本发明实施例提供的网络数据分发方法通过外部网口接收数据包并对所述数据包进行数据检测,若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址,当判断到所述数据包的分发地址指向内部网口连接的终端时,将所述数据包发送给与所述终端连接的内部网口进而传输至所述终端,当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息,最后将目的地址信息被修改后的所述数据包发送至与所述外部网络连接的所述外部网口进而传输至所述外部网络的方法,将网络数据从初始服务器开始直接进行网络数据内容的组包和发送,使得原始的网络数据内容不需要经过多级缓存服务器才能发送给用户,并且cpu不负责网络数据的组包和分发,能够有效降低cpu的资源占用情况,减少服务器的数量,降低网络部署成本,提高网络数据内容的实时性。

作为上述方案的改进,所述方法还包括:

当根据分发规则无法判断所述数据包的分发地址时,将所述数据包通过所述内部网口发送至所述终端。

作为上述方案的改进,若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址之后还包括:

若所述数据包未通过数据检测,则产生中断数据包并通过所述内部网口发送至所述终端。

作为上述方案的改进,若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址具体包括:

若所述数据包通过数据检测,则生成与所述预设的分发规则对应的配置数据包;其中,所述配置数据包包括源地址和分发地址的一一映射关系;

将所述配置数据包中的源地址与所述数据包的源地址进行匹配;

当判断到所述配置数据包的源地址与所述数据包的源地址匹配成功后,则根据匹配成功的所述源地址的映射关系得到所述数据包的分发地址。

作为上述方案的改进,所述配置数据包的内容具体包括源地址、分发地址、包类型、包序号、操作码、操作地址、操作长度、操作数据或帧校验。

作为上述方案的改进,当判断到所述数据包的分发地址指向内部网口连接的终端时,将所述数据包发送给与所述终端连接的内部网口具体包括:

当判断到所述数据包的分发地址指向所述终端时,将网络数据包按照预设的优先级规则进行优先级设定;其中,所述网络数据包包括中断数据包、配置数据包、数据包;

按照设定的优先级依次将所述网络数据包通过所述内部网口发送至所述终端。

作为上述方案的改进,当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息具体包括:

当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,将所述数据包的内容复制成n份;

根据所述分发规则得到所述数据包的分发目的地址,将任一份所述数据包的目的地址修改为任一所述分发目的地址后进行分发,同时获取下一个所述分发目的地址;其中,所述分发为将目的地址信息修改后的所述数据包向所述外部网口发送;

当n份所述数据包均完成分发,则结束本帧所述数据包的分发。

本发明还提供了一种网络数据分发装置,包括:

外部网口模块,用于响应于外部网络的数据传输请求,通过外部网口接收数据包并对所述数据包进行数据检测;

第一检测模块,用于若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址;其中,所述数据包的分发地址包括指向内部网口连接的终端和/或指向非所述内部网口连接的终端;

第一分发模块,用于当判断到所述数据包的分发地址指向内部网口连接的终端时,将所述数据包发送给与所述终端连接的内部网口;

第二检测模块,用于当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息;其中,每一所述数据包的目的地址信息包括从本地到对应目的终端的链路信息,n≥1;

第二分发模块,用于将目的地址信息修改后的所述数据包发送至与所述外部网络连接的所述外部网口。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行上述任一项所述的网络数据分发方法。

本发明还提供了一种服务端,包括一个或多个处理器、存储器以及一个或多个程序,其中:

所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序包括用于上述任一项所述的网络数据分发方法。

附图说明

图1是本发明实施例1提供的一种网络数据分发方法的流程示意图;

图2是本发明实施例1提供的一种网络数据分发方法应用系统的结构示意图;

图3是本发明实施例1提供的一种网络数据分发方法应用系统中数据包优先级处理过程的示意图;

图4是本发明实施例1提供的一种优选配置包结构示意图;

图5是本发明实施例2提供的网络数据分发装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本技术领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明实施例1提供的一种网络数据分发方法的流程示意图,所述方法包括步骤s1~s5:

s1、响应于外部网络的数据传输请求,通过外部网口接收数据包并对所述数据包进行数据检测;

s2、若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址;其中,所述数据包的分发地址包括指向内部网口连接的终端和/或指向非所述内部网口连接的终端;

s3、当判断到所述数据包的分发地址指向内部网口连接的终端时,将所述数据包发送给与所述终端连接的内部网口;

s4、当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息;其中,每一所述数据包的目的地址信息包括从本地到对应目的终端的链路信息,n≥1;

s5、将目的地址信息修改后的所述数据包发送至与所述外部网络连接的所述外部网口。

优选地,所述方法还包括:

当根据分发规则无法判断所述数据包的分发地址时,将所述数据包通过所述内部网口发送至所述终端。需要说明的是,当根据分发规则无法判断所述数据包的分发地址时,此时所述数据包相当于透传udp包,需要将该数据包通过所述内部网口发送至所述终端。

优选地,若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址之后还包括:

若所述数据包未通过数据检测,则产生中断数据包并通过所述内部网口发送至所述终端。

优选地,若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址具体包括:

若所述数据包通过数据检测,则生成与所述预设的分发规则对应的配置数据包;其中,所述配置数据包包括源地址和分发地址的一一映射关系;

将所述配置数据包中的源地址与所述数据包的源地址进行匹配;

当判断到所述配置数据包的源地址与所述数据包的源地址匹配成功后,则根据匹配成功的所述源地址的映射关系得到所述数据包的分发地址。

进一步地,所述配置数据包的内容具体包括源地址、分发地址、包类型、包序号、操作码、操作地址、操作长度、操作数据或帧校验。

优选地,当判断到所述数据包的分发地址指向内部网口连接的终端时,将所述数据包发送给与所述终端连接的内部网口具体包括:

当判断到所述数据包的分发地址指向所述终端时,将网络数据包按照预设的优先级规则进行优先级设定;其中,所述网络数据包包括中断数据包、配置数据包、数据包;

按照设定的优先级依次将所述网络数据包通过所述内部网口发送至所述终端。

优选地,当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息具体包括:

当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,将所述数据包的内容复制成n份;

根据所述分发规则得到所述数据包的分发目的地址,将任一份所述数据包的目的地址修改为任一所述分发目的地址后进行分发,同时获取下一个所述分发目的地址;其中,所述分发为将目的地址信息修改后的所述数据包向所述外部网口发送;

当n份所述数据包均完成分发,则结束本帧所述数据包的分发。

本发明实施例提供的网络数据分发方法,通过外部网口接收数据包并对所述数据包进行数据检测,在所述数据包通过数据检测的情况下,根据预设的分发规则判断所述数据包的分发地址,当判断到所述数据包的分发地址指向内部网口连接的终端时,将所述数据包发送给与所述终端连接的内部网口从而传输至所述终端,当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息,最后将目的地址信息修改后的所述数据包发送至与所述外部网络连接的所述外部网口从而传输至所述外部网络,基于上述方案,将网络数据从初始服务器开始直接进行网络数据内容的组包和发送,使得原始的网络数据内容不需要经过多级缓存服务器才能发送给用户,能够有效降低cpu的资源占用情况,减少服务器的数量,降低网络部署成本,提高网络数据内容的实时性。

参见图2,是本发明实施例1提供的一种网络数据分发方法应用系统的结构示意图,所述系统包括:

外部ipcore模块21,用于接收外部网络传输的数据包并对所述数据包进行crc检验;其中,所述crc检验为数据通信领域中最常用的一种查错校验码。

包存储转发模块22,用于对从配置逻辑寄存模块28读取的配置包进行数据检测;其中,所述配置包用于存储预设的分发规则的信息;并分析所述配置包中的信息得到预设的分发规则。根据预设的分发规则判断所述数据包的分发地址,若判断到所述数据包的分发地址指向cpu网口,则将所述数据包发送至第一包选择模块24;当判断到所述数据包的分发地址指向外部网络中的n个终端时,则将所述数据包的内容复制成n(n≥1)份并根据所述分发规则对应修改每一份所述数据包的目的地址信息,然后将目的地址信息修改后的所述数据包发送至第二包选择模块27;若无法根据所述分发规则判断所述数据包的分发地址时,此时该数据包相当于透传udp包,同样将该数据包发送至第一包选择模块24,通过第一包选择模块24将该数据包发送至所述内部网口即内部ipcore模块25最后发送至所述终端。

ddr4存储模块23,用于存储所述包存储转发模块22接收的数据包。

第一包选择模块24,用于根据从所述配置逻辑寄存模块28读取优先级配置包并根据所述优先级配置包中的优先级信息对从所述包存储转发模块22接收的数据包进行优先级的设定,然后依照设定的优先级依次将所述数据包发送至内部ipcore模块25;其中,所述优先级配置包用于存储预设的优先级设定规则的信息。

内部ipcore模块25,用于接收所述第一包选择模块24传输的数据包并对所述数据包进行crc检验,若检测到所述数据包存在错误则向逻辑发包模块29发送错误标识;若检测到所述数据包未存在错误则将所述数据包发送至连接终端的cpu网口。

配置包识别模块26,用于将cpu网口传输的数据包根据所述数据包的mac地址进行配置包的分离,并将分离出来的配置包发送至所述配置逻辑寄存模块28。

第二包选择模块27,用于根据从所述配置逻辑寄存模块28读取优先级配置包对从所述包存储转发模块22接收的数据包进行优先级的设定,并依照设定的优先级依次将接收到的所述数据包发送至所述外部ipcore模块21。

配置逻辑寄存模块28,用于存储配置包和优先级配置包;其中,所述配置包用于存储预设的分发规则信息,所述优先级配置包用于存储优先级规则信息。

逻辑发包模块29,用于接收所述外部ipcore模块21、包存储转发模块22、内部ipcore模块25和配置包识别模块26发送的错误标识,并向cpu发送中断包。

在本发明实施例中的数据包包括但不限于udp包、非udp包和tcp包,其中,所述udp包包括分发udp包和透传udp包;网络数据包包括但不限于中断包、配置包、udp包、非udp包和tcp包。

本发明实施例采用cyclonevfpga系列的5cgxc3+ddr4来实现,可降低整个网络的层级和成本,利于建设和维护,同时降低网络延迟,给客户带来更好的体验。

下面结合图2对所述应用系统的工作原理进行详细介绍:

所述外部ipcore模块21响应于外部网络的数据传输请求,接收外部网络发送的数据包,并对所述数据包进行crc校验检测,若检测到所述数据包存在错误时,所述外部ipcore模块21向所述逻辑发包模块29发送错误标识;若所述数据包未检测到错误,则将所述数据包发送至所述包存储转发模块22。

所述包存储转发模块22接收到所述数据包后,先将所述数据包存入所述ddr4存储模块23中,当完成当前帧数据包的分发后再从所述ddr4存储模块23中读取下一帧数据包。所述包存储转发模块22从所述配置逻辑寄存模块28读取包含分发规则信息的配置包,并对所述配置包进行数据检测。若检测到所述配置包存在错误,则向所述逻辑发包模块29发送错误标识;若未检测到所述配置包存在错误,则根据所述配置包中的预存的分发规则信息对所述数据包进行判断。将所述配置包的源地址与所述数据包的源地址进行比较,然后所述配置包中的源地址和分发地址的一一映射关系确定所述数据包的分发目的地。若所述数据包的分发地址指向cpu网口,则所述包存储转发模块22将所述数据包发送至所述第一包选择模块24;当判断到所述数据包的分发地址指向外部网络中的n个终端时,将所述数据包的内容复制成n份,再根据所述分发规则得到所述数据包的分发目的地址,将任一份所述数据包的目的地址修改为任一所述分发目的地址后进行分发,同时获取下一个所述分发目的地址;其中,所述分发为将目的地址信息修改后的所述数据包发送至所述第二包选择模块27。当n份所述数据包均完成分发,则结束本帧所述数据包的分发。

参见图3,是本发明实施例1提供的一种网络数据分发方法应用系统中数据包优先级处理过程的示意图。图3中idle表示系统中的第一包选择模块24,rdintpkt表示所述第一包选择模块24处于读取中断包状态;rdcfgpkt表示所述第一包选择模块24处于读取配置包状态;rdunudpkt表示所述第一包选择模块24处于读取非udp包状态;rdudpkt表示所述第一包选择模块24处于读取透传udp包状态;rdciupkt表示所述第一包选择模块24处于读取分发udp包状态。

下面结合图3对所述第一包选择模块24中如何实现将数据包按照优先级进行转发的过程进行具体描述。当所述第一包选择模块24接收到中断包、配置包、非udp包、透传udp包和分发udp包时,为了保证网络数据质量要求需要对这些数据包进行优先级的排序,然后按照排定的优先级将上述数据包依次发送至所述内部ipcore模块25;其中,中断包由所述逻辑发包模块29发送,配置包由所述配置包识别模块26从所述配置逻辑寄存模块28读取后发送,非udp包、透传udp包和分发udp包由所述包存储转发模块22发送。所述第一包选择模块24接收所述配置包识别模块26从所述配置逻辑寄存模块28读取的优先级配置包,根据所述优先级配置包中的优先级规则设定所述第一包选择模块24中数据包的优先级;其中,所述数据包的优先级顺序依次为:中断包、配置包、非udp包、透传udp包和分发udp包。

所述内部ipcore模块25接收来自所述第一包选择模块24的数据包,并且对所述数据包进行crc检测。若检测到所述数据包存在错误,则向所述逻辑发包模块29发送错误标识,若未检测到所述数据包存在错误,则按照优先级向cpu网口发送所述数据包。

参加图4,为本发明实施例1提供的一种优选配置包结构示意图。所述配置包包括源地址、目的地址、包类型、包序号、操作码、操作地址、操作长度、操作数据和帧校验;其中,源地址为cpu网口的mac地址;目的地址为一个已购买的合法mac地址;包类型为公司的ascii码;包序号为0~255的循环数字,cpu可以利用包序号进行连续读写数据包;操作码用来指示对数据包的读、写或中断状态;操作地址为在突发模式时逻辑器件内部从该地址自动累加;操作长度为操作码的长度,其合法值从1~1024;操作数据用于当逻辑器件需要将信息写入寄存器时则cpu发送该段数据,以及逻辑器件读取寄存器的信息时则逻辑器件发送该段数据;帧校验为mac帧校验。

进一步的,在本发明实施例中所述分发地址为所述分发规则中包括的所述数据包的分发目的地址。当所述分发地址包括至少两个所述分发目的地址且所述分发目的地址链接成环时,为了避免由于所述配置包发生错误时导致出现相同一包网络数据内容一直重复发送的情况,所述包存储转发模块22将自动进行环回测试验证所述分发目的地址是否链接成环,当检测到所述分发目的地址链接成环时,则所述包存储转发模块22停止发送所述数据包。

具体的,本发明实施例中设定所述包存储转发模块22的最大转发次数为2047次,可以理解的,所述包存储转发模块22每转发一次则数据分发系统中的计数器的数值就加一,当所述包存储转发模块22转发次数大于2047次时,所述数据分发系统结束当前的数据转发并重新获取新的网络数据包进行传输。

在另一优选实施例中,cpu利用cpu网口通过分发系统向外部网络时,所述cpu网口将cpu发送的内部数据包传输至所述内部ipcore模块25,所述内部ipcore模块25对所述内部数据包进行crc检测。若检测到所述内部数据包存在错误,则向所述逻辑发包模块29发送错误标识;若未检测到所述内部数据包存在错误,则将所述内部数据包发送至所述配置包识别模块26。所述配置包识别模块26根据所述内部数据包的mac地址检测所述内部数据包是否为配置包,若检测到该所述内部数据包为配置包,则检测所述配置包是否存在错误;若检测到所述配置包存在错误则向所述逻辑发包模块29发送错误标识,若未检测到所述配置包存在错误则提取所述配置包并发送至所述配置逻辑寄存模块28。若检测到该所述内部数据包为数据包,则将所述数据包发送至所述第二包选择模块27。所述第二包选择模块27根据从所述配置逻辑寄存模块28获取的优先级规则信息,对接收到的所述数据包进行优先级的排序,再按照优先级次序将接收到的所述数据包发送至所述外部ipcore模块21并进入外部网络。

参见图5,为本发明实施例2提供的网络数据分发装置结构示意图,所述装置包括:

外部网口模块101,用于响应于外部网络的数据传输请求,通过外部网口接收数据包并对所述数据包进行数据检测;

第一检测模块102,用于若所述数据包通过数据检测,则根据预设的分发规则判断所述数据包的分发地址;其中,所述数据包的分发地址包括指向内部网口连接的终端和/或指向非所述内部网口连接的终端;

第一分发模块103,用于当判断到所述数据包的分发地址指向内部网口连接的终端时,将所述数据包发送给与所述终端连接的内部网口;

第二检测模块104,用于当判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息;其中,每一所述数据包的目的地址信息包括从本地到对应目的终端的链路信息,n≥1;

第二分发模块105,用于将目的地址信息修改后的所述数据包发送至与所述外部网络连接的所述外部网口。

本发明实施例提供的网络数据分发装置通过外部网口模块101接收数据包并对所述数据包进行数据检测,第一检测模块102在所述数据包通过数据检测的情况下,根据预设的分发规则判断所述数据包的分发地址,当判断到所述数据包的分发地址指向内部网口连接的终端时,第一分发模块103将所述数据包发送给与所述终端连接的内部网口从而传输至所述终端,当第二检测模块104判断到所述数据包的分发地址指向非所述内部网口连接的n个终端时,则第二分发模块105将所述数据包的内容复制成n份并根据所述分发规则对应修改每一份所述数据包的目的地址信息,最后将目的地址信息修改后的所述数据包发送至与所述外部网络连接的所述外部网口从而传输至所述外部网络,基于上述方案,将网络数据从初始服务器开始直接进行网络数据内容的组包和发送,使得原始的网络数据内容不需要经过多级缓存服务器才能发送给用户,并且cpu不负责网络数据的组包和分发,能够有效降低cpu的资源占用情况,减少服务器的数量,降低网络部署成本,提高网络数据内容的实时性。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行任一实施例所述的网络数据分发方法。

本发明还提供了一种服务端,包括一个或多个处理器、存储器以及一个或多个程序,其中:

所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序包括用于任一实施例所述的网络数据分发方法。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1