网络互联
WilsonLiu’s blog 首發地址
網絡互聯 第四章
我們已經見到如何用點到點鏈路,共享介質 和 交換機 建立單一的網絡。 網絡互聯需要強調兩個重要的問題:異構性(heterogeneity)和可擴展性(scale)。
異構性問題指的是一種類型網絡上的用戶希望能夠同其他類型網絡上的用戶通信。
可擴展性問題因特網規??焖贁U張,使得面臨許多挑戰,其中之一是路由(routing):你如何在有幾百萬個到幾十億個節點的網絡中去找到一條高效的路徑。與此密切相關的是編址(addressing),即給所有節點疼合適標識符的任務。
4.1 簡單的網絡互聯(IP)
4.1.1 什么是互聯網
我們用小寫i的internetwork(互聯網)這個詞或僅用internet指可提供某種主機到主機的分組傳送服務的相互連接的網絡的任意集合。
4.1.2 服務模型
可以將IP服務模型看成兩部分:一是編址方案,提供標識互聯網中所有主機的方法;二是傳送數據的數據報(無連接的)模型。這種服務模型有時也稱為盡力服務(best-effort)模型,這是因為盡管IP盡力傳送數據報,但并不提供保證。
數據報傳送
數據報傳送是IP的基礎。數據報詳情請見3.1.1。
分組格式
在沒有其他選項的時候,首部通常是5個字長(20個字節)。首部信息中有一個16位的length指定數據報的字節數目,故而IP數據報最大尺寸為65535個字節。然而IP運行的物理網絡可能不支持如此長的分組,因此IP支持分段和重組。
分段和重組
每個網絡類型都有一個最大傳輸單元(Maximum Transmission Unit,MTU),這是一幀能夠攜帶的最大數據報。 通常,當路由器接到一個想要在一個網絡上轉發的數據報,而這個網絡的MTU比所接受到的數據報小時,在路由器上將進行分段,為了在目的主機上可以重組,所以都標識符(Ident)字段上攜帶同樣的標識符。這個標識符由發送主機選擇,并且對于所有可能在某個合理時段內從這個源主機到達目的主機的數據報來說是唯一的。
4.1.3 全局地址
以太網地址也是全局唯一的,但是以太網地址是扁平的flat,也就是說他們沒有結構,且幾乎不對路由協議提供線索。 相比之下IP地址是分層次的hierarchical,即他們由對應于互聯網某種層次結構的幾個部分構成。IP地址分為兩個部分:網絡部分和主機部分。 更確切的說IP地址屬于接口而不是屬于主機。
4.1.4 IP中的數據報轉發
轉發數據報按一下方法處理:一個數據報從源主機發往目的主機,沿途可能經過多個路由器。任何一個節點,無論是主機還是路由器,首先試圖確定自己是否與目的主機連接在同一個物理網絡上(通過比較目的地址的網絡部分和它的每一個網絡接口地址的網絡部分)。
網橋,交換機和路由器的區別: 他們都是從一條鏈路把消息轉發到另一條鏈路上。 人們根據分層對他們做出區分:網橋是鏈路層的節點(他們在鏈路間轉發幀,實現可擴展的LAN),交換機是網絡層節點(他們在鏈路間轉發分組實現分組交換網絡),路由器是互聯網層節點(他們在網絡之間轉發數據報實現互聯網)。 交換機和路由器有什么區別:關鍵區別是轉發包的種類,路由器轉發IP數據報,而以太網幀或者ATM信元是用交換機轉發的。 交換機構造的ATM網絡和路由器構造的因特網之間有一個很大的區別就是,因特網可以適應異構性,而ATM只能包含同構鏈路。
4.1.5 地址轉換 ARP
上一節,我們討論了如何使IP數據報到達正確的物理網絡,但是掩飾了一個數據報如何到達該網絡上某一個特定主機或路由器的問題。主要問題是IP數據報包含IP地址,但是你想要傳送到的主機或者路由器上的物理接口硬件只理解特定網絡的編址方案。這樣,我們就需要將IP地址轉換為這個網絡所能理解的鏈路層地址。(如一個48位的以太網地址)
Address Resolution Protocol,ARP
ARP的目標是使網絡上每個主機都簡歷一張IP地址到鏈路層地址間的映射表。 例:如果一個主機要發送一個數據報給已知為同一網絡內的另一個主機(或路由器)(即發送和接收節點有同樣的網絡號),那么它首先檢查緩存中的映射,如果映射不存在,就調用ARP。即通過向網絡廣播一個ARP查詢來實現,這個查詢包括詢問的IP地址,每個主機收到這個查詢并檢查是否與自己的IP地址匹配。如果匹配,該主機發送一個包含它的鏈路層地址的應答信息給發送出查詢的源主機。源主機將次應答的包含的信息添加到自己的ARP表中。 同時查詢信息中也包含源主機的IP地址和鏈路層地址,這樣,每臺主機都會知道源主機的鏈路層地址和IP地址,并更新自己的ARP表。
4.1.6 主機配置 Dynamic Host Configuration Protocol
DHCP依賴于DHCP服務器的存在,DHCP服務器負責向主機提供配置信息。一個管理域中至少有一個DHCP服務器。 為了與一個DHCP服務器相連,一臺新自舉或新連接的主機發送一條DHCPDISCOVER消息到一個特殊的IP地址(255.255.255.255)—-廣播地址。DHCP服務器應答產生這條發現消息的主機(所有其他節點忽略這條消息)。然而,并不是每個網絡都需要一個DHCP服務器,因此,DHCP使用一個中繼代理(relayagen)的概念。每個網絡中至少有一個中繼代理,它只配置有一條消息:DHCP服務器的IP地址。 DHCP允許地址一段時間內被”租用”。一旦租用期滿,服務器將地址回收。一個租用地址的主機,如果事實仍然連在網絡上并功能正常,顯然需要定期重新租用地址。 當然,DHCP也引入了更多的復雜性到了網絡管理,因為它使物理主機與IP地址之間的綁定更為動態化。
4.1.7 差錯報告 ICMP
IP總是和網際控制報文協議(Internet Control Message Protocol)配置在一起的,這個協議定義了當一個路由器或主機不能成功處理一個IP數據報時,向源主機發回的錯誤消息的集合。(與http狀態碼類似)
4.2 路由
轉發(forwarding):轉發過程包括接收一個分組,查看它的目的地址,查詢轉發表,按表中決定的路徑把分組轉發出去。轉發是在一個節點本地執行的一個相對簡單,定義良好的過程。 路由(routing):用于建立轉發表的一個過程,依賴于在網絡發展過程中不斷演進的,復雜分布式算法。
構造轉發表是為優化轉發分組時查找網絡號的過程,而優化路由表是為了計算拓撲結構的改變。
4.2.1 用圖表示網絡
路由本質上是圖論中的一個問題。 圖中的邊對應于網絡中的鏈路,每條邊都有一個相應的開銷(cost),表示希望通過這段鏈路發送的通信量。 路由最基本的問題就是找出任意兩個節點之間開銷最小的路徑,一條路徑的開銷等于組成這條路徑的所有邊上開銷之和。
4.2.2 距離向量 RIP
每個節點構造一個包含到所有其他節點”距離”(開銷)的一維數組(一個向量),并將這個向量分發給它的鄰接點。對距離向量路由所作的最初假設是每個節點都知道到其直接鄰接點的鏈路開銷。到不相鄰節點的鏈路開銷被指定為無窮大。
網絡中沒有任何一個節點有網絡路由表的所有信息,每個節點只知道它自己路由表的內容。像這種分布式算法的優點就是它能夠使所有節點在沒有任何集中授權的情況下取得對網絡的一致視圖。
路由表更新:第一種為定期更新(periodic),第二種為觸發(triggered)更新。
兩種改進穩定路由時間的技術;第一種是使用一個相對較小的數作為無窮大的近似值,第二種被稱為水平分割(splithorizon),其思想是當一個節點把路由的更新消息發送給相鄰節點時,它并不把從各個相鄰節點處學到的路由再回送給該節點。
4.2.3 鏈路狀態 OSPF
假設每個節點都能找出到它的相鄰節點的鏈路狀態以及每條鏈路的開銷,我們還希望提供給每個節點足夠的信息,使他能找出到達任一目標的最小開銷路徑。 基本思想:每個節點都知道怎樣到達它的鄰接點,如果我們確保這種信息被完整地傳播到每個節點,那么每個節點都有足夠的網絡信息來簡歷一個完整的網絡映像。 鏈路狀態路由協議依靠兩種機制:鏈路狀態信息的可靠傳播和根據所有積累的鏈路狀態指示的總和進行的路由計算。
4.2.4 度量標準
4.3 全球因特網
4.3.1 劃分子網
劃分子網是減少分配網絡號總數的一個很好的簡單方法。 基本思想是只用一個網絡號,把具有這個網絡號的IP地址分配給多個物理網絡,每個物理網絡叫做一個子網(subnet)。在很多個網絡當中共享一個網絡號的機制涉及到使用子網掩碼(subnetmask)配置每個子網中的所有節點。 因此現在我們可以認為IP地址分為3部分:網絡部分,子網部分和主機部分。即我們將原來用于表示主機的部分劃分為子網部分和主機部分。
當主機要發送一個分組到一個特定的IP地址時,它所做的第一件事就是用它的子網掩碼與目標IP地址做按位與運算。如果結果等于發送主機的子網號,那么它就得知目的主機在同一子網內,分組可以在子網中直接傳送,如果不等于,就需要把分組發送給一個路由器以便轉發到另一個子網。
引入子網后,路由器的工作也跟著發生變化,原先的轉發表是由成對形式的
4.3.2 無類路由 CIDR
ClasslessInter-DomainRouting技術用于解決因特網中兩種可擴展問題:第一,越來越多的網絡號需要存在于主干網路由表中,從而導致了它的增長;第二,在第40億臺主機連接到因特網之前,32位的IP地址就可能已經耗盡。 CIDR嘗試在減少一個路由器所需要知道的路由數的愿望與有效分配地址的需求之間取得平衡。為了做到這一點,CIDR幫我們匯聚路由。它通過打破地址分類間的嚴格界限。 CIDR通過一種新型標注或者用已知的前綴來表示網絡號,因為前綴可以任意長,所以通常是放置一個”/X”在前綴后,其中”/X”表示前綴的位長度。 如20位的前綴可以表示為 192.4.16/20。
4.4 多播
如第二章中,以太網和令牌環這樣的多點訪問網絡用硬件實現多播。 為了更好的支持多對以及一對多的連接,IP提供了一種IP級模擬多播用于多點訪問網絡。
基本的IP多播模型是基于多播組的多對多模型,每個組都有自己的IP多播地址,組里的任何主機收到任何的分組拷貝都會發送到組的多播地址 這樣發送主機不需要發送多個分組拷貝,因為路由器無論何時都會在需要的時候將分組轉發給多個鏈接,相比于使用單播IP傳送相同的分組給多個接受者,IP多播更可測,因為它消除了一些需要在同一個鏈路上發送多次的冗余流量,特別是靠近發送主機的鏈路。
IP的原始多對多播(任意源多播,ASM)已經增強為可支持的一對多播的形式。在一對多播模型中,即源特定多播(SSM),接收主機指定一個多播組和特定發送主機,接收主機僅將從特定主機收到的多播地址發送給特定的組。
4.4.1 多播地址
IP中有一個子空間是保留給多播地址的。在IPV4中,這些地址被分配在D類地址空間中。
4.4.2 多播路由
多播路由是一個多播分配樹的決策過程,更具體的書,是一個多播轉發表的建立過程。
4.5 多協議標記交換 Multi-protocol Lavel Switching ,MPLS
MPLS的好處
4.5.1 基于目的地的轉發
鏈式索引(threaded index) 當一個路由器能夠支持MPLS時,他給路由表中的每個前綴都分配一個標記,并將標記和所表示的前綴通知相鄰路由器,此通知的分發由標記分發協議(LabelDistributionProtocol,LDP)攜帶。
標記邊緣路由器(Label Edge Router,LER)對到達的IP分組進行完全的IP查找,然后用他們的標記作為查找的結果并附加到這個分組的頭部。 這樣,我們就用標記查找代替正常的IP目的地址查找。(IP地址查找算法需要查找最長匹配,與將要轉發的分組中的IP地址高比特部分相匹配的最長前綴。相反,標記轉發機制則是一種精確匹配算法,建立一個數組,標記為數組的索引)
4.5.2 顯示路由
源路由并未廣泛使用,MPLS提供了一種方便的方法將類似源路由的能力添加到IP網絡中,這種能力被稱為顯示路由。兩者之間的區別在于。顯示路由通常不是選擇此路由的分組的真正源,在更多情況下它是服務提供者網絡中的一個路由器。 資源預留協議(RSVP)
總結
- 上一篇: 于的繁体字有几种写法_处字的繁体字书法作
- 下一篇: On release of batch