各層設備
應用層……………….計算機:應用程序,如FTP,SMTP,HTTP
表示層 ……………….計算機:編碼方式,圖像編解碼、URL字段傳輸編碼
會話層 ……………….計算機:建立會話,SESSION認證、斷點續傳
傳輸層 ……………….計算機:進程和端口
網絡層…………………網絡:路由器,防火墻、多層交換機
數據鏈路層 ………..網絡:網卡,網橋,交換機
物理層…………………網絡:中繼器,集線器、網線、HUB
各層定義
物理層:主要是將比特或者說是0和1轉化為強弱電流,然后到接受方在將強弱電流轉化為01.主要定義光纖的接口,網線的接口。具體標準有:RS232? V.35? ?RJ-45? FDDI
(白話:科學家要解決的第一個問題是,兩個硬件之間怎么通信。具體就是一臺發些比特流,然后另一臺能收到。于是,科學家發明了物理層:
主要定義物理設備標準,如網線的接口類型、光纖的接口類型、各種傳輸介質的傳輸速率等。它的主要作用是傳輸比特流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地后在轉化為1、0,也就是我們常說的數模轉換與模數轉換)。這一層的數據叫做比特。)
數據鏈路層:ip數據報封裝成幀,傳給物理層。常見協議:IEEE802.3/.2? HDLC? PPP? ATM
(白話:現在通過電線我能發數據流了,但是,我還希望通過無線電波,通過其它介質來傳輸。然后我還要保證傳輸過去的比特流是正確的,要有糾錯功能。
于是,發明了數據鏈路層:定義了如何讓格式化數據以進行傳輸,以及如何讓控制對物理介質的訪問。這一層通常還提供錯誤檢測和糾正,以確保數據的可靠傳輸。)
網絡層:主要的協議有ip,主要是將報文封裝成ip數據報。常見協議:IP? ICMP? IGMP? IPX? ARP
(白話:傳輸層只是解決了打包的問題。但是如果我有多臺計算機,怎么找到我要發的那臺?或者,A要給F發信息,中間要經過B,C,D,E,但是中間還有好多節點如K.J.Z.Y。我怎么選擇最佳路徑?這就是路由要做的事。
于是,發明了網絡層。即路由器,交換機那些具有尋址功能的設備所實現的功能。這一層定義的是IP地址,通過IP地址尋址。所以產生了IP協議。)
傳輸層:主要的協議有tcp和udp,tcp將數據封裝成用戶數據報或者說是報文,然后分段傳輸,udp將數據封裝成用戶數據報直接傳輸。運輸層向它上面的應用層提供端到端通信服務,它屬于面向通信部分的最高層,同時也是用戶功能中的最低層。傳輸層對收到的報文進行差錯檢測。常見協議:TCP? UDP? SPX
(白話:現在我能發正確的發比特流數據到另一臺計算機了,但是當我發大量數據時候,可能需要好長時間,例如一個視頻格式的,網絡會中斷好多次(事實上,即使有了物理層和數據鏈路層,網絡還是經常中斷,只是中斷的時間是毫秒級別的)。
那么,我還須要保證傳輸大量文件時的準確性。于是,我要對發出去的數據進行封裝。就像發快遞一樣,一個個地發。
于是,先發明了傳輸層(傳輸層在OSI模型中,是在網絡層上面)
例如TCP,是用于發大量數據的,我發了1萬個包出去,另一臺電腦就要告訴我是否接受到了1萬個包,如果缺了3個包,就告訴我是第1001,234,8888個包丟了,那我再發一次。這樣,就能保證對方把這個視頻完整接收了。
例如UDP,是用于發送少量數據的。我發20個包出去,一般不會丟包,所以,我不管你收到多少個。在多人互動游戲,也經常用UDP協議,因為一般都是簡單的信息,而且有廣播的需求。如果用TCP,效率就很低,因為它會不停地告訴主機我收到了20個包,或者我收到了18個包,再發我兩個!如果同時有1萬臺計算機都這樣做,那么用TCP反而會降低效率,還不如用UDP,主機發出去就算了,丟幾個包你就卡一下,算了,下次再發包你再更新。)
會話層:主要在你的系統之間發起會話或者接受會話請求。常見協議:RPC? ?SQL? NFS
(白話:現在我們已經保證給正確的計算機,發送正確的封裝過后的信息了。但是用戶級別的體驗好不好?難道我每次都要調用TCP去打包,然后調用IP協議去找路由,自己去發?當然不行,所以我們要建立一個自動收發包,自動尋址的功能。
于是,發明了會話層。會話層的作用就是建立和管理應用程序之間的通信。)
表示層:簡單來說就是win系統想給QQ發短信給linux的QQ的規范標準,表示層會通過使用一種通格式來實現多種數據格式之間的轉換。常見協議:JPEG? ?ASCII? GIF? DES? MPEG
(白話:現在我能保證應用程序自動收發包和尋址了。但是我要用Linux給window發包,兩個系統語法不一致,就像安裝包一樣,exe是不能在linux下用的,shell在window下也是不能直接運行的。于是需要表示層(presentation),幫我們解決不同系統之間的通信語法問題。)
應用層: ?應用層是開放系統的最高層,是直接為應用進程提供服務的。其作用是在實現多個系統應用進程相互通信的同時,完成一系列業務處理所需的服務。主要的協議:HTTP? TELNET? FTP? SMTP
(白話:OK,現在所有必要條件都準備好了,我們可以寫個android程序,web程序去實現需求把。)