国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
第 1 章 TCP/IP 概述
本章先介紹了計(jì)算機(jī)網(wǎng)絡(luò)的基本概念, 以及 ISO/OSI 七層通信模型及各層的基本功能。然后著重介紹了 TCP/IP 協(xié)議的體系結(jié)構(gòu)與分層工作原理,并對(duì) TCP/IP 的常用概念進(jìn)行了分類說(shuō)明。最后介紹了不在 TCP/IP 體系結(jié)構(gòu)中但與 TCP/IP 關(guān)系密切的地址解析協(xié)議 ARP 。
1.1 ISO/OSI 的七層通信模型

   信息化社會(huì)的基礎(chǔ)是計(jì)算機(jī)和互連計(jì)算機(jī)的信息網(wǎng)絡(luò),信息網(wǎng)絡(luò)已成為十分重要的基礎(chǔ)設(shè)施。計(jì)算機(jī)網(wǎng)絡(luò)源于計(jì)算機(jī)與通信技術(shù)的結(jié)合,始于 20 世紀(jì) 50 年代,在近 20 年得到迅猛發(fā)展。特別是在最近 10 年來(lái),隨著 TCP/IP 協(xié)議的廣泛應(yīng)用和 Internet 的飛速發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)深入千家萬(wàn)戶, TCP/IP 協(xié)議也已經(jīng)成為計(jì)算機(jī)網(wǎng)絡(luò)事實(shí)上的協(xié)議標(biāo)準(zhǔn)。但是,要介紹計(jì)算機(jī)網(wǎng)絡(luò),必須先了解國(guó)際標(biāo)準(zhǔn)化組織( International Organization for Standardization, ISO )在 80 年代初制定的“開(kāi)放系統(tǒng)互連參考模型”( Open System Interconnection Reference Model, OSI ),該模型在規(guī)范計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)方面起到了不可替代的作用。

1.1.1 計(jì)算機(jī)網(wǎng)絡(luò)概念

   計(jì)算機(jī)網(wǎng)絡(luò)是由地理上分散的、具有獨(dú)立功能的多臺(tái)計(jì)算機(jī),通過(guò)通信設(shè)備和線路互相連接起來(lái),在配有相應(yīng)的網(wǎng)絡(luò)軟件的情況下,實(shí)現(xiàn)計(jì)算機(jī)之間通信和資源共享的系統(tǒng)。計(jì)算機(jī)網(wǎng)絡(luò)按其所跨越的地理范圍可分為局域網(wǎng) LAN ( Local Area Network )和廣域網(wǎng) WAN ( Wide Area Network )。

1. 局域網(wǎng)

   局域網(wǎng)一般是在一棟或相鄰的幾棟大樓內(nèi),或在一個(gè)校園、工廠、企業(yè)范圍內(nèi),其地理范圍通常不超過(guò) 10 公里 ,屬于一個(gè)部門(mén)或一個(gè)單位組建的專用網(wǎng)絡(luò)。局域網(wǎng)常常被應(yīng)用于連接單位內(nèi)部的計(jì)算機(jī)資源,以便共享資源(如打印機(jī)和數(shù)據(jù)庫(kù))和交換信息。局域網(wǎng)的主要特點(diǎn)為:

  • 較小的地域范圍:僅用于辦公室、機(jī)關(guān)、工廠、學(xué)校等內(nèi)部聯(lián)網(wǎng),其范圍沒(méi)有嚴(yán)格的定義,但一般認(rèn)為距離不超過(guò) 10 公里 ;
  • 高傳輸速率和低誤碼率:現(xiàn)在的局域網(wǎng)的傳輸速率一般為 10-1000Mbps ,誤碼率一般在 10 -8 ~10 -11 之間;
  • 專用性:局域網(wǎng)一般為一個(gè)單位所建,在單位和部門(mén)內(nèi)部控制管理和使用,通常采用同軸電纜、雙絞線等建立單位內(nèi)部專用線,隨著千兆網(wǎng)的廣泛使用,光線也開(kāi)始成為局域網(wǎng)的主要連線;
  • 注重信息共享:局域網(wǎng)通常是單位內(nèi)部為解決資源共享而建立,因此非常注重信息的共享(相對(duì)應(yīng)的廣域網(wǎng)多是運(yùn)營(yíng)商所建,其注重的是信息傳輸?shù)臏?zhǔn)確性與安全性)。

   局域網(wǎng)的典型代表是以太網(wǎng)( Ethernet ), Ethernet 是最早的局域網(wǎng),也是目前最流行的局域網(wǎng)。交換式、快速型以太網(wǎng)技術(shù)使以太網(wǎng)保持著旺盛的生命力,現(xiàn)在的以太網(wǎng)發(fā)展成熟,都是基于 IEEE 802.3 系列標(biāo)準(zhǔn)。當(dāng)前比較流行的以太網(wǎng)是 10BASE-T 、 100BASE-T 、 1000BASE-T 和 1000BASE-LX/SX 。

2. 廣域網(wǎng)

   廣域網(wǎng)是一種跨越大的地域的網(wǎng)絡(luò),通常覆蓋一個(gè)地區(qū)、一個(gè)國(guó)家乃至全世界。廣域網(wǎng)通常是為連接不同的局部網(wǎng)絡(luò)而建立的,因此多采用租用公用線路和專用線路的方式,如租用電話線、光纖、衛(wèi)星等。

   當(dāng)前流行的廣域網(wǎng)系統(tǒng)是 X.25 分組交換網(wǎng)、幀中繼( Frame Relay )網(wǎng)、窄帶綜合業(yè)務(wù)數(shù)字網(wǎng) N-ISDN ( Narrowband Integrated Services Digital Network )、寬帶 ISDN ——異步傳輸模式 ATM ( Asynchronous Transfer Mode )網(wǎng),但是,最近的寬帶 IP 網(wǎng)友異軍突起之勢(shì)。

   廣域網(wǎng)的典型代表是 ARPANET ,它是 Internet 的前身,是第一個(gè)計(jì)算機(jī)互聯(lián)的包交換網(wǎng)。 ARPANET 在 70 年代中期開(kāi)始出現(xiàn), 1980 年開(kāi)始采用新的 TCP/IP 協(xié)議, 1983 年要求所有連接到該網(wǎng)的計(jì)算機(jī)都是用 TCP/IP 協(xié)議,正式成為 Internet ?,F(xiàn)在, Internet 已經(jīng)覆蓋到全球,幾乎所有的國(guó)家和地區(qū)都連入了 Internet 。

1.1.2 OSI 七層模型

   現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)的設(shè)計(jì)都是按照高度結(jié)構(gòu)化方式進(jìn)行的, OSI 七層參考模型非常明確地表示了這一點(diǎn)。結(jié)構(gòu)化設(shè)計(jì)的最為重要的手段就是分層。

