chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

嵌入式項(xiàng)目中,UDP與TCP該怎么選?

Q4MP_gh_c472c21 ? 來源:最后一個(gè)bug ? 作者:最后一個(gè)bug ? 2022-04-14 14:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單片機(jī)應(yīng)用程序開發(fā)中可能用得比較多有RS485,CAN通信等等相對(duì)簡(jiǎn)潔一點(diǎn)的總線,由于所選用的單片機(jī)性能和資源有限,以太網(wǎng)并沒有在單片機(jī)應(yīng)用中作為一種普遍存在的對(duì)外通信接口。

但隨著MCU工藝、性能的逐漸加強(qiáng),以及嵌入式Linux平臺(tái)的推行,以太網(wǎng)通信也慢慢開始成為開發(fā)者們所考慮使用的一種可靠通信方式。

經(jīng)常有一些朋友問到,現(xiàn)在用不到技術(shù)和知識(shí)點(diǎn)是不是可以不用學(xué)?

我只能回答:技術(shù)在不斷的革新,并且總是朝著更加便利和通用化方向發(fā)展,現(xiàn)在看似非常復(fù)雜的技術(shù),在以后的應(yīng)用上都會(huì)得以簡(jiǎn)化,但即使再簡(jiǎn)化也還是需要有必備的一些基礎(chǔ)和認(rèn)識(shí),所以總歸還是要學(xué)的,至于什么時(shí)候?qū)W就看自己的時(shí)間精力了,當(dāng)然越早學(xué)習(xí),就越多一種選擇。

那么,今天就淺談一下TCP與UDP的區(qū)別與應(yīng)用,并指引后續(xù)在系統(tǒng)通信設(shè)計(jì)上的設(shè)計(jì)考慮和選擇。

1

TCP VS UDP

要想在通信的兩者之間合理的選擇TCP還是UDP,首先需要理清楚兩者的特點(diǎn)與區(qū)別,下面簡(jiǎn)單梳理一下:

在學(xué)習(xí)這兩種協(xié)議的時(shí)候你一定看到過這樣中一句總結(jié)的話:“TCP是面向連接的可靠傳輸而UDP是無連接的不可靠傳輸?!?/p>

其實(shí)這句話已經(jīng)把這兩種協(xié)議大部分特點(diǎn)都囊括在內(nèi)了:

1、面向連接與無連接

TCP在傳輸數(shù)據(jù)之前需要經(jīng)過三次握手建立連接進(jìn)行相互確認(rèn),當(dāng)需要斷開連接的時(shí)候需要進(jìn)行四次揮手;而對(duì)于UDP就不需要這么繁瑣的連接建立過程,直接傳輸即可。

所以對(duì)于TCP僅僅只支持單播,只能點(diǎn)對(duì)點(diǎn)的在連接的兩個(gè)端點(diǎn)中數(shù)據(jù)傳輸數(shù)據(jù),不支持多播和廣播;而對(duì)于UDP而言支持一對(duì)多、多對(duì)一和多對(duì)多的傳輸,這一點(diǎn)在通信架構(gòu)設(shè)計(jì)中對(duì)這兩種協(xié)議的選擇非常重要,比如有些資源優(yōu)先的MCU對(duì)socket連接有限等等問題。

2、字節(jié)流與數(shù)據(jù)報(bào)

UDP也稱之為是用戶數(shù)據(jù)報(bào)協(xié)議,而TCP為傳輸控制協(xié)議,所以UDP是一種面向應(yīng)用報(bào)文的傳輸,有明顯的傳輸邊界,僅僅只是封包以后進(jìn)行處理,不會(huì)進(jìn)行合并和拆分,一次就傳輸一個(gè)報(bào)文。

