91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCP協(xié)議和UDP協(xié)議對(duì)比 UDP協(xié)議的原理及應(yīng)用

454398 ? 來(lái)源:博客園 ? 作者:默語(yǔ) ? 2020-10-26 15:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

TCP協(xié)議在不可靠的網(wǎng)絡(luò)環(huán)境上提供了可靠的通信通道,隱藏了大量的底層細(xì)節(jié),使應(yīng)用程序更加簡(jiǎn)潔。但有些應(yīng)用并不需要這么高的可靠性,并不需要按序交付,而且TCP為了提高可靠性也增加了延時(shí),在某些對(duì)延時(shí)或抖動(dòng)要求很高的情景下并不適用。為此,UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)被提出。UDP雖然應(yīng)用較為廣泛,比如DNS查詢等,但一直不是重要的角色。自從WebRTC被提出以來(lái),它可以使瀏覽器在UDP的基礎(chǔ)上實(shí)現(xiàn)原生的語(yǔ)音和視頻實(shí)時(shí)通信及其他形式的P2P通信,UDP在這種境況下顯得更加重要。本文大致介紹UDP的原理及應(yīng)用,以求加深對(duì)其理解。

UDP

TCP是面向連接的,需要三次握手建立連接之后再傳輸數(shù)據(jù),而是UDP面向無(wú)連接的,它并不能保證信息交付,也不能保證按序交互,也不跟蹤連接狀態(tài),也不需要擁塞控制。

要了解UDP和為什么它通常被稱為“空協(xié)議”,我們首先需要了解一下互聯(lián)網(wǎng)協(xié)議(IP),它位于TCP和UDP協(xié)議層下面。IP層主要任務(wù)就是基于地址將數(shù)據(jù)報(bào)從源主機(jī)發(fā)送到目的主機(jī)。要做到這一點(diǎn),消息都封裝在一個(gè)IP包,標(biāo)識(shí)源和目的地址,以及一些其他路由參數(shù)。

我們?cè)俅螐?qiáng)調(diào)一下上面提到的數(shù)據(jù)報(bào)這個(gè)術(shù)語(yǔ)的含義:IP層提供了不可靠的數(shù)據(jù)傳輸,既沒(méi)有消息確認(rèn),也沒(méi)有丟失通知, IP層直接把這一層的不可靠性暴露給上層。如果一個(gè)數(shù)據(jù)報(bào)在傳輸過(guò)程中因?yàn)槟硞€(gè)路由節(jié)點(diǎn)擁塞,高負(fù)荷,或因其他原因丟失,那么由IP上層的協(xié)議來(lái)檢測(cè),恢復(fù),并重傳數(shù)據(jù) - 當(dāng)然這是在上層有這個(gè)需求的時(shí)候!IPv4的首部結(jié)構(gòu)如下:

UDP協(xié)議會(huì)用自己的分組結(jié)構(gòu)封裝用戶信息,其數(shù)據(jù)格式如下:

如上圖所示,我們?cè)赨DP數(shù)據(jù)報(bào)里增加了源端口和目標(biāo)端口,這樣就使得當(dāng)IP分組被送到接收端后,接收端就可以拆開(kāi)UDP分組,根據(jù)目標(biāo)端口找到對(duì)應(yīng)的應(yīng)用程序,然后再把數(shù)據(jù)傳遞給應(yīng)用程序。

從IP和UDP的數(shù)據(jù)格式可以看到,它們的首部都帶有校驗(yàn)和,都可以用來(lái)校驗(yàn)數(shù)據(jù),那么應(yīng)用程序即使忽略UDP的校驗(yàn)和也不影響數(shù)據(jù)完整性,校驗(yàn)和字段是可選的。這意味著UDP層所有的錯(cuò)誤檢測(cè)和糾錯(cuò),可以委托給上述應(yīng)用層校驗(yàn)。說(shuō)到底,UDP僅僅是在IP層上通過(guò)嵌入應(yīng)用程序的源端口和目標(biāo)端口,提供了一個(gè)“應(yīng)用程序多路復(fù)用”機(jī)制。由此可以得到UDP的特征如下:

