路由器及流量管理方法与流程

文档序号:15022832发布日期:2018-07-25 01:29阅读:280来源:国知局

本申请主要关于路由器的流量控制/监测技术,特别是有关于一种具有双控制器的路由器架构。



背景技术:

在架设网络的规划上,由于考量到网络的使用效率及数据传输效率,一般会将网络划分为广域网络及区域网络,而路由器则是扮演了桥接广域网络及区域网络的重要角色,其主要提供路由与转送的功能,决定封包从来源端到目的端所经过的传输路径,这个过程称为路由,另外,在路由器内部将封包从输入端口移送至适当的输出端口,这个过程则称为转送。透过路由器提供的路由与转送功能,不论是位于广域网络或区域网络内的任意装置都可以顺利完成装置与装置之间的数据传输。

随着网络应用的快速发展,对于数据传输的控管需求日益增加,于是除了路由与转送功能之外,许多路由器还额外提供了流量控制/监测的功能,然而,流量控制/监测需要对每个封包进行复杂的解析才能实现精确的控制及监测。

如图1所示,OSI(Open System Interconnection Reference Model,开放式系统互连参考模型,以下简称OSI)网络架构分为7个分层,每层分别会对封包进行不同处理以达成特定功能或需求。此外,图1还揭示了一个封包传输的过程,为了使数据能顺利的在网络上传送,每个封包必须通过一层又一层的封装,才能将数据送到正确的目的地。假设一个应用程序需要传送数据出去,则传送端会在传输层(Transport layer)中加入一些传输协定(例如:传输控制协定(Transmission Control Protocol,TCP)、用户数据报协定(User Datagram Protocol,UDP)、或网络控制信息协定(Internet Control Message Protocol,ICMP))的信息在表头(header),以确保封包能被传送到适当的目的应用程序。接着,在网络层(Network layer)的处理过程中,会加入来源端的网络协定地址(Internet Protocol,IP)以及目的端的网络协定地址的信息,以确保封包能被传送到正确的目的。最后,由实体层(Physical layer)将封包转换成实体网络(例如:乙太网(Ethernet))的传输格式,以确保数据能在各种物理媒介中传输。

同样的,如图2所示,当路由器接收到外来的封包时,必须一层一层的解析才能知道这个封包的信息。而针对流量控制/监测,若要知道目前这个封包是来自哪个网络协定地址,就至少要解析出标头中的网络协定地址,路由器通过分析网络协定地址,即可判别目前这个封包是从何处传送过来的,从而达到流量控制/监测的目的。另外,在应用层(Application layer)的处理过程中,路由器也能解析出应用层所使用的协定(例如:终端机模拟协定(Telnet)),以得知目前这个封包所属的是终端机模拟协定的应用程序(例如:电子布告栏系统(Bulletin Board System,BBS))数据。

然而,为了实现流量控制/监测,必须对每个封包都进行上述的层层解析才能得知其属于哪个应用程序、来自哪个网络协定地址等信息,此将无可避免地加重路由器中的中央处理器的负担,进而影响路由器的传输效能。因此,极需有一种流量管理方法以及使用该方法的路由器,能够有效降低路由器中的中央处理器的负担并增进路由器的传输效能。



技术实现要素:

本申请提出一种以双控制器的系统架构来实现的路由器及流量管理方法,由副控制器来分担主控制器(亦可理解为先前技术中所述的中央处理器)的流量控制或流量监测任务,不仅能让单位时间的可处理流量大幅提升,还能有效降低主控制器的负担,使主控制器可以有更多资源去处理其他网络服务。

本申请的一实施例提供了一种路由器,包括通信装置、第一控制器、存储装置、以及第二控制器。所述通信装置是用以接收关联至一连线的多个第一封包以及接续所述第一封包的第二封包。所述第一控制器是用以解析所述第一封包以决定所述连线的多个传输层参数。所述存储装置是用以存储所述传输层参数。所述第二控制器是用以根据存储于所述存储装置中至少部分的所述传输层参数对所述第二封包实施一流量管理。

本申请的另一实施例提供了一种流量管理方法,适用于包括第一控制器与第二控制器的路由器。所述流量管理方法包括以下步骤:接收关联至一连线的多个第一封包以及接续所述第一封包的第二封包;由所述第一控制器解析所述第一封包以决定所述连线的多个传输层参数;由存储装置存储所述传输层参数;以及由所述第二控制器根据存储于所述存储装置中至少部分的所述传输层参数对所述第二封包实施流量管理。

