計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)與參考模型

計(jì)算機(jī)網(wǎng)絡(luò)分層結(jié)構(gòu)

兩個(gè)系統(tǒng)中實(shí)體間的通信是一個(gè)很復(fù)雜的過程 ,為了降低協(xié)議設(shè)計(jì)和調(diào)試過程的復(fù)雜性,也為了便于對網(wǎng)絡(luò)進(jìn)行研究 、實(shí)現(xiàn)和維護(hù),促進(jìn)標(biāo)準(zhǔn)化工作,通常對計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)以分層的方式進(jìn)行建模。

我們把計(jì)算機(jī)網(wǎng)絡(luò)的各層及其協(xié)議的集合稱為網(wǎng)絡(luò)的體系結(jié)構(gòu) (Architecture ) 。換言之,計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)就是這個(gè)計(jì)算機(jī)網(wǎng)絡(luò)及其所應(yīng)完成的功能的精確定義,它是計(jì)算機(jī)網(wǎng)絡(luò)中的層次、各層的協(xié)議以及層間接口的集合。需要強(qiáng)調(diào)的是,這些功能究竟是用何種硬件或軟件完成的,則是一個(gè)遵循這種體系結(jié)構(gòu)的實(shí)現(xiàn)( Implementation)問題。體系結(jié)構(gòu)是抽象的 ,而實(shí)現(xiàn)是具體的,是真正在運(yùn)行的計(jì)算機(jī)硬件和軟件。

計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)通常都具有可分層的特性 ,將復(fù)雜的大系統(tǒng)分成若干較容易實(shí)現(xiàn)的層次 。分層的基本原則是:

1)? 每一居都實(shí)現(xiàn)一種相對獨(dú)立的功能 ,降低大系統(tǒng)的復(fù)雜度 。

2)各層之間界面自然清晰 ,易于理解,相互交流盡可能少 。

3)各層功能的精確定義獨(dú)立于具體的實(shí)現(xiàn)方法 ,可以采用最合適的技術(shù)來實(shí)現(xiàn) 。

4)保持下層對上層的獨(dú)立性 ,上層單向使用下層提供的服務(wù) 。

5) 整個(gè)分層結(jié)構(gòu)應(yīng)能促進(jìn)標(biāo)準(zhǔn)化工作 。

由于分層后各層之間相對獨(dú)立 ,靈活性好,因而分層的體系結(jié)構(gòu)易于更新( 替換單個(gè)模塊), 易于調(diào)試,易于交流,易于抽象,易于標(biāo)準(zhǔn)化。但層次越多 ,有些功能在不同層中難免重復(fù)出現(xiàn), 產(chǎn)生了額外的開銷 ,整體運(yùn)行效率就越低 。而層次越少 ,就會使每一層的協(xié)議太復(fù)雜 。因此,在分層時(shí)應(yīng)考慮層次的清晰程度與運(yùn)行效率間的折中 、層次數(shù)量的折中 。

依據(jù)一定的規(guī)則 ,將分層后的網(wǎng)絡(luò)從低層到高層依次稱為第 1 層、第 2 層...... 第 n 層,通常還為每一層取一個(gè)特定的名稱 ,如第1層的名稱為物理層 。

在計(jì)算機(jī)網(wǎng)絡(luò)的分層結(jié)構(gòu)中 ,第 n 層中的活動(dòng)元素通常稱為 n 層實(shí)體。具體地,實(shí)體指任何可發(fā)送或接收信息的硬件或軟件進(jìn)程 ,通常是一個(gè)特定的軟件模塊。不同機(jī)器上同一層稱為對等層,同一層的實(shí)體叫做對等實(shí)體 。n 層實(shí)體實(shí)現(xiàn)的服務(wù)為 n+1 層所利用。在這種情況下,n 層被稱為服務(wù)提供者 ,n+1 層是服務(wù)用戶 。

每一層還有自己傳送的數(shù)據(jù)單位 ,其名稱、大小、含義也各有不同 。 在計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)的各個(gè)層次中? ,每一個(gè)報(bào)文都分為兩個(gè)部分,一個(gè)是數(shù)據(jù)部分,也就是 SDU,另外一部分是控制信息部分 ,也就是 PCI ,它們共同組成 PDU 。

服務(wù)數(shù)據(jù)單元 (SDU) :為完成用戶所要求的功能而應(yīng)傳送的數(shù)據(jù) 。第 n 層的服務(wù)數(shù)據(jù)單元記為 n-SDU。

協(xié)議控制信息 (PCI):控制協(xié)議操作的信息。第 n 層的協(xié)議控制信息記為 n-PCI。?

協(xié)議數(shù)據(jù)單元 (PDU):對等層次之間傳送的數(shù)據(jù)單位稱為該層的 PDU 。第 n 層的協(xié)議數(shù)據(jù)單元記為 n-PDU 。

