網(wǎng)絡相關之UDP的特點看政、UDP的報文結構及差錯檢測

推薦閱讀:備戰(zhàn)2020——iOS全新面試題總結

TCP(Transmission Control Protocol 傳輸控制協(xié)議)和UDP(User Datagram Protocol 用戶數(shù)據(jù)報協(xié)議)同屬傳輸層協(xié)議

一婉宰、UDP的特點

UDP是是面向非連接的協(xié)議湘纵,傳送數(shù)據(jù)不需要和服務器連接,只需要知道ip和監(jiān)聽端口,不需要鏈接沒有目的的socket悦冀,只是將數(shù)據(jù)報投遞出去,不管接收方是否成功接收到睛琳,是一種不可靠的傳輸盒蟆。
既然UDP是不可靠數(shù)據(jù)傳輸協(xié)議,那為什么那么多應用去選擇UDP呢师骗?

1茁影、關于何時、發(fā)送什么數(shù)據(jù)的應用層控制更加精細
  • 只要應用將數(shù)據(jù)傳遞給UDP丧凤,UDP就會將此數(shù)據(jù)打包進UDP報文段并立刻將其傳遞給網(wǎng)絡層募闲。
  • 而TCP則是有個擁塞控制機制,以確保數(shù)據(jù)能夠安全傳輸愿待,而不管可靠傳輸成功需要用多少時間浩螺。
  • 所以有些實時應用靴患,比如微信視頻、語音都是更希望數(shù)據(jù)能夠及時發(fā)送要出,為此可以容忍一部分數(shù)據(jù)丟失鸳君,比較適合用UDP
2、無需連接建立
  • 眾所周知患蹂,TCP在數(shù)據(jù)傳輸前需要經(jīng)過三次握手或颊,UDP卻不需要做任何的準備即可進行數(shù)據(jù)傳輸,因此UDP不會引入建立連接的時延传于。
  • 這也是DNS運行在UDP而不是TCP上的主要原因囱挑。
  • 而HTTP協(xié)議之所以使用TCP,是因為對于HTTP協(xié)議來說沼溜,可靠性是至關重要的平挑。
3、無連接狀態(tài)
  • TCP需要維護連接狀態(tài)系草。此連接狀態(tài)包括接收和發(fā)送緩存通熄、擁塞控制參數(shù)以及序號與確認號的參數(shù)。(后面如果有時間找都,會詳細說下TCP的擁塞控制方案唇辨,對該方案來說,這些狀態(tài)信息都是必要的)
  • 而UDP不需要維護連接狀態(tài)能耻,也不用跟蹤這些參數(shù)
4赏枚、分組首部開銷小

每個TCP報文段都有20字節(jié)的首部開銷,而UDP僅有8字節(jié)的開銷

所以嚎京,如非必要嗡贺,比如電子郵件,遠程終端服務鞍帝,web诫睬,以及文件傳輸,需要可靠地數(shù)據(jù)傳輸帕涌,會去采用TCP摄凡。其余的尤其是對實時性要求高的應用,比如實時視頻會議蚓曼,網(wǎng)絡電話亲澡,一般都會選用UDP

二、UDP的報文結構

image

應用層數(shù)據(jù)占用UDP報文段的數(shù)據(jù)字段纫版。UDP首部只有4個字段床绪,每個字段由2個字節(jié)組成,即UDP首部僅有8字節(jié)。

  • 端口號:可以使目的主機將應用數(shù)據(jù)交給運行在目的端系統(tǒng)中端相應進程癞己,執(zhí)行分用功能膀斋。

    image
  • 長度:該字段指示了在UDP報文段中的字節(jié)數(shù)(首部+數(shù)據(jù))

  • 檢驗和:接收方使用檢驗和來檢查在該報文段中是否出現(xiàn)了差錯,即差錯檢測痹雅。

三仰担、UDP差錯檢測

UDP檢驗和提供了差錯檢測功能。
檢驗和相當于用于確定當UDP報文段從源到達目的地移動時绩社,其中的比特是否發(fā)生了改變(比如摔蓝,由于鏈路中的噪聲干擾或存儲在路由器中時的引入問題)。
發(fā)送方的UDP對報文段中的所有16比特字對和進行反碼運算愉耙,求和時遇到的任何溢出都被回卷贮尉。得到的結果被放在UDP報文段中的檢驗和字段。

比如劲阎,假定有下面三個16比特的字:

0110011001100000
0101010101010101
1000111100001100

這些16比特字的前兩個之和是:

1011101110110101

再將該和與第三個16比特字相加绘盟,得出:

10100101011000001

發(fā)現(xiàn)溢出了鸠真,該和就要被回卷悯仙,即把首位的1加到最后一位去,得出:

0100101011000010

然后對其進行反碼運算吠卷,所謂反碼運算锡垄,即是將所有的1換成0,0換成1

1011010100111101

這就是得出的檢驗和祭隔。而在接收方货岭,全部的4個16比特字(包括檢驗和)加在一起。如果分組中沒有引入差錯疾渴,顯然在接收處該和將是1111111111111111千贯。而如果這些比特之一是0,那我們就知道該分組中出現(xiàn)了差錯搞坝。
UDP在端到端基礎上在運輸層提供差錯檢測搔谴,這就是在系統(tǒng)設計中被稱頌的端到端原則

而UDP雖然提供差錯檢測,但它對差錯恢復無能為力桩撮。這就需要用到可靠數(shù)據(jù)傳輸--TCP了

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敦第,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子店量,更是在濱河造成了極大的恐慌芜果,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件融师,死亡現(xiàn)場離奇詭異右钾,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門舀射,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灭将,“玉大人,你說我怎么就攤上這事后控∶硎铮” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵浩淘,是天一觀的道長捌朴。 經(jīng)常有香客問我,道長张抄,這世上最難降的妖魔是什么砂蔽? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮署惯,結果婚禮上左驾,老公的妹妹穿的比我還像新娘。我一直安慰自己极谊,他們只是感情好诡右,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轻猖,像睡著了一般帆吻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咙边,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天猜煮,我揣著相機與錄音,去河邊找鬼败许。 笑死王带,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的市殷。 我是一名探鬼主播愕撰,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼被丧!你這毒婦竟也來了盟戏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤甥桂,失蹤者是張志新(化名)和其女友劉穎柿究,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黄选,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蝇摸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年婶肩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片貌夕。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡律歼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啡专,到底是詐尸還是另有隱情险毁,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布们童,位于F島的核電站畔况,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏慧库。R本人自食惡果不足惜跷跪,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望齐板。 院中可真熱鬧吵瞻,春花似錦、人聲如沸甘磨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宽档。三九已至尉姨,卻和暖如春庵朝,著一層夾襖步出監(jiān)牢的瞬間吗冤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工九府, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留椎瘟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓侄旬,卻偏偏與公主長得像肺蔚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子儡羔,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容