关于本申请其他附加的特征与优点,此领域的熟悉技术人士,在不脱离本申请的精神和范围内,当可根据本案实施方法中所揭露的路由器以及流量管理方法做些许的更动与润饰而得到。

附图说明

图1是显示OSI网络架构的示意图;

图2是显示封包在传输与接收的过程中所涉及的7协定层解析操作的示意图;

图3是根据本申请一实施例所述的网络环境架构图;

图4是根据本申请一实施例所述的路由器10系统架构示意图;

图5是根据本申请一实施例所述的流量管理方法的流程图;

图6是根据本申请一实施例所述的流量控制的操作示意图;

图7是根据本申请一实施例所述的流量监测的操作示意图。

【符号说明】

100 网络环境

10 路由器

20 广域网络

21~23 网络通信装置

30 区域网络

31~33 使用者装置

11 通信装置

12 主控制器

13 存储装置

14 网络子系统

14-1 副控制器

14-2 存储装置

610 网络子系统模块

611 网络子系统数据库

620 网络子系统驱动模块

621 强化连线管理模块

630 网络堆叠模块

631 连线记录数据库

640 常驻程序模块

S510~S530 步骤编号

6a~6d、7a~7g 步骤编号

具体实施方式

本章节所叙述的是实施本申请的较佳方式,目的在于说明本申请的精神而非用以限定本申请的保护范围,当可理解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、操作处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、操作处理、元件、组件,或以上的任意组合。

图3是根据本申请一实施例所述的网络环境架构图。网络环境100包括路由器10、广域网络(Wide Area Network,WAN)20、以及区域网络(Local Area Network,LAN)30,其中,路由器10设置于广域网络20与区域网络30之间。

广域网络20可以是由电信网络、光纤(Optical)网络、或非对称数字用户线路(Asymmetric Digital Subscriber Line,ADSL)网络等所组成的网络,又可称为外网或公网,其通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,可透过网际网络连线多个地区、城市、或国家,形成国际性的远端网络。

广域网络20可连接多部网络通信装置21~23,网络通信装置21~23的每一者可为笔记型计算机、桌上型计算机、工作站、服务器、智能手机、或平板计算机。举例来说,网络通信装置21~23的任一者可为一服务器,提供服务/应用,如:电子邮件收发服务、移动推播服务、网页服务、或短信收发服务等。

区域网络30可以是由乙太网、无线保真(Wireless Fidelity,WiFi)网络、双绞线(Twisted Pair)网络、或同轴电缆(Coaxial cable)网络等所组成的网络,又可称为内网,其通常覆盖局部区域,例如:办公室、或建筑物内的某楼层。

区域网络30内可包括多个使用者装置31~33,使用者装置31~33的每一者可为笔记型计算机、桌上型计算机、智能手机、平板计算机、工作站、或服务器等具备连网功能的消费性电子装置。

路由器10主要负责桥接广域网络20与区域网络30,明确来说,路由器10提供了路由与转送的功能,实现了网络通信装置21~23与使用者装置31~33之间的数据传输。另外,路由器10还提供流量管理的功能,例如:对于其所路由与转送的数据传输进行流量控制、以及/或流量监测。

在一实施例,流量控制可以是针对符合特定条件的封包进行控制,例如:对特定来源端网络协定地址的封包进行限速或拦截。

在一实施例,流量监测可以是针对符合特定条件的封包进行信息记录与统计,例如:统计特定应用程序的总传输量,包括总封包数、以及/或总封包字节(byte)数。举例来说,使用者可从流量监测所取得的数据中,去查询特定应用程序、特定网站、或特定装置的总传输量。

图4是根据本申请一实施例所述的路由器10系统架构示意图。路由器10包括通信装置11、主控制器12、存储装置13、以及网络子系统(Network Subsystem,NSS)14。

