ip協議實現的功能 TCP IP協議總結

2021-10-17 10:10:27 字數 3493 閱讀 9150

從字面意義上講,有人可能會認為 tcp/ip 是指 tcp 和 ip 兩種協議。實際生活當中有時也確實就是指這兩種協議。然而在很多情況下,它只是利用 ip 進行通訊時所必須用到的協議群的統稱。具體來說,ip 或 icmp、tcp 或 udp、telnet 或 ftp、以及 http 等都屬於 tcp/ip 協議。

​ 一圖看完本文

​ 計算機網路體系結構分層

​ 計算機網路體系結構分層

不難看出,tcp/ip 與 osi 在分層模組上稍有區別。osi 參考模型注重「通訊協議必要的功能是什麼」,而 tcp/ip 則更強調「在計算機上實現協議應該開發哪種程式」。

從字面意義上講,有人可能會認為 tcp/ip 是指 tcp 和 ip 兩種協議。實際生活當中有時也確實就是指這兩種協議。然而在很多情況下,它只是利用 ip 進行通訊時所必須用到的協議群的統稱。具體來說,ip 或 icmp、tcp 或 udp、telnet 或 ftp、以及 http 等都屬於 tcp/ip 協議。他們與 tcp 或 ip 的關係緊密,是網際網路必不可少的組成部分。tcp/ip 一詞泛指這些協議,因此,有時也稱 tcp/ip 為網際協議群。

網際網路進行通訊時,需要相應的網路協議,tcp/ip 原本就是為使用網際網路而開發制定的協議族。因此,網際網路的協議就是 tcp/ip,tcp/ip 就是網際網路的協議。

​ 網際協議群

包、幀、資料報、段、訊息

以上五個術語都用來表述資料的單位,大致區分如下:

每個分層中,都會對所傳送的資料附加乙個首部,在這個首部中包含了該層必要的資訊,如傳送的目標位址以及協議相關資訊。通常,為協議提供的資訊為包首部,所要傳送的內容為資料。在下一層的角度看,從上一層收到的包全部都被認為是本層的資料。

​ 資料報首部

網路中傳輸的資料報由兩部分組成:一部分是協議所要用到的首部,另一部分是上一層傳過來的資料。首部的結構由協議的具體規範詳細定義。在資料報的首部,明確標明了協議應該如何讀取資料。反過來說,看到首部,也就能夠了解該協議必要的資訊以及所要處理的資料。包首部就像協議的臉。

下圖以使用者 a 向使用者 b 傳送郵件為例子:

​ 資料處理流程

① 應用程式處理

首先應用程式會進行編碼處理,這些編碼相當於 osi 的表示層功能;

編碼轉化後,郵件不一定馬上被傳送出去,這種何時建立通訊連線何時傳送資料的管理功能,相當於 osi 的會話層功能。

② tcp 模組的處理

tcp 根據應用的指示,負責建立連線、傳送資料以及斷開連線。tcp 提供將應用層發來的資料順利傳送至對端的可靠傳輸。為了實現這一功能,需要在應用層資料的前端附加乙個 tcp 首部。

③ ip 模組的處理

ip 將 tcp 傳過來的 tcp 首部和 tcp 資料合起來當做自己的資料,並在 tcp 首部的前端加上自己的 ip 首部。ip 包生成後,參考路由控制表決定接受此 ip 包的路由或主機。

④ 網路介面(乙太網驅動)的處理

從 ip 傳過來的 ip 包對於乙太網來說就是資料。給這些資料附加上乙太網首部並進行傳送處理,生成的乙太網資料報將通過物理層傳輸給接收端。

⑤ 網路介面(乙太網驅動)的處理

主機收到乙太網包後,首先從乙太網包首部找到 mac 位址判斷是否為傳送給自己的包,若不是則丟棄資料。

如果是傳送給自己的包,則從乙太網包首部中的型別確定資料型別,再傳給相應的模組,如 ip、arp 等。這裡的例子則是 ip 。

⑥ ip 模組的處理

ip 模組接收到 資料後也做類似的處理。從包首部中判斷此 ip 位址是否與自己的 ip 位址匹配,如果匹配則根據首部的協議型別將資料傳送給對應的模組,如 tcp、udp。這裡的例子則是 tcp。

另外嗎,對於有路由器的情況,接收端位址往往不是自己的位址,此時,需要借助路由控制表,在調查應該送往的主機或路由器之後再進行**資料。

⑦ tcp 模組的處理

在 tcp 模組中,首先會計算一下校驗和,判斷資料是否被破壞。然後檢查是否在按照序號接收資料。***檢查埠號,確定具體的應用程式。資料被完整地接收以後,會傳給由埠號識別的應用程式。

⑧ 應用程式的處理

接收端應用程式會直接接收傳送端傳送的資料。通過解析資料,展示相應的內容。

tcp/ip 中有兩個具有代表性的傳輸層協議,分別是 tcp 和 udp。

資料鏈路和 ip 中的位址,分別指的是 mac 位址和 ip 位址。前者用來識別同一鏈路中不同的計算機,後者用來識別 tcp/ip 網路中互連的主機和路由器。在傳輸層也有這種類似於位址的概念,那就是埠號。埠號用來識別同一臺計算機中進行通訊的不同應用程式。因此,它也被稱為程式位址。

1.1 根據埠號識別應用

一台計算機上同時可以執行多個程式。傳輸層協議正是利用這些埠號識別本機中正在進行通訊的應用程式,並準確地將資料傳輸。

通過埠號識別應用

1.2 通過 ip 位址、埠號、協議號進行通訊識別

通過埠號、ip位址、協議號進行通訊識別

① 和② 的通訊是在兩台計算機上進行的。它們的目標埠號相同,都是80。這裡可以根據源埠號加以區分。

③ 和 ① 的目標埠號和源埠號完全相同,但它們各自的源 ip 位址不同。

此外,當 ip 位址和埠號全都一樣時,我們還可以通過協議號來區分(tcp 和 udp)。

1.3 埠號的確定

1.4 埠號與協議

2. udp

3. tcp

3.1 三次握手(重點)

下面來看看三次握手的流程圖:

三次握手

3.2 四次揮手(重點)

下面來看看四次揮手的流程圖:

四次揮手

TCP IP協議 IP協議

ip協議層 在傳輸層的下邊,鏈路層的上邊。ip層封裝後稱為資料報 傳輸層叫資料段,鏈路層叫資料幀。值得注意的是,不是所有的乙太網資料幀都是ip資料報,至少乙太網還要使用arp協議。不是所有的ip資料報都是udp或tcp資料,因為比如icmp igmp也用ip傳送資料 ip協議在網路中當然非常重要了,...

TCP IP協議體系結構 UDP協議 TCP協議

1.無連線。傳送資料之前不需要建立連線,傳送資料結束後也不需要釋放,因此減少了開銷和傳送資料之前的延遲。2.udps使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的連線狀態表 這裡有很多的引數 3.udp是面向報文的。傳送方的udp對應用程式交下來的報文,在新增首部後就向下交付ip層。...

TCP IP協議學習(2) IP協議 ARP協議

arp協議用來尋找目標主機的ethennet網絡卡和mac位址,ip用來承載要傳送的訊息。1.ip協議 ip協議是tcp ip協議的核心,所有的tcp,udp,imcp,igcp的資料都以ip資料格式傳輸。要注意的是ip協議沒有提供一種資料未傳達以後的處理機制,這被認為是上層協議 tcp或udp要做...