在實(shí)際的網(wǎng)絡(luò)中 ,每層的協(xié)議數(shù)據(jù)單元都有一個(gè)通俗的名稱,如物理層的 PDU叫比特,鏈路層的 PDU 叫幀,網(wǎng)絡(luò)層的 PDU 叫分組,傳輸層的PDU 叫報(bào)文。 在各層間傳輸數(shù)據(jù)時(shí) ,把從第 n+1 層收到的 PDU 作為第 n 層的 SDU,加上第 n 層的 PCI,就變成了第 n 層的 PDU ,交給第 n-1 層后作為 SDU 發(fā)送,接收方接收時(shí)做相反的處理 ,故可知三者的關(guān)系為 :n-SDU+n-PCI=n-PDU=(n - 1)-SDU。其變換過程如圖所示。

具體地 ,層次結(jié)構(gòu)的含義包括以下幾個(gè)方面 :

1)? 第 n 層的實(shí)體不僅要使用第 n -1 層的服務(wù) ,實(shí)現(xiàn)自身定義的功能 ,還要向第 n+1 層提供本層的服務(wù) ,該服務(wù)是第 n 層及其下面各層提供的服務(wù)總和 。

2)最低層只提供服務(wù),是整個(gè)層次結(jié)構(gòu)的基礎(chǔ);中間各層既是下一層的服務(wù)使用者,又是上一層的服務(wù)提供者;最高層面向用戶提供服務(wù) 。

3)上一層只能通過相鄰層間的接口使用下一層的服務(wù) ,而不能調(diào)用其他層的服務(wù);下一層所提供服務(wù)的實(shí)現(xiàn)細(xì)節(jié)對上一層透明 。

4)兩個(gè)主機(jī)通信時(shí) ,對等層在邏輯上有一條直接信道 ,表現(xiàn)為不經(jīng)過下層就把信息傳送到對方。

計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議 、接口、服務(wù)的概念

????協(xié)議

協(xié)議 ,就是規(guī)則的集合? 。在網(wǎng)絡(luò)中要做到有條不紊地交換數(shù)據(jù),就必須遵循一些事先約定好的規(guī)則。這些規(guī)則明確規(guī)定了所交換的數(shù)據(jù)的格式以及有關(guān)的同步問題。這些為進(jìn)行網(wǎng)絡(luò)中的數(shù)據(jù)交換而建立的規(guī)則 、標(biāo)準(zhǔn)或約定稱為網(wǎng)絡(luò)協(xié)議 (Network Protocol) ,它是控制兩個(gè) (或多個(gè)) 對等實(shí)體進(jìn)行通信的規(guī)則的集合 ,也就是水平的。不對等實(shí)體之間是沒有協(xié)議的,比如用TCP/IP 協(xié)議棧通信的兩個(gè)結(jié)點(diǎn) ,結(jié)點(diǎn) A 的傳輸層和結(jié)點(diǎn) B 的傳輸層之間存在協(xié)議 ,但結(jié)點(diǎn) A 的傳輸層和結(jié)點(diǎn) B 的網(wǎng)絡(luò)層之間不存在協(xié)議 。網(wǎng)絡(luò)協(xié)議也簡稱為協(xié)議 。

協(xié)議由語法、語義和同步三部分組成。語法規(guī)定了傳輸數(shù)據(jù)的格式;語義規(guī)定了所要完成的功能,即需要發(fā)出何種控制信息 、完成何種動(dòng)作以及做出何種應(yīng)答;同步規(guī)定了執(zhí)行各種操作的條件、時(shí)序關(guān)系等 ,即事件實(shí)現(xiàn)順序的詳細(xì)說明 。一個(gè)完整的協(xié)議通常應(yīng)具有線路管理(建立、 釋放連接)、差錯(cuò)控制 、數(shù)據(jù)轉(zhuǎn)換等功能 。

????接口

接口是同一結(jié)點(diǎn)內(nèi)相鄰兩層間交換信息的連接點(diǎn)? ,是一個(gè)系統(tǒng)內(nèi)部的規(guī)定 。每一層只能為緊鄰的層次之間定義接口 ,不能跨層定義接口。在典型的接口上 ,同一結(jié)點(diǎn)相鄰兩層的實(shí)體通過服務(wù)訪問點(diǎn) ( Service Access Point,? SAP) 進(jìn)行交互 。服務(wù)是通過服務(wù)訪問點(diǎn) SAP 提供給上層使用的,第 n 層的 SAP 就是第 n+1? 層可以訪問第 n 層服務(wù)的地方。每個(gè) SAP 都有一個(gè)能夠標(biāo)識它的地址。服務(wù)訪問點(diǎn)SAP是一個(gè)抽象的概念 ,它實(shí)際上就是一個(gè)邏輯接口(類似于郵政信箱),但和通常所說的兩個(gè)設(shè)備之間的硬件接口是很不一樣的。

