中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
TCP/IP入門(2)
/**
本篇博客由汗青ZJF整理并發(fā)布, 轉(zhuǎn)載請注明出處:
http://blog.csdn.net/zjf280441589/article/category/1854365
*/
什么是虛擬網(wǎng)絡(luò)互連?
所謂虛擬互連網(wǎng)絡(luò)也就是邏輯互連網(wǎng)絡(luò),它的意思就是互連起來的各種物理網(wǎng)絡(luò)的異構(gòu)性本來是客觀存在的(比如局域網(wǎng)有的采用的是以太網(wǎng), 有的采用令牌環(huán)網(wǎng)),但是我們利用 IP 協(xié)議就可以使這些性能各異的網(wǎng)絡(luò)從用戶角度來看好像是一個統(tǒng)一的網(wǎng)絡(luò)(在網(wǎng)絡(luò)的上層, 我們看不到各網(wǎng)絡(luò)具體的異構(gòu)網(wǎng)絡(luò)細(xì)節(jié))。使用IP 協(xié)議的虛擬互連網(wǎng)絡(luò)可簡稱為 IP 網(wǎng)。
好處是: 當(dāng)互聯(lián)網(wǎng)上的處于不同網(wǎng)絡(luò)的主機之間進行通信時, 就好像在一個網(wǎng)絡(luò)上通信一樣, 而看不見互連的各具體的網(wǎng)絡(luò)異構(gòu)細(xì)節(jié)(如具體的編址方案, 路由選擇協(xié)議等).
IP報文
各個字段說明
版本
IP協(xié)議版本號, IPv4此字段值為4, IPv6此字段值為6
首部長度
取值范圍5(0101)~15(1111), 單位為4字節(jié),包括固定部分和可選部分, 因此首部最長為60字節(jié), 最短為20字節(jié)(不包括選項和填充部分);
服務(wù)類型
長度為8位(由于該字段一直棄而不用, 因此不用考慮)
總長度
該字段長度為16位, 以字節(jié)為單位, 總長度包含IP的頭部和數(shù)據(jù)部分, IP數(shù)據(jù)報最大長度為65535字節(jié), 但是注意最大不要超過MTU的長度
標(biāo)識
16位長度, 唯一標(biāo)識一個數(shù)據(jù)報,可以將之當(dāng)成一個計數(shù)器, 每發(fā)送一個數(shù)據(jù)包, 則該值加1, 如果數(shù)據(jù)報分片,則每個分片的標(biāo)識都一樣, 各個分片共享一個標(biāo)識號
標(biāo)志
3位標(biāo)志中第一位不使用, 第二位為DF(Don`t Fragment不分片), 如果該位為1, 并且傳輸?shù)臄?shù)據(jù)報超過最大傳輸單元(MTU), 則該數(shù)據(jù)報會被丟棄, 并發(fā)送一個ICMP差錯報文; 第三位MF(More Fragment更多分片),表示是否有更多的分片, 如果該位為1, 則說明后續(xù)還有分片, 最后一片MF為0
片偏移
用以指出該分段的第一個數(shù)據(jù)字節(jié)在原始數(shù)據(jù)報中的偏移位置(以8字節(jié)為單位),IP分片后每一個分組都具有自己的首部, 而且標(biāo)志位相同, 但是片偏移值不同, 通過片偏移值接收端可以重新組裝IP包
生存時間(TTL)
表示數(shù)據(jù)報最多可經(jīng)過的路由器的數(shù)量. 取值0~255,每經(jīng)過一個路由器, TTL值減1,為0時被丟棄, 并發(fā)送ICMP報文通知源主機, TTL可以避免數(shù)據(jù)報在路由器之間不斷循環(huán)(Tranceroute程序的實現(xiàn)原理)
協(xié)議類型
指明IP層上承載的是哪個高級協(xié)議, 在分用的過程中, 協(xié)議棧知道該交給上層的哪個協(xié)議處理, 如1為ICMP, 2為IGMP, 6為TCP, 17為UDP等.
頭部校驗和
保證數(shù)據(jù)報頭部的數(shù)據(jù)完整性,但校驗不包括數(shù)據(jù)部分。這樣做的目的有二:一是所有將數(shù)據(jù)封裝在IP數(shù)據(jù)包中的高層協(xié)議均含有覆蓋整個數(shù)據(jù)的校驗和,因此IP數(shù)據(jù)報沒有必要再對其所承載的數(shù)據(jù)部分進行校驗。二是每經(jīng)過一個路由器,IP數(shù)據(jù)報的頭部要發(fā)生改變(如TTL),而數(shù)據(jù)部分不變,這樣只對發(fā)生改變的頭部進行校驗,顯然不會浪費太多的時間。為了減少計算時間,一般不用CRC校驗碼,而是采用更簡單的網(wǎng)際校驗和(Internet Checksum)。
選項與填充
增加首部的可變部分是為了增加IP數(shù)據(jù)報的功能, 如支持排錯, 測量以及安全等, 選項長度從1到40字節(jié)不等, 取決于所選擇的項目(選項為4字節(jié)整數(shù)倍,否則用0填充); 但這樣就增加了每一個路由器處理數(shù)據(jù)的開銷, 實際上這些選項很少被使用, 很多路由器都并不考慮IP首部的選項字段;
IP地址分類
IP地址的編址方法,共經(jīng)歷了三個歷史階段。這三個階段是:
1)分類的 IP 地址。這是最基本的編址方法;
2)劃分子網(wǎng)。這是對最基本的編址方法的改進;
3)構(gòu)成超網(wǎng)。這是比較新的無分類編址方法,提出后很快得到推廣, 并沿用至今;
分類的IP地址:
A)為了適應(yīng)不同網(wǎng)絡(luò)規(guī)模的需求,將IP地址進行分類,不同類型IP地址擁有的主機數(shù)不一樣。兩級的 IP 地址可以記為:
IP 地址 ::= { <網(wǎng)絡(luò)號>, <主機號>}
B)特殊地址
對于因特網(wǎng) IP 地址中有特定的專用地址,不作分配(但他們還是IP地址):
(1) 主機地址全為"0"
不論哪類網(wǎng)絡(luò),主機地址全為"0"表示指向本網(wǎng),常用在路由表中。
(2) 主機地址全為"1"
主機地址全為"1"表示廣播地址,向特定的所在網(wǎng)上所有主機發(fā)送數(shù)據(jù)報。
(3) 32位全為"1"
若 IP 地址 4 字節(jié) 32 比特全為"1",表示僅在本網(wǎng)內(nèi)進行廣播發(fā)送(見Arp協(xié)議)。
(4) 網(wǎng)絡(luò)為127
TCP/IP 協(xié)議規(guī)定網(wǎng)絡(luò)號 127 不可用于任何網(wǎng)絡(luò)。其中有一個特別地址:127.0.0.1 稱之為還回地址(loop-back);
C)使用范圍:
網(wǎng)絡(luò)類別
最大網(wǎng)絡(luò)數(shù)
第一個可用的網(wǎng)絡(luò)號
最后一個可用的網(wǎng)絡(luò)號
每個網(wǎng)絡(luò)中的最大主機數(shù)
A
2^7 -2
1
126(127不可用)
2^24 -2
B
2^14 -1
128.1
191.255
2^16 -2
C
2^21 -1
192.0.1
223.255.255
2^8 -2
D)IP地址的重要特點
1)IP 地址是一種分等級的地址結(jié)構(gòu)。分兩個等級的好處是:
a. IP 地址管理機構(gòu)在分配 IP 地址時只分配網(wǎng)絡(luò)號,而剩下的主機號則由得到該網(wǎng)絡(luò)號的單位自行分配。這樣就方便了 IP 地址的管理。
b. 路由器僅根據(jù)目的主機所連接的網(wǎng)絡(luò)號來轉(zhuǎn)發(fā)分組(而不考慮目的主機號), 這樣就可以使路由表中的項目數(shù)大幅度減少,從而減小了路由表所占的存儲空間。
2)實際上 IP 地址是標(biāo)志一個主機/路由器和一條鏈路的接口。
當(dāng)一個主機同時連接到兩個網(wǎng)絡(luò)上時,該主機就必須同時具有兩個IP 地址,其網(wǎng)絡(luò)號 net-id 必須是不同的; 由于一個路由器至少應(yīng)當(dāng)連接到兩個網(wǎng)絡(luò)(這樣它才能將 IP 數(shù)據(jù)報從一個網(wǎng)絡(luò)轉(zhuǎn)發(fā)到另一個網(wǎng)絡(luò)),因此一個路由器至少應(yīng)當(dāng)有兩個不同的 IP 地址。
3)用轉(zhuǎn)發(fā)器或網(wǎng)橋連接起來的若干個局域網(wǎng)仍為一個網(wǎng)絡(luò),因此這些局域網(wǎng)都具有同樣的網(wǎng)絡(luò)號 net-id。
4)所有分配到net-id 的網(wǎng)絡(luò), 無論是范圍很小的局域網(wǎng),還是覆蓋很大地理范圍的廣域網(wǎng),都是平等的。
分組轉(zhuǎn)發(fā)算法
(1)  從數(shù)據(jù)報的首部提取目的站的 IP 地址 D, 得出目的網(wǎng)絡(luò)地址為 N。
(2)  若網(wǎng)絡(luò) N 與此路由器直接相連,則直接將數(shù)據(jù)報直接交付給目的站 D;否則是間接交付,執(zhí)行(3)。
(3)  若路由表中有目的地址為 D 的特定主機路由,則將數(shù)據(jù)報傳送給路由表中所指明的下一跳路由器;否則,執(zhí)行(4)。
(4)  若路由表中有到達(dá)網(wǎng)絡(luò) N 的路由,則將數(shù)據(jù)報傳送給路由表指明的下一跳路由器;否則,執(zhí)行(5)。
(5) 若路由表中有一個默認(rèn)路由,則將數(shù)據(jù)報傳送給路由表中所指明的默認(rèn)路由器;否則,執(zhí)行(6)。
(6)  報告轉(zhuǎn)發(fā)分組出錯。
子網(wǎng)劃分
一個擁有許多物理網(wǎng)絡(luò)的單位,可將所屬的物理網(wǎng)絡(luò)劃分為若干個子網(wǎng)。劃分子網(wǎng)純屬一個單位內(nèi)部的事情。本單位以外的網(wǎng)絡(luò)看不見這個網(wǎng)絡(luò)是由多少子網(wǎng)組成,因為這個單位對外仍然表現(xiàn)一個網(wǎng)絡(luò)。
劃分子網(wǎng)的方法是從網(wǎng)絡(luò)的主機號借用若干位作為子網(wǎng)號subnet-id。劃分子網(wǎng)增加了靈活性,但也減少了能夠連接在網(wǎng)絡(luò)上主機總數(shù)。于是兩級IP地址在本單位內(nèi)部就變?yōu)槿塈P地址:
IP地址 ::= {<網(wǎng)絡(luò)號>,<子網(wǎng)號>,<主機號>}
凡是從其他網(wǎng)絡(luò)發(fā)送給本單位某個主機的IP數(shù)據(jù)報,仍然是根據(jù)IP數(shù)據(jù)報的目的網(wǎng)絡(luò)號找到連接在本單位網(wǎng)絡(luò)上的路由器。但此路由器在收到IP數(shù)據(jù)報后,在按目的網(wǎng)絡(luò)號和子網(wǎng)號找到目的子網(wǎng),把IP數(shù)據(jù)報交付給目的主機;
子網(wǎng)掩碼
子網(wǎng)掩碼也是32位,由一串1和跟隨的一串0組成。子網(wǎng)掩碼中的1對應(yīng)于IP地址中原來的網(wǎng)絡(luò)號和子網(wǎng)號,而子網(wǎng)掩碼中的0對應(yīng)于現(xiàn)在的主機號。故將子網(wǎng)掩碼和IP地址進行按位”與“運算(AND),就可得出網(wǎng)絡(luò)地址, 由此可知:
A 類網(wǎng)絡(luò)的缺省的子網(wǎng)掩碼是
255.0.0.0
B 類網(wǎng)絡(luò)的缺省的子網(wǎng)掩碼是
255.255.0.0
C 類網(wǎng)絡(luò)的缺省的子網(wǎng)掩碼是
255.255.255.0(最常見)
不同的子網(wǎng)掩碼可以得出相同的網(wǎng)絡(luò)地址, 但不同的掩碼的效果是不同的.
使用子網(wǎng)時分組的轉(zhuǎn)發(fā)過程:
使用子網(wǎng)劃分后,路由表必須包含以下三項內(nèi)容:{目的網(wǎng)絡(luò)地址,子網(wǎng)掩碼和下一跳地址}, 路由器轉(zhuǎn)發(fā)分組的流程如下:
1)從收到的數(shù)據(jù)報首部提取目的IP地址D;
2)先判斷是否為直接交付。對路由器直接相連的網(wǎng)絡(luò)進行逐個檢查:用各網(wǎng)絡(luò)的子網(wǎng)掩碼和D逐位相與,看結(jié)果是否和相對應(yīng)的網(wǎng)絡(luò)地址匹配。若匹配,則把分組進行直接交付,轉(zhuǎn)發(fā)任務(wù)結(jié)束。否則就是間接交付,執(zhí)行(3)。
3)若路由表中有目的地址為D的特定主機路由,則把數(shù)據(jù)報傳送給路由表中所指明的下一跳路由,否則執(zhí)行(4)。
4)對路由表的每一行,用其中的子網(wǎng)掩碼和D逐位相與,其結(jié)果為N。若N與該行的目的網(wǎng)絡(luò)地址匹配,則把數(shù)據(jù)報傳送給該行指明的下一跳路由器,否則執(zhí)行(5)。
5)若路由表中有一個默認(rèn)路由,則把數(shù)據(jù)報傳送給路由表中所指明的默認(rèn)路由器;否則執(zhí)行(6)。
6)報告轉(zhuǎn)發(fā)分組出錯。
無分類編址(CIDR)
無分類域間路由選擇(CIDR)是在變長子網(wǎng)掩碼的基礎(chǔ)上提出的一個消除A, B, C類網(wǎng)絡(luò)劃分, 并且可以在軟件的支持下實現(xiàn)構(gòu)造超網(wǎng)的一種IP地址的劃分方法;
CIDR的主要特點:
1)消除了傳統(tǒng)的A,B,C類地址以及子網(wǎng)劃分的概念, 因而可以更加有效的分配IPv4的地址空間. CIDR使用”網(wǎng)絡(luò)前綴”的概念代替網(wǎng)絡(luò)號的概念, 這樣IP地址的無分類兩級編址就變?yōu)?
IP::= {<網(wǎng)絡(luò)前綴>,<主機地址>}
CIDR還使用”斜線記法”, 即: <IP地址>/<網(wǎng)絡(luò)前綴所占位數(shù)>. 其中, 網(wǎng)絡(luò)前綴所占位數(shù)對應(yīng)于網(wǎng)絡(luò)號部分, 等效于子網(wǎng)掩碼中連續(xù)1的部分, 因此通過逐位相”與”的方法依然可以得到該地址的網(wǎng)絡(luò)前綴;
注:CIDR并不使用子網(wǎng),  CIDR并沒有在32位地址中指明若干位作為子網(wǎng)字段, 但分配到一個CIDR地址塊的組織仍可以在本組織內(nèi)根據(jù)需要劃分出一些子網(wǎng);
2)將網(wǎng)絡(luò)前綴都相同的連續(xù)的IP地址組成”CIDR地址塊”, 一個CIDR地址塊可以表示很多地址, 這種地址的聚合成為路由聚合, 或稱構(gòu)成超網(wǎng); 路由聚合使得路由表中的一個項目可以表示很多個原來傳統(tǒng)分類地址的路由, 有利于減少路由器之間的路由選擇信息的交換, 從而提高網(wǎng)絡(luò)性能.
最長前綴匹配
使用CIDR時, 路由表中的每個項目由”網(wǎng)絡(luò)前綴”和”下一跳地址”組成. 在查找路由表時可能會得到不止一個匹配結(jié)果, 應(yīng)當(dāng)從匹配結(jié)果中選擇具有最長網(wǎng)絡(luò)前綴的路由, 因為網(wǎng)絡(luò)前綴越長, 其地址塊就越小, 因而路由就越具體;
CIDR查找路由表的方法: 為了進行更加有效地查找最長前綴匹配, 通常是將無分類編址的路由表存放在一種層次的數(shù)據(jù)結(jié)構(gòu)中, 然后自上而下地按層次進行查找, 這就是最常用的二叉線索;
網(wǎng)絡(luò)地址轉(zhuǎn)換NAT
網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT,Network Address Translation)屬接入廣域網(wǎng)(WAN)的技術(shù),是一種將私有(保留)地址轉(zhuǎn)化為合法IP地址的轉(zhuǎn)換技術(shù). NAT不僅完美地解決了IP地址不足的問題,而且還能夠有效地避免來自網(wǎng)絡(luò)外部的攻擊,隱藏并保護網(wǎng)絡(luò)內(nèi)部的計算機。
三個私有IP地址塊
A 類
10.0.0.0 ~ 10.255.255.255
B 類
172.16.0.0 ~ 172.31.255.255
C 類
192.168.0.0 ~ 192.168.255.255
上述三個范圍內(nèi)的地址不會在因特網(wǎng)上被分配(因此路由器并不會路由這些IP地址),因此可以不必向ISP 或注冊中心申請而在公司或企業(yè)內(nèi)部自由使用。
NAT工作流程
①如圖這個 client(終端) 的 gateway (網(wǎng)關(guān))設(shè)定為 NAT 主機,所以當(dāng)要連上 Internet 的時候,該封包就會被送到 NAT 主機,這個時候的封包 Header 之 source IP為 192.168.1.100;
②而透過這個 NAT 主機,它會將 client 的對外聯(lián)機封包的 source IP ( 192.168.1.100 ) 偽裝成 ppp0 ( 假設(shè)為撥接情況 )這個接口所具有的公共 IP ,因為是公共 IP 了,所以這個封包就可以連上 Internet 了!同時 NAT 主機并且會記憶這個聯(lián)機的封包是由哪一個 ( 192.168.1.100 ) client 端傳送來的;
③由 Internet 傳送回來的封包,當(dāng)然由 NAT主機來接收了,這個時候, NAT 主機會去查詢原本記錄的路由信息,并將目標(biāo) IP 由 ppp0 上面的公共 IP 改回原來的 192.168.1.100 ;
④最后則由 NAT 主機將該封包傳送給原先發(fā)送封包的 Client.
ARP協(xié)議
ARP協(xié)議的用途:解決同一個局域網(wǎng)內(nèi)主機或路由器的IP地址和MAC地址的映射問題。
如圖所示,假設(shè)在一個以太網(wǎng)上的 4 臺計算機,分別是計算機 A 、 B 、 X 和 Y ,通過TCP/IP 協(xié)議進行通信,那么雙方的數(shù)據(jù)鏈路層必須知道對方的 MAC 地址。每臺計算機都要在各自的高速緩存區(qū)中存放一張 IP 地址到 MAC 地址的轉(zhuǎn)換表,稱 ARP 表。其中存放著最近用到的一系列和它通信的處于同一子網(wǎng)的計算機的 IP 地址和 MAC 地址的映射。在主機初始啟動時, ARP 表為空?,F(xiàn)在源端計算機 A ( 192.168.3.1 )要和計算機 B(192.168.3.2)通信。在計算機 A 發(fā)送信息前, 必須首先得到計算機B的MAC地址的映射關(guān)系。 ARP 協(xié)議工作過程如下:
(1)主機 A 首先查看自己的高速緩存中的 ARP緩存表,看其中是否有與 192.168.3.2 對應(yīng)的 ARP 表項。如果找到,則直接利用該 ARP 表項中的 MAC 值把 IP 數(shù)據(jù)包封裝成幀發(fā)送給主機B。
(2)如果在 ARP 表中找不到對應(yīng)的地址項,則創(chuàng)建一個 ARP 請求數(shù)據(jù)包,并以廣播方式發(fā)送(把以太幀的目的地址設(shè)置為 FF-FF-FF-FF-FF-FF) 。包中有需要查詢的目的計算機的 IP 地址(192.168.3.2) , 以及主機 A 自己的 IP 地址和 MAC 地址。
(3)包括計算機 B 在內(nèi)的屬于 192.168.3.0 網(wǎng)絡(luò)上的所有計算機都收到 A 的 ARP 請求包,然后將計算機 A 的 IP 地址與 MAC 地址的映射關(guān)系存入各自的 ARP 表中。
(4)計算機 B 創(chuàng)建一個 ARP 響應(yīng)包,在包中填入自己的 MAC 地址,以單播方式直接發(fā)送給主機 A。
(5) 主機 A 收到響應(yīng)后, 從包中提取出所需查詢的 IP 地址及其對應(yīng)的 MAC 地址, 添加到自己的 ARP 表中。并根據(jù)該 MAC 地址將所需要發(fā)送的數(shù)據(jù)包封裝成幀發(fā)送出去。
注意:
(1)ARP 表的內(nèi)容是定期更新的,如果一條 ARP 表項很久沒有使用了,則它將被從 ARP 表中刪除。
(2)如果所要找的主機和源主機不在同一個局域網(wǎng)上, 那么就要通過ARP找到一個位于本局域網(wǎng)上的某個路由器的硬件地址, 然后把分組發(fā)送給這個路由器, 讓這個路由器把分組轉(zhuǎn)發(fā)給下一個網(wǎng)絡(luò), 剩下的工作就由下一個網(wǎng)絡(luò)來做.
DHCP協(xié)議
DHCP動態(tài)主機配置協(xié)議常用于給主機動態(tài)地分配IP地址, 他提供了即插即用聯(lián)網(wǎng)的機制,這種機制允許一臺計算機加入新的網(wǎng)絡(luò)和獲取IP地址而不用手工參與; DHCP是應(yīng)用層協(xié)議, 他是基于UDP的;
DHCP工作原理:
首先,DHCP客戶端發(fā)送DHCPDISCOVER消息(DHCP發(fā)現(xiàn)),這個消息是通過廣播方式發(fā)送出去的,所有網(wǎng)絡(luò)中的DHCP服務(wù)器都將接收到這個消息。
隨后,網(wǎng)絡(luò)中的DHCP服務(wù)器會回應(yīng)一個DHCPOFFER消息(DHCP提供),由于這個時候客戶端還沒有網(wǎng)絡(luò)地址,所以DHCPOFFER也是通過廣播的方式發(fā)送出去的。需要注意的是,由于網(wǎng)絡(luò)中可能存在不止一臺的DHCP服務(wù)器,所以,如果不考慮網(wǎng)絡(luò)丟包的話,客戶端將接收到不止一條的DHCPOFFER消息。那么客戶端會選擇它接收到的第一條DHCPOFFER作為獲取配置的服務(wù)器。
然后,DHCP客戶端向該服務(wù)器發(fā)送DHCPREQUEST消息(DHCP請求)。雖然這個時候客戶端已經(jīng)明確知道選擇的DHCP服務(wù)器的地址所在,但仍將采用廣播的方式發(fā)送,這樣做不僅可以通知選中的服務(wù)器向客戶端分配IP地址,同時也可以通知其他沒有選中的DHCP服務(wù)器不需要再響應(yīng)它的請求。在DHCPREQUEST消息中將包含客戶端申請的IP地址。
最后,DHCP服務(wù)器將回送DHCPACK(DHCP確認(rèn))的響應(yīng)消息來通知客戶端可以使用該IP地址,該確認(rèn)里面包含了分配的IP地址和該地址的一個穩(wěn)定期限的租約(默認(rèn)是8天),并同時更新DHCP數(shù)據(jù)庫。
當(dāng)租約過了一半時(即4天),客戶端將和設(shè)置它的TCP/IP配置的DHCP服務(wù)器更新租約。當(dāng)租約過了85.7%時,如果客戶端仍然無法與當(dāng)初的DHCP服務(wù)器聯(lián)系上,他將與其他DHCP服務(wù)器通信,如果網(wǎng)絡(luò)中再沒有任何DHCP服務(wù)器在運行時,該客戶端停止使用該IP地址,并重新發(fā)送一個DHCPDISCOVER消息,再一次重復(fù)整個過程。
ICMP協(xié)議
IP提供的是盡最大努力交付的無連接服務(wù),因此并不能解決網(wǎng)絡(luò)層中的數(shù)據(jù)報丟失、重復(fù)、延遲或亂序等問題,為了提高IP數(shù)據(jù)報成功交付的機會, 在網(wǎng)絡(luò)層使用ICMP(Internet Control Message Protocol:Internet控制報文協(xié)議)協(xié)議來允許主機或者路由器報告差錯和異常情況.
ICMP的特征
a.ICMP就像一個更高層的協(xié)議那樣使用IP協(xié)議(ICMP消息被封裝在IP數(shù)據(jù)報中);然而,ICMP是IP的一個組成部分,并且所有IP模塊都必須實現(xiàn)它。
b.ICMP用來報告錯誤,是一個差錯報告機制。它為遇到差錯的路由器提供了向最初源站報告差錯的辦法,源站必須把差錯交給一個應(yīng)用程序或采取其它措施來糾正問題。
c.ICMP報文的種類有兩種: ICMP差錯報告報文和ICMP詢問報文;
ICMP差錯報告報文
ICMP差錯報告報文類型
終點不可達(dá)
當(dāng)路由器檢測到數(shù)據(jù)報無法傳遞到目的地時,向創(chuàng)建數(shù)據(jù)報的源主機發(fā)出終點不可達(dá)報文。這類報文分為:網(wǎng)絡(luò)不通(如路由器故障),目的主機連不通(沒開機),協(xié)議不可達(dá)、端口不可達(dá)等共15種不同的情況,用不同代碼表示。
源點抑制
當(dāng)路由器/主機收到太多的數(shù)據(jù)報以致來不及處理時,在丟棄所收數(shù)據(jù)報的同時,向創(chuàng)建數(shù)據(jù)報的源主機發(fā)送源點抑制報文。 使源點知道應(yīng)當(dāng)把數(shù)據(jù)報的發(fā)送速率放慢。
時間超過
有兩種情況需要發(fā)送超時報文:
1.路由器把數(shù)據(jù)報的生存時間減至零時,路由器丟棄數(shù)據(jù)報,并向源主機發(fā)送時間超過報文;2.當(dāng)終點在預(yù)先規(guī)定的時間內(nèi)不能收到一個數(shù)據(jù)報的全部數(shù)據(jù)報分片時, 就把已收到的數(shù)據(jù)報片全部丟棄, 并向源點發(fā)送時間超過報文;
參數(shù)問題
當(dāng)路由器/目的主機收到的數(shù)據(jù)報的首部有的字段的值不正確時, 就丟棄該數(shù)據(jù)報, 并向源點發(fā)送參數(shù)問題報文;
改變路由(重定向)
當(dāng)一個源主機創(chuàng)建的數(shù)據(jù)報發(fā)至某路由器,該路由器發(fā)現(xiàn)數(shù)據(jù)報應(yīng)該選擇其他路由時,則向源主機發(fā)送改變路由報文。改變路由的報文能指出網(wǎng)絡(luò)或特定主機的變化,一般發(fā)生在一個網(wǎng)絡(luò)連接多路由器的情況下.
不應(yīng)發(fā)送ICMP差錯報告報文的幾種情況:
1)對ICMP差錯報告報文不再發(fā)送ICMP差錯報告報文。
2)對第一個分片的數(shù)據(jù)報片的所有后續(xù)數(shù)據(jù)報片都不發(fā)送ICMP差錯報告報文。
3)對具有多播地址的數(shù)據(jù)報都不發(fā)送ICMP差錯報告報文。
4)對具有特殊地址(如127.0.0.0或0.0.0.0)的數(shù)據(jù)報不發(fā)送ICMP差錯報告報文。
ICMP詢問報文
回送請求和回答報文, 時間戳請求和回答報文, 掩碼地址請求和回答報文, 路由器詢問和通告報文;
常用的ICMP詢問報文有兩種,即:
1)回送請求和回答: ICMP回送請求報文是由主機或路由器向一個特定的目的主機發(fā)出的詢問。收到此報文的主機必須給源主機或路由器發(fā)送ICMP回送回答報文。這種詢問報文用來測試目的站是否可達(dá)以及了解其有關(guān)狀態(tài)(Ping實現(xiàn)機制)。
2)時間戳請求和回答: ICMP時間戳請求報文是請某個主機或路由器回答當(dāng)前的日期和時間。在ICMP時間戳回答報文中有一個32位的字段,其中寫入的整數(shù)代表從1900年1月1日起到當(dāng)前時刻一共有多少秒。時間戳請求與回答可用來進行時鐘同步和測量時間。
Ping實現(xiàn)原理
Ping(Packet Internet Groper)分組網(wǎng)間探測是ICMP的一個重要應(yīng)用,用來測試兩個主機之間的連通性。Ping使用了ICMP回送請求與回答報文。Ping是應(yīng)用層直接使用網(wǎng)絡(luò)層ICMP的一個例子。它沒有通過運輸層的TCP或UDP。
實現(xiàn)原理為: ping向目的主機發(fā)送4個32字節(jié)長的ICMP回送請求報文,若目的主機正常工作并且響應(yīng)了該ICMP回送請求報文,就將發(fā)回ICMP回送回答報文。最后可得出的統(tǒng)計結(jié)果為目的IP地址,發(fā)送的,收到的和丟失的分組數(shù),及往返時間的最小值、最大值和平均值。
ping命令格式為 ping <host-name> #host-name為要測試連通性的主機名/IP地址。
TraceRoute原理
Traceroute(Linux)/tracert(Windows)是用來偵測主機到目的主機之間所經(jīng)路由情況的重要工具。它的原理如下:
源主機首先給目的主機發(fā)送一個TTL=1的UDP數(shù)據(jù)包,而經(jīng)過的第一個路由器收到這個數(shù)據(jù)包以后,就自動把TTL減1,而TTL變?yōu)?以后,路由器就把這個包給丟棄了,并同時產(chǎn)生”目的主機不可達(dá)”的ICMP差錯報告報文給源主機。源主機收到這個數(shù)據(jù)報以后再發(fā)一個TTL=2的UDP數(shù)據(jù)報給目的主機,然后刺激第二個路由器給源主機發(fā)送差錯報文。如此往復(fù)直到到達(dá)目的主機。這樣,traceroute就拿到了所有的路由器IP。
RIP協(xié)議
路由信息協(xié)議RIP是一種分布式的基于距離向量的路由選擇協(xié)議, 屬于內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)。RIP協(xié)議中的“距離”也稱為“跳數(shù)”,每經(jīng)過一個路由器,跳數(shù)就加1。協(xié)議規(guī)定: 同一自治系統(tǒng)(A.S.)中的路由器每30秒會與相鄰的路由器交換路由信息,以動態(tài)的建立路由表。當(dāng)傳輸數(shù)據(jù)時,RIP將選擇一條具有最少路由器的路由。
RIP協(xié)議規(guī)定:
1) 網(wǎng)絡(luò)中的每一個路由器都要維護從它自己到其他每一個目的網(wǎng)絡(luò)的距離記錄(因此, 這是一組距離, 稱”距離向量”);
2) 距離也稱為跳數(shù)(Hop Count), 規(guī)定從一路由器到直接連接的網(wǎng)絡(luò)跳數(shù)為1, 而每經(jīng)過一個路由器, 則跳數(shù)加1;
3) RIP認(rèn)為好的路由就是它通過的路由器的數(shù)目少, 即優(yōu)先選擇跳數(shù)少的路徑;
4) RIP允許一條路徑最多只能包含15個路由器(即最多允許15跳), 因此距離等于16時表示網(wǎng)絡(luò)不可達(dá). 可見RIP只適用于小型互聯(lián)網(wǎng).
5) RIP默認(rèn)在任意兩個使用RIP協(xié)議的路由器之間每30秒廣播一次RIP路由更新信息. 以便于自動建立并維護路由表(動態(tài)維護).
6) 在RIP中不支持子網(wǎng)掩碼的RIP廣播, 所以RIP中每個網(wǎng)絡(luò)的子網(wǎng)掩碼必須相同. 但在新的RIP2中, 支持變長子網(wǎng)掩碼和CIDR.
RIP 協(xié)議特點:
1)僅和相鄰路由器交換信息?!咀ⅰ咳绻麅蓚€路由器之間的通信不需要經(jīng)過另一個路由器,那么這兩個路由器就是相鄰的。RIP協(xié)議規(guī)定,不相鄰的路由器不交換信息。
2)路由器交換的信息是當(dāng)前本路由器所知道的全部信息,即自己的路由表?!咀ⅰ拷粨Q的信息是:“我到本自制系統(tǒng)中所有網(wǎng)路的(最短)距離,以及到每個網(wǎng)絡(luò)應(yīng)該經(jīng)過的下一跳路由器?!?div style="height:15px;">
(3)按固定的時間間隔交換路由信息?!咀ⅰ棵扛?0秒,路由器根據(jù)收到的路由信息更新路由表。當(dāng)網(wǎng)路拓?fù)浒l(fā)生變化時,路由器也及時向相鄰路由器通告拓?fù)渥兓蟮穆酚尚畔ⅰ?div style="height:15px;">
距離向量算法
對每一個相鄰路由器發(fā)送過來的RIP報文,進行以下步驟:
1)對地址為X的相鄰路由器發(fā)來的RIP報文,先修改此報文中的所有項目:把“下一跳”字段中的地址都改為X,并把所有的"距離"字段的值加1.每個項目都有三個關(guān)鍵數(shù)據(jù),即:目的網(wǎng)絡(luò)N,距離是d,下一跳路由器是X。
2)對修改后的RIP報文中的每一個項目,進行如下步驟:
* 若原來的路由表中沒有目的網(wǎng)絡(luò)N,則把該項目添加到路由表中;
* 否則, 若下一跳路由器地址是X,則把收到的項目替換原路由表中的項(使用最新的路由信息);
* 否則, 若收到的項目中距離d小于路由表中的距離,則進行更新;
3)若3分鐘還沒有收到相鄰路由器的更新路由表,則把此相鄰路由器記為不可到達(dá)的路由器,即把距離設(shè)置為16。
4)返回
RIP路由協(xié)議優(yōu)缺點
優(yōu)點是配置簡單,非常適用于小規(guī)模網(wǎng)絡(luò)?
RIP協(xié)議的缺點包括:
1)大量廣播?RIP向所有鄰居每隔30秒廣播一次完整的路由表,將占用寶貴的帶寬資源,在較慢的廣域網(wǎng)鏈路上問題更加明顯?
2)沒有成本概念?RIP沒有網(wǎng)絡(luò)延遲和鏈路成本的概念?當(dāng)采用RIP時,路由/轉(zhuǎn)發(fā)的決定只是基于跳數(shù), 這樣很容易導(dǎo)致無法選擇最佳路由? 例如,一條鏈路擁有較高的帶寬,但是跳數(shù)較多,從而不能被選擇?
3)支持的網(wǎng)絡(luò)規(guī)模有限?由于RIP路由協(xié)議最多只支持16個步跳,當(dāng)超過該跳數(shù)時,網(wǎng)絡(luò)將認(rèn)為無法到達(dá)?因此,RIP只能適用于規(guī)模較少的網(wǎng)絡(luò)?
4)當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時, 會出現(xiàn)慢收斂現(xiàn)象(需要較長時間才能將此信息傳送到所有路由器), 俗稱”壞消息傳的慢”, 使更新過程的收斂時間長;
小結(jié):RIP是應(yīng)用層協(xié)議, 它使用UDP傳送數(shù)據(jù)(端口520). RIP協(xié)議選擇的路徑不一定是最短的, 但一定是具有最少路由器的路徑.
OSPF協(xié)議
OSPF (Open Shortest Path First, 開放最短路徑優(yōu)先)。它是為克服RIP的缺點在1989年開發(fā)出來的。OSPF的原理很簡單,但實現(xiàn)起來卻較復(fù)雜?!伴_放”表明OSPF協(xié)議不是受某一家廠商控制,而是公開發(fā)表的?!白疃搪窂絻?yōu)先”是因為使用了Dijkstra最短路徑算法。
請注意:OSPF只是一個協(xié)議的名字,它并不表示其他的路由選擇協(xié)議不是“最短路徑優(yōu)先”。實際上,所有的在自治系統(tǒng)內(nèi)部使用的路由選擇協(xié)議(包括RIP協(xié)議)都是要尋找一條最短的路徑。
OSPF最主要的特征就是使用分布式的鏈路狀態(tài)協(xié)議(link state protocol),而不是像RIP那樣的距離向量協(xié)議。和RIP協(xié)議相比,OSPF的四個要點和RIP的都不一樣:
(1)OSPF向本自治系統(tǒng)中所有路由器發(fā)送信息。這里使用的方法是洪泛法(flooding),這就是路由器通過所有輸出端口向所有相鄰的路由器發(fā)送信息。而每一個相鄰路由器又再將此信息發(fā)往其所有的相鄰路由器(但不再發(fā)送給剛剛發(fā)來信息的那個路由器)。這樣,最終整個區(qū)域中所有的路由器都得到了這個信息的一個副本。我們應(yīng)注意,RIP協(xié)議是僅僅向自己相鄰的幾個路由器發(fā)送信息。
(2)OSPF發(fā)送的信息就是與本路由器相鄰的所有路由器的鏈路狀態(tài),但這只是路由器所知道的部分信息。所謂“鏈路狀態(tài)”就是說明本路由器都和哪些路由器相鄰,以及該鏈路的“度量”(metric)。OSPF將這個“度量”表示為費用、距離、時延、帶寬等。這些都由網(wǎng)絡(luò)管理人員來決定,因此較為靈活。有時為了方便就稱這個度量為“代價”(注意:對于RIP協(xié)議,發(fā)送的信息是:“到所有網(wǎng)絡(luò)的距離和下一跳路由器”)。
(3)OSPF只有當(dāng)鏈路狀態(tài)發(fā)生變化時,路由器才向所有路由器用洪泛法發(fā)送此信息。而不像RIP那樣,不管網(wǎng)絡(luò)拓?fù)溆袩o發(fā)生變化,路由器之間都要定期交換路由表的信息。
(4)OSPF是網(wǎng)絡(luò)層協(xié)議, 他不使用UDP/TCP而是直接使用IP數(shù)據(jù)報傳送(其IP數(shù)據(jù)報首部的協(xié)議字段為89).且OSPF數(shù)據(jù)報較短, 不會導(dǎo)致IP數(shù)據(jù)報分片, 因此更加高效; 而RIP是應(yīng)用層協(xié)議, 他在傳輸層使用UDP協(xié)議.
除了以上區(qū)別之外, OSPF還有以下特點:
1) OSPF對不同的鏈路可根據(jù)IP分組的不同服務(wù)類型(TOS)而設(shè)置成不同的代價. 因此, OSPF對于不同類型的業(yè)務(wù)可計算出不同的路由, 因此十分靈活.
2) 如果到同一個目的網(wǎng)絡(luò)有多條相同代價的路徑, 那么OSPF可將通信量分配給這幾條路徑, 這叫做多路徑之間的負(fù)載均衡.
3) 所有在OSPF路由器之間交換的分組都具有鑒別功能, 因而保證了僅在可信賴的路由器之間交換鏈路狀態(tài)信息.
4) OSPF支持可變長度的子網(wǎng)劃分和無分類編址CIDR.
5) 每一個鏈路狀態(tài)都帶上一個32位的序號, 序號越大狀態(tài)就越新.
OSPF基本工作原理
由于各路由器之間頻繁地交換鏈路狀態(tài)信息, 因此所有的路由器最終都能建立一個鏈路狀態(tài)數(shù)據(jù)庫. 這個數(shù)據(jù)庫實際上就是全網(wǎng)的拓?fù)浣Y(jié)構(gòu)圖, 他在全網(wǎng)范圍內(nèi)是一致的(這稱為鏈路狀態(tài)數(shù)據(jù)庫的同步). 然后每個路由器就根據(jù)這個全網(wǎng)拓?fù)浣Y(jié)構(gòu)圖, 使用Dijkstra最短路徑算法計算從自己到各目的網(wǎng)絡(luò)的最優(yōu)路徑, 以此構(gòu)造自己的路由表. 在此之后, 當(dāng)鏈路狀態(tài)發(fā)生變化時, 每個路由器重新計算到各目的網(wǎng)絡(luò)的最優(yōu)路徑, 構(gòu)造新的路由表.
OSPF的鏈路狀態(tài)數(shù)據(jù)庫能較快的進行更新, 使各個路由器能及時更新其路由表. OSPF的更新過程收斂得快是其重要的優(yōu)點.
{注意: 雖然使用Dijkstra算法能夠計算出完整的最優(yōu)路徑, 但是路由表不會存儲完整路徑, 而只存儲”下一跳”(只有到了下一跳路由器, 才能知道再下一跳應(yīng)當(dāng)怎么走)}
劃分區(qū)域
為了使OSPF能夠用于規(guī)模很大的網(wǎng)絡(luò), OSPF將一個自治系統(tǒng)再劃分為若干個更小的范圍, 叫做區(qū)域. 每一個區(qū)域都有一個32位的區(qū)域標(biāo)示符(用點分十進制表示). 區(qū)域也不能太大, 在一個區(qū)域內(nèi)的路由器最好不要超過200個.
劃分區(qū)域的好處是: 將利用洪泛法交換鏈路狀態(tài)信息的范圍局限于每一個區(qū)域而不是整個的自治系統(tǒng), 這就減少了整個網(wǎng)絡(luò)上的通信量. 由于區(qū)域內(nèi)部路由器僅與同區(qū)域的路由器交換LSA信息,這樣LSA報文數(shù)量及鏈路狀態(tài)信息庫表項都會極大減少,SPF計算速度因此得到提高。
在一個區(qū)域內(nèi)部的路由器只知道本區(qū)域的完整網(wǎng)絡(luò)拓?fù)? 而不知道其他區(qū)域的網(wǎng)絡(luò)拓?fù)淝闆r.
這些區(qū)域也有層次之分, 處在上層的域叫做主干區(qū)域, 負(fù)責(zé)連通其他下層的區(qū)域, 并且還連接其他自治域;
OSPF分組類型與OSPF工作過程
類型
用途
問候分組
用來發(fā)現(xiàn)和維持鄰站的可達(dá)性
數(shù)據(jù)庫描述分組
向鄰站發(fā)送自己的鏈路狀態(tài)數(shù)據(jù)庫中的所有鏈路狀態(tài)項目的摘要信息
鏈路狀態(tài)請求分組
向?qū)Ψ秸埱蟀l(fā)送某些鏈路狀態(tài)項目的詳細(xì)信息
鏈路狀態(tài)更新分組
用洪泛法對全網(wǎng)更新鏈路狀態(tài)
鏈路狀態(tài)確認(rèn)分組
對鏈路更新分組的確認(rèn)
通常每隔10秒, 每兩個相鄰路由器就要交換一次問候分組, 以便知道哪些站可達(dá).
(1)在路由器剛開始工作時, OSPF讓每一個路由器使用數(shù)據(jù)庫描述分組和相鄰路由器交換本數(shù)據(jù)庫中已有的鏈路狀態(tài)摘要信息. 然后, 路由器就使用鏈路狀態(tài)請求分組向?qū)Ψ秸埱蟀l(fā)送自己所缺少的某些鏈路狀態(tài)項目的詳細(xì)信息. 經(jīng)過一系列的這種分組交換, 全網(wǎng)同步的鏈路數(shù)據(jù)庫就建立了.
(2)在網(wǎng)絡(luò)運行的過程中, 只要一個路由器的鏈路狀態(tài)發(fā)生變化, 該路由器就要使用鏈路狀態(tài)更新分組, 用洪泛法向全網(wǎng)更新鏈路狀態(tài). 其他路由器在更新后, 發(fā)送鏈路狀態(tài)確認(rèn)分組對更新進行確認(rèn).
(3)為了確保鏈路狀態(tài)數(shù)據(jù)庫與全網(wǎng)的狀態(tài)保持一致, OSPF還規(guī)定每隔一段時間(如30分鐘), 要刷新一次數(shù)據(jù)庫中的鏈路狀態(tài). 由于一個路由器的鏈路狀態(tài)只涉及與相鄰路由器的連通狀態(tài), 因而與整個互聯(lián)網(wǎng)的規(guī)模并無直接關(guān)系. 因此, 當(dāng)互聯(lián)網(wǎng)規(guī)模很大時, OSPF協(xié)議要比RIP好得多, 而且OSPF協(xié)議沒有”壞消息傳的慢”的問題.
BGP協(xié)議
BGP(Border Gateway Protocol)是一種不同自治系統(tǒng)的路由器之間交換路由信息的協(xié)議, 它的基本功能是在自治系統(tǒng)間自動交換無環(huán)路的路由信息, 他是一種外部網(wǎng)關(guān)協(xié)議(EGP), 邊界網(wǎng)關(guān)協(xié)議常常應(yīng)用于互聯(lián)網(wǎng)的網(wǎng)關(guān)之間. 路由表包含已知路由器的列表, 路由器能夠到達(dá)的地址以及到達(dá)每個路由器的跳數(shù).
由于:
1) 因特網(wǎng)的規(guī)模太大, 使得自治系統(tǒng)之間路由選擇非常困難;
2) 對于自治系統(tǒng)之間的路由選擇, 要尋找最佳路由是很不現(xiàn)實的;
3) 自治系統(tǒng)之間的路由選擇必須考慮有關(guān)策略;
因此, 邊界網(wǎng)關(guān)協(xié)議BGP只能是力求尋找一條能夠到達(dá)目的網(wǎng)絡(luò)且比較好的路由(不能兜圈子), 而非要找到一條最佳路由.
BGP采用的是”路徑向量選擇協(xié)議”, 他與距離向量協(xié)議和鏈路狀態(tài)協(xié)議都有很大的區(qū)別. BGP是應(yīng)用層協(xié)議, 他是基于TCP的;
BGP協(xié)議工作原理
每一個自治系統(tǒng)管理員要選擇至少一個路由器(可以有多個)作為該自治系統(tǒng)的”BGP發(fā)言人”. 一個BGP發(fā)言人與其他自治系統(tǒng)中的BGP發(fā)言人要交換路由信息, 就要首先建立TCP連接, 然后在此連接上交換BGP報文以建立BGP會話, 再利用BGP會話交換路由信息. 當(dāng)所有BGP發(fā)言人都互相交換網(wǎng)絡(luò)可達(dá)性信息之后, 各BGP發(fā)言人就可找出到達(dá)各個自治系統(tǒng)的比較好的路由.
每個BGP發(fā)言人除了必須運行BGP協(xié)議外, 還必須運行該AS所使用的內(nèi)部網(wǎng)關(guān)協(xié)議(如OSPF,RIP等), BGP所交換的網(wǎng)絡(luò)可達(dá)性信息就是要到達(dá)某個網(wǎng)絡(luò)(用網(wǎng)絡(luò)前綴表示)所要經(jīng)歷的一系列AS;
BGP協(xié)議特點:
1) BGP協(xié)議交換路由信息的結(jié)點數(shù)量級是自治系統(tǒng)的數(shù)量級, 這要比這些自治系統(tǒng)中的網(wǎng)絡(luò)數(shù)少得多;
2) 每一個自治系統(tǒng)中BGP發(fā)言人(或邊界路由器)的數(shù)目是很少的. 這樣就使得自治系統(tǒng)之間的路由選擇不致過分復(fù)雜;
3) BGP支持CIDR, 因此BGP的路由表也就應(yīng)當(dāng)包括目的網(wǎng)絡(luò)前綴, 下一跳路由器, 以及到達(dá)該目的網(wǎng)絡(luò)所要經(jīng)過的各個自治系統(tǒng)序列;
4) 在BGP剛運行時, BGP的鄰站是交換整個的BGP路由表, 但以后只需要在發(fā)生變化時更新有變化的部分. 這樣做對節(jié)省網(wǎng)絡(luò)帶寬和減少路由器的處理開銷方面都有好處;
BGP-4使用的四種報文
打開(open)報文
用來與相鄰的另一個BGP發(fā)言人建立關(guān)系
更新(update)報文
用來發(fā)送某一路由的信息, 以及列出要撤銷的多條路由.
?;?keep-alive)報文
用來確認(rèn)打開報文和周期性地證實鄰站關(guān)系
通知(notification)報文
用來發(fā)送檢測到的差錯
IP組播與IGMP協(xié)議
使用組播的緣由是: 有的應(yīng)用程序要把一個分組發(fā)送給多個目的主機. 不是讓源主機給每一個目的主機都發(fā)送一個單獨的分組, 而是讓源主機把單個分組發(fā)送給一個組播地址, 該組播地址標(biāo)識一組地址. 網(wǎng)絡(luò)把這個分組給該組中的每一個主機都投遞一份拷貝(單播與組播的比較示意圖如上圖所示). 主機可以選擇加入/離開一個組, 從而一個主機可以同時屬于多個組; 主機使用一個稱作IGMP(因特網(wǎng)組管理協(xié)議)的協(xié)議加入組播組.
需要注意:
(1)主機組播時僅發(fā)送一份數(shù)據(jù), 只有數(shù)據(jù)在傳送路徑出現(xiàn)分岔時才將分組復(fù)制后繼續(xù)轉(zhuǎn)發(fā). 這樣對發(fā)送者而言, 數(shù)據(jù)只需發(fā)送一次就可以發(fā)送到所有接收者, 大大減輕了網(wǎng)絡(luò)的負(fù)載和發(fā)送者的負(fù)擔(dān).
(2)組播需要路由器的支持才能實現(xiàn), 能夠運行組播協(xié)議的路由器稱為組播路由器.
IP組播地址
IP組播使用D類地址格式. D類地址的前四位是1110, 因此D類地址范圍為224.0.0.0~239.255.255.255. 每一個D類IP地址標(biāo)志一個組播組;
組播數(shù)據(jù)報和一般IP數(shù)據(jù)報的區(qū)別在于它使用D類IP地址僅作為目的地址, 并且首部中協(xié)議字段值為2, 表明使用IGMP協(xié)議. 需要注意的是:
1)組播數(shù)據(jù)報也是”盡最大努力交付”, 不提供可靠交付(組播一定是僅應(yīng)用于UDP);
2)組播地址只能用于目的地址, 而不能用于源地址;
3)組播數(shù)據(jù)報不產(chǎn)生ICMP差錯報文. 因此, 若在ping命令后面鍵入組播地址, 則永遠(yuǎn)不會收到響應(yīng);
4)并非所有的D類地址都可以作為組播地址;
IP組播地址與MAC地址映射
IGMP協(xié)議
IGMP協(xié)議用來在IP主機和與其直接相鄰的組播路由器之間建立、維護組播組成員關(guān)系。 組播路由器不需要保存所有主機的成員關(guān)系,它只是通過IGMP協(xié)議了解每個接口連接的網(wǎng)段上是否存在某個組播組的組成員。而主機只需要保存自己加入了哪些組播組。
簡而言之,IGMP協(xié)議是讓連接在本地局域網(wǎng)上的組播路由器知道本局域網(wǎng)上是否有主機上的某個進程參加或退出了某個組播組。
IGMP應(yīng)視作TCP/IP協(xié)議的一部分, 其工作可以分為兩個階段:
1) 當(dāng)某個主機加入新的組播組時, 該主機應(yīng)向組播組的組播地址發(fā)送一個IGMP報文, 聲明自己要成為該組的成員. 本地組播路由器收到ICMP報文后, 將組成員關(guān)系轉(zhuǎn)發(fā)給因特網(wǎng)上其他的組播路由器.
2) 因為組成員的關(guān)系是動態(tài)的, 本地組播路由器要周期性地探詢本地局域網(wǎng)上的路由器, 以便知道這些主機是否還繼續(xù)是組的成員. 只要對某個組有一個主機響應(yīng), 那么組播路由器就認(rèn)為這個組是活躍的. 但一個組在經(jīng)過幾次探詢之后仍然沒有一個主機響應(yīng), 則不再將該組的成員關(guān)系轉(zhuǎn)發(fā)給其他的組播路由器.
組播路由選擇實際上就是要找出以源主機為根節(jié)點的組播轉(zhuǎn)發(fā)樹, 其中每一個分組在每條鏈路上只傳送一次(即在組播轉(zhuǎn)發(fā)樹上的路由器不會收到重復(fù)的組播數(shù)據(jù)報). 對不同的多播組對應(yīng)于不同的多播轉(zhuǎn)發(fā)樹; 同一個多播組, 對不同的源點也會有不同的多播轉(zhuǎn)發(fā)樹.
[附]組播/廣播/單播的不同
廣播是指在IP子網(wǎng)內(nèi)廣播數(shù)據(jù)包,所有在子網(wǎng)內(nèi)部的主機都將收到這些數(shù)據(jù)包。廣播意味著網(wǎng)絡(luò)向子網(wǎng)每一個主機都投遞一份數(shù)據(jù)包,不論這些主機是否樂于接收該數(shù)據(jù)包。所以廣播的使用范圍非常小,只在本地子網(wǎng)內(nèi)有效,通過路由器和網(wǎng)絡(luò)設(shè)備控制廣播傳輸。
廣播地址是專門用于同時向網(wǎng)絡(luò)中所有工作站進行發(fā)送的一個地址。在使用TCP/IP 協(xié)議的網(wǎng)絡(luò)中,主機標(biāo)識段host ID 為全1 的IP 地址為廣播地址,廣播的分組傳送給host ID段所涉及的所有計算機。如,對于10.1.1.0 (255.255.255.0 )網(wǎng)段,其廣播地址為10.1.1.255,當(dāng)發(fā)出一個目的地址為10.1.1.255 的分組時,它將被分發(fā)給該網(wǎng)段上的所有計算機。
組播協(xié)議與現(xiàn)在廣泛使用的單播協(xié)議的不同之處在于,一個主機用單播協(xié)議向n個主機發(fā)送相同的數(shù)據(jù)時,發(fā)送主機需要分別向n個主機發(fā)送,共發(fā)送n次。一個主機用組播協(xié)議向n個主機發(fā)送相同的數(shù)據(jù)時,只要發(fā)送1次,其數(shù)據(jù)由網(wǎng)絡(luò)中的路由器和交換機逐級進行復(fù)制并發(fā)送給各個接收方,這樣既節(jié)省服務(wù)器資源也節(jié)省網(wǎng)絡(luò)主干的帶寬資源。
路由表的內(nèi)容
標(biāo)準(zhǔn)的路由表最少應(yīng)具有四個項目: 目的網(wǎng)絡(luò)IP地址, 子網(wǎng)掩碼, 下一跳IP地址和接口; 而Linux系統(tǒng)中的路由表包含有如圖所示內(nèi)容:
Destination
目標(biāo)網(wǎng)絡(luò)或主機
Gateway
網(wǎng)關(guān)地址, *代表是目標(biāo)和本機在同一個網(wǎng)絡(luò), 不需要路由
Genmask
網(wǎng)絡(luò)掩碼
Flags
路由項標(biāo)志, 常見的標(biāo)志有如下5種:
U: 該路由項是活動的
H: 該路由項的目標(biāo)是一臺主機
G: 該路由項的目標(biāo)是網(wǎng)關(guān)
D: 該路由項是由重定向生成的
M: 該路由項被重定向修改過
Metric
路由距離, 即到達(dá)指定網(wǎng)絡(luò)所需的中轉(zhuǎn)數(shù)
Ref
該路由項被引用的次數(shù)(Linux未使用)
Use
該路由項被使用的次數(shù)
Iface
該路由項對應(yīng)的輸出網(wǎng)卡接口
IPv6簡介
IPv6數(shù)據(jù)報格式
IPv6數(shù)據(jù)報的基本首部長度變?yōu)楣潭ǖ?0字節(jié),首部只有8個字段, 稱為基本首部, 用擴展首部取代了IPv4首部中的可選項, 將不必要的功能取消了, 便于中間節(jié)點高效率對其進行處理。
IPv6基本首部
IPv6數(shù)據(jù)報的基本首部是40字節(jié)的固定首部,其攜帶的信息為數(shù)據(jù)報傳輸途中經(jīng)過的節(jié)點都必須處理的信息。
IPv6首部字段含義
版本(version)
4位
通信類型(traffic class)
8位, 用來區(qū)分不同的IPv6數(shù)據(jù)報的類別或優(yōu)先級
流標(biāo)簽(flow label)
20位, 所謂流就是因特網(wǎng)上從特定源到特定目的的一系列數(shù)據(jù)報。而在這個“流”所經(jīng)過的路徑上的路由器都保證指定的服務(wù)質(zhì)量(QoS)。所有屬于同一個流的數(shù)據(jù)報都有相同的流標(biāo)識
有效載荷長度(payload length)
16 位, 基本首部以外的字節(jié)數(shù),包括擴展首部和數(shù)據(jù)部分
下一首部(頭)(next header)
8位, 定義了緊跟在基本首部后面的擴展首部的數(shù)字標(biāo)識號或數(shù)據(jù)部分的協(xié)議類型。
若沒有擴展首部,相當(dāng)于IPv4中的協(xié)議字段。
若有擴展首部,用來說明緊跟在基本首部后的第一個擴展首部的數(shù)字標(biāo)識號,即是擴展首部的類型。
每個擴展首部也包含下一首部字段,下一首部的數(shù)字標(biāo)識號在RFC 1700中定義。
跳數(shù)極限/躍點限制(hop limit)
8位。其作用類似于IPv4的TTL字段
源/目的地址(source/destination  address)
各128位, 標(biāo)識發(fā)送/接收數(shù)據(jù)報節(jié)點的IPv6地址
IPv6數(shù)據(jù)報格式的主要變化
(1)取消首部的校驗和字段。提高數(shù)據(jù)報的傳輸效率。
(2)基本首部增加了流標(biāo)識和傳輸類別字段,以加強對多媒體實時數(shù)據(jù)傳送的支持。
(3)增加了鑒別擴展首部(Authentication Header,AH)和加密安全載荷擴展首部(Encapsulating Security Payload header,ESP),以增強安全性。
(4)所有的擴展首部和數(shù)據(jù)合起來叫數(shù)據(jù)報的有效載荷/凈載荷;
IPv6地址表示方法
1、用十六進制表示,4位一組,中間用“:”隔開,如:FE08:….
2、零壓縮, 若以零開頭可以省略,全零的組可用“::”表示,如: 1:2::ACDR:….
3、地址前綴長度用“/xx”來表示,如: 1::1/64
IPv6主要特點
簡化的報頭和靈活的擴展
層次化的地址結(jié)構(gòu)
即插即用的連網(wǎng)方式
網(wǎng)絡(luò)層的認(rèn)證與加密
服務(wù)質(zhì)量的滿足
對移動通訊更好的支持
移動IP的基本通信流程
(1)本地代理和外地代理不停地向網(wǎng)上發(fā)送代理廣告消息,以聲明自己的存在。
(2)移動主機收到這些消息,確定自己是在本地網(wǎng)還是在外地網(wǎng)。
(3)如果移動主機發(fā)現(xiàn)自己仍在本地網(wǎng),即收到的是本地代理發(fā)來的消息,則不啟動移動功能。如果是從外地網(wǎng)絡(luò)重新返回的,則向本地代理發(fā)出取消注冊的消息,聲明自己回到了本地網(wǎng)。
(4)當(dāng)移動主機檢測到它移動到外地網(wǎng)時,則獲得接管地址。
(5)然后移動主機向本地代理登記,表明自己已離開本地網(wǎng),把所獲得的接管地址通知本地代理。
(6)登記完畢后,所有發(fā)給移動主機的數(shù)據(jù)包被本地代理截獲,經(jīng)本地代理封裝后,通過隧道發(fā)到外地網(wǎng)絡(luò)的外地代理或移動主機自身。第一種情況下,外地代理再把數(shù)據(jù)包轉(zhuǎn)發(fā)給移動主機。此時,數(shù)據(jù)包在不同子網(wǎng)間傳送成功。
(7)移動主機發(fā)送數(shù)據(jù)到一般的IP主機時,按正常的IP尋址方法發(fā)送,不必通過本地代理。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
王道考研 計算機網(wǎng)絡(luò)筆記 第四章:網(wǎng)絡(luò)層
網(wǎng)絡(luò)工程師(第五版)第六章 網(wǎng)絡(luò)互連與互聯(lián)網(wǎng)筆記
IP路由基礎(chǔ),直連路由,靜態(tài)路由,動態(tài)路由,F(xiàn)IB,一分鐘了解下
IP 基礎(chǔ)知識“全家桶”,45 張圖一套帶走
網(wǎng)絡(luò)互連
大型網(wǎng)絡(luò)公司面試真題,計算機網(wǎng)絡(luò)常識詳解
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服