通信装置11是用以提供连线至广域网络20(包括广域网络20上的网络通信装置21~23)、以及区域网络30(包括区域网络30上的使用者装置31~33)。通信装置11可依循至少一特定通信技术提供有线或无线网络连线,例如:乙太网技术、无线保真技术、全球移动通信系统(Global System for Mobile communications,GSM)技术、通用封包无线服务(General Packet Radio Service,GPRS)技术、全球增强型数据传输(Enhanced Data rates for Global Evolution,EDGE)技术、宽频分码多工存取(Wideband Code Division Multiple Access,WCDMA)技术、分码多工存取-2000(Code Division Multiple Access 2000,CDMA-2000)技术、分时同步分码多工存取(Time Division-Synchronous Code Division Multiple Access,TD-SCDMA)技术、全球互通微波存取(Worldwide Interoperability for Microwave Access,WiMAX)技术、长期演进(Long Term Evolution,LTE)技术、或分时长期演进(Time-Division LTE,TD-LTE)技术等。

在一实施例,通信装置11可包括一乙太网络介面卡以提供有线网络的连线功能。在另一实施例,通信装置11可包括一无线收发器,具体来说,无线收发器可包括基频(baseband)装置、射频(Radio Frequency,RF)装置、以及天线,基频装置用以执行基频信号处理,包括模拟数字转换(analog to digital conversion,ADC)/数字模拟转换(digital to analog conversion,DAC)、增益(gain)调整、调变与解调变、以及编码/解码等;射频装置用以接收射频无线信号,并将射频无线信号转换为基频信号以交由基频装置进一步处理,或自基频装置接收基频信号,并将基频信号转换为射频无线信号以透过天线进行传送。其中所使用的射频可为无线保真技术所使用的2.4吉赫、3.6吉赫、4.9吉赫、或5吉赫,或端视所使用的通信技术而定。

主控制器12可为通用处理器、中央处理器(Central Processing Unit,CPU)、微处理器(Micro Control Unit,MCU)、应用处理器(Application Processor,AP)、或数字信号处理器(Digital Signal Processor,DSP)等,其可包括各式电路逻辑,用以提供数据处理及运算的功能、控制通信装置11的运作以提供网络连线、从存储装置13读取或存储数据以及/或程序码、以及控制网络子系统14的运作以加速对封包的处理(意即将对封包的处理任务移转到网络子系统14)。另外,主控制器12包括其他电路逻辑,用以提供对封包的路由、转送、流量控制、以及/或流量监测的功能。

特别是,主控制器12是用以协调控制通信装置11、存储装置13、以及网络子系统14的运作,以执行本申请的流量管理方法。在一实施例,主控制器12还可从存储装置13读取程序码以执行一操作系统以及应用程序,其中操作系统可包括各式常驻程序(daemon),例如:网络流量管理(Network Traffic Management,NTM)常驻程序。

存储装置13为非暂态(non-transitory)的计算机可读取存储媒体,用以存储从解析封包所取得的传输层参数以及应用层参数、以及计算机可读取的指令或程序码(包括:应用程序、操作系统、以及/或通信协定的程序码)。

在一实施例,存储装置13可为双倍数据率同步动态随机存取记忆体(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM),其具有双倍数据传输率的特性,也就是说,数据传输速度为系统时脉的两倍,因此在传输效能上优于传统的随机存取记忆体。在另一实施例,存储装置13可为快闪(flash)记忆体、快取(cache)记忆体、或其他类型的记忆体、或其他存储媒体。

网络子系统14又可被称为硬件加速引擎,用以替代主控制器12提供流量控制、以及/或流量监测的功能。网络子系统14包括副控制器14-1以及存储装置14-2,其中副控制器14-1可为微处理器、应用处理器、或数字信号处理器等,其可包括各式电路逻辑,用以提供数据处理及运算的功能、控制通信装置11的运作以提供网络连线、从存储装置14-2读取或存储数据以及/或程序码、以及执行对封包的处理任务(包括:封包的路由、转送、流量控制、以及/或流量监测)。应了解到,上述关于网络子系统14的组成只是举例说明,在其他实施例中可包含更多或更少的组成元件。此外,凡是可通过加速封包处理进而降低主控制器12负担的硬件加速引擎,皆可作为本申请所述的网络子系统的一示例。

该领域的熟悉技艺人士当可理解,主控制器12与副控制器14-1中的电路逻辑通常可包括多个晶体管,用以控制该电路逻辑的运作以提供所需的功能及操作。更进一步的,晶体管的特定结构及其之间的连接关系通常是由编译器所决定,例如:暂存器转移语言(Register Transfer Language,RTL)编译器可由处理器所运作,将类似组合语言码的指令文件(script)编译成适用于设计或制造该电路逻辑所需的形式。

