1、 TCP(Transmission Control Protocol 傳輸控制協議):是一種面向鏈接的、可靠的、基於字節流的傳輸層通訊協議,使用三次握手協議創建鏈接、四次揮手斷開鏈接。面向鏈接意味着兩個使用TCP的應用(一般是一個客戶端和一個服務器)彼此在交換數據包以前必須先創建一個TCP鏈接。在一個TCP鏈接中,僅有兩方進行通訊,廣播和多播不能使用TCP。TCP的做用是保證數據通訊的可靠性和完整性,防止丟包。TCP把鏈接做爲最基本的對象,每一條TCP鏈接都有兩個端口,咱們把這兩個端口叫做套接字(socket),端口號拼接到IP地址即構成套接字。html
UDP(User Datagram Protocol 用戶數據報協議):是OSI(Open System Interconnection 開放式系統互聯)參考模型中一種無鏈接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。UDP協議主要做用是將網絡數據流量壓縮成數據包的形式。 瀏覽器
2、TCP、UDP協議的區別:緩存
UDP在傳送數據以前不須要先創建鏈接,遠地主機在收到UDP報文後,不須要給出任何確認。雖然UDP不提供可靠交付,但在某些狀況下UDP確是一種最有效的工做方式(通常用於即時通訊),好比QQ語音,QQ視頻、直播等。服務器
TCP提供面向鏈接的服務。在傳送數據前必須先創建鏈接,數據傳送結束後要釋放鏈接。TCP不提供廣播或多播服務。因爲TCP要提供可靠的,面向鏈接的運輸服務(TCP的可靠體如今TCP在傳遞數據以前,會有三次握手來創建鏈接,並且在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,在數據傳完後還會斷開鏈接用來節約資源),這難以免增長了許多開銷,如確認、流量控制、計時器以及鏈接管理等。這不只使協議數據單元的首部增大不少,還要佔用許多處理及資源。TCP通常用於文件傳輸、發送和接收郵件、遠程登陸等場景。網絡
3、打開一個網頁,整個過程會使用哪些協議。socket
1.瀏覽器查找當前URL的DNS緩存記錄spa
2.DNS解析URL對應的IP視頻
3.根據IP創建TCP鏈接(三次握手)htm
4.HTTP發起請求對象
5.服務器處理請求,瀏覽器接收HTTP響應
6.返回的HTML響應,瀏覽器解析渲染頁面
7.關閉TCP鏈接(四次揮手)
整體來講分爲:1.DNS解析 2.TCP鏈接 3.發送HTTP請求 4.服務器處理請求並返回HTTP報文 5.瀏覽器解析渲染頁面 6.鏈接結束
詳細網址: https://www.cnblogs.com/daijinxue/p/6640153.html
DNS解析具體過程:
首先查詢瀏覽器的DNS緩存,若是有就返回對應IP; 若是沒有的話,查詢系統的緩存,這裏會使用底層的系統調用進行查詢; 若是找不到,查詢路由器的緩存; 若是找不到就查找ISP對應的緩存記錄; 若是找不到,就對根域名解析服務器發起查詢請求(通常本地域名服務器會緩存頂級域名服務器的地址,因此根域名解析服務器請求比較少),返回對應的IP地址。