本發(fā)明涉及計算機技術,尤其涉及一種網(wǎng)絡包傳送方法、以太網(wǎng)控制器、高速緩存及系統(tǒng)。
背景技術:
一般來說,數(shù)據(jù)在以太網(wǎng)中以網(wǎng)絡包的形式進行傳輸,網(wǎng)絡包包括兩部分:網(wǎng)絡協(xié)議包頭和有效載荷。其中,網(wǎng)絡協(xié)議包頭中包含網(wǎng)絡各層次協(xié)議的相關信息,如來源、包大小、包類型等;有效載荷中存放需要被傳輸?shù)臄?shù)據(jù)。
當以太網(wǎng)控制器向高速緩存(cache)發(fā)送網(wǎng)絡包時,采用直接高速緩存訪問(Direct Cache Access,DCA)方法,先將網(wǎng)絡協(xié)議包頭發(fā)送至cache,再將有效載荷發(fā)送至cache,待有效載荷發(fā)送完畢后,以太網(wǎng)控制器改寫內(nèi)存中的描述符并向中央處理器(Central Processing Unit,CPU)發(fā)出中斷。然后,由CPU讀取并處理該網(wǎng)絡包。網(wǎng)絡協(xié)議包頭被發(fā)送至cache、以及網(wǎng)絡協(xié)議包頭被CPU讀出的速度影響網(wǎng)絡協(xié)議棧的處理效率,進而影響整體運行性能。該過程中,從網(wǎng)絡協(xié)議包頭被發(fā)送至cache,到CPU從cache中讀出該網(wǎng)絡協(xié)議包頭的時長,稱之為網(wǎng)絡協(xié)議包頭的重用距離,具體可參見圖1,圖1為現(xiàn)有技術中網(wǎng)絡協(xié)議包頭的重用距離的示意圖。由圖1可知,現(xiàn)有技術中網(wǎng)絡協(xié)議包頭的重用距離包括網(wǎng)絡協(xié)議包頭被發(fā)送至cache中的時長、有效載荷被發(fā)送至cache中的時長以及以太網(wǎng)控制器改寫描述符和發(fā)出中斷的時長。
上述網(wǎng)絡包的發(fā)送過程中,網(wǎng)絡協(xié)議包頭在cache中是“先進先出”的,即先被以太網(wǎng)控制器發(fā)送至cache中的網(wǎng)絡協(xié)議包頭,也先被CPU讀取,造成網(wǎng)絡協(xié)議包頭的重用距離較長,使得網(wǎng)絡協(xié)議包頭占用cache空間,從而將其他重要的數(shù)據(jù)替換出cache,當CPU使用這些重要數(shù)據(jù)時需要重新從內(nèi)存中讀取;或者,使得網(wǎng)絡協(xié)議包頭被后續(xù)發(fā)送的有效載荷從cache中替換 出去,當CPU需要使用該網(wǎng)絡協(xié)議包頭時,得重新從內(nèi)存中讀取,帶來網(wǎng)絡包的無效傳輸,導致運行效率降低、網(wǎng)絡傳輸性能差的問題。因此,如何縮短DCA方法中網(wǎng)絡協(xié)議包頭的重用距離以提高網(wǎng)絡包的傳輸效率及網(wǎng)絡傳輸性能,實為業(yè)界亟待解決的問題。
技術實現(xiàn)要素:
本發(fā)明提供一種網(wǎng)絡包傳送方法、以太網(wǎng)控制器、高速緩存及系統(tǒng),通過縮短DCA方法中網(wǎng)絡協(xié)議包頭的重用距離,達到提高運行效率及網(wǎng)絡傳輸性能的目的。
第一個方面,本發(fā)明實施例提供一種網(wǎng)絡包發(fā)送方法,包括:
以太網(wǎng)控制器存儲接收到的網(wǎng)絡協(xié)議包頭;
所述以太網(wǎng)控制器接收所述網(wǎng)絡協(xié)議包頭所屬的網(wǎng)絡包的有效載荷;
所述以太網(wǎng)控制器向高速緩存cache發(fā)送所述有效載荷;
當所述有效載荷發(fā)送完畢時,所述以太網(wǎng)控制器向所述cache發(fā)送所述網(wǎng)絡協(xié)議包頭。
在第一個方面的第一種可能的實現(xiàn)方式中,該方法還包括:
當所述網(wǎng)絡協(xié)議包頭發(fā)送完畢后,所述以太網(wǎng)控制器改寫內(nèi)存中的描述符并向中央處理器CPU發(fā)送中斷。
結(jié)合第一個方面的第一種可能的實現(xiàn)方式,在第一個方面的第二種可能的實現(xiàn)方式中,所述網(wǎng)絡協(xié)議包頭的重用距離包括:所述網(wǎng)絡協(xié)議包頭被發(fā)送至所述cache中的時長和所述改寫所述描述符與發(fā)送所述中斷的時長。
第二個方面,本發(fā)明實施例提供一種網(wǎng)絡包接收方法,包括:
高速緩存cache接收以太網(wǎng)控制器發(fā)送的有效載荷;
當所述有效載荷接收完畢后,所述cache接收所述以太網(wǎng)控制器發(fā)送的網(wǎng)絡協(xié)議包頭,其中,所述網(wǎng)絡協(xié)議包頭為存儲在所述以太網(wǎng)控制器中的網(wǎng)絡協(xié)議包頭,所述網(wǎng)絡協(xié)議包頭為所述有效載荷所屬的網(wǎng)絡包的網(wǎng)絡協(xié)議包頭。
在第二個方面的第一種可能的實現(xiàn)方式中,所述網(wǎng)絡協(xié)議包頭的重用距離包括:所述網(wǎng)絡協(xié)議包頭被發(fā)送至所述cache中的時長和所述以太網(wǎng)控制器改寫描述符與發(fā)送中斷的時長。
第三個方面,本發(fā)明實施例提供一種以太網(wǎng)控制器,包括:
接收模塊,用于接收網(wǎng)絡協(xié)議包頭;
存儲模塊,用于存儲所述接收模塊接收到的所述網(wǎng)絡協(xié)議包頭;
所述接收模塊,還用于接收所述網(wǎng)絡協(xié)議包頭所屬的網(wǎng)絡包的有效載荷;
發(fā)送模塊,用于向高速緩存cache發(fā)送所述接收模塊接收的所述有效載荷;以及當所述有效載荷發(fā)送完畢時,向所述cache發(fā)送所述存儲模塊存儲的所述網(wǎng)絡協(xié)議包頭。
在第三個方面的第一種可能的實現(xiàn)方式中,該以太網(wǎng)控制器還包括:
處理模塊,用于當所述發(fā)送模塊將所述網(wǎng)絡協(xié)議包頭發(fā)送完畢后,改寫內(nèi)存中的描述符;
所述發(fā)送模塊,還用于向中央處理器CPU發(fā)送中斷。
第四個方面,本發(fā)明實施例還提供一種高速緩存cache,包括:接收模塊,用于接收以太網(wǎng)控制器發(fā)送的有效載荷,以及當所述有效載荷接收完畢后,接收所述以太網(wǎng)控制器發(fā)送的網(wǎng)絡協(xié)議包頭,其中,所述網(wǎng)絡協(xié)議包頭為存儲在所述以太網(wǎng)控制器中的網(wǎng)絡協(xié)議包頭,所述網(wǎng)絡協(xié)議包頭為所述有效載荷所屬的網(wǎng)絡包的網(wǎng)絡協(xié)議包頭。
在第四個方面的第一種可能的實現(xiàn)方式中,所述網(wǎng)絡協(xié)議包頭的重用距離包括:所述網(wǎng)絡協(xié)議包頭被發(fā)送至所述cache中的時長、所述以太網(wǎng)控制器改寫描述符與發(fā)送中斷的時長。
第五個方面,本發(fā)明實施例提供一種網(wǎng)絡包發(fā)送及接收系統(tǒng),包括如上第三個方或第三個方面的第一種可能的實現(xiàn)方式實現(xiàn)的以太網(wǎng)控制器,以及如上第四個方面或第四個方面的第一種可能的實現(xiàn)方式實現(xiàn)的高速緩存。
本發(fā)明實施例提供的網(wǎng)絡包傳送方法、以太網(wǎng)控制器、高速緩存及系統(tǒng),在通過DCA方法發(fā)送網(wǎng)絡包時,以太網(wǎng)控制器接收網(wǎng)絡協(xié)議包頭并存儲,然后接收有效載荷并將其發(fā)送至cache,待有效載荷發(fā)送完畢后,取出網(wǎng)絡協(xié)議包頭并發(fā)送。該過程中,網(wǎng)絡協(xié)議包頭是在有效載荷發(fā)送完畢之后發(fā)送的,使得網(wǎng)絡協(xié)議包頭的重用距離不包括有效載荷被發(fā)送至cache中的時長,從而在一定程度上縮短了網(wǎng)絡協(xié)議包頭的重用距離,達到提高運行效率及網(wǎng)絡傳輸性能的目的。
附圖說明
圖1為現(xiàn)有技術中網(wǎng)絡協(xié)議包頭的重用距離的示意圖;
圖2為本發(fā)明網(wǎng)絡包發(fā)送方法實施例一的流程圖;
圖3為本發(fā)明網(wǎng)絡包發(fā)送方法中重用距離的示意圖;
圖4為本發(fā)明網(wǎng)絡包接收方法實施例一的流程圖;
圖5為本發(fā)明以太網(wǎng)控制器實施例一的結(jié)構(gòu)示意圖;
圖6為本發(fā)明以太網(wǎng)控制器實施例二的結(jié)構(gòu)示意圖;
圖7為本發(fā)明cache實施例一的結(jié)構(gòu)示意圖。
具體實施方式
現(xiàn)代CPU中往往包含一級或多級cache,cache保存內(nèi)存數(shù)據(jù)的備份,其具有訪問速度快的優(yōu)勢。DCA方法正是利用cache訪問速度快的特點,將以太網(wǎng)控制器發(fā)送的網(wǎng)絡包直接送入cache,然后由CPU進行讀取并處理,從而減少訪問內(nèi)存的次數(shù)。若以太網(wǎng)協(xié)議包頭的重用距離過長,使得網(wǎng)絡協(xié)議包頭占用cache空間,從而將其他重要的數(shù)據(jù)替換出cache,當CPU使用這些重要數(shù)據(jù)時需要重新從內(nèi)存中讀取;或者,使得網(wǎng)絡協(xié)議包頭被后續(xù)發(fā)送的有效載荷從cache中替換出去,當CPU需要使用該網(wǎng)絡協(xié)議包頭時,得重新從內(nèi)存中讀取,帶來網(wǎng)絡包的無效傳輸,導致運行效率降低、網(wǎng)絡傳輸性能差的問題。也就是說,DCA方法中以太網(wǎng)協(xié)議包頭的重用距離關系到DCA方法的效果。
有鑒于此,本發(fā)明提供一種網(wǎng)絡包傳送方法、以太網(wǎng)控制器、高速緩存及系統(tǒng),通過縮短DCA方法中網(wǎng)絡協(xié)議包頭的重用距離,達到提高運行效率及網(wǎng)絡傳輸性能的目的。
圖2為本發(fā)明網(wǎng)絡包發(fā)送方法實施例一的流程圖,本實施例的執(zhí)行主體為以太網(wǎng)控制器,適用于DCA方法中需要縮短網(wǎng)絡協(xié)議包頭的重用距離的場景。具體的,本實施例包括如下步驟:
101、以太網(wǎng)控制器存儲接收到的網(wǎng)絡協(xié)議包頭。
本發(fā)明實施例中,以太網(wǎng)控制器也稱以太網(wǎng)適配器,即俗稱的“網(wǎng)卡”,其具有與外界通信的網(wǎng)絡端口,通過該網(wǎng)絡端口接收網(wǎng)絡包;網(wǎng)絡包包括兩部分:網(wǎng)絡協(xié)議包頭和有效載荷。其中,網(wǎng)絡協(xié)議包頭中包含網(wǎng)絡各層次協(xié) 議的相關信息,如來源、包大小,包類型等;有效載荷中存放需要被傳輸?shù)臄?shù)據(jù)。
本步驟中,當有網(wǎng)絡包傳輸至以太網(wǎng)控制器時,以太網(wǎng)控制器從網(wǎng)絡端口接收網(wǎng)絡包的網(wǎng)絡協(xié)議包頭。在接收到網(wǎng)絡協(xié)議包頭后,以太網(wǎng)控制器將該網(wǎng)絡協(xié)議包頭存儲起來。例如,可預先給以太網(wǎng)控制器設置緩存,從而將接收到的以太網(wǎng)協(xié)議包頭暫存在緩存中。其中,該緩存可以是任何具有暫存功能的硬件模塊或虛擬模塊。
102、所述以太網(wǎng)控制器接收所述網(wǎng)絡協(xié)議包頭所屬的網(wǎng)絡包的有效載荷。
本步驟中,當網(wǎng)絡協(xié)議包頭接收并存儲完畢后,以太網(wǎng)控制器繼續(xù)從網(wǎng)絡端口接收該網(wǎng)絡協(xié)議包頭所屬的網(wǎng)絡包的有效載荷。
103、所述以太網(wǎng)控制器向高速緩存cache發(fā)送所述有效載荷。
本步驟中,以太網(wǎng)控制器將通過網(wǎng)絡端口接收到的有效載荷向cache發(fā)送。
104、當所述有效載荷發(fā)送完畢時,所述以太網(wǎng)控制器向所述cache發(fā)送所述網(wǎng)絡協(xié)議包頭。
本步驟中,當以太網(wǎng)控制器將網(wǎng)絡協(xié)議包頭所屬的網(wǎng)絡包的所有有效載荷都發(fā)送至cache后,從緩存中取出該網(wǎng)絡協(xié)議包頭,并將該網(wǎng)絡協(xié)議包頭發(fā)送至cache。
由于網(wǎng)絡協(xié)議包頭的重用距離是指網(wǎng)絡協(xié)議包頭被發(fā)送至cache,到CPU從cache中讀出該網(wǎng)絡協(xié)議包頭的時長?,F(xiàn)有技術中,通過DCA方法發(fā)送網(wǎng)絡包時,先發(fā)送網(wǎng)絡協(xié)議包頭,再發(fā)送有效載荷,從而使得網(wǎng)絡協(xié)議包頭的重用距離包括有效載荷被發(fā)送至cache中的時長。而本實施例中,通過DCA方法發(fā)送網(wǎng)絡包時,網(wǎng)絡協(xié)議包頭是在有效載荷發(fā)送完畢之后發(fā)送的。因此,相較于現(xiàn)有技術,本發(fā)明實施例中網(wǎng)絡協(xié)議包頭的重用距離不包括有效載荷被發(fā)送至cache中的時長。
本發(fā)明實施例提供的絡包發(fā)送方法,在通過DCA方法發(fā)送網(wǎng)絡包時,以太網(wǎng)控制器接收網(wǎng)絡協(xié)議包頭并存儲,然后接收有效載荷并將其發(fā)送至cache,待有效載荷發(fā)送完畢后,取出網(wǎng)絡協(xié)議包頭并發(fā)送。該過程中,網(wǎng)絡協(xié)議包頭是在有效載荷發(fā)送完畢之后發(fā)送的,使得網(wǎng)絡協(xié)議包頭的重用距離 不包括有效載荷被發(fā)送至cache中的時長,從而在一定程度上縮短了網(wǎng)絡協(xié)議包頭的重用距離,達到提高運行效率及網(wǎng)絡傳輸性能的目的。
可選的,在本發(fā)明一實施例中,當所述網(wǎng)絡協(xié)議包頭發(fā)送完畢后,所述以太網(wǎng)控制器改寫內(nèi)存中的描述符并向CPU發(fā)送中斷。具體的,可參見圖3,圖3為本發(fā)明網(wǎng)絡包發(fā)送方法中重用距離的示意圖。
請參照圖3,從時間軸上來看,隨著時間的增長,以太網(wǎng)控制器先向cache發(fā)送有效載荷,再發(fā)送網(wǎng)絡協(xié)議包頭,然后網(wǎng)絡控制器改寫描述符并發(fā)送中斷,最后,CPU讀取網(wǎng)絡協(xié)議包頭并處理。如此一來,根據(jù)重用距離的概念,本實施例中,重用距離不包括有效載荷被發(fā)送至cache中的時長,而是僅僅包括絡協(xié)議包頭被發(fā)送至cache中的時長、以及以太網(wǎng)控制器改寫內(nèi)存描述符與向CPU發(fā)送中斷的時長。
圖4為本發(fā)明網(wǎng)絡包接收方法實施例一的流程圖,本實施例的執(zhí)行主體為cache,適用于DCA方法中需要縮短網(wǎng)絡協(xié)議包頭的重用距離的場景。具體的,本實施例包括如下步驟:
201、高速緩存cache接收以太網(wǎng)控制器發(fā)送的有效載荷;
202、當所述有效載荷接收完畢后,所述cache接收所述以太網(wǎng)控制器發(fā)送的網(wǎng)絡協(xié)議包頭,所述網(wǎng)絡協(xié)議包頭為存儲在所述以太網(wǎng)控制器中的網(wǎng)絡協(xié)議包頭,所述網(wǎng)絡協(xié)議包頭為所述有效載荷所屬的網(wǎng)絡包的網(wǎng)絡協(xié)議包頭。
具體的,本發(fā)明實施例中關于以太網(wǎng)控制器、網(wǎng)絡包、網(wǎng)絡協(xié)議包頭、有效載荷、重用距離等的描述,可參見上述圖2所示實施例,此處不再贅述。
本發(fā)明實施例提供的網(wǎng)絡包接收方法,cache在接收以太網(wǎng)控制器通過DCA方法發(fā)送的網(wǎng)絡包時,先接收以太網(wǎng)控制器發(fā)送的有效載荷,待有效載荷接收完畢后,再接收以太網(wǎng)控制器存儲并發(fā)送的網(wǎng)絡協(xié)議包頭。該過程,網(wǎng)絡協(xié)議包頭是在有效載荷接收完畢之后接收的,使得網(wǎng)絡協(xié)議包頭的重用距離不包括有效載荷被發(fā)送至cache中的時長,從而在一定程度上縮短了網(wǎng)絡協(xié)議包頭的重用距離,達到提高運行效率及網(wǎng)絡傳輸性能的目的。
可選的,在本發(fā)明一實施例中,所述網(wǎng)絡協(xié)議包頭的重用距離包括:所述網(wǎng)絡協(xié)議包頭被發(fā)送至所述cache中的時長、所述以太網(wǎng)控制器改寫描述符與發(fā)送中斷的時長。
圖5為本發(fā)明以太網(wǎng)控制器實施例一的結(jié)構(gòu)示意圖,本實施例提供的以 太網(wǎng)控制器,其可實現(xiàn)本發(fā)明任意實施例提供的應用于以太網(wǎng)控制器的方法的各個步驟。具體的,本實施例提供的以太網(wǎng)控制器100包括:
接收模塊11,用于接收網(wǎng)絡協(xié)議包頭;
存儲模塊12,用于存儲所述接收模塊11接收到的所述網(wǎng)絡協(xié)議包頭;
所述接收模塊11,還用于接收所述網(wǎng)絡協(xié)議包頭所屬的網(wǎng)絡包的有效載荷;
發(fā)送模塊13,用于向高速緩存cache發(fā)送所述接收模塊11接收的所述有效載荷;以及當所述有效載荷發(fā)送完畢時,向所述cache發(fā)送所述存儲模塊12存儲的所述網(wǎng)絡協(xié)議包頭。
本發(fā)明實施例提供的以太網(wǎng)控制器,在通過DCA方法發(fā)送網(wǎng)絡包時,接收網(wǎng)絡協(xié)議包頭并存儲,然后接收有效載荷并將其發(fā)送至cache,待有效載荷發(fā)送完畢后,取出網(wǎng)絡協(xié)議包頭并發(fā)送。該過程中,網(wǎng)絡協(xié)議包頭是在有效載荷發(fā)送完畢之后發(fā)送的,使得網(wǎng)絡協(xié)議包頭的重用距離不包括有效載荷被發(fā)送至cache中的時長,從而在一定程度上縮短了網(wǎng)絡協(xié)議包頭的重用距離,達到提高運行效率及網(wǎng)絡傳輸性能的目的。
圖6為本發(fā)明以太網(wǎng)控制器實施例二的結(jié)構(gòu)示意圖。如圖6所示,本實施例的以太網(wǎng)控制器100在圖5裝置結(jié)構(gòu)的基礎上,還包括:
處理模塊14,用于當所述發(fā)送模塊13將所述網(wǎng)絡協(xié)議包頭發(fā)送完畢后,改寫內(nèi)存中的描述符;
所述發(fā)送模塊13,還用于向中央處理器CPU發(fā)送中斷。
圖7為本發(fā)明cache實施例一的結(jié)構(gòu)示意圖,本實施例提供的cache,其可實現(xiàn)本發(fā)明任意實施例提供的應用于以cache的方法的各個步驟。具體的,本實施例提供的cache200包括:
接收模塊21,用于接收以太網(wǎng)控制器發(fā)送的有效載荷,以及當所述有效載荷接收完畢后,接收所述以太網(wǎng)控制器發(fā)送的網(wǎng)絡協(xié)議包頭,其中,所述網(wǎng)絡協(xié)議包頭為存儲在所述以太網(wǎng)控制器中的網(wǎng)絡協(xié)議包頭,所述網(wǎng)絡協(xié)議包頭為所述有效載荷所屬的網(wǎng)絡包的網(wǎng)絡協(xié)議包頭。
本發(fā)明實施例提供的cache,在接收以太網(wǎng)控制器通過DCA方法發(fā)送的網(wǎng)絡包時,先接收以太網(wǎng)控制器發(fā)送的有效載荷,待有效載荷接收完畢后,再接收以太網(wǎng)控制器存儲并發(fā)送的網(wǎng)絡協(xié)議包頭。該過程,網(wǎng)絡協(xié)議包頭是 在有效載荷接收完畢之后接收的,使得網(wǎng)絡協(xié)議包頭的重用距離不包括有效載荷被發(fā)送至cache中的時長,從而在一定程度上縮短了網(wǎng)絡協(xié)議包頭的重用距離,達到提高運行效率及網(wǎng)絡傳輸性能的目的。
可選的,在本發(fā)明一實施例中,所述網(wǎng)絡協(xié)議包頭的重用距離包括:所述網(wǎng)絡協(xié)議包頭被發(fā)送至所述cache中的時長和所述以太網(wǎng)控制器改寫描述符與發(fā)送中斷的時長。
另外,在上述網(wǎng)絡包發(fā)送方法、網(wǎng)絡包接收方法、以太網(wǎng)控制器及高速緩存的基礎上,本發(fā)明實施例還提供一種網(wǎng)絡包發(fā)送及接收系統(tǒng),包括如上實施例提供的以太網(wǎng)控制器及高速緩存,具體工作原理可參見上述各實施例,此處不再贅述。
本領域普通技術人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的范圍。