1. 網(wǎng)絡(luò)協(xié)議與分層

   計(jì)算機(jī)網(wǎng)絡(luò)是為了實(shí)現(xiàn)計(jì)算機(jī)之間的通信,任何雙方要成功地進(jìn)行通信,必須遵守一定的信息交換規(guī)則和約定,這些信息交換規(guī)則和約定就稱為通信協(xié)議( protocol )。計(jì)算機(jī)上的網(wǎng)絡(luò)接口卡、通信軟件、通信設(shè)備都是遵循一定的協(xié)議設(shè)計(jì)的,必須符合一定的協(xié)議規(guī)范。

   為了減少協(xié)議設(shè)計(jì)的復(fù)雜性,大多數(shù)網(wǎng)絡(luò)都按層或級(jí)的方式來(lái)組織,每一層都建立在它的下層之上。不同的網(wǎng)絡(luò)在分層數(shù)量和各層的名字、內(nèi)容與功能上都不盡相同,然而,在所有的網(wǎng)絡(luò)中,每一層的目的都是向它的上一層提供一定的服務(wù),而把這種服務(wù)是如何實(shí)現(xiàn)的細(xì)節(jié)對(duì)上層加以屏蔽。

   層按功能來(lái)劃分,每一層都有特定的功能,它一方面利用下一層所提供的功能,另一方面又為其上一層提供服務(wù)。通信雙方在相同層之間進(jìn)行通話,通話規(guī)則和協(xié)定的整體就是該層的協(xié)議。每一層都有一個(gè)或多個(gè)協(xié)議,幾個(gè)層合成一個(gè)協(xié)議棧( protocol stack )。協(xié)議的分層模型便于協(xié)議軟件按模塊方式進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),這樣每層協(xié)議的設(shè)計(jì)、修改、實(shí)現(xiàn)和測(cè)試都可以獨(dú)立進(jìn)行,從而減少?gòu)?fù)雜性。

   不同機(jī)器內(nèi)包含相同協(xié)議層的實(shí)體叫做對(duì)等進(jìn)程,對(duì)等進(jìn)程是利用協(xié)議進(jìn)行通信的主體。相鄰層之間通過(guò)接口來(lái)定義相互關(guān)系,接口定義下層向上層提供的原語(yǔ)操作和服務(wù)。層和協(xié)議的集合叫做網(wǎng)絡(luò)體系結(jié)構(gòu)。

2. OSI 參考模型

OSI 模型有七層,其分層原則如下:

  • 根據(jù)不同層次的抽象分層;
  • 每一層應(yīng)當(dāng)實(shí)現(xiàn)一個(gè)定義明確的功能;
  • 每一層功能的選擇應(yīng)當(dāng)有助于制定網(wǎng)絡(luò)協(xié)議的國(guó)際標(biāo)準(zhǔn);
  • 各層邊界的選擇應(yīng)盡量減少跨過(guò)接口的通信量;
  • 層數(shù)應(yīng)足夠多,以避免不同的功能混雜在同一層中;但也不能太多,否則體系結(jié)構(gòu)會(huì)過(guò)于龐大。

根據(jù)這些原則, ISO 在 1983 年推出的 OSI 參考模型如圖 1-1 所示。

圖 1-1 OSI 七層參考模型

   值得注意的是, OSI 參考模型本身并不是一個(gè)完整的網(wǎng)絡(luò)體系結(jié)構(gòu),因?yàn)樗⑽创_切地描述用于各層的協(xié)議和服務(wù),它僅僅告訴我們每層應(yīng)該做什么。不過(guò), ISO 已經(jīng)為各層制定了標(biāo)準(zhǔn),但它們并不是參考模型的一部分,而是作為獨(dú)立的國(guó)際標(biāo)準(zhǔn)公布的。

1.1.3 OSI 各層簡(jiǎn)介

   OSI 七層模型是指從物理層到應(yīng)用層這七層,它不涉及通信的物理介質(zhì)。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,特別是局域網(wǎng)的發(fā)展,后來(lái)對(duì) OSI 七層模型進(jìn)行了改進(jìn)。修訂之一就是非正式地增加了一些子層和新層,如增加了第 0 層,使之覆蓋了象電纜連接器和光纖這樣的硬件細(xì)節(jié)。本節(jié)我們只對(duì) OSI 模型的七層的功能作簡(jiǎn)單描述。

1. 物理層

   物理層( physical layer )是 OSI 模型的最低層,它建立在物理通信介質(zhì)的基礎(chǔ)上,作為系統(tǒng)和通信介質(zhì)的接口,用來(lái)實(shí)現(xiàn)數(shù)據(jù)鏈路實(shí)體間透明的比特流傳輸。在設(shè)計(jì)上必須保證一方發(fā)送出二進(jìn)制“ 1 ”時(shí),另一方收到的也是“ 1 ”而不是“ 0 ”。

   物理層是 OSI 中唯一設(shè)計(jì)通信介質(zhì)的一層,它提供與通信介質(zhì)的連接,描述這種連接的機(jī)械、電氣、功能和規(guī)程特性,以建 立、維護(hù)和釋放數(shù)據(jù)鏈路實(shí)體之間的物理連接。物理層向上層提供位信息的正確傳送。

   物理層協(xié)議定義了硬件接口的一系列標(biāo)準(zhǔn),典型地如用多少伏特電壓表示“ 1 ”,多少伏特表示“ 0 ”;一個(gè)比特持續(xù)多少時(shí)間;傳輸是雙向的還是單向的;最初的連接如何建立和完成通信后連接如何終止;一次通信中發(fā)送方和接收方如何應(yīng)答;設(shè)備之間連接件的尺寸和接頭數(shù);每根線的用途等。

2. 數(shù)據(jù)鏈路層

   數(shù)據(jù)鏈路層( data link layer )的主要任務(wù)是加強(qiáng)物理層傳輸原始比特的功能,使之對(duì)網(wǎng)絡(luò)層顯現(xiàn)為一條無(wú)錯(cuò)鏈路。它在相鄰網(wǎng)絡(luò)實(shí)體之間建立、維持和釋放數(shù)據(jù)鏈路連接,并傳輸數(shù)據(jù)鏈路數(shù)據(jù)單元(幀, frame )。它是將位收集起來(lái),按包處理的第一個(gè)層次,它完成發(fā)送包前的最后封裝,及對(duì)到達(dá)包進(jìn)行首次檢視。其主要功能為:

  • 數(shù)據(jù)鏈路連接的建立與釋放:在每次通信前后,雙方相互聯(lián)系以確認(rèn)一次通信的開(kāi)始和結(jié)束。數(shù)據(jù)鏈路層一般提供無(wú)應(yīng)答無(wú)連接服務(wù)、有應(yīng)答無(wú)連接服務(wù)和面向連接的服務(wù)等三種類型服務(wù)。
  • 數(shù)據(jù)鏈路數(shù)據(jù)單元的構(gòu)成:在上層交付的數(shù)據(jù)的基礎(chǔ)上加入數(shù)據(jù)鏈路協(xié)議控制信息,形成數(shù)據(jù)鏈路協(xié)議數(shù)據(jù)單元。
  • 數(shù)據(jù)鏈路連接的分裂:當(dāng)數(shù)據(jù)量很大時(shí),為提高傳輸速率和效率,將原來(lái)在一條物理鏈路上傳輸?shù)臄?shù)據(jù)改用多條物理鏈路來(lái)傳輸(與多路復(fù)用相反)。
  • 定界與同步:從物理連接上傳輸數(shù)的比特流中,識(shí)別出數(shù)據(jù)鏈路數(shù)據(jù)單元的開(kāi)始和結(jié)束,以及識(shí)別出其中的每個(gè)字段,以便實(shí)現(xiàn)正確的接收和控制。
  • 順序和流量控制:用以保證發(fā)送方發(fā)送的數(shù)據(jù)單元能以相同的順序傳輸?shù)浇邮辗剑⒈3职l(fā)送速率與接收速率的匹配。
  • 差錯(cuò)的檢測(cè)與恢復(fù):檢測(cè)出傳輸、格式和操作等錯(cuò)誤,并對(duì)錯(cuò)誤進(jìn)行恢復(fù),如不能恢復(fù)則向相關(guān)網(wǎng)絡(luò)實(shí)體報(bào)告。