????服務(wù)

服務(wù)是指下層為緊相鄰的上層提供的功能調(diào)用 ,也就是垂直的。對等實(shí)體在協(xié)議的控制下 , 使得本層能為上一層提供服務(wù) ,但要實(shí)現(xiàn)本層協(xié)議還需要使用下一層所提供的服務(wù) 。

上層使用下層所提供的服務(wù)必須通過與下層交換一些命令 ,這些命令在 OSI 中稱為服務(wù)原語 。OSI 將原語劃分為四類 :

1)? 請求 ( Request ) :由服務(wù)用戶發(fā)往服務(wù)提供者 ,請求完成某項(xiàng)工作 。

2)指示 ( Indication ):由服務(wù)提供者發(fā)往服務(wù)用戶 ,指示用戶做某件事 。

3)響應(yīng) ( Response ):由服務(wù)用戶發(fā)往服務(wù)提供者,作為對指示的響應(yīng) 。

4)證實(shí) ( Conformation ):由服務(wù)提供者發(fā)往服務(wù)用戶,作為對請求的證實(shí) 。 這四類原語用于不同的功能? ,如建立連接、傳輸數(shù)據(jù)和斷開連接等 。有應(yīng)答服務(wù)包括全部四類原語,而無應(yīng)答服務(wù)則只有請求和指示兩個(gè)原語。

四類原語的關(guān)系如圖所示。

一定要注意 ,協(xié)議和服務(wù)在概念上是不一樣的。首先,本層協(xié)議的實(shí)現(xiàn)才能保證向上一層提供服務(wù)。本層的服務(wù)用戶只能看見服務(wù)而無法看見下面的協(xié)議,即下面的協(xié)議對上層的服務(wù)用戶是透明的 。其次,協(xié)議是“水平的”,即協(xié)議是控制對等實(shí)體之間通信的規(guī)則 。但服務(wù)是 “垂直的”,即服務(wù)是由下層通過層問接口向上層提供的 。另外,并非在一個(gè)層內(nèi)完成的全部功能都稱為服務(wù),只有那些能夠被高一層實(shí)體“看得見” 的功能才稱為服務(wù) 。

協(xié)議、接口、服務(wù)三者之間的關(guān)系如圖所示。

計(jì)算機(jī)網(wǎng)絡(luò)提供的服務(wù)可按以下三種方式分類 :

1) 面向連接服務(wù)與無連接服務(wù)

在面向連接服務(wù)中 ,通信前雙方必須先建立連接 ,分配相應(yīng)的資源 (如緩沖區(qū)),以保證通信能正常進(jìn)行 ,傳輸結(jié)束后釋放連接和所占用的資源 。因此這種服務(wù)可以分為連接建立、數(shù)據(jù)傳輸和連接釋放這三個(gè)階段 。例如 TCP 就是一種面向連接服務(wù)的協(xié)議 。

在無連接服務(wù)中 ,通信前雙方不需要先建立連接? ,需要發(fā)送數(shù)據(jù)時(shí)就直接發(fā)送,把每個(gè)帶有目的地址的包(報(bào)文分組)傳送到線路上 ,由系統(tǒng)選定路線進(jìn)行傳輸 ,是一種不可靠的服務(wù) 。這種服務(wù)常被描述為 “盡最大努力交付” (Best-Bffort- Delivery),并不保證通信的可靠性 。例如 IP、 UDP 就是一種無連接服務(wù)的協(xié)議 。

2) 可靠服務(wù)和不可靠服務(wù)

可靠服務(wù)是指網(wǎng)絡(luò)具有糾錯(cuò) 、檢錯(cuò)、應(yīng)答機(jī)制,能保證數(shù)據(jù)正確、可靠地傳送到目的地。 不可靠服務(wù)是指網(wǎng)絡(luò)只是盡量正確 、可靠地傳送 ,但不能保證數(shù)據(jù)正確、可靠地傳送到目的地,是一種盡力而為的服務(wù) 。

對于提供不可靠服務(wù)的網(wǎng)絡(luò) ,其網(wǎng)絡(luò)的正確性、可靠性就要由應(yīng)用或用戶來保障 。例如,用戶收到信息后要判斷信息的正確性? ,如果不正確,用戶把出錯(cuò)信息報(bào)告給信息的發(fā)送者,以便發(fā)送者采取糾正措施 。通過用戶的這些措施 ,可以把不可靠的服務(wù)變成可靠的服務(wù) 。

注意:并非在一個(gè)層內(nèi)完成的全部功能都稱之為服務(wù),只有那些能夠被高一層實(shí)體 “看得見” 的功能才能稱為服務(wù)。

3) 有應(yīng)答服務(wù)和無應(yīng)答服務(wù)

