在瀏覽器中輸入www.baidu.com後執行的全部過程

1、客戶端瀏覽器通過DNS解析到www.baidu.com的IP地址202.108.22.5,通過這個IP地址找到客戶端到服務器的路徑。客戶端瀏覽器發起一個HTTP會話到202.108.22.5,然後通過TCP進行封裝數據包,輸入到網絡層。

2、在客戶端的傳輸層,把HTTP會話請求分成報文段,添加源和目的端口,如服務器使用80端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如5000,與服務器進行交換,服務器把相應的請求返回給客戶端的5000端口。然後使用IP層的IP地址查找目的端。

3、客戶端的網絡層不用關心應用層或者傳輸層的東西,主要做的是通過查找路由表確定如何到達服務器,期間可能經過多個路由器,這些都是由路由器來完成的工作,我不作過多的描述,無非就是通過查找路由表決定通過那個路徑到達服務器。

4、客戶端的鏈路層,包通過鏈路層發送到路由器,通過鄰居協議查找給定IP地址的MAC地址,然後發送ARP請求查找目的地址,如果得到回應後就可以使用ARP的請求應答交換的IP數據包現在就可以傳輸了,然後發送IP數據包到達服務器的地址。

**事件順序**:

(1) 瀏覽器獲取輸入的域名www.baidu.com(2) 瀏覽器向DNS請求解析www.baidu.com的IP地址

(3) 域名系統DNS解析出百度服務器的IP地址

(4) 瀏覽器與該服務器建立TCP連接(默認端口號80)

(5) 瀏覽器發出HTTP請求,請求百度首頁

(6) 服務器通過HTTP響應把首頁文件發送給瀏覽器

(7) TCP連接釋放

(8) 瀏覽器將首頁文件進行解析,並將Web頁顯示給用戶。

**涉及到的協議**:

(1) 應用層:HTTP(www訪問協議),DNS(域名解析服務)

DNS解析域名為目的IP,通過IP找到服務器路徑,客戶端向服務器發起HTTP會話,然後通過運輸層TCP協議封裝數據包,在TCP協議基礎上進行傳輸

(2) 傳輸層:TCP(為HTTP提供可靠的數據傳輸),UDP(DNS使用UDP傳輸)

HTTP會話會被分成報文段,添加源、目的端口;TCP協議進行主要工作

(3)網絡層:IP(IP數據數據包傳輸和路由選擇),ICMP(提供網絡傳輸過程中的差錯檢測),ARP(將本機的默認網關IP地址映射成物理MAC地址)為數據包選擇路由,IP協議進行主要工作,相鄰結點的可靠傳輸,ARP協議將IP地址轉成MAC地址。

在瀏覽器中輸入www.baidu.com後執行的全部過程


分享到:


相關文章: