亚洲三级在线播放_国产精品亚洲二区在线_精品国产电影久久久久_免费popnhub国产在线视频 - 美女被艹网站

金財晚報

金財晚報

靈魂拷問:TCPUDP徹底搞懂了嗎

來源:IT之家 作者:蘭心雪 發(fā)布時間:2023-06-18 11:53   閱讀量:6085   

01、TCP 與 UDP 的區(qū)別

這兩種協(xié)議有什么區(qū)別呢?他們又是如何工作的?跟著文檔君往下看~

  • TCP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。可靠性,是 TCP 的最大特點,主要體現(xiàn)在:數(shù)據(jù)無丟失、無錯誤、無失序、無重復(fù)到達(dá)。就如同上圖,TCP 能將“孩子”(數(shù)據(jù)包)十分安全地傳送給接收者。

  • UDP是一種無連接、不可靠、快速傳輸?shù)膫鬏攲油ㄐ艆f(xié)議。快速傳輸,是 UDP 的最大特點,主要體現(xiàn)在:數(shù)據(jù)發(fā)送前,不需要提前建立連接,能更高效地傳輸數(shù)據(jù),但可靠性無法保證。就如同上圖,UDP 只負(fù)責(zé)把“孩子”(數(shù)據(jù)包)送出去,不管接收者有無收到。

直觀感受了 TCP 協(xié)議與 UDP 協(xié)議的區(qū)別后,咱們來看看 TCP 協(xié)議是如何工作的?

02、TCP 是如何工作的?

TCP 通信的連接管理機制 總結(jié)為:三次握手建立連接,四次揮手?jǐn)嚅_連接。

lt;三次握手建立連接gt;

TCP 是面向連接的協(xié)議,所以每次發(fā)出的請求都需要對方進行確認(rèn)。TCP 客戶端與 TCP 服務(wù)器在通信之前需要完成三次握手才能建立連接。

第一次握手

目的:這是一個請求建立連接的數(shù)據(jù)包,客戶端先向服務(wù)器發(fā)送一個同步數(shù)據(jù)包。

數(shù)據(jù)包的 TCP 首部內(nèi)容:

  • 同步 SYN=1

  • 序號 seq=x

第二次握手

目的:服務(wù)器收到客戶端發(fā)送的第一個數(shù)據(jù)包后,判斷出為主動建立連接的數(shù)據(jù)包。若服務(wù)器同意連接,則服務(wù)器發(fā)送一個數(shù)據(jù)包進行回應(yīng)。

數(shù)據(jù)包的 TCP 首部內(nèi)容:

  • 同步 SYN=1

  • 確認(rèn)標(biāo)記 ACK=1

  • 序號 seq=y

  • 確認(rèn)號 ack=x+1

第三次握手

目的:客戶端收到服務(wù)器的確認(rèn)之后,再給服務(wù)器發(fā)送一個數(shù)據(jù)包。

數(shù)據(jù)包的 TCP 首部內(nèi)容:

  • 同步 SYN=1

  • 確認(rèn)標(biāo)記 ACK=1

  • 序號 seq=x+1

  • 確認(rèn)號 ack=y+1

Tips

在客戶端與服務(wù)器端傳輸?shù)?TCP 數(shù)據(jù)中,雙方的序號 seq 和確認(rèn)號 ack 的值,都是在彼此 seq 和 ack 值的基礎(chǔ)上進行計算的,這樣做保證了 TCP 數(shù)據(jù)傳輸?shù)倪B貫性。一旦出現(xiàn)某一方發(fā)出的 TCP 數(shù)據(jù)丟失,便無法繼續(xù) "握手",以此確保了 "三次握手" 的順利完成。

lt;四次揮手?jǐn)嚅_連接gt;

聚散終有時,當(dāng)數(shù)據(jù)傳輸完成后,TCP 客戶端與 TCP 服務(wù)器需要通過四次會話斷開連接,這個過程我們稱之為四次揮手。

第一次揮手

目的:客戶端向服務(wù)器發(fā)送連接釋放的請求數(shù)據(jù)包,并停止發(fā)送數(shù)據(jù)。

在連接釋放數(shù)據(jù)包的 TCP 首部中:

  • 終止 FIN=1

  • 序號 seq=x

第二次揮手

目的:服務(wù)器在收到連接釋放的報文之后,給客戶端發(fā)送確認(rèn)報文。因此,客戶端到服務(wù)器方向上的連接釋放,TCP 連接此時處于半關(guān)閉狀態(tài)。半閉因為客戶端已無法發(fā)送數(shù)據(jù)給服務(wù)器,半開因為服務(wù)器仍可以發(fā)送數(shù)據(jù)給客戶端并被其接收。