有應(yīng)答服務(wù)是指接收方在收到數(shù)據(jù)后向發(fā)送方給出相應(yīng)的應(yīng)答? ,該應(yīng)答由傳輸系統(tǒng)內(nèi)部自動(dòng)實(shí)現(xiàn),而不是由用戶實(shí)現(xiàn)。所發(fā)送的應(yīng)答可以是肯定應(yīng)答,也可以是否定應(yīng)答 ,通常在接收到的數(shù)據(jù)有錯(cuò)誤時(shí)發(fā)送否定應(yīng)答 。例如,文件傳輸服務(wù)就是一種有應(yīng)答服務(wù) 。

無應(yīng)答服務(wù)是指接收方收到數(shù)據(jù)后不自動(dòng)給出應(yīng)答 。若需要應(yīng)答,則由高層實(shí)現(xiàn) 。例如WWW服務(wù),客戶端收到服務(wù)器發(fā)送的頁面文件后不給出應(yīng)答 。

ISO/OSI 參考模型和 TCP/IP 模型

????OSI 參考模型

國際標(biāo)準(zhǔn)化組織 (ISO)提出的網(wǎng)絡(luò)體系結(jié)構(gòu)模型 ,稱為開放系統(tǒng)互聯(lián)參考模型 ( OSI/ RM ), 通常簡稱為 OSI? 參考模型。OSI? 有七層,自下而上依次為物理層 、數(shù)據(jù)鏈路層 、網(wǎng)絡(luò)層、運(yùn)輸層 、會話層 、表示層 、應(yīng)用層 。低三層統(tǒng)稱為通信子網(wǎng) ,它是為了聯(lián)網(wǎng)而附加上去的通信設(shè)備,完成數(shù)據(jù)的傳輸功能;高三層統(tǒng)稱為資源子網(wǎng),它相當(dāng)于計(jì)算機(jī)系統(tǒng),完成數(shù)據(jù)的處理等功能。運(yùn)輸 層承上啟下 。OSI? 層次結(jié)構(gòu)如圖所示。

下面詳述 OSI 參考模型各層的功能 :

( 1 ) 物理層 ( Physical Layer )

物理層的傳輸單位是比特 ,任務(wù)是透明的傳輸比特流,功能是在物理媒體上為數(shù)據(jù)端設(shè)備透明的傳輸原始比特流。

物理層主要定義數(shù)據(jù)終端設(shè)備 (DTE ) 和數(shù)據(jù)通信設(shè)備(DCE) 的物理和邏輯連接方法 ,所以物理層協(xié)議也稱為物理層接口標(biāo)準(zhǔn) 。由于在通信技術(shù)的早期階段 ,通信規(guī)則稱為規(guī)程 (Procedure)時(shí),故物理層協(xié)議也稱為物理層規(guī)程。

物理層接口標(biāo)準(zhǔn)有很多,如EIA-232C 、EWTIA RS-449 、CCITT 的X.21 等。

上圖表示的是兩個(gè)通信結(jié)點(diǎn)及它們之間的一段通信鏈路 ,物理層主要研究以下內(nèi)容 :

①通信鏈路與通信結(jié)點(diǎn)的連接需要一些電路接口,物理層規(guī)定了這些接口的一些參數(shù) ,如機(jī)械形狀和尺寸 、交換電路的數(shù)量和排列等 ,例如我們筆記本電腦上的兩線接口 ,就是物理層規(guī)定的內(nèi)容之一。

②物理層也規(guī)定了通信鏈路上傳輸?shù)男盘柕囊饬x和電氣特征 。例如物理層規(guī)定了信號 A 代表數(shù)字 0,那么當(dāng)結(jié)點(diǎn)要傳輸數(shù)字0的時(shí)候,就會發(fā)出信號 A ,當(dāng)結(jié)點(diǎn)接收到信號A的時(shí)候,就知道自己接收到的實(shí)際上是數(shù)字 0 。

請注意 ,傳輸信息所利用的一些物理媒體 ,如雙絞線 、光纜、無線信道等 ,并不在物理層協(xié)議之內(nèi)而在物理層協(xié)議下面 。因此,有人把物理媒體當(dāng)做第 0 層。

( 2 ) 數(shù)據(jù)鏈路層 ( Data Link Layer )

數(shù)據(jù)鏈路層的傳輸單位是幀 ,任務(wù)是將網(wǎng)絡(luò)層傳下來的 IP? 數(shù)據(jù)報(bào)組裝成幀 。數(shù)據(jù)鏈路層的功能可以概括為 :成幀、差錯(cuò)控制 、流量控制和傳輸管理等 。