存储装置14-2为非暂态的计算机可读取存储媒体,用以存储流量控制的规则、以及计算机可读取的指令或程序码(包括:通信协定的程序码)。

在一实施例,存储装置14-2可为紧密耦合记忆体(Tightly-Coupled Memory,TCM),其相较于传统记忆体结构拥有高速存取与低耗电的特性,通常耦接至副控制器14-1的内核,提供数据快取的功能以提高副控制器14-1的效能。在另一实施例,存储装置14-2可为快闪记忆体、快取记忆体、或其他类型的记忆体、或其他存储媒体。

当可理解的是,图4所示的元件仅用以提供一说明的范例,并非用以限制本申请的保护范围。举例来说,路由器10还可包括:显示屏幕(如:液晶显示器(Liquid Crystal Display,LCD)、发光二极管显示器(Liquid Crystal Display,LCD)、或电子纸显示器(Electronic Paper Display,EPD)等)、以及/或输入输出装置(如:一或多个按钮、键盘、鼠标、触碰板、视频镜头、麦克风、或喇叭)等。

图5是根据本申请一实施例所述的流量管理方法的流程图。在此实施例,流量管理方法是适用于双控制器架构的路由器,例如:路由器10。

首先,路由器10接收关联至一连线的多个第一封包以及接续上述第一封包的一第二封包(步骤S510),接着,由路由器10的主控制器12解析上述第一封包以决定上述连线的多个传输层参数(步骤S520)。

在一或多个实施例中,所述的“一连线”可以是指两个装置透过网络交换信息的状态。此处网络可以泛指各种通信手段或通信标准。当两个装置(例如:使用者装置32与网络通信装置22)可交换信息时,代表连线已建立或正在建立,而信息的交换可透过一个一个的封包进行。在一些实施例中,上述的“一连线”也可以是指本地端装置(例如:使用者装置32)所运行的某一个应用程序(例如:浏览器)与外网的服务器装置提供的某一网络服务(例如:社群网站)之间信息的交换,而此信息的交换亦是透过封包进行。本申请的一或多个实施例即是提供一种利用路由器10中的网络子系统14针对特定类型的“连线”进行流量控制、以及/或流量监测的技术,除了能加速封包传输速度之外,还能降低主控制器12负载。

明确来说,主控制器12在解析到OSI网络架构的第4层时,即可得到上述传输层参数,或者,传输层参数还可进一步包括OSI网络架构的第1~3层的参数,也就是主控制器12在进行OSI网络架构的第1~3层的解析操作时所得到的参数。举例来说,传输层参数可包括以下至少一者:来源端与目的端的网络协定地址、来源端与目的端的端口(port)信息、来源端与目的端的协定(例如:传输控制协定、用户数据报协定、或网络控制信息协定)、总封包数、以及总封包字节数。

接着,由存储装置13存储主控制器12所解析得到的传输层参数(步骤S530)。之后,由路由器10的副控制器14-1根据存储于存储装置13中至少部分的传输层参数对上述第二封包实施流量管理(步骤S540),流程结束。

在一实施例,所述至少部分的传输层参数可包括:来源端与目的端的网络协定地址、以及来源端与目的端的端口信息。主控制器12辨识关于该连线的来源端与目的端的网络协定地址、以及来源端与目的端的端口信息,并且由存储装置13存储关于该连线的来源端与目的端的网络协定地址、以及来源端与目的端的端口信息,之后,副控制器14-1就可以针对该连线进行某些流量管理,例如:可针对该连线实施流量监测。也就是说,在这些实施例中,副控制器14-1可直接统计关联于特定网络协定地址以及端口的网络流量,而不需要用到应用层信息。

在另一实施例,主控制器12还可在解析上述第一封包时取得上述连线的多个应用层参数,应用层参数至少包括以下至少一者:规则标签(Rule Tag)、以及应用程序(Application,APP)识别码。明确来说,主控制器12在解析到OSI网络架构的第7层时,即可得到上述应用层参数,而主控制器12可将至少部分传输层参数以及至少部分应用层参数转换成副控制器14-1执行流量管理时所需的规则。举例来说,所述规则可以是针对超文字传输协定(HyperText Transfer Protocol,HTTP)的流量进行监测,所以当一连线建立之后,主控制器12可以辨识关联于该连线的应用层参数以及传输层参数,待确认为超文字传输协定并且解析出其网络协定地址后,副控制器14-1就可以对该连线的后续封包做流量管理,例如:对后续封包实施独立于主控制器12的流量控制、流量监测、以及/或封包转送等程序。上述“独立于主控制器12”是指主控制器12并未解析后续封包的信息,也并未对后续封包进行流量管理。

