文章目錄
- 網路層
- 網路層的設計問題
- 路由演算法
- 擁塞控制演算法
- 服務質量
- 網路互聯
- Internet 的網路層
網路層
網路層的設計問題
資料報子網(datagram network):網路層提供無連接的服務,所有的資料包都被獨立地注入到網路中,并且每個資料包獨立路由,不需要提前建立任何設定,
虛電路子網(virtual-circuit network):網路層提供面向連接的服務,在發送資料包之前,必須首先建立起一條從源路由到目標路由器之間的路徑,
路由演算法
路由演算法(routing algorithm):網路層軟體的一部分,它負責確定一個入境資料包應該被發送到哪一條輸出線路上,
最優化原則(optimality principle):如果路由器 J 在從路由器 I 到路由器 K 的最優路徑上,那么從 J 到 K 的最優路徑也必定遵循同樣的路由,
匯集樹(sink tree):作為最優化原則的一個直接結果,從所有的源到一個指定目標的最優路徑的集合構成了一棵以目標節點為根的樹,
最短路徑路由:每一個節點都標出了從源節點沿著已知的最佳路徑到達本節點的距離,初始時,所有的路徑都不知道,因此所有節點都被標記為無限遠,隨著演算法的不斷進行,陸續有一些路徑被找到,于是節點的標記可能發生變化,以便反映出更好的路徑,每個標記可能是暫時時,也可能是永久的,初始時,所有的標記都是暫時的,當發現一個標記代表了從源節點到該節點的最短可能路徑,該標記就變成永久,以后不再改變,
距離矢量路由:每個路由器維護一張表(即一個矢量),表中列出了當前已知的到每個目標的最佳距離,以及所使用的鏈路,這些表通過鄰居之間相互交換資訊而不斷被更新,最終每個路由器都了解到達每個目的地的最佳鏈路,
無窮計算問題:當某個路由器 A 停機或者與其他所有路由器之間的鏈路斷了,因為無法收到來自 A 的任何資訊,其他路由器在進行資訊交換時會不斷增大到 A 的距離,
鏈路狀態路由:
每一個路由器必須完成以下的事情:
- 發現它的鄰居節點,并了解其網路地址,
- 設定到每個鄰居節點的距離或者成本度量值,
- 構造一個包含所有剛付訓知的鏈路資訊包,
- 將這個包發送給所有其他的路由器,并接收來自所有其他路由器的資訊包,
- 計算出到每個其他路由器的最短路徑,
距離矢量路由和鏈路狀態路由的比較:相比距離矢量演算法,鏈路狀態路由演算法需要更多的記憶體和計算,對于一個具有 n 個路由器的網路,每個路由器有 k 個鄰居,那么,用于存盤輸入資料所要求的記憶體與 kn 成正比,這至少與列出全部目的地的路由表一樣大,而且,計算時間的增長快過 kn,即使采用最有效的資料結構,在大型網路中運行這個演算法依然是個問題,不過,在許多實際場合,鏈路狀態路由演算法作業得很好,因為它沒有慢收斂問題,
層次路由:路由器被劃分成區域,每個路由器知道如何將資料包路由到自己所在區域內的目標地址,但是對于其他區域的內部結構毫不知情,
廣播路由:同時給全部目標地址發送資料包,
移動主機路由:使人們有可能利用固定的家鄉地址來發送資料包,無論他們在哪里都能有效地把資料包送到,
擁塞控制演算法
隨機早期檢測(RED,Random Early Detection):為了確定何時開始丟棄資料包,路由器要維護一個運行佇列長度的平均值,當某條鏈路上的平均佇列長度超過某個閾值時,該鏈路就被認為即將擁塞,因此路由器隨機丟棄一小部分資料包,
服務質量
資源預留協議(RSVP):主要功能是預留資源,發送資料則需要使用其他協議,它允許多個發送方給多個接收組傳送資料,也允許接收方自由地切換頻道,并且在消除擁塞的同時優化帶寬的使用,
緩沖:當一個資料包抵達時,它通常被保留在路由器的緩沖區直到可以從選擇的輸出線路上發送出去,
抖動(jitter):延遲的變化(即標準方差)或者資料包到達時間的變化,
漏桶演算法:每個主機在連接到網路的介面中包含一個漏桶,為了向網路發送資料包,必須有可能往漏桶中灌入更多的水,如果漏桶滿時來了一個資料包,那么該資料包必須排入佇列等漏桶空出來時再接納,或者被丟棄,
令牌桶:把網路介面想象成一個漏桶,正在往里灌水,為了發送一個資料包,我們必須能夠從桶內掏出水或令牌,而不是往桶內注水,桶內只可累積固定數量的令牌,不可能有更多數量的令牌,如果桶是空的,我們必須等更多的令牌到達才能發送另一個資料包,
網路互聯
隧道技術應用場景:源主機和目標主機所在網路的型別完全相同,但它們中間卻隔著一個不同型別的網路,
Internet 的網路層
IPv4 協議:每個 IP 資料報包含兩部分,一個頭和一個正文,正文部分也稱之為有效凈荷,頭由一個 20 位元組的定長部分和一個可選的變長部分組成,
IP 地址:是 IP 協議提供的一種統一的地址格式,它為互聯網上的每一個網路和每一臺主機分配一個邏輯地址,以此來屏蔽物理地址的差異,
子網:分隔一個大型網路得到的一系列結果網路,比如以太網,
子網掩碼:因為前綴長度僅從 IP 地址無法推斷出來,路由協議必須把前綴攜帶給路由器,前綴長度相當于網路部分中 1 的二進制掩碼,它可以與一個 IP 地址進行 AND 操作,以便提取出該 IP 地址的網路部分,
子網劃分:在內部將一個網路塊分成幾個部分供多個內部網路使用,但對外部世界仍然像單個網路一樣,
無類域間路由(CIDR):當一個資料包到達時,路由器掃描路由表以便確定目的地是否在前綴的地址塊內,有可能多個具有不同前綴的表項得以匹配,在這種情況下,使用具有最長前綴的表項,
路由聚合技術:把多個小前綴的地址塊合并成一個大前綴的地址塊,
網路地址轉換(NAT):ISP 為每個家庭或公司分配一個或少量 IP 地址,用這個 IP 地址來傳輸 Internet 流量,在客戶網路內部,每臺計算機有唯一的 IP 地址,該地址主要用來路由內部流量,然而,當一個資料包需要離開客戶網路,發向其他 ISP 時,它必須執行一個地址轉換,把唯一的內部 IP 地址轉換成那個共享的公共 IP 地址,
Internet 控制訊息協議(ICMP):當路由器在處理一個資料包的程序中發生了意外,可通過該協議向資料包的源端報告有關事件,
地址決議協議(ARP)作業程序:
- 首先,每個主機都會在自己的 ARP 緩沖區中建立一個 ARP 串列,以表示 IP 地址和 MAC 地址之間的對應關系,
- 當源主機要發送資料時,首先檢查 ARP 串列中是否有對應 IP 地址的目的主機的 MAC 地址,如果有,則直接發送資料,如果沒有,就向本網段的所有主機發送 ARP 資料包,該資料包包括的內容有:源主機的 IP 地址、源主機 MAC 地址、目的主機 IP 地址,
- 當本網路的所有主機收到該 ARP 資料包時,首先檢查資料包中的 IP 地址是否是自己的 IP 地址,如果不是,則忽略該資料包,如果是,則首先從資料包中取出源主機的 IP 和 MAC 地址寫入到 ARP 串列中,如果已經存在,則覆寫,然后將自己的 MAC 地址寫入 ARP 回應包中,告訴源主機自己是它想要找的 MAC 地址,
- 源主機收到 ARP 回應包后,將目的主機的 IP 和 MAC 地址寫入 ARP 串列,并利用此資訊發送資料,如果源主機一直沒有收到 ARP 回應資料包,表示 ARP 查詢失敗,
動態主機配置協議(DHCP):每個網路必須有一個 DHCP 服務器負責地址配置,當計算機啟動時,它有一個嵌入在 NIC 中的內置以太網地址或其他鏈路層地址,但沒有 IP 地址,像 ARP 一樣,該計算機在自己的網路上廣播一個報文,請求 IP 地址,當 DHCP 服務器收到請求,它就為該主機分配一個空閑的 IP 地址并為它指定一段固定的時間,在時間到達前,主機必須請求 DHCP 續訂,如果沒有提出續訂請求或請求被拒絕,主機或許不能使用以前分配給它的 IP 地址,
最短路徑開放優先(OSPF):一種內部網關路由協議,用一個圖來表示實際的網路,然后每個路由器使用鏈路狀態方法計算從自身出發到所有其他節點的最短路徑,有可能協議會發現多個同樣短的路徑,在這種情況下,OSPF 記住最短路徑集合,并在報文轉發期間把流量分攤到這些路徑上,
外部網關路由協議(BGP):是一個在自治系統網路中兩個鄰近的網關主機間交換路由資訊的協議,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/401514.html
標籤:其他
