公眾號搜索: 霍格沃茲的干貨都很硬核
服務與服務之間傳遞數據包,往往會因為不同的應用場景,使用不同的通訊協議進行傳遞。比如網站的訪問,常常會使用 HTTP 協議進行傳遞,文件傳輸使用 FTP,郵件傳遞使用 SMTP。上述的三種類型的協議都處于網絡模型中的應用層。除了應用層的常用協議之外,對于傳輸層的 TCP、UDP 協議,以及 架構風格、RPC 協議等等基礎網絡知識要有一定的了解和認知。
網絡協議介紹
在了解具體的協議之前,需要先了解 OSI 七層模型、TCP/IP 四層模型、五層體系結構這三種不同的網絡模型。
網絡協議模型對比圖:
TCP協議
TCP 協議是在傳輸層中,一種面向連接的、可靠的、基于字節流的傳輸層通信協議。TCP 協議的工作方式為在建立連接的時候需要進行“三次握手”,終止連接時需要進行“四次揮手”。“三次握手”和“四次揮手”是 TCP 協議的重要知識點,在后面的章節會通過實戰和理論結合具體介紹。
適用場景
TCP 協議的面向連接、錯誤重傳、擁塞控制等特性,適用于可靠性高的場景,比如涉及用戶信息的數據傳輸。
UDP協議
UDP 協議一旦把應用程序發給網絡層的數據發送出去軟件工程中常用的軟件開發模型,就不保留數據備份。它僅在 IP 數據包的頭部加入復用和數據校驗字段。所以 UDP 常常被認為是不可靠的數據包協議。
適用場景
UDP 協議的不需要提前建立連接、實現簡單的特性,非常適用于實時性高的場景軟件工程中常用的軟件開發模型,比如流媒體、在線游戲等。