2.TCP/IP協議的一些基礎知識

TCP/IP的具體含義

TCP/IP實際上我們所說的是指TCP/IP協議羣
在這裏插入圖片描述

互聯網基礎知識

互聯網一次原指網際網,意思連接一個又一個網絡。

TCP/IP協議分層模型

  1. 物理層(硬件):負責數據傳輸的硬件
  2. 網卡層
  3. 互聯網層
  4. 傳輸層
  5. 應用層

IP:
IP是跨越網絡傳送數據包,使整個互聯網都能收到數據的協議。IP協議使數據能夠發送到地球的另一端,這期間它使用IP地址作爲主機的標識。

ICMP:
IP數據包在發送途中一旦發生異常導致無法到達對端目標地址時,需要給發送端發送一個發生異常的通知。ICMP就是爲這一功能而制定的。它有時也被用來診斷網絡的健康狀況。

ARP:
從分組數據包的IP地址中解析出物理地址的一種協議。

TCP:
TCP是一種面向有連接的傳輸層協議。它可以保證兩端通信主機之間的通信可達。TCP能夠正確處理在傳輸過程中丟包,傳輸順序亂掉等異常情況。此外TCP還能夠有效利用帶寬,緩解網絡擁堵。

UDP:
UDP有別於TCP,它是一種面向無連接的傳輸協議,UDP不會關注對端是否真的收到了傳送過去的數據,如果想知道,則需要在應用程序中實現。

TCP/IP分層模型與通信示例

包:全能性術語。
幀:表示數據鏈路層中包的單位。
數據包:IP/TCP等網絡層以上的分層中包的單位。
段:TCP數據流中的信息。
消息:應用協議中數據的單位。

包首部就像是協議的臉

數據包由兩個部分組成:
1.協議所用到的首部
2.上層傳過來的數據

發送數據包過程:

假設A給B發送電子郵件,內容爲“早上好”。
1.應用程序處理:應用在發送郵件的那一刻建立TCP連接,從而利用這個TCP連接發送數據。

2.TCP模塊的處理:TCP根據應用的提示,負責建立連接,發送數據以及斷開連接,爲了實現TCP的這一功能,需要在應用層數據的前端附加一個TCP首部。TCP首部包括源端口號和目標端口號(用以識別發送主機跟接受主機上的應用),序號(用以發送的包中哪部分是數據)以及校驗和(用以判斷數據是否被破壞)。隨後將附加了TCP首部的包再發給IP。

3.IP模塊的處理:IP將TCP傳過來的數據的前部加上自己的IP首部。IP首部中包含接受端的IP地址以及發送端IP地址,緊跟着IP首部的還有用來判斷其後面的數據是TCP還是UDP。
如果尚不知道接收端的MAC地址,可利用ARP查找,只要知道了對端的MAC地址,就可以將MAC地址和IP地址交給以太網的驅動程序,實現數據傳輸。

4.網絡接口(以太網驅動)的處理:從IP傳過來的IP包,對於以太網驅動來說不過就是數據,給這個數據附加上以太網首部並進行發送處理。以太網首部中包含接受端的MAC,發送端MAC地址以及標誌以太網類型的以太網數據的協議。根據上述信息產生的以太網數據包將通過物理層傳輸到接收端。

在這裏插入圖片描述

接收數據包的過程

包的接受過程是發送過程的逆序處理
5.網絡接口(以太網驅動)的處理:主機收到以太網包以後,首先從以太網的包首部找到MAC地址判斷是否爲發給自己的包。如果不是則丟棄數據。
若果是則判斷以太網協議所傳送過來的數據類型,IP則傳到IP子程序,ARP則交給ARP處理。如果是無法識別的協議類型,則丟棄數據。

6.IP模塊的處理:IP收到數據包後做出同樣的操作,判斷上一層的協議,是TCP還是UDP。

7.TCP模塊的處理:在TCP模塊中,首先會計算一下校驗和,判斷數據是否被破壞;然後檢查是否按照序號接收數據,最後檢查端口號,確定具體的應用程序。

8.應用程序的處理:順利接收郵件“早上好”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章