由于外界噪聲的干擾,原始的物理連接在傳輸比特流時(shí)可能發(fā)生錯(cuò)誤。如上圖所示,左邊結(jié)點(diǎn)想向右邊結(jié)點(diǎn)傳輸數(shù)字 0,于是發(fā)出了信號A,但傳輸過程中受到干擾 ,信號 A 變成了信號 B,而信號 B 又剛好代表 1,右邊結(jié)點(diǎn)接收到信號 B,就誤以為左邊結(jié)點(diǎn)傳送了數(shù)字 1,這樣就發(fā)生了差錯(cuò) 。兩個(gè)結(jié)點(diǎn)之間如果規(guī)定了數(shù)據(jù)鏈路層協(xié)議 ,就可以檢測出這些差錯(cuò) ,然后把收到的錯(cuò)誤信息丟棄 ,這就是差錯(cuò)控制功能 。

如上圖所示,在兩個(gè)相鄰結(jié)點(diǎn)之間傳送數(shù)據(jù)時(shí) ,由于兩個(gè)結(jié)點(diǎn)性能的不同 ,可能結(jié)點(diǎn) A 發(fā)送數(shù)據(jù)的速度會比結(jié)點(diǎn) B 接收數(shù)據(jù)的速度快 ,如果不加控制 ,那么結(jié)點(diǎn) B 就會丟棄很多來不及接收的正確數(shù)據(jù) ,造成傳輸線路效率的下降 。流量控制可以協(xié)調(diào)兩個(gè)結(jié)點(diǎn)的速度 ,使結(jié)點(diǎn) A 發(fā)送數(shù)據(jù)的速度 ,剛好是結(jié)點(diǎn) B 可以接收的速度 。

廣播式網(wǎng)絡(luò)在數(shù)據(jù)鏈路層還要處理新的問題 ,即如何控制對共享信道的訪問 。數(shù)據(jù)鏈路層的一個(gè)特殊的子層——介質(zhì)訪問子層 ,就是專門處理這個(gè)問題的 。

典型的數(shù)據(jù)鏈路層協(xié)議有 SDLC、HDLC 、PPP,? STP 和幀中繼等 。

( 3 ) 網(wǎng)絡(luò)層 (Network Layer )

網(wǎng)絡(luò)層的傳輸單位是數(shù)據(jù)報(bào) ,它關(guān)心的是通信子網(wǎng)的運(yùn)行控制,主要任務(wù)是把網(wǎng)絡(luò)層的協(xié)議數(shù)據(jù)單元(分組) 從源端傳到目的端,為分組交換網(wǎng)上的不同主機(jī)提供通信服務(wù) 。關(guān)鍵問題是對分組進(jìn)行路由選擇 ,并實(shí)現(xiàn)流量控制 、擁塞控制 、差錯(cuò)控制和網(wǎng)際互聯(lián)等功能 。

如圖所示,若結(jié)點(diǎn) A 要向結(jié)點(diǎn) B 傳輸一個(gè)分組 ,可以經(jīng)過邊 a、c、g;也可以經(jīng)過邊b、 h。有很多條可以選擇的路由,而網(wǎng)絡(luò)層的作用就是根據(jù)網(wǎng)絡(luò)的情況,利用相應(yīng)的路由算法計(jì)算出一條合適的路徑 ,使這個(gè)分組可以順利到達(dá) B。

流量控制與數(shù)據(jù)鏈路層的流量控制含義一樣 ,都是協(xié)調(diào) A 的發(fā)送速度和 B 的接收速度。 差錯(cuò)控制是通信兩結(jié)點(diǎn)之間約定特定的檢錯(cuò)規(guī)則 ,如奇偶校驗(yàn)間,接收方根據(jù)這個(gè)規(guī)則檢查接收到的分組是否出現(xiàn)了差錯(cuò) ,如果出現(xiàn)了差錯(cuò) ,能糾錯(cuò)就糾錯(cuò),不能糾錯(cuò)就丟棄 ,確保向上層提交的數(shù)據(jù)都是無誤的 。

如果如圖所示的結(jié)點(diǎn)都處于來不及接收分組 ,而要去棄大量分組的情況的話 ,網(wǎng)絡(luò)就處于擁塞狀態(tài) ,擁塞狀態(tài)使得網(wǎng)絡(luò)中兩個(gè)結(jié)點(diǎn)無法正常通信 。網(wǎng)絡(luò)層要采取一定的措施,緩解這種擁塞,這就是擁塞控制 。

因特網(wǎng)是一個(gè)很大的互聯(lián)網(wǎng) ,它由大量的異構(gòu)網(wǎng)絡(luò)通過路由器 ( Router ) 相互連接起來 。因特網(wǎng)主要的網(wǎng)絡(luò)層協(xié)議是無連接的網(wǎng)際協(xié)議? (Internet Protocol,? IP ) 和許多路由選擇協(xié)議 ,因此因特網(wǎng)的網(wǎng)絡(luò)層也叫做網(wǎng)際層或 IP 層。

