全方位詳解路由器協(xié)議
了解路由器協(xié)議相關知識非常重要,可能好多人還不了解路由器協(xié)議的發(fā)展和目前應用現(xiàn)狀,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。互聯(lián)網(wǎng)協(xié)議(Internet Protocol)是規(guī)范計算機網(wǎng)絡中數(shù)據(jù)傳送的一套路由器協(xié)議。目前使用的是IPv4, IPv6在試驗階段。IPv4,是路由器協(xié)議(Internet Protocol,IP)的第四版,也是***個被廣泛使用,構成現(xiàn)今互聯(lián)網(wǎng)技術的基石的路由器協(xié)議。1981年Jon Postel 在RFC791中定義了IP。
IPv4使用32位地址,因此最多可能有4,294,967,296(=232)個地址。一般的書寫法為4個用小數(shù)點分開的十進制數(shù)。也有人把4個字節(jié)的數(shù)字化成一個巨型整數(shù),但這種標示法并不常見。另一方面,目前還并非很流行的IPv6使用的128位地址所采用的位址記數(shù)法,在IPv4也有人用,但使用范圍更少。過去IANAIP地址分為A,B,C,D 4類,把32位的地址分為兩個部分:前面的部分代表網(wǎng)絡地址,由IANA分配,后面部分代表局域網(wǎng)地址。如在C類網(wǎng)絡中,前24位為網(wǎng)絡地址,后8位為局域網(wǎng)地址,可提供254個設備地址(因為有兩個地址不能為網(wǎng)絡設備使用: 255為廣播地址,0代表此網(wǎng)絡本身) 。網(wǎng)絡掩碼(Netmask) 限制了網(wǎng)絡的范圍,1代表網(wǎng)絡部分,0代表設備地址部分,例如C類地址常用的網(wǎng)絡掩碼為255.255.255.0。
IP包由首部(header)和實際的數(shù)據(jù)部分組成。數(shù)據(jù)部分一般用來傳送其它的路由器協(xié)議,如TCP, UDP,ICMP等。數(shù)據(jù)部分最長可為65515字節(jié)(Byte)(=2xx16 - 1 - 最短首部長度20字節(jié)) 。一般而言,低層(鏈路層) 的特性會限制能支持的IP包長。例如以太網(wǎng)(Ethernet)協(xié)議,有一個路由器協(xié)議參數(shù),即所謂的***傳輸單元(Maximum Transfer Unit, MTU) ,為1518字節(jié),以太網(wǎng)的幀首部使用18字節(jié),剩給整個IP包(首部+數(shù)據(jù)部分)的只有1500字節(jié)。還有一些底層網(wǎng)絡只能支持更短的包長。這種情況下,IP路由器協(xié)議提供一個分割(fragment)的可選功能。長的IP包會被分割成許多短的IP包,每一個包中攜帶一個標志(Fragmentid)。發(fā)送方(比如一個路由器) 將長IP包分割,一個一個發(fā)送,接送方(如另一個路由器)按照相應的IP地址和分割標志將這些短IP包再組裝還原成原來的長IP包。
IP路由
Ipv4并不區(qū)分作為網(wǎng)絡終端的主機(host) 和網(wǎng)絡中的中間設備如路由器中間的差別。每臺電腦可以即做主機又做路由器。路由器用來聯(lián)結不同的網(wǎng)絡。所有用路由器聯(lián)系起來的這些網(wǎng)絡的總和就是互聯(lián)網(wǎng)。IPv4技術即適用于局域網(wǎng)(LAN) 也適用于廣域網(wǎng)。一個IP包從發(fā)送方出發(fā),到接送方收到,往往要穿過通過路由器連接的許許多多不同的網(wǎng)絡。每個路由器都擁有如何傳遞IP包的知識,這些知識記錄在路由表中。路由表中記錄了到不同網(wǎng)絡的路徑,在這兒每個網(wǎng)絡都被看成一個目標網(wǎng)絡。路由表中記錄由路由器協(xié)議管理,可能是靜態(tài)的記錄比如由網(wǎng)絡管理員寫入的,也有可能是由路由器協(xié)議動態(tài)的獲取的。有的路由器協(xié)議可以直接在IP路由器協(xié)議上運行。
在網(wǎng)絡負荷很重或者出錯的情況下,路由器可以將收到的IP包丟棄。在網(wǎng)絡負荷重的時候,同樣一個IP包有可能由路由器決定走了不同的路徑。路由器對每一個IP包都是單獨選擇路由的。這也提高了IP通信的可靠性。但單是IP層上的包傳輸,并不能保證完全可靠。IP包可能會丟失; 可能會有重復的IP包被接受方收到; IP包可能會走不同的路徑,不能保證先發(fā)的先到; 接受方收到的可能是被分割了的IP包。在IP之上再運行TCP路由器協(xié)議則解決這些缺點提供了一個可靠的數(shù)據(jù)通路。
ICMP
互聯(lián)網(wǎng)控制消息路由器協(xié)議(Internet Control Messages Protocol,ICMP) 用于查錯和控制(如),是IP路由器協(xié)議不可能缺少的幫手。幾乎任何的IP協(xié)議的實施(Implementation)都伴隨一個ICMP路由器協(xié)議的實施。ICMP路由器協(xié)議實現(xiàn)在IP之上,即ICMP包是作為IP的數(shù)據(jù)部分來傳送的。ICMP的一個重要的應用是網(wǎng)絡擁塞控制: 路由器丟棄一個IP包時,一般會用ICMP發(fā)一個消息給這個IP包的原發(fā)送者,原發(fā)送者可以相應的降低IP包的發(fā)送頻率,以降低或避免IP包再被丟棄的可能性。ICMP的另一個重要的應用在于,將傳送ICMP消息的IP包禁止分割位(Don't Fragment-Bit)設置上,就可以利用ICMP的來測量一段網(wǎng)絡的***傳輸單元(MTU) 。
ICMP
Ipv4可以運行在各種各樣的底層網(wǎng)絡上,比如端對端的串行數(shù)據(jù)鏈路(PPP路由器協(xié)議和SLIP協(xié)議) ,衛(wèi)星鏈路等等。局域網(wǎng)中最常用的是以太網(wǎng)。一個用于IP包的以太網(wǎng)數(shù)據(jù)幀,在IP包首部前有一個14字節(jié)的以太網(wǎng)幀首部,在IP數(shù)據(jù)部分后添加了一個32位(4字節(jié)) 的CRC校驗。除了1518字節(jié)的***傳輸單元(MTU) 限制外,以太網(wǎng)還有最小傳輸單元的限制: 總幀長不能小于64字節(jié)。如果IP包太短,比如IP數(shù)據(jù)部分短于26字節(jié),那么后面會添0(Padding) ,這時IP首部中的'包長度'指示了真正的包長。以太網(wǎng)使用48位的地址。每個以太網(wǎng)網(wǎng)卡都有一個***的48位的硬件地址。所有的位均為1的地址是以太網(wǎng)廣播地址。發(fā)送數(shù)據(jù)的以太網(wǎng)網(wǎng)卡必須知道數(shù)據(jù)接送方的以太網(wǎng)地址才能把數(shù)據(jù)發(fā)給它。
地址解析路由器協(xié)議ARP(Address Resolution Protocol) 用于將IP地址轉換成以太網(wǎng)地址。每臺計算機上都有一個ARP列表,里面存儲了以太網(wǎng)中不同的IP地址與以太網(wǎng)地址的對應關系。如果一臺計算機發(fā)現(xiàn)某個目標IP地址沒有對應的以太網(wǎng)地址,它會發(fā)一個ARP請求(Request) 到以太網(wǎng)中詢問,擁有該IP地址的計算機就會發(fā)一個ARP應答(Reply)來通知它自己的以太網(wǎng)地址。