应了解到,在本申请的一或多个实施例中,上述流量管理的执行是实质上独立于主控制器12。也就是说,上述流量管理的执行实质上不会增加或几乎不会增加主控制器12的负担,主要是由副控制器14-1进行流量管理的大部分操作,例如:流量控制、流量监测并更新至存储装置13。日后,若需要进行流量监测,只需直接查询存储装置13中的统计数据就可以得知特定应用程序、网站、或装置的总传输量。

为使更于理解本申请如何不需要主控制器12的介入,即可对特定连线进行网络流量的控制以及监测,以下实施例将详细介绍封包的传输路径。

图6是根据本申请一实施例所述的流量控制的操作示意图。在此实施例,涉及流量控制操作的系统架构包括:网络子系统模块610、网络子系统驱动(driver)模块620、网络堆叠模块630、以及常驻程序模块640,其中每个模块可为程序码所建构的软件模块,由控制器(如:主控制器12或副控制器14-1)载入并执行以于流量控制操作中实现本申请的流量管理方法。明确来说,网络子系统驱动模块620、网络堆叠模块630、以及常驻程序模块640是由主控制器12所执行,网络子系统模块610是由副控制器14-1所执行。

另外,以操作系统的执行面来看,网络子系统模块610、网络子系统驱动620、以及网络堆叠模块630是位于操作系统的核心空间(kernel space),而常驻程序模块640是位于操作系统的使用者空间(user space)。

网络子系统模块610还包括网络子系统数据库611,用以存储网络子系统模块610在执行流量控制时所需的规则,举例来说,网络子系统数据库611可存储在图4中的存储装置14-2。

网络子系统驱动模块620还包括强化连线管理(Enhanced Connection Manager,ECM)模块621,用以判断是否要由网络子系统模块610来加速对封包的处理,使该连线的后续封包可由网络子系统模块610直接处理,并且还可完成流量控制的目的。

网络堆叠模块630还包括连线记录(Connection Track,CT)数据库631,用以存储从解析封包所取得的传输层参数与应用层参数,举例来说,连线记录数据库631可存储在图4的存储装置13。

如图6所示,一连线的前n个封包(例如:图5的实施例所述的第一封包)会根据标准路径(以细实线标示的路径)从网络子系统模块610往上进入网络子系统驱动模块620,然后送到网络堆叠模块630,在此对封包进行OSI网络架构的层层解析,包括OSI网络架构的第1~4层解析,以取得传输层参数。传输层参数可包括以下的至少一者:来源端与目的端的网络协定地址、来源端与目的端的端口信息、来源端与目的端的协定、总封包数、以及总封包字节数。此时,传输层参数会被存储在连线记录数据库631中(步骤6a)。

接着,封包会被送到常驻程序模块640,并由其中一支常驻程序NTM利用一些DPI引擎(Deep Packet Inspection engine,DPI engine)来取得应用层参数。DPI引擎可例如但不限于一些商业用的程序(如PACE以及NBAR)或开放函数库(如nDPI、open DPI、L7-filter、Libprotoident)等。应了解到,上述程序模块并不用以限制本申请的具体应用,例如也可通过机器学习的方式取得相关的连线参数,机器学习应用的技术细节可参考Zhanyi Wang,The Applications of Deep Learning on Traffic Identification。为使更于理解,以下将以nDPI以及TC(Traffic Control,其为Linux内核的一个软件模块)这两个开放函数库(open source library)举例说明实施细节。