3. 網(wǎng)絡(luò)層

   網(wǎng)絡(luò)層( network layer )關(guān)系到子網(wǎng)的運(yùn)行控制,其關(guān)鍵問(wèn)題之一是確定分組從源端到目的端如何選擇路由。本層維護(hù)路由表,并確定哪一條路由是最快捷的,及何時(shí)使用替代路由。路由既可以選用網(wǎng)絡(luò)中固定的靜態(tài)路由表,幾乎保持不變,也可以在每一次會(huì)話開(kāi)始時(shí)決定(如通過(guò)終端協(xié)商決定),還可以根據(jù)當(dāng)前網(wǎng)絡(luò)的負(fù)載狀況,高度靈活地為每一個(gè)分組決定路由。

   網(wǎng)絡(luò)層的另一重要功能是傳輸和流量控制,它在子網(wǎng)中同時(shí)出現(xiàn)過(guò)多的分組時(shí),提供有效的流量控制服務(wù)來(lái)控制網(wǎng)絡(luò)連接上傳輸?shù)姆纸M,以免發(fā)生信息“堵塞”或“擁擠”現(xiàn)象。

   網(wǎng)絡(luò)層提供兩種類型的網(wǎng)絡(luò)服務(wù),即無(wú)連接的服務(wù)(數(shù)據(jù)報(bào)服務(wù))和面向連接的服務(wù)(虛電路服務(wù))。網(wǎng)絡(luò)層使較高層與連接系統(tǒng)所用的數(shù)據(jù)傳輸和交換技術(shù)相獨(dú)立。

   IP 協(xié)議工作在本層,它提供“無(wú)連接的”或“數(shù)據(jù)報(bào)”服務(wù)。

4. 傳輸層

   傳輸層( transport layer )的基本功能是從會(huì)話層接收數(shù)據(jù),在必要時(shí)把它們劃分成較小的單元傳遞給網(wǎng)絡(luò)層,并確保到達(dá)對(duì)方的各段信息準(zhǔn)確無(wú)誤。而且,這些任務(wù)都必須高效率地完成。

   傳輸層是在網(wǎng)絡(luò)層的基礎(chǔ)上再增添一層軟件,使之能屏蔽掉各類通信子網(wǎng)的差異,相用戶進(jìn)程提供一個(gè)能滿足其要求的服務(wù),其具有一個(gè)不變的通用接口,使用戶進(jìn)程只需了解該接口,便可方便地在網(wǎng)絡(luò)上使用網(wǎng)絡(luò)資源并進(jìn)行通信。

   通常情況下,會(huì)話層每請(qǐng)求建立一個(gè)傳輸連接,傳輸層就為其創(chuàng)建一個(gè)獨(dú)立的網(wǎng)絡(luò)連接。如果傳輸連接需要較高的信息吞吐量,傳輸層也可以為之創(chuàng)建多個(gè)網(wǎng)絡(luò)連接,讓數(shù)據(jù)在這些網(wǎng)絡(luò)連接上分流,以提高吞吐量。另一方面,如果創(chuàng)建或維持一個(gè)網(wǎng)絡(luò)連接不合算,傳輸層可以將幾個(gè)傳輸連接復(fù)用到一個(gè)網(wǎng)絡(luò)連接上,以降低費(fèi)用。在任何情況下,都要求傳輸層能使多路復(fù)用對(duì)會(huì)話層透明。

   傳輸層是真正的從源到目標(biāo)“端到端”的層,也就是說(shuō),源端機(jī)上的某程序,利用報(bào)文頭和控制報(bào)文與目標(biāo)機(jī)上的類似程序進(jìn)行對(duì)話。在傳輸層以下的各項(xiàng)層中,協(xié)議是每臺(tái)機(jī)器和它直接相鄰的機(jī)器間的協(xié)議,而不是最終的源端機(jī)和目標(biāo)機(jī)之間的協(xié)議,在他們中間可能還有多個(gè)路由器。圖 1-1 說(shuō)明了這種區(qū)別, 1 層 -3 層是鏈接起來(lái)的, 4 層 -7 層是端到端的。

   TCP 協(xié)議工作在本層,它提供可靠的基于連接的服務(wù)。它在兩個(gè)端點(diǎn)之間提供可靠的數(shù)據(jù)傳送,并提供端到端的差錯(cuò)恢復(fù)與流控。

5. 會(huì)話層

   會(huì)話層( session layer )允許不同機(jī)器上的用戶之間建立會(huì)話關(guān)系,即正式的連接。這種正式的連接使得信息的收發(fā)具有高可靠性。會(huì)話層的目的就是有效地組織和同步進(jìn)行合作的會(huì)話服務(wù)用戶之間的對(duì)話,并對(duì)它們之間的數(shù)據(jù)交換進(jìn)行管理。

   會(huì)話層服務(wù)之一是管理對(duì)話,它允許信息同時(shí)雙向傳輸,或任意時(shí)刻只能單向傳輸。約屬于后者,則類似于單線鐵路,會(huì)話層將記錄此時(shí)該輪到哪一方了。一種與會(huì)話有關(guān)的服務(wù)是令牌管理( token management ),令牌可以在會(huì)話雙方之間交換,只有持有令牌的一方可以執(zhí)行某種關(guān)鍵操作。

   另一種會(huì)話服務(wù)是同步( synchronization )。同步是在連續(xù)發(fā)送大量信息時(shí),為了使發(fā)送的數(shù)據(jù)更加精細(xì)地結(jié)構(gòu)化,在用戶發(fā)送的數(shù)據(jù)中設(shè)置同步點(diǎn),以便記錄發(fā)送過(guò)程的狀態(tài),并且在錯(cuò)誤發(fā)生導(dǎo)致會(huì)話中斷時(shí),會(huì)話實(shí)體能夠從一個(gè)同步點(diǎn)恢復(fù)會(huì)話繼續(xù)傳送,而不必從開(kāi)頭恢復(fù)會(huì)話。

   TCP/IP 協(xié)議體系中沒(méi)有專門(mén)的會(huì)話層,但是在其傳輸層協(xié)議 TCP 協(xié)議實(shí)現(xiàn)了本層部分功能。

