一種多核網絡設備發送報文的方法及裝置與流程
2023-06-16 00:28:46 3

本發明實施例涉及網絡通信領域,具體涉及一種多核網絡設備發送報文的方法及裝置。
背景技術:
網絡設備通常是多核多線程的設備,多個線程從網卡接收報文並對報文進行處理,當處理完報文後會將報文從網卡發送出去。
為了避免多個線程同時操作網卡的情況,通常要對網卡加鎖,獲取鎖的線程可以進行報文的發送處理,其他沒有獲取到鎖的線程則等待。當報文發送出去後線程就可以將鎖釋放,這時其他等待中的線程中的某一個線程就可以獲取到鎖,然後進行報文的發送處理。
然而,由於報文發送佔用時間相對較長,導致鎖一直被佔用,而其它線程不得不等待而無法進行其它任務,這就造成了網絡設備性能上的損耗。
因此,如何提出一種方法,可有效減少這種性能上的損耗,成為亟待解決的問題。
技術實現要素:
針對現有技術中的缺陷,一方面,本發明實施例提供一種多核網絡設備發送報文的方法,包括:
對網卡加鎖,判斷發送報文標誌位是否置位;
若所述發送報文標誌位置位,將待發送報文放入發送隊列,對網卡解鎖。
本發明實施例提供的方法,由於在發送報文標誌位置位即有線程佔用網卡發送報文時,將需要發送的報文放入了發送隊列,從而使線程得到解放,因此可使線程免於等待,從而減少了網絡設備性能的損耗。
另一方面,本發明實施例還提出一種多核網絡設備發送報文的裝置,包括:
判斷單元,用於對網卡加鎖,判斷發送報文標誌位是否置位;
放文單元,若所述發送報文標誌位置位,則用於將待發送報文放入發送隊列,對網卡解鎖。
本發明實施例提供的裝置,由於在發送報文標誌位置位即有線程佔用網卡發送報文時,將需要發送的報文放入了發送隊列,從而使線程得到解放,因此可使線程免於等待,從而減少了網絡設備性能的損耗。
附圖說明
圖1為本發明多核網絡設備發送報文的方法實施例的流程示意圖;
圖2為本發明多核網絡設備發送報文的方法實施例程序流程圖;
圖3為本發明裝置實施例的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
圖1為本發明多核網絡設備發送報文的方法實施例的流程示意圖,參看圖1,本實施例公開一種多核網絡設備發送報文的方法,包括:
S1、對網卡加鎖,判斷發送報文標誌位是否置位;
當線程對網卡加鎖後,會判斷預先設置的發送報文標誌位是否置位。具體地,所述發送報文標誌位可預先設置在網卡的報文發送埠的控制程序中,當有線程使用埠發送報文時,所述發送報文的標誌位會置位。
S2、若所述發送報文標誌位置位,將待發送報文放入發送隊列,對網卡解鎖。
若線程判斷得知所述發送報文標誌位置位,即已有其它線程正在發送報文,則線程將自身攜帶的待發送報文放入預先設置的發送隊列中,並對網卡解鎖。
本發明實施例提供的方法,由於在發送報文標誌位置位即有線程佔用網卡發送報文時,將需要發送的報文放入了發送隊列,從而使線程得到解放,因此可使線程免於等待,從而減少了網絡設備性能的損耗。
本發明實施例中,若線程判斷得知所述發送報文標誌位沒有置位,即沒有其它線程佔用發送埠發送報文,則線程將所述發送報文標誌位置位,並對網卡解鎖,發送報文。
進一步地,在所述線程發送完報文後,還包括:
對網卡加鎖,並檢測發送隊列中是否存在其它線程放入的待發送的報文,若檢測到所述發送隊列中存在待發送的報文,則所述線程對網卡解鎖,發送待發送的報文。可以理解的是,所述發送隊列中的所述待發送報文可以為多個,且所述待發送報文按優一定的規則排序,所述規則可以為例如時序、優先級等。
其中,檢測發送隊列存在待發送的報文的步驟具體為:
線程從所述發送隊列中取待發送報文,若能取出,則發送所述待發送報文。
若不能取出,則線程清除發送報文標誌(將所述發送報文標誌位復位),並對網卡解鎖。
進一步地,圖2為本發明多核網絡設備發送報文的方法程序流程圖,如圖2所示,在線程從所述發送隊列中取出待發送報文並發送後,還可以再對網卡加鎖,並從所述發送隊列中取出下一個待發送報文並發送,如此重複,直到所述發送隊列中沒有待發送報文為止。
本發明實施例提供的多核網絡設備發送報文的方法,由於設置了發送報文標誌位,因此在線程佔用發送埠發送報文時,不會受到其它線程的幹擾,保證了網卡的正常有序工作。同時,在線程發送報文前,對網卡進行解鎖,從而使其它線程可對網卡進行加鎖並將待發送的報文放入發送隊列。因此,相較於現有技術,本發明實施例有效地避免了線程因等待發送報文而導致的性能的損耗,有效地提高了網絡設備的系統性能和發送報文的效率。
圖3為本發明裝置實施例的結構示意圖,參看圖3,本發明實施例還提供一種多核網絡設備發送報文的裝置,包括:判斷單元1以及放文單元2;
其中,判斷單元1用於對網卡加鎖,判斷發送報文標誌位是否置位;放文單元2用於當所述發送報文標誌位置位時將待發送報文放入發送隊列,對網卡解鎖。
本發明實施例提供的裝置,由於在發送報文標誌位置位即有線程佔用網卡發送報文時,將需要發送的報文放入了發送隊列,從而使線程得到解放,因此可使線程免於等待,從而減少了網絡設備性能的損耗。
進一步地,本發明實施例提供的裝置還包括發送單元,用於當判斷得知所述發送報文標誌位沒有置位,即沒有其它線程佔用發送埠發送報文時,將所述發送報文標誌位置位,並對網卡解鎖,發送報文。
進一步地,所述發送單元還用於在所述報文發送完畢之後,對網卡加鎖;檢測所述發送隊列中是否存在待發送的報文,若檢測到所述發送隊列中存在待發送的報文,則對網卡解鎖,發送待發送的報文。
其中,所述發送單元檢測所述發送隊列存在待發送的報文具體為:
從所述發送隊列中取出待發送報文,若能取出,則發送所述待發送報文。若能取出,則清除發送報文標誌(將所述發送報文標誌位復位),並對網卡解鎖。
在所述發送單元取出待發送報文並發送後,還開以再對網卡加鎖,並從所述發送隊列中取出下一個待發送報文並發送,如此重複,直到所述發送隊列中沒有待發送報文為止。
本發明實施例提供的多核網絡設備發送報文的裝置,由於設置了發送報文標誌位,因此在線程佔用發送埠發送報文時,不會受到其它線程的幹擾,保證了網卡的正常有序工作。同時,在線程發送報文前,對網卡進行解鎖,從而使其它線程可對網卡進行加鎖並將待發送的報文放入發送隊列。因此,相較於現有技術,本發明實施例有效地避免了線程因等待發送報文而導致的性能的損耗,有效地提高了網絡設備的系統性能和發送報文的效率。
最後應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。