日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

不知道路由器工作原理?没关系,来这看看!看不懂你捶我 | 原力计划

發(fā)布時間:2024/8/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不知道路由器工作原理?没关系,来这看看!看不懂你捶我 | 原力计划 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者 |?北海以北沒有小王

頭圖 | CSDN付費下載自視覺中國

來源 | CSDN博客

路由器概述

首先我們先大致了解一下路由器的大致結(jié)構(gòu)以及工作方式。

路由器體系結(jié)構(gòu)

路由器體系結(jié)構(gòu)如下圖:

其中四個重要組成部分依次如下:

1. 接入端口

  • 將一條輸入的物理鏈路與路由器相連接的物理層功能

  • 需要與位于人鏈路遠(yuǎn)端的數(shù)據(jù)鏈路層交互的數(shù)據(jù)鏈路層功能

  • 在輸入端口還要完成查找功能

2. 交換結(jié)構(gòu)

  • 交換結(jié)構(gòu)將路由器的輸入端口與輸出端口相連接

  • 這種交換結(jié)構(gòu)完全包含在路由器中,即它是一個網(wǎng)絡(luò)路由器中的網(wǎng)絡(luò)!

3. 輸出端口

  • 輸出端口存儲從交換結(jié)構(gòu)接收的分組

  • 執(zhí)行必要的鏈路層和物理層功能在輸入鏈路上傳輸這些分組

  • 當(dāng)一條鏈路是雙向的(即承載兩個方向的流量)時,輸出端口通常是與該鏈路的輸入端口在同 一線路卡(一個包含一個或多個輸入端口的印刷電路,它與交換結(jié)構(gòu)相連)上成對出現(xiàn)的 。

4. 路由選擇處理器

  • 執(zhí)行路由選擇協(xié)議

  • 維護(hù)路由選擇表以及連接的鏈路狀態(tài)信息

  • 為路由器計算轉(zhuǎn)發(fā)表

  • 執(zhí)行網(wǎng)絡(luò)管理功能

什么是路由器轉(zhuǎn)發(fā)平面?

  • 一臺路由器的輸人端口、輸出端口和交換結(jié)構(gòu)共同實現(xiàn)了這種轉(zhuǎn)發(fā)功能,并且總是用硬件實現(xiàn),將這種轉(zhuǎn)發(fā)功能總稱為路由器轉(zhuǎn)發(fā)平面

  • 如果 N 個端口結(jié)合在一塊線路卡上(因為實踐中常常這樣做) .數(shù)據(jù)報處理流水線必須以 N 倍速率運(yùn)行,這遠(yuǎn)快過軟件實現(xiàn)的速率

  • 實現(xiàn)方式:轉(zhuǎn)發(fā)平面硬件既能夠使用廠商向己的硬件設(shè)計來實現(xiàn),也能夠使用購買的商用硅芯片(例如英特爾和 Broadcom 公司所出售的)來實現(xiàn) 。

  • 當(dāng)轉(zhuǎn)發(fā)平面以納秒時間尺度運(yùn)行時,路由器的控制功能(即執(zhí)行路由選擇協(xié)議、對上線或下線的連接鏈路進(jìn)行響應(yīng)) 在毫秒或秒時間尺度上運(yùn)行 。

  • 這些路由器控制平面( router conLrol plane) 通常用軟件實現(xiàn)并在路由選擇處理器上執(zhí)行(通常是一種傳統(tǒng)的 CPU) 。

輸入端口

輸入端口的詳細(xì)視圖:

輸入端口的功能:

  • 輸入端口的線路端接功能與鏈路層處理實現(xiàn)了用于各個輸入鏈路的物理層和鏈路層

  • 在這個地方,路由器使用轉(zhuǎn)發(fā)表來查找輸出端口.使得到達(dá)的分組將能經(jīng)過交換結(jié)構(gòu)轉(zhuǎn)發(fā)到該輸出端口 。