6. 表示層

   表示層( presentation layer )完成某些特定的功能,由于這些功能常被請(qǐng)求,因此人們希望找到通用的解決辦法,而不 是要讓每個(gè)用戶來(lái)實(shí)現(xiàn)。值得一提的是,表示層以下的各層只關(guān)心可靠的傳輸比特流,而表示層關(guān)心的是所傳輸?shù)男畔⒌恼Z(yǔ)法和語(yǔ)義。

   表示層尚未完整定義和廣泛使用,如 TCP/IP 協(xié)議體系中就沒(méi)有定義表示層。表示層完成應(yīng)用層所用數(shù)據(jù)所需要的任何轉(zhuǎn)換,以提供標(biāo)準(zhǔn)化的應(yīng)用接口和公共的通信服務(wù)。如數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)壓縮 / 解壓和數(shù)據(jù)加密 / 解密可能在表示層進(jìn)行。

7. 應(yīng)用層

   應(yīng)用層( application layer )包含大量人們普遍需要的協(xié)議。本層處理安全問(wèn)題與資源的可用性。最近幾年,應(yīng)用層協(xié)議發(fā)展很快,經(jīng)常用到的應(yīng)用層協(xié)議有: FTP 、 TELNET 、 HTTP 、 SMTP 等。

   OSI 模型的各層之間任務(wù)明確,它們只與上下相鄰層打交道:接受下層提供的服務(wù),向上層提供服務(wù)。由于所有的網(wǎng)絡(luò)協(xié)議都是分層的,象堆棧一樣,因此經(jīng)常將協(xié)議各層統(tǒng)稱協(xié)議棧。它們的工作模式一般為:發(fā)送時(shí)接收上層的數(shù)據(jù),將其分割打包,然后交給下層;接收時(shí)接收下層的數(shù)據(jù)包,將其拆包重組,然后交給上層。這樣,一個(gè)包的傳輸過(guò)程是:發(fā)送主機(jī)的應(yīng)用程序?qū)?shù)據(jù)傳遞給網(wǎng)絡(luò)協(xié)議棧實(shí)現(xiàn)(網(wǎng)絡(luò)通信程序),網(wǎng)絡(luò)協(xié)議棧實(shí)現(xiàn)將數(shù)據(jù)層層打包,最后交由物理層在數(shù)據(jù)鏈路上發(fā)送;接收主機(jī)收到數(shù)據(jù)后,逐層拆包向上傳遞,直到最后達(dá)到應(yīng)用層,應(yīng)用程序得到對(duì)等方的數(shù)據(jù)。

1.2 TCP/IP 協(xié)議的體系

   Internet 采用的是 TCP/IP 協(xié)議體系, TCP/IP 協(xié)議體系是因其兩個(gè)著名的協(xié)議 TCP 和 IP 而得名的。 TCP/IP 協(xié)議體系在和 OSI 的競(jìng)爭(zhēng)中取得了決定性的勝利,得到了廣泛的認(rèn)可,成為了事實(shí)上的網(wǎng)絡(luò)協(xié)議體系標(biāo)準(zhǔn)。

1.2.1 TCP/IP 分層模型

   TCP/IP 協(xié)議體系和 OSI 參考模型一樣,也是一種分層結(jié)構(gòu)。它是由基于硬件層次上的四個(gè)概念性層次構(gòu)成,即網(wǎng)絡(luò)接口層、互聯(lián)網(wǎng)層、傳輸層和應(yīng)用層。圖 1-2 表示了 TCP/IP 協(xié)議體系及其與 OSI 參考模型的對(duì)應(yīng)關(guān)系。

                

 

   從圖 1-2 可以看出,對(duì)照 OSI 七層協(xié)議, TCP/IP 第三層以上是應(yīng)用層、傳輸層和網(wǎng)際互聯(lián)層, TCP/IP 的應(yīng)用層組合了 OSI 的應(yīng)用層和表示層,還包括 OSI 會(huì)話層的部分功能。但是,這樣的對(duì)應(yīng)關(guān)系并不是絕對(duì)的,它只有參考意義,因?yàn)?TCP/IP 各層功能和 OSI 模型的對(duì)應(yīng)層還是有一些區(qū)別的。

1. 網(wǎng)絡(luò)接口層

   網(wǎng)絡(luò)接口層也稱為數(shù)據(jù)鏈路層,它是 TCP/IP 的最底層,但是 TCP/IP 協(xié)議并沒(méi)有嚴(yán)格定義該層,它只是要求主機(jī)必須使用某種協(xié)議與網(wǎng)絡(luò)連接,以便能在其上傳遞 IP 分組。因此,在傳統(tǒng)的 UNIX 里,網(wǎng)絡(luò)接口通常是一個(gè)設(shè)備驅(qū)動(dòng)器,并且隨主機(jī)和網(wǎng)絡(luò)的不同而不同。

2. 互聯(lián)網(wǎng)層

   互聯(lián)網(wǎng)層( Internet Layer )俗稱 IP 層,它處理機(jī)器之間的通信。它接受來(lái)自傳輸層的請(qǐng)求,傳輸某個(gè)具有目的地址信息的分組。該層把分組封裝到 IP 數(shù)據(jù)報(bào)中,填入數(shù)據(jù)報(bào)的首部(也稱為報(bào)頭),使用路由算法來(lái)選擇是直接把數(shù)據(jù)報(bào)發(fā)送到目標(biāo)機(jī)還是把數(shù)據(jù)報(bào)發(fā)送給路由器,然后報(bào)數(shù)據(jù)報(bào)交給下面的網(wǎng)絡(luò)接口層中的對(duì)應(yīng)網(wǎng)絡(luò)接口模塊。該層還有處理接收到的數(shù)據(jù)報(bào),檢驗(yàn)其正確性,使用路由算法來(lái)決定對(duì)數(shù)據(jù)報(bào)是否在本地進(jìn)行處理還是繼續(xù)向前傳送。

3. 傳輸層

   傳輸層的基本任務(wù)是提供應(yīng)用層之間的通信,即端到端的通信。傳輸層管理信息流,提供可靠的傳輸服務(wù),以確保數(shù)據(jù)無(wú)差錯(cuò)的、按序到達(dá)。為了這個(gè)目的,傳輸層協(xié)議軟件要進(jìn)行協(xié)商,讓接收方回送確認(rèn)信息及讓發(fā)送方重發(fā)丟失的分組。傳輸層協(xié)議軟件將要傳送的數(shù)據(jù)流劃分成分組,并把每個(gè)分組連同目的地址交給下一層去發(fā)送。

