一种PPPoE报文传输的方法、系统、设备及存储介质与流程

文档序号:17693924发布日期:2019-05-17 21:18阅读:183来源:国知局
一种PPPoE报文传输的方法、系统、设备及存储介质与流程

本申请涉及pppoe领域,特别涉及一种pppoe报文传输的方法、系统、设备及计算机可读存储介质。



背景技术:

pppoe(point-to-pointprotocoloverethernet),以太网上的点对点协议,是将点对点协议(ppp)封装在以太网(ethernet)框架中的一种网络隧道协议。由于协议中集成ppp协议,不仅实现了传统以太网所不能提供的身份验证、加密以及压缩等功能,还适用于缆线调制解调器(cablemodem)和数字用户线路(dsl)等以以太网协议向用户提供接入服务的协议体系。

目前的pppoe客户端中的控制进程主要负责ip地址的申请获取,同时进行数据报文的封装与解封装,这样数据报文会在pppoe客户端与数据层进行交换拷贝,对于少量的控制协议报文影响不大,但是对于数据转发业务,每个数据包都需要进行交换拷贝,性能开销较大。

因此,如何降低pppoe报文传输过程中的性能开销是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种pppoe报文传输的方法、系统、设备及计算机可读存储介质,用于降低pppoe报文传输过程中的性能开销。

为解决上述技术问题,本申请提供一种pppoe报文传输的方法,该方法包括:

接收pppoe报文;

确定所述pppoe报文的类型;其中,所述pppoe报文的类型包括数据报文;

若所述pppoe报文的类型为数据报文,则获取所述数据报文的发送方类型;

当所述数据报文的发送方类型为pppoe服务器时,确认所述数据报文的目标地址,并将所述数据报文发送至所述目标地址;

当所述数据报文的发送方类型为pppoe客户端时,根据所述pppoe客户端发送的会话连接参数确定对应的服务器,并将所述数据报文发送至所述服务器。

可选的,当所述数据报文的发送方类型为pppoe服务器时,确认所述数据报文的目标地址,并将所述数据报文转发至所述目标地址,包括:

对所述数据报文进行报文头的解封装,得到所述数据报文的目标地址;

将所述数据报文发送至所述目标地址。

可选的,当所述数据报文的发送方类型为pppoe客户端时,根据所述pppoe客户端发送的会话连接参数确定对应的服务器,并将所述数据报文发送至所述服务器,包括:

接收所述pppoe客户端发送的会话连接参数;其中,所述会话连接参数包括会话id及服务器mac地址;

根据所述会话id确定pppoe网口,并根据所述服务器mac地址确定对话服务器;

将所述数据报文进行封装,并通过所述pppoe网口将封装后的所述数据报文发送至所述对话服务器。

可选的,所述会话连接参数的生成过程包括:

所述pppoe客户端进行发现阶段,以识别服务器的mac地址,并建立会话id;

当所述发现阶段完成后,接收服务器选择命令;

根据所述服务器选择命令选择对应的会话id及服务器mac地址作为所述会话连接参数。

可选的,所述pppoe报文的类型还包括控制报文,当所述pppoe报文的类型为所述控制报文时,还包括步骤:

获取所述控制报文的发送方类型;

当所述控制报文的发送方类型为pppoe服务器时,将所述控制报文发送至所述pppoe客户端,以使所述pppoe客户端对所述控制报文进行处理;

当所述控制报文的发送方类型为所述pppoe客户端时,根据所述pppoe客户端发送的会话连接参数将所述控制报文发送至所述会话连接参数对应的服务器。

本申请还提供一种pppoe报文传输的系统,该系统包括:

接收模块,用于接收pppoe报文;

类型确定模块,用于确定所述pppoe报文的类型;其中,所述pppoe报文的类型包括数据报文;

第一获取模块,用于若所述pppoe报文的类型为数据报文,则获取所述数据报文的发送方类型;

第一发送模块,用于当所述数据报文的发送方类型为pppoe服务器时,确认所述数据报文的目标地址,并将所述数据报文发送至所述目标地址;

第二发送模块,用于当所述数据报文的发送方类型为pppoe客户端时,根据所述pppoe客户端发送的会话连接参数确定对应的服务器,并将所述数据报文发送至所述服务器。

