天天看點

TCP/IP協定模型

OSI參考模型雖然是ISO給出的,但是ISO在推進OSI協定标準化的程序上是比較緩慢的。而TCP/IP協定的标準化程序是相當快速的,是以現階段的實際标準是TCP/IP協定。盡管TCP/IP協定與OSI有所差異,但是仍舊與OSI參考模型有一些對應關系。

7 應用層 應用層(DNS,URL,HTTP,HTML,STMP,SSH等) 應用程式
6 表示層
5 會話層
4 傳輸層 傳輸層(TCP,UDP等) 作業系統
3 網絡層 網絡層(ARP,IP,ICMP)
2 資料鍊路層 資料鍊路層(以太網,WIFI等) 裝置驅動程式與網絡接口
1 實體層 硬體

相比較而言,TCP/IP模型更加注重實作,它指出了在計算機上開發那種程式以對應于相應的協定。有時候我們會常常看到硬體和資料鍊路層是合二為一的,稱之為網絡通信層。

網絡通信層(資料鍊路層):這層驅動網卡工作。可以了解為驅動程式。

網絡層:這層的功能一般由作業系統來提供,在該層路由器和主機必須能實作IP功能。

IP:IP協定是分組交換協定,但是它不具備重發功能。它是不可靠傳輸協定。

ICMP:一旦發生IP資料包無法到達對端,需要給發送端發送一個異常的通知。ICMP就是為了這一功能而制定的。

ARP:ARP協定是一種可以從分組資料包的IP位址中解析出實體位址(MAC位址)。

傳輸層:該層的主要功能是為了實作應用程式之間的通信(不同主機上的程序之間的通信)。是以每台主機上的不同程序都具備了不同的端口号。

TCP:TCP是一種面向有連接配接的傳輸層協定。它可以保證通信雙方之間建立了連接配接。TCP能夠正确處理傳輸過程中的丢包,傳輸順序錯亂等異常情況。但是為了建立與斷開連接配接,它至少需要7次的發包和收包,進而導緻了網絡流量的浪費。此外TCP協定是非常複雜的,不适合視訊通話等場合使用。

UDP:UDP是一種面向無連接配接的傳輸層協定。它甚至不會關心對端是否存在。它适合于分組較少或者多點傳播,廣播通信以及視訊通信等。

應用層:TCP/IP将OSI參考模型的會話層,表示層和應用層合在了一起,形成應用層。而這些都交由應用程式去實作。

基于TCP/IP的應用程式架構絕大多數屬于用戶端/伺服器模型(C/S模型)。在這種模式的情形下,伺服器一直在等待用戶端的請求。用戶端可以随時給伺服器發送請求,但是伺服器并不一定能夠正确處理。出現這種情況時,用戶端可以再等待片刻之後重發一次請求。

WWW:WWW是網際網路能夠如此普及的一個重要原因(有了www我們就無需記住IP位址等資訊)。使用者借助web浏覽器輸入網址即可通路。web浏覽器與伺服器之間是通過HTTP協定通信的,傳輸的資料主要是HTML格式。在這裡HTML屬于表示層的協定,HTTP屬于應用層的協定。

電子郵件:早期的電子郵件隻能發送文本資訊,使用STMP協定,但是現在擴充的MIME協定可以發送圖像,聲音等各種各樣的資訊。這屬于OSI參考模型的第6層表示層

檔案傳輸(FTP):檔案傳輸需要使用FTP協定,它能将其他主機的檔案下載下傳到本機的本地磁盤上。也能将本地磁盤的檔案上傳到其他主機上。在檔案傳輸中會建立兩個TCP連接配接,分别是發出傳輸控制請求的TCP連接配接和真正傳輸資料的TCP連接配接。

遠端登入:我們使用雲計算的時候,租賃來的雲伺服器在使用的時候就需要遠端登入。TCP/IP常用的遠端登入有TELNET和SSH。

上述的5層參考模型是現階段最好的模型了。它綜合了OSI和TCP/IP的優點。