1. 程式人生 > >各種協議(學習筆記)

各種協議(學習筆記)

TCP協議

TCP協議是一種面向連線的、可靠的位元組流通訊協議。

可靠性:

  • 資料校驗:TCP在傳輸過程中可以通過校驗和,確認和重傳機制保證可靠傳輸。
  • 資料順序性:TCP給資料分節進行排序,並使用累計確認保證資料的順序不變和非重複。
  • 流量與擁塞控制:TCP使用滑動視窗機制來實現流量控制,通過動態改變視窗的大小進行擁塞控制。

三次握手建立連線(客戶端和服務端總共傳送三個包)

  • 第一次握手:客戶端傳送包,指明客戶端準備連線伺服器的埠,已經初始序列號(隨機,保證安全,以防攻擊)
  • 第二次握手:伺服器發回確認包應答
  • 第三次握手:客戶端再次傳送確認包

四次揮手關閉連線

客戶端或伺服器均可發起揮手動作。

  • 第一次揮手:客戶端傳送包,表示自己已經沒有資料可以傳送了,但是仍然可以接受資料。
  • 第二次揮手:伺服器確認客戶端的包,傳送一個確認包,表明自己接受到了客戶端關閉連線的請求,但是還沒準備好關閉連線(理論上:有可能還有資料向客戶端傳送)
  • 第三次揮手:伺服器端準備好關閉連線時,向客戶端傳送結束連線請求
  • 第四次揮手:客戶端接受到來自伺服器的關閉請求,傳送一個確認包,等待可能出現的要求重傳包,伺服器端接受到這個確認包後,關閉連線,客戶端等待一段時間之後,沒有收到伺服器端的響應,認為伺服器端已經處於正常關閉連線,於是自己也關閉連線

UDP協議

  • 無連線的,送資料前不需要先建立連結;TCP是面向連線的
  • 不保證可靠交付;TCP提供可靠的服務,傳送的資料,無差錯,不丟失,不重複,且按序到達
  • 面向報文,並且網路出現擁塞不會使得傳送速率降低(會出現丟包,對實時的應用比如IP電話和視訊會議等);TCP面向位元組流
  • 支援1對1,1對多;TCP只能是1對1
  • 首部只有8位元組;TCP首部為20位元組
  •  

http協議

概念:超文字傳輸協議,一個客戶端和伺服器端請求和應答的標準(TCP),使瀏覽器更加高效,使網路傳輸減少。

https協議

概念:以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

作用:建立一個資訊保安通道,來確保陣列的傳輸,確保網站的真實性。

和http的區別:

  • Https協議需要ca證書,費用較高
  • http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議
  • 使用不同的連結方式,埠也不同,一般而言,http協議的埠為80,https的埠為443
  • http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全

工作原理:

  • 客戶使用https url訪問伺服器,web 伺服器建立ssl連結
  • web伺服器接收到客戶端的請求之後,會將網站的證書(證書中包含了公鑰),返回或者說傳輸給客戶端
  • 客戶端和web伺服器端開始協商SSL連結的安全等級,也就是加密等級
  • 客戶端瀏覽器通過雙方協商一致的安全等級,建立會話金鑰,然後通過網站的公鑰來加密會話金鑰,並傳送給網站
  • web伺服器通過自己的私鑰解密出會話金鑰
  • web伺服器通過會話金鑰加密與客戶端之間的通訊

優點:

  • 現行架構下最安全的解決方案,可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器
  • 比http協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性

缺點:

  • 握手階段比較費時,會使頁面載入時間延長50%,增加10%~20%的耗電
  • 快取不如http高效,會增加資料開銷
  • SSL證書需要錢
  • SSL證書需要繫結IP