不保證消息交付:不確認(rèn),不重傳,無(wú)超時(shí);

不保證交付順序:不設(shè)置包序號(hào),不重排,不發(fā)生隊(duì)首阻塞;

不跟蹤連接狀態(tài):不必建立連接或重啟狀態(tài)機(jī);

不需要擁塞控制:不內(nèi)置客戶端或網(wǎng)絡(luò)反饋機(jī)。

TCP是一個(gè)面向字節(jié)流的協(xié)議,能夠通過(guò)多個(gè)分組的形式發(fā)送應(yīng)用程序的消息數(shù)據(jù),包內(nèi)本身沒(méi)有任何明確的消息邊界。為了實(shí)現(xiàn)這一目標(biāo),連接兩端都分配了連接狀態(tài),并且數(shù)據(jù)包被排序,重發(fā)丟包,按順序發(fā)送。相反UDP數(shù)據(jù)報(bào)有明確的界限:每一個(gè)數(shù)據(jù)報(bào)都被打包到一個(gè)IP包中,應(yīng)用層讀到的每一個(gè)UDP包都是完整的信息 -數(shù)據(jù)報(bào)不能被分割。

關(guān)于數(shù)據(jù)報(bào)(Datagram)詳細(xì)定義如下:

數(shù)據(jù)報(bào):一個(gè)自包含的,獨(dú)立的數(shù)據(jù)實(shí)體,其承載了足夠的信息,使其可以從源路由到達(dá)目標(biāo)路由,而不依賴于在網(wǎng)絡(luò)節(jié)點(diǎn)前的數(shù)據(jù)交換和傳輸網(wǎng)絡(luò)沒(méi)有任何依賴。

數(shù)據(jù)報(bào)文(Datagram)和數(shù)據(jù)包(Packet)兩個(gè)術(shù)語(yǔ)往交替使用,但其實(shí)二者有一些細(xì)微差別。數(shù)據(jù)包(packet)一般用來(lái)描述任何格式的數(shù)據(jù)塊,而數(shù)據(jù)報(bào)(Datagram)往往被保留用來(lái)描述通過(guò)一個(gè)不可靠的服務(wù)傳輸?shù)臄?shù)據(jù)包(Packet) - 沒(méi)有傳輸保障,沒(méi)有失敗通知。所以UDP包一般或者說(shuō)更準(zhǔn)確的被稱為數(shù)據(jù)報(bào)(Datagram)。

