J基礎(chǔ)篇-網(wǎng)絡(luò)模型及TCPIP協(xié)議簇cll_第1頁
J基礎(chǔ)篇-網(wǎng)絡(luò)模型及TCPIP協(xié)議簇cll_第2頁
J基礎(chǔ)篇-網(wǎng)絡(luò)模型及TCPIP協(xié)議簇cll_第3頁
J基礎(chǔ)篇-網(wǎng)絡(luò)模型及TCPIP協(xié)議簇cll_第4頁
J基礎(chǔ)篇-網(wǎng)絡(luò)模型及TCPIP協(xié)議簇cll_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第二章網(wǎng)絡(luò)模型及TCP/IP協(xié)議簇網(wǎng)絡(luò)模型與TCP/IP協(xié)議簇概論TCP/IP起源于1969年美國國防部(DOD:TheUnitedStatesDepartmentOfDefense)高級討論項(xiàng)目管理局(APRA:AdvancedResarchProjectsAgency)對有關(guān)分組交換的廣域網(wǎng)(Packet—Switchedwide-areanetwork)科研項(xiàng)目,因此起初的網(wǎng)絡(luò)稱為ARPANET。1973年TCP(傳輸掌握協(xié)議)正式投入使用,1981年IP(網(wǎng)際協(xié)議)協(xié)議投入使用,1983年TCP/IP協(xié)議正式被集成到美國加州高校伯克利分校的UNIX版本中,該“網(wǎng)絡(luò)版”操作系統(tǒng)適應(yīng)了當(dāng)時各高校、機(jī)關(guān)、企業(yè)的旺盛的連網(wǎng)需求,因而隨著該免費(fèi)分發(fā)的操作系統(tǒng)的廣泛使用,TCP/IP協(xié)議得到了流傳。TCP/IP技術(shù)得到了眾多廠商的支持,不久就有了很多分散的網(wǎng)絡(luò)。全部這些單個的TCP/IP網(wǎng)絡(luò)都互聯(lián)起來稱為INTERNET.基于TCP/IP協(xié)議的Internet已逐步進(jìn)展成為當(dāng)今世界上規(guī)模最大、擁有用戶和資源最多的一個超大型計算機(jī)網(wǎng)絡(luò),TCP/IP協(xié)議也因此成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。IP網(wǎng)絡(luò)正逐步成為當(dāng)代乃至將來計算機(jī)網(wǎng)絡(luò)的主流。本章主要對TCP/IP協(xié)議組件進(jìn)行概述,著重介紹TCP/IP協(xié)議簇模型及各層次協(xié)議的處理機(jī)制.網(wǎng)絡(luò)模型與TCP/IP協(xié)議簇早在TCP/IP協(xié)議消滅之前,國際標(biāo)準(zhǔn)化組織(ISO)就提出了開放系統(tǒng)互連(OSI)網(wǎng)絡(luò)模型,為網(wǎng)絡(luò)的設(shè)計、開發(fā)、編程、維護(hù)供應(yīng)了便利的分而治之的思想,其先進(jìn)性、科學(xué)性、有用性是不言而喻的。TCP/IP協(xié)議不是單純的兩個協(xié)議,是一組不同層次上的多個協(xié)議的組合,常稱為TCP/IP協(xié)議簇或者互聯(lián)網(wǎng)協(xié)議簇,為實(shí)現(xiàn)整個網(wǎng)絡(luò)的互聯(lián)供應(yīng)指導(dǎo),其層次組合已很難用OSI的七層模型來套用,它是OSI模型的濃縮,將原來的七層模型合并為四層協(xié)議的體系結(jié)構(gòu),自頂向下分別是應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和鏈路層,沒有OSI參考模型的會話層和表示層,一般認(rèn)為TCP/IP的會話和表示功能是在傳輸層完成的。OSI參考模型和TCP/IP協(xié)議簇兩者結(jié)構(gòu)如圖2-1所示。OSI ???TCP/IP應(yīng)用層應(yīng)用層表示層會話層傳輸層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層鏈路層物理層圖2-1網(wǎng)絡(luò)模型與TCP/IP協(xié)議簇每一層的功能如下:鏈路層:有時也稱作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機(jī)中對應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié).在TCP/IP協(xié)議簇中,鏈路層的協(xié)議比較多,它決定了網(wǎng)絡(luò)形態(tài),但很多都不是專門為TCP/IP設(shè)計的。常用的鏈路層協(xié)議包括:以太網(wǎng)協(xié)議、PPP協(xié)議、幀中繼協(xié)議、ATM等。網(wǎng)絡(luò)層:有時也稱作互連網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動,例如分組的路由選擇。在TCP/IP協(xié)議簇中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(Internet互連網(wǎng)掌握報文協(xié)議),ARP/RARP(地址解析/逆向地址解析協(xié)議),以及IGMP協(xié)議(Internet組管理協(xié)議).傳輸層:主要為兩臺主機(jī)上的應(yīng)用程序供應(yīng)端到端的通信。在TCP/IP協(xié)議簇中,有兩個互不相同的傳輸協(xié)議:TCP(傳輸掌握協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議),它們分別承載不同的應(yīng)用。應(yīng)用層:負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。幾乎各種不同的TCP/IP實(shí)現(xiàn)都會供應(yīng)下面這些通用的應(yīng)用程序:·Telnet遠(yuǎn)程登錄·FTP文件傳輸協(xié)議·SMTP用于電子郵件的簡潔郵件傳輸協(xié)議·SNMP簡潔網(wǎng)絡(luò)管理協(xié)議嚴(yán)格來講,分層模型的動機(jī)就是將各層的功能盡量獨(dú)立,每層的功能對另一層來說是透明的,只對通信的另一端負(fù)責(zé),為編程和診斷供應(yīng)良好的層次隔離,然而實(shí)際情況并非如此,首先軟件編程上完全依據(jù)分層模型來做,編程效率會降低,與其分層,不如按功能實(shí)現(xiàn)來模塊化.其次,對于很多功能實(shí)現(xiàn)來說,必須實(shí)現(xiàn)兩層子間的交互,這又違反了當(dāng)時的動身點(diǎn),比如鏈路層在成幀時需要接收端的物理地址,該地址必須由網(wǎng)絡(luò)層處理ARP地址解析才行,簡潔地將ARP放在那一層都有些牽強(qiáng)。所以說,分層模型對于理解網(wǎng)絡(luò)的抽象性是有好處的,它有助于指導(dǎo)網(wǎng)絡(luò)入門,但并不是網(wǎng)絡(luò)的精髓,只有結(jié)合簡略的系統(tǒng)分析才有實(shí)際意義。TCP/IP封裝過程如下圖2-2分析TCP/IP的封裝是如何進(jìn)行的。數(shù)據(jù)由文本username組成,它被封裝在傳輸層的段中,該段再封裝到網(wǎng)絡(luò)層報文包中,網(wǎng)絡(luò)層報文包再封裝到數(shù)據(jù)鏈路幀,以便在所選的介質(zhì)上傳送。當(dāng)系統(tǒng)接收到數(shù)據(jù)時,是拆封/多路分解過程。當(dāng)數(shù)據(jù)沿著協(xié)議棧向上傳遞時,檢查幀的格式,決定網(wǎng)絡(luò)類型,并去掉幀的格式,檢查內(nèi)含的報文包,決定傳輸協(xié)議.數(shù)據(jù)由某個傳輸層處理,最后數(shù)據(jù)遞交給正確的應(yīng)用程序。路由器提示:username:傳輸層:傳輸層數(shù)據(jù)段=頭(SP、DP)+數(shù)據(jù)(username:)網(wǎng)絡(luò)層:網(wǎng)絡(luò)層數(shù)據(jù)包=頭(SA、DA)+傳輸層數(shù)據(jù)段數(shù)據(jù)鏈路層:數(shù)據(jù)鏈路層幀=頭(DMAC、SMAC)+網(wǎng)絡(luò)層數(shù)據(jù)包+TR圖2-2TCP/IP封裝協(xié)議棧多路復(fù)用圖2-3TCP/IP協(xié)議多路復(fù)用在TCP/IP協(xié)議棧各個層次中的段、報文包和幀頭部中都有掌握字節(jié),對于傳送數(shù)據(jù)時,是標(biāo)識數(shù)據(jù)源;對于接收數(shù)據(jù)時,是標(biāo)識處理數(shù)據(jù)的上層。圖2-3說明白TCP/IP協(xié)議棧內(nèi)部的掌握字節(jié).當(dāng)從物理介質(zhì)收到幀時,以太網(wǎng)掌握器只將幀的MAC地址與掌握器卡的(包括接口所熟識的廣播及多路廣播地址)MAC地址全都的報文傳遞到上層。以太網(wǎng)軟件接收幀并檢查協(xié)議類型代碼以決定幀中數(shù)據(jù)類型,如代碼0x800表明所封裝的是IP報文包,0806表明所封裝的是ARP報文包.網(wǎng)絡(luò)層報文包由IP處理。檢查IP頭部及目的地址的有效性,若目的地址是本系統(tǒng)的,檢查報文協(xié)議標(biāo)識碼(ID)。協(xié)議ID決定哪個協(xié)議應(yīng)該接收此數(shù)據(jù)包。如協(xié)議代碼6表示TCP,協(xié)議代碼17表示UDP.接下來通過檢查TCP段或UDP數(shù)據(jù)報文以確定端口號,從而識別由哪個應(yīng)用接收數(shù)據(jù)。如端口號23留給Telnet,端口號25留給SMTP。TCP/IP協(xié)議簇的內(nèi)涵十分豐富,并非只有TCP和IP兩個協(xié)議,它已經(jīng)圍繞IP進(jìn)展成為了一個浩大的家族,這里我們將介紹TCP/IP協(xié)議簇中最常見、最重要的部分。鏈路層協(xié)議依據(jù)分層操作的思想,每一層對上一層送來的數(shù)據(jù)進(jìn)行處理時要加上一個報頭(首部信息),有時還要加上尾部信息,這稱為數(shù)據(jù)包封裝。鏈路層的工作是將IP數(shù)據(jù)包依據(jù)鏈路協(xié)議定義的格式進(jìn)行封裝,并依據(jù)硬件接口的編碼方式轉(zhuǎn)成合適的基帶信號發(fā)送到傳輸介質(zhì)上.該層數(shù)據(jù)一般稱為數(shù)據(jù)幀。常見的以太網(wǎng)(IEEE802.3等)、令牌環(huán)網(wǎng)(IEEE802.5)、幀中繼、ATM、HDLC、PPP、Q。921都是鏈路層協(xié)議,但每個協(xié)議的封裝格式各不相同。例如以太網(wǎng)(EthernetII)協(xié)議的封裝格式如圖2-4。