轉(zhuǎn)發(fā)表的更新與使用

  • 轉(zhuǎn)發(fā)表是由路由選擇處理器計算和更新的,但轉(zhuǎn)發(fā)表的一份影子副本通常會被存放在每個輸入端口。

  • 轉(zhuǎn)發(fā)表從路由選擇處理器經(jīng)過獨立總線(例如一個 PCI總線)復(fù)制到線路卡

影子副本

  • 有了影子副本,轉(zhuǎn)發(fā)決策能在每個輸入端口本地做出,無須調(diào)用中央路由選擇處理器,因此避免了集中式處理的瓶頸 。

快速查找算法

  • 在概念上查找表是簡單的,但是在實際應(yīng)用中需要在非常短(例如幾納秒)的時間內(nèi)完成查詢,因此除了硬件設(shè)計外還需要一些對大型轉(zhuǎn)發(fā)表使用的超出簡單線性搜索的技術(shù)(快速查找算法的綜述能夠在[ Gupta 2001 , Ru臥 Sanchez 2011 ]中找到)

  • 同時也需要對內(nèi)存訪問時間尤為關(guān)注

    • 嵌人式片上 DRAM

    • 更快的 SRAM (用作一種 DR燦4 緩存)內(nèi)存

  • 三態(tài)內(nèi)容可尋址存儲器 (Tenary Contenl Aclclress Memory 1 TCAM) 也經(jīng)常被用于查找

輸出端口阻塞

  • 一旦分組經(jīng)過查詢確定了輸出端口就能夠發(fā)送進(jìn)入交換結(jié)構(gòu)

  • 在一些設(shè)計中,如果來自其他輸入端口的分組正在使用該交換結(jié)構(gòu),則該分組被阻塞,需要在輸入端口處排隊,等待調(diào)度

輸入端口的動作

  • 查找

  • 通過自己的影子副本確定分組輸出端口

  • 最重要的功能

  • 出現(xiàn)物理層和鏈路層處理

  • 檢查分組的版本號、檢驗和以及壽命字段 ,并且重寫后兩個字段

  • 更新用于網(wǎng)絡(luò)管理的計數(shù)器(如接收到的 IP 數(shù)據(jù)報的數(shù)目) 。

"匹配加動作"的抽象

  • 注意到輸入端口查找IP地址然后發(fā)送該分組進(jìn)人交換結(jié)構(gòu)( “動作” )的步驟是一種更為一般的"匹配加動作"抽象的特定情況。

  • 這種抽象執(zhí)行在許多網(wǎng)絡(luò)設(shè)備中。

    • 在鏈路層交換機(jī)中,除了發(fā)送幀進(jìn)入交換結(jié)構(gòu)去往輸出端口外,還要查找鏈路層目的地址,并采取幾個動作 。

    • 在防火墻中,肯部匹配給定準(zhǔn)則(例如源/目的IP地址和運(yùn)輸層端口號的某種組合)的入分組可能被阻止轉(zhuǎn)發(fā),而防火墻是一種過濾所選擇的人分組的設(shè)備 。

    • 在網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT )中,一個運(yùn)輸層端口號匹配某給定值的人分組,在轉(zhuǎn)發(fā)(動作)前其端口號將被重寫 。

交換結(jié)構(gòu)

交換結(jié)構(gòu)概述

  • 交換結(jié)構(gòu)位于一臺路由器的核心部位 。

  • 正是通過這種交換結(jié)構(gòu),分組才能實際地從一個輸入端口交換(即轉(zhuǎn)發(fā))到一個輸出端口中 。

  • 交換可以用許多方式完成

三種交換技術(shù)

