1.ISO/OSI七層模型
下四層是為數(shù)據(jù)傳輸服務(wù)的,物理層是真正的傳輸數(shù)據(jù)的,數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層主要是寫入對應(yīng)數(shù)據(jù)的傳輸信息的
物理層:比特
設(shè)備之間的比特流的傳輸、物理接口、電氣特性
數(shù)據(jù)鏈路層:幀
保存的最主要的信息是網(wǎng)卡的 mac 地址,mac 地址負(fù)責(zé)局域網(wǎng)通信的,發(fā)件人和收件人的mac 地址
mac地址的作用:盡管你是要在互聯(lián)網(wǎng)中傳輸數(shù)據(jù)(貌似需要IP地址就可以了),但是在互聯(lián)網(wǎng)中傳輸數(shù)據(jù)其實是通過在一個又一個的局域網(wǎng)進(jìn)行依次傳遞,所以需要mac 地址
進(jìn)行錯誤檢測和修正
網(wǎng)絡(luò)層:報文
保存的最主要的信息是 IP 地址,IP 地址是負(fù)責(zé)外網(wǎng)通信的,發(fā)件人和收件人的IP 地址
選擇通路(路由器)
傳輸層:TPDU--傳輸協(xié)議數(shù)據(jù)單元
確定端口號(IP是尋找互聯(lián)網(wǎng)中的哪個電腦,端口是尋找電腦中的哪個應(yīng)用服務(wù))
確定傳輸協(xié)議是可靠的還是不可靠的(UDP、TCP)
傳輸前的錯誤檢測
流量控制
為用戶提供服務(wù)的上三層
會話層:SPDU--會話協(xié)議數(shù)據(jù)單元
確定網(wǎng)絡(luò)數(shù)據(jù)是否要通過遠(yuǎn)程會話
比如你寫了一個word文檔,在保存之后(表示層完成格式轉(zhuǎn)化……)就會到達(dá)會話層,顯然判斷word文檔保存在本地即可,不需要進(jìn)行網(wǎng)絡(luò)傳遞,所以直接交給硬盤進(jìn)行存儲即可
但是你寫了一個郵件,點擊發(fā)送(表示層完成格式轉(zhuǎn)化……)就會到達(dá)會話層,顯然判斷郵件需要通過網(wǎng)絡(luò)進(jìn)行傳輸,所以就會交給傳輸層進(jìn)行處理
表示層:SPDU--表示協(xié)議數(shù)據(jù)單元
把你的數(shù)據(jù)進(jìn)行數(shù)字化表示(把英文/中文/圖片/mp3……通過一定的規(guī)則翻譯成01 格式)
加密
壓縮
應(yīng)用層:APDU--應(yīng)用協(xié)議數(shù)據(jù)單元
給用戶提供服務(wù)的接口
2.TCP/IP四層網(wǎng)絡(luò)模型
上面所講到的ISO/OSI七層模型目前只是一個模型,在實際的網(wǎng)絡(luò)傳輸中其實并不是這樣使用的,實際的網(wǎng)絡(luò)傳輸中使用的其實是TCP/IP四層模型
網(wǎng)絡(luò)接口層、網(wǎng)際互連層、傳輸層、應(yīng)用層
TCP/IP模型和ISO/OSI模型的對應(yīng)(所以各層的功能參考ISO/OSI模型中各層的功能)
網(wǎng)絡(luò)接口層:對應(yīng)物理層、數(shù)據(jù)鏈路層
負(fù)責(zé)監(jiān)視數(shù)據(jù)在主機(jī)和網(wǎng)絡(luò)之間的交換。事實上,TCP/IP本身并沒有定義該層的協(xié)議,而由參與互連的各個網(wǎng)絡(luò)使用自己的物理層和數(shù)據(jù)鏈路層協(xié)議,然后與TCP/IP的網(wǎng)絡(luò)接入層進(jìn)行鏈接
地址解析協(xié)議(ARP)工作在此層,即OSI參考模型的數(shù)據(jù)鏈路層:ARP就是將IP地址翻譯成mac 地址,因為在整個互聯(lián)網(wǎng)內(nèi)傳輸需要IP 地址,但是在同一個網(wǎng)段之內(nèi)(局域網(wǎng))傳輸數(shù)據(jù)就不是使用IP 地址,而是需要使用mac 地址。
例如,在同一個局域網(wǎng)內(nèi)傳輸數(shù)據(jù),電腦點擊發(fā)送數(shù)據(jù),而發(fā)送的目標(biāo)是我同局域網(wǎng)內(nèi)的另一臺計算機(jī),點擊之后數(shù)據(jù)就會發(fā)送到網(wǎng)線上,網(wǎng)線就會把你的請求發(fā)送到交換機(jī)上,交換機(jī)只能識別mac 地址,不認(rèn)識IP地址
注意,局域網(wǎng)內(nèi)部使用交換機(jī),而在局域網(wǎng)之間的連接是通過路由器(路由器是用來進(jìn)行跨網(wǎng)絡(luò)通信的,在同一個網(wǎng)絡(luò)內(nèi)通信只需要交換機(jī)即可)
所以還是需要再學(xué)習(xí)交換機(jī)、路由器等網(wǎng)絡(luò)設(shè)備及其作用、原理
網(wǎng)際互連層:對應(yīng)網(wǎng)絡(luò)層
主要解決主機(jī)到主機(jī)的通信問題。它所包含的協(xié)議設(shè)計數(shù)據(jù)包在整個網(wǎng)絡(luò)上的邏輯傳輸。
該層有三個主要協(xié)議:網(wǎng)際協(xié)議(IP)、互聯(lián)網(wǎng)組管理協(xié)議(IGMP)、互聯(lián)網(wǎng)控制報文協(xié)議(ICMP)
傳輸層:對應(yīng)傳輸層
為應(yīng)用層實體提供端到端的通信功能,保證了數(shù)據(jù)包的順序傳送及數(shù)據(jù)的完整性。
該層定義了兩個主要的協(xié)議:傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)。QQ傳輸使用的就是UDP協(xié)議
還需要深入學(xué)習(xí),比如TCP/IP三次握手(為什么要三次握手,搜索“什么是兩軍問題”,其實三次握手也不能達(dá)到絕對可靠,但是相對來說三次已經(jīng)相當(dāng)可靠了,如果再握手更多次就太費時間了,太少的話就不能保證足夠可靠)
應(yīng)用層:對應(yīng)會話層、表示層、應(yīng)用層
為用戶提供所需要的各種服務(wù)
例如:FTP、Telnet、DNS、SMTP等
OSI模型是在協(xié)議開發(fā)之前設(shè)計的,具有通用性。TCP/IP是先有協(xié)議集然后建立模型,不適用于非TCP/IP網(wǎng)絡(luò)
數(shù)據(jù)封裝的過程
另外參考這個鏈接進(jìn)行更詳細(xì)的學(xué)習(xí)TCP/IP的體系結(jié)構(gòu):http://blog.csdn.net/taoyingzhushui/article/details/8120296
TCP/IP模型是由美國國防部在ARPANET網(wǎng)絡(luò)中創(chuàng)建的網(wǎng)絡(luò)體系結(jié)構(gòu),所以有時又稱為DoD(Department of Defense)模型,是至今為止發(fā)展最成功的通信模型,它用于構(gòu)筑目前最大的、開放的互聯(lián)網(wǎng)絡(luò)系統(tǒng)Internet。TCP/IP模型分為不同的層次,每一層負(fù)責(zé)不同的通信功能。但TCP/IP簡化了層次模型(只有4層),由下而上分別為網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、運(yùn)輸層、應(yīng)用層,如圖2.14所示。
TCP/IP 模型
在TCP/IP模型中,網(wǎng)絡(luò)接口層是TCP/IP模型的最底層,負(fù)責(zé)接收從網(wǎng)絡(luò)層交付的IP數(shù)據(jù)包,并將IP數(shù)據(jù)包通過底層物理網(wǎng)絡(luò)發(fā)送出去,或者從底層物理網(wǎng)絡(luò)上接收物理幀,抽出IP數(shù)據(jù)報,交給網(wǎng)絡(luò)層。
網(wǎng)絡(luò)層負(fù)責(zé)獨立地將分組從源主機(jī)送往目的主機(jī),為分組提供最佳路徑選擇和交換功能,并使這一過程與它們所經(jīng)過的路徑和網(wǎng)絡(luò)無關(guān)。
運(yùn)輸層的作用是在源節(jié)點和目的節(jié)點的兩個對等實體間提供可靠的端到端的數(shù)據(jù)通信。
應(yīng)用層為用戶提供網(wǎng)絡(luò)應(yīng)用,并為這些應(yīng)用提供網(wǎng)絡(luò)支撐服務(wù),把用戶的數(shù)據(jù)發(fā)送到低層,為應(yīng)用程序提供網(wǎng)絡(luò)接口。
TCP/IP模型每一層都提供了一組協(xié)議,各層協(xié)議的集合構(gòu)成了TCP/IP模型的協(xié)議簇。
1.網(wǎng)絡(luò)接口層協(xié)議
TCP/IP的網(wǎng)絡(luò)接口層中包括各種物理網(wǎng)絡(luò)協(xié)議,例如Ethernet、令牌環(huán)、幀中繼、ISDN和分組交換網(wǎng)X.25等。當(dāng)各種物理網(wǎng)絡(luò)被用做傳輸IP數(shù)據(jù)包的通道時,這種傳輸過程就可以認(rèn)為是屬于這一層的內(nèi)容。
2.網(wǎng)絡(luò)層協(xié)議
網(wǎng)絡(luò)層包括多個重要協(xié)議,主要協(xié)議有4個,即IP、ARP、RARP和ICMP。
網(wǎng)際協(xié)議(Internet Protocol,IP)是其中的核心協(xié)議,IP協(xié)議規(guī)定網(wǎng)絡(luò)層數(shù)據(jù)分組的格式。
Internet控制消息協(xié)議(Internet Control Message Protocol,ICMP)提供網(wǎng)絡(luò)控制和消息傳遞功能。
地址解釋協(xié)議(Address Resolution Protocol,ARP)用來將邏輯地址解析成物理地址。
反向地址解釋協(xié)議(Reverse Address Resolution Protocol,RARP)通過RARP廣播,將物理地址解析成邏輯地址。
3.運(yùn)輸層協(xié)議
運(yùn)輸層協(xié)議主要包含TCP和UDP兩個協(xié)議。
傳輸控制協(xié)議(Transport Control Protocol,TCP)是面向連接的協(xié)議,用三次握手和滑動窗口機(jī)制來保證傳輸?shù)目煽啃院瓦M(jìn)行流量控制。
用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)是面向無連接的不可靠運(yùn)輸層協(xié)議。
4.應(yīng)用層協(xié)議
應(yīng)用層包括了眾多的應(yīng)用與應(yīng)用支撐協(xié)議。
常見的應(yīng)用層協(xié)議有:文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、簡單郵件傳輸協(xié)議(SMTP)、遠(yuǎn)程登錄(Telnet)。
常見的應(yīng)用支撐協(xié)議包括域名服務(wù)(DNS)和簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)等。
TCP/IP網(wǎng)絡(luò)模型處理數(shù)據(jù)的過程描述如下:
1)生成數(shù)據(jù)。當(dāng)用戶發(fā)送一個電子郵件信息時,它的字母或數(shù)字字符被轉(zhuǎn)換成可以通過互聯(lián)網(wǎng)傳輸?shù)臄?shù)據(jù)。
2)為端到端的傳輸將數(shù)據(jù)打包。通過對數(shù)據(jù)打包來實現(xiàn)互聯(lián)網(wǎng)的傳輸。通過使用端傳輸功能確保在兩端的信息主機(jī)系統(tǒng)之間進(jìn)行可靠的通信。
3)在首部上附加目的網(wǎng)絡(luò)地址。數(shù)據(jù)被放置在一個分組或者數(shù)據(jù)報中,其中包含了帶有源和目的邏輯地址的網(wǎng)絡(luò)首部,這些地址有助于網(wǎng)絡(luò)設(shè)備在動態(tài)選定的路徑上發(fā)送這些分組。
4)附加目的數(shù)據(jù)鏈路層MAC地址到數(shù)據(jù)鏈路首部。每一個網(wǎng)絡(luò)設(shè)備必須將分組放置在幀中,該幀的首部包括在路徑中下一臺直接相連設(shè)備的物理地址。
5)傳輸比特。幀必須轉(zhuǎn)換成“1”和“0”的信息模式,才能在介質(zhì)上進(jìn)行傳輸。時鐘功能(Clocking Function)使得設(shè)備可以區(qū)分這些在介質(zhì)上傳輸?shù)谋忍兀锢砘ヂ?lián)網(wǎng)絡(luò)上的介質(zhì)可能隨著使用的不同路徑而有所不同。例如,電子郵件信息可以起源于一個局域網(wǎng)LAN,通過校園骨干網(wǎng),然后到達(dá)廣域網(wǎng)WAN鏈路,直到到達(dá)另一個遠(yuǎn)端局域網(wǎng)LAN上的目的主機(jī)為止。
2.2.5? 原理體系結(jié)構(gòu)
在分析網(wǎng)絡(luò)結(jié)構(gòu)原理和進(jìn)行網(wǎng)絡(luò)程序設(shè)計時,使用OSI七層結(jié)構(gòu)過于復(fù)雜。
OSI的會話層主要功能是組織和同步不同的主機(jī)上各種進(jìn)程間的通信,負(fù)責(zé)在兩個會話層實體之間進(jìn)行對話連接的建立和拆除,這個功能可以合并到運(yùn)輸層來表述,因為運(yùn)輸層提供的端到端的透明數(shù)據(jù)運(yùn)輸服務(wù)。
OSI的表示層為上層用戶提供共同的數(shù)據(jù)或信息的語法表示及變換,這個功能可以合并到應(yīng)用層來表述,因為應(yīng)用層為特定類型的網(wǎng)絡(luò)應(yīng)用提供訪問OSI環(huán)境的手段。
這樣,網(wǎng)絡(luò)體系結(jié)構(gòu)就可以簡化為五層結(jié)構(gòu),通常叫做原理體系結(jié)構(gòu)模型或混合模型,如圖2.15所示。各層的功能與OSI參考模型類似,可以簡單描述如下。
物理層:透明傳輸比特流。
數(shù)據(jù)鏈路層:無差錯地傳輸以幀為單位的數(shù)據(jù)。
網(wǎng)絡(luò)層:選擇路由,網(wǎng)絡(luò)尋址(包或分組)。
運(yùn)輸層:為進(jìn)程間提供可靠的端到端的服務(wù)。
應(yīng)用層:為用戶的應(yīng)用進(jìn)程提供服務(wù)。
2.3? 數(shù)據(jù)單元
在網(wǎng)絡(luò)環(huán)境中,層間傳送的信息基本單位稱為數(shù)據(jù)單元。
有了數(shù)據(jù)單元的概念,我們就可以很方便地描述兩個開放系統(tǒng)之間的通信過程。
例如,以開放系統(tǒng)A的應(yīng)用進(jìn)程APA與開放系統(tǒng)B的應(yīng)用進(jìn)程APB之間的通信過程為例,應(yīng)用進(jìn)程APA通過本地系統(tǒng)管理模塊LSM將數(shù)據(jù)送交給第七層。第七層對該數(shù)據(jù)加上若干比特的控制信息作為第六層的數(shù)據(jù)單元。
第六層收到此數(shù)據(jù)單元后,又加上本層的控制信息構(gòu)成第五層的數(shù)據(jù)單元。
以下依次類推。直到第二層,將控制信息分成兩個部分,分別加到本層數(shù)據(jù)單元的首部和尾部。
在第一層則不再加任何控制信息,因為該層僅完成比特流的傳送任務(wù)。
接著,當(dāng)比特流通過傳輸介質(zhì)送到開放系統(tǒng)B時,由第一層逐層往上送至第七層。
每一層根據(jù)控制信息做必要的操作后,再將此控制信息去掉,將剩余的數(shù)據(jù)單元提交給上一層。最后,把APA發(fā)送的數(shù)據(jù)交給應(yīng)用進(jìn)程APB。
在OSI環(huán)境中,對等實體按協(xié)議進(jìn)行通信,相鄰層實體按服務(wù)進(jìn)行通信。這些通信都是以數(shù)據(jù)單元作為信息傳遞單位來進(jìn)行的。在OSI模型中,規(guī)定了下述三種類型的數(shù)據(jù)單元。
1)服務(wù)數(shù)據(jù)單元SDU(Service Data Unit)。OSI模型把相鄰層實體間傳送信息的數(shù)據(jù)單元稱為服務(wù)數(shù)據(jù)單元,并將(N+1)層與(N)層之間傳送信息的服務(wù)單元記為(N)SDU。(N)服務(wù)數(shù)據(jù)單元實際上是確保(N)服務(wù)傳輸需要的邏輯單元。
2)協(xié)議數(shù)據(jù)單元PDU(Protocol Data Unit)。OSI模型把對等實體間傳送信息的數(shù)據(jù)單元稱為協(xié)議數(shù)據(jù)單元,并將(N)層的協(xié)議數(shù)據(jù)單元記為(N)PDU。(N)PDU由兩部分組成,即(N)用戶數(shù)據(jù)[記為(N)UD]和(N)協(xié)議控制信息[記為(N)PCI]。如果某層的協(xié)議數(shù)據(jù)單元只用于控制,則該協(xié)議數(shù)據(jù)單元中的用戶數(shù)據(jù)可省略,此時只有該層的PCI。
3)接口數(shù)據(jù)單元IDU(Interface Data Unit)。OSI模型把相鄰層實體通過層間服務(wù)訪問點依次交互信息的數(shù)據(jù)單元稱為接口數(shù)據(jù)單元,并將(N)層的接口數(shù)據(jù)單元記為(N)IDU。(N)IDU也由兩部分組成。其中,一部分是(N+1)實體與(N)實體交互的數(shù)據(jù),稱為接口數(shù)據(jù)[記為(N)ID];另一部分是為了協(xié)調(diào)(N+1)實體與(N)實體的交互操作而附加的控制信息(如服務(wù)原語中的某些參數(shù)),這些拉制信息稱為接口控制信息[記為(N)ICI]。由于接口控制信息只在交互信息通過服務(wù)訪問點時才起作用,所以,當(dāng)接口數(shù)據(jù)單元通過服務(wù)訪問點后就可以將其取掉。
數(shù)據(jù)單元關(guān)系示意圖
當(dāng)(N)較長而(N)協(xié)議所要求的(N)較短時,就要對(N)SDU進(jìn)行分段處理,分別加上各自的協(xié)議控制信息,構(gòu)成多個(N)PDU。而在接收方則要進(jìn)行相應(yīng)的合段操作。圖2.16描述了三種數(shù)據(jù)單元的簡單關(guān)系。(N+1)PDU是借助(N)SDU通過(N)服務(wù)訪問點(SAP)傳送到(N)層的,此時(N)SDU就相當(dāng)于(N)層的用戶數(shù)據(jù),對它加上(N)PCI后便構(gòu)成了(N)PDU。這樣,(N+1)PDU似乎等同于(N)SDU,實際上,(N+1)PDU與(N)SDU不一樣長的情況也是存在的。有時發(fā)送方實體需要將數(shù)個(N+1)PDU拼接成一個(N)SDU,而在接收方對等實體把一個(N)SDU分割成數(shù)個(N+1)PDU的操作。
事實上,也可能出現(xiàn)一個(N)SDU等于數(shù)個(N)IDU的情況。此時,(N+l)實體與(N)實體之間就需要通過數(shù)次交互(N)IDU才能實現(xiàn)傳送(N)SDU。
2.4? 服務(wù)與用戶
將計算機(jī)網(wǎng)絡(luò)表示成層次模型,在垂直式的層次表示方法中,第N層是第N-1層的用戶,又是第N+1層的服務(wù)提供者。而第N+1層的用戶雖然只能直接使用第N層所提供的服務(wù),實際上它還通過第N層間接地使用了第N層以下各層的服務(wù)。
在每對相鄰層之間有一個接口,接口定義了較低層向較高層提供的原始操作和服務(wù)。因此,一臺計算機(jī)的第N層與另一臺計算機(jī)的第N層進(jìn)行通信,實際上并不是一臺計算機(jī)的第N層直接將數(shù)據(jù)傳送給另一臺計算機(jī)的第N層(除最低層外),而是每一層將數(shù)據(jù)和控制信息通過層間接口傳送給與它相鄰的第N-l層,這樣直至最低層為止。在最低層再通過物理介質(zhì)實現(xiàn)與另一計算機(jī)最底層的物理通信。物理通信與高層之間進(jìn)行的虛擬通信是不同的,是實通信。
對于層間通信,通信雙方都必須遵守事先約定的規(guī)則,這些規(guī)則稱為網(wǎng)絡(luò)協(xié)議。網(wǎng)絡(luò)協(xié)議不僅要明確規(guī)定所交換的數(shù)據(jù)的格式,而且還要對事件發(fā)生的次序(即同步)做出詳細(xì)的過程說明。
圖2.17給出了一個5層原理模型,說明了層、協(xié)議和接口的關(guān)系。
協(xié)議與接口示意圖