UDP是一個(gè)簡(jiǎn)單的,無(wú)狀態(tài)的協(xié)議,適合于引導(dǎo)上層的其他應(yīng)用層協(xié)議 - 幾乎所有的協(xié)議決策都留給它上面的應(yīng)用層。然而,在你想實(shí)現(xiàn)自己的協(xié)議來(lái)取代TCP,你應(yīng)該仔細(xì)考慮有關(guān)的復(fù)雜性,如UDP與其它層的交互(比如NAT穿越),以及網(wǎng)絡(luò)協(xié)議一些最佳實(shí)踐。沒(méi)有仔細(xì)的規(guī)劃和設(shè)計(jì),設(shè)計(jì)一個(gè)新的協(xié)議不是一個(gè)好主意,最終也許實(shí)現(xiàn)成一個(gè)的簡(jiǎn)陋的TCP版本。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1425

    瀏覽量

    83516
  • DNS
    DNS
    +關(guān)注

    關(guān)注

    0

    文章

    229

    瀏覽量

    21154
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1043

    瀏覽量

    37086
  • 數(shù)據(jù)報(bào)

    關(guān)注

    0

    文章

    4

    瀏覽量

    7384
  • TCP協(xié)議
    +關(guān)注

    關(guān)注

    1

    文章

    101

    瀏覽量

    12771
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    TCP/IP(Socket)協(xié)議深度剖析

    TCP/IP協(xié)議作為互聯(lián)網(wǎng)通信的基礎(chǔ)架構(gòu),其核心機(jī)制Socket編程承載著全球數(shù)據(jù)交換的使命。本文將深入剖析這一協(xié)議的七層架構(gòu)、三次握手與四次揮手的精妙設(shè)計(jì)、流量控制與擁塞控制的動(dòng)態(tài)平衡,以及現(xiàn)代互聯(lián)網(wǎng)環(huán)境下面臨的挑戰(zhàn)與演進(jìn)方向
    的頭像 發(fā)表于 03-03 17:06 ?486次閱讀

    工業(yè)級(jí)4G路由器:TCP/IP與UDP協(xié)議,解鎖工業(yè)物聯(lián)網(wǎng)高效傳輸新范式

    /以太網(wǎng)能力,正重新定義工業(yè)數(shù)據(jù)傳輸?shù)倪吔?。其核心?yōu)勢(shì),在于對(duì)TCP/IP與UDP協(xié)議的深度適配,為不同場(chǎng)景提供精準(zhǔn)的通信解決方案。 ?? ?TCP/IP
    的頭像 發(fā)表于 01-19 18:25 ?191次閱讀
    工業(yè)級(jí)4G路由器:<b class='flag-5'>TCP</b>/IP與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>,解鎖工業(yè)物聯(lián)網(wǎng)高效傳輸新范式

    MQTT協(xié)議為什么成為物聯(lián)網(wǎng)協(xié)議

    不穩(wěn)定環(huán)境下的通信需求。以下是具體分析: 1. 輕量級(jí)設(shè)計(jì),適配資源受限設(shè)備 極簡(jiǎn)協(xié)議頭 :MQTT協(xié)議頭最小僅2字節(jié),遠(yuǎn)低于HTTP(通常數(shù)百字節(jié))或CoAP(雖輕量但基于UDP,可靠性較弱)。例如,傳輸一條包含少量數(shù)據(jù)的消息
    的頭像 發(fā)表于 12-10 09:15 ?447次閱讀

    TCPUDP的區(qū)別

    首先概括一下基本的區(qū)別: TCP是一個(gè)面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。 而UDP是一個(gè)面向無(wú)連接的傳輸層協(xié)議。(就這么簡(jiǎn)單,其它TC
    發(fā)表于 12-09 07:24

    請(qǐng)問(wèn)TCPUDP 可以使用同一個(gè)端口嗎?

    TCPUDP 可以使用同一個(gè)端口嗎?
    發(fā)表于 12-03 08:01

    為什么會(huì)有TCP/IP協(xié)議?

    見(jiàn)了面,完全不能交流信息。因而他們需要定義一些共通的東西來(lái)進(jìn)行交流,TCP/IP就是為此而生。TCP/IP不是一個(gè)協(xié)議,而是一個(gè)協(xié)議族的統(tǒng)稱。 里面包括了IP
    發(fā)表于 12-03 06:28

    SIP協(xié)議和私有協(xié)議廣播區(qū)別

    電子發(fā)燒友網(wǎng)站提供《SIP協(xié)議和私有協(xié)議廣播區(qū)別.docx》資料免費(fèi)下載
    發(fā)表于 11-06 16:31 ?1次下載

    以太網(wǎng)通訊在FPGA上的實(shí)現(xiàn)

    最底層,分為接收RX和發(fā)送TX兩個(gè)部分,主要用來(lái)實(shí)現(xiàn)上文所述的IP協(xié)議和MAC層協(xié)議。TX部分接收上層發(fā)來(lái)的UDPTCP報(bào)文,將其添加IP頭并封裝為一個(gè)完整的以太網(wǎng)幀后由RMII接口
    發(fā)表于 10-30 07:45

    溫度傳感器一般走哪些協(xié)議和接口

    溫度傳感器常用的通信協(xié)議和接口可根據(jù)應(yīng)用場(chǎng)景(如工業(yè)控制、智能家居、物聯(lián)網(wǎng)等)和傳輸需求(距離、速度、功耗等)分為有線和無(wú)線兩大類,具體協(xié)議和接口的選擇需結(jié)合傳感器類型、系統(tǒng)架構(gòu)及成本等因素綜合考量
    的頭像 發(fā)表于 09-23 17:22 ?1367次閱讀

    第五章 W55MH32 UDP示例

    本文介紹了在 W55MH32?芯片上實(shí)現(xiàn) UDP?通信及數(shù)據(jù)回環(huán)測(cè)試的方法。闡述了 UDP?協(xié)議的概念、特點(diǎn)、應(yīng)用場(chǎng)景、報(bào)文傳輸流程和報(bào)文結(jié)構(gòu),展示了實(shí)現(xiàn)過(guò)程,借助網(wǎng)絡(luò)調(diào)試工具完成測(cè)試。
    的頭像 發(fā)表于 07-24 09:13 ?1066次閱讀
    第五章 W55MH32 <b class='flag-5'>UDP</b>示例

    什么是Modbus TCP協(xié)議

    Modbus TCP是一種基于TCP/IP協(xié)議的Modbus通信協(xié)議,用于在客戶機(jī)和服務(wù)器之間進(jìn)行數(shù)據(jù)通信。它常用于工業(yè)自動(dòng)化控制、電力監(jiān)控與管理、溫濕度監(jiān)測(cè)等領(lǐng)域。Modbus
    的頭像 發(fā)表于 07-23 17:18 ?4287次閱讀
    什么是Modbus <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>

    常見(jiàn)的工業(yè)自動(dòng)化協(xié)議有哪些?

    ,允許使用TCP/IP和UDP/IP等協(xié)議通過(guò)以太網(wǎng)進(jìn)行通信。主要協(xié)議之一是現(xiàn)場(chǎng)總線協(xié)議,它替代了一系列普遍的
    的頭像 發(fā)表于 07-17 13:08 ?505次閱讀
    常見(jiàn)的工業(yè)自動(dòng)化<b class='flag-5'>協(xié)議</b>有哪些?

    RDMA簡(jiǎn)介3之四種子協(xié)議對(duì)比

    CPU卸載到RDMA網(wǎng)卡處理。僅需要使用普通以太網(wǎng)交換機(jī)和iWARP網(wǎng)卡即可實(shí)現(xiàn)路由。但在大規(guī)模部署時(shí),由于TCP/IP協(xié)議點(diǎn)對(duì)點(diǎn)連接的特性,將會(huì)占用大量的內(nèi)存資源,對(duì)系統(tǒng)規(guī)格的要求更高在對(duì)比這四種
    發(fā)表于 06-04 16:05

    DLT645協(xié)議和Modbus協(xié)議有什么區(qū)別

    DLT645協(xié)議和Modbus協(xié)議的區(qū)別主要體現(xiàn)在協(xié)議定位、數(shù)據(jù)幀結(jié)構(gòu)、操作類型與功能、適用場(chǎng)景等方面,以下為具體分析: 協(xié)議定位與適用領(lǐng)域 DLT645
    的頭像 發(fā)表于 05-15 17:47 ?1802次閱讀

    淺談HART協(xié)議和RS485協(xié)議的區(qū)別

    HART協(xié)議和RS485協(xié)議都是用于工業(yè)領(lǐng)域通信的協(xié)議,但它們有不同的應(yīng)用場(chǎng)景和特點(diǎn)。
    的頭像 發(fā)表于 03-27 10:07 ?2757次閱讀
    淺談HART<b class='flag-5'>協(xié)議和</b>RS485<b class='flag-5'>協(xié)議</b>的區(qū)別