請注意 ,網(wǎng)絡(luò)層中的 “網(wǎng)絡(luò)” 二字,不是我們通常談到的具體網(wǎng)絡(luò) ,而是在計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)中的專用名詞 。

網(wǎng)絡(luò)層的協(xié)議有 :IP、IPX、ICMP 、IGMP 、ARP 、RARP 和 OSPF 等。

( 4 ) 傳輸層 ( Transport Layer )

傳輸層也叫運(yùn)輸層 ,傳輸單位是報(bào)文段( TCP ) 或用戶數(shù)據(jù)報(bào) ( UDP ) ,傳輸層的任務(wù)是負(fù)責(zé)主機(jī)中兩個(gè)進(jìn)程之間的通信 。功能是為端到端連接提供可靠的傳輸服務(wù);為端到端連接提供流量控制 、差錯(cuò)控制 、服務(wù)質(zhì)量 、數(shù)據(jù)傳輸管理等服務(wù) 。

數(shù)據(jù)鏈路層提供的是點(diǎn)到點(diǎn)的通信 ,傳輸層提供端到端的通信 ,兩者不同 。通俗來講 ,點(diǎn)到點(diǎn)可以理解為主機(jī)到主機(jī)之間的通信 ,一個(gè)點(diǎn)是指一個(gè)硬件地址或者 IP 地址,網(wǎng)絡(luò)中參與通信的主機(jī)是通過硬件地址或者? IP? 地址標(biāo)識的;端到端的通信是指運(yùn)行在不同主機(jī)內(nèi)兩個(gè)進(jìn)程之間通信,一個(gè)進(jìn)程由一個(gè)端口來標(biāo)識 ,所以叫端到端通信 。

使用傳輸層的服務(wù),高層用戶就可以直接進(jìn)行端到端的數(shù)據(jù)傳輸 ,從而忽略通信子網(wǎng)的存在 。 通過傳輸層的屏蔽 ,高層用戶看不到子網(wǎng)的交替和變化。由于一個(gè)主機(jī)可同時(shí)運(yùn)行多個(gè)進(jìn)程,因此傳輸層具有復(fù)用和分用的功能 。復(fù)用就是多個(gè)應(yīng)用層進(jìn)程可同時(shí)使用下面運(yùn)輸層的服務(wù) ,分用則是運(yùn)輸層把收到的信息分別交付給上面應(yīng)用層中相應(yīng)的進(jìn)程。

傳輸層的協(xié)議有 :TCP 、UDP 。

( 5 ) 會話層 ( Session Layer )

會話層允許不同主機(jī)上各進(jìn)程之間的會話 。會話層利用傳輸層提供的端到端的服務(wù),向表示層提供它的增值服務(wù) 。這種服務(wù)主要是向表示層實(shí)體或用戶進(jìn)程提供建立連接并在連接上有序地傳輸數(shù)據(jù) ,這就是會話 ,也稱為建立同步( SYN)。

會話層負(fù)責(zé)管理主機(jī)間的會話進(jìn)程? ,包括建立、管理以及終止進(jìn)程間的會話。會話層使用校驗(yàn)點(diǎn)可使通信會話在通信失效時(shí)從校驗(yàn)點(diǎn)繼續(xù)恢復(fù)通信 ,實(shí)現(xiàn)數(shù)據(jù)同步 。

( 6 ) 表示層 (Presentation Layer )

表示層主要用于處理在兩個(gè)通信系統(tǒng)中交換信息的表示方式 。不同機(jī)器采用的編碼和表示方法不同,使用的數(shù)據(jù)結(jié)構(gòu)也不同 。為了使不同表示方法的數(shù)據(jù)和信息之間能互相交換 ,表示層采用抽象的標(biāo)準(zhǔn)方法定義數(shù)據(jù)結(jié)構(gòu)? ,并采用標(biāo)準(zhǔn)的編碼形式 。數(shù)據(jù)壓縮、加密和解密也是表示層可提供的數(shù)據(jù)表示變換功能 。

( 7 ) 應(yīng)用層 ( Application Layer )

應(yīng)用層是 OSI 模型的最高層,是用戶與網(wǎng)絡(luò)的界面。應(yīng)用層為特定類型的網(wǎng)絡(luò)應(yīng)用提供訪問 OSI? 環(huán)境的手段 。因?yàn)橛脩舻膶?shí)際應(yīng)用多種多樣,這就要求應(yīng)用層采用不同的應(yīng)用協(xié)議來解決不同類型的應(yīng)用要求 ,因此應(yīng)用層是最復(fù)雜的一層 ,使用的協(xié)議也最多 。典型的有文件傳送的 FTP、電子郵件的 SMTP、萬維網(wǎng)應(yīng)用的 HTTP 等。

TCP/IP 模型