前導(dǎo)碼目的地址源地址協(xié)議類型數(shù)據(jù)CRC8字節(jié)6字節(jié)6字節(jié)2字節(jié)46~1500字節(jié)4字節(jié)圖2—4常見的以太網(wǎng)(EthernetII)協(xié)議的封裝格式兩字節(jié)的協(xié)議類型字段用來識別封裝的協(xié)議類型:0800表示封裝的是IP數(shù)據(jù)包,0806表示封裝的是ARP地址解析懇求/應(yīng)答數(shù)據(jù)包,8035表示封裝的是RARP懇求/應(yīng)答數(shù)據(jù)包,8137表示封裝的是IPX數(shù)據(jù)包。封裝好的數(shù)據(jù)幀在線路空閑時(用CSMA/CD載波偵聽多路存?。鲎矙z測的方法來檢測)依據(jù)曼徹斯特編碼將數(shù)據(jù)轉(zhuǎn)成凹凸電平發(fā)送到線路上。線速路由器中常用的一種鏈路層幀格式為點(diǎn)到點(diǎn)協(xié)議(PPP)中的HDLC幀格式,IP數(shù)據(jù)包被封裝成ISOHDLC幀格式,然后再映射進(jìn)同步數(shù)字序列SDH中去透明傳輸,路由器上這樣的接口常稱為POS接口(PacketoverSDH)。PPPinHDLC幀格式如圖2-5所示。標(biāo)記地址掌握協(xié)議數(shù)據(jù)幀校驗(yàn)7EFF032字節(jié)1500字節(jié)1字節(jié)圖2-5PPPinHDLC幀格式協(xié)議字段為0021時表示數(shù)據(jù)部分為IP數(shù)據(jù)包,C021表示數(shù)據(jù)部分為LCP鏈路掌握協(xié)議,8021為NCP網(wǎng)絡(luò)掌握協(xié)議,C023為PAP密碼驗(yàn)證,C223為CHAP質(zhì)詢握手驗(yàn)證協(xié)議。網(wǎng)絡(luò)層協(xié)議比較嚴(yán)格的說網(wǎng)絡(luò)層的協(xié)議就是IP,ICMP、ARP/RARP是幫助IP完成尋址的功能,因此也被認(rèn)為是第三層的協(xié)議。IP協(xié)議全球INTERNET網(wǎng)的廣泛應(yīng)用使IP協(xié)議深化人心。IP協(xié)議以其簡潔、有效、開放性成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。IP協(xié)議使異種網(wǎng)互聯(lián)便利可行,尤其值得一提的是它對下層通信技術(shù)有巨大包涵性。IP協(xié)議作為通信子網(wǎng)的最高層,供應(yīng)無連接的數(shù)據(jù)報傳輸機(jī)制.IP協(xié)議是點(diǎn)到點(diǎn)的,核心問題是尋徑。它向上層供應(yīng)統(tǒng)一的IP數(shù)據(jù)報,使得各種物理幀的差異性對上層協(xié)議不復(fù)存在?;ミB網(wǎng)協(xié)議IP是TCP/IP體系中兩個最重要的協(xié)議之一.與IP協(xié)議配套使用的還有三個協(xié)議:地址轉(zhuǎn)換協(xié)議ARP(AddressResolutionProtocol)反向地址轉(zhuǎn)換協(xié)議RARP(ReverseAddressResolutionProtocol)Internet掌握報文協(xié)議ICMP(InternetControlMessageProtcol)

