一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

網(wǎng)絡(luò)基礎(chǔ)知識(shí)講座之八:初步理解IP協(xié)議

 todaytomo 2007-01-04

  本文將介紹理解路由問(wèn)題所需要的IP協(xié)議知識(shí)。互聯(lián)網(wǎng)上的大多數(shù)東西都使用IP協(xié)議。與以太網(wǎng)不同,了解這個(gè)協(xié)議對(duì)于理解網(wǎng)絡(luò)在更大范圍的應(yīng)用非常重要。在以后發(fā)表的文章中,這個(gè)講座將介紹TCP和UDP協(xié)議、路由理論、然后再深入研究具體的路由協(xié)議。

  IP協(xié)議直接位于2層數(shù)據(jù)鏈路層之上,負(fù)責(zé)生成發(fā)往目的地的數(shù)據(jù)報(bào)。IP協(xié)議原來(lái)在RFC 791中定義,后來(lái)進(jìn)行了修改并且進(jìn)行了多次重新修訂。但是,IP協(xié)議的基本設(shè)計(jì)思想仍沒(méi)有變。IP層不提供任何類型的流量控制或者排序功能。這些功能留給上層。我們將使用“數(shù)據(jù)報(bào)” (datagram)這個(gè)詞匯指一個(gè)完整的IP信息,使用“數(shù)據(jù)包”(packet)這個(gè)詞匯指一個(gè)單個(gè)的IP數(shù)據(jù)包。

  IP協(xié)議負(fù)責(zé)接收和發(fā)送指定IP地址數(shù)據(jù)包。但是,IP協(xié)議并不保證數(shù)據(jù)傳遞的可靠性。在IP協(xié)議層中沒(méi)有“重試一下”的概念。由于各種原因,數(shù)據(jù)包有可能出現(xiàn)丟失、損壞、重復(fù)、不按照順序傳遞或者延遲等問(wèn)題。IP協(xié)議還負(fù)責(zé)處理IP選項(xiàng)并且以ICMP錯(cuò)誤和控制消息等方式提供反饋信息。

  IP數(shù)據(jù)報(bào)頭有20個(gè)字節(jié)長(zhǎng),緊接在2層報(bào)頭后面(因?yàn)镮P協(xié)議是第3層協(xié)議)。IP數(shù)據(jù)部分包含一個(gè)完整的TCP或者UDP數(shù)據(jù)包等一切其它的信息,如下面的圖表所示。還要指出的是,如果使用IP選項(xiàng),IP數(shù)據(jù)報(bào)頭可以超過(guò)20個(gè)字節(jié)。