4. 應(yīng)用層

   在這個(gè)最高層,用戶調(diào)用應(yīng)用程序來(lái)訪問(wèn) TCP/IP 互聯(lián)網(wǎng)絡(luò)提供的多種服務(wù)。應(yīng)用程序負(fù)責(zé)發(fā)送和接收數(shù)據(jù)。每個(gè)應(yīng)用程序選擇所需的傳輸服務(wù)類型,可以是獨(dú)立的報(bào)文序列,或者是連續(xù)的字節(jié)流。應(yīng)用程序?qū)?shù)據(jù)按要求的格式傳送給傳輸層。

1.2.2 TCP/IP 分層工作原理

   TCP/IP 協(xié)議體系和 OSI 模型的分層結(jié)構(gòu)雖然不完全相同,但它們的分層原則是一致的,即都遵循這樣的一個(gè)思想:分層的協(xié)議要被設(shè)計(jì)成達(dá)到這樣的效果,即目標(biāo)機(jī)的第 n 層所收到的數(shù)據(jù)就是源主機(jī)的第 n 層所發(fā)出的數(shù)據(jù)。

   圖 1-3 描述了 TCP/IP 分層工作原理,它表示了兩臺(tái)主機(jī)上的應(yīng)用程序之間傳輸報(bào)文的路徑。主機(jī) B 上的第 n 層所收到的正是主機(jī) A 上的第 n 層所發(fā)出的對(duì)象。

   在圖 1-3 中我們忽略了一個(gè)重要的內(nèi)容,即沒(méi)有描述發(fā)送方主機(jī)上的應(yīng)用程序與接收主機(jī)的應(yīng)用程序之間通過(guò)路由器進(jìn)行報(bào) 文傳輸?shù)那闆r。圖 1-4 中描述使用路由器的 TCP / IP 分層工作,圖中報(bào)文經(jīng)歷了兩種結(jié)構(gòu)不同的網(wǎng)絡(luò),也使用了兩種不同的網(wǎng)絡(luò)幀,即一個(gè)是從主機(jī) A 到路由器 R ,另一個(gè)是從路由器 R 到主機(jī) B 。主機(jī) A 發(fā)出的幀和路由器 R 接收到的幀相同,但不同于路由器 R 和主機(jī) B 之間傳送的幀。與此形成對(duì)照的是應(yīng)用程序?qū)雍蛡鬏攲犹幚矶说蕉说氖聞?wù),因此發(fā)送方的軟件能和最終的接收方的對(duì)等層軟件進(jìn)行通信。也就是說(shuō),分層原則保證了最終的接收方的傳輸層所收到的分組與發(fā)送方的傳輸層送出的分組是一樣的。

圖 1-3 TCP/IP 分層工作原理

 

圖 1-4 使用路由器的 TCP/IP 分層工作原理

 

1.2.3 TCP/IP 模型的分界線

   TCP/IP 的概念性層次包含兩個(gè)重要的分界線,一個(gè)是協(xié)議地址分界線,以區(qū)分高層和低層的尋址,另一個(gè)是操作系統(tǒng)分界線,以區(qū)分系統(tǒng)與應(yīng)用程序。圖 1-5 描述了 TCP/IP 概念層模型的分界。

 

圖 1-5 TCP/IP 概念層模型的分界

 

   高層尋址使用 IP 地址,低層尋址使用物理地址。一個(gè)概念性的界限把使用低層地址的軟件和使用高層地址的軟件區(qū)分開(kāi)來(lái),這個(gè)分界線出現(xiàn)在網(wǎng)絡(luò)接口層和 Internet 層之間,即應(yīng)用程序和在 Internet 層之上的所有協(xié)議軟件只使用 IP 地址,而網(wǎng)絡(luò)接口層處理的是物理地址。因此,象 ARP 這樣的處于網(wǎng)絡(luò)接口層的協(xié)議,就不是 IP 的一部分。

   通常將軟件分成操作系統(tǒng)和非操作系統(tǒng)軟件兩種類型。當(dāng)協(xié)議軟件集成到操作系統(tǒng)之中后,在協(xié)議軟件的低層之間進(jìn)行數(shù)據(jù)傳輸?shù)拈_(kāi)銷比應(yīng)用程序和傳輸層之間進(jìn)行數(shù)據(jù)傳送的開(kāi)銷要小得多。因此大多數(shù) TCP/IP 實(shí)現(xiàn)都遵循圖 1-5 中上面的分界線。

1.2.4 復(fù)用和分解

   在整個(gè)層次結(jié)構(gòu)中,通信協(xié)議使用了復(fù)用和分解的技術(shù)。當(dāng)發(fā)送報(bào)文時(shí),發(fā)送方在報(bào)文中加入了報(bào)文類型、選用的協(xié)議等附加信息。所有的報(bào)文以幀的形式在網(wǎng)絡(luò)中復(fù)用傳送,形成一個(gè)分組流。在接收方收到分組時(shí),參考附加信息對(duì)接收到的分組進(jìn)行分解。圖 1-6 給出了一個(gè)分解的例子,它描述了網(wǎng)絡(luò)接口層如何根據(jù)幀的報(bào)頭中的類型字段對(duì)接收到的幀進(jìn)行分解。

圖 1-6 基于幀的報(bào)頭中的類型字段進(jìn)行幀的分解

 

   復(fù)用和分解技術(shù)幾乎出現(xiàn)在所有的協(xié)議層次之中。當(dāng)網(wǎng)絡(luò)接口層完成對(duì)幀的分解操作之后,它要把那些包含有 IP 數(shù)據(jù)報(bào)的幀送給 IP 模塊, IP 軟件模塊分析這些幀以后,參照傳輸層協(xié)議對(duì)它們進(jìn)行進(jìn)一步的分解操作。圖 1-7 描述了 IP 層的分解, IP 層的軟件模塊檢查數(shù)據(jù)報(bào)報(bào)頭,根據(jù)其中的協(xié)議類型選擇相應(yīng)的協(xié)議進(jìn)行處理。

圖 1-7 IP 層的分解

1.3 TCP/IP 常用概念

  TCP/IP 協(xié)議體系及其實(shí)現(xiàn)中有很多概念和術(shù)語(yǔ),為了方便讀者理解后面的內(nèi)容,本節(jié)集中介紹一些最常用的概念與術(shù)語(yǔ)。

1.3.1 包、網(wǎng)絡(luò)字節(jié)順序

1.

   包( packet )是網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)片段,也稱分組。在計(jì)算機(jī)網(wǎng)絡(luò)上,用戶數(shù)據(jù)要按照規(guī)定劃分為大小適中的若干組,每個(gè)組加上包頭構(gòu)成一個(gè)包,這個(gè)過(guò)程稱為封裝( encapsulation )。網(wǎng)絡(luò)上使用包為單位傳輸?shù)哪康氖菫榱烁玫貙?shí)現(xiàn)資源共享和檢錯(cuò)、糾錯(cuò)。包是一種統(tǒng)稱,在不同的協(xié)議不同的層次,包有不同的名字,如 TCP/IP 協(xié)議中,數(shù)據(jù)鏈路層的包叫幀( Frame ), IP 層的包稱為 IP 數(shù)據(jù)報(bào), TCP 層的包常稱為 TCP 報(bào)文等。應(yīng)用程序自己也可以設(shè)計(jì)自己的包類型,如在自己設(shè)計(jì)的 socket 程序中使用包。圖 1-8 是 IP 數(shù)據(jù)報(bào)格式。

 