在一具体的实施例中,常驻程序NTM可呼叫nDPI、TC这两个开放函数库来取得应用层参数,然后在封包的表头封装过程送至网络堆叠模块630时,将应用层参数经转换后存储至连线记录数据库631中(步骤6b)。举例来说,应用层参数可在常驻程序模块640中经过处理后转换成特定格式并存储于连线记录数据库631中的特定栏位,例如:当一应用程序使用的是超文字传输协定时,转换后的应用层参数,如:应用程序识别码,可以是0x1(或其他预定数值,如:0x56,只要在本申请中预定了该数值对应到超文字传输协定即可);或者,当一应用程序使用的是文件传输协定(File Transfer Protocol,FTP)时,转换后的应用程序识别码可以是0x5;又或者,当一应用程序使用的是安全壳协定(Secure SHell,SSH)时,转换后的应用程序识别码可以是0x15。简单来说,每个应用层所使用的协定类别都对应到一个特定的应用程序识别码,而应用层参数在经过格式转换后,会与对应的传输层参数一同存储于连线记录数据库631中(例如:存储为[网络协定地址;端口信息;总传输量;应用程序识别码(0x1)]的格式)。之后,当下层模块(例如:网络子系统驱动模块620以及网络子系统模块610)更新特定传输层参数所对应的流量信息至连线记录数据库631时,连线记录数据库631即存储有超文字传输协定(应用程序识别码=0x1)在特定网络协定地址以及特定端口的总传输量(可作为流量监测用,详细说明可参考图7)。

上述常驻程序NTM其具有能力进行应用层的解析,以辨识不同应用程序的封包,此外,还能针对不同应用内细部的不同功能做到控管的能力。举例来说,可以选择性地调整Skype文件的传输速率。

上述nDPI为一开放且可延伸的深入封包检测(Deep packet inspection,DPI)函数库,主要提供封包过滤的功能,检查封包是否符合规范的协议、或是否为病毒、垃圾邮件、或入侵,或是为了收集统计数据而检查封包(即流量监测);而TC为一流量控制(Traffic Control,TC)函数库,主要设定封包排程器以各项流量控制操作,包括:封包优先化处理、流量管制(traffic shaping)、频宽限制、以及服务品质控制等。

在一实施例,开放函数库nDPI可于10个封包内判断出此封包是属于哪个应用程序,也就是说,n的值可预期为小于或等于10。

应用层参数包括以下至少一者:规则标签、以及应用程序识别码。其中,应用程序识别码用以指示此封包是属于哪个应用程序;规则标签则是用来指示此封包是否已被判别出是属于某一连线的应用程序(例如:某些流量较大的应用程序较适合走加速路径,以减少主控制器12的负担),若是,则表示可由网络子系统模块610来实施对封包的加速处理,同时常驻程序模块640中的常驻程序NTM会将该封包(以及该连线的后续封包)的规则标签设为“真(True)”(其预设值为“假(False)”)。

值得注意的是,除了存储传输层参数以及至少部分应用层参数之外,连线记录数据库631还可存储流量控制规则,用来对特定应用程序、特定网站、或特定装置进行流量控制(例如:限速)。在一实施例中,流量控制规则可根据服务品质(Quality of Service,QoS)参数(例如:服务品质识别码)而定。服务品质参数可用来告知网络子系统驱动模块620一特定连线的服务品质设定,不同的服务品质参数会对应到不同的传输速率。更具体而言,当使用者欲对一特定应用程序设定限速时,此限速的设定可转换成服务品质参数。举例来说,当有一个希望被限速的应用程序(例如:使用超文字传输协定的应用),其封包经过常驻程序NTM时,常驻程序NTM会查询使用者的限速设定(例如:是否针对特定的来源端/目的端网络协定地址、或特定应用程序进行限速),并分析此连线是否需要限速,若需要限速,则将应用程序识别码与服务品质参数存入连线记录数据库631,若无需限速,则只将应用程序识别码存入连线记录数据库631。

在一例示中,服务品质参数可用以指示“任何时候的保证传输速率”、“平均传输速率”、或“最大延迟时间”等信息。服务品质参数被存储在连线记录数据库631中,用以指示某一连线所应具有的服务品质。

回到图6,接续步骤6b,网络堆叠模块630在封包的表头封装完成后,将封包送到网络子系统驱动模块620,由强化连线管理模块621判断该封包的规则标签的值是否为真。在一实施例中,当常驻程序模块640取得该连线的应用层参数(例如:应用程序识别码)时,即可将规则标签的值设为真。若规则标签为真,强化连线管理模块621可向连线记录数据库631查询该封包的传输层参数与流量控制规则(步骤6c),然后将查询得到的传输层参数与流量控制规则存储到网络子系统数据库611(步骤6d)。

之后,网络子系统模块610按照一般程序对封包进行路由及转送的操作,并且根据网络子系统数据库611中的传输层参数与流量控制规则对该连线的后续封包直接进行流量控制(以粗实线标示的路径),而无需将封包往上送到网络子系统驱动模块620、网络堆叠模块630、以及常驻程序模块640去处理。

