在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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ā)中可能用得比較多有RS485CAN通信等等相對簡潔一點(diǎn)的總線,由于所選用的單片機(jī)性能和資源有限,以太網(wǎng)并沒有在單片機(jī)應(yīng)用中作為一種普遍存在的對外通信接口

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

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

我只能回答:技術(shù)在不斷的革新,并且總是朝著更加便利和通用化方向發(fā)展,現(xiàn)在看似非常復(fù)雜的技術(shù),在以后的應(yīng)用上都會(huì)得以簡化,但即使再簡化也還是需要有必備的一些基礎(chǔ)和認(rèn)識,所以總歸還是要學(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ū)別,下面簡單梳理一下:

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

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

1、面向連接與無連接

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

所以對于TCP僅僅只支持單播,只能點(diǎn)對點(diǎn)的在連接的兩個(gè)端點(diǎn)中數(shù)據(jù)傳輸數(shù)據(jù),不支持多播和廣播;而對于UDP而言支持一對多、多對一和多對多的傳輸,這一點(diǎn)在通信架構(gòu)設(shè)計(jì)中對這兩種協(xié)議的選擇非常重要,比如有些資源優(yōu)先的MCU對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ù)雜,且占用的資源也相對較多。

而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ò)不好的情況下就丟包了。

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

2

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

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

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

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