圖 1-8 IP 數(shù)據(jù)報(bào)格式

2. 網(wǎng)絡(luò)字節(jié)順序

   由于不同體系結(jié)構(gòu)的計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的格式和順序都不一樣,要建立一個(gè)獨(dú)立于任何特定廠家的機(jī)器結(jié)構(gòu)或網(wǎng)絡(luò)硬件的互聯(lián)網(wǎng),就必須定義一個(gè)數(shù)據(jù)的表示標(biāo)準(zhǔn)。例如,將一臺(tái)計(jì)算機(jī)上的一個(gè) 32 位的二進(jìn)制整數(shù)發(fā)送到另一臺(tái)計(jì)算機(jī),由于不同的機(jī)器上存儲(chǔ)整數(shù)的字節(jié)順序可能不一樣,如 Intel 結(jié)構(gòu)的計(jì)算機(jī)存儲(chǔ)整數(shù)是低地址低字節(jié)數(shù),即最低存儲(chǔ)器地址存放整數(shù)的低位字節(jié)(叫做小端機(jī), Little Endian ),而 Sun Sparc 結(jié)構(gòu)的計(jì)算機(jī)存儲(chǔ)整數(shù)是低地址高字節(jié)數(shù),即最低存儲(chǔ)器地址存放整數(shù)的高位字節(jié)(叫做大端機(jī), Big Endian )。因此,直接把數(shù)據(jù)按照恒定的順序發(fā)送到另一臺(tái)機(jī)器上時(shí)可能會(huì)改變數(shù)字的值。

   為了解決字節(jié)順序的問(wèn)題, TCP/IP 協(xié)議定義了一種所有機(jī)器在互聯(lián)網(wǎng)分組的二進(jìn)制字段中必須使用的網(wǎng)絡(luò)標(biāo)準(zhǔn)字節(jié)順序( network standard byte order ):必須首先發(fā)送整數(shù)中最高有效字節(jié)(同大端機(jī))。因此,網(wǎng)絡(luò)應(yīng)用程序都要求遵循一個(gè)字節(jié)順序轉(zhuǎn)換規(guī)則:“主機(jī)字節(jié)順序── > 網(wǎng)絡(luò)字節(jié)順序── > 主機(jī)字節(jié)順序”,即發(fā)送方將主機(jī)字節(jié)順序的整數(shù)轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)順序然后發(fā)送出去,接收方收到數(shù)據(jù)后將網(wǎng)絡(luò)字節(jié)順序的整數(shù)轉(zhuǎn)換為自己的主機(jī)字節(jié)順序然后處理。

1.3.2 服務(wù)、接口、協(xié)議

   服務(wù)、接口、協(xié)議是 TCP / IP 體系結(jié)構(gòu)中非常重要的概念,它們貫穿了整個(gè)參考模型的始終。

   簡(jiǎn)單地講,服務(wù)是指特定一層提供的功能。例如網(wǎng)絡(luò)層提供網(wǎng)絡(luò)間尋址的功能,我們就可以說(shuō)它向它的上一層(即傳輸層)提供了網(wǎng)間尋址服務(wù);反之,也可以說(shuō)傳輸層利用了網(wǎng)絡(luò)層所提供的服務(wù)。

   接口是上下層次之間調(diào)用功能和傳輸數(shù)據(jù)的方法。它類似于程序設(shè)計(jì)中的函數(shù)調(diào)用,上層通過(guò)使用接口定義的方法來(lái)方便地使用下層提供的服務(wù)。

  協(xié)議是對(duì)等層必須共同遵循的標(biāo)準(zhǔn)。它定義包格式和它們的用途的規(guī)則集。大多數(shù)包都有包頭和信息組成:包頭常常包括諸如 源和目的地址、包的長(zhǎng)度和類型指示符等信息;信息部分可以是原始數(shù)據(jù),也可以包含另一個(gè)包。一個(gè)協(xié)議則規(guī)范了交換的包的格式、信息的正確順序以及可能需要采取的附加措施。

   網(wǎng)絡(luò)協(xié)議是使計(jì)算機(jī)能夠通信的標(biāo)準(zhǔn)。典型的協(xié)議規(guī)定網(wǎng)絡(luò)上的計(jì)算機(jī)如何彼此識(shí)別、數(shù)據(jù)在傳輸中應(yīng)采取何種格式、信息一旦到達(dá)最終目的地時(shí)應(yīng)如何處理等,協(xié)議還規(guī)定對(duì)遺失的和被破壞的傳輸或數(shù)據(jù)包的處理過(guò)程。 IPX 、 TCP/IP 、 DECnet 、 AppleTalk 都是網(wǎng)絡(luò)協(xié)議的例子。

1.3.3 尋址

   網(wǎng)絡(luò)的核心概念是“尋址”。在網(wǎng)絡(luò)中,一個(gè)設(shè)備的地址是它的唯一標(biāo)識(shí)。網(wǎng)絡(luò)地址通常是有數(shù)字組成的,具有標(biāo)準(zhǔn)的、以定義好的格式。網(wǎng)絡(luò)上的所有設(shè)備都需要給定一個(gè)遵循標(biāo)準(zhǔn)格式的唯一標(biāo)識(shí),即設(shè)備的地址。在一個(gè)有路由能力的網(wǎng)絡(luò)中,地址至少包括兩個(gè)部分:網(wǎng)絡(luò)部分(或域部分)和節(jié)點(diǎn)部分(或主機(jī)部分)。

1.3.4 路由器和終端節(jié)點(diǎn)

   路由器和終端節(jié)點(diǎn)是兩種具有路由選擇能力的設(shè)備。

   路由器是連接網(wǎng)絡(luò)的設(shè)備,它可以連接兩個(gè)或多個(gè)網(wǎng)絡(luò)。路由器具有路由選擇能力,知道怎樣將信息從網(wǎng)絡(luò)的一個(gè)部分移到另一個(gè)部分。

   終端節(jié)點(diǎn)是用戶與之交互的設(shè)備──工作站、 PC 、打印機(jī)、文件服務(wù)器等。終端節(jié)點(diǎn)能夠識(shí)別網(wǎng)絡(luò)上發(fā)送給自己的信息,也能夠?qū)⑿畔⒅苯影l(fā)送給它知道的網(wǎng)絡(luò)設(shè)備,對(duì)于不知道如何投遞的信息,終端節(jié)點(diǎn)將其發(fā)送給本地路由器;路由器負(fù)責(zé)將信息從一個(gè)網(wǎng)絡(luò)(子網(wǎng))傳送到另一個(gè)網(wǎng)絡(luò)(子網(wǎng))。

