TWI730476B - 路由器及路由方法 - Google Patents
路由器及路由方法 Download PDFInfo
- Publication number
- TWI730476B TWI730476B TW108138877A TW108138877A TWI730476B TW I730476 B TWI730476 B TW I730476B TW 108138877 A TW108138877 A TW 108138877A TW 108138877 A TW108138877 A TW 108138877A TW I730476 B TWI730476 B TW I730476B
- Authority
- TW
- Taiwan
- Prior art keywords
- register
- packet
- packets
- input interface
- router
- Prior art date
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申請揭露一種路由器,分別通過一第一封包輸出介面和一第二封包輸出介面耦接至一第一裝置和一第二裝置,該路由器包括一第一封包輸入介面、一第二封包輸入介面、一第一暫存器、一第二暫存器、一控制電路以及一交換器模組,該交換器模組包括一控制埠、一第一封包輸出介面以及一第二封包輸出介面。本申請還揭露一種路由方法,上述的路由器和路由方法能夠減少閒置時間,提升服務質量。
Description
本申請內容係關於路由器及路由方法,尤指一種利用暫存器來進行流量控制的路由器及路由方法。
路由器的應用包含透過無線網路使區域網路連接上其他無線網路裝置,隨著無線網路的速度愈來愈快,從其他無線網路裝置往區域網路的下行封包也越來越容易遇到堵塞的情況。一旦發生堵塞,與路由器連接的所有網路裝置的下行封包可能都會連帶堵塞,導致整個路由器的效能降低。
因此,如何改善流量控制以提升路由器的服務質量,已成為本領域重要的課題之一。
本申請內容某些實施方式提供一種路由器,耦接至一第一裝置和一第二裝置,該路由器包括:一第一封包輸入介面;一第二封包輸入介面;一第一暫存器,用來暫存來自該第一封包輸入介面的多個封包;一第二暫存器,用來暫存來自該第二封包輸入介面的多個封包;一控制電路,用來選擇性地讀取該第一暫存器或該第二暫存器以產生對應該第一暫存器或該第二暫存器的多個封包;以及一交換器模組,該交換器模組包括:一第一封包輸出介面,耦接至該第一裝置;一第二封包輸出介面,耦接至該第二裝置;以及一控制埠,用來接收該控制電路產生的該多個封包,使該交換器模組產生對應該第一暫存器或該第二暫存器的多個輸出封包至該第一封包輸出介面或該第二封包輸出介面;其中,當該交換器模組依據該控制電路產生的該多個封包產生對應該第一暫存器的該多個輸出封包至該第一封包輸出介面,且該控制埠收到一流量控制信號以暫停来自該第一封包輸入介面的傳輸時,該控制埠產生一暫存器暫停信號至該控制電路,以指示該控制電路暫停讀取該第一暫存器。
本申請內容某些實施方式提供一種路由方法,用來將一第一封包輸入介面或一第二封包輸入介面通過一第一封包輸出介面和一第二封包輸出介面耦接至一第一裝置和一第二裝置,該路由方法包括:暫存來自該第一封包輸入介面的多個封包於一第一暫存器;暫存來自該第二封包輸入介面的多個封包於一第二暫存器;選擇性地讀取該第一暫存器或該第二暫存器以產生對應該第一暫存器或該第二暫存器的多個封包;接收該多個封包,並產生對應該第一暫存器或該第二暫存器的多個輸出封包至該第一封包輸出介面或該第二封包輸出介面;以及當依據該多個封包產生對應該第一暫存器的該多個輸出封包至該第一封包輸出介面,且收到一流量控制信號以暫停来自該第一封包輸入介面的傳輸時,產生一暫存器暫停信號以暫停讀取該第一暫存器。
本申請的路由器和路由方法能夠減少閒置時間,提升服務質量。
圖1為本申請的路由器的第一實施例的示意圖。圖1的路由器100包括多個封包輸入介面102_1~102_3與多個封包輸出介面116_1~116_3。在本實施例中,封包輸入介面102_1包括處理器,用來指定多個封包D1經過匯流排104往封包輸出介面116_1傳送。裝置101_1以及裝置101_2分別利用無線網路耦接至封包輸入介面102_2和封包輸入介面102_3,即封包輸入介面102_2和封包輸入介面102_3為無線網路介面,例如包含無線網路接收器;裝置117_1、裝置117_2以及裝置117_3分別利用有線網路耦接至封包輸出介面116_1、封包輸出介面116_2和封包輸出介面116_3,即封包輸出介面116_1、封包輸出介面116_2和封包輸出介面116_3為有線網路介面,例如包含有線網路接收器。
具體來說,路由器100的封包輸入介面102_2將源自裝置101_1的多個封包D2經過匯流排104往封包輸出介面116_2傳送,或封包輸入介面102_2可將多個封包D2暫存在記憶體106,之後再經過匯流排104往封包輸出介面116_2傳送。路由器100的封包輸入介面102_3將源自裝置101_2的多個封包經過匯流排104往封包輸出介面116_3傳送,或封包輸入介面102_3可將多個封包D2暫存在記憶體106,之後再經過匯流排104往封包輸出介面116_3傳送。
應注意的是,本申請並不對封包輸入介面102_1~102_3與封包輸出介面116_1~116_3的個數或介面類型多加限制,例如封包輸入介面102_1~102_3可以任意以處理器、無線網路介面、有線網路介面或其他輸入/輸出介面置換;封包輸出介面116_1~116_3可以任意以無線網路介面、有線網路介面或其他輸入/輸出介面置換。
多個封包D1、D2和D3經過匯流排104後分別暫存在暫存器108_1、108_2和108_3中,在本實施例中,暫存器108_1、108_2和108_3為先進先出記憶體。控制電路110會選擇性地讀取暫存器108_1、108_2或108_3,並將一暫存器資訊RID連同從暫存器108_1、108_2或108_3讀取出的多個封包D1、D2或D3傳送到控制埠114,暫存器資訊RID用來指示多個封包D1、D2或D3是來自暫存器108_1、108_2或108_3中的哪一個。多個封包D1、D2或D3會進入交換器模組112的控制埠114中,交換器模組112會依據多個封包D1、D2或D3來產生對應暫存器108_1、108_2或108_3的多個輸出封包D1'、D2'或D3',並依據多個封包D1、D2或D3的內容來決定要發送至封包輸出介面116_1~116_3中的哪一個。
圖2~圖4為依據圖1的路由器的路由方法的實施例的示意圖。在圖2中,多個封包D1、D2和D3經過匯流排104後分別暫存在暫存器108_1、108_2和108_3中,在本實施例中,控制電路110選擇讀取暫存器108_1,並產生對應暫存器108_1的暫存器資訊RID。交換器模組112依據多個封包D1產生對應暫存器108_1的多個輸出封包D1'至封包輸出介面116_1並傳送到裝置117_1。當交換器模組112或裝置117_1想要暫停接收多個輸出封包D1'時,交換器模組112或裝置117_1會反饋一流量控制信號FC至控制埠114以暫停控制埠114往封包輸出介面116_1的傳輸。接著,如圖3所示,控制埠114收到流量控制信號FC後,會依據暫存器資訊RID產生一暫存器暫停信號PS至控制電路110,以指示控制電路110暫停讀取暫存器108_1。
控制電路110收到暫存器暫停信號PS後,便會知道封包輸出介面116_1需要暫停接受來自暫存器108_1,控制電路110可依據一預設優先規則來決定接下來的動作。例如,控制電路110可以決定選擇讀取暫存器108_1以外優先度最高的暫存器;或是控制電路110可以隨機地選擇讀取暫存器108_1以外的任一暫存器;或是控制電路110可以決定無論如何都要等待暫存器108_1中的多個封包D1傳送完畢之後,才會轉而讀取暫存器108_1以外的暫存器。圖4為控制電路110決定讀取暫存器108_2的示意圖。
由圖2~圖4的路由方法可知,由於控制電路110和交換器模組112之間僅有一個通道,但交換器模組112卻有多個封包輸出介面116_1~116_3,因此路由器100在收到流量控制信號FC後,雖然停止傳送輸出封包D1'給封包輸出介面116_1,但可以藉由控制電路110對暫存器108_1~108_3的個別流量控制,而實質地把控制電路110和交換器模組112之間的唯一通道讓給其他的封包輸出介面116_2或116_3,減少閒置時間,因此可提升路由器100的服務質量。
在某些實施例中,可以對圖1的路由器100的暫存器108_1~108_3的配置方式進行變化。圖5為本申請的路由器的第二實施例的示意圖。圖5的路由器200和路由器100的差異在於,路由器200的暫存器208_1~208_5的配置方式和路由器100的暫存器108_1~108_3的配置方式不同,且路由器200示例性地增加了一個封包輸出介面116_4以配合暫存器208_1~208_5。
暫存器208_1用來暫存來自封包輸入介面102_1中具有一第一類型的多個封包D1_1;暫存器208_2用來暫存來自封包輸入介面102_1中具有一第二類型的多個封包D1_2和來自封包輸入介面102_2中具有該第二類型的多個封包D2_1;暫存器208_3用來暫存來自封包輸入介面102_2中具有一第三類型的多個封包D2_2;暫存器208_4和暫存器208_5皆可用來暫存來自封包輸入介面102_3的多個封包D3。其中該第一類型、該第二類型和該第三類型彼此不相同。
具體來說,暫存器208_1~208_3是依據封包種類來暫存封包,藉此可依據該第一類型、該第二類型和該第三類型的封包的不同特性來設定該預設優先規則,以進一步地提升服務質量。而暫存器208_4~208_5則是共同用來暫存封包輸入介面102_3的封包,也就是一個封包輸入介面可以搭配一個以上的暫存器。
暫存器208_1~208_5對應的封包輸出介面可以部分/全部不同,舉例來說,在本實施例中,暫存器208_1中的多個封包D1_1對應輸出封包D1_1'並傳送至封包輸出介面116_1;暫存器208_2中的多個封包D1_2和D2_1對應輸出封包D1_2'和D2_1'並傳送至封包輸出介面116_2;暫存器208_3中的多個封包D2_2對應輸出封包D2_2'並傳送至封包輸出介面116_3;暫存器208_4和暫存器208_5中的多個封包D3皆對應輸出封包D3'並傳送至封包輸出介面116_4。
路由器200的其他部分和路由器100大致相同,也就是路由器200的路由方法除了暫存器208_1~208_5和對應的封包輸出介面116_1~116_4的變化以外,其餘部分和路由器100的路由方法大致相同。
本申請的路由器100/200可針對暫存器108_1~108_3/208_1~208_5個別進行流量控制,而非如習知的作法僅能在封包輸出介面堵塞時暫停所有暫存器的讀取。
本申請可利用任何適當的形式來實現,包含硬體、軟體、韌體或是以上的任意組合。至少部分本申請可選擇性地被實現為運行在一個或多個資料處理器及/或數位訊號處理器或可配置的模塊元件(例如FPGA)上的電腦軟體。
上文的敘述簡要地提出了本申請某些實施例之特徵,而使得本申請所屬技術領域具有通常知識者能夠更全面地理解本申請內容的多種態樣。本申請所屬技術領域具有通常知識者當可明瞭,其可輕易地利用本申請內容作為基礎,來設計或更動其他製程與結構,以實現與此處該之實施方式相同的目的和/或達到相同的優點。本申請所屬技術領域具有通常知識者應當明白,這些均等的實施方式仍屬於本申請內容之精神與範圍,且其可進行各種變更、替代與更動,而不會悖離本申請內容之精神與範圍。
100、200 | 路由器 |
104 | 匯流排 |
106 | 記憶體 |
110 | 控制電路 |
112 | 交換器模組 |
114 | 控制埠 |
102_1~102_3 | 封包輸入介面 |
101_1、101_2、117_1~117_4 | 裝置 |
116_1~116_4 | 封包輸出介面 |
108_1~108_3、208_1~208_5 | 暫存器 |
D1、D2、D3、D1_1、D1_2、D2_1、D2_2 | 多個封包 |
RID | 暫存器資訊 |
D1'、D2'、D3'、D1_1'、D1_2'、D2_1'、D2_2' | 多個輸出封包 |
FC | 流量控制信號 |
PS | 暫存器暫停信號 |
在閱讀了下文實施方式以及附隨圖式時,能夠最佳地理解本揭露的多種態樣。應注意到,根據本領域的標準作業習慣,圖中的各種特徵並未依比例繪製。事實上,為了能夠清楚地進行描述,可能會刻意地放大或縮小某些特徵的尺寸。
圖1為本申請的路由器的第一實施例的示意圖。
圖2~圖4為依據圖1的路由器的路由方法的實施例的示意圖。
圖5為本申請的路由器的第二實施例的示意圖。
100 | 路由器 |
104 | 匯流排 |
106 | 記憶體 |
110 | 控制電路 |
112 | 交換器模組 |
114 | 控制埠 |
102_1~102_3 | 封包輸入介面 |
108_1~108_3 | 暫存器 |
101_1、101_2、117_1~117_3 | 裝置 |
116_1~116_3 | 封包輸出介面 |
D1、D2、D3 | 多個封包 |
RID | 暫存器資訊 |
D1'、D2'、D3' | 多個輸出封包 |
FC | 流量控制信號 |
PS | 暫存器暫停信號 |
Claims (9)
- 一種路由器,耦接至一第一裝置和一第二裝置,該路由器包括:一第一封包輸入介面;一第二封包輸入介面;一第一暫存器,用來暫存來自該第一封包輸入介面的多個封包;一第二暫存器,用來暫存來自該第二封包輸入介面的多個封包;一控制電路,用來選擇性地讀取該第一暫存器或該第二暫存器以產生對應該第一暫存器或該第二暫存器的多個封包;以及一交換器模組,該交換器模組包括:一第一封包輸出介面,耦接至該第一裝置;一第二封包輸出介面,耦接至該第二裝置;以及一控制埠,用來接收該控制電路產生的該多個封包,使該交換器模組產生對應該第一暫存器或該第二暫存器的多個輸出封包至該第一封包輸出介面或該第二封包輸出介面;其中,當該交換器模組依據該控制電路產生的該多個封包產生對應該第一暫存器的該多個輸出封包至該第一封包輸出介面,且該控制埠收到一流量控制信號以暫停来自該第一封包輸入介面的傳輸時,該控制埠產生一暫存器暫停信號至該控制電路,以指示該控制電路暫停讀取該第一暫存器,當該控制電路依據該暫存器暫停信號而暫停讀取該第一暫存器時,該控制電路改為讀取該第二暫存器。
- 如請求項1的路由器,其中該控制電路將一暫存器資訊連同從該第一 暫存器或該第二暫存器讀取出的該多個封包傳送到該控制埠,其中該暫存器資訊用來指示從該第一暫存器或該第二暫存器讀取出的該多個封包是來自該第一暫存器或該第二暫存器中的哪一個。
- 如請求項2的路由器,其中該交換器模組依據該多個封包的內容來決定將該輸出封包轉發至該第一封包輸出介面或該第二封包輸出介面。
- 如請求項1的路由器,其中,該流量控制信號是由該交換器模組或該第一裝置反饋至該控制埠以暫停来自該第一封包輸入介面的傳輸。
- 如請求項1的路由器,另包括:一第三封包輸入介面;以及一第三暫存器,用來暫存來自該第三封包輸入介面的多個封包;其中該控制電路進一步用來選擇性地讀取該第一暫存器、該第二暫存器或該第三暫存器以產生對應該第一暫存器、該第二暫存器或該第三暫存器的該多個封包,且當該控制電路依據該暫存器暫停信號而暫停讀取該第一暫存器時,該控制電路依據一預設優先規則來決定讀取該第二暫存器或該第三暫存器。
- 如請求項1的路由器,另包括:一第四暫存器,用來暫存來自該第一封包輸入介面的該多個封包;其中該第一暫存器中暫存的來自該第一封包輸入介面的該多個封包具有第一類型,且該第四暫存器中暫存的來自該第一封包輸入介面的該多 個封包具有第二類型,該第二類型不同於該第一類型。
- 如請求項6的路由器,其中該第四暫存器另用來暫存來自該第二封包輸入介面的該多個封包,其中該第二暫存器中暫存的來自該第二封包輸入介面的該多個封包具有第三類型,且該第四暫存器中暫存的來自該第二封包輸入介面的該多個封包具有該第二類型,該第三類型不同於該第一類型。
- 如請求項1的路由器,其中該第一封包輸入介面或該第二封包輸入介面為無線網路介面或有線網路介面。
- 一種路由方法,用來將一第一封包輸入介面或一第二封包輸入介面通過一第一封包輸出介面和一第二封包輸出介面耦接至一第一裝置和一第二裝置,該路由方法包括:暫存來自該第一封包輸入介面的多個封包於一第一暫存器;暫存來自該第二封包輸入介面的多個封包於一第二暫存器;選擇性地讀取該第一暫存器或該第二暫存器以產生對應該第一暫存器或該第二暫存器的多個封包;接收該多個封包,並產生對應該第一暫存器或該第二暫存器的多個輸出封包至該第一封包輸出介面或該第二封包輸出介面;以及當依據該多個封包產生對應該第一暫存器的該多個輸出封包至該第一封包輸出介面,且收到一流量控制信號以暫停来自該第一封包輸入介面的傳輸時,產生一暫存器暫停信號以暫停讀取該第一暫存器,當該控制電 路依據該暫存器暫停信號而暫停讀取該第一暫存器時,該控制電路改為讀取該第二暫存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/745,017 US11206568B2 (en) | 2019-09-19 | 2020-01-16 | Router and routing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108133846 | 2019-09-19 | ||
TW108133846 | 2019-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202114382A TW202114382A (zh) | 2021-04-01 |
TWI730476B true TWI730476B (zh) | 2021-06-11 |
Family
ID=76604284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108138877A TWI730476B (zh) | 2019-09-19 | 2019-10-28 | 路由器及路由方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI730476B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030016628A1 (en) * | 2001-07-23 | 2003-01-23 | Broadcom Corporation | Flow based congestion control |
WO2013081511A1 (en) * | 2011-11-29 | 2013-06-06 | Telefonaktiebolaget L M Ericsson (Publ) | Flow based packet manipulation congestion control |
WO2016086385A1 (zh) * | 2014-12-04 | 2016-06-09 | 华为技术有限公司 | 一种拥塞控制的方法、设备和系统 |
-
2019
- 2019-10-28 TW TW108138877A patent/TWI730476B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030016628A1 (en) * | 2001-07-23 | 2003-01-23 | Broadcom Corporation | Flow based congestion control |
US8565240B2 (en) * | 2001-07-23 | 2013-10-22 | Broadcom Corporation | Flow based congestion control |
WO2013081511A1 (en) * | 2011-11-29 | 2013-06-06 | Telefonaktiebolaget L M Ericsson (Publ) | Flow based packet manipulation congestion control |
WO2016086385A1 (zh) * | 2014-12-04 | 2016-06-09 | 华为技术有限公司 | 一种拥塞控制的方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
TW202114382A (zh) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12058033B2 (en) | Method and system for providing network ingress fairness between applications | |
US20220070098A1 (en) | Packet Control Method And Network Apparatus | |
JP5335892B2 (ja) | パケット交換オンチップ相互接続ネットワークの高速仮想チャネル | |
JP5895202B2 (ja) | 中継器、中継器の制御方法、およびコンピュータプログラム | |
US10749811B2 (en) | Interface virtualization and fast path for Network on Chip | |
US20170063609A1 (en) | Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip | |
CN110995598B (zh) | 一种变长报文数据处理方法和调度装置 | |
CN112084027B (zh) | 片上网络数据传输方法、装置、片上网络、设备及介质 | |
US9185026B2 (en) | Tagging and synchronization for fairness in NOC interconnects | |
CN102047619A (zh) | 用于对异常分组的慢路径处理进行动态速率限制的方法、系统和计算机可读介质 | |
JP2008166888A (ja) | スイッチにおける優先度帯域制御方法 | |
US11258723B2 (en) | Data processing method and apparatus, and switching device using footprint queues | |
US8520675B1 (en) | System and method for efficient packet replication | |
WO2022110387A1 (zh) | 路由装置及片上网络的路由设备 | |
US7333489B1 (en) | System and method for storing frame header data | |
WO2021169299A1 (zh) | 用户带宽控制方法、装置、计算机设备及存储介质 | |
TWI730476B (zh) | 路由器及路由方法 | |
JP2009177256A (ja) | パケットスイッチ装置およびパケットスイッチ方法 | |
JP2012205048A (ja) | パケット伝送装置、パケット伝送方法、及びコンピュータプログラム | |
CN112565096B (zh) | 路由器及路由方法 | |
JP2013005080A (ja) | ルータおよび転送方法 | |
US7698454B1 (en) | Interfacing with streams of differing speeds | |
WO2012066628A1 (ja) | データ配送方法、データ配送プログラム、および、データ配送装置 | |
JP5949312B2 (ja) | 並列計算機システム、データ転送装置及び並列計算機システムの制御方法 | |
CN117992371A (zh) | 用于共享数据路径的分布式仲裁 |