圖例

  • 經(jīng)內(nèi)存交換

    • 最簡單、最早的路由器是傳統(tǒng)的計算機(jī),其間交換工作由CPU完成

    • 輸入與輸出端口的功能就像在傳統(tǒng)操作系統(tǒng)中的1/0 設(shè)備一樣 。

    • 內(nèi)存從輸入端口接收分組并提取首部值,將其緩存到對應(yīng)的輸出端口

    • 一次僅能執(zhí)行一個內(nèi)存讀寫所以一次只能轉(zhuǎn)發(fā)一個分組

    • 現(xiàn)代經(jīng)由內(nèi)存交換的路由器

      • 與早期路由器的一個主要差別是,目的地址的查找和將分組存儲(交換)進(jìn)適當(dāng)?shù)膬?nèi)存存儲位置是由輸入線路卡來處理的 。

      • 在某些方面,經(jīng)內(nèi)存交換的路由器看起來很像共享內(nèi)存的多處理機(jī),用一個線路卡上的處理將分組交換(寫)進(jìn)適當(dāng)?shù)妮敵龆丝诘膬?nèi)存

  • 經(jīng)總線交換

    • 輸入端口經(jīng)一根共享總線將分組直接傳送到輸出端口,不需要路由選擇處理器的干預(yù) 。

    • 交換方式

      • 讓輸入端口為分組預(yù)先計劃一個交換機(jī)內(nèi)部標(biāo)簽(首部) ,指示本地輸出端口,使分組在總線上傳送和傳輸?shù)捷敵龆丝?。

      • 該分組能由所有輸出端口收到,但只有與該標(biāo)簽匹配的端口才能保存該分組 。

      • 然后標(biāo)簽在輸出端口被去除,因為其僅用于交換機(jī)內(nèi)部來跨越總線

    • 在總線交換下,路由器中只能同時進(jìn)行一個分組的轉(zhuǎn)發(fā),因為每個分組都會完全占用整個總線。

    • 但對于運(yùn)行在小型局域網(wǎng)和企業(yè)網(wǎng)巾的路由器來說,通過總線交換通常是足夠的 。

  • 經(jīng)互聯(lián)網(wǎng)絡(luò)交換

    • 經(jīng)互聯(lián)網(wǎng)絡(luò)交換是為了克服單一,共享式總線帶寬限制

    • 縱橫式交換機(jī)就是一種由 2N 條總線組成的互聯(lián)網(wǎng)絡(luò),它連接 N 個輸入端口與 N 個輸出端口

    • 每條垂直的總線在交叉點與每條水平的總線交叉,交叉點通過交換結(jié)構(gòu)控制器(其邏輯是交換結(jié)構(gòu)自身的一部分)能夠在任何時候開啟和閉合 。

    • 當(dāng)某分組到達(dá)端口 A ,需要轉(zhuǎn)發(fā)到端口 Y ,交換機(jī)控制器閉合總線 A 和 Y 交叉部位的交叉點,然后端口 A 在其總線上發(fā)送該分組,該分組僅由總線 Y 安排接收 。

    • 輸出端口不同的分組可以同時轉(zhuǎn)發(fā),但輸出端口相同的分組還是需要等待

輸出端口

輸出端口處理取出存放在輸出端口內(nèi)存巾的分組并將其發(fā)送到輸出鏈路上。

何處出現(xiàn)排隊

什么是排隊?

  • 在輸入端口和輸出端口只要進(jìn)入速度大于處理速度都可能出現(xiàn)排隊的情況。

  • 排隊的位置和程度(或者在輸人端口排隊,或者在輸出端口排隊)將取決于流量負(fù)載、交換結(jié)構(gòu)的相對速率和線路速率。

什么是丟包?

當(dāng)輸出端口出現(xiàn)排隊狀況是,排隊的分組就會進(jìn)入路由器的緩存空間,當(dāng)緩存空間耗盡就會發(fā)生丟包