1.3.5 IP 地址、域名

   為了使連入 Internet 的眾多主機(jī)在通信時(shí)能夠相互識(shí)別, Internet 上的每一臺(tái)主機(jī)都分配有一個(gè)唯一的 32 位地址,這就是 IP 地址,也稱作網(wǎng)際地址( Internet 地址)。在 TCP/IP 協(xié)議中, IP 地址是一個(gè) 32 位的二進(jìn)制無(wú)符號(hào)數(shù),為了表示方便,國(guó)際通行一種點(diǎn)分十進(jìn)制表示法:即將 32 位地址按字節(jié)分為 4 段,高字節(jié)在前,每個(gè)字節(jié)用十進(jìn)制數(shù)表示出來(lái),并且各字節(jié)之間用點(diǎn)號(hào)“ . ”隔開(kāi)。這樣, IP 地址表示成了一個(gè)用點(diǎn)號(hào)隔開(kāi)的四組數(shù)字,每組數(shù)字的取值范圍只能是 0~255 ,如清華大學(xué)主頁(yè)服務(wù)器的 IP 地址就是“ 166.111. 4.100 ” 。

   雖然使用 IP 地址可以唯一地識(shí)別 Internet 上的一臺(tái)主機(jī),但是,對(duì)用戶來(lái)說(shuō),要記住一大堆毫無(wú)意義的 IP 地址數(shù)字實(shí)在是一件困難的事。因此,一個(gè)好的方法是給每一臺(tái)機(jī)器分配一個(gè)名字。 Internet 對(duì)于計(jì)算機(jī)的命名方案稱為域名系統(tǒng)( Domain Name System , DNS )。

   DNS 采用層次結(jié)構(gòu),入網(wǎng)的每臺(tái)主機(jī)都可以有一個(gè)類似如下面的域名:

   主機(jī)名 . 機(jī)構(gòu)名 . 網(wǎng)絡(luò)名 . 頂層域名

   域名通常由英文字符串組成,各段用點(diǎn)號(hào)分開(kāi),從左到右域的范圍變大,它擁有實(shí)際的含義,比 IP 地址好記得多。如清華大學(xué)的主頁(yè)服務(wù)器域名為:

   www.tsinghua.edu.cn

1.4 地址解析協(xié)議 ARP

   嚴(yán)格地說(shuō),地址解析協(xié)議 ARP 并不是 TCP/IP 協(xié)議體系的一部分,但是在 Internet 和以太網(wǎng)盛行的今天,作為物理地址到 IP 地址轉(zhuǎn)換的一個(gè)協(xié)議標(biāo)準(zhǔn), ARP 協(xié)議的重要性顯得特別突出。因此本節(jié)專門(mén)介紹 ARP ( Address Resolution Protocol )協(xié)議。

1.4.1 地址轉(zhuǎn)換問(wèn)題

   我們前面介紹的 TCP/IP 網(wǎng)絡(luò)使用 IP 地址進(jìn)行尋址, IP 地址是一種網(wǎng)際地址,它工作在第三層。對(duì)于所有的計(jì)算機(jī)通信,最終表現(xiàn)為某種形式的鏈路(如以太網(wǎng)、令牌環(huán)、 FDDI 和 PPP )上將數(shù)據(jù)從節(jié)點(diǎn)移動(dòng)到另一節(jié)點(diǎn)。許多鏈路能連接多個(gè)節(jié)點(diǎn),這就要求在其上發(fā)送的所有數(shù)據(jù)都應(yīng)標(biāo)明目的地址,以便正確傳遞。這些地址與 IP 地址無(wú)關(guān),它們是完全獨(dú)立的,處于 IP 地址以外,這就是設(shè)備的物理硬件地址。具體到以太網(wǎng)絡(luò),其物理硬件地址就是我們常說(shuō)的 MAC 地址。遞交一個(gè)網(wǎng)際報(bào)文分組,網(wǎng)絡(luò)軟件必須使 IP 地址最終變換成物理硬件地址,使用硬件地址來(lái)傳輸幀。

   和 IP 地址不同, MAC 地址是設(shè)備內(nèi)嵌的,它在設(shè)備出廠前就定好了。 MAC 地址是一個(gè) 6 字節(jié)的串,通常寫(xiě)成 16 進(jìn)制數(shù),以冒號(hào)分隔,如我的一臺(tái)機(jī)器的網(wǎng)卡地址就是 08:00: 5a :c7:bd:3d 。 MAC 地址由電氣和電子工程師學(xué)會(huì)( IEEE )分配,在所有以太網(wǎng)設(shè)備中是唯一的。 MAC 地址分兩部分,前三個(gè)字節(jié)是廠商代碼,后三個(gè)字節(jié)是設(shè)備編號(hào)。廠商必須確保它生產(chǎn)的以太網(wǎng)設(shè)備都具有同樣的前三個(gè)字節(jié)(廠商代碼),以及不同的后三個(gè)字節(jié)。

   TCP/IP 網(wǎng)絡(luò)使用 IP 地址尋址, IP 包在 IP 層實(shí)現(xiàn)路由選擇。但是 IP 包在數(shù)據(jù)鏈路層的傳輸卻需要知道設(shè)備的物理地址,因此需要一種 IP 地址到物理地址的轉(zhuǎn)換協(xié)議。 TCP/IP 協(xié)議棧使用一種動(dòng)態(tài)綁定技術(shù),來(lái)實(shí)現(xiàn)一種維護(hù)起來(lái)既高效又容易的機(jī)制,這就是地址解析協(xié)議 ARP 。

1.4.2 地址動(dòng)態(tài)轉(zhuǎn)換

   ARP 協(xié)議是 TCP/IP 協(xié)議的設(shè)計(jì)人員為象以太網(wǎng)這種有廣播能力的網(wǎng)絡(luò)找到的一種創(chuàng)造性地解決地址轉(zhuǎn)換問(wèn)題的方法。這種辦法允許在不重新編譯代碼、不需維護(hù)一個(gè)集中式數(shù)據(jù)庫(kù)的情況下,在網(wǎng)絡(luò)中動(dòng)態(tài)增加新機(jī)器。這種辦法就是動(dòng)態(tài)地址轉(zhuǎn)換。

   如圖 1-9 所示, ARP 動(dòng)態(tài)地址轉(zhuǎn)換的基本思想很簡(jiǎn)單:當(dāng)主機(jī) A 想轉(zhuǎn)換 IP 地址 I B 時(shí),它就廣播一個(gè)專門(mén)的報(bào)文分組,要求具有 IP 地址 I B 的主機(jī)以其物理地址 P B 做出應(yīng)答。包括 B 在內(nèi)的所有主機(jī)都收到這個(gè)請(qǐng)求,但是只有主機(jī) B 才辨認(rèn)其 IP 地址,發(fā)回一個(gè)回答,回答中包含其物理地址。當(dāng) A 收到回答時(shí),它便知道 B 的物理硬件地址,并使用這個(gè)地址直接把網(wǎng)際報(bào)文分組發(fā)送給 B 。

 

