成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

靈魂拷問:TCP&UDP徹底搞懂了嗎?

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
我們常用的網(wǎng)絡(luò)通信,比如瀏覽網(wǎng)頁,查看郵件,電話通信等,都是通過這兩種協(xié)議來進行數(shù)據(jù)傳輸?shù)摹?/div>

對于TCP協(xié)議和UDP協(xié)議,大家應(yīng)該都有所耳聞。TCP協(xié)議和UDP協(xié)議都工作在傳輸層,他們的目標(biāo)都是在應(yīng)用之間傳輸數(shù)據(jù)。我們常用的網(wǎng)絡(luò)通信,比如瀏覽網(wǎng)頁,查看郵件,電話通信等,都是通過這兩種協(xié)議來進行數(shù)據(jù)傳輸?shù)摹?/p>

圖片

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

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

TCP協(xié)議和UDP協(xié)議最核心的區(qū)別是什么?看看下邊圖片你就知道了。

圖片

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

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

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

02、TCP是如何工作的?

TCP通信的連接管理機制(可靠機制)總結(jié)為:三次握手建立連接,四次揮手斷開連接。

< 三次握手建立連接 >

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

圖片

第一次握手

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

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

  • 同步SYN=1(客戶端請求建立連接)
  • 序號seq=x(客戶端所傳送數(shù)據(jù)的第一個字節(jié)的序號)

第二次握手

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

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

  • 同步SYN=1(服務(wù)器建立連接)
  • 確認標(biāo)記ACK=1(服務(wù)器同意連接)
  • 序號seq=y(服務(wù)器所傳送數(shù)據(jù)的第一個字節(jié)的序號)
  • 確認號ack=x+1(已經(jīng)收到客戶端發(fā)送的x個字節(jié)數(shù)據(jù),并告訴客戶端下次應(yīng)從數(shù)據(jù)的第x+1個字節(jié)開始發(fā)送)

第三次握手

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

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

  • 同步SYN=1(雙方已同意建立連接)
  • 確認標(biāo)記ACK=1(收到服務(wù)器的確認數(shù)據(jù)包)
  • 序號seq=x+1(發(fā)出的數(shù)據(jù)包就是數(shù)據(jù)的第x+1個字節(jié))
  • 確認號ack=y+1(收到服務(wù)器發(fā)送y字節(jié)數(shù)據(jù),并告訴服務(wù)器下次應(yīng)從數(shù)據(jù)的第y+1個字節(jié)開始發(fā)送)

Tips

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

< 四次揮手斷開連接 >

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

圖片

第一次揮手

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

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

  • 終止FIN=1(客戶端要主動釋放客戶端和服務(wù)器的TCP連接)
  • 序號seq=x(x由客戶端指定。隨后等待服務(wù)器的確認)

第二次揮手

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

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

  • 確認標(biāo)記ACK=1(收到了客戶端發(fā)送的數(shù)據(jù)包,同意客戶端釋放連接)
  • 確認號ack=x+1(在收到客戶端報文的基礎(chǔ)上,將其序號seq值加1作為本段報文確認號ack的值)
  • 序號seq=y(y由服務(wù)器指定。隨后等待客戶端的確認)

第三次揮手

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

在確認報文的TCP首部中:

  • 終止FIN=1(服務(wù)器釋放服務(wù)器到客戶端的TCP連接,不再向客戶端發(fā)送數(shù)據(jù))
  • 確認標(biāo)記ACK=1(服務(wù)器對客戶端的數(shù)據(jù)傳送完畢)
  • 確認號ack=x+1(在收到客戶端報文的基礎(chǔ)上,將其序號seq值加1作為本段報文確認號ack的值)
  • 序號seq=z(z由服務(wù)器指定。隨后等待客戶端的確認)

第四次揮手

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