换句话说,当规则标签的值为真时,会触发强化连线管理模块621将流量控制所需的传输层参数与流量控制规则写入网络子系统数据库611,进而触发网络子系统模块610对后续封包进行流量控制。

在一实施例,网络子系统模块610除了对后续封包进行流量控制之外,还可同时对该些封包进行流量监测,并定期将流量监测所得的数据(例如:总封包数、及/或总封包字节数)更新到连线记录数据库631中。

在部分实施例中,如果连线记录数据库631中不存在关联于某个连线的流量控制规则(例如:服务品质参数),由于没有可套用的速限规则,所以网络子系统模块610可以只针对该连线的后续封包(例如:步骤530中的第二封包)进行流量监测。

图7是根据本申请一实施例所述的流量监测的操作示意图。在此实施例,涉及流量监测操作的系统架构相同于图6,且操作流程中的步骤7a~7b也与图6的步骤6a~6b相同,但后续步骤如下详述。关于步骤7a~7b的详细叙述可参考图6的实施例说明,故在此不再赘述。

接续步骤7b,网络堆叠模块630在完成封包的表头封装后,将封包送到网络子系统驱动模块620,由强化连线管理模块621判断该封包的规则标签的值是否为真,若是,则向连线记录数据库631查询已被更新的连线记录数据库631,取得传输层参数(步骤7c),然后将这些参数更新到网络子系统数据库611(步骤7d),由网络子系统模块610来处理后续的封包。

接着,网络子系统模块610会对该连线进行流量监测,并定期透过强化连线模块621(步骤7e),将流量信息更新到连线记录数据库631(步骤7f)。在一实施例中,记录于连线记录数据库631中的流量信息的格式可为[网络协定地址;端口信息;服务品质参数;总传输量;应用程序识别码],其中网络子系统模块610可根据流量监测的结果去更新连线记录数据库631中所记录的网络协定地址、端口信息、以及总传输量。如此一来,网络子系统模块610并不需要去识别应用层的参数信息(例如:应用程序识别码),并且主控制器12也不需要解析应用层的参数信息,即可由网络子系统模块610来实施流量监测。

明确来说,网络子系统模块610可根据网络子系统数据库611中的传输层参数(例如:来源端/目的端的网络协定地址、以及/或端口等信息)来对后续封包进行流量监测,例如:定期统计特定连线的总封包数、以及/或总封包字节数,并将监测所得的流量信息回报给强化连线管理模块621(步骤7e),由强化连线管理模块621整理后更新到连线记录数据库631(步骤7f)。

之后,当使用者要查询流量信息时,常驻程序模块640中的常驻程序NTM直接从连线记录数据库631读取流量数据(步骤7g),明确来说,常驻程序NTM会比对要查询的装置(根据网络协定地址)、或应用程序(根据应用程序识别码)来找出对应的流量信息,达到流量监测的目的,而不需要主控制器12去解析后续封包的应用层信息,亦不需要副控制器14-1去识别以及判读连线记录数据库631中的应用层信息。

如图7所示,只有该连线的前n个封包会走标准路径(以细实线标示的路径),而后续封包会改走加速路径(以粗实线标示的路径),由网络子系统模块610直接对该连线的后续封包进行流量监测,而无需再将封包往上送到网络子系统驱动模块620、网络堆叠模块630、以及常驻程序模块640去处理。

根据前述图6~图7的实施例,当可理解的是,本申请的流量管理方法对路由器的整体效能带来了显著的提升,特别是,在本申请案中,通过整合多层架构与同步每一连线在各层的信息,只有连线的前n(n≤10)个封包会走标准路径由主控制器来进行流量控制、以及/或流量监测,而连线的后续封包即改走加速路径由网络子系统直接处理。因此,不仅有效节省了主控制器的资源,同时也大幅提升了路由器的传输效能。

本申请虽以各种实施例揭露如上,然而其仅为范例参考而非用以限定本申请的范围,任何熟悉此项技艺者,在不脱离本申请的精神和范围内,当可做些许的更动与润饰。因此上述实施例并非用以限定本申请的范围,本申请的保护范围当视所附的权利要求书所界定的范围为准。

于权利要求书中所使用的“第一”、“第二”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。

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