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