在確認報文的TCP首部中:

  • 終止FIN = 1(客戶端和服務(wù)器斷開連接)
  • 確認標(biāo)記ACK=1(收到服務(wù)器的確認報文,并同意服務(wù)器釋放連接)
  • 確認號ack=z+1(在收到服務(wù)端報文的基礎(chǔ)上,將其序號seq值加1作為本段報文確認號ack的值)
  • 序列號seq=x+1(在收到服務(wù)端報文的基礎(chǔ)上,將其確認號作為本段報文序列號的值)

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

03UDP是如何工作的?

UDP協(xié)議是面向無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接(無TCP協(xié)議復(fù)雜的三次握手,四次揮手的過程),發(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)收到的報文中的目的端口號不正確(即不存在對應(yīng)于端口號的應(yīng)用進程),則丟棄該報文,并由ICMP發(fā)送“端口不可達"差錯報文給發(fā)送方。

Tips

ICMP(Internet Control Message Protocol,Internet控制報文協(xié)議)是TCP/IP協(xié)議簇的一個子協(xié)議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網(wǎng)絡(luò)通不通、主機是否可達、路由是否可用等網(wǎng)絡(luò)本身的消息。

04總結(jié)一下

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

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

圖片

優(yōu)點:可靠。

缺點:傳輸速率慢。

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

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

圖片

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

缺點:不可靠。

適用場景:QQ、微信等即時通信軟件進行點對點通信,或者音視頻通話時,通常采用傳輸快速的UDP。

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

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

責(zé)任編輯:武曉燕 來源: 中興文檔
相關(guān)推薦

2022-08-26 01:10:32

TCPSYNLinux

2022-05-30 18:37:03

數(shù)據(jù)個人信息人工智能

2020-07-02 09:15:59

Netty內(nèi)存RPC

2024-08-12 15:23:43

LangChain

2025-06-17 08:35:00

2020-06-02 07:44:04

AQS JavaNode

2018-10-20 16:05:12

iOSAPP開發(fā)

2022-12-12 08:46:11

2020-05-22 08:13:45

敏捷開發(fā)OKR

2022-03-16 18:27:39

開發(fā)低代碼軟件開發(fā)

2021-10-26 00:07:35

TCP連接python

2019-11-19 10:32:55

Java語言程序員

2019-08-12 11:14:00

JVM垃圾對象

2019-08-28 08:57:05

2021-05-26 05:22:48

SQL 數(shù)據(jù)庫SELECT

2020-05-29 11:48:01

安全運維信息安全網(wǎng)絡(luò)安全

2024-10-16 07:58:48

2024-12-03 08:16:57

2021-03-12 09:24:58

Redis面試場景

2024-07-17 09:32:19

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产免费一区二区三区 | 中文字幕啪啪 | 三级av免费 | 亚洲免费福利视频 | 久久久久国产一区二区三区四区 | 瑟瑟免费视频 | 亚洲国产二区 | 91欧美激情一区二区三区成人 | 9porny九色视频自拍 | 日韩国产一区二区三区 | 午夜视频免费在线观看 | 在线视频a| 国产a级毛片 | 国产一区二区三区四区在线观看 | 中文字幕在线观看日韩 | 性生生活大片免费看视频 | 亚洲xx在线 | 亚洲一区久久 | 国产在线一区二区三区 | 久久精品视频在线观看 | 久久99网 | 久久中文字幕电影 | 欧美综合久久久 | 欧美一级片在线看 | 一区二区在线 | 老司机狠狠爱 | 午夜一级大片 | 一区二区免费看 | 国产精品精品久久久久久 | 精品欧美乱码久久久久久 | 国产精品久久久久久吹潮日韩动画 | 新疆少妇videos高潮 | 欧美a在线 | 久久成人午夜 | 欧美男人天堂 | 国产在线精品免费 | 欧美一区二区在线看 | 欧美日韩不卡 | 日本一卡精品视频免费 | 亚洲精品91 | 日韩欧美在线观看视频 |