目錄
一、結(jié)構(gòu)
1.1 輸入端口
1.2 交換結(jié)構(gòu)
1.3 輸出端口
1.4 路由選擇處理器
二、輸入端口處理和基于目的地轉(zhuǎn)發(fā)
三、交換
四、輸出端口處理
五、何時(shí)出現(xiàn)排隊(duì)
5.1 輸入排隊(duì)
5.2 輸出排隊(duì)
一、結(jié)構(gòu)
????????下圖是一個通用路由器體系結(jié)構(gòu)的總體試圖視圖,其主要由輸入端口、交換結(jié)構(gòu)、輸出端口和路由選擇處理器四個組件構(gòu)成。
1.1 輸入端口
????????輸入端口(input?port)執(zhí)行幾項(xiàng)重要功能。它在路由器中執(zhí)行終結(jié)入物理鏈路的物理層功能(輸入端口中最左側(cè)的方框),它還要與位于入鏈路遠(yuǎn)端的數(shù)據(jù)鏈路層交互來執(zhí)行數(shù)據(jù)鏈路層功能(中間的方框),也許更為重要的是,在輸入端口還要執(zhí)行查找的功能(最右側(cè)的方框)。正是在這里,通過在查詢轉(zhuǎn)發(fā)表決定路由器的輸出端口,到達(dá)的分組通過路由器的交換結(jié)構(gòu)轉(zhuǎn)發(fā)到輸出線口??刂品纸M(如攜帶路由選擇協(xié)議信息的分組)從輸入端口轉(zhuǎn)發(fā)到路由選擇處理器。注意這里的"端口"一詞,指的是路由器的物理輸入和輸出接口,這完全不同于與網(wǎng)絡(luò)應(yīng)用程序和套接字相關(guān)聯(lián)的軟件端口。在實(shí)踐中,一臺路由器所支持的端口數(shù)量范圍較大,從企業(yè)路由器具有數(shù)量相對少的端口,到位于某ISP邊緣的路由器具有數(shù)以百計(jì)10Gbps端口(其中入線路的數(shù)量趨于最大)。
1.2 交換結(jié)構(gòu)
????????交換結(jié)構(gòu)將路由器的輸人端口連接到它的輸出端口。這種交換結(jié)構(gòu)完全包含在路由器之中,即它是一個網(wǎng)絡(luò)路由器中的網(wǎng)絡(luò)!
1.3 輸出端口
????????輸出端口存儲從交換結(jié)構(gòu)接收的分組,并通過執(zhí)行必要的鏈路層和物理層功能在輸出鏈路上傳輸這些分組。當(dāng)一條鏈路是雙向的時(shí)(即承載兩個方向的流量),輸出端口通常與該鏈路的輸入端口成對出現(xiàn)在同一線路卡上。
1.4 路由選擇處理器
????????路由選擇處理器執(zhí)行控制平面功能。在傳統(tǒng)的路由器中,它執(zhí)行路由選擇協(xié)議,維護(hù)路由選擇表與關(guān)聯(lián)鏈路狀態(tài)信息,并為該路由器計(jì)算轉(zhuǎn)發(fā)表。在SDN路由器中,路由選擇處理器(在其他活動中)負(fù)責(zé)與遠(yuǎn)程控制器通信,目的是接收由遠(yuǎn)程控制器計(jì)算的轉(zhuǎn)發(fā)表項(xiàng),并在該路由器的輸入端口安裝這些表項(xiàng)。路由選擇處理器還執(zhí)行網(wǎng)絡(luò)管理功能。
二、輸入端口處理和基于目的地轉(zhuǎn)發(fā)
?????????輸入端口的線路端接功能與鏈路層處理實(shí)現(xiàn)了用于各個輸入鏈路的物理層和鏈路層。在輸入端口中執(zhí)行的查找對于路由器運(yùn)行是至關(guān)重要的。正是在這個地方,路由器使用轉(zhuǎn)發(fā)表來查找輸出端口,使得到達(dá)的分組能經(jīng)過交換結(jié)構(gòu)轉(zhuǎn)發(fā)到該輸出端口。轉(zhuǎn)發(fā)表是由路由選擇處理器計(jì)算和更新的(使用路由選擇協(xié)議與其他網(wǎng)絡(luò)路由器中的路由選擇處理器進(jìn)行交互),或者轉(zhuǎn)發(fā)表接收來自遠(yuǎn)程SDN?控制器的內(nèi)容。轉(zhuǎn)發(fā)表從路由選擇處理器經(jīng)過獨(dú)立總線(例如一個PCI總線)復(fù)制到線路卡,使用在每個輸入端口的影子副本,轉(zhuǎn)發(fā)決策能在每個輸入端口本地做出,無須基于每個分組調(diào)用集中式路由選擇處理器,因此避免了集中式處理的瓶頸。
????????假設(shè)轉(zhuǎn)發(fā)表已經(jīng)存在,在概念上講查表是簡單的,硬件邏輯只搜索轉(zhuǎn)發(fā)表查找匹配字段。但是在吉比特速率下,這種查找必須在納秒級執(zhí)行。因此,不僅必須要用硬件執(zhí)行查找, 而且需要對大型查找表使用超出線性搜索的技術(shù)。同時(shí)必須對內(nèi)存訪問時(shí)間給與特別關(guān)注,這導(dǎo)致用嵌入式片上DRAM和更快的SRAM(用作一種DRAM緩存)內(nèi)存來設(shè)計(jì)。實(shí)踐中也經(jīng)常使用三態(tài)內(nèi)容可尋址存儲器(TCAM)來查找。
????????一旦通過查表找到了某個分組的輸出端口,則該分組就能夠發(fā)送進(jìn)入交換結(jié)構(gòu)。在某些設(shè)計(jì)中,如果來自其他輸入端口的分組正在使用該交換結(jié)構(gòu),一個分組可能會在進(jìn)入交換結(jié)構(gòu)時(shí)被暫時(shí)阻塞。因此,一個被阻塞的分組必須在輸入端口處排隊(duì),并等待稍后被及時(shí)調(diào)度以通過交換結(jié)構(gòu)。
三、交換
????????交換結(jié)構(gòu)位于一臺路由器的核心部位,因?yàn)檎峭ㄟ^這種交換結(jié)構(gòu),分組才能實(shí)際地從一個端口交換(轉(zhuǎn)發(fā))到一個輸出端口。常見的交換方式如下:
- 經(jīng)內(nèi)存交換
- 經(jīng)總線交換
- 經(jīng)互聯(lián)網(wǎng)絡(luò)交換
????????關(guān)于路由器的交換結(jié)構(gòu)詳細(xì)內(nèi)容,可以閱讀:
淺談路由器交換結(jié)構(gòu)https://ztzhang.blog.csdn.net/article/details/136078726?spm=1001.2014.3001.5502
四、輸出端口處理
????????與輸入端口類似。
五、何時(shí)出現(xiàn)排隊(duì)
????????在輸入端口和輸出端口處都可以形成分組隊(duì)列。排隊(duì)的位置和程度(或者在輸入端口排隊(duì),或者在輸出端口排隊(duì))將取決于流量負(fù)載、交換結(jié)構(gòu)的相對速率和線路速率。我們現(xiàn)在更為詳細(xì)一點(diǎn)考慮這些隊(duì)列,因?yàn)殡S著這些隊(duì)列的增長,路由器的緩存空間最終將會耗盡,并且當(dāng)無內(nèi)存可用于存儲到達(dá)的分組時(shí)將會出現(xiàn)丟包(packet?loss)。我們說有時(shí)候會說:分組"在網(wǎng)絡(luò)中丟失"或"被路由器丟棄"。正是在一臺路由器的這些隊(duì)列中,這些分組被實(shí)際丟棄或丟失。
????????假定輸入線路速度與輸出線路速度(傳輸速率)是相同的,均為Rline (單位為每秒分組數(shù)),并且有N個輸入端口和N個輸出端口。為進(jìn)一步簡化討論,假設(shè)所有分組具有相同的固定長度,分組以同步的方式到達(dá)輸入端口。這就是說,在任何鏈路發(fā)送分組的時(shí)間等于在任何鏈路接收分組的時(shí)間,在這樣的時(shí)間間隔內(nèi),在一個輸入鏈路上能夠到達(dá)0個或1個分組。定義交換結(jié)構(gòu)傳送速率Rswitch 為從輸入端口到輸出端口能夠移動分組的速率。如果Rswitch 比Rline 快N倍,則在輸入端口處僅會出現(xiàn)微不足道的排隊(duì)。這是因?yàn)榧词乖谧顗那闆r下,所有N條輸入線路都在接收分組,并且所有的分組將被轉(zhuǎn)發(fā)到相同的輸出端口,每批N個分組(每個輸入端口一個分組)也能夠在下一批到達(dá)前通過交換結(jié)構(gòu)。
5.1 輸入排隊(duì)
????????如果交換結(jié)構(gòu)不能快得(相對于輸入線路速度而言)使所有到達(dá)分組無時(shí)延地通過它傳送,會發(fā)生什么情況呢?在這種情況下,在輸入端口也將出現(xiàn)分組排隊(duì),因?yàn)榈竭_(dá)的分組必須加入輸入端口隊(duì)列中,以等待通過交換結(jié)構(gòu)傳送到輸出端口。為了舉例說明這種排隊(duì)的重要后果,考慮縱橫式交換結(jié)構(gòu),并假定:①所有鏈路速度相同;②一個分組能夠以一條輸入鏈路接收一個分組所用的相同的時(shí)間量,從任意一個輸入端口傳送到給定的輸出端口;③分組按照FIFO方式,從一指定輸入隊(duì)列移動到要求的輸出隊(duì)列中。只要其輸出端口,多個分組可以被并行傳送。然而,如果位于兩個輸入隊(duì)列前端的兩個分組是發(fā)往 同一輸出隊(duì)列的,則其中的一個分組將被阻塞,并必須在輸入隊(duì)列中等待,因?yàn)榻粨Q結(jié)構(gòu)每一次只能傳送一個分組到指定端口。
5.2 輸出排隊(duì)
????????我們接下來考慮在交換機(jī)的輸出端口是否會出現(xiàn)排隊(duì)。再次假定Rswitch 比Rline 快N倍,并且到達(dá)N個輸入端口的分組,其目的地是相同的輸出端口。在這種情況下,在向輸出鏈路發(fā)送一個分組的時(shí)間內(nèi),將有N個新分組到達(dá)該輸出端口(N?個輸入端口每個都到達(dá)1個)。因?yàn)檩敵龆丝谠谝粋€單位時(shí)間(該分組的傳輸時(shí)間)?內(nèi)僅能傳輸一個分組,這N個到達(dá)分組必須排隊(duì)(等待)經(jīng)輸出鏈路傳輸。在正好傳輸?N?個分組(這些分組是前面正在排隊(duì)的)之一的時(shí)間中,可能又到達(dá)N個分組,等等。所以,分組隊(duì)列能夠在輸出端口形成,即使交換結(jié)構(gòu)比端口線路速率快N倍。最終,排隊(duì)的分組數(shù)量能夠變得足夠大,耗盡輸出端口的可用內(nèi)存。文章來源:http://www.zghlxwxcb.cn/news/detail-841474.html
????????當(dāng)沒有足夠的內(nèi)存來緩存一個入分組時(shí),就必須做出決定:要么丟棄到達(dá)的分組(采用一種稱為棄尾(drop-tail)?的策略),要么刪除一個或多個已排隊(duì)的分組為新來的分組騰出空間。在某些情況下,在緩存填滿之前便丟棄一個分組(或在其首部加上標(biāo)記)的做法是有利的,這可以向發(fā)送方提供一個擁塞信號。已經(jīng)提出和分析了許多分組去棄與標(biāo)記策略,這些策略統(tǒng)稱為主動隊(duì)列管理(Active?Queue?Manage?ment,AQM)算法。隨機(jī)早期檢測(Random?Early?Detection,?RED)算法是得到最廣泛研究和實(shí)現(xiàn)的AQM?算法之一。文章來源地址http://www.zghlxwxcb.cn/news/detail-841474.html
到了這里,關(guān)于淺談路由器基本結(jié)構(gòu)與工作原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!