但是TCP是一種面向字節(jié)流的通信協(xié)議,沒有明顯的邊界,其主要是保證數(shù)據(jù)正確且有序,TCP存在一個(gè)數(shù)據(jù)緩存區(qū),如果數(shù)據(jù)量較大,其會(huì)進(jìn)行分包發(fā)出,而當(dāng)數(shù)據(jù)較少也會(huì)等待數(shù)據(jù)達(dá)到合適的數(shù)量后進(jìn)行合并發(fā)送,所以會(huì)存在多個(gè)粘包的問題,這一點(diǎn)在設(shè)計(jì)中需要考慮。

3、可靠傳輸

TCP是一種可靠傳輸,確認(rèn)重傳、差錯(cuò)控制、流量控制和擁塞控制等等都是傳輸數(shù)據(jù)過程中實(shí)現(xiàn)的策略和算法,這就使得TCP能夠達(dá)到數(shù)據(jù)上無差錯(cuò)、不丟失、不重復(fù)、有序。

所以為了保證這些數(shù)據(jù)的可靠傳輸,TCP相比UDP的報(bào)文格式要復(fù)雜,且占用的資源也相對(duì)較多。

而UDP則不同,它僅僅只是一種最大努力交付的協(xié)議,其主要是利用IP層的無連接傳通信服務(wù),可靠性方面它是無法保障的,有點(diǎn)類似于串口通信,它不需要連接,只管傳輸。

如果你想讓數(shù)據(jù)可靠,那么用戶可以在應(yīng)用層自己來增加可靠性傳輸策略和機(jī)制來進(jìn)行實(shí)現(xiàn),所以Udp傳輸數(shù)據(jù)是可能會(huì)丟失、無序。

4、實(shí)時(shí)性

UDP由于沒有擁塞控制等等策略,協(xié)議上會(huì)輕量很多,其均以比較恒定的速度進(jìn)行傳輸,不會(huì)出現(xiàn)發(fā)送速率降低的問題,所以在網(wǎng)絡(luò)不好的情況下就丟包了。

而對(duì)于TCP一旦有數(shù)據(jù)包丟失,就會(huì)進(jìn)行重傳等等一系列機(jī)制,傳輸速度大大降低。

2

項(xiàng)目中該怎么選擇?

對(duì)于TCP和UDP的選擇有些朋友在開發(fā)的時(shí)候比較糾結(jié),因?yàn)橛袝r(shí)候采用UDP和用戶方面可靠的傳輸機(jī)制也能夠達(dá)到TCP類似的效果,比如許多支持可靠通信的UDP庫,所以具體怎么選擇還是要根據(jù)具體的應(yīng)用和設(shè)計(jì)。

比如對(duì)于很多直播、游戲等等通過自己加入一些重傳機(jī)制,可以最大可能的發(fā)揮UDP傳輸實(shí)時(shí)性的優(yōu)點(diǎn),使得呈現(xiàn)給用戶更加流暢的畫面體驗(yàn)。

在嵌入式、物聯(lián)網(wǎng)方面由于項(xiàng)目對(duì)實(shí)時(shí)性要求高,且資源有限,UDP相對(duì)比較輕量,也是較好的選擇。

但對(duì)于一些文字、文件的數(shù)據(jù)傳輸還是會(huì)優(yōu)先使用TCP,畢竟TCP這塊在保證數(shù)據(jù)的可靠性方面還是做得非常成熟,用戶程序這塊也可以減少一些可靠性處理。

所以最終得選擇,還是要結(jié)合TCP與UDP的特點(diǎn)和具體項(xiàng)目綜合考慮。

END

審核編輯 :李倩

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

    關(guān)注

    6076

    文章

    45495

    瀏覽量

    670422
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1425

    瀏覽量

    83518
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

    35421