可选的,所述第一发送模块包括:

解封装子模块,用于对所述数据报文进行报文头的解封装,得到所述数据报文的目标地址;

发送子模块,用于将所述数据报文发送至所述目标地址。

可选的,所述第二发送模块包括:

接收子模块,用于接收所述pppoe客户端发送的会话连接参数;其中,所述会话连接参数包括会话id及服务器mac地址;

确定子模块,用于根据所述会话id确定pppoe网口,并根据所述服务器mac地址确定对话服务器;

封装子模块,用于将所述数据报文进行封装,并通过所述pppoe网口将封装后的所述数据报文发送至所述对话服务器。

本申请还提供一种pppoe报文传输设备,该pppoe报文传输设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述pppoe报文传输的方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述pppoe报文传输的方法的步骤。

本申请所提供pppoe报文传输的方法,包括:接收pppoe报文;确定pppoe报文的类型;其中,pppoe报文的类型包括数据报文;若pppoe报文的类型为数据报文,则获取数据报文的发送方类型;当数据报文的发送方类型为pppoe服务器时,确认数据报文的目标地址,并将数据报文发送至目标地址;当所述数据报文的发送方类型为pppoe客户端时,根据所述pppoe客户端发送的会话连接参数确定对应的服务器,并将所述数据报文发送至所述服务器。

本申请所提供的技术方案,通过先确定pppoe报文的类型,若pppoe报文的类型为数据报文,则获取数据报文的发送方类型;当数据报文的发送方类型为pppoe服务器时,确认数据报文的目标地址,并将数据报文发送至目标地址;当数据报文的发送方类型为pppoe客户端时,根据pppoe客户端发送的会话连接参数将数据报文发送至会话连接参数对应的服务器,进而不需要将数据报文拷贝到pppoe客户端进行转发,而是在系统内部完成数据报文的转发,使得数据转发业务独立于pppoe客户端,极大的降低了pppoe报文传输过程中的性能开销。本申请同时还提供了一种pppoe报文传输的系统、设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种pppoe报文传输的方法的流程图;

图2为图1所提供的一种pppoe报文传输的方法中s105的一种实际表现方式的流程图;

图3为本申请实施例所提供的一种会话连接参数的生成过程流程图;

图4为本申请实施例所提供的另一种pppoe报文传输的方法的流程图;

图5为本申请实施例所提供的一种pppoe报文传输的系统的结构图;

图6为本申请实施例所提供的另一种pppoe报文传输的系统的结构图;

图7为本申请实施例所提供的一种pppoe报文传输设备的结构图。

具体实施方式

本申请的核心是提供一种pppoe报文传输的方法、系统、设备及计算机可读存储介质,用于降低pppoe报文传输过程中的性能开销。

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

请参考图1,图1为本申请实施例所提供的一种pppoe报文传输的方法的流程图。

其具体包括如下步骤:

s101:接收pppoe报文;

与传统的接入方式相比,pppoe具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式adsl就使用了pppoe协议。

基于目前的pppoe客户端中的控制进程负责ip地址的申请获取,同时进行数据报文的封装与解封装,这样数据报文会在pppoe客户端与数据层进行交换拷贝,对于少量的控制协议报文影响不大,但是对于数据转发业务,每包都需要进行交换拷贝,性能开销较大;

本申请通过将pppoe客户端中的数据报文的封装与解封装功能移至数据层,解决了上述问题;

s102:确定pppoe报文的类型;

这里提到的pppoe报文的类型包括数据报文类型,数据报文包含了将要发送的完整的数据信息,其数据传输量通常较大,故性能开销较大。

s103:若pppoe报文的类型为数据报文,则获取数据报文的发送方类型;

这里提到的,获取数据报文的发送方类型的目的在于,根据数据报文的发送方类型确定数据报文是发送出去的还是接收到的,进而确定数据报文的下一目的地。

s104:当数据报文的发送方类型为pppoe服务器时,确认数据报文的目标地址,并将数据报文发送至目标地址;

当数据报文的发送方类型为pppoe服务器时,则证明该数据报文是接收到的,此时确认数据报文的目标地址,并将数据报文发送至目标地址;