ARPA 在研究 ARPAnet 時(shí)提出了 TCP/IP 模型,從低到高依次為:網(wǎng)絡(luò)接口層 (對應(yīng) OSI 參考模型中的物理層和數(shù)據(jù)鏈路層) 、網(wǎng)際層、傳輸層和應(yīng)用層 (對應(yīng) OSI 參考模型中的會話層 、 表示層和應(yīng)用層) 。TCP/IP 由于得到廣泛應(yīng)用而成為事實(shí)上的國際標(biāo)準(zhǔn) 。TCP/IP 的層次結(jié)構(gòu)及各層的主要協(xié)議如圖所示。

網(wǎng)絡(luò)接口層的功能類似于 OSI 的物理層和數(shù)據(jù)鏈路層 。它表示與物理網(wǎng)絡(luò)的接口 ,但實(shí)際上 TCP/IP 本身并沒有真正描述這一部分 ,只是指出主機(jī)必須使用某種協(xié)議與網(wǎng)絡(luò)連接 ,以便能在其上傳遞 IP 分組。具體的物理網(wǎng)絡(luò)可以是各種類型的局域網(wǎng) ,如以太網(wǎng)、令牌環(huán)網(wǎng) 、令牌總線網(wǎng)等,也可以是諸如電話網(wǎng) 、SDH、X.25? 、幀中繼和 ATM? 等公共數(shù)據(jù)網(wǎng)絡(luò) 。網(wǎng)絡(luò)接口層的責(zé)任是從主機(jī)或結(jié)點(diǎn)接收 IP 分組,并把它們發(fā)送到指定的物理網(wǎng)絡(luò)上 。

網(wǎng)際層 ( 主機(jī)-主機(jī)) 是 TCP/IP 體系結(jié)構(gòu)的關(guān)鍵部分。它和 OSI 網(wǎng)絡(luò)層在功能上非常相似。 網(wǎng)際層將分組發(fā)往任何網(wǎng)絡(luò) ,并為之獨(dú)立地選擇合適的路由 ,但它不保證各個(gè)分組有序的到達(dá) , 各個(gè)分組的有序交付由高層負(fù)責(zé) 。網(wǎng)際層定義了標(biāo)準(zhǔn)的分組格式和協(xié)議 ,即IP協(xié)議。當(dāng)前采用的 IP 協(xié)議是第 4 版,即 IPv4 ,它的下一個(gè)版本是 IPv6。

傳輸層 ( 應(yīng)用-應(yīng)用,或進(jìn)程-進(jìn)程) 的功能同樣和 OSI 中的傳輸層類似,是使發(fā)送端和目的端主機(jī)上的對等實(shí)體可以進(jìn)行會話 。傳輸層主要使用以下兩種協(xié)議:

1)? ?傳輸控制協(xié)議 ( Transmission? Control? Protocol,? TCP ) 。面向連接的 ,數(shù)據(jù)傳輸?shù)膯挝皇菆?bào)文段,能夠提供可靠的交付 。

2)用戶數(shù)據(jù)報(bào)協(xié)議 (User Datagram Protocol,? UDP ) 。無連接的 ,數(shù)據(jù)傳輸?shù)膯挝皇怯脩魯?shù)據(jù)報(bào),不保證提供可靠的交付 ,只能提供“盡最大努力交付” 。

應(yīng)用層( 用戶-用戶) 包含所有的高層協(xié)議 。如虛擬終端協(xié)議(Telnet )、文件傳輸協(xié)議 (FTP )、 域名解析服務(wù)(DNS )、電子郵件協(xié)議 ( SMTP )、 和超文本傳輸協(xié)議 (HTTP )。

IP 協(xié)議是因特網(wǎng)中的核心協(xié)議 ;TCP/IP 可以為各式各樣的應(yīng)用提供服務(wù) (所謂的 everything over IP),同時(shí)TCP/IP 也允許 IP 協(xié)議在各種各樣的網(wǎng)絡(luò)構(gòu)成的互聯(lián)網(wǎng)上運(yùn)行(所謂的 IP over everything ) 。正因?yàn)槿绱?,因特網(wǎng)才會發(fā)展到今天的規(guī)模 。

TCP/IP 模型與 OSI 參考模型的比較

TCP/IP 模型與 OSI 參考模型有許多相似之處 。首先,二者都采取分層的體系結(jié)構(gòu),將龐大且復(fù)雜的問題劃分為若干個(gè)較容易處理的 、范圍較小的問題,而且分層的功能也大體相似。其次, 二者都是基于獨(dú)立的協(xié)議棧的概念 。再次,二者都可以解決異構(gòu)網(wǎng)絡(luò)的互聯(lián) ,實(shí)現(xiàn)世界上不同廠家生產(chǎn)的計(jì)算機(jī)之間的通信 。它們之間的比較如圖 所示。

