CN112104451B - 一种数据包传输端口的刷新方法和装置 - Google Patents

一种数据包传输端口的刷新方法和装置 Download PDF

Info

Publication number
CN112104451B
CN112104451B CN202011307291.0A CN202011307291A CN112104451B CN 112104451 B CN112104451 B CN 112104451B CN 202011307291 A CN202011307291 A CN 202011307291A CN 112104451 B CN112104451 B CN 112104451B
Authority
CN
China
Prior art keywords
port
output port
data packet
output
target
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
Application number
CN202011307291.0A
Other languages
English (en)
Other versions
CN112104451A (zh
Inventor
胡乐勇
曾伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Greenet Information Service Co Ltd
Original Assignee
Wuhan Greenet Information Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Greenet Information Service Co Ltd filed Critical Wuhan Greenet Information Service Co Ltd
Priority to CN202011307291.0A priority Critical patent/CN112104451B/zh
Publication of CN112104451A publication Critical patent/CN112104451A/zh
Application granted granted Critical
Publication of CN112104451B publication Critical patent/CN112104451B/zh
Priority to PCT/CN2021/130838 priority patent/WO2022105731A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明涉及port轮询刷新技术领域,提供了一种数据包传输端口的刷新方法和装置。其中方法包括获取相邻多个时间段内的数据包‑输出端口关系表;对指定输出端口增加输出端口连续出现的权重方式,和/或在输出端口轮询时增加偏移量方式调整所述数据包‑输出端口关系表;通过递归的方式计算出每一轮调整后,对应于各个输出端口的数据包总量;在经过一轮或者多轮调整和计算后,将相应各个输出端口的数据包总量平均程度达到预设条件的权重值和/或偏移量,作为调整数据包与目标输出端口之间映射关系的参数,使得新接收到数据包按照调整后的映射关系进行传输。本发明既能保证数据报文的同源同宿、又能保证下行输出口接口带宽的最大利用。

Description

一种数据包传输端口的刷新方法和装置
技术领域
本发明涉及port轮询刷新技术领域,特别是涉及一种数据包传输端口的刷新方法和装置。
背景技术
现代信息化高速发展的信息时代,随着现网中流量的剧增,对网络安全设备不仅是处理性能还是接口带宽都有了更高的要求,在运营商提倡环保、绿色网络的前提下,对设备的体积、散热、功耗等都有了更高的要求。
对网络安全设备这一块,节能降耗会是各大厂商需要突破的难题。针对业务板或者接口板而言,对业务板物理接口密度也有了更高的要求,所以对于上行接口、下行接口的规划,包括输出接口带宽的利用率也将会是各大硬件厂商考虑的核心技术。
现有技术上,底层刷表方式通常采用常规index+hash值+port,传统的port轮询刷表方式。该刷表方式让早期上线运行的设备随着现网流量的增大已经暴露出不少问题,如逻辑处理性能不够,接口超带宽丢包等等,很多厂商不得不考虑升级替换设备,或在输出端口组中增加下行输出口数量来规避出口丢包问题。
早期业务板卡和当前业务板卡对比,早期ETH、GE口、10G口占用业务板或接口板空间相对较小,板卡密度可以做得较高,近几年高性能业务板卡基本都支持100G,后续可能会支持400G,甚至更高,就100G物理接口而言,cfp2口占空间很大,即使QSFP28的物理口空间也是10G口的两倍,且之前现网流量大多只进行一次分流,只需要进行一次hash运算,流量转出时相对较均衡。现在面临的问题是,当5G设备批量上线,且数据报文需要进行二次分流的话,如果业务板块接口不能得到充分利用,将不得不增加业务板或接口板数量,这样大大的提高生产成本,更就谈不上绿色环保网络了。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明要解决的技术问题是现有技术中利用hash值进行配对方式中,当底层表项hash值和port口对应不均时,就会出现单个输出口或部分输出口流量非常大,甚至超过接口带宽导致丢包,而部分接口流量又非常小,导致接口带宽不能合理利用;另一方面,现有技术中利用轮询方式进行配对方式中,无法保证报文的同源同宿,即同一会话的流量无法转发到同一个物理接口输出或到达同一服务器,最终用户在采集流量时不能保证流量的准确性。
本发明采用如下技术方案:
第一方面,本发明提供了一种数据包传输端口的刷新方法,获取到的数据包在按照指定hash计算规则得到对应hash值之后,按照预设的映射关系被指定到目标输出端口进行数据包的输出,方法包括:
获取相邻多个时间段内的数据包-输出端口关系表;其中,所述数据包-输出端口关系表中记载了每一个时间段内的数据包数量与各个目标输出端口之间的映射关系;
对指定输出端口增加输出端口连续出现的权重方式,和/或在输出端口轮询时增加偏移量方式调整所述数据包-输出端口关系表;
通过递归的方式计算出每一轮调整后,对应于各个输出端口的数据包总量;在经过一轮或者多轮调整和计算后,将相应各个输出端口的数据包总量平均程度达到预设条件的权重值和/或偏移量,作为调整数据包与目标输出端口之间映射关系的参数,使得新接收到数据包按照调整后的映射关系进行传输。
优选的,默认对应每一个端口的权重值为1,相应的各个端口按照预设的轮询顺序,配合完成各自关联hash值下的各个数据包的传输;
所述权重为自然数,在对第一目标端口设置权重值为n后,进行相应hash值与目标端口映射关系轮询时,在位于第一目标端口和原本第一目标端口轮询顺序之后的第二目标端口之间塞入n-1个轮询次数下的第一目标端口,使得原本从第二端口、第三端口、…、第n-1端口轮询输出的数据包,均由所述第一目标端口输出;进一步的,在执行第n+1次轮询将恢复到第二目标端口进行数据包输出;
其中,在完成所拥有的目标端口的轮询后,周期性的重新回到第一目标端口进行数据包输出时,仍然按照权重值为n执行上述的重复n-1次第一目标端口轮询后,再按顺序轮询完剩余的目标端口;
其中,原本轮询顺序中对应默认权重值为1中,第二目标端口与第一目标端口之间的轮询间隔为所述默认权重值1;原本默认权重值为1下的m个目标端口的m次轮询操作,更替为m个目标端口的m+n-1次轮询操作。
优选的,默认的各个输出端口之间的偏移量为1,所述输出端口轮询时增加偏移量是用于在每次在执行完针对所有输出端口的轮询后,在下一个周期的轮询开始时候,从位于前一周期的轮询中的第一个目标端口做相应偏移量的偏移后得到当前周期的轮询中的新的第一个目标端口;其中,拥有的所有输出端口构成一个偏移闭环,具体为在增加偏移量之后若端口号超出最大端口号,则相应的跳转到最小端口完成相应增加偏移量寻找到当前周期第一个目标端口的操作。
优选的,所述数据包-输出端口关系表包括一列索引号、一列对应于各索引号的数据包分组、用于输出相应数据分组中包含的各数据包的输出端口,具体的:
所述索引号为表项位宽的ID值,其值从小到大完成表项的索引建立,并作为相应数据包分组的索引编号;
所述数据包分组为按照预设时间长度或者预设数据流总量统计下来的,从同一端口输出的数据包总量;
用于输出相应数据分组中包含的各数据包的输出端口,在默认的原始表格为表现为各个输出端口号按照轮询的顺序周期性的与各个索引号对应关联。
优选的,所述通过递归的方式计算出每一轮调整后,对应于各个输出端口的数据包总量,具体包括:
将各个数据包-输出端口关系表中的数据包分组,按照从大到下的顺序进行排列;
从排列的数据包分组中提取各数据包分组中包含的数据包量大于预设阈值的一个或者多个数据包分组和对应的索引号;生成由相应索引号作为横坐标,相应数据包分组中包含的数据包量作为纵坐标的离散关系曲线;从而针对每一张数据包-输出端口关系表得到对应的一离散关系曲线;
其中,针对指定输出端口的权重值的增加表现为对应相应离散关系曲线指定区域范围进行横坐标压缩和纵坐标延伸;其中,所述纵坐标延伸为将其压缩的横坐标所对应的纵坐标值进行累加;
其中,偏移量的增加表现为离散关系曲线中指定区域中插入纵坐标为0的空位;
在对每一张数据包-输出端口关系表所对应的离散关系曲线,按照权重值和/或偏移量调整后,将所分析的每一张数据包-输出端口关系表所对应的离散关系曲线进行拟合,若拟合后的曲线的平滑程度达到预设条件,则将相应的权重值和/或偏移量调整参数作为所述达到预设条件的权重值和/或偏移量。
优选的,所述数据包-输出端口关系表根据所述单位时间或总包个数作为导出依据;其中,所记录的数据包分组总量抵达所述总包个数,则导出一张所述数据包-输出端口关系表;或者,所记录的数据包分组时间抵达所述单位时间,则导出一张所述数据包-输出端口关系表。
优选的,所述指定hash计算规则包括通过mac计算的方式、sip+dip二元计算方式和sip+dip+sport+dport四元计算方式中的一种或者多种。
优选的,刷新方法触发的时机包括:
收到网管告警和/或syslog日志时,根据输出端口带宽的使用率判断是否需要调整权重值和/或偏移量;
若需要调整,则根据生成的最优缓存表项,使用刷新方法配置出输出端口的权重值和/或偏移量。
第二方面,本发明还提供了一种数据包传输端口的刷新装置,用于实现第一方面所述的数据包传输端口的刷新方法,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的数据包传输端口的刷新方法。
第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的数据包传输端口的刷新方法。
本发明在hash算法固定的情况下,针对不同的现网流量,通过配置不同的接口权重和底层偏移的位置,既能保证数据报文的同源同宿、又能保证下行输出口接口带宽的最大利用。不管现网流量怎样,均可根据现网流量的特征,通过接口权重+底层偏移的刷表方式,配置调整出最优的均衡效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据包传输端口的刷新方法流程示意图;
图2是本发明实施例提供的一种数据包-输出端口关系表示意图;
图3是本发明实施例提供的一种数据包-输出端口关系表示意图;
图4是本发明实施例提供的一种数据包-输出端口关系表示意图;
图5是本发明实施例提供的一种数据包-输出端口关系表示意图;
图6是本发明实施例提供的一种数据包传输端口的刷新装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
现有技术方案一:通过index+hash值+port的方式、传统的hash算法(如mac算法,sip+dip二元算法、sip+dip+sport+dport四元算法或自定义算法等),不管是哪种算法优点是能够保证数据报文的同源同宿,缺点是当现网流量相对均衡时(这里的均衡不是指转发均衡,当流量均衡时计算出来的hash值很容易算到一个位置),简而言之是当现网流量通过异或算法后,计算出来的hash值在对应到port口的表项,极有可能出现hash值对应port表项不均,这样流量转出时就会出现不均。当底层表项hash值和port口对应不均时,就会出现单个输出口或部分输出口流量非常大,甚至超过接口带宽导致丢包,而部分接口流量又非常小,导致接口带宽不能合理利用。
现有技术方案二:index+接口的形式,这种方式不看hash值,轮询输出,例如输出口共5个口,分别是1~5口,数据报文会轮询在1-5口中输出。优点能够保证报文均衡输出,接口带宽能够最大的利用,缺点,无法保证报文的同源同宿,即同一会话的流量无法转发到同一个物理接口输出或到达同一服务器,最终用户在采集流量时不能保证流量的准确性。
在本发明后续实施例阐述中,并未严格区分端口和接口进行表述,即相应的端口可以理解就是背景技术中所涉及的接口,而且,在不同的实施例中相应的接口和输出端口的表述,可以理解为是同一技术概念的两种表述方式。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1
本发明实施例1提供了一种数据包传输端口的刷新方法,获取到的数据包在按照指定hash计算规则得到对应hash值之后,按照预设的映射关系被指定到目标输出端口进行数据包的输出,其中,所述指定hash计算规则包括通过mac计算的方式、sip+dip二元计算方式和sip+dip+sport+dport四元计算方式中的一种或者多种,如图1所示,方法包括:
在步骤201中,获取相邻多个时间段内的数据包-输出端口关系表;其中,所述数据包-输出端口关系表中记载了每一个时间段内的数据包数量与各个目标输出端口之间的映射关系。
在步骤202中,对指定输出端口增加输出端口连续出现的权重方式,和/或在输出端口轮询时增加偏移量方式调整所述数据包-输出端口关系表。
在步骤203中,通过递归的方式计算出每一轮调整后,对应于各个输出端口的数据包总量;在经过一轮或者多轮调整和计算后,将相应各个输出端口的数据包总量平均程度达到预设条件的权重值和/或偏移量,作为调整数据包与目标输出端口之间映射关系的参数,使得新接收到数据包按照调整后的映射关系进行传输。
刷新方法触发的时机包括:收到网管告警和/或syslog日志时,根据输出端口带宽的使用率判断是否需要调整权重值和/或偏移量;若需要调整,则根据生成的最优缓存表项,使用刷新方法配置出输出端口的权重值和/或偏移量。
本发明实施例在hash算法固定的情况下,针对不同的现网流量,通过配置不同的接口权重和底层偏移的位置,既能保证数据报文的同源同宿、又能保证下行输出口接口带宽的最大利用。不管现网流量怎样,均可根据现网流量的特征,通过接口权重+底层偏移的刷表方式,配置调整出最优的均衡效果。
在可选的方案中,添加一项是否生成数据包-输出端口关系表的开关控制,时时刻刻检查会耗损资源。可以选择第一次上线的时候或某端口达到速率阈值开启检测开关。
作为本发明实施例实现过程中两个核心要素权重值和偏移量,接下来将通过较为完整的理论过程对其实现机制进行配套解释:
方面一、权重值:
默认对应每一个端口的权重值为1,相应的各个端口按照预设的轮询顺序,配合完成各自关联hash值下的各个数据包的传输;
所述权重为自然数,在对第一目标端口设置权重值为n后,进行相应hash值与目标端口映射关系轮询时,在位于第一目标端口和原本第一目标端口轮询顺序之后的第二目标端口之间塞入n-1个轮询次数下的第一目标端口,使得原本从第二端口、第三端口、…、第n-1端口轮询输出的数据包,均由所述第一目标端口输出;进一步的,在执行第n+1次轮询将恢复到第二目标端口进行数据包输出;
其中,在完成所拥有的目标端口的轮询后,周期性的重新回到第一目标端口进行数据包输出时,仍然按照权重值为n执行上述的重复n-1次第一目标端口轮询后,再按顺序轮询完剩余的目标端口;
其中,原本轮询顺序中对应默认权重值为1中,第二目标端口与第一目标端口之间的轮询间隔为所述默认权重值1;原本默认权重值为1下的m个目标端口的m次轮询操作,更替为m个目标端口的m+n-1次轮询操作。
方面二、偏移量:
默认的各个输出端口之间的偏移量为1,所述输出端口轮询时增加偏移量是用于在每次在执行完针对所有输出端口的轮询后,在下一个周期的轮询开始时候,从位于前一周期的轮询中的第一个目标端口做相应偏移量的偏移后得到当前周期的轮询中的新的第一个目标端口;其中,拥有的所有输出端口构成一个偏移闭环,具体为在增加偏移量之后若端口号超出最大端口号,则相应的跳转到最小端口完成相应增加偏移量寻找到当前周期第一个目标端口的操作。
如图2所示,所述数据包-输出端口关系表包括一列索引号(图中index列)、一列对应于各索引号的数据包分组(图中hash值)、用于输出相应数据分组中包含的各数据包的输出端口(图中port列),具体的:
所述索引号为表项位宽的ID值,其值从小到大完成表项的索引建立,并作为相应数据包分组的索引编号;
所述数据包分组为按照预设时间长度或者预设数据流总量统计下来的,从同一端口输出的数据包总量;
用于输出相应数据分组中包含的各数据包的输出端口,在默认的原始表格为表现为各个输出端口号按照轮询的顺序周期性的与各个索引号对应关联。
作为本发明实施例实现过程中用于计算的核心原理,现围绕所述通过递归的方式计算出每一轮调整后,对应于各个输出端口的数据包总量,具体阐述如下:
将各个数据包-输出端口关系表中的数据包分组,按照从大到下的顺序进行排列;
从排列的数据包分组中提取各数据包分组中包含的数据包量大于预设阈值的一个或者多个数据包分组和对应的索引号;生成由相应索引号作为横坐标,相应数据包分组中包含的数据包量作为纵坐标的离散关系曲线;从而针对每一张数据包-输出端口关系表得到对应的一离散关系曲线;
其中,针对指定输出端口的权重值的增加表现为对应相应离散关系曲线指定区域范围进行横坐标压缩和纵坐标延伸;其中,所述纵坐标延伸为将其压缩的横坐标所对应的纵坐标值进行累加;
其中,偏移量的增加表现为离散关系曲线中指定区域中插入纵坐标为0的空位;
在对每一张数据包-输出端口关系表所对应的离散关系曲线,按照权重值和/或偏移量调整后,将所分析的每一张数据包-输出端口关系表所对应的离散关系曲线进行拟合,若拟合后的曲线的平滑程度达到预设条件,则将相应的权重值和/或偏移量调整参数作为所述达到预设条件的权重值和/或偏移量。
在本发明实施例中,参考图2所示,所述数据包-输出端口关系表根据单位时间或总包个数作为导出依据;其中,所记录的数据包分组总量抵达所述总包个数,则导出一张所述数据包-输出端口关系表;或者,所记录的数据包分组时间抵达所述单位时间,则导出一张所述数据包-输出端口关系表。
本发明实施例在hash算法固定的情况下,针对不同的现网流量,通过配置不同的接口权重和底层偏移的位置,既能保证数据报文的同源同宿、又能保证下行输出口接口带宽的最大利用。不管现网流量怎样,均可根据现网流量的特征,通过接口权重+底层偏移的刷表方式,配置调整出最优的均衡效果。
实施例2:
本发明实施例,是针对实施例1中所涉及的数据包-输出端口关系表的具体展示,并且,对于其中所涉及的关联数据,对应于方案实现过程中的具体权重值和偏移量,如何通过相应关系表进行体现的一种呈现实例;在本发明实施例中,实施例1中的数据包-输出端口关系表也被称为底层表项。
常规举例:若流量为N个包,则index0~2047对应的hash值之和为N个,分别对应到的port表的hash值如下。Port表中的0~4分别对应端口组中的1~5端口,则port表中所有0对应的所有hash值则为1接口(此处1接口与相应port值为0相映射)输出的流量,1对应的所有hash值为2接口输出的流量……。
如图2所示, 1~5口对应的流量分别如下:
1、接口1输出的报文对应port表0对应的hash值,则1输出的报文个数为8123+1638+6782+1157+…(对应port表为0的所有位置之和);
2、接口2输出的报文对应port表1对应的hash值,则2输出的报文个数为216+25+14738+24657+…(对应port表为1的所有位置之和);
3、接口3输出的报文对应port表2对应的hash值,则3输出的报文个数为3105+678+13456+…(对应port表为2的所有位置之和);
4、接口4输出的报文对应port表3对应的hash值,则4输出的报文个数为3105+678+6782+13456+…(对应port表为3的所有位置之和);
5、接口5输出的报文对应port表4对应的hash值,则5输出的报文个数为2506+987+2345+…(对应port表为4的所有位置之和);
基于实施例1步骤201-203所给予刷新方法,至少可以细分为以下三种方案。
方案1:配置接口权重
底层表项位宽为2048,端口组中port口5个下行输出口举例说明,配置接口权重,缺省接口权重为1,如1口配置权重为2,即1口对应的port表会刷2次表,则底层port口对应表项为001234~001234~001234......共2048个表项循环;
如2口配置权重为3、4口权重配置为5, 即2口对应的port表会刷3次表、4口对应的port表会刷5次表,则底层port口对应表项为01112344444 ~01112344444~01112344444......共2048个表项循环;
方案2:底层表项偏移量
底层表项位宽为2048,端口组中port口5个下行输出口举例说明,如底层表项偏移为2,即每刷完一轮表项后,下一个位置会在往右偏移2个位置开始刷表,则底层port口对应表项为01234 ~23401~ 43012~ 01234......共2048个表项循环。
底层表项位宽为2048,端口组中port口5个下行输出口举例说明,如底层表项偏移为3,即每刷完一轮表项后,下一个位置会在往右偏移2个位置开始刷表,则底层port口对应表项为01234 ~34012~12340~40123......共2048个表项循环。
方案3:接口权重+底层表项偏移(即实施例1中的权重值和偏移量的组合)
底层表项位宽为2048,端口组中port口5个下行输出口举例说明,如1口接口权重为3,偏移为2,即1口对应的port表会刷3次表,每刷完一轮表项后,下一个位置会在往右偏移2个位置开始刷表,则底层port口对应表项为0001234~0123400~2340001~.....共2048个表项循环。
方案1、2技术方案单独使用时,相比常规的刷表方式,对部分问题能够解决,当方案1和方案2结合使用时,效果会更佳,更能保证数据报文的均衡性。
如图4所示,底层表项位宽为2048,端口组中port口5个下行输出口举例说明,接口权重+底层偏移如下:如1口接口权重为3,偏移为2,本方案刷表如图4所示。
若流量为N个包,则index0~2047对应的hash值之和为N个,分别对应到的port表的hash值如下。Port表中的0~4分别对应端口组中的1~5口,则port表中所有0对应的所有hash值则为1口输出的流量,1对应的所有hash值为2口输出的流量……
如图5所示,1~5口对应的流量分别如下:
1、接口1输出的报文对应port表0对应的hash值,则1输出的报文个数为8123+216+11003+456+222849+…(对应port表为0的所有位置之和);
2、接口3输出的报文对应port表1对应的hash值,则2输出的报文个数为3105+678+…(对应port表为1的所有位置之和);
3、接口3输出的报文对应port表1对应的hash值,则2输出的报文个数为2506+987+2345+…(对应port表为1的所有位置之和);
4、接口4输出的报文对应port表2对应的hash值,则3输出的报文个数为1638+6782+1157+…(对应port表为2的所有位置之和);
5、接口5输出的报文对应port表4对应的hash值,则5输出的报文个数为25+14738+24567+…(对应port表为4的所有位置之和);
本发明实施例方案根据现网流量中输出接口流量转发不均衡,转发总带宽是物理接口总带宽的90%以内时,(为什么不是100%,是因为无论怎么调整都会有偏差,包括流量可能有突发、转发延时等等,无法保证1比1的带宽转发,90%已经是非常高的输出接口带宽利用率了),部分输出口因超过接口带宽丢包时,通过配置调整底层表项,尽量使每个输出口均衡输出,最大程度的保证每个物理输出接口带宽的合理利用,保证现网流量在均衡的情况下同源同宿转发。通过调整转发表项可以在不增加输出口时有效解决因流量不均导致丢包问题。简而言之,通过底层表项调整出最优均衡转发效果,将所有输出接口的带宽最大的利用,来达到节约输出口数量的目的,进一步达到节约板卡的目的,最终达到不浪费、节约成本的目的。
软件配合逻辑生成的缓存表项说明:单位时间每个port口对应到hash值的数量,软件根据hash值数量大小不一样,计算出几张较优表项。软件计算出每个接口权重可设置的排列组合,如接口权重可配置范围为1到5,接口权重1 1 1 1 1, 1 1 1 1 2,1 1 1 13……一直到5 5 5 5 5共32张表项。然后结合偏移量刷表,如可配置的偏移量为范围为1到5,搭配接口权重刷表,软件共生成32*5=160张表项对应关系,软件根据每张表项中接口输出流量情况进行对比,选出前N(N可配)张最优表项缓存,结合多个单位时间最优表项取交集,最终选出一样最优的表项。最后这张表项可以作为我们配置接口权重及偏移量的依据。这张表只是用来查找hash值与port表的关系,并不真实的下发到底层,为何不采用自动调整,考虑到现网流量波动较大,如果频繁调整,也就违背了报文同源同宿的转发原则,当前方案采用告警或日志的形式,当端口组成员接口最大速率、最小流量速率差值超过所配置阈值,或单个接口速率超带宽时,设备发出告警或记录日志。当运维人员收到网管告警、syslog日志时,可根据接口带宽的使用率判断是否需要调整底层表项,如果需要调整,则根据生成的最优缓存表项,以手动的方式配置出接口的接口权重和底层表项偏移量。是否生成底层表项也可通过开关控制,不需要时,就没必要浪费软件的资源了,发明目的,在保证数据报文同源同宿的前提下,使端口组中所有下行输出口成员的带宽得到最大利用,在带宽一定的情况下,有效的解决了流量输出不均时导致接口超带宽丢包问题,达到节约后端输出口数量的目的,达到节约业务板卡物理空间的目的,从而达到节约成本降低功耗的目的。
实施例3:
如图6所示,是本发明实施例的数据包传输端口的刷新装置的架构示意图。本实施例的数据包传输端口的刷新装置包括一个或多个处理器21以及存储器22。其中,图6中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图6中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的数据包传输端口的刷新方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行数据包传输端口的刷新方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的数据包传输端口的刷新方法,例如,执行以上描述的图1所示的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种数据包传输端口的刷新方法,其特征在于,获取到的数据包在按照指定hash计算规则得到对应hash值之后,按照预设的映射关系被指定到目标输出端口进行数据包的输出,方法包括:
获取相邻多个时间段内的数据包-输出端口关系表;其中,所述数据包-输出端口关系表中记载了每一个时间段内的数据包数量与各个目标输出端口之间的映射关系;
对指定输出端口增加输出端口连续出现的权重方式,和/或在输出端口轮询时增加偏移量方式调整所述数据包-输出端口关系表;
通过递归的方式计算出每一轮调整后,对应于各个输出端口的数据包总量;在经过一轮或者多轮调整和计算后,将相应各个输出端口的数据包总量平均程度达到预设条件的权重值和/或偏移量,作为调整数据包与目标输出端口之间映射关系的参数,使得新接收到数据包按照调整后的映射关系进行传输;
其中,所述指定hash计算规则包括通过mac计算的方式、sip+dip二元计算方式和sip+dip+sport+dport四元计算方式中的一种或者多种;
其中,默认对应每一个端口的权重值为1,相应的各个端口按照预设的轮询顺序,配合完成各自关联hash值下的各个数据包的传输;
所述权重为自然数,在对第一目标端口设置权重值为n后,进行相应hash值与目标端口映射关系轮询时,在位于第一目标端口和原本第一目标端口轮询顺序之后的第二目标端口之间塞入n-1个轮询次数下的第一目标端口,使得原本从第二端口、第三端口、…、第n-1端口轮询输出的数据包,均由所述第一目标端口输出;进一步的,在执行第n+1次轮询将恢复到第二目标端口进行数据包输出;
其中,在完成所拥有的目标端口的轮询后,周期性的重新回到第一目标端口进行数据包输出时,仍然按照权重值为n执行重复n-1次第一目标端口轮询后,再按顺序轮询完剩余的目标端口;
其中,原本轮询顺序中对应默认权重值为1中,第二目标端口与第一目标端口之间的轮询间隔为所述默认权重值1;原本默认权重值为1下的m个目标端口的m次轮询操作,更替为m个目标端口的m+n-1次轮询操作;
其中,默认的各个输出端口之间的偏移量为1,所述输出端口轮询时增加偏移量是用于在每次在执行完针对所有输出端口的轮询后,在下一个周期的轮询开始时候,从位于前一周期的轮询中的第一个目标端口做相应偏移量的偏移后得到当前周期的轮询中的新的第一个目标端口;其中,拥有的所有输出端口构成一个偏移闭环,具体为在增加偏移量之后若端口号超出最大端口号,则相应的跳转到最小端口完成相应增加偏移量寻找到当前周期第一个目标端口的操作。
2.根据权利要求1所述的数据包传输端口的刷新方法,其特征在于,所述数据包-输出端口关系表包括一列索引号、一列对应于各索引号的数据包分组、用于输出相应数据分组中包含的各数据包的输出端口,具体的:
所述索引号为表项位宽的ID值,其值从小到大完成表项的索引建立,并作为相应数据包分组的索引编号;
所述数据包分组为按照预设时间长度或者预设数据流总量统计下来的,从同一端口输出的数据包总量;
用于输出相应数据分组中包含的各数据包的输出端口,在默认的原始表格为表现为各个输出端口号按照轮询的顺序周期性的与各个索引号对应关联。
3.根据权利要求2所述的数据包传输端口的刷新方法,其特征在于,所述通过递归的方式计算出每一轮调整后,对应于各个输出端口的数据包总量,具体包括:
将各个数据包-输出端口关系表中的数据包分组,按照从大到下的顺序进行排列;
从排列的数据包分组中提取各数据包分组中包含的数据包量大于预设阈值的一个或者多个数据包分组和对应的索引号;生成由相应索引号作为横坐标,相应数据包分组中包含的数据包量作为纵坐标的离散关系曲线;从而针对每一张数据包-输出端口关系表得到对应的一离散关系曲线;
其中,针对指定输出端口的权重值的增加表现为对应相应离散关系曲线指定区域范围进行横坐标压缩和纵坐标延伸;其中,所述纵坐标延伸为将其压缩的横坐标所对应的纵坐标值进行累加;
其中,偏移量的增加表现为离散关系曲线中指定区域中插入纵坐标为0的空位;
在对每一张数据包-输出端口关系表所对应的离散关系曲线,按照权重值和/或偏移量调整后,将所分析的每一张数据包-输出端口关系表所对应的离散关系曲线进行拟合,若拟合后的曲线的平滑程度达到预设条件,则将相应的权重值和/或偏移量调整参数作为所述达到预设条件的权重值和/或偏移量。
4.根据权利要求2所述的数据包传输端口的刷新方法,其特征在于,所述数据包-输出端口关系表根据单位时间或总包个数作为导出依据;其中,所记录的数据包分组总量抵达所述总包个数,则导出一张所述数据包-输出端口关系表;或者,所记录的数据包分组时间抵达所述单位时间,则导出一张所述数据包-输出端口关系表。
5.根据权利要求1-4任一所述的数据包传输端口的刷新方法,其特征在于,刷新方法触发的时机包括:
收到网管告警和/或syslog日志时,根据输出端口带宽的使用率判断是否需要调整权重值和/或偏移量;
若需要调整,则根据生成的最优缓存表项,使用刷新方法配置出输出端口的权重值和/或偏移量。
6.一种数据包传输端口的刷新装置,其特征在于,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-5任一所述的数据包传输端口的刷新方法。
CN202011307291.0A 2020-11-20 2020-11-20 一种数据包传输端口的刷新方法和装置 Active CN112104451B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011307291.0A CN112104451B (zh) 2020-11-20 2020-11-20 一种数据包传输端口的刷新方法和装置
PCT/CN2021/130838 WO2022105731A1 (zh) 2020-11-20 2021-11-16 一种数据包传输端口的刷新方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011307291.0A CN112104451B (zh) 2020-11-20 2020-11-20 一种数据包传输端口的刷新方法和装置

Publications (2)

Publication Number Publication Date
CN112104451A CN112104451A (zh) 2020-12-18
CN112104451B true CN112104451B (zh) 2021-02-09

Family

ID=73785325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011307291.0A Active CN112104451B (zh) 2020-11-20 2020-11-20 一种数据包传输端口的刷新方法和装置

Country Status (2)

Country Link
CN (1) CN112104451B (zh)
WO (1) WO2022105731A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112104451B (zh) * 2020-11-20 2021-02-09 武汉绿色网络信息服务有限责任公司 一种数据包传输端口的刷新方法和装置
CN115514992A (zh) * 2022-09-23 2022-12-23 深圳市音络科技有限公司 一种hdmi数据传输方法、系统、终端及存储介质
CN115756951B (zh) * 2022-10-12 2024-03-26 上海慧程工程技术服务有限公司 一种工业物联网数据实时上传方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113481A (zh) * 2014-07-04 2014-10-22 北京华为数字技术有限公司 基于控制端口切换事件的刷新mac地址表的方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100550833C (zh) * 2005-11-24 2009-10-14 武汉烽火网络有限责任公司 以太网交换缓存及调度的方法和装置
US8094584B2 (en) * 2006-02-16 2012-01-10 Nec Corporation Node, network system, frame transfer method, and frame transfer program
US8462628B2 (en) * 2006-12-20 2013-06-11 Integrated Device Technology, Inc. Method of improving over protocol-required scheduling tables while maintaining same
CN103491069A (zh) * 2013-09-05 2014-01-01 北京科能腾达信息技术股份有限公司 网络数据包的过滤方法
WO2016175808A1 (en) * 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Forwarding port assignment for data packet
CN106487683A (zh) * 2015-08-27 2017-03-08 中兴通讯股份有限公司 一种报文的处理方法及装置
CN110545194B (zh) * 2018-05-28 2021-06-01 华为技术有限公司 网络拓扑的生成方法及装置
US10979214B2 (en) * 2018-07-24 2021-04-13 Martin Spence Denham Secure hash algorithm implementation
CN109547341B (zh) * 2019-01-04 2021-12-21 烽火通信科技股份有限公司 一种链路聚合的负载分担方法及系统
CN112104451B (zh) * 2020-11-20 2021-02-09 武汉绿色网络信息服务有限责任公司 一种数据包传输端口的刷新方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113481A (zh) * 2014-07-04 2014-10-22 北京华为数字技术有限公司 基于控制端口切换事件的刷新mac地址表的方法和装置

Also Published As

Publication number Publication date
WO2022105731A1 (zh) 2022-05-27
CN112104451A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN112104451B (zh) 一种数据包传输端口的刷新方法和装置
CN104158755B (zh) 传输报文的方法、装置和系统
CN105556916B (zh) 网络流的信息统计方法和装置
Ye et al. A weighted ECMP load balancing scheme for data centers using P4 switches
CN107770259A (zh) 基于文件热度和节点负载的副本数量动态调整方法
CN101005461B (zh) 一种IPv6路由表查找、转发的方法
CN103856406A (zh) 用于在分布式网络交换机中的路由表管理的系统和方法
CN102970242B (zh) 一种实现负载均衡的方法
EP3817286A1 (en) Method and apparatus for generating network topology
CN103986766A (zh) 自适应负载均衡作业任务调度方法及装置
CN109800270B (zh) 一种数据存储和查询的方法及物联网系统
CN105207908B (zh) 一种报文处理方法及系统
CN103178989A (zh) 访问热度统计方法及装置
WO2018004978A1 (en) Technologies for adaptive routing using network traffic characterization
Fang et al. Energy-efficient distributed in-network caching for content-centric networks
WO2016197458A1 (zh) 一种流量控制的方法及装置
Xie et al. An adaptive scheme for data forwarding in software defined network
CN106790469A (zh) 一种缓存控制方法、装置和系统
US9832066B2 (en) Port number extension method and switch
Hu et al. GreSDN: Toward a green software defined network
Huo Packet‐level‐based traffic aggregation to optimize NDN content delivery
Abolhassani et al. Optimal load-splitting and distributed-caching for dynamic content over the wireless edge
CN103312603B (zh) 网络拥塞信息传输方法和装置
Li et al. Progressive forwarding disaster backup among cloud datacenters
Altman et al. Optimal random access in networks with two-way traffic

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