CN107809385B - 一种Packet-In消息的触发与控制方法 - Google Patents
一种Packet-In消息的触发与控制方法 Download PDFInfo
- Publication number
- CN107809385B CN107809385B CN201710940498.3A CN201710940498A CN107809385B CN 107809385 B CN107809385 B CN 107809385B CN 201710940498 A CN201710940498 A CN 201710940498A CN 107809385 B CN107809385 B CN 107809385B
- Authority
- CN
- China
- Prior art keywords
- message
- packet
- messages
- flow
- triggering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种Packet‑In消息的触发与控制方法,报文在交换机中匹配失败时,首先在缓存的流信息中查找该报文,若查找成功,则记录相关信息;若查找失败,则将该报文的匹配域信息缓存到流信息中,且为该报文生成一个Packet‑In消息并缓存,等待计时周期到期后发送。本发明的积极效果是:对交换机系统中Packet‑In消息的触发与控制机制进行了优化,避免了大象流被Table‑Miss命中时触发海量Packet‑In消息,严重消耗交换机和控制器的CPU资源,影响网络控制性能的现象;同时,优化了控制通道上的Packet‑In消息流量分布,充分利用了底层信道的数据承载能力,提高了控制通道的传输性能。
Description
技术领域
本发明涉及一种OpenFlow交换机系统,尤其是涉及一种OpenFlow交换机系统中Packet-In消息的触发与控制方法。
背景技术
软件定义网络技术是一种打破了传统网络组织应用方式,具有逻辑上集中、控制与转发分离、接口开放和可编程等特点的全新的网络体系架构。OpenFlow协议是目前软件定义网络领域被标准化且广泛认可的南向接口协议之一,OpenFlow交换机将被大量应用在各种软件定义网络系统中。
OpenFlow协议定义了交换机在报文匹配失败时向控制器申请流表的方法,通过将失配报文的相关信息封装在Packet-In消息中发送给控制器,让控制器知晓报文失配情况,由控制器通过Flow-Mod等消息向交换机安装新流表。
现有技术中交换机触发Packet-In消息需要依赖交换机内部的Table-Miss表项,Table-Miss以最低优先级通配任意报文,所有被Table-Miss匹配的报文都将触发一条Packet-In消息发往控制器。在超高速的数据平面网络中,大象流被Table-Miss命中可能触发海量Packet-In消息,严重消耗交换机和控制器的CPU资源,尤其当交换机和控制器间的控制通道是高时延或窄带信道时,可能造成控制信道拥塞,严重恶化SDN网络的控制性能;同时,Packet-In消息的离散化发送也可能导致对控制通道的数据承载能力利用率不高,影响控制通道的传输性能。
发明内容
为了克服现有技术的上述缺点,本发明提供了一种OpenFlow交换机系统内部Packet-In消息的触发与控制方法,以减轻由于大象流失配或控制通道恶化带来的计算资源浪费和网络控制性能降低等问题。
本发明解决其技术问题所采用的技术方案是:一种Packet-In消息的触发与控制方法,报文在OpenFlow交换机中匹配失败时,首先在缓存的流信息中查找该报文,若查找成功,则记录相关信息;若查找失败,则将该报文的匹配域信息缓存到流信息中,且为该报文生成一个Packet-In消息,放入Packet-In消息缓存模块中缓存,等待计时周期到期后发送。
与现有技术相比,本发明的积极效果是:对OpenFlow交换机系统中Packet-In消息的触发与控制机制进行了优化,避免了大象流被Table-Miss命中时触发海量Packet-In消息,严重消耗交换机和控制器的CPU资源,影响网络控制性能的现象;同时,优化了控制通道上的Packet-In消息流量分布,充分利用了底层信道的数据承载能力,提高了控制通道的传输性能。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为Packet-In消息触发与控制功能模块关系示意图。
图2为OpenFlow交换机系统收到报文的处理流程示意图。
图3为计时周期到期后的处理流程示意图。
图4为OpenFlow交换机系统收到Flow-Mod消息的处理流程示意图。
具体实施方式
如图1所示,OpenFlow交换机系统包括流表管理模块、报文缓存模块、报文匹配模块、计时模块、Packet-In消息处理模块、Packet-In消息缓存模块和Flow-Mod消息处理模块,各个模块间通过内部功能接口互连,组成报文的转发处理通道。
OpenFlow交换机启动成功后维护一个定时器,按预定义的计时周期T向Packet-In消息处理模块发送计时到期指示,表示规定的发送时刻来临,Packet-In消息处理模块收到计时到期指示后开始向控制器发送缓存的Packet-In消息,直到全部缓存的Packet-In消息发送完成。报文在OpenFlow交换机中匹配失败时,不立即根据Table-Miss表项的要求向控制器发送Packet-In消息,首先在缓存的流信息中查找该报文,若查找成功,则说明该流的前续报文已经触发了Packet-In消息,本报文不触发Packet-In消息,仅记录相关信息;若查找失败,则将该报文的匹配域信息缓存到流信息中,且为该报文生成一个Packet-In消息,放入Packet-In消息缓存,等待计时周期到期后发送。预定义的计时周期T,可以根据应用场景的需求进行灵活配置与动态调整,典型地,T的初始值Tinit在有线网络环境中可以设置为100ms,在无线网络环境中可以设置为1s。在OpenFlow交换机运行过程中,可根据Packet-In消息缓存模块中Packet-In消息的缓存深度动态地调整计时周期T,新的计时周期Tnew将被应用于下一个周期的计时。在一个计时周期内,同一条流只产生一个Packet-In消息,由匹配失败的首包触发,同一条流的后续报文只进行缓存和记录,不产生Packet-In消息。
本发明方法一共由三个独立的部分结合而成,一是收到报文以后触发Packet-In消息的机制,二是根据流量模型动态调整计时周期时间的机制,三是收到Flow-Mode消息后的处理机制。
如图2所示,收到报文以后的具体处理方法步骤为:一、收到报文以后,若在交换机内流表匹配失败,则通过报文的OpenFlow匹配域信息中的源目的MAC地址、以太网类型、源目的IP地址、IP协议号、TCP/UDP端口号信息检查本地缓存的流信息,确定本报文所属的流是否已经有前续报文匹配失败,且触发了Packet-In消息的生成,该过程中,只要缓存的流信息中上述信息与收到的报文一致,则认为收到的报文属于该流;二、若所属流已触发过Packet-In消息的生成,则本报文不再触发相同的动作,只是缓存本报文至交换机的接收缓存,同时在软件中维护一个表结构,将缓存编号buffer-id与本报文所属的流关联;三、若检测不到与收到的报文具有相同匹配域信息的流,则说明收到的报文属于该流的首个报文,需要触发Packet-In消息生成。首先检查Packet-In消息缓冲区,如果缓冲区已满,则发送所有缓冲的报文,并且重置计时周期定时器;四、根据收到的报文构建Packet-In消息,存入Packet-In消息缓存,等待计时周期到期后发送;五、计时周期到期后,将缓冲区内的全部Packet-In消息通过OpenFlow协议顺序发送至控制器,同时清空上述记录的缓存的流信息。
如图3所示,计时模块对计时周期的动态调整的具体处理方法步骤为:一、OpenFlow交换机系统启动后,维护一个周期性的定时器,用于控制交换机向控制器的Packet-In消息发送,只有在定时器到期时才执行发送动作,定时器未到期时,若生成了Packet-In消息,则先缓存在交换机本地,待定时器到期后再发送;二、定时器的初始化计时周期设置为100ms,每次计时周期到期后,可对下一个计时周期的计时时间进行动态调整,使其更适合当前的流量模型。具体的调整策略为:若到期时缓存的Packet-In消息数目超过缓存容量的3/4,则新的计时周期Tnew=T/2;若缓存的Packet-In消息数目低于缓存容量的1/4,则Tnew=T×2;每次计时到期时重复执行上述动态调整算法,同时确保Tinit/8≤Tnew≤Tinit×8,其中Tinit是预定义的计时周期T,当Tnew的值可能因为某次调整超出上述限制时,放弃本次调整。
如图4所示,交换机收到Flow-Mode消息后的具体处理方法步骤为:一、根据标准OpenFlow协议规定转发Flow-Mode消息中buffer-id字段指定的缓存报文;二、检查该buffer-id指定的缓存报文所属的流下还有没有关联其它缓存的报文,如果有,则按缓存顺序将所属流关联的报文全部转发。
Claims (8)
1.一种Packet-In消息的触发与控制方法,其特征在于:
(1)报文在OpenFlow交换机中匹配失败时,首先在缓存的流信息中查找该报文,若查找成功,则记录相关信息;若查找失败,则将该报文的匹配域信息缓存到流信息中,且为该报文生成一个Packet-In消息,放入Packet-In消息缓存模块中缓存,等待计时周期到期后发送;
(2)所述计时周期是指OpenFlow交换机启动成功后维护一个定时器,按预定义的计时周期T向Packet-In消息处理模块发送的计时到期指示,表示规定的发送时刻来临,Packet-In消息处理模块收到计时到期指示后开始向控制器发送缓存的Packet-In消息,直到全部缓存的Packet-In消息发送完成;
(3)当计时周期到期时,交换机向控制器发送缓存的Packet-In消息,同时清空缓存的流信息,确保所有匹配失败的业务流在本计时周期内都能够生成一个Packet-In消息。
2.根据权利要求1所述的一种Packet-In消息的触发与控制方法,其特征在于:所述预定义的计时周期T的初始值Tinit在有线网络环境中设置为100ms,在无线网络环境中设置为1s;在OpenFlow交换机运行过程中,可根据Packet-In消息缓存模块中Packet-In消息的缓存深度动态地调整预定义的计时周期T,新的计时周期Tnew将被应用于下一个周期的计时。
3.根据权利要求2所述的一种Packet-In消息的触发与控制方法,其特征在于:对所述预定义的计时周期T进行动态调整的方法为:当本次计时到期时,检查Packet-In消息缓存模块中缓存的Packet-In消息数目,若缓存的Packet-In消息数目超过缓存容量的3/4,则令Tnew=T/2;若缓存的Packet-In消息数目低于缓存容量的1/4,则令Tnew=T×2;每次动态调整时需确保Tinit/8≤Tnew≤Tinit×8,否则放弃本次调整。
4.根据权利要求1所述的一种Packet-In消息的触发与控制方法,其特征在于:在将生成的Packet-In消息放入Packet-In消息缓存模块中缓存时,若本次缓存动作导致Packet-In消息缓冲区耗尽,则立即发送所有缓存的Packet-In消息,并且重新开始下一个周期的计时。
5.根据权利要求1所述的一种Packet-In消息的触发与控制方法,其特征在于:对缓存的流信息进行标识时,使用OpenFlow定义的全部匹配域字段或选取二、三、四层头字段中的部分字段作为流匹配字段。
6.根据权利要求1所述的一种Packet-In消息的触发与控制方法,其特征在于:记录相关信息时,维护本报文的缓存位置buffer-id1、前续报文触发的Packet-In消息和前续报文的缓存位置buffer-id2之间的映射关系,将属于同一条流的全部buffer-id进行关联并存储。
7.根据权利要求1所述的一种Packet-In消息的触发与控制方法,其特征在于:交换机收到控制器发送的Flow-Mod消息时,根据标准行为对Flow-Mod消息中指定的buffer-id位置缓存的前续报文进行处理后,还需要对属于本流的所有缓存报文进行相同的处理。
8.根据权利要求1所述的一种Packet-In消息的触发与控制方法,其特征在于:在缓存的流信息中查找报文时,采用HASH技术进行快速查找。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710940498.3A CN107809385B (zh) | 2017-10-11 | 2017-10-11 | 一种Packet-In消息的触发与控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710940498.3A CN107809385B (zh) | 2017-10-11 | 2017-10-11 | 一种Packet-In消息的触发与控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107809385A CN107809385A (zh) | 2018-03-16 |
CN107809385B true CN107809385B (zh) | 2020-08-14 |
Family
ID=61592671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710940498.3A Active CN107809385B (zh) | 2017-10-11 | 2017-10-11 | 一种Packet-In消息的触发与控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107809385B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109450812A (zh) * | 2018-12-29 | 2019-03-08 | 优刻得科技股份有限公司 | 处理数据包的方法、交换机和控制器以及介质 |
CN113810298B (zh) * | 2021-09-23 | 2023-05-26 | 长沙理工大学 | 一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法 |
CN114978967B (zh) * | 2022-05-30 | 2024-02-06 | 桂林航天工业学院 | 基于流表项有效时间的sdn大象流侦测器实现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656807B (zh) * | 2009-09-08 | 2012-07-04 | 中兴通讯股份有限公司 | 一种网络电话发送端的语音控制方法及网络电话发送终端 |
US10291555B2 (en) * | 2015-11-17 | 2019-05-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Service based intelligent packet-in buffering mechanism for openflow switches by having variable buffer timeouts |
CN105553880B (zh) * | 2015-12-24 | 2018-11-16 | 北京邮电大学 | 一种软件定义网络中的数据处理方法及装置 |
-
2017
- 2017-10-11 CN CN201710940498.3A patent/CN107809385B/zh active Active
Non-Patent Citations (1)
Title |
---|
Design and implementation of a Packet-in buffer system for SDN switches;Shie-Yuan Wang等;《2017 IEEE Symposium on Computers and Communications (ISCC)》;20170706;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107809385A (zh) | 2018-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018210117A1 (zh) | 一种拥塞控制方法、网络设备及其网络接口控制器 | |
US11032205B2 (en) | Flow control method and switching device | |
EP2904745B1 (en) | Method and apparatus for accelerating forwarding in software-defined networks | |
US9674102B2 (en) | Methods and network device for oversubscription handling | |
US9100274B1 (en) | Enhanced virtual router redundancy protocol having inherit groups and advertisement count | |
US10397126B2 (en) | VXLAN packet transmission | |
JP5967090B2 (ja) | 通信システム、制御装置、ノードの制御方法およびプログラム | |
KR100453055B1 (ko) | Ip 네트워크 상에서의 경로 mtu 탐색 방법 및 그 장치 | |
CN107809385B (zh) | 一种Packet-In消息的触发与控制方法 | |
US20090300209A1 (en) | Method and system for path based network congestion management | |
CN105099920A (zh) | 一种设置sdn流表项的方法和装置 | |
Lu et al. | SDN-based TCP congestion control in data center networks | |
US20070226375A1 (en) | Plug-in architecture for a network stack in an operating system | |
CN101573927A (zh) | 网络系统中的路径最大传输单元发现 | |
US10805240B2 (en) | System and method of processing network data | |
US10461886B2 (en) | Transport layer identifying failure cause and mitigation for deterministic transport across multiple deterministic data links | |
EP2993833B1 (en) | Methods and devices for generating operation request | |
US20070226347A1 (en) | Method and apparatus for dynamically changing the TCP behavior of a network connection | |
WO2013044827A1 (zh) | 一种跟踪路由测试方法、系统、装置及设备 | |
CN103685058B (zh) | 控制流数据的服务质量的方法和OpenFlow控制器 | |
WO2021083160A1 (zh) | 数据传输的方法和装置 | |
US9608924B2 (en) | Network system, front-end unit and control message transmission rate reducing method | |
CN107920024B (zh) | 一种sdn控制器动态流表管理方法 | |
JP2010045767A (ja) | ネットワーク処理装置及びその処理方法 | |
CN113438176B (zh) | 一种处理分片ip数据包的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |