在正式介紹TCP
協議以前,咱們先來介紹一下網絡的分層模型。如今主流的模型有兩種:html
ISO
(international standard orgnization
國際標準組織)提出的OSI
模型(open system interconnect
開放式系統互聯)。TCP/IP
模型。由於在OSI
模型出臺以前,TCP/IP
模型已經成爲了行業主流參考模型。因此致使兩種模型並存。並且,目前,咱們主要用的也是TCP/IP
模型。ISO
爲了更好的使網絡應用更爲普及,推出了OSI
參考模型。其含義就是推薦全部公司使用這個規範來控制網絡。這樣全部公司都有相同的規範,就能互聯了。 後端
OSI
參考模型中最靠近用戶的一層,是爲計算機用戶提供應用接口,也爲用戶直接提供各類網絡服務。咱們常見應用層的網絡服務協議有:HTTP
,HTTPS
,FTP
,POP3
、SMTP
等。服務器
http(hyper text transfer protocol)(超文本傳輸協議)
或者https
.在後端設計數據接口時,咱們經常使用到這個協議。FTP
是文件傳輸協議,在開發過程當中,我的並無涉及到,可是我想,在一些資源網站,好比百度網盤``迅雷
應該是基於此協議的。SMTP
是simple mail transfer protocol(簡單郵件傳輸協議)
。在一個項目中,在用戶郵箱驗證碼登陸的功能時,使用到了這個協議。表示層提供各類用於應用層數據的編碼和轉換功能,確保一個系統的應用層發送的數據能被另外一個系統的應用層識別。若是必要,該層可提供一種標準表示形式,用於將計算機內部的多種數據格式轉換成通訊中採用的標準表示形式。數據壓縮和加密也是表示層可提供的轉換功能之一。
例如,IBM
主機使用EBCDIC
編碼,而大部分PC
機使用的是ASCII
碼。在這種狀況下,便須要表示層來完成這種轉換。若是您想要用盡可能少的詞語來記住這第6層,那就是「一種通用的數據格式」。cookie
在項目開發中,爲了方便數據傳輸,可使用base64
對數據進行編解碼。若是按功能來劃分,base64
應該是工做在表示層。網絡
會話層就是負責創建、管理和終止表示層實體之間的通訊會話。該層的通訊由不一樣設備中的應用程序之間的服務請求和響應組成。session
在項目開發中,咱們常常要使用cookie/session/token
來進行會話狀態保持。若是沒錯的話cookie/session/token
應該是工做在會話層的。網站
傳輸層創建了主機端到端的連接,傳輸層的做用是爲上層協議提供端到端的可靠和透明的數據傳輸服務,包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數據通訊的細節,使高層用戶看到的只是在兩個傳輸實體間的一條主機到主機的、可由用戶控制和設定的、可靠的數據通路。咱們一般說的,TCP
UDP
就是在這一層。端口號既是這裏的「端」。ui
本層經過IP
尋址來創建兩個節點之間的鏈接,爲源端的運輸層送來的分組,選擇合適的路由和交換節點,正確無誤地按照地址傳送給目的端的運輸層。就是一般說的IP
層。這一層就是咱們常常說的IP
協議層。IP
協議是Internet
的基礎。編碼
或許咱們能夠這樣理解,網絡層規定了數據包的傳輸路線,而傳輸層則規定了數據包的傳輸方式。加密
將比特組合成字節,再將字節組合成幀,使用鏈路層地址 (以太網使用MAC地址)來訪問介質,並進行差錯檢測。
網絡層與數據鏈路層的對比,經過上面的描述,咱們或許能夠這樣理解,網絡層是規劃了數據包的傳輸路線,而數據鏈路層就是傳輸路線。不過,在數據鏈路層上還增長了差錯控制的功能。
實際最終信號的傳輸是經過物理層實現的。經過物理介質傳輸比特流。規定了電平、速度和電纜針腳。經常使用設備有(各類物理設備)集線器、中繼器、調制解調器、網線、雙絞線、同軸電纜。這些都是物理層的傳輸介質。
對等通訊,爲了使數據分組從源傳送到目的地,源端OSI模型的每一層都必須與目的端的對等層進行通訊,這種通訊方式稱爲對等層通訊。在每一層通訊過程當中,使用本層本身協議進行通訊。
TCP/IP
五層協議和OSI
的七層協議對應關係以下。
TCP/IP
模型比
OSI
模型更加簡潔,它把
應用層/表示層/會話層
所有整合爲了
應用層
。
在每一層都工做着不一樣的設備,好比咱們經常使用的交換機就工做在數據鏈路層的,通常的路由器是工做在網絡層的。
網絡層:解決跨網絡的主機通訊問題。
數據鏈路層:解決相鄰主機通訊問題。
在每一層實現的協議也各不一樣,即每一層的服務也不一樣.下圖列出了每層主要的協議。