原文標(biāo)題:嵌入式項(xiàng)目中,UDP與TCP該怎么選?

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    嵌入式單片機(jī)開發(fā)學(xué)習(xí)路徑

    是個(gè)人項(xiàng)目,也可以參與開源項(xiàng)目或公司項(xiàng)目。在實(shí)際項(xiàng)目中,你會(huì)遇到各種實(shí)際問題,這將大大提高你的解決問題的能力。 6. 持續(xù)學(xué)習(xí) 嵌入式
    發(fā)表于 02-09 15:42

    STM32開發(fā)中的五大嵌入式系統(tǒng)

    :FreeRTOS是開源的,可以免費(fèi)獲取并在商業(yè)項(xiàng)目中使用,降低了項(xiàng)目的開發(fā)成本。 2.小巧高效:FreeRTOS的內(nèi)核非常小巧,僅需幾KB的內(nèi)存空間,適用于資源受限的嵌入式系統(tǒng),并且具有高效的任務(wù)調(diào)度算法
    發(fā)表于 01-21 10:48

    工程項(xiàng)目常用的逆變電源廠家怎么?廣州郵科值得關(guān)注嗎?

    做工程項(xiàng)目的老師傅都明白,逆變電源不對(duì),后期運(yùn)維跑斷腿。無論是通信基站、太陽能電站,還是移動(dòng)醫(yī)療車、野外作業(yè),工程項(xiàng)目常用的逆變電源廠家怎么
    的頭像 發(fā)表于 01-09 10:34 ?259次閱讀
    工程<b class='flag-5'>項(xiàng)目</b>常用的逆變電源廠家<b class='flag-5'>該</b>怎么<b class='flag-5'>選</b>?廣州郵科值得關(guān)注嗎?

    什么是嵌入式操作系統(tǒng)?

    ):優(yōu)先 FreeRTOS/UCOS/RT-Thread,避免用 Linux(占用資源太多,適合高端嵌入式處理器如 STM32MP1)。 對(duì)于學(xué)習(xí) STM32+FreeRTOS 來說,RTOS 的核心
    發(fā)表于 12-09 10:33

    TCPUDP的區(qū)別

    首先概括一下基本的區(qū)別: TCP是一個(gè)面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。 而UDP是一個(gè)面向無連接的傳輸層協(xié)議。(就這么簡(jiǎn)單,其它TCP的特性也就沒有了)。 具體來分析,和 U
    發(fā)表于 12-09 07:24

    開源 | 60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目(開發(fā)板+教程+源碼)

    私信免費(fèi)領(lǐng)??!60余套綜合項(xiàng)目案例STM32單片機(jī)、嵌入式、物聯(lián)網(wǎng)、人工智能智能車/機(jī)器狗/小智AI/家居/農(nóng)業(yè)/安防等多領(lǐng)域項(xiàng)目文檔+項(xiàng)目源碼,全開源高校教學(xué)、學(xué)生畢設(shè)、創(chuàng)新競(jìng)賽、
    的頭像 發(fā)表于 12-04 11:42 ?657次閱讀
    開源 | 60余套STM32單片機(jī)、<b class='flag-5'>嵌入式</b>Linux、物聯(lián)網(wǎng)、人工智能<b class='flag-5'>項(xiàng)目</b>(開發(fā)板+教程+源碼)

    嵌入式與FPGA的區(qū)別

    \"嵌入式開發(fā)門檻低、就業(yè)廣,適合轉(zhuǎn)行;FPGA技術(shù)深、薪資高,但要求學(xué)歷和數(shù)學(xué)功底。哪個(gè)?看你的基礎(chǔ)和職業(yè)目標(biāo)。\" ?我們先來明白下兩者區(qū)別在哪? ?1、嵌入式:分兩部分
    發(fā)表于 11-20 07:12

    嵌入式需要掌握哪些核心技能?

    嵌入式需要掌握哪些核心技能? 若想通過學(xué)習(xí)嵌入式技術(shù)提升就業(yè)競(jìng)爭(zhēng)力,需重點(diǎn)掌握C語言、嵌入式硬件架構(gòu)、RTOS/Linux開發(fā)、通信協(xié)議四大核心技能,并結(jié)合行業(yè)需求積累項(xiàng)目經(jīng)驗(yàn)。
    發(fā)表于 10-21 16:25

    嵌入式達(dá)到什么水平才能就業(yè)?

    (三)實(shí)戰(zhàn)經(jīng)驗(yàn)擁有2-3 個(gè)完整嵌入式項(xiàng)目經(jīng)驗(yàn):項(xiàng)目需包含需求分析、方案設(shè)計(jì)、代碼開發(fā)、測(cè)試優(yōu)化全流程,能清晰闡述項(xiàng)目難點(diǎn)與解決方案能獨(dú)立排查項(xiàng)
    發(fā)表于 09-15 10:20

    【「Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗(yàn)】+基礎(chǔ)概念學(xué)習(xí)理解

    。為了對(duì)珠峰更了解些,開始接觸 Linux 系統(tǒng)開發(fā),并逐漸認(rèn)識(shí)到 Yocto 項(xiàng)目在定制嵌入式 Linux 系統(tǒng)方面的重要性。所以很想拜讀下此書。 二、書籍內(nèi)容概述 基礎(chǔ)知識(shí) 書中首先回顧了 Linux
    發(fā)表于 08-04 22:29

    Linux嵌入式和單片機(jī)嵌入式的區(qū)別?

    :成本較低,適合預(yù)算有限的項(xiàng)目。 Linux嵌入式 :成本較高,適合對(duì)功能和性能有較高要求的項(xiàng)目。 8. 社區(qū)和支持 : 單片機(jī)嵌入式 :社區(qū)和支持相對(duì)較小,但也有一些專業(yè)的論壇
    發(fā)表于 06-20 09:46

    嵌入式AI技術(shù)漫談 如何組建一個(gè)AI項(xiàng)目開發(fā)小組

    我們來談一談如何組建一個(gè)AI項(xiàng)目開發(fā)小組: 為什么要為嵌入式AI項(xiàng)目 組建一個(gè)專門的開發(fā)小組 相對(duì)于以往成熟的項(xiàng)目開發(fā)體系,嵌入式AI
    的頭像 發(fā)表于 06-11 16:34 ?1404次閱讀

    【書籍評(píng)測(cè)活動(dòng)NO.61】Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)

    用的嵌入式 Linux 構(gòu)建工具之一是 Buildroot。盡管 Buildroot 能在較短時(shí)間內(nèi)提供簡(jiǎn)單的嵌入式系統(tǒng),但它的局限性在于對(duì)復(fù)雜項(xiàng)目和頻繁變化的軟硬件需求的支持不足。隨著嵌入式
    發(fā)表于 05-21 10:00

    嵌入式基礎(chǔ)構(gòu)架 from andrew@labs

    一個(gè)系列,介紹過去一年多我在不同項(xiàng)目中逐步搭建的嵌入式平臺(tái)。長(zhǎng)久以來,我一直在籌備多個(gè)大型嵌入式硬件項(xiàng)目:包含25 Gbps誤碼率測(cè)試儀、48+2端口1/10千兆以太網(wǎng)交換機(jī)和2 GH
    的頭像 發(fā)表于 05-19 11:22 ?937次閱讀

    嵌入式系統(tǒng)測(cè)試必備:9大理由解析報(bào)告與可追溯性的重要性(附工具推薦TESSY)

    嵌入式系統(tǒng)的軟件測(cè)試項(xiàng)目中,報(bào)告和可追溯性至關(guān)重要,原因有多個(gè)。它們是確保嵌入式系統(tǒng)可靠、合規(guī)且高質(zhì)量的基礎(chǔ)。報(bào)告和可追溯性不僅支持有效的項(xiàng)目管理,還促進(jìn)了維護(hù)和調(diào)試,并為審計(jì)及持續(xù)
    的頭像 發(fā)表于 03-13 10:47 ?886次閱讀
    <b class='flag-5'>嵌入式</b>系統(tǒng)測(cè)試必備:9大理由解析報(bào)告與可追溯性的重要性(附工具推薦TESSY)