这里提到的,确认数据报文的目标地址,并将数据报文发送至目标地址,其具体可以为:

对数据报文进行报文头的解封装,得到数据报文的目标地址;

将数据报文发送至目标地址。

pppoe的数据报文包括目的mac地址、源mac地址、协议类型、版本、字段和类型、代码、版本标识号码、长度、静载荷等部分,对数据报文进行报文头的解封装,便能够得到数据报文的目标地址。

s105:当数据报文的发送方类型为pppoe客户端时,根据pppoe客户端发送的会话连接参数确定对应的服务器,并将数据报文发送至该服务器。

当数据报文的发送方类型为pppoe客户端时,则证明该数据报文需要发送出去,此时根据pppoe客户端发送的会话连接参数确定对应的服务器,并将数据报文发送至该服务器;

pppoe协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得pppoe服务器(在局端的adsl设备上)的会话连接参数,然后允许用户选择一个。当发现阶段成功完成,pppoe客户端将相应的会话连接参数发送至数据层;当数据报文的发送方类型为pppoe客户端时,系统根据pppoe客户端发送的会话连接参数将数据报文发送至会话连接参数对应的服务器,发现阶段结束后,就进入标准的ppp会话阶段。

基于上述技术方案,本申请所提供的一种pppoe报文传输的方法,通过先确定pppoe报文的类型,若pppoe报文的类型为数据报文,则获取数据报文的发送方类型;当数据报文的发送方类型为pppoe服务器时,确认数据报文的目标地址,并将数据报文发送至目标地址;当数据报文的发送方类型为pppoe客户端时,根据pppoe客户端发送的会话连接参数将数据报文发送至会话连接参数对应的服务器,进而不需要将数据报文拷贝到pppoe客户端进行转发,而是在系统内部完成数据报文的转发,使得数据转发业务独立于pppoe客户端,极大的降低了pppoe报文传输过程中的性能开销。

针对于上一实施例的步骤s105,其中所描述的当数据报文的发送方类型为pppoe服务器时,根据pppoe客户端发送的会话连接参数确定对应的服务器,并将数据报文发送至该服务器,其具体可以为如图2所示的步骤,下面结合图2进行说明。

请参考图2,图2为图1所提供的一种pppoe报文传输的方法中s105的一种实际表现方式的流程图。

其具体包括以下步骤:

s201:接收pppoe客户端发送的会话连接参数;

这里提到的会话连接参数包括会话id及服务器mac地址,具体用于确定与pppoe客户端进行对话的pppoe服务器,pppoe协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得pppoe服务器(在局端的adsl设备上)的以太网mac地址,并建立一个惟一的会话id。当pppoe客户端想开始一个pppoe会话,它必须首先进行发现阶段,以识别局端的以太网mac地址,并建立一个会话id。在发现阶段,基于网络的拓扑,pppoe客户端可以发现多个接入集中器,然后允许用户选择一个。

s202:根据会话id确定pppoe网口,并根据服务器mac地址确定对话服务器;

s203:将数据报文进行封装,并通过pppoe网口将封装后的数据报文发送至对话服务器。

针对于上一实施例的步骤s201,其中提到接收pppoe客户端发送的会话连接参数,这里的会话连接参数的生成过程具体可以为如图3所示的步骤,下面结合图3进行说明。

请参考图3,图3为本申请实施例所提供的一种会话连接参数的生成过程流程图;

其具体包括以下步骤:

s301:pppoe客户端进行发现阶段,以识别服务器的mac地址,并建立会话id;

s302:当发现阶段完成后,接收服务器选择命令;

s303:根据服务器选择命令选择对应的会话id及服务器mac地址作为会话连接参数。

在确定了会话连接参数之后,将该会话连接参数发生至数据层,以使系统根据pppoe客户端发送的会话连接参数将数据报文发送至该会话连接参数对应的服务器。

针对于上述实施例中的步骤s102,该pppoe报文的类型还包括控制报文,当pppoe报文的类型为所述控制报文时,还可以包括如图4所示的步骤,下面结合图4进行说明。