以太網(wǎng)報(bào)頭
IPv4包頭
數(shù)據(jù)(TCP等)

  IP協(xié)議的目標(biāo)很簡(jiǎn)單:生成發(fā)往目的地的數(shù)據(jù)報(bào),而且除了把這個(gè)數(shù)據(jù)包發(fā)送到下一跳路由器之外,不需要擔(dān)心任何事情。實(shí)際上,IP協(xié)議很復(fù)雜,否則,IP數(shù)據(jù)報(bào)頭就不需要那么多的字段。認(rèn)真研究IP數(shù)據(jù)報(bào)頭是非常重要的。這些字段從第一個(gè)字節(jié)開(kāi)始的含義是:

  •版本:使用的IP協(xié)議的版本。IPv4數(shù)據(jù)包將把這個(gè)字段設(shè)置為“4”。

  •報(bào)頭長(zhǎng)度:以4個(gè)字節(jié)的倍數(shù)的方式說(shuō)明報(bào)頭的長(zhǎng)度。因?yàn)楹苌偈褂肐P選項(xiàng)功能。因此,你很可能你看到它的值將是“5”,意味著報(bào)頭的長(zhǎng)度是5個(gè)4字節(jié),也就是20個(gè)字節(jié)。

  •服務(wù)類型:這個(gè)字段很少使用。但是,在理論上,這個(gè)字段旨在向路由器提供轉(zhuǎn)發(fā)隊(duì)列中特定IP數(shù)據(jù)報(bào)優(yōu)先級(jí)順序信息。主要用于提高服務(wù)質(zhì)量。主機(jī)可以選擇設(shè)置各種選項(xiàng),如低延遲、高數(shù)據(jù)吞吐量或者高可靠性等。大多數(shù)路由器都忽略這些選項(xiàng)。

  •總長(zhǎng)度:以字節(jié)為單位具體說(shuō)明包括報(bào)頭在內(nèi)的整個(gè)IP數(shù)據(jù)包的總長(zhǎng)度。因?yàn)檫@個(gè)字段有16位,所以IP數(shù)據(jù)包長(zhǎng)度限制在65K之內(nèi)。這個(gè)數(shù)字定義的是字段所在的IP數(shù)據(jù)包,而不是整個(gè)IP數(shù)據(jù)報(bào)的長(zhǎng)度。

  •IP數(shù)據(jù)報(bào)ID:有時(shí)候稱作“段標(biāo)識(shí)符”。這個(gè)標(biāo)識(shí)符用來(lái)確定一個(gè)具體的IP數(shù)據(jù)包屬于哪一個(gè)IP數(shù)據(jù)報(bào)。如果IP協(xié)議需要把多個(gè)單個(gè)的IP數(shù)據(jù)包組合成一個(gè)IP數(shù)據(jù)報(bào),這個(gè)字段是必要的。

  •標(biāo)志:DF(不分片)位在這個(gè)字段中用來(lái)指示路由器不要把IP數(shù)據(jù)包分段。這里也可以使用MF(更多地分片)標(biāo)識(shí)。

  •段內(nèi)偏移量:原來(lái)數(shù)據(jù)報(bào)中的分段的偏移量,用64位的塊表示。

  •生存時(shí)間(TTL):IP數(shù)據(jù)包在被銷毀之前包含的跳數(shù)。生存時(shí)間是為了避免無(wú)法發(fā)送的數(shù)據(jù)包永遠(yuǎn)在互聯(lián)網(wǎng)上流動(dòng)。

  •協(xié)議類型:具

  當(dāng)路由器收到一個(gè)IP數(shù)據(jù)包的時(shí)候,路由器首先要檢查這個(gè)數(shù)據(jù)包的目的地。如果這臺(tái)路由器有一個(gè)通向目的地的路由,這臺(tái)路由器將減少這個(gè)數(shù)據(jù)包的TTL,重新計(jì)算校驗(yàn)和,然后再把這個(gè)數(shù)據(jù)包發(fā)出去。如果出現(xiàn)錯(cuò)誤,將會(huì)發(fā)出相應(yīng)的ICMP錯(cuò)誤通知,這個(gè)數(shù)據(jù)包將被丟棄。IP協(xié)議就是以這種最簡(jiǎn)單的方式工作的:它遇到每一個(gè)數(shù)據(jù)包都要重復(fù)上述的步驟。

  IP分段對(duì)于IP功能是非常重要的,它提供了這些報(bào)頭字段的真正含義。并非每一個(gè)發(fā)送數(shù)據(jù)包的物理網(wǎng)絡(luò)都能夠接受同樣大小的數(shù)據(jù)包。各種各樣的2層幀格式允許同時(shí)發(fā)送不同大小的數(shù)據(jù)。允許的最大的MTU是65KB,最小的是68字節(jié)。RFC 1122規(guī)定,所有的主機(jī)必須能夠重新組合最多為576字節(jié)的數(shù)據(jù)報(bào),但實(shí)際上是應(yīng)該能夠重新組合與系統(tǒng)接口的MTU規(guī)格相同的數(shù)據(jù)報(bào)。

  當(dāng)在互聯(lián)網(wǎng)上發(fā)送一個(gè)IP數(shù)據(jù)報(bào)的時(shí)候,你不知道沿著每一個(gè)2層鏈路前進(jìn)的MTU將發(fā)生什么情況。你可能通過(guò)以太網(wǎng)連接自己的ISP。但是,你正在設(shè)法訪問(wèn)的遠(yuǎn)程站點(diǎn)也許是在一個(gè)ISDN鏈路上。因此,你的IP數(shù)據(jù)包在到達(dá)最后一個(gè)跳點(diǎn)之前必須要分段。分段可能需要進(jìn)行多次。如果我們要向一個(gè)通過(guò)ISDN連接的遠(yuǎn)程站點(diǎn)發(fā)送一個(gè)2000個(gè)字節(jié)的數(shù)據(jù)包,我們?cè)瓉?lái)可能把這個(gè)數(shù)據(jù)包分段以便符合我們的1500個(gè)字節(jié)的鏈路要求。但它大于576字節(jié)(ISDN的MTU)。因此,在到達(dá)ISDN鏈路之前的最后一個(gè)路由器必須還要對(duì)這個(gè)數(shù)據(jù)包分段。

  應(yīng)該知道,IP不是一個(gè)可靠的協(xié)議。因此,如果任何IP分段在傳輸?shù)穆窂街衼G失,整個(gè)數(shù)據(jù)報(bào)必須要重新發(fā)送。IP沒(méi)有辦法要求得到數(shù)據(jù)報(bào)中丟失的特定部分。因此,當(dāng)出現(xiàn)錯(cuò)誤時(shí),其結(jié)果是重新發(fā)送該數(shù)據(jù)報(bào)所有的分段。有時(shí)候,阻塞的路由器不得不丟棄一些數(shù)據(jù)包。如果被丟棄的數(shù)據(jù)包恰巧是一個(gè)65KB數(shù)據(jù)報(bào)的一部分,那么,整個(gè)數(shù)據(jù)報(bào)必須要重新發(fā)送。TCP或者其它上層協(xié)議一般都知道一個(gè)完整的數(shù)據(jù)報(bào)是否全丟失了,并且能夠要求重新發(fā)送。然而,TCP協(xié)議不能告訴你一個(gè)數(shù)據(jù)報(bào)的片段是否丟失了,因?yàn)镮P收到數(shù)據(jù)報(bào)將是不完整的,并且永遠(yuǎn)不會(huì)向上層TCP協(xié)議發(fā)送這個(gè)數(shù)據(jù)報(bào)。如果TCP協(xié)議從來(lái)沒(méi)有收到這個(gè)數(shù)據(jù)報(bào),這個(gè)數(shù)據(jù)報(bào)最終將被重新發(fā)送。顯然,65K數(shù)據(jù)包的一小部分的丟失對(duì)于緩解一個(gè)阻塞的鏈路并沒(méi)有什么幫助,而是會(huì)引起更嚴(yán)重的阻塞。UDP應(yīng)用程序發(fā)送時(shí)的大小一般不超過(guò)576字節(jié),這有兩個(gè)原因。第一,MTU小于576字節(jié)的鏈路并不多,因此,這個(gè)IP數(shù)據(jù)報(bào)將不會(huì)分段。第二,要記住,576是所有采用IP協(xié)議的端點(diǎn)系統(tǒng)的特殊數(shù)字:它們必須能夠把數(shù)據(jù)報(bào)重新組合為這個(gè)大小。配置有限內(nèi)存的設(shè)備對(duì)于處理大于這個(gè)規(guī)格的數(shù)據(jù)可能會(huì)遇到困難,因此,這個(gè)做法值得推薦。

  假設(shè)我們是一臺(tái)主機(jī),我們想發(fā)送一個(gè)1550個(gè)字節(jié)的數(shù)據(jù)報(bào)(1530個(gè)字節(jié)的數(shù)據(jù)+20個(gè)字節(jié)的報(bào)頭)。但是,我們的MTU是1500個(gè)字節(jié)。我們必須要分為兩個(gè)數(shù)據(jù)包發(fā)送,相關(guān)的IP報(bào)頭看起來(lái)是這樣的:

  • fragment 0, offset = 0, size = 1480, MF位設(shè)置.

  • fragment 1, offset = 1480, size = 50

  分段中的IP ID和IP地址總是與原來(lái)IP數(shù)據(jù)報(bào)中內(nèi)容是一樣的。但是,報(bào)頭的校驗(yàn)值、偏離量和字段長(zhǎng)度肯定要發(fā)生變化。當(dāng)另一方收到第一個(gè)數(shù)據(jù)包并且看到這個(gè)數(shù)據(jù)包是一個(gè)分段的時(shí)候,另一方將等待獲得其它的分段,并且把這些分段重新組合在一起,然后再發(fā)送給上層協(xié)議。

  在這個(gè)數(shù)據(jù)報(bào)發(fā)出之后,假如在IP標(biāo)志中沒(méi)有設(shè)置DF字節(jié),我們就不會(huì)聽(tīng)到任何有關(guān)這個(gè)數(shù)據(jù)報(bào)的消息。但是,如果這個(gè)鏈路的某一個(gè)地方的MTU是400字節(jié)會(huì)發(fā)生什么情況呢?在可以發(fā)送1480字節(jié)的數(shù)據(jù)包之前,這個(gè)鏈路中的路由器會(huì)先對(duì)這個(gè)數(shù)據(jù)包分段。上一篇教程的MTU路徑可用來(lái)解決中間路由器為數(shù)據(jù)包分段的問(wèn)題。分段要耗費(fèi)時(shí)間和寶貴的路由器資源。我們避免過(guò)度分段的主要原因就是因?yàn)檫^(guò)度分段將不可避免地引起通信的延遲。

  對(duì)數(shù)據(jù)包的重新組合總是在最后的目的地完成。因此,中間路由器不需要存儲(chǔ)IP數(shù)據(jù)報(bào)。這也意味著IP數(shù)據(jù)包能夠在不同的路徑上單獨(dú)地路由,而不會(huì)引起混亂。這是一個(gè)需要理解的重要的概念。這將使IP協(xié)議有多種用途。無(wú)論接收方以什么順序收到這個(gè)數(shù)據(jù)包,接收方都能夠根據(jù)IP報(bào)頭中的分段偏移量字段重新把數(shù)據(jù)報(bào)組合起來(lái)。

  現(xiàn)在,我們理解了分段。我們發(fā)現(xiàn)分段提出了這樣一個(gè)問(wèn)題:IP真的與數(shù)據(jù)鏈路層無(wú)關(guān)嗎?

  小結(jié)

  IP協(xié)議是不可靠的。當(dāng)IP數(shù)據(jù)包丟失的時(shí)候,要更高一層的協(xié)議認(rèn)識(shí)到數(shù)據(jù)包的丟失并且要求重新發(fā)送。

  路由器在每一次發(fā)送IP數(shù)據(jù)包的時(shí)候都必須要重新計(jì)算IP報(bào)頭的校驗(yàn)值。

  IP分段能夠讓路由器延遲發(fā)送一個(gè)數(shù)據(jù)包或者在多個(gè)鏈路上發(fā)送數(shù)據(jù)包。端點(diǎn)系統(tǒng)將能過(guò)重新組合整個(gè)IP數(shù)據(jù)報(bào)。

