網絡通訊流程

1.本機獲取html

  • 本機的IP地址:192.168.1.100
  • 子網掩碼:255.255.255.0
  • 網關的IP地址:192.168.1.1
  • DNS的IP地址:8.8.8.8

2.打開瀏覽器,想要訪問Google,在地址欄輸入了網址:www.google.com。瀏覽器

3.dns協議(基於udp協議)服務器

4.HTTP部分的內容,相似於下面這樣:網絡

 

GET / HTTP/1.1
Host: www.google.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) ……
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: … …app

 

咱們假定這個部分的長度爲4960字節,它會被嵌在TCP數據包之中。google

 

5.TCP協議spa

 

TCP數據包須要設置端口,接收方(Google)的HTTP端口默認是80,發送方(本機)的端口是一個隨機生成的1024-65535之間的整數,假定爲51775。xml

TCP數據包的標頭長度爲20字節,加上嵌入HTTP的數據包,總長度變爲4980字節。htm

 

6.IP協議blog

 

而後,TCP數據包再嵌入IP數據包。IP數據包須要設置雙方的IP地址,這是已知的,發送方是192.168.1.100(本機),接收方是172.194.72.105(Google)。

IP數據包的標頭長度爲20字節,加上嵌入的TCP數據包,總長度變爲5000字節。

 

7.以太網協議

 

最後,IP數據包嵌入以太網數據包。以太網數據包須要設置雙方的MAC地址,發送方爲本機的網卡MAC地址,接收方爲網關192.168.1.1的MAC地址(經過ARP協議獲得)。

以太網數據包的數據部分,最大長度爲1500字節,而如今的IP數據包長度爲5000字節。所以,IP數據包必須分割成四個包。由於每一個包都有本身的IP標頭(20字節),因此四個包的IP數據包的長度分別爲1500、1500、1500、560。

 

8.服務器端響應

 

 

 

通過多個網關的轉發,Google的服務器172.194.72.105,收到了這四個以太網數據包。

 

根據IP標頭的序號,Google將四個包拼起來,取出完整的TCP數據包,而後讀出裏面的」HTTP請求」,接着作出」HTTP響應」,再用TCP協議發回來。

 

本機收到HTTP響應之後,就能夠將網頁顯示出來,完成一次網絡通訊。

相關文章
相關標籤/搜索