请参考图4,图4为本申请实施例所提供的另一种pppoe报文传输的方法的流程图。

其具体包括以下步骤:

s401:获取控制报文的发送方类型;

s402:当控制报文的发送方类型为pppoe服务器时,将控制报文发送至pppoe客户端,以使pppoe客户端对控制报文进行处理;

s403:当控制报文的发送方类型为pppoe客户端时,根据pppoe客户端发送的会话连接参数将控制报文发送至会话连接参数对应的服务器。

这里提到的控制报文用于在pppoe客户端、pppoe服务器之间传递控制消息,控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息,这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用,而控制报文的数据传输量通常较少,性能开销不大,故直接将其发送至目标地址即可。

请参考图5,图5为本申请实施例所提供的一种pppoe报文传输的系统的结构图。

该系统可以包括:

接收模块100,用于接收pppoe报文;

类型确定模块200,用于确定pppoe报文的类型;其中,pppoe报文的类型包括数据报文;

第一获取模块300,用于若pppoe报文的类型为数据报文,则获取数据报文的发送方类型;

第一发送模块400,用于当数据报文的发送方类型为pppoe服务器时,确认数据报文的目标地址,并将数据报文发送至目标地址;

第二发送模块500,用于当数据报文的发送方类型为pppoe客户端时,当所述数据报文的发送方类型为pppoe客户端时,根据所述pppoe客户端发送的会话连接参数确定对应的服务器,并将所述数据报文发送至所述服务器。

请参考图6,图6为本申请实施例所提供的另一种pppoe报文传输的系统的结构图。

该第一发送模块400可以包括:

解封装子模块,用于对数据报文进行报文头的解封装,得到数据报文的目标地址;

发送子模块,用于将数据报文发送至目标地址。

该第二发送模块500可以包括:

接收子模块,用于接收pppoe客户端发送的会话连接参数;其中,会话连接参数包括会话id及服务器mac地址;

确定子模块,用于根据会话id确定pppoe网口,并根据服务器mac地址确定对话服务器;

封装子模块,用于将数据报文进行封装,并通过pppoe网口将封装后的数据报文发送至对话服务器。

该系统还可以包括:

第二获取模块600,用于当该报文的类型为控制报文时,获取控制报文的发送方类型;

第三发送模块700,用于当控制报文的发送方类型为pppoe服务器时,将控制报文发送至pppoe客户端,以使pppoe客户端对控制报文进行处理;

第四发送模块800,用于当控制报文的发送方类型为pppoe客户端时,根据pppoe客户端发送的会话连接参数将控制报文发送至会话连接参数对应的服务器。

以上系统中的各个组成部分可实际应用于以下的实施例中:

接收模块接收pppoe报文;类型确定模块确定pppoe报文的类型;若pppoe报文的类型为数据报文,则第一获取模块获取数据报文的发送方类型;

当所述数据报文的发送方类型为pppoe服务器时,解封装子模块对数据报文进行报文头的解封装,得到数据报文的目标地址;发送子模块将数据报文发送至目标地址;

当所述数据报文的发送方类型为pppoe客户端时,接收子模块接收所述pppoe客户端发送的会话连接参数;确定子模块根据所述会话id确定pppoe网口,并根据所述服务器mac地址确定对话服务器;封装子模块将所述数据报文进行封装,并通过所述pppoe网口将封装后的所述数据报文发送至所述对话服务器;

当该报文的类型为控制报文时,第二获取模块获取控制报文的发送方类型;当控制报文的发送方类型为pppoe服务器时,第三发送模块将控制报文发送至pppoe客户端,以使pppoe客户端对控制报文进行处理;当控制报文的发送方类型为pppoe客户端时,第四发送模块根据pppoe客户端发送的会话连接参数将控制报文发送至会话连接参数对应的服务器。

请参考图7,图7为本申请实施例所提供的一种pppoe报文传输设备的结构图。

该pppoe报文传输设备900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在pppoe报文传输设备900上执行存储介质930中的一系列指令操作。

pppoe报文传输设备900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述图1至图4所描述的pppoe报文传输的方法中的步骤由pppoe报文传输设备基于该图7所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种pppoe报文传输的方法、系统、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

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