TWI826253B - 網路控制方法與網路卡 - Google Patents
網路控制方法與網路卡 Download PDFInfo
- Publication number
- TWI826253B TWI826253B TW112104018A TW112104018A TWI826253B TW I826253 B TWI826253 B TW I826253B TW 112104018 A TW112104018 A TW 112104018A TW 112104018 A TW112104018 A TW 112104018A TW I826253 B TWI826253 B TW I826253B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- address
- generate
- segment
- sequence
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- 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/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/604—Address structures or formats
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/35—Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一種網路控制方法用以均衡多個處理器的負載,包含:取得封包的一網際網路協定(internet protocol,IP)位址;依據IP位址位熵分布,刪除IP位址的部分位元以產生序列;對序列進行雜湊運算以產生雜湊值;依據該些處理器的數量對雜湊值取餘數;及將封包分配至該些處理器中對應餘數的一者。
Description
本發明是關於一種網路控制方法與網路卡,特別是關於一種可均衡處理器負載的網路控制方法與網路卡。
現今的電腦多半具有多個處理器用來平行處理網路封包。隨著科技的進步,網路封包的數量不斷提升。為了要使電腦的效能最大化,如何均衡處理器的負載已成為本領域重要的議題。
本發明揭露一種網路控制方法用以均衡多個處理器的負載,包含:取得封包的一網際網路協定(internet protocol,IP)位址;依據IP位址位熵分布,刪除IP位址的部分位元以產生序列;對序列進行雜湊運算以產生雜湊值;依據該些處理器的數量對雜湊值取餘數;及將封包分配至該些處理器中對應餘數的一者。
本發明揭露一種網路卡,包含收發器、控制器與記憶體裝置。收發器用以接收封包。記憶體裝置用以儲存程式碼與IP位址位熵分布,當程式碼被執行時致使控制器執行以下步驟:取得封包的IP位址;依據IP位址位熵分布,刪除IP位址的部分位元以產生序列;對序列進行雜湊
運算以產生雜湊值;依據處理器的數量對雜湊值取餘數;及將封包分配至該些處理器中對應餘數的一者。
相較於習知技術,本發明網路控制方法與網路卡先將IP位址中隨機性較低的位元刪除,再依據修改後的IP位址進行雜湊運算。據此提高封包分配至處理器的均勻性,進而均衡處理器的負載。
1:處理器
2:處理器
10:網路卡
11:收發器
12:控制器
13:記憶體裝置
20:封包
40:網路控制方法
N:處理器
P:IP位址位元機率
R1:結果
R2:結果
R3:結果
S:序列
S1:段
S2:段
S3:段
S4:段
S5:段
S6:段
S41:步驟
S42:步驟
S43:步驟
S44:步驟
S45:步驟
在閱讀了下文實施方式以及附隨圖式時,能夠最佳地理解本發明的多種態樣。應注意到,依據本領域的標準作業習慣,圖中的各種特徵並未依比例繪製。事實上,為了能夠清楚地進行描述,可能會刻意地放大或縮小某些特徵的尺寸。
圖1為本發明一些實施例中,網路卡的示意圖。
圖2為本發明一些實施例中,IP位址位元機率的示意圖。
圖3為本發明一些實施例中,IP位址操作的示意圖。
圖4為本發明一些實施例中,網路控制方法的流程圖。
圖1為本發明一些實施例的網路卡10的示意圖。網路卡10用來接收網路封包20,並將封包20分配給多個處理器中之一者。為了易於理解,該些處理器以1~N標示。在一些實施例中,N可表示為2M,其中M為正整數。
網路卡10包含收發器11、控制器12與記憶體裝置13。收發器11用來接收封包20。記憶體裝置13用來儲存程式碼。控制器12用來執行程式碼以將封包20分配給處理器1~N中之一者。
封包20具有IP位址。在執行程式碼時,控制器12用來取得
封包20的IP位址,並依據IP位址來執行雜湊運算以產生一雜湊值。接著,控制器12再依據雜奏值將封包20分配給處理器1~N中之一者。
不同來源的封包20具有不同的IP位址。一般來說,依據不同的IP位址執行雜湊運算可以得到不同的雜湊值。然而,在一些實施例中,即使是不同的IP位址,該些IP位址可能在部分的欄位的隨機性非常低。例如,在IPv6格式下的IP位址,不同的IP位址可能有相同的公用地址前綴(prefix),大幅降低該欄位的隨機性。因此,即使是經過雜湊運算得來的雜湊值可能會具有不太理想的隨機性。
當雜湊值的隨機性不理想時,封包20被分配至處理器1~N的分佈可能也不夠平均。從而造成部分處理器負載過高,其他部份處理器閒置過久。為了避免上述狀況,網路卡10依據IP位址位熵分佈H來選擇IP位址中隨機性較高的欄位來做雜湊運算,其細節說明如下。
參考圖2。圖2為本發明一些實施例的IP位址位元機率P的示意圖。IP位址位元機率P以IPv6格式來解釋。然而應以解的是,本發明不限於IPv6格式,封包20的IP位址可以是IPv6或IPv4格式。
在一些實施例中,IP位址位元機率P是依據現存所有可能的IP位址做出的統計分佈,其中縱軸代表出現1的機率,橫軸代表IP位址中的第幾位元。如圖2所示,在些位元上出現1的機率幾乎為1,在某些位元出現0的機率幾乎為1。透過方程式(1)可以將IP位址位元機率P轉換成IP位址位熵分佈H。
H=-[P.log 2 P+(1-P).log 2(1-P)];方程式(1)。
IP位址位熵分佈H表示IP位址中對應位元(欄位)經正規化的隨機率(亦可解釋為亂度)。在隨機率最低的情形下,例如,當IP位址中
第2位元出現1的機率P等於1(或等於0)時,從方程式(1)可知,第2位元對應的IP位址位熵分佈H等於0。相對的,在隨機率最大的情形下,例如,當IP位址中第100位元出現1的機率P等於0.5時,從方程式(1)可知,第100位元對應的IP位址位熵分佈H等於1。
請參考圖3。在執行程式碼時,控制器12將IP位址中IP位址位熵分佈H小於一預設值的位元刪除,並將剩餘的位元拼接成一序列S。以圖3為例,IP位址的第1~16、33~48位元的IP位址位熵分佈H小於預設值,控制器12將IP位址的第1~16、33~48位元刪除,並將剩餘的第17~32、49~64與65~128位元拼接成序列S。在一些實施例中,預設值大約等於0.3。
控制器12將序列S分成多個段。在一些實施例中,每段包含16位元。如圖3所示,序列S分成6段S1~S6。在執行雜湊運算前,控制器12先將第一段S1與第二段S2執行互斥或(XOR)運算以產生結果R1。控制器12再對結果R1執行雜湊運算以產生雜湊值。
控制器12依據雜湊值將封包20分配給處理器1~N中之一者。具體來說,控制器12將雜湊值除以N以取得一餘數a(例如餘數a為3),接著將封包20分配給對應的處理器a(對應為處理器3)。
在一些實施例中,控制器12更將結果R1與第三段S3執行XOR運算以產生結果R2,將結果R2與第四段S4執行XOR運算以產生結果R3,將結果R3與第五段S5執行XOR運算以產生結果R4,以及將結果R4與第六段S6執行XOR運算以產生結果R5。為了圖式簡潔,部分操作未繪示於圖3中。
在一些實施例中,控制器12選擇結果R1~R5中一者執行雜
湊運算以產生雜湊值,並決定依據結果R1~R5中哪一者取得的雜湊值具有最大的隨機性,最後再依據該具有最大隨機性的雜湊值來將封包20分配給處理器1~N中一者。
在一些實施例中,在執行XOR運算時之前,控制器12用以依據IP位址規格判斷第一段S1的每一位元是否相互獨立,亦即是判斷該些位元是否有不論在任何情形下都相同的狀況。當第一段S1的每一位元相互獨立時,控制器12執行XOR運算。相反地,當第一段S1的某些位元沒有相互獨立時,控制器12擷取序列S中其他段的某一位元來取代之。例如,當第一段S1的第X位元與第Y位元沒有相互獨立時,控制器12擷取第五段S5的其中一位元取代第一段S1的第Y位元。應理解,上述情形以第一段S1解釋,在執行XOR運算時之前,控制器12可用以分別判斷每一段中的位元是否相互獨立,並決定是否以其他段的某一位元來取代沒有相互獨立的位元。
在一些實施例中,因原IP位址中第81~128位元的IP位址位熵分布H較高,因此當某一段的位元沒有相互獨立時,擷取原IP位址中第81~128位元中之一者來取代沒有相互獨立的位元。
參考圖4。圖4為本發明一些實施例中網路控制方法40的流程圖。在一些實施例中,網路卡10用以執行網路控制方法40。為了易於理解,網路控制方法40以圖1~圖3中的參考標號解釋。網路控制方法40包含步驟S41、S42、S43、S44與S45。
在步驟S41中,控制器12取得封包20的IP位址。在步驟S42中,控制器12依據IP位址位熵分布H刪除IP位址的部分位元以產生序S。在步驟S43中,控制器12對序列進行雜湊運算以產生雜湊值。在步驟S44
中,控制器12依據處理器的數量N雜湊值取餘數。在步驟S45中,控制器12將封包20分配至處理器1~N中對應餘數的一者。
本發明不限於上述的網路控制方法40,各種於圖1~圖3的操作均在網路控制方法40的範圍內。
上文的敘述簡要地提出了本發明某些實施例之特徵,而使得本發明所屬技術領域具有通常知識者能夠更全面地理解本發明內容的多種態樣。本發明所屬技術領域具有通常知識者當可明瞭,其可輕易地利用本發明內容作為基礎,來設計或更動其他製程與結構,以實現與此處該之實施方式相同的目的和/或達到相同的優點。本發明所屬技術領域具有通常知識者應當明白,這些均等的實施方式仍屬於本發明內容之精神與範圍,且其可進行各種變更、替代與更動,而不會悖離本發明內容之精神與範圍。
40:網路控制方法
S41:步驟
S42:步驟
S43:步驟
S44:步驟
S45:步驟
Claims (10)
- 一種網路控制方法,用以均衡複數個處理器的負載,包含:取得一封包的一網際網路協定(internet protocol,IP)位址;依據一IP位址位熵分布,刪除該IP位址的一部分位元以產生一序列;對該序列進行一雜湊運算以產生一雜湊值;依據該些處理器的數量對該雜湊值取餘數;及將該封包分配至該些處理器中對應該餘數的一者。
- 如請求項1的網路控制方法,其中該IP位址位熵分布對應該IP位址的每個位元的位熵,其中依據該IP位址位熵分布,刪除該IP位址的該部分位元以產生該序列的步驟包含:刪除該部分位元,其中該部分位元的位熵小於一預設值;及拼接該IP位址中剩餘的位元以產生該序列。
- 如請求項2的網路控制方法,其中對該序列進行該雜湊運算以產生該雜湊值的步驟包含:將該序列分成複數個段;對該些段中的一第一段與一第二段執行一互斥或運算以產生一第一結果;及依據該第一結果執行該雜湊運算以產生該雜湊值。
- 如請求項3的網路控制方法,其中對該序列進行該雜湊運算以產生該雜湊值的步驟更包含:對該第一結果與該些段中的一第三段執行該互斥或運算以產生一第二結果,其中依據該第一結果執行該雜湊運算以產生該雜湊值的步驟更依據該第二結果來執行。
- 如請求項3的網路控制方法,其中對該序列進行該雜湊運算以產生該雜湊值的步驟更包含:在對該第一段與該第二段執行該互斥或運算前,依據該IP位址一規格判斷該第一段的每一位元是否相互獨立;及當該第一段的一第X位元與一第Y位元沒有相互獨立時,從刪除的該部分位元中取得一補償位元來取代該第Y位元以更新該第一段。
- 如請求項5的網路控制方法,其中該補償位元位於該IP位址的第81位元至第128位元之間。
- 一種網路卡,包含:一收發器,用以接收一封包;一控制器;一記憶體裝置,用以儲存一程式碼與一IP位址位熵分布,當該程式碼被執行時致使該控制器執行以下步驟:取得該封包的一IP位址; 依據該IP位址位熵分布,刪除該IP位址的一部分位元以產生一序列;對該序列進行一雜湊運算以產生一雜湊值;依據複數個處理器的數量對該雜湊值取餘數;及將該封包分配至該些處理器中對應該餘數的一者。
- 如請求項7的網路卡,其中該IP位址位熵分布對應該IP位址的每個位元的位熵,其中依據該IP位址位熵分布,刪除該IP位址的該部分位元以產生該序列的步驟包含:刪除該部分位元,其中該部分位元的位熵小於一預設值;及拼接該IP位址中剩餘的位元以產生該序列。
- 如請求項8的網路卡,其中對該序列進行該雜湊運算以產生該雜湊值的步驟包含:將該序列分成複數個段;對該些段中的一第一段與一第二段執行一互斥或運算以產生一第一結果;及依據該第一結果執行該雜湊運算以產生該雜湊值。
- 如請求項9的網路卡,其中對該序列進行該雜湊運算以產生該雜湊值的步驟更包含:在對該第一段與該第二段執行該互斥或運算前,依據該IP位址一規格判斷該第一段的每一位元是否相互獨立;及 當該第一段的一第X位元與一第Y位元沒有相互獨立時,從刪除的該部分位元中取得一補償位元來取代該第Y位元以更新該第一段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211024071.6A CN117675712A (zh) | 2022-08-24 | 2022-08-24 | 网络控制方法与网络卡 |
CN202211024071.6 | 2022-08-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI826253B true TWI826253B (zh) | 2023-12-11 |
TW202410675A TW202410675A (zh) | 2024-03-01 |
Family
ID=89995459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112104018A TWI826253B (zh) | 2022-08-24 | 2023-02-04 | 網路控制方法與網路卡 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240073179A1 (zh) |
CN (1) | CN117675712A (zh) |
TW (1) | TWI826253B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650640B1 (en) * | 1999-03-01 | 2003-11-18 | Sun Microsystems, Inc. | Method and apparatus for managing a network flow in a high performance network interface |
CN101795215A (zh) * | 2010-01-28 | 2010-08-04 | 哈尔滨工程大学 | 网络流量异常检测方法及检测装置 |
CN107846364A (zh) * | 2016-09-19 | 2018-03-27 | 阿里巴巴集团控股有限公司 | 一种报文的处理方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8509236B2 (en) * | 2007-09-26 | 2013-08-13 | Foundry Networks, Llc | Techniques for selecting paths and/or trunk ports for forwarding traffic flows |
US8660005B2 (en) * | 2010-11-30 | 2014-02-25 | Marvell Israel (M.I.S.L) Ltd. | Load balancing hash computation for network switches |
US20120147892A1 (en) * | 2010-12-14 | 2012-06-14 | International Business Machines Corporation | Analysis of network packets using a generated hash code |
US9838291B2 (en) * | 2013-08-02 | 2017-12-05 | Cellos Software Ltd | Multicore processing of bidirectional traffic flows |
CN104917852B (zh) * | 2015-05-29 | 2019-01-18 | 中国科学院信息工程研究所 | 一种针对IPv6地址的数据快速处理方法 |
US10333846B2 (en) * | 2016-02-19 | 2019-06-25 | Citrix Systems, Inc. | Systems and methods for routing network packets between multi-core intermediaries |
-
2022
- 2022-08-24 CN CN202211024071.6A patent/CN117675712A/zh active Pending
-
2023
- 2023-02-04 TW TW112104018A patent/TWI826253B/zh active
- 2023-08-20 US US18/452,541 patent/US20240073179A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650640B1 (en) * | 1999-03-01 | 2003-11-18 | Sun Microsystems, Inc. | Method and apparatus for managing a network flow in a high performance network interface |
CN101795215A (zh) * | 2010-01-28 | 2010-08-04 | 哈尔滨工程大学 | 网络流量异常检测方法及检测装置 |
CN107846364A (zh) * | 2016-09-19 | 2018-03-27 | 阿里巴巴集团控股有限公司 | 一种报文的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
TW202410675A (zh) | 2024-03-01 |
US20240073179A1 (en) | 2024-02-29 |
CN117675712A (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9537829B2 (en) | Methods and apparatus to improve security of a virtual private mobile network | |
WO2022111313A1 (zh) | 一种请求处理方法及微服务系统 | |
AU2015336357B2 (en) | Composite partition functions | |
CN109254729B (zh) | 一种对象存储的方法和装置 | |
US10237233B2 (en) | Allocating identifiers with minimal fragmentation | |
EP3221797A1 (en) | Testing systems and methods | |
US20070002873A1 (en) | Information processing device, server, communication system, address decision method, address modification method, and program | |
AU2016367801B2 (en) | Method and apparatus for generating random character string | |
US20200287829A1 (en) | Resilient Hashing With Compression | |
US10917231B2 (en) | Data storage method, apparatus, system and device | |
US9900384B2 (en) | Distributed caching in a communication network | |
CN106685429B (zh) | 整数压缩方法及装置 | |
WO2020181735A1 (zh) | 一种提供网络地址转换nat服务的方法及控制器 | |
TWI826253B (zh) | 網路控制方法與網路卡 | |
CN111629074B (zh) | 一种网关设备的会话排序方法及装置 | |
WO2020220801A1 (zh) | 域名解析方法及系统及存储介质 | |
WO2023147718A1 (zh) | 内容初始化方法、装置、电子设备和存储介质 | |
CN112866355B (zh) | 用于服务器故障转移和负荷平衡的系统和方法 | |
TW201630380A (zh) | 管理伺服器及其操作方法與伺服器系統 | |
CN114499978B (zh) | 一种基于密码学替换交换实现的加解密方法、装置及系统 | |
CN111506658B (zh) | 数据处理方法、装置、第一设备及存储介质 | |
WO2023116566A1 (zh) | 访问控制方法、设备及系统 | |
US20200327109A1 (en) | Method, electronic device and computer program product for creating metadata index | |
US20230254280A1 (en) | System and method for looking up an ip address in an ip address space | |
CN116627983A (zh) | 一种基于哈希连接的倾斜数据处理方法及相关设备 |