Telnet,FTP,TFTPTCP,UDPICMPICMPARPRARPIP圖2—6IP協(xié)議及其相關(guān)協(xié)議如圖2-6中畫出了這三個協(xié)議和IP協(xié)議的關(guān)系。在這一層中,ARP和RARP畫在最下面,由于IP常常要使用著兩個協(xié)議.ICMP畫在這一層的上部,由于它要使用IP協(xié)議。下圖2—7是IP數(shù)據(jù)報的格式。首首部20字節(jié)固定長度01234567優(yōu)先級DTRC未用4位版本4位首部長度8位服務(wù)類型(TOS)16位總長度16位標(biāo)識3位標(biāo)志13位片偏移8位生存時間(TTL)8位協(xié)議標(biāo)識16位首部檢驗(yàn)和32位源IP地址可變長度32位目的IP地址可變長度長度可變的任選字段填充數(shù)據(jù)圖2—7TP數(shù)據(jù)報格式從上圖可看出,一個IP數(shù)據(jù)報由首部和數(shù)據(jù)兩部分組成。首部的前一部分長度是固定的20個字節(jié),后面部分的長度則是可變長度。下面介紹首部各字段的意義。版本,該字段占4bit,指IP協(xié)議的版本。通信雙方使用的IP協(xié)議的版本必須全都。目前使用的IP協(xié)議版本為4,下一代的版本為IPv6。首部長度,該字段占4bit,可表示的最大數(shù)值是15個單位(一個單位為4字節(jié)),因此IP的首部長度的最大值是60字節(jié)。一般IP數(shù)據(jù)包是沒有任選項(xiàng)的,因此該字段的值為5。如果有任選項(xiàng),該字段值最大為15.路由器收到IP包后對此字段要做檢查,帶任選項(xiàng)的IP數(shù)據(jù)包在轉(zhuǎn)發(fā)前要做特殊處理。當(dāng)IP分組的首部長度不是4字節(jié)的整數(shù)倍時,必須利用最后一個填充字段加以填充。這樣,數(shù)據(jù)部分永久在4字節(jié)的整數(shù)倍時開頭,實(shí)現(xiàn)起來會比較便利。服務(wù)類型,該字段共8位長,前三個比特表示優(yōu)先級,它可使數(shù)據(jù)報具有8個優(yōu)先級中的一個。第4個比特是D比特,表示要求有最小延遲.第5個比特是T比特,表示要求有最大吞吐量。第6個比特是R比特,表示要求有更高的牢靠性,即在數(shù)據(jù)報傳遞過程中,被結(jié)點(diǎn)交換機(jī)丟棄的概率要更小些.第7個比特是C比特,是新增加的,表示要求用最小費(fèi)用進(jìn)行傳輸。最后一個比特目前尚未使用。其意義見圖6的上面部分所示。RFC1349、RFC1340文件對不同的應(yīng)用定義了建議的TOS值,如Telnet和Rlogin這樣的交互應(yīng)用要求最小的傳輸時延,而Ftp文件傳輸需要最大的吞吐量,網(wǎng)絡(luò)管理和路由協(xié)議需要最大的牢靠性,用戶網(wǎng)絡(luò)新聞(Usenetnews)需要最小費(fèi)用。總長度,該字段為16位,指明該IP數(shù)據(jù)包的長度(即首部和數(shù)據(jù)之和的長度),單位為字節(jié)??傞L度字段為16bit,因此數(shù)據(jù)報的最大長度為65535字節(jié)(64K字節(jié))。一般不行能達(dá)到這么大的值,由于鏈路層對數(shù)據(jù)幀的長度有明確限制,該限制稱為最大傳輸單元(MTU),IP數(shù)據(jù)包長度小于MTU長度,典型的以太網(wǎng)MTU為1500字節(jié)。當(dāng)很長的數(shù)據(jù)報要分段進(jìn)行傳送時,“總長度"不是指未分段前的數(shù)據(jù)報長度,而是指分段后每個段的首部長度與數(shù)據(jù)長度的總和。該字段的另一個作用是接收到從鏈路層上傳的數(shù)據(jù)包后用來決定有用的數(shù)據(jù)包長度,由于有些字節(jié)可能是無用的填充字節(jié),是為了達(dá)到鏈路層所要求的最短幀長度要求而填充進(jìn)去的。標(biāo)識,該字段為16位,是為了使分段后的各數(shù)據(jù)報段最后能精準(zhǔn)地重裝成為原來的數(shù)據(jù)報.請注意:這里的“標(biāo)識”并沒有挨次號的意思,由于IP是無連接服務(wù),數(shù)據(jù)報不存在按序接收的問題.源主機(jī)發(fā)出IP數(shù)據(jù)包時是不存在IP分組的,只有路由器從一個MTU較大的接口接收到IP包后又從一MTU較小的接口發(fā)送出去時才需要分組。接收端依據(jù)該字段和后面的偏移字段的值將分組的IP碎包重新組裝成原始的包。標(biāo)志,該字段為3位,目前只有前兩個比特有意義。標(biāo)志字段中的最低位記為MF(MoreFragment),MF=1即表示后面還有分段的數(shù)據(jù)報,MF=0表示這已是若干數(shù)據(jù)報段中的最后一個.中間的一位記為DF(Don’tFragment),是用來測試網(wǎng)絡(luò)中的各段MTU大小的,只有當(dāng)DF=0時才允許分段.片偏移,該字段為13位,其意義和OSI的IPDU中規(guī)定的相像,只是表示的單位不同。這里是以8個字節(jié)為偏移單位??梢姡蒔數(shù)據(jù)報的片偏移字段(13bit長)和OSI的IPDU的片偏移字段(16bit長)是相當(dāng)?shù)?。生存時間,該字段為8位,單位為秒。生存時間設(shè)置了數(shù)據(jù)包可以經(jīng)過的最多路由器數(shù),目的是防止數(shù)據(jù)包在網(wǎng)絡(luò)上的無限循環(huán),占用網(wǎng)絡(luò)帶寬,甚至引起網(wǎng)絡(luò)風(fēng)暴。該值由源主機(jī)設(shè)置(通常為32或64),一旦經(jīng)過一個路由器,該路由器將它減1,當(dāng)某路由器檢查該值為1并且目的地址不在該路由器直聯(lián)的網(wǎng)絡(luò)上時,該數(shù)據(jù)包就被丟棄,并發(fā)送一條ICMP報文通知源主機(jī)。當(dāng)TTL值轉(zhuǎn)變后,首部檢驗(yàn)和也要轉(zhuǎn)變。通常路由器在轉(zhuǎn)發(fā)IP數(shù)據(jù)包時,僅僅轉(zhuǎn)變這兩個字段.協(xié)議標(biāo)識,該字段為8位,它指出此數(shù)據(jù)攜帶的傳輸層數(shù)據(jù)是使用何種協(xié)議,以便目的主機(jī)的IP層知道應(yīng)將此數(shù)據(jù)報上交給哪個進(jìn)程。如協(xié)議標(biāo)識為6表示封裝的是TCP(傳輸掌握協(xié)議)數(shù)據(jù)包,協(xié)議標(biāo)識為17表示封裝的是UDP(用戶數(shù)據(jù)包協(xié)議)數(shù)據(jù)包,協(xié)議標(biāo)識為89表示封裝的是OSPF(開發(fā)最短路徑優(yōu)先)數(shù)據(jù)包,協(xié)議標(biāo)識為1表示封裝的是ICMP(網(wǎng)際掌握報文協(xié)議)數(shù)據(jù)包,協(xié)議標(biāo)識為2表示封裝的是IGMP(網(wǎng)際組管理協(xié)議)數(shù)據(jù)包,協(xié)議標(biāo)識為46表示封裝的是RSVP(資源預(yù)留協(xié)議)數(shù)據(jù)包。首部檢驗(yàn)和,該字段為16位,此字段只檢驗(yàn)數(shù)據(jù)報的首部,不包括數(shù)據(jù)部分。不檢驗(yàn)數(shù)據(jù)部分是由于數(shù)據(jù)報每經(jīng)過一個結(jié)點(diǎn),結(jié)點(diǎn)處理機(jī)就要重新計算一下首部檢驗(yàn)和(一些字段,如壽命、標(biāo)志、段偏移等都可能發(fā)生變化)。如將數(shù)據(jù)部分一起檢驗(yàn),計算的工作量就太大了。首部檢驗(yàn)和的計算過程是:先將該字段置為0,然后對首部中每個16比特進(jìn)行二進(jìn)制反碼求和,將結(jié)果存在檢驗(yàn)和字段中。當(dāng)路由器收到一份IP數(shù)據(jù)包后,同樣對首部中每個16比特進(jìn)行二進(jìn)制反碼求和,如果結(jié)果為FF才表示IP數(shù)據(jù)包正確。出錯的數(shù)據(jù)包將被丟棄,但不發(fā)送ICMP報文,上層協(xié)議可以檢測到出錯并對該數(shù)據(jù)包重傳。地址,源站IP地址字段和目的站IP地址字段都各占4字節(jié).任選項(xiàng),該字段為32位,如果長度不足32比特要用0作填充.任選字段用來支持排錯、測量以及平安等措施,內(nèi)容很豐富.此字段的長度可變,從一個字節(jié)到40個字節(jié)不等,取決于所選擇的項(xiàng)目。其主要選項(xiàng)有以下幾種:1)平安和處理限制2)記錄路徑,轉(zhuǎn)發(fā)的路由器在此記錄IP地址3)時間戳,供路由器記錄IP地址和時間4)寬松源站選路,指定IP包必須經(jīng)過的IP地址5)嚴(yán)格源站選路,要求IP包只能經(jīng)過指定的這些地址互聯(lián)網(wǎng)掌握消息協(xié)議ICMPIP數(shù)據(jù)報在端對端傳輸方式下,由于網(wǎng)關(guān)(GateWay)自主地完成尋徑和報文傳輸服務(wù),不需要信源主機(jī)的參加,而對于傳輸過程來說,發(fā)生傳輸錯誤是不行避開的,也是很自然的,比如說當(dāng)某個IP包中的IP目的地址根本不存在時自然就無法傳送;或某一網(wǎng)關(guān)由于緩沖區(qū)滿,超過它的處理能力和速度的話,它就無法正常中繼或接收數(shù)據(jù)報了。這樣的話,一旦發(fā)生了傳輸錯誤,信源主機(jī)如何才能夠知道并且進(jìn)行相應(yīng)的處理呢?對于IP協(xié)議本身來說,并不存在一種內(nèi)在機(jī)制來獵取上述的差錯信息,從而進(jìn)行相應(yīng)處理.因此,在網(wǎng)絡(luò)通信中供應(yīng)一種手段,對傳輸過程供應(yīng)出錯時的報告和有關(guān)路徑、流量等的掌握,是十分必要的。與此同時,也增加了網(wǎng)絡(luò)之間傳輸?shù)目煽匦院屠慰啃?。ICMP協(xié)議就是這樣一種供應(yīng)網(wǎng)間報錯和掌握信息的手段,它為IP協(xié)議加上了一種差錯報告和掌握的機(jī)制。乍看起來,ICMP是對IP協(xié)議的有利補(bǔ)充,是與之相分離的。實(shí)際上,它應(yīng)該是IP協(xié)議族中不行或缺的部分,必須體現(xiàn)在每一個IP的實(shí)現(xiàn)之中。由此可見它與IP協(xié)議的緊密關(guān)系.ICMP協(xié)議的功能及其實(shí)現(xiàn),跟IP協(xié)議一樣,體現(xiàn)為一種報文格式—ICMP報文,或稱ICMP包,可以像其他報文一樣尋找路由,ICMP消息是一個獨(dú)立的消息,沒有流控及應(yīng)答機(jī)制。雖然IP數(shù)據(jù)報的傳送不保證不丟失,但互連網(wǎng)層對數(shù)據(jù)報的傳送還是有肯定的質(zhì)量保證功能,這就是使用Internet掌握消息協(xié)議ICMP(InternetControlMessageProtocol)。ICMP是IP掌握及錯誤消息協(xié)議,是集差錯報告和掌握于一身的協(xié)議,它通過ICMP消息傳遞差錯報告或掌握信息,消息傳遞可發(fā)生在主機(jī)、路由器,主機(jī)、主機(jī)或路由器、路由器之間。ICMP消息的接收者依據(jù)消息類型實(shí)行相應(yīng)的措施.ICMP不是高層協(xié)議,它仍是互連網(wǎng)層中的協(xié)議。隨著Internet的進(jìn)展,ICMP與其他協(xié)議一樣,被給予越來越多的功能。一般說來,除了ICMP差錯報文外,ICMP還供應(yīng)掌握報文和懇求/應(yīng)答報文對,前者與IP層的擁塞和路徑掌握有關(guān),后者則用于獵取故障診斷和網(wǎng)絡(luò)掌握方面的信息.另外,需要說明的是,ICMP協(xié)議雖與IP協(xié)議屬于同層協(xié)議,但I(xiàn)CMP報文跟TCP等協(xié)議的報文一樣,是封裝在IP報文中進(jìn)行傳輸?shù)?兩種主要ICMP消息的類型:詢問消息和錯誤消息.詢問消息是指ICMP響應(yīng)懇求、響應(yīng)應(yīng)答、路由器公告和地址屏蔽懇求等。錯誤消息指目的地址不行達(dá)、源地址消亡(擁塞指示)及生命周期超時等。當(dāng)原始數(shù)據(jù)報文的目的地址是廣播或組播地址或源地址不是單個系統(tǒng)時,不產(chǎn)生ICMP消息。這是為了防止由于網(wǎng)絡(luò)擁塞或誤配置系統(tǒng)而引起的ICMP消息風(fēng)暴。ICMP是以報文形式裝載信息的。每個ICMP報文都是作為IP數(shù)據(jù)報的數(shù)據(jù)部分進(jìn)行網(wǎng)際傳送,如圖2-8所示。下面介紹一下ICMP報文的格式。ICMP報頭ICMP數(shù)據(jù)IP報頭IP數(shù)據(jù)區(qū)圖2-8ICMP數(shù)據(jù)報的封裝ICMP報文包括兩個部分:ICMP報頭和ICMP數(shù)據(jù)區(qū)。ICMP報頭長度固定為8字節(jié)(圖2-9):第一字節(jié)是類型(TYPE),它的取值決定了ICMP報文的類別、作用和簡略格式;其次字節(jié)是代碼(CODE),它對同一類型下的不同問題、緣由、信息進(jìn)行進(jìn)一步的細(xì)分和說明,以求對問題的表述更精準(zhǔn);第三、四字節(jié)是校驗(yàn)和(CHECKSUM),它用來檢查自身的ICMP報文有沒有在傳輸中發(fā)生錯誤,以便進(jìn)行相應(yīng)處理;其他字節(jié)是可能會用到的數(shù)據(jù)區(qū),包含因類型(TYPE)而異的信息。ICMP數(shù)據(jù)區(qū)長度可變,也可以不用(為0字節(jié)),也因類型(TYPE)而異。原特別IP報頭+前64位該IP報的數(shù)據(jù):差錯、掌握ICMP報中有關(guān)IP報的數(shù)據(jù)信息.IP報頭TYPECODECHECKSUM其它信息原特別IP報頭+前64位該IP數(shù)據(jù)報的數(shù)據(jù)圖2—9ICMP報文頭統(tǒng)一格式ARP/RARP協(xié)議當(dāng)向目的地發(fā)送報文時,路由器需要決定對應(yīng)于IP報文中所含的IP地址的特定介質(zhì)地址(即MAC地址).IP用地址解析協(xié)議(ARP)發(fā)現(xiàn)對應(yīng)于給定IP地址的特定介質(zhì)數(shù)據(jù)鏈路層地址。ARP是針對于廣播型網(wǎng)絡(luò)設(shè)計的,該協(xié)議實(shí)行一種動態(tài)編連(Dynamicbinding)的機(jī)制進(jìn)行地址解析.ARP工作原理如下:1、主機(jī)A廣播一條ARP懇求報文(主機(jī)B的IP地址),懇求主機(jī)B的物理地址;2、主機(jī)B收到ARP懇求報文,向主機(jī)A發(fā)送一條ARP應(yīng)答報文,主機(jī)B的物理地址包含在應(yīng)答報文中;3、主機(jī)A收到主機(jī)B發(fā)出的應(yīng)答報文,得到B的物理地址。注意:ARP懇求是廣播,而ARP回答只是送給發(fā)送懇求的路由器并非廣播。RARP(反向ARP)執(zhí)行ARP逆過程,主要用于無盤工作站在啟動時獵取本機(jī)的IP地址,其工作原理與ARP相像.1、主機(jī)A廣播一條ARP懇求(ARP報文中操作代碼為3,表示是一個反向ARP懇求),懇求本機(jī)的IP地址(報文中帶有本機(jī)的物理地址P);2、反向ARP服務(wù)器S收到RARP懇求報文,查詢數(shù)據(jù)庫(已知MAC地址與IP地址的對應(yīng)表),如果找到物理地址為P的主機(jī)A,向主機(jī)A發(fā)送一條RARP應(yīng)答報文,物理地址為P的主機(jī)A的IP地址包含在應(yīng)答報文中;3、主機(jī)A收到S發(fā)出的應(yīng)答報文,就得到本機(jī)的IP地址。傳輸層協(xié)議傳輸層供應(yīng)了TCP和UDP兩種協(xié)議。兩個傳輸協(xié)議將應(yīng)用程序的數(shù)據(jù)加上自身格式的首部字段后交給下一層進(jìn)行處理。盡管TCP和UDP都使用相同的網(wǎng)絡(luò)層(IP),TCP卻向應(yīng)用層供應(yīng)與UDP完全不同的服務(wù)。UDP是無連接的,它不保證數(shù)據(jù)報的牢靠傳輸,任何必須的牢靠性必須由上層應(yīng)用程序來供應(yīng)。TCP供應(yīng)一種面對連接的、牢靠的協(xié)議。它能將報文分解為數(shù)段,在目的站再重新裝配這些段,重新發(fā)送沒有被收到的段。TCP為兩臺主機(jī)供應(yīng)高牢靠性的通信連接,有著簡潔的掌握機(jī)制。UDP協(xié)議UDP協(xié)議相對于TCP來說要簡潔得多,它沒有所謂的窗口技術(shù),也不用確認(rèn),因此處理開銷小。應(yīng)用層協(xié)議可以保證牢靠性。通常來說,UDP的傳輸效率較高,適用于那些無須把有序段重新裝配的應(yīng)用.使用UDP的協(xié)議包括:TFTP、SNMP、NFS、DNS。UDP首部各字段如圖2—10所示。16位源端口號16位目的端口號16位UDP長度16位UDP校驗(yàn)和數(shù)據(jù)圖2-10UDP報文UDP首部包括以下成員:兩字節(jié)源端口號(sourceportnumber)和兩字節(jié)目的端口號(destinat(yī)ionportnumber):用于確認(rèn)發(fā)送及接收應(yīng)用程序;兩字節(jié)報文長度:用于說明整個UDP報文的長度,包括UDP頭部。由于長度為16位,因此UDP數(shù)據(jù)報文最大長度為65535字節(jié)(216-1).兩字節(jié)校驗(yàn)和:用于校驗(yàn)數(shù)據(jù)報的有效性,UDP對報文的校驗(yàn)是可選的,收到的報文中若校驗(yàn)和為0,則不進(jìn)行校驗(yàn),否則校驗(yàn))UDP數(shù)據(jù)報文可能會以不同于源端的挨次到達(dá)目的端,緣由是由于某些報文被發(fā)送到慢速的鏈路上,而后續(xù)的報文在快速的鏈路上發(fā)送,接收端的程序必須能夠正確處理這種情況.TCP協(xié)議TCP(傳輸掌握協(xié)議)是面對連接的協(xié)議,它供應(yīng)兩個網(wǎng)絡(luò)設(shè)備間數(shù)據(jù)有保證的挨次傳遞。TCP通過序列號和確認(rèn)號實(shí)現(xiàn)牢靠傳輸,通過滑動窗口實(shí)現(xiàn)流量掌握。在收到接收者的應(yīng)答前,數(shù)據(jù)段始終保留在發(fā)送者系統(tǒng)的緩沖區(qū)中。如果丟失了某段,TCP將自動重傳.TCP連接可分解為三個不同的階段:初始連接建立階段(三次握手)、數(shù)據(jù)傳輸階段以及最后的連接關(guān)閉階段。連接建立和連接關(guān)閉階段需要交換多個報文包。這種機(jī)制使得TCP在傳輸幾個字節(jié)時顯得格外昂貴,如在域名查找時就只需傳輸幾個字節(jié)。TCP連接用段實(shí)現(xiàn)網(wǎng)絡(luò)系統(tǒng)間的通信,段的最大長度取決于輸出接口的最大報文長度或與對等系統(tǒng)協(xié)商的結(jié)果。TCP首部各字段(如圖2—11所示)及定義如下:?16位源端口號16位目的端口號32位序列號32位確認(rèn)號4位首部長度6位保留6位編碼位16位窗口大小16位TCP校驗(yàn)和16位緊急指針選項(xiàng)(若有)數(shù)據(jù)圖2-11TCP首部源端口(SourcePort):呼叫端口的號目的端口(DestinationPort):被叫端口的號序號(SequenceNumber):用于確保數(shù)據(jù)到達(dá)的正確挨次確認(rèn)號(AcknowledgmentNumber):所期盼的下一個TCP字段的編號首部長度(HLEN):首部的字?jǐn)?shù)(字長為32位)保留域(Reserved):設(shè)置為0編碼位(CodeBits):掌握功能(比如會話的建立或終止)窗口(Window):發(fā)送者情愿接收的字節(jié)數(shù)校驗(yàn)和(Checksum):報頭和數(shù)據(jù)字段的校驗(yàn)和緊急指針(UrgentPointer):指明這是緊急數(shù)據(jù)的末尾選項(xiàng)(Option):當(dāng)前定義項(xiàng):TCP段的最大值數(shù)據(jù)(Data):上層協(xié)議數(shù)據(jù)端口號端口號用于識別兩個通信網(wǎng)絡(luò)系統(tǒng)的應(yīng)用(程序)。創(chuàng)建一條連接時,源系統(tǒng)要求TCP選取一個可用的本地端口號,這樣源系統(tǒng)和運(yùn)行服務(wù)器程序的遠(yuǎn)程系統(tǒng)(已知端口)之間建立連接。下圖2-12說明:當(dāng)源系統(tǒng)中有多個Telnet用戶與服務(wù)器連接時,用戶1向TCP懇求一個可用端口,TCP回答端口1046可用,用戶2同樣向TCP懇求一個可用端口,TCP回答端口1093,則兩個用戶連接時,用戶1客戶機(jī)向服務(wù)器172.16。1.2發(fā)送一個連接,端口為23,來自172.16.1.1,端口為1046;用戶2客戶機(jī)向服務(wù)器172.16.1.2發(fā)送一個連接,端口為23,來自172。16.1.1,端口為1093.因此,相同IP地址上具有不同源端口號的兩個連接是不同的。無論報文包何時發(fā)送或接收,IP地址和端口號用來唯一地確認(rèn)數(shù)據(jù)途徑的連接。圖2-12使用多個端口序列號和確認(rèn)號序列號和確認(rèn)號用于識別TCP段中的數(shù)據(jù).序列號標(biāo)識段開頭處的字節(jié).序列號可以從任意值開頭,用戶數(shù)據(jù)每傳送一個字節(jié),序列號加1,段的長度決定了段中正在發(fā)送的字節(jié)挨次。序列號的作用一是用于標(biāo)識數(shù)據(jù)挨次,以便接收者在將其遞交給應(yīng)用程序前按正確的挨次進(jìn)行裝配;二是消除網(wǎng)絡(luò)中的重復(fù)報文包,這種現(xiàn)象在網(wǎng)絡(luò)擁塞時會消滅。設(shè)備緩沖區(qū)中可能較長時間存有多個報文,發(fā)送者認(rèn)為網(wǎng)絡(luò)消滅了故障,需要重傳數(shù)據(jù),當(dāng)其次組數(shù)據(jù)到達(dá)時,接收者檢測出重復(fù)的序列號并丟棄重復(fù)報文包。確認(rèn)號用于接收者告知發(fā)送者哪個數(shù)據(jù)包已經(jīng)成功接收。確認(rèn)號指示接收者盼望接受的下一個字節(jié)。TCP三次握手/建立連接TCP是一個面對連接的協(xié)議,無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接。為了建立或初始化一個連接,兩個TCP通信者必須同步各自的初始序號。初始序號是建立一個TCP連接時的開頭號,用于跟蹤通信挨次并確保多個包傳輸時很多據(jù)丟失。在連接過程中交換初始序號,可以確保在以后消滅問題時,能恢復(fù)丟失的數(shù)據(jù).同步是通過各個攜帶有初始序號和1位被稱為SYN掌握位(攜帶有SYN掌握位的TCP段被成為同步段)的段之間的交換過程來實(shí)現(xiàn)的。同步要求每一方都發(fā)送自己的初始序號,并接受本次連接中另一方發(fā)送的一個確認(rèn)號和初始序號。每一方都必須接受另一方的初始序號并發(fā)送一個確認(rèn)應(yīng)答,這一過程挨次如下:ABSYN:我的序號是X;ABACK:你的序號是X;ABSYN:我的序號是Y;ABACK:你的序號是Y。挨次2和3可以合并在一個簡潔的消息中,因此是3次握手/建立連接(如圖2-13示)。主機(jī)A主機(jī)A主機(jī)B接收確認(rèn)(ACK=Y+1)發(fā)送確認(rèn)(ACK=Y+1)接收SYN(SEQ=Y,ACK=X+1)發(fā)送SYN(SEQ=Y,ACK=X+1)接收SYN(SEQ=X)發(fā)送SYN(SEQ=X)圖2-133次握手完成之前不能交換數(shù)據(jù)TCP四次握手/終止連接一個TCP連接是全雙工(即數(shù)據(jù)在兩個方向上能同時傳遞),因此每個方向必須單獨(dú)進(jìn)行關(guān)閉.這原則就是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就發(fā)送一個FIN來終止這個方向連接。當(dāng)一端收到一個FIN,它必須通知應(yīng)用層另一端已經(jīng)終止了那個方向的數(shù)據(jù)傳送。這一過程挨次如下:ABFIN:我的序號是Z;ABACK:你的序號是Z+1;ABFIN:我的序號是W;ABACK:你的序號是W+1。例如:當(dāng)Telnet客戶端關(guān)閉連接時(鍵入quit命令后),它將導(dǎo)致TCP客戶端發(fā)送一個FIN,用來關(guān)閉從客戶到服務(wù)器的數(shù)據(jù)傳送.當(dāng)服務(wù)器收到這個FIN,它發(fā)回ACK,確認(rèn)序號為收到的序號加1,同時TCP服務(wù)器還向應(yīng)用程序傳送一個文件結(jié)束符。接著這個服務(wù)器應(yīng)用程序就關(guān)閉它的連接,并在它的TCP端發(fā)送一個FIN,客戶必須發(fā)回一個確認(rèn),并將確認(rèn)序號設(shè)置為收到序號加1。圖2-14顯示了終止一個連接的握手挨次(省略了序號)。FIN的ACKFIN的ACKFIN的ACKFINFIN應(yīng)用程序關(guān)閉主機(jī)A主機(jī)B圖2-14連接終止期間報文的交換應(yīng)用程序關(guān)閉TCP為有序發(fā)送的段供應(yīng)了一個前向參考確認(rèn)號。每個數(shù)據(jù)報在發(fā)送前都給予一個編號.在接收站,TCP把分開的段重新裝配為一個完整的報文。如果在序號系列中丟失了一個序號,那個丟失序號的段要被重發(fā)。在給定時間間隔內(nèi),沒有得到確認(rèn)的段也要被重發(fā)。序號和確認(rèn)號是有方向性的,由于通信是雙向的。TCP的滑動窗口TCP的窗口大小用于實(shí)現(xiàn)流控機(jī)制,接收者用該域告知發(fā)送者還有多少緩沖區(qū)空間可用,即接收者一次可以接收多少數(shù)據(jù)。發(fā)送者一次發(fā)送的數(shù)量總是小于可用緩沖區(qū),因此不會引起接收緩沖區(qū)溢出。當(dāng)一臺主機(jī)傳送了一個窗口大小的字節(jié)數(shù)后,它必須等到接受了一個應(yīng)答后才能連續(xù)傳送信息。窗口的目的是改善流量掌握和牢靠性?;瑒哟翱诘摹盎瑒印敝傅氖牵涸赥CP會話過程中,可以通過協(xié)商動態(tài)地修改窗口的大小。滑動窗口可使主機(jī)更加有效地利用帶寬,由于大的窗口尺寸可以在等待確認(rèn)期間發(fā)送更多的數(shù)據(jù)。IP編址地址有網(wǎng)絡(luò)層地址和鏈路層地址,它們的作用各不相同.整個網(wǎng)絡(luò)中的尋址是依據(jù)網(wǎng)絡(luò)層的地址進(jìn)行的,由于網(wǎng)絡(luò)層地址有不依靠于硬件的獨(dú)立性,有利于統(tǒng)一規(guī)劃與編排,而且它的“分層”設(shè)計將地址分為網(wǎng)絡(luò)部分與主機(jī)部分,這更加有利于路由的構(gòu)建和選擇.傳輸鏈路上數(shù)據(jù)包的識別是依據(jù)鏈路層地址進(jìn)行的,鏈路層的地址編排依靠于傳輸鏈路的技術(shù)本身,不同的鏈路協(xié)議采納不同的編址方式,如以太網(wǎng)的鏈路層地址為48位編碼的唯一地址,PPP鏈路層地址用統(tǒng)一的FF表示,幀中繼網(wǎng)絡(luò)的鏈路層地址用連接標(biāo)識符DLCI表示,ATM網(wǎng)絡(luò)用PVC永久虛電路、SVC交換虛電路來標(biāo)識。下面我們主要介紹網(wǎng)絡(luò)層地址IP編址方法。IP地址的表示方法所謂IP地址就是給每一個連接在Internet上的主機(jī)安排一個唯一的32bit地址。IP地址的結(jié)構(gòu)使我們可以在Internet上很便利地進(jìn)行尋址,這就是:先按IP地址中的網(wǎng)絡(luò)號碼把網(wǎng)絡(luò)找到,再按主機(jī)號碼把主機(jī)找到.所以IP地址并不只是一個計算機(jī)的號碼,而是指出了連接到某個網(wǎng)絡(luò)上的某個計算機(jī)。IP地址由美國國防數(shù)據(jù)網(wǎng)DDN的網(wǎng)絡(luò)信息中心NIC進(jìn)行安排。為了便于對IP地址進(jìn)行管理,同時還考慮到網(wǎng)絡(luò)的差異很大,有的網(wǎng)絡(luò)擁有很多的主機(jī),而有的網(wǎng)絡(luò)上的主機(jī)則很少。因此Internet的IP地址就分成為五類,即A類到E類.常用的為前三類,D類地址為網(wǎng)絡(luò)組播地址,E類地址保留在今后使用。IP地址由三個字段組成,即:特征位,用來區(qū)分IP地址的類型網(wǎng)絡(luò)號碼字段net-id主機(jī)號碼字段host-id網(wǎng)絡(luò)號和主機(jī)號的確定是由子網(wǎng)掩碼來決定的.子網(wǎng)掩碼與IP地址一樣也是32bit長度,并且兩者是一一對應(yīng)的,子網(wǎng)掩碼中數(shù)字為“1”所對應(yīng)的IP地址中的部分為網(wǎng)絡(luò)號,為“0”所對應(yīng)的部分為主機(jī)號。子網(wǎng)掩碼中數(shù)字“1"和“0”都是連續(xù)的,不允許間插,且數(shù)字“1"在前,數(shù)字“0”在后。常規(guī)IP地址分類結(jié)構(gòu)如圖2-15所示。類別特征位網(wǎng)絡(luò)號主機(jī)號范圍A類07位24位0.0.0.0到126。255.255.255B類1014位16位128.0.0.0到191.255.255。255C類11021位8位192。0.0。0到223.255.255.255D類111028位多播(multicast)組號224。0.0.0到247.255.255。255E類11110保留圖2-15常規(guī)IP地址分類這種地址分類方法為早期路由協(xié)議的設(shè)計供應(yīng)了便利,從IP地址的首部特征位可以判定子網(wǎng)掩碼。隨著互聯(lián)網(wǎng)的急劇膨脹,地址短缺的問題愈來愈突出,傳統(tǒng)的地址安排方法使得IP地址空間的利用率不高.目前消滅的無類域間路由(CIDR)技術(shù)淡化了IP地址的類的概念,較新的路由協(xié)議在路由條目更新中都帶有子網(wǎng)掩碼,不再利用IP地址的首部特征位去判定子網(wǎng)掩碼了,新的互連網(wǎng)地址安排方案在肯定程度上緩解了目前IP地址短缺的問題,但最終的解決方案是過渡到下一代的IPv6編址方法,其地址長度為128位。關(guān)于IP地址的一些約定如下:0。0.0.0,用于沒有IP地址的主機(jī)啟動時使用,通過RARP、BOOTP、DHCP來獲得地址.在路由表中該地址還用作缺省路由。255.255.255.255,表示“向我的網(wǎng)絡(luò)上的全部主機(jī)廣播”。用于廣播的目的地址,不能作源地址。全0的網(wǎng)絡(luò)號碼,表示“本網(wǎng)絡(luò)”或“我不知道號碼的這個網(wǎng)絡(luò)”。網(wǎng)絡(luò)號碼為127.X.X.X,這里X。X.X為任何數(shù)。這樣的網(wǎng)絡(luò)號碼用作本地軟件回送測試之用。不知道主機(jī)的實(shí)際IP地址時,用該地址代表“本機(jī)"。全1的主機(jī)號碼,表示廣播地址,即對該網(wǎng)絡(luò)上全部的主機(jī)進(jìn)行廣播.全0的主機(jī)號碼,表示該IP地址就是網(wǎng)絡(luò)的地址。合法的主機(jī)IP地址其網(wǎng)絡(luò)部分或主機(jī)部分都不能為全0或全1.IP地址有一些重要的特點(diǎn)。如:有一些IP地址是一種非等級的地址結(jié)構(gòu),它不能反映任何有關(guān)主機(jī)位置的地理信息;當(dāng)一個主機(jī)同時連接到兩個網(wǎng)絡(luò)上時(作路由器用的主機(jī)即為這種情況),該主機(jī)就必須同時具有兩個相應(yīng)的IP地址,其網(wǎng)絡(luò)號碼net-id是不同的,這種主機(jī)成為多地址主機(jī)(multihomedhost);在IP地址中,全部安排到網(wǎng)絡(luò)號碼的網(wǎng)絡(luò)(不管是小的局域網(wǎng)還是很大的廣域網(wǎng))都是公平的。IP子網(wǎng)的劃分IP地址的設(shè)計有不夠合理的地方.例如,IP地址中的A至C類地址,可供安排的網(wǎng)絡(luò)號碼超過211萬個,而這些網(wǎng)絡(luò)上的主機(jī)號碼的總數(shù)則超過37。2億個,初看起來,似乎IP地址足夠全世界來使用,(在70年月初期設(shè)計IP地址是就是這樣認(rèn)為的)。其實(shí)不然。第一,當(dāng)時沒有估計到微機(jī)會普及得如此之快.各種局域網(wǎng)和局域網(wǎng)上的主機(jī)數(shù)目急劇增長。其次,IP地址在使用時有很大的浪費(fèi)。例如:某個單位申請到了一個B類地址。但該單位只有1萬臺主機(jī)。于是,在一個B類地址中的其余5萬5千多個主機(jī)號碼就白白地浪費(fèi)了.由于其他單位的主機(jī)無法使用這些號碼。從1985年起,為了使IP地址的使用更加靈敏,不是把IP地址看成由單純的一個網(wǎng)絡(luò)號和一個主機(jī)號組成,而是把主機(jī)號再分成一個子網(wǎng)號和一個主機(jī)號。IP地址的網(wǎng)絡(luò)號碼net—id被統(tǒng)一安排后,后面的主機(jī)號碼host-id則是受本單位掌握,由本單位進(jìn)行安排,本單位全部的主機(jī)都使用同一個網(wǎng)絡(luò)號碼。當(dāng)一個單位的主機(jī)很多而且分布在很大的地理范圍是,往往需要用一些網(wǎng)橋(而不是路由器,由于路由器連接的主機(jī)具有不同的網(wǎng)絡(luò)號碼)將這些主機(jī)互連起來.網(wǎng)橋的缺點(diǎn)較多,例如容易引起廣播風(fēng)暴,同時當(dāng)網(wǎng)絡(luò)消滅故障時也不太容易隔離和管理。為此使本單位的各子網(wǎng)之間使用路由器來互連,這由于子網(wǎng)的劃分純屬本單位內(nèi)部的事,在本單位以外是看不見這樣的劃分.從外部看,這個單位只有一個網(wǎng)絡(luò)號碼。只有當(dāng)外面的分組進(jìn)入到本單位范圍后,本單位的路由器在依據(jù)子網(wǎng)號碼進(jìn)行選路,最后找到目的主機(jī).若本單位依據(jù)主機(jī)所在的地理位置劃分子網(wǎng),那么在管理方面就會便利得多.子網(wǎng)掩碼用來標(biāo)識各子網(wǎng)的位數(shù),它是網(wǎng)絡(luò)設(shè)備屏蔽全部標(biāo)識子網(wǎng)位的一種測量手段。NIC安排的網(wǎng)絡(luò)號的位包含在子網(wǎng)掩碼中.子網(wǎng)位數(shù)取決于你的網(wǎng)絡(luò)需要。下圖2-16說明是在劃分子網(wǎng)時要用到的子網(wǎng)掩碼(subnetmask)的意義.(a)舉了一個B類IP地址作為例子。(b)表示將本地掌握部分再增加一個子網(wǎng)字段,子網(wǎng)號字段畢竟選為多長,由本單位依據(jù)情況確定。(c)簡略示例:子網(wǎng)掩碼由一連串的“1”和一連串的“0”組成。“1”對應(yīng)于網(wǎng)絡(luò)號碼和子網(wǎng)號碼字段,而“0”對應(yīng)于主機(jī)號碼字段.多劃分出一個子網(wǎng)號碼字段是要付出代價的.例如,對于上述的例子,原來一個B類IP地址可以容納65534個主機(jī)號碼,但劃分出6bit長的子網(wǎng)字段后,最多可有62個子網(wǎng)(去掉全1和全0的子網(wǎng)號碼)。每個子網(wǎng)有10bit的主機(jī)號碼,即每個子網(wǎng)最多可有1022個主機(jī)號碼.因此主機(jī)號碼的總數(shù)是62*1022=63364個,比不劃分子網(wǎng)時要少了一些。若一個單位不進(jìn)行子網(wǎng)的劃分,則其子網(wǎng)掩碼即為默認(rèn)值,對于A,B和C類IP地址,其對應(yīng)的子網(wǎng)掩碼默認(rèn)值分別為255.0.0.0,255.255.0.0和255.255.255.0。(a)B類地址網(wǎng)絡(luò)號主機(jī)號(a)B類地址網(wǎng)絡(luò)號主機(jī)號(b)增加子網(wǎng)段字段網(wǎng)絡(luò)號子網(wǎng)號主機(jī)號(b)增加子網(wǎng)段字段網(wǎng)絡(luò)號子網(wǎng)號主機(jī)號(c)子網(wǎng)掩碼11111111111111111111110000000000(c)子網(wǎng)掩碼11111111111111111111110000000000圖2-16子網(wǎng)與子網(wǎng)掩碼子網(wǎng)化舉例實(shí)際子網(wǎng)數(shù)=2n-2(n表示標(biāo)準(zhǔn)掩碼從左向右擴(kuò)展的位數(shù),減2表示地址全0、全1的子網(wǎng)被保留)。某子網(wǎng)內(nèi)實(shí)際主機(jī)數(shù)=2m-2(m表示子網(wǎng)掩碼中為0的位數(shù),減2表示地址全0、全1的IP地址)例如:一個小公司被安排了一個192。168.1。0的C類地址,但它需要5個子網(wǎng),每個子網(wǎng)支持20臺主機(jī)。請計算出該網(wǎng)絡(luò)的子網(wǎng)掩碼。第一步:確定建立5個子網(wǎng)需要多少位掩碼。依據(jù)以上公式可知,C類掩碼需要擴(kuò)展3位,即:11111111.11111111.11111111。11100000=255.255.255.224其次步:驗(yàn)證主機(jī)數(shù)是否符合要求。依據(jù)以上公式可知,主機(jī)數(shù)=25—2=30。第三步:列出全部子網(wǎng)地址:保留:192.168.1。0子網(wǎng)1:192.168.1.32子網(wǎng)2:192.168。1。64子網(wǎng)3:192。168.1。96子網(wǎng)4:192.168.1.128子網(wǎng)5:192。168。1.160子網(wǎng)5:192.168.1.192保留:192。168。1.224地址的轉(zhuǎn)換IP地址還不能直接用來進(jìn)行通信。這是由于:1、IP地址中的主機(jī)地址只是主機(jī)在網(wǎng)絡(luò)層中的地址,若要將網(wǎng)絡(luò)層中傳送的數(shù)據(jù)報交給目的主機(jī),必須知道該主機(jī)的物理地址。因此必須在IP地址和主機(jī)的物理地址之間進(jìn)行轉(zhuǎn)換。2、用戶平常不情愿使用難于記憶的主機(jī)號碼,而是情愿使用易于記憶的主機(jī)名字。因此也需要在主機(jī)名字和IP地址之間進(jìn)行轉(zhuǎn)換。因此,在TCP/IP體系中都有這兩種轉(zhuǎn)換的機(jī)制。IP地址和主機(jī)的物理地址轉(zhuǎn)換對于IP地址和主機(jī)的物理地址之間的轉(zhuǎn)換由地址轉(zhuǎn)換協(xié)議ARP/反向地址轉(zhuǎn)換協(xié)議RARP來完成。由于IP地址有32bit,而局域網(wǎng)的物理地址(即MAC地址)是48bit,因此它們之間不是一個簡潔的轉(zhuǎn)換關(guān)系。此外,在一個網(wǎng)絡(luò)上可能常常會有新的計算機(jī)假如近來,或撤走一些計算機(jī)。更換計算機(jī)的網(wǎng)卡也會使其物理地址轉(zhuǎn)變.可見在計算機(jī)中應(yīng)當(dāng)存放一個從IP地址到物理地址的轉(zhuǎn)換表,并且能夠常常動態(tài)更新。地址轉(zhuǎn)換協(xié)議ARP很好地解決了這些問題。每一個主機(jī)都有一個ARP高速緩存(ARPcache),里面有IP地址到物理地址的映射表,這些都是該主機(jī)目前知道的一些地址。當(dāng)主機(jī)A欲向本局域網(wǎng)上的主機(jī)B發(fā)送一個IP數(shù)據(jù)報時,就先在其ARP高速緩存中查看有無主機(jī)B的IP地址.如有,就可查出其對應(yīng)的物理地址,然后將該數(shù)據(jù)報發(fā)往此物理地址。如沒有,則可能是主機(jī)B才入網(wǎng),也可能是主機(jī)A剛剛加電,其高速緩存還是空的。在這種情況下,主機(jī)A就自動運(yùn)行ARP,按以下步驟找出主機(jī)B的物理地址。1)ARP進(jìn)程在本局域網(wǎng)上廣播發(fā)送一個ARP懇求分組,上面有主機(jī)B的IP地址;2)在本局域網(wǎng)上的全部主機(jī)上運(yùn)行的ARP進(jìn)程都收到此ARP懇求分組;3)主機(jī)B在ARP懇求分組中見到自己的IP地址,就向主機(jī)A發(fā)送一個ARP響應(yīng)分組,上面寫入自己的物理映射;4)主機(jī)A收到主機(jī)B的ARP響應(yīng)分組后,就在其ARP高速緩存中寫入主機(jī)B的IP地址到物理地址的映射.在很多情況下,當(dāng)主機(jī)A向主機(jī)B發(fā)送數(shù)據(jù)報時,很可能以后不久主機(jī)B還要向主機(jī)A發(fā)送數(shù)據(jù)報,因而主機(jī)B也可能要向主機(jī)A發(fā)送ARP懇求分組。為了削減網(wǎng)絡(luò)上的通信量,主機(jī)A在發(fā)送其ARP懇求分組時,就將自己的IP地址到物理地址的映射寫入ARP懇求分組。當(dāng)主機(jī)B收到主機(jī)A的ARP懇求分組時,主機(jī)B就將主機(jī)A的這一地址映射寫入主機(jī)B自己的ARP高速緩存中。這對主機(jī)B以后向主機(jī)A發(fā)送數(shù)據(jù)報時就更便利了。在進(jìn)行地址轉(zhuǎn)換時,有時還要用到反向地址轉(zhuǎn)換協(xié)議RARP。RARP使只知道自己物理地址的主機(jī)能夠知道其IP地址。這種主機(jī)往往是無盤工作站。這種無盤工作站一般只要運(yùn)行其ROM中的文件傳送代碼,就可用下行裝載方法,從局域網(wǎng)上其他主機(jī)得到所需的操作系統(tǒng)和TCP/IP通信軟件,但這些軟件中并沒有IP地址。無盤工作站要運(yùn)行ROM中的RARP來獲得其IP地址。RARP的工作過程大致如下:1)為了使RARP能工作,在局域網(wǎng)上至少有一個主機(jī)要充當(dāng)RARP服務(wù)器,無盤工作站先向局域網(wǎng)發(fā)出RARP懇求分組(在格式上與ARP懇求分組相像),并在此分組中給出自己的物理地址;2)RARP服務(wù)器有一個事先做好的從無盤工作站的物理地址到IP地址的映射表,當(dāng)收到RARP懇求分組后,RARP服務(wù)器就從這映射表查出該無盤工作站的IP地址;3)然后寫入RARP響應(yīng)分組,發(fā)回給無盤工作站。這樣無盤工作站就獲得了自己的IP地址。IP地址和主機(jī)名之間的轉(zhuǎn)換IP地址和主機(jī)名之間的轉(zhuǎn)換依據(jù)網(wǎng)絡(luò)大小不同而不同。對于較小的網(wǎng)絡(luò),可以使用TCP/IP體系供應(yīng)的叫做hosts的文件來進(jìn)行從主機(jī)名字到IP地址的轉(zhuǎn)換。文件hosts上有很多主機(jī)名字到IP地址的映射,供主叫主機(jī)使用。對于較大的網(wǎng)絡(luò),則在網(wǎng)絡(luò)中的幾個地方放有域名系統(tǒng)DNS(DomainNameSystem)的名字服務(wù)器nameserver,上面分層次放有很多主機(jī)名字到IP地址轉(zhuǎn)換的映射表。主叫主機(jī)中的名字轉(zhuǎn)換軟件resolver自動找到DNS的nameserver來完成這種轉(zhuǎn)換。域名系統(tǒng)DNS屬于應(yīng)用層軟件。IPv4存在的問題多年來,IPv4的地址始終存在較大的浪費(fèi)。例如:考慮一個中等規(guī)模的公司,該公司需要300個IP地址,單個C類地址(有254個主機(jī)地址)滿意不了要求,使用兩個C類地址雖供應(yīng)了足夠的主機(jī)地址,但結(jié)果是在一個公司內(nèi)部有兩個分開的域,這增加了路由表的大小,因此作為選擇,升級到一個B類地址可以在一個域內(nèi)供應(yīng)該公司全部需要的地址,但卻浪費(fèi)了65,234個地址。如果每當(dāng)一個網(wǎng)絡(luò)要支持多于254個主機(jī)時,就發(fā)放一個B類地址,則B類地址空間的消耗就格外飛快.為提高32位地址空間的使用效率,并在IPv6未正是使用之前,已開發(fā)出一些擴(kuò)展IP地址的方法,其中最重要的三個是:子網(wǎng)掩碼VLSM(可變長度子網(wǎng)掩碼)CIDR(無類域內(nèi)路由選擇)子網(wǎng)掩碼(固定和可變長度的)被設(shè)計用來適應(yīng)多個規(guī)律網(wǎng)絡(luò),它們可能存在于與因特網(wǎng)連接的同一物理地點(diǎn)。CIDR用來消除原先那種嚴(yán)格的地址類中所固有的低效率,將很多不同的網(wǎng)絡(luò)地址聚合成一單個路由選擇表記錄處,使得在路由器之間傳送掩碼,沒有必要推斷地址類型和缺省的掩碼。CIDR有三個關(guān)鍵特征:無類編址(除去類并不能把那些困在已安排地址空間的地址恢復(fù)出來,但它卻可使那些剩下的地址被充分地利用)、增強(qiáng)型路由聚合(允許支持CIDR的路由器更充分聚合路由選擇信息,即路由選擇表中的一個記錄可以代表很多網(wǎng)絡(luò)的地址空間)、超網(wǎng)連網(wǎng)(supernetting,是應(yīng)用幾個C類地址空間相鄰的塊來模擬一個更大的地址空間,從而減輕B類地址很塊用盡的壓力).IP的將來(IPv6)現(xiàn)在的IP版本號是4,因此它的全名叫做IPV4。自從1981年9月IPV4消滅以來,它始終作為一種標(biāo)準(zhǔn),并且已經(jīng)證明白它具有簡潔性和可縮放性。INTERNET和INTRANET都以它為基礎(chǔ).盡管它是一個格外重要的結(jié)構(gòu),但是已經(jīng)有一些過時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論