UDP的故事

UDP是一位頑皮的“朋友”,他說話時從來不問聽他說話的人是否聽到,UDP不管對方當(dāng)前在做什么事,是在吃飯還是喝水,是在唱歌還是跳舞,總之他想跟別人說話時就直接說,而且說的速度也不控制,一直到把想說的話說完為止,即使對方?jīng)]有聽到他的話也不在乎。

聽起來UDP真的很頑皮呢,看起來是個任性十足的朋友,個性極強(qiáng),UDP很瘦,身體由五個部分組成,不像TCP那樣有很多幫助控制說話穩(wěn)定性、可靠性以及速度的字段,一共十幾個之多。UDP的身體只有五部分,如下圖:


UDP組成
  1. source Port 發(fā)出聲音的人
  2. Destination Port 聽聲音的人
  3. Length 說話的長短
  4. Checksum 把聲音轉(zhuǎn)換成二進(jìn)制進(jìn)行和運(yùn)算,再取反,接收方收到數(shù)據(jù)以后,會按照和運(yùn)算的方法重新計算一遍,是否等于報文的checksum,不相等的話,說明數(shù)據(jù)有丟失。
  5. Data octets 一個字節(jié)的數(shù)據(jù),Octets是8位

UDP有哪些不同于TCP的技能

  1. 作用不同:
    TCP主要想保證可靠性并且傳輸數(shù)據(jù)
    UDP要輕裝上陣,只保證核心數(shù)據(jù)傳輸功能,不做其他工作

  2. 安全程度
    TCP 在保證數(shù)據(jù)不丟失的基礎(chǔ)上,傳輸數(shù)據(jù)
    UDP 只進(jìn)行最簡單的和校驗(yàn),沒有其他保證數(shù)據(jù)安全的措施

  3. 連接
    TCP 傳輸數(shù)據(jù)必須以建立連接為前提
    UDP 沒有建立連接的概念

  4. 傳輸速度
    TCP 有滑動窗口協(xié)商機(jī)制,用來控制傳輸速度
    UDP 協(xié)議簡單,封包小,沒有連接-握手、揮手,只專注數(shù)據(jù)發(fā)送

  5. 流控技術(shù)
    TCP 會根據(jù)緩沖區(qū)和接收方的要求控制同一時間發(fā)送數(shù)據(jù)的大小
    UDP 沒有相關(guān)設(shè)置

  6. 場景差異

每個協(xié)議都有自己適合的場景,TCP每次請求都有ACK確認(rèn),面向連接,但是這樣就會造成傳輸時間有一定的延遲,所以特別適合數(shù)據(jù)傳輸過程不能丟失,而且數(shù)據(jù)量不是特別大的情況,,如發(fā)郵件、發(fā)短信。而UDP呢,因?yàn)閭鬏敯?,沒有流速控制,所以特別適合傳輸數(shù)據(jù)量大,可以允許少量丟包的場景,如音頻、視頻、直播、ping等。

但是近些年有一種趨勢,隨著技術(shù)手段和需求不斷的更替,TCP和UDP使用的場景變的不那么清晰了,使用TCP傳輸文件是通用的解決方法,但是TCP傳輸時間延遲比較長。如果我們想要以更快的速度傳輸文件,少量的數(shù)據(jù)丟失也可以通過技術(shù)手段找回來,那么UDP就是最好的替代方案。再比如HTTP1.0,HTTP2.0都使用TCP來保證數(shù)據(jù)可靠性,但是HTTP3.0在目前沒有更多更好的優(yōu)化方案情況下,采用UDP來提高數(shù)據(jù)發(fā)送速率,增加亮點(diǎn)。

理論上來說能夠使用TCP作為傳輸協(xié)議的,UDP都能替代,近些年對于小而輕的工具越來越多的受到大家的追捧,也是技術(shù)的趨勢,從前整套的解決方案不再是主流追逐的方向。人們喜歡用不同的工具自由解決實(shí)際問題,如linux中有很多小而美的工具。

以下列出,一些協(xié)議適用的場景:

TCP場景:

  • 遠(yuǎn)程控制(SSH)
  • File Transfer Protocol(FTP)
  • 郵件(SMTP、IMAP)等
  • 點(diǎn)對點(diǎn)文件傳輸(微信)等

UDP場景:

  • 網(wǎng)絡(luò)游戲
  • 音視頻傳輸
  • DNS
  • Ping
  • 直播

模糊地帶:

  • HTTP(目前TCP為主)
  • 文件傳輸
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容