女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

淺談一下TCP與UDP的區別與應用

嵌入式情報局 ? 來源:最后一個bug ? 2023-02-06 14:55 ? 次閱讀

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

但隨著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的特點和具體項目綜合考慮。







審核編輯:劉清

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

    關注

    6061

    文章

    44913

    瀏覽量

    646557
  • CAN通信
    +關注

    關注

    5

    文章

    97

    瀏覽量

    18302
  • RS485
    +關注

    關注

    39

    文章

    1220

    瀏覽量

    83599
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1397

    瀏覽量

    80341
  • UDP
    UDP
    +關注

    關注

    0

    文章

    330

    瀏覽量

    34463

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    簡單總結一下TCPUDP的原理以及區別

    以人與人之間的通信為例:UDP協議就相當于是寫信給對方,寄出去信件之后不能知道對方是否收到信件,信件內容是否完整,也不能得到及時反饋,而TCP協議就像是打電話通信,在這系列流程都能得到及時反饋,并能確保對方及時接收到。
    的頭像 發表于 07-25 10:12 ?1751次閱讀
    簡單總結<b class='flag-5'>一下</b><b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>的原理以及<b class='flag-5'>區別</b>

    TCP協議和UDP協議的區別有哪些

    計算機網絡簡答題1、TCP 協議和 UDP 協議的區別有哪些?(1)TCP 屬于面向連接的協議,UDP 屬于面向無連接的協議 ;(2)
    發表于 08-06 08:43

    TCPUDP區別分析

      傳輸層協議主要有TCPUDP。UDP提供無連接的通信,不能保證數據包被發送到目標地址,典型的即時傳輸少量數據的應用程序通常使用UDPTCP
    發表于 09-18 10:29 ?2次下載

    udptcp區別在哪里

    主要介紹udptcp區別在哪里,以及TCP協議和UDP協議為什么會共存?通常我們在說到網絡編程時默認是指
    發表于 12-08 14:08 ?8747次閱讀

    TCPUDP的原理以及區別

    最近重新認知了一下TCPUDP的原理以及區別,做個簡單的總結。
    發表于 08-08 14:34 ?1588次閱讀

    TCPUDP協議的區別

    最近重新認知了一下TCPUDP的原理以及區別,做個簡單的總結。
    發表于 11-03 10:25 ?1012次閱讀

    TCPUDP的作用及區別

      首先,tcpudp都是工作在傳輸層,用于程序之間傳輸數據的。數據般包含:文件類型,視頻類型,jpg圖片等。
    的頭像 發表于 11-14 10:49 ?3738次閱讀

    UDPTCP區別

    在上則文章中,對 TCP 的**三次握手建立連接**和**四次揮手釋放連接**進行了詳細地闡述,本節教程針對于 TCP 的其他內容進行講解,首先是同處于傳輸層協議的`UDP`協議,這
    的頭像 發表于 01-20 17:05 ?1980次閱讀
    <b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b>的<b class='flag-5'>區別</b>

    UDP定比TCP更快嗎?什么情況UDP會更慢?

    當談到網絡傳輸時,大多數人可能認為TCP是最好的選擇。因為TCP種可靠的協議,它可以確保數據的可靠性和完整性。但是,當考慮到UDP時,
    的頭像 發表于 04-03 09:38 ?1878次閱讀
    <b class='flag-5'>UDP</b><b class='flag-5'>一</b>定比<b class='flag-5'>TCP</b>更快嗎?什么情況<b class='flag-5'>下</b>用<b class='flag-5'>UDP</b>會更慢?

    UDP能否像TCP樣實現可靠傳輸?

    連接的協議,基于字節流的傳輸方式。它通過確認和重傳等機制來保證數據的完整性和順序性,實現數據包的可靠傳輸。UDPTCP的主要區別但在某些運用場景,使用
    的頭像 發表于 06-08 14:50 ?1089次閱讀
    <b class='flag-5'>UDP</b>能否像<b class='flag-5'>TCP</b><b class='flag-5'>一</b>樣實現可靠傳輸?

    udp是什么協議 TCPUDP區別

    TCP協議提供可靠的數據傳輸,UDP協議提供盡量高效的數據傳輸。TCP協議通過使用序列號、確認應答等機制,保證數據傳輸的可靠性,而UDP協議不提供可靠性保證,它只是簡單地把應用程序傳給
    的頭像 發表于 06-26 17:47 ?1.2w次閱讀

    TCPUDP區別

    1.TCPUDP區別 TCP是面向連接的,UDP是面向無連接的; TCP只能
    的頭像 發表于 11-09 09:35 ?6970次閱讀
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>的<b class='flag-5'>區別</b>

    TCPUDP的基本區別

    TCPUDP基本區別 基于連接與無連接 TCP要求系統資源較多,UDP較少; UDP程序結構較
    的頭像 發表于 11-13 15:27 ?5033次閱讀
    <b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>的基本<b class='flag-5'>區別</b>

    UDPTCP的主要區別 UDP能否像TCP樣實現可靠傳輸?

    UDPTCP的主要區別 UDP能否像TCP樣實現可靠傳輸?
    的頭像 發表于 01-22 16:10 ?1081次閱讀

    udp是什么意思 簡述TCPUDP區別和聯系

    中的兩個基本協議。然而,TCPUDP之間存在些重要的區別和聯系。 首先,TCP種面向連接
    的頭像 發表于 02-02 16:33 ?1730次閱讀