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