国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式項目中,UDP與TCP該怎么選?

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

掃碼添加小助手

加入工程師交流群

單片機應用程序開發中可能用得比較多有RS485CAN通信等等相對簡潔一點的總線,由于所選用的單片機性能和資源有限,以太網并沒有在單片機應用中作為一種普遍存在的對外通信接口

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

經常有一些朋友問到,現在用不到技術和知識點是不是可以不用學?

我只能回答:技術在不斷的革新,并且總是朝著更加便利和通用化方向發展,現在看似非常復雜的技術,在以后的應用上都會得以簡化,但即使再簡化也還是需要有必備的一些基礎和認識,所以總歸還是要學的,至于什么時候學就看自己的時間精力了,當然越早學習,就越多一種選擇。

那么,今天就淺談一下TCP與UDP的區別與應用,并指引后續在系統通信設計上的設計考慮和選擇。

1

TCP VS UDP

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

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

其實這句話已經把這兩種協議大部分特點都囊括在內了:

1、面向連接與無連接

TCP在傳輸數據之前需要經過三次握手建立連接進行相互確認,當需要斷開連接的時候需要進行四次揮手;而對于UDP就不需要這么繁瑣的連接建立過程,直接傳輸即可。

所以對于TCP僅僅只支持單播,只能點對點的在連接的兩個端點中數據傳輸數據,不支持多播和廣播;而對于UDP而言支持一對多、多對一和多對多的傳輸,這一點在通信架構設計中對這兩種協議的選擇非常重要,比如有些資源優先的MCU對socket連接有限等等問題。

2、字節流與數據報

UDP也稱之為是用戶數據報協議,而TCP為傳輸控制協議,所以UDP是一種面向應用報文的傳輸,有明顯的傳輸邊界,僅僅只是封包以后進行處理,不會進行合并和拆分,一次就傳輸一個報文。

但是TCP是一種面向字節流的通信協議,沒有明顯的邊界,其主要是保證數據正確且有序,TCP存在一個數據緩存區,如果數據量較大,其會進行分包發出,而當數據較少也會等待數據達到合適的數量后進行合并發送,所以會存在多個粘包的問題,這一點在設計中需要考慮。

3、可靠傳輸

TCP是一種可靠傳輸,確認重傳、差錯控制、流量控制和擁塞控制等等都是傳輸數據過程中實現的策略和算法,這就使得TCP能夠達到數據上無差錯、不丟失、不重復、有序。

所以為了保證這些數據的可靠傳輸,TCP相比UDP的報文格式要復雜,且占用的資源也相對較多。

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

如果你想讓數據可靠,那么用戶可以在應用層自己來增加可靠性傳輸策略和機制來進行實現,所以Udp傳輸數據是可能會丟失、無序。

4、實時性

UDP由于沒有擁塞控制等等策略,協議上會輕量很多,其均以比較恒定的速度進行傳輸,不會出現發送速率降低的問題,所以在網絡不好的情況下就丟包了。

而對于TCP一旦有數據包丟失,就會進行重傳等等一系列機制,傳輸速度大大降低。

2

項目中該怎么選擇?

對于TCP和UDP的選擇有些朋友在開發的時候比較糾結,因為有時候采用UDP和用戶方面可靠的傳輸機制也能夠達到TCP類似的效果,比如許多支持可靠通信的UDP庫,所以具體怎么選擇還是要根據具體的應用和設計。

比如對于很多直播、游戲等等通過自己加入一些重傳機制,可以最大可能的發揮UDP傳輸實時性的優點,使得呈現給用戶更加流暢的畫面體驗。

在嵌入式、物聯網方面由于項目對實時性要求高,且資源有限,UDP相對比較輕量,也是較好的選擇。

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

所以最終得選擇,還是要結合TCP與UDP的特點和具體項目綜合考慮。

END

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6076

    文章

    45500

    瀏覽量

    670714
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1425

    瀏覽量

    83547
  • UDP
    UDP
    +關注

    關注

    0

    文章

    334

    瀏覽量

    35424

原文標題:嵌入式項目中,UDP與TCP該怎么選?

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    嵌入式單片機開發學習路徑

    是個人項目,也可以參與開源項目或公司項目。在實際項目中,你會遇到各種實際問題,這將大大提高你的解決問題的能力。 6. 持續學習 嵌入式
    發表于 02-09 15:42

    STM32開發中的五大嵌入式系統

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

    工程項目常用的逆變電源廠家怎么?廣州郵科值得關注嗎?

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

    什么是嵌入式操作系統?

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

    TCPUDP的區別

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

    開源 | 60余套STM32單片機、嵌入式Linux、物聯網、人工智能項目(開發板+教程+源碼)

    私信免費領取!60余套綜合項目案例STM32單片機、嵌入式、物聯網、人工智能智能車/機器狗/小智AI/家居/農業/安防等多領域項目文檔+項目源碼,全開源高校教學、學生畢設、創新競賽、
    的頭像 發表于 12-04 11:42 ?675次閱讀
    開源 | 60余套STM32單片機、<b class='flag-5'>嵌入式</b>Linux、物聯網、人工智能<b class='flag-5'>項目</b>(開發板+教程+源碼)

    嵌入式與FPGA的區別

    \"嵌入式開發門檻低、就業廣,適合轉行;FPGA技術深、薪資高,但要求學歷和數學功底。哪個?看你的基礎和職業目標。\" ?我們先來明白下兩者區別在哪? ?1、嵌入式:分兩部分
    發表于 11-20 07:12

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

    嵌入式需要掌握哪些核心技能? 若想通過學習嵌入式技術提升就業競爭力,需重點掌握C語言、嵌入式硬件架構、RTOS/Linux開發、通信協議四大核心技能,并結合行業需求積累項目經驗。
    發表于 10-21 16:25

    嵌入式達到什么水平才能就業?

    (三)實戰經驗擁有2-3 個完整嵌入式項目經驗:項目需包含需求分析、方案設計、代碼開發、測試優化全流程,能清晰闡述項目難點與解決方案能獨立排查
    發表于 09-15 10:20

    【「Yocto項目實戰教程:高效定制嵌入式Linux系統」閱讀體驗】+基礎概念學習理解

    。為了對珠峰更了解些,開始接觸 Linux 系統開發,并逐漸認識到 Yocto 項目在定制嵌入式 Linux 系統方面的重要性。所以很想拜讀下此書。 二、書籍內容概述 基礎知識 書中首先回顧了 Linux
    發表于 08-04 22:29

    Linux嵌入式和單片機嵌入式的區別?

    :成本較低,適合預算有限的項目。 Linux嵌入式 :成本較高,適合對功能和性能有較高要求的項目。 8. 社區和支持 : 單片機嵌入式 :社區和支持相對較小,但也有一些專業的論壇
    發表于 06-20 09:46

    嵌入式AI技術漫談 如何組建一個AI項目開發小組

    我們來談一談如何組建一個AI項目開發小組: 為什么要為嵌入式AI項目 組建一個專門的開發小組 相對于以往成熟的項目開發體系,嵌入式AI
    的頭像 發表于 06-11 16:34 ?1413次閱讀

    【書籍評測活動NO.61】Yocto項目實戰教程:高效定制嵌入式Linux系統

    用的嵌入式 Linux 構建工具之一是 Buildroot。盡管 Buildroot 能在較短時間內提供簡單的嵌入式系統,但它的局限性在于對復雜項目和頻繁變化的軟硬件需求的支持不足。隨著嵌入式
    發表于 05-21 10:00

    嵌入式基礎構架 from andrew@labs

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

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

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