但對于一些文字、文件的數(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6043

    文章

    44622

    瀏覽量

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

    關(guān)注

    8

    文章

    1378

    瀏覽量

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

    關(guān)注

    0

    文章

    327

    瀏覽量

    34052

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    TCP協(xié)議與UDP協(xié)議的區(qū)別

    UDP(用戶數(shù)據(jù)報(bào)協(xié)議) : 無連接 :UDP不建立連接,數(shù)據(jù)可以直接發(fā)送,不需要任何握手過程。 不可靠性 :UDP不保證數(shù)據(jù)的可靠傳輸,數(shù)據(jù)包可能會(huì)丟失,不會(huì)重傳。 2. 數(shù)據(jù)傳輸 TC
    的頭像 發(fā)表于 01-22 09:44 ?126次閱讀

    Web端TCP/UDP測試工具!小白必學(xué)~

    Web端TCP/UDP測試工具,方便大家進(jìn)行各種基于TCP和TDP的模擬測試。測試工具不僅支持TCP
    的頭像 發(fā)表于 01-08 18:17 ?287次閱讀
    Web端<b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b>測試工具!小白必學(xué)~

    新手怎么學(xué)嵌入式?

    ,實(shí)現(xiàn)一些簡單的功能,如點(diǎn)亮一個(gè) LED 燈、讀取傳感器數(shù)據(jù)等,來加深對嵌入式技術(shù)的理解。你還可以參加一些線上或線下的嵌入式項(xiàng)目實(shí)踐活動(dòng),與其他愛好者一起學(xué)習(xí)和交流。 5. 學(xué)習(xí)嵌入式
    發(fā)表于 12-12 10:51

    有什么比較熱門的嵌入式項(xiàng)目

    大佬們想問一下可以做什么樣的嵌入式項(xiàng)目好找工作?工作1到2年左右
    發(fā)表于 11-08 09:57

    TCP&UDP調(diào)試工具

    TCP&UDP調(diào)試工具
    發(fā)表于 10-30 10:41 ?1次下載

    嵌入式學(xué)習(xí)建議

    的平衡,要在理解軟件工程基本原理基礎(chǔ)上理解硬件構(gòu)件與軟件構(gòu)件等基本概念。 以上建議,僅供初學(xué)者參考。當(dāng)然,以上只是基礎(chǔ)階段的學(xué)習(xí)建議。要成為良好的嵌入式系統(tǒng)設(shè)計(jì)師,還需要在實(shí)際項(xiàng)目中鍛煉,并不斷學(xué)習(xí)與積累經(jīng)驗(yàn)。
    發(fā)表于 10-22 11:41

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運(yùn)行的核心力量。那么,究竟什么是嵌入式嵌入式系統(tǒng),顧名思義,是將計(jì)算機(jī)的硬件和軟件嵌入到某種設(shè)備或系統(tǒng)中,以實(shí)現(xiàn)特定功能的計(jì)算
    的頭像 發(fā)表于 10-16 10:14 ?1606次閱讀

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統(tǒng)的核心組件,是一種用于控制和數(shù)據(jù)處理的計(jì)算機(jī)硬件,其設(shè)計(jì)旨在嵌入特定設(shè)備中執(zhí)行專門任務(wù)。嵌入式主板如同是設(shè)備的“大腦”,主要功能是根據(jù)需要管理和控制設(shè)備
    的頭像 發(fā)表于 09-30 10:05 ?1002次閱讀

    tcpudp的區(qū)別和聯(lián)系

    一、引言 在現(xiàn)代網(wǎng)絡(luò)通信中,數(shù)據(jù)傳輸是至關(guān)重要的。為了確保數(shù)據(jù)的可靠傳輸,網(wǎng)絡(luò)協(xié)議發(fā)揮著關(guān)鍵作用。傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)是兩種常用的網(wǎng)絡(luò)協(xié)議,它們在許多應(yīng)用場景中發(fā)
    的頭像 發(fā)表于 08-16 11:06 ?680次閱讀

    嵌入式QT常見開發(fā)方式有哪些?

    Unit): 對于資源極其有限的微控制器應(yīng)用場景,Qt提供了專門針對MCU的解決方案,允許在低功耗、小內(nèi)存的嵌入式系統(tǒng)上開發(fā)圖形化界面。 總之,嵌入式工程師可以根據(jù)項(xiàng)目的具體需求、性能要求、硬件限制以及團(tuán)隊(duì)技術(shù)背景等因素,靈
    發(fā)表于 08-12 10:05

    適合初學(xué)者的嵌入式項(xiàng)目有哪些?

    適合初學(xué)者的嵌入式項(xiàng)目有哪些? 嵌入式學(xué)習(xí)是一個(gè)實(shí)踐性很強(qiáng)的領(lǐng)域,通過實(shí)際項(xiàng)目可以幫助你鞏固理論知識并提升技能。以下是幾個(gè)適合初學(xué)者練手的嵌入式
    發(fā)表于 07-11 10:23

    如何提升嵌入式編程能力?

    和使用。 9. 網(wǎng)絡(luò)編程:嵌入式設(shè)備越來越多地連接到網(wǎng)絡(luò),因此學(xué)習(xí)TCP/IP、UDP、HTTP等網(wǎng)絡(luò)協(xié)議是必要的。 10. 關(guān)注安全性:了解嵌入式系統(tǒng)的安全問題,學(xué)習(xí)如何編寫安全的代
    發(fā)表于 06-21 10:01

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術(shù)集成到嵌入式系統(tǒng)中的一種解決方案。嵌入式系統(tǒng)是一種為特定應(yīng)用而設(shè)計(jì)的計(jì)算機(jī)系統(tǒng),它通常包括處理器、內(nèi)存、外設(shè)接口等組件,并且被嵌入到更大的設(shè)備或系統(tǒng)中,
    的頭像 發(fā)表于 03-15 14:29 ?1390次閱讀

    通信必備知識!TCPUDP協(xié)議介紹及使用

    TCPUDP是兩個(gè)最常用的通訊協(xié)議。TCP是面向連接的協(xié)議,需要在收發(fā)數(shù)據(jù)前與對方建立可靠的連接,建立連接的過程為3次握手,斷開連接的過程為4次揮手,確保數(shù)據(jù)傳輸?shù)目煽啃浴?b class='flag-5'>UDP是一
    的頭像 發(fā)表于 03-15 08:19 ?2029次閱讀
    通信必備知識!<b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>協(xié)議介紹及使用

    fpga是嵌入式

    FPGA(現(xiàn)場可編程門陣列)不是嵌入式系統(tǒng),但FPGA在嵌入式系統(tǒng)中有著重要的應(yīng)用。
    的頭像 發(fā)表于 03-14 17:19 ?2538次閱讀
    主站蜘蛛池模板: 午夜一级免费视频 | 国产又粗又大又爽又免费 | 午夜精品视频在线观看美女 | 亚洲欧美日韩综合一区 | h视频免费网站 | 黄网页在线观看 | aa1在线天堂 | 亚洲综合一区二区三区 | 91精品日本久久久久久牛牛 | 嫩草影院网站入口 | 日本亚洲一区二区 | 九月丁香婷婷 | 久优草| 澳门久久精品 | 老司机精品免费视频 | 日本黄视频在线观看 | www.夜色| 日本免费www | 美女视频黄视大全视频免费网址 | 欧美黄视频在线观看 | 特黄毛片 | 亚洲精品久久久久久婷婷 | 国产成人精品午夜二三区 | 亚洲欧美一区二区三区另类 | 在线色 | 丁香婷婷综合五月六月 | 思思99re66在线精品免费观看 | 亚洲天堂亚洲天堂 | 伊人精品视频在线 | 素股中文字幕 | 成年美女黄网站色大免费视频 | 91成人免费在线视频 | 美女扒开尿口给男人爽免费视频 | 国内精品免费视频精选在线观看 | a毛片基地免费全部香蕉 | 亚洲色图 欧美 | 黄色国产在线观看 | 欧美三级午夜伦理片 | 美女性视频网站 | www.天天射 | 欧美日韩视频综合一区无弹窗 |