兩個(gè)模型除了具有這些基本的相似之處外 ,也有很多差別。

第一、OSI 參考模型的最大貢獻(xiàn)就是精確地定義了三個(gè)主要概念 :服務(wù)、協(xié)議和接口 ,這與現(xiàn)代的面向?qū)ο蟪绦蛟O(shè)計(jì)思想非常吻合 。而 TCP/IP 模型在這三個(gè)概念上卻沒有明確區(qū)分,不符合軟件工程的思想 。

第二 、OSI 參考模型產(chǎn)生在協(xié)議發(fā)明之前,沒有偏向于任何特定的協(xié)議,通用性良好 。但設(shè)計(jì)者在協(xié)議方面沒有太多經(jīng)驗(yàn) ,不知道把哪些功能放到哪一層更好 。TCP/IP 模型正好相反 。首先出現(xiàn)的是協(xié)議 ,模型實(shí)際上是對己有協(xié)議的描述,因此不會出現(xiàn)協(xié)議不能匹配模型的情況,但該模型不適合于任何其他非 TCP/IP 的協(xié)議棧。

第三、TCP/IP 模型在設(shè)計(jì)之初就考慮到多種異構(gòu)網(wǎng)的互聯(lián)問題 ,并將網(wǎng)際協(xié)議IP作為一個(gè)單獨(dú)的重要層次 。OSI? 參考模型最初只考慮到用一種標(biāo)準(zhǔn)的公用數(shù)據(jù)網(wǎng)將各種不同的系統(tǒng)互聯(lián)。 后來,OSI 參考模型認(rèn)識到網(wǎng)際協(xié)議 IP的重要性,因此只好在網(wǎng)絡(luò)層中劃分出一個(gè)子層來完成類似于 TCP/IP 模型中 IP 的功能。

第四、OSI 參考模型在網(wǎng)絡(luò)層支持無連接和面向連接的通信 ,但在傳輸層僅有面向連接的通信 。而TCP/IP 模型認(rèn)為可靠性是端到端的問題 ,因此它在網(wǎng)際層僅有一種無連接的通信模式 , 但在傳輸層支持無連接和面向連接兩種模式 。

無論是 OSI 參考模型,還是 TCP/IP 模型都不是完美的 ,對二者的討論和批評都很多。OSI 參考模型的設(shè)計(jì)者從工作的開始 ,就試圖建立一個(gè)全世界的計(jì)算機(jī)網(wǎng)絡(luò)都要遵循的統(tǒng)一標(biāo)準(zhǔn)。從技術(shù)角度來看 ,他們希望追求一種完美的理想狀態(tài) ,這也導(dǎo)致基于 OSI 參考模型的軟件效率極低 。 OSI 參考模型缺乏市場與商業(yè)動(dòng)力 ,結(jié)構(gòu)復(fù)雜,實(shí)現(xiàn)周期長 ,運(yùn)行效率低 ,這是它沒有能夠達(dá)到預(yù)想目標(biāo)的重要原因 。

在學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)時(shí)往往采取折中的辦法,即綜合?OSI?和?TCP/IP ?的優(yōu)點(diǎn),采用一種如圖所示的只有五層協(xié)議的體系結(jié)構(gòu)?,即我們所熟知的物理層?、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層?。

最后,簡單介紹使用通信協(xié)議棧進(jìn)行通信的結(jié)點(diǎn)的數(shù)據(jù)傳輸過程。每個(gè)協(xié)議棧的最頂端都是一個(gè)面向用戶的接口 ,下面各層是為通信服務(wù)的協(xié)議 。當(dāng)用戶要傳輸一個(gè)數(shù)據(jù)報(bào)時(shí),通常是給出用戶能夠理解的自然語言 ,然后通過應(yīng)用層,自然語言會轉(zhuǎn)化為用于通信的通信數(shù)據(jù) 。通信數(shù)據(jù)到達(dá)運(yùn)輸層,作為運(yùn)輸層的數(shù)據(jù)部分(運(yùn)輸層 SDU) ,加上運(yùn)輸層的控制信息 (運(yùn)輸層 PCI ),組成運(yùn)輸層的 PDU ,然后交到網(wǎng)絡(luò)層 ,運(yùn)輸層的PDU 下放到網(wǎng)絡(luò)層后 ,就成為網(wǎng)絡(luò)層的 SDU,然后加上網(wǎng)絡(luò)層的PCI,又組成了網(wǎng)絡(luò)層的PDU ,下放到數(shù)據(jù)鏈路層,就這樣層層下放,層層包裹 ,最后形成的數(shù)據(jù)報(bào)通過通信線路傳輸 ,到達(dá)接收方結(jié)點(diǎn)協(xié)議棧,接收方再逆向地一層一層把 “包 裹” 拆開 ,然后把收到的數(shù)據(jù)提交給用戶 。如圖所示。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容