體指明下一個(gè)協(xié)議。也就是在IP數(shù)據(jù)包的數(shù)據(jù)部分中將遇到的報(bào)頭。

  •頭校驗(yàn)和:一個(gè)報(bào)頭的校驗(yàn)和,而不是數(shù)據(jù)的校驗(yàn)和。

  •IP源:原來(lái)發(fā)送數(shù)據(jù)包的主機(jī)的IP地址。

  •IP目的地:IP數(shù)據(jù)包目的地主機(jī)的IP地址。
 
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产高清在线不卡一区| 精品人妻一区二区四区| 极品少妇一区二区三区精品视频| 好吊色欧美一区二区三区顽频| 成人精品一区二区三区综合| 日韩精品成区中文字幕| 国产精品亚洲综合天堂夜夜| 黄片在线免费观看全集| 伊人久久青草地综合婷婷| 免费观看日韩一级黄色大片| 亚洲国产一级片在线观看| 久久精品国产一区久久久| 国产传媒精品视频一区| 国产av天堂一区二区三区粉嫩| 久久精品久久久精品久久| 亚洲一二三四区免费视频| 欧美尤物在线视频91| 不卡视频免费一区二区三区| 中文文精品字幕一区二区| 国产毛片不卡视频在线| 日韩欧美在线看一卡一卡| 免费观看一区二区三区黄片| 一区二区三区精品人妻| 国产爆操白丝美女在线观看| 日韩欧美国产亚洲一区| 国产又粗又猛又黄又爽视频免费| 少妇熟女精品一区二区三区| 制服丝袜美腿美女一区二区| 欧美黑人在线一区二区| 日本淫片一区二区三区| 美女激情免费在线观看| 国产成人精品视频一区二区三区| 欧美日韩国产精品自在自线| 精品国模一区二区三区欧美| 国产高清精品福利私拍| 亚洲欧美日韩在线中文字幕| 欧美老太太性生活大片| 91亚洲精品国产一区| 日韩精品视频香蕉视频| 午夜精品成年人免费视频| 国产色一区二区三区精品视频|