在服務(wù)器發(fā)送給客戶端確認(rèn)報文的 TCP 首部中:

  • 確認(rèn)標(biāo)記 ACK=1

  • 確認(rèn)號 ack=x+1

  • 序號 seq=y

第三次揮手

目的:若服務(wù)器已停止向客戶端發(fā)送的數(shù)據(jù),則釋放連接,并向客戶端發(fā)送確認(rèn)報文。

在確認(rèn)報文的 TCP 首部中:

  • 終止 FIN=1

  • 確認(rèn)標(biāo)記 ACK=1

  • 確認(rèn)號 ack=x+1

  • 序號 seq=z

第四次揮手

目的:客戶端收到服務(wù)器的連接釋放報文段后,向服務(wù)器發(fā)出確認(rèn)報文。

在確認(rèn)報文的 TCP 首部中:

  • 終止 FIN = 1

  • 確認(rèn)標(biāo)記 ACK=1

  • 確認(rèn)號 ack=z+1

  • 序列號 seq=x+1

了解完 TCP 后,再來了解一下 UDP 是如何工作的~

03、UDP 是如何工作的?

UDP 協(xié)議是面向無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接,發(fā)送數(shù)據(jù)就是簡單的把數(shù)據(jù)包封裝一下,然后從網(wǎng)卡發(fā)出去,數(shù)據(jù)包之間并沒有狀態(tài)上的聯(lián)系。UDP 協(xié)議基本上是 IP 協(xié)議與上層協(xié)議的接口,UDP 協(xié)議使用 IP 層提供的服務(wù)將應(yīng)用層得到的數(shù)據(jù)從一臺主機的某個應(yīng)用進程傳遞到另一臺主機的某個應(yīng)用進程。

舉個栗子~

當(dāng)傳輸層從 IP 層收到 UDP 數(shù)據(jù)報文時,根據(jù) UDP 數(shù)據(jù)報文首部中的目的端口,把 UDP 數(shù)據(jù)報文通過相應(yīng)的端口傳遞給應(yīng)用進程,如下圖所示。

如上圖中應(yīng)用進程 4 與端口 2,如果接收方 UDP 發(fā)現(xiàn)收到的報文中的目的端口號不正確 ,則丟棄該報文,并由 ICMP 發(fā)送“端口不可達(dá) " 差錯報文給發(fā)送方。

Tips

ICMP是 TCP / IP 協(xié)議簇的一個子協(xié)議,用于在 IP 主機、路由器之間傳遞控制消息??刂葡⑹侵妇W(wǎng)絡(luò)通不通、主機是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。

04、總結(jié)一下

數(shù)據(jù)傳輸看似簡單,其實非常智慧~

TCP 和 UDP 服務(wù)的是程序,但程序和人是一樣的,可以你來我往進行交流,也可以一股腦的傾訴。TCP 就是彼此之間坦誠交流。消息有沒有收到,收到的信息是否一致,都可以有及時的反饋。

優(yōu)點:可靠。

缺點:傳輸速率慢。

適用場景:通信軟件的賬戶登錄、支付等相關(guān)功能,采用可靠的 TCP。

UDP 就是傾訴,我不管你有沒有聽進去,不管你有無反饋,我就要不停地說。

優(yōu)點:傳輸速率快。

缺點:不可靠。

TCP 和 UDP 各有優(yōu)缺點,就看你實際需求啦~

更多 TCP 干貨,請戳三次握手,四次揮手,原來 TCP 這么有禮貌!

05、小問答

如何讓 UDP 由不可靠傳輸轉(zhuǎn)為可靠傳輸?

TCP 為什么是三次握手,而不是兩次或者四次?

為什么是四次揮手而不是三次?

鄭重聲明:此文內(nèi)容為本網(wǎng)站轉(zhuǎn)載企業(yè)宣傳資訊,目的在于傳播更多信息,與本站立場無關(guān)。僅供讀者參考,并請自行核實相關(guān)內(nèi)容。

mangren

財經(jīng)視界

財經(jīng)圖文

熱門推薦

金財晚報僅作為用戶獲取信息之目的,并不構(gòu)成投資建議。市場有風(fēng)險 投資需謹(jǐn)慎。

網(wǎng)站地圖

Copyright 2018- 金財晚報 All Rights Reserved 聯(lián)系我們: 備案號:蜀ICP備13010463號