路由器緩存?

  • 該設(shè)置多少緩存空間?

    • 緩存數(shù)量 ( B ) 應(yīng)當(dāng)?shù)扔谄骄禃r延 (RTI ,比如說 250ms) 乘以鏈路的容量( C) 。

    • 因此,一條具有 250ms RTT 的 10Gbps 鏈路將需要的緩存量等于 B =RTT * C =2. 5Gb 。

  • 緩存滿了怎么辦?

    • 如果沒有足夠的內(nèi)存來緩存一個人分組,那么必須做出決定:要么丟棄到達(dá)的分組(一種稱為棄尾 (drop- tail)的策略) ,要么刪除一個或多個己排隊的分組來為新到的分組騰出空間;

    • 這些統(tǒng)稱為AQM主動隊列管理算法;

    • 隨機(jī)早期檢測。

      • 隨機(jī)旱期檢測 (Random Early Detection , RED) 算法是一種得到最廣泛研究和實現(xiàn)的 AQM 算法 。

      • 當(dāng)平均隊列長度小于最小閾值min,新來的分組就被接納進(jìn)隊列

      • 當(dāng)平均隊列長度大于最大閾值max,新來的分組就會被標(biāo)記或者丟棄

      • 當(dāng)長度在最大與最小中間時,就會以某種概率進(jìn)行接納或者接納

  • 分組調(diào)度程序

    • 輸出端口排隊的后果就是,在輸出端口上的一個分組調(diào)度程序 (packet scheduler) 必須在這些排隊的分組中選出一個來發(fā)送

    • 最簡單的原則:先來先服務(wù)

    • 更復(fù)雜的原則:加權(quán)公平排隊(WFQ)

路由選擇控制平面

  • 前面我們已經(jīng)隱含地假設(shè)路由選擇控制平面全部駐留并運(yùn)行在路由器中的路由選擇處理器上 。

  • 網(wǎng)絡(luò)范圍的路由選擇控制平面因此是分布式的,即不同部分(例如路由選擇算法)執(zhí)行在不同的路由器上并且通過彼此發(fā)送控制報文進(jìn)行交互 。

  • 新型路由器控制平面體系結(jié)構(gòu)其中數(shù)據(jù)平面連同部分控制平面(例如,鏈路狀態(tài)的本地測量/報告,轉(zhuǎn)發(fā)表的安裝和維護(hù))在路由器中實現(xiàn),部分控制平面能夠在路由器外部實現(xiàn)(例如,在能夠執(zhí)行路由計算的集中式服務(wù)器中實現(xiàn)) 。

  • 一個定義良好的 API 規(guī)定了這兩個部分彼此交互和通信的方式 。

  • 這些研究人員爭辯說將軟件控制平面與硬件數(shù)據(jù)平面(具有最少的路由器駐留控制平面)分離,能夠以集中式路由選擇計算代替分布式路由選擇計算,從而簡化路由選擇,通過允許不同的用戶定制的控制平面在快速的硬件數(shù)據(jù)平面上運(yùn)行,能夠進(jìn)行網(wǎng)絡(luò)創(chuàng)新.

版權(quán)聲明:本文為CSDN博主「北海以北沒有小王」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/weixin_45761327/article/details/106087563

推薦閱讀
  • 大數(shù)據(jù)Spark:利用電影觀看記錄數(shù)據(jù),進(jìn)行電影推薦| 原力計劃

  • 我!程序猿!被銀行套路了!

  • 數(shù)據(jù)科學(xué)產(chǎn)業(yè)中哪些架構(gòu)最熱門?本文為你盤點了 5 款!

  • 陸奇:疫情下的創(chuàng)業(yè)者,最不能缺這兩大能力

  • 滴滴技術(shù)總監(jiān)受賄 1000 萬,列入招聘黑名單,互聯(lián)網(wǎng)大廠反腐有多強(qiáng)?

  • 用 Python 訓(xùn)練自己的語音識別系統(tǒng),這波操作穩(wěn)了!

  • 區(qū)塊鏈如何解決食品安全問題?

真香,朕在看了!

總結(jié)

以上是生活随笔為你收集整理的不知道路由器工作原理?没关系,来这看看!看不懂你捶我 | 原力计划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。