圖 1-9 ARP 地址解析示意圖

1.4.3 A RP 的實(shí)現(xiàn)

   ARP 協(xié)議是由 David C. Plummer [ RFC 826 ]中提出,并已成為一個(gè) TCP / IP 互聯(lián)網(wǎng)協(xié)議標(biāo)準(zhǔn)。它在實(shí)現(xiàn)時(shí),在應(yīng)用上面提到的動(dòng)態(tài)地址轉(zhuǎn)換思想的基礎(chǔ)上,做了一些優(yōu)化和改進(jìn),成為了一個(gè)廣泛使用的協(xié)議。

   第一個(gè)改進(jìn)是采用地址轉(zhuǎn)換的高速緩存。為了減少通信成本,使用 ARP 的主機(jī)維持一個(gè)快速暫存器,其中存放這最新得到的 IP 地址到物理地址的綁定,這樣在連續(xù)發(fā)送數(shù)據(jù)時(shí)就不必反復(fù)使用 ARP 了。當(dāng)一臺(tái)計(jì)算機(jī)接收到一個(gè) ARP 回答時(shí),就在它的高速緩存中保存發(fā)送方的 IP 地址及對(duì)應(yīng)的物理地址,便于以后查詢。在發(fā)送分組時(shí),計(jì)算機(jī)在發(fā)出一個(gè) ARP 請(qǐng)求之前總是先到緩存中尋找所需的綁定。如果計(jì)算機(jī)在它的 ARP 緩存中找到了所要的綁定,就不需要在網(wǎng)上廣播。經(jīng)驗(yàn)表明,由于大多數(shù)網(wǎng)絡(luò)通信發(fā)送的分組不止一個(gè),所以即使是一個(gè)小的緩存也是值得的。

   另一個(gè)改進(jìn)是,發(fā)送者在每次 ARP 廣播中都包括 IP 地址到物理地址的綁定,接收者先在它們的快速暫存器中更新 IP 地址到物理地址綁定,然后再處理 ARP 報(bào)文分組。這是因?yàn)樵谕ǔG闆r下通信是雙向的,如果主機(jī) A 因?yàn)橐蛑鳈C(jī) B 發(fā)送而正要使用 ARP ,那么主機(jī) B 很可能即將向主機(jī) A 發(fā)送。這種實(shí)現(xiàn)方式能夠使 ARP 的效率大為提高。

   另外,為了使 IP 地址到物理地址的一致性(比如說(shuō)使用動(dòng)態(tài)地址分配 DHCP 的主機(jī)停機(jī)一段時(shí)間后重新啟動(dòng)獲取了另外一個(gè) IP 地址),暫存器中的 IP 地址到物理地址綁定在一定的時(shí)間后就被清除。

ARP 協(xié)議定義了 ARP 報(bào)文的格式,按通常的每行 4 個(gè)字節(jié)(八位組)的標(biāo)準(zhǔn)表示方法描述如圖 1-10 所示。

 

圖 1-10 ARP 包格式

   “硬件類型”( HARDWARE TYPE )字段表示發(fā)送方硬件地址的類型。它的值為 1 即表示以太網(wǎng)地址。“協(xié)議類型”( PROTOCOL TYPE )字段表示要映射的協(xié)議地址類型。它的值為 0x0800 即表示 I P 地址。接下來(lái)的兩個(gè) 1 字節(jié)的字段,“硬件地址長(zhǎng)度”( HLEN )和“協(xié)議地址長(zhǎng)度”( PLEN )分別指出硬件地址和協(xié)議地址的長(zhǎng)度,以字節(jié)為單位。對(duì)于以太網(wǎng)上 IP 地址的 ARP 請(qǐng)求或應(yīng)答來(lái)說(shuō),它們的值分別為 6 和 4 。“操作”( OPERATION )字段指出四種操作類型,它們是 ARP 請(qǐng)求(值為 1 )、 ARP 應(yīng)答(值為 2 )、 RARP 請(qǐng)求(值為 3 )和 RARP 應(yīng)答(值為 4 )( RARP 是逆向地址解析協(xié)議)。這個(gè)字段必需的,因?yàn)?ARP 請(qǐng)求和 ARP 應(yīng)答的幀類型字段值是相同的。接下來(lái)的四個(gè)字段分別是發(fā)送端的硬件地址( HA ,在本例中是以太網(wǎng)地址)、發(fā)送端的協(xié)議地址( IA , IP 地址)、目的端的硬件地址和目的端的協(xié)議地址。

   對(duì)于 ARP 請(qǐng)求來(lái)說(shuō),除目的端硬件地址外的所有其他的字段都有填充值。當(dāng)系統(tǒng)收到一份目的端 IP 地址為本機(jī) IP 地址的 ARP 請(qǐng)求報(bào)文后,它就把硬件地址填進(jìn)去,然后用兩個(gè)目的端地址分別替換兩個(gè)發(fā)送端地址,并把操作字段置為 2 ,最后把它發(fā)送回去。

1.5 小結(jié)

   計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展過(guò)程實(shí)際上是 TCP/IP 網(wǎng)絡(luò)協(xié)議體系不斷戰(zhàn)勝其他網(wǎng)絡(luò)協(xié)議體系的過(guò)程。當(dāng)年 ISO 力推的 OSI 七層開(kāi)放模型雖然在實(shí)際競(jìng)爭(zhēng)中輸給了 TCP/IP ,但是,其清晰的網(wǎng)絡(luò)層次結(jié)構(gòu)對(duì)于初學(xué)者理解網(wǎng)絡(luò)層次結(jié)構(gòu)卻大有裨益,并且隨著網(wǎng)絡(luò)應(yīng)用的快速發(fā)展和 TCP/IP 協(xié)議簇的日益龐大, ISO/OSI 七層開(kāi)放模型仍能給我們很多啟示。

   本章是后面各章的基礎(chǔ),對(duì)于沒(méi)有專門(mén)修過(guò)計(jì)算機(jī)網(wǎng)絡(luò)課程的讀者來(lái)說(shuō),認(rèn)真閱讀本章,搞清楚 TCP/IP 協(xié)議的體系結(jié)構(gòu)和相應(yīng)的基本概念,對(duì)于學(xué)好后續(xù)章節(jié)很有幫助。另外, 1.4 節(jié)介紹的 ARP 協(xié)議雖然不是 TCP/IP 的組成部分,但 ARP 對(duì)于將 TCP/IP 協(xié)議和我們最常使用的以太網(wǎng)絡(luò)( Ethernet )聯(lián)系起來(lái)卻是必不可少的知識(shí)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
計(jì)算機(jī)網(wǎng)絡(luò)試題庫(kù)含答案(個(gè)人整理打印版)
TCP與IP
TCP/IP協(xié)議概述
網(wǎng)絡(luò)基礎(chǔ)-OSI參考模型和TCP/IP協(xié)議
 OSI七層協(xié)議大白話解讀
計(jì)算機(jī)網(wǎng)絡(luò)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服