各種協議(學習筆記)
阿新 • • 發佈:2018-12-13
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