亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

針對慢速和快速端口的直通處理的制作方法

文檔序號:9439521閱讀:426來源:國知局
針對慢速和快速端口的直通處理的制作方法
【專利說明】針對慢速和快速端口的直通處理
[0001]相關(guān)串請的交叉引用
[0002]本申請要求于2013年3月20日提交的題為“Cut Through Processing for Slowand Fast Ports”的美國臨時專利申請N0.61/803,562以及于2013年11月19日提交的題為“Cut Through - Slow to Fast”的美國臨時專利申請N0.61/906,023的權(quán)益。上述兩申請的公開內(nèi)容通過引用結(jié)合于此。
技術(shù)領(lǐng)域
[0003]本公開總體上涉及網(wǎng)絡(luò),尤其涉及在網(wǎng)絡(luò)設(shè)備中實施的分組處理技術(shù)。
【背景技術(shù)】
[0004]基于分組的網(wǎng)絡(luò)中的一些類型的通信對于端到端傳輸時間要求非常小的時延。對于一些應(yīng)用而言,甚至毫秒量級的延遲也會對所期望的結(jié)果造成不利影響,諸如以目標(biāo)價格買入或賣出證券。然而,常規(guī)的“存儲并轉(zhuǎn)發(fā)”技術(shù)由于實施該技術(shù)的網(wǎng)絡(luò)設(shè)備(例如,網(wǎng)橋設(shè)備)在開始將分組轉(zhuǎn)發(fā)至下一個設(shè)備之前必須等待接收并緩存整個分組而引入了額外的時延。對于大的分組而言,這樣的延遲會是明顯的。
[0005]—種總體上有助于減少時延的已知技術(shù)被稱作“直通(cut-through)”。利用直通,網(wǎng)絡(luò)設(shè)備對分組的一部分(例如,報頭)進(jìn)行處理,并且在整個分組已經(jīng)被接收并寫入存儲器之前開始將該分組轉(zhuǎn)發(fā)/傳送至下一個設(shè)備。雖然直通總體上減少了時延,但是常規(guī)的直通技術(shù)受到各種缺陷的影響。一種這樣的缺陷是由于以太網(wǎng)協(xié)議一般要求單個分組以連續(xù)方式在網(wǎng)絡(luò)設(shè)備之間進(jìn)行傳送而出現(xiàn)的,其中中斷或暫停會導(dǎo)致錯誤情況出現(xiàn)。這可能是存在問題的,例如當(dāng)網(wǎng)絡(luò)設(shè)備在相對慢速的進(jìn)入端口上接收分組并且將該分組轉(zhuǎn)發(fā)至相對快速的外出端口的時候。由于在外出端口開始獲取分組數(shù)據(jù)以便進(jìn)行轉(zhuǎn)發(fā)/傳送時在相對慢速的端口處進(jìn)入的一些分組還無法在存儲器中可用,所以外出端口最終會在整個分組數(shù)據(jù)的傳輸已經(jīng)完成之前就用光待傳送的分組數(shù)據(jù)。該場景一般被稱作“欠載(under-run) ”。
[0006]常規(guī)直通技術(shù)的另一種缺陷來自于以下事實,其中在能夠?qū)ν暾纸M進(jìn)行處理之前開始轉(zhuǎn)發(fā),并且因此對于各種、通常為非轉(zhuǎn)發(fā)操作而言可能需要或有用的某些類型的信息在傳送分組時還是未知的。例如,對于計量以及各種其它操作而言有用的接收分組的字節(jié)數(shù)在直通轉(zhuǎn)發(fā)開始的時候可能是未知的。作為另一個示例,對于鏡像或各種其它操作而言可能有用的接收分組是否沒有錯誤的知識在直通轉(zhuǎn)發(fā)開始的時候可能是未知的。

【發(fā)明內(nèi)容】

[0007]在一個實施例中,一種用于在網(wǎng)絡(luò)設(shè)備中處理網(wǎng)絡(luò)分組的方法,包括在網(wǎng)絡(luò)設(shè)備的進(jìn)入端口處接收網(wǎng)絡(luò)分組。該方法還包括在至少該網(wǎng)絡(luò)分組的第一部分已經(jīng)被接收之后,但是在該網(wǎng)絡(luò)分組已經(jīng)被完全接收之前,在該網(wǎng)絡(luò)設(shè)備處并且基于該網(wǎng)絡(luò)分組的該第一部分生成表示該網(wǎng)絡(luò)分組的第一數(shù)據(jù)結(jié)構(gòu),在該網(wǎng)絡(luò)設(shè)備的分組處理器處對該第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理,并且響應(yīng)于對該第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理,選擇性地開始將該網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至該網(wǎng)絡(luò)設(shè)備的第一外出端口,或者選擇性地不將該網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至該網(wǎng)絡(luò)設(shè)備的第一外出端口。該方法還包括在該網(wǎng)絡(luò)設(shè)備處生成表示該網(wǎng)絡(luò)分組的第二數(shù)據(jù)結(jié)構(gòu)。該方法還包括在已經(jīng)在進(jìn)入端口處完全接收到該網(wǎng)絡(luò)分組之后,在該分組處理器處對該第二數(shù)據(jù)分組進(jìn)行處理,并且響應(yīng)于對該第二數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理,選擇性地將該數(shù)據(jù)分組轉(zhuǎn)發(fā)至不同于該第一外出端口的第二外出端口。
[0008]在另一個實施例中,一種網(wǎng)絡(luò)設(shè)備包括多個端口,該多個端口包括被配置為從網(wǎng)絡(luò)接收網(wǎng)絡(luò)分組的進(jìn)入端口,以及耦合至該多個端口的分組處理器。該分組處理器包括描述符生成器單元,其被配置為在至少第一網(wǎng)絡(luò)分組的第一部分已經(jīng)在該進(jìn)入端口處被接收之后,但是在該第一網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之前,基于該第一網(wǎng)絡(luò)分組的第一部分生成表示該第一網(wǎng)絡(luò)分組的第一數(shù)據(jù)結(jié)構(gòu)。該描述符生成器單元還被配置為生成表示該第一網(wǎng)絡(luò)分組的第二數(shù)據(jù)結(jié)構(gòu)。該分組處理器還包括轉(zhuǎn)發(fā)模塊,其被配置為在該第一網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之前,(i)對該第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理,并且
(ii)響應(yīng)于對該第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理,選擇性地開始將該第一網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至該多個端口中的第一外出端口,或者選擇性地不將該第一網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至任何外出端口。該轉(zhuǎn)發(fā)模塊還被配置為在該第一網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之后,(i)對該第二數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理,并且(ii)響應(yīng)于對該第二數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理,選擇性地將該第一網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至該多個端口中不同于該第一外出端口的第二外出端口。
[0009]在另一個實施例中,一種用于在網(wǎng)絡(luò)設(shè)備中處理網(wǎng)絡(luò)分組的方法,包括在該網(wǎng)絡(luò)設(shè)備的進(jìn)入端口處接收網(wǎng)絡(luò)分組。該方法還包括在該網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之前,在該網(wǎng)絡(luò)設(shè)備處基于所接收的該網(wǎng)絡(luò)分組的第一部分生成表示該網(wǎng)絡(luò)分組的第一數(shù)據(jù)結(jié)構(gòu),并且在該網(wǎng)絡(luò)設(shè)備的分組處理器處對該第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理。對該第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理包括針對該網(wǎng)絡(luò)分組作出轉(zhuǎn)發(fā)決策。該方法還包括在該網(wǎng)絡(luò)設(shè)備處生成表示該網(wǎng)絡(luò)分組的第二數(shù)據(jù)結(jié)構(gòu)。該方法還包括在該網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之后,至少使用該第二數(shù)據(jù)結(jié)構(gòu)關(guān)于該網(wǎng)絡(luò)分組至少執(zhí)行一個或多個非轉(zhuǎn)發(fā)操作。
[0010]在另一個實施例中,一種網(wǎng)絡(luò)設(shè)備包括多個端口,該多個端口包括被配置為從網(wǎng)絡(luò)接收網(wǎng)絡(luò)分組的進(jìn)入端口,以及耦合至該多個端口的分組處理器。該分組處理器包括描述符生成器單元,其被配置為在第一網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之前,基于所接收的該第一網(wǎng)絡(luò)分組的第一部分生成第一數(shù)據(jù)結(jié)構(gòu),該第一數(shù)據(jù)結(jié)構(gòu)表示該第一網(wǎng)絡(luò)分組。該描述符生成器單元還被配置為生成表示該第一網(wǎng)絡(luò)分組的第二數(shù)據(jù)結(jié)構(gòu)。該分組處理器還包括:轉(zhuǎn)發(fā)模塊,其被配置為至少通過針對該第一網(wǎng)絡(luò)分組作出轉(zhuǎn)發(fā)決策而對該第一網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行處理;和一個或多個非轉(zhuǎn)發(fā)模塊,其被配置為在該第一網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之后,至少使用該第二數(shù)據(jù)結(jié)構(gòu)關(guān)于該第一網(wǎng)絡(luò)分組執(zhí)行一個或多個非轉(zhuǎn)發(fā)操作。
[0011]在另一個實施例中,一種用于在網(wǎng)絡(luò)設(shè)備中處理網(wǎng)絡(luò)分組的方法包括:在該網(wǎng)絡(luò)設(shè)備的進(jìn)入端口處接收網(wǎng)絡(luò)分組,并且在該網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之前,在該網(wǎng)絡(luò)設(shè)備處基于所接收的該網(wǎng)絡(luò)分組的第一部分生成表示該網(wǎng)絡(luò)分組的第一數(shù)據(jù)結(jié)構(gòu)。該方法還包括在該網(wǎng)絡(luò)設(shè)備的分組處理器處對該第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理。對該第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理包括使用該第一數(shù)據(jù)結(jié)構(gòu)針對該網(wǎng)絡(luò)分組作出第一轉(zhuǎn)發(fā)決策以便將該網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至一個或多個外出端口。該方法還包括針對該一個或多個外出端口中的每一個至少部分基于相應(yīng)外出端口相對于進(jìn)入端口的工作速度而根據(jù)該第一轉(zhuǎn)發(fā)決策選擇性地將該網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至相應(yīng)網(wǎng)絡(luò)端口或者選擇性地不進(jìn)行轉(zhuǎn)發(fā)。該方法還包括在該網(wǎng)絡(luò)設(shè)備處并且在該網(wǎng)絡(luò)分組已經(jīng)在該進(jìn)入端口處被完全接收之后生成表示該網(wǎng)絡(luò)分組的第二數(shù)據(jù)結(jié)構(gòu)。該方法還包括在該網(wǎng)絡(luò)設(shè)備的分組處理器處對該第二數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理。對該第二數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理包括使用該第二數(shù)據(jù)結(jié)構(gòu)針對該網(wǎng)絡(luò)分組作出第二轉(zhuǎn)發(fā)決策以將該網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至一個或多個外出端口。該方法還包括針對一個或多個外出端口中的每一個根據(jù)該第二轉(zhuǎn)發(fā)決策和另外的輸入而選擇性地將該網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至相應(yīng)的外出端口或者選擇性地并不進(jìn)行轉(zhuǎn)發(fā)。在一些實施例中,根據(jù)該第二轉(zhuǎn)發(fā)決策和以下各項中的至少一項而選擇性地將該網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)至相應(yīng)的外出端口或者選擇性地不進(jìn)行轉(zhuǎn)發(fā):(i)相應(yīng)外出端口相對于該進(jìn)入端口的工作速度和(ii)在該一個或多個外出端口中存在已根據(jù)該第一轉(zhuǎn)發(fā)決策向其轉(zhuǎn)發(fā)該網(wǎng)絡(luò)分組的情況下,已根據(jù)該第一轉(zhuǎn)發(fā)決策向該一個或多個外出端口中的哪些外出端口轉(zhuǎn)發(fā)該網(wǎng)絡(luò)分組的指示符。
【附圖說明】
[0012]圖1是根據(jù)一個實施例的本公開的分組處理技術(shù)在其中實施的示例網(wǎng)絡(luò)設(shè)備的框圖。
[0013]圖2是示出根據(jù)一個實施例的有關(guān)圖1的分組處理器的附加細(xì)節(jié)的框圖。
[0014]圖3是根據(jù)一個實施例的用于在網(wǎng)絡(luò)設(shè)備中處理網(wǎng)絡(luò)分組的示例方法的流程圖。
[0015]圖4是根據(jù)一個實施例的用于對表示網(wǎng)絡(luò)分組的第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理并且選擇性地轉(zhuǎn)發(fā)或不轉(zhuǎn)發(fā)該網(wǎng)絡(luò)分組的示例方法的流程圖。
[0016]圖5是根據(jù)一個實施例的用于對表示網(wǎng)絡(luò)分組的第二數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理并且選擇性地轉(zhuǎn)發(fā)或不轉(zhuǎn)發(fā)該網(wǎng)絡(luò)分組的示例方法的流程圖。
[0017]圖6是根據(jù)一個實施例的用于在網(wǎng)絡(luò)設(shè)備中處理網(wǎng)絡(luò)分組的另一種示例方法的流程圖。
【具體實施方式】
[0018]在以下所描述的實施例中,網(wǎng)絡(luò)設(shè)備(例如,網(wǎng)橋、路由器、交換機(jī)或者任意其它適當(dāng)網(wǎng)絡(luò)設(shè)備)在進(jìn)入端口接收分組,將所接收到的分組寫入緩沖器,并且生成表示所接收的分組的描述符的兩個不同實例并對它們進(jìn)行處理。在一個實施例中,在整個分組被寫入緩沖器之前,該描述符的第一實例(或“直通描述符”)被處理以作出第一轉(zhuǎn)發(fā)決策。在一個實施例中,該第一轉(zhuǎn)發(fā)決策通過識別一個或多個目標(biāo)外出端口,并且隨后識別一個或多個目標(biāo)外出端口中的哪些目標(biāo)外出端口適用于直通轉(zhuǎn)發(fā)(如果一個或多個目標(biāo)外出端口中存在適用于直通轉(zhuǎn)發(fā)的目標(biāo)外出端口的話)而作出。在一個實施例中,該網(wǎng)絡(luò)設(shè)備隨后通過開始將(還未被完全緩沖的)分組僅轉(zhuǎn)發(fā)至被認(rèn)為適用于直通轉(zhuǎn)發(fā)的那些目標(biāo)外出端口而采用直通。
[0019]在網(wǎng)絡(luò)設(shè)備已經(jīng)接收/緩沖了整個分組之后,在一個實施例中,描述符的第二實例(或“存儲并轉(zhuǎn)發(fā)描述符”)被處理以作出第二轉(zhuǎn)發(fā)決策。在一個實施例中,該第二轉(zhuǎn)發(fā)決策通過再次識別一個或多個目標(biāo)外出端口并且隨后識別一個或多個目標(biāo)外出端口中的哪些目標(biāo)外出端口不適用于直通轉(zhuǎn)發(fā)(如果一個或多個目標(biāo)外出端口中存在不適用于直通轉(zhuǎn)發(fā)的目標(biāo)外出端口的話)而作出。在一個實施例中,該網(wǎng)絡(luò)設(shè)備隨后通過將完全緩沖的分組僅轉(zhuǎn)發(fā)至并未被認(rèn)為適用于直通轉(zhuǎn)發(fā)的那些目標(biāo)外出端口而采用存儲并轉(zhuǎn)發(fā)類型的轉(zhuǎn)發(fā)。
[0020]在一個實施例中,該網(wǎng)絡(luò)設(shè)備在其無法使用直通將分組轉(zhuǎn)發(fā)至至少一個目標(biāo)外出端口的情況下,僅基于該描述符的第二實例生成和/或處理和/或執(zhí)行動作。在其它實施例和/或場景中,該網(wǎng)絡(luò)設(shè)備無論分組是否仍然需要被轉(zhuǎn)發(fā)至任何目標(biāo)外出端口都基于該描述符的第二實例生成、處理并執(zhí)行動作。在一種這樣的實施例和場景中,該網(wǎng)絡(luò)設(shè)備對該描述符的第一實例進(jìn)行處理以作出第一轉(zhuǎn)發(fā)決策,使用直通將分組轉(zhuǎn)發(fā)至所有目標(biāo)外出端口,并且對該描述符的第二實例進(jìn)行處理以執(zhí)行一個或多個非轉(zhuǎn)發(fā)操作,該非轉(zhuǎn)發(fā)操作確定和/或利用僅能夠在所有分組都能夠在緩沖器中獲取之后才能夠被確認(rèn)(或者才能夠被準(zhǔn)確確認(rèn))的信息。例如,在各個實施例中,該非轉(zhuǎn)發(fā)操作包括確定完整分組的字節(jié)數(shù)的計數(shù)操作,利用完整分組是否包含任何錯誤這一知識的鏡像操作,等等。在一些實施例中,該網(wǎng)絡(luò)設(shè)備針對該描述符的兩個實例都執(zhí)行非轉(zhuǎn)發(fā)操作,但是針對每個實例執(zhí)行該非轉(zhuǎn)發(fā)操作的不同方面。在一種實施例和場景中,例如,計量(metering)操作包括對該描述符的第一實例進(jìn)行處理以執(zhí)行計量檢查(例如,用以確定是否丟棄對應(yīng)的分組)但是并不執(zhí)行計量更新,并且隨后對該描述符的第二實例進(jìn)行處理以執(zhí)行計量更新(如果該分組并未被舍棄/丟棄)但是并不執(zhí)行計量檢查。
[0021]圖1是根據(jù)一個實施例的在其中實施本公開的分組處理技術(shù)的示例網(wǎng)絡(luò)設(shè)備10的高度簡化的框圖。在各個實施例中,網(wǎng)絡(luò)設(shè)備10是網(wǎng)橋設(shè)備、路由器設(shè)備、交換機(jī)設(shè)備,或者被配置為在網(wǎng)絡(luò)環(huán)境內(nèi)進(jìn)行操作的任意其它適當(dāng)?shù)木W(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)設(shè)備10至少包括端口 12、14、16和18。在一些實施例中,端口 12、14、16和18中的每一個是能夠作為進(jìn)入端口或外出端口的雙向端口。在其它實施例中,端口被專用于進(jìn)入端口或外出端口。例如,在一個實施例中,端口 12是專用的進(jìn)入端口而端口 14、16和18則是專用的外出端口。雖然圖1僅示出了四個端口,但是在其它實施例中,網(wǎng)絡(luò)設(shè)備10包括多于四個的端口或少于四個的端口。在各個實施例中,網(wǎng)絡(luò)10被配置為處理單播、組播和/或廣播操作。圖1圖示了其中網(wǎng)絡(luò)設(shè)備10能夠至少進(jìn)行組播和/或廣播操作的實施例,以及其中分組經(jīng)由端口 12進(jìn)入并且以組播或廣播的方式經(jīng)由端口 14、16和18中的每一個外出的場景。注意到,在其它實施例和/或場景中,分組可以相反經(jīng)由一個端口(單播)、經(jīng)由另個端口或者經(jīng)由多于三個的端口外出。
[0022]在圖1的示例實施例中,進(jìn)入端口 12被耦合至接收側(cè)直接存儲器訪問(RxDMA) 20ο Rx DMA 20被配置為將經(jīng)由進(jìn)入端口 12所接收的分組寫入到分組緩沖器24。在一些實施例中,網(wǎng)絡(luò)設(shè)備10包括耦合至并未在圖1中看到的一個或多個相應(yīng)進(jìn)入端口的一個或多個其它Rx DMA。除此之外或可替換地,在一些實施例中,Rx DMA 20是與兩個或更多端口的群組(也就是說,進(jìn)入端口 12以及一個或多個其它端口)相關(guān)聯(lián)的通道化Rx DMA,其中該群組內(nèi)的每個端口與不同的DMA情境(context)相關(guān)聯(lián)。在各個實施例中,分組緩沖器24是隨機(jī)訪問存儲器(RAM)或者任意其它適當(dāng)類型的存儲器。在圖1所示的實施例中,Rx DMA 20還從經(jīng)由進(jìn)入端口 12接收到的分組提取報頭,并且將每個所提取的報頭送至分組處理器30。然而,在其它實施例中,并未在圖1中看到的網(wǎng)絡(luò)設(shè)備10的單獨單元(例如,布置在Rx DMA 20和分組處理器30之間、或者處于分組處理器30的管線或其它架構(gòu)之內(nèi)的單元)提取報頭。在其它的實施例中,Rx DMA 20 (或網(wǎng)絡(luò)設(shè)備10的單獨單元)將每個分組的不同部分(例如,僅分組報頭的一部分)提供
當(dāng)前第1頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1