每日一問21——UDP

簡介

用戶數(shù)據(jù)報協(xié)議UDP(User Datagram Protocol)[RFC 793]

  • 無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接他膳,因此減少了開銷和發(fā)送數(shù)據(jù)之前的時延。
  • 不保證可靠交付,因此主機不需要為此復(fù)雜的連接狀態(tài)表
  • 面向報文的,意思是 UDP 對應(yīng)用層交下來的報文饼煞,既不合并,也不拆分诗越,而是保留這些報文的邊界砖瞧,在添加首部后向下交給 IP 層。
  • 沒有阻塞控制嚷狞,因此網(wǎng)絡(luò)出現(xiàn)的擁塞不會使發(fā)送方的發(fā)送速率降低块促。
  • 支持一對一荣堰、一對多、多對一和多對多的交互通信竭翠,也即是提供廣播和多播的功能振坚。
  • 首部開銷小,首部只有 8 個字節(jié)斋扰,分為四部分渡八。
udp報文結(jié)構(gòu)
6FCC9F4EDE80F784BD11ED9FA76FA375.png

源端口:源端口號,在需要對方回信時選用褥实,不需要時可全 0.
目的端口:目的端口號呀狼,在終點交付報文時必須要使用到裂允。
長度:UDP 用戶數(shù)據(jù)報的長度损离,在只有首部的情況,其最小值是 8 绝编。
檢驗和:檢測 UDP 用戶數(shù)據(jù)報在傳輸中是否有錯僻澎,有錯就丟棄。

UDP 如何進行校驗和:

UDP 數(shù)據(jù)報首部中檢驗和的計算方法比較特殊十饥。
在計算檢驗和時窟勃,要在數(shù)據(jù)報之前增加 12 個字節(jié)的偽首部,用來計算校驗和逗堵。
偽首部并不是數(shù)據(jù)報真正的首部秉氧,是為了計算校驗和而臨時添加在數(shù)據(jù)報前面的,在真正傳輸?shù)臅r候并不會把偽首部一并發(fā)送蜒秤。

3D9C291187835C3571A111952201B4FF.png

第一字段汁咏,源 IP 地址
第二字段,目的 IP 地址
第三字段作媚,字段全 0
第四字段攘滩,IP 首部中的協(xié)議字段的值,對于 UDP纸泡,此字段值為 17
第五字段漂问,UDP 用戶數(shù)據(jù)報的長度

UDP與TCP對比

D65D7EB6-22CB-48C1-AF5B-10BCBD244B01.png
TCP與UDP的連接方式
從程序?qū)崿F(xiàn)的角度來看
1363304870_3150.jpg

tcp中需要客戶端向服務(wù)器發(fā)起連接,服務(wù)器需要接受客戶端的連接以后才可以收發(fā)數(shù)據(jù)女揭。而udp中客戶端不需要向服務(wù)器發(fā)起連接蚤假,只需要知道服務(wù)器綁定的端口就可以向服務(wù)器發(fā)送數(shù)據(jù)。由此可知吧兔,tcp是面向連接的磷仰,udp是非面向連接的。

UDP面向報文 掩驱,TCP面向字節(jié)流
  • UDP是面向報文芒划。
    發(fā)送方的UDP對應(yīng)用程序交下來的報文在添加首部后就向下交付給IP層冬竟,對交下來的報文既不合并也不拆分。因此民逼,應(yīng)用進程必須選擇合適大小的報文泵殴,若報文太長,UDP把它交付給IP層后拼苍,IP層在傳送時可能要進行分片笑诅,這會降低IP層的效率;反之疮鲫,若報文太短吆你,UDP把它交給IP層后,會使IP數(shù)據(jù)報的首部的相對長度太大俊犯,也降低了IP層的效率妇多。

  • TCP面向字節(jié)流。
    雖然應(yīng)用程序和TCP的交互是一次一個數(shù)據(jù)塊燕侠,但TCP把應(yīng)用程序交下來的數(shù)據(jù)看成是一連串的務(wù)結(jié)構(gòu)的字節(jié)流者祖。TCP不保證接收方應(yīng)用程序所收到的數(shù)據(jù)塊和發(fā)送方應(yīng)用程序所發(fā)出的數(shù)據(jù)塊具有對應(yīng)大小的關(guān)系(例如,發(fā)送方應(yīng)用程序交給發(fā)送方TCP共有10個數(shù)據(jù)塊绢彤,但接收方TCP可能只用了4個數(shù)據(jù)塊就把收到的字節(jié)流交付給了上層應(yīng)用程序)七问。但接收方應(yīng)用程序收到的字節(jié)流必須和發(fā)送方應(yīng)用程序發(fā)出的字節(jié)流完全一樣。(原理參考每日一問20——TCP中tcp滑動窗口的介紹)

UDP單播茫舶,廣播械巡,多播
  • 單播把數(shù)據(jù)報發(fā)送給單一主機
  • 廣播把數(shù)據(jù)報發(fā)送給指定網(wǎng)絡(luò)上的所有主機
  • 多播發(fā)送給指定的多個主機
廣播
廣播域

首先我們來了解一下廣播域的概念。
廣播域是網(wǎng)絡(luò)中能接收任一臺主機發(fā)出的廣播幀的所有主機集合饶氏。也就是說讥耗,如果廣播域內(nèi)的其中一臺主機發(fā)出一個廣播幀,同一廣播域內(nèi)所有的其它主機都可以收到該廣播幀嚷往。

廣播域的計算

如何知道一臺主機是屬于哪一個廣播域呢葛账?其實計算很簡單,只要用主機的IP地址與子網(wǎng)掩碼進行與運算即可知道該主機屬于哪一個廣播域皮仁。例如:一臺主機的IP地址為192.168.23.150籍琳,子網(wǎng)掩碼為255.255.255.0,那么它所屬的廣播域就是192.168.23.150&255.255.255.0=192.168.23.0贷祈。那么其它的在廣播域192.168.23.0內(nèi)的所有主機就可以到該設(shè)備發(fā)送的廣播包趋急。如果把子網(wǎng)掩碼改為255.255.0.0,那么它所屬的廣播域就是192.168.23.150&255.255.0.0=192.168.0.0势誊。那么其它的在廣播域192.168.0.0內(nèi)的所有主機都可以收到該設(shè)備發(fā)送的廣播包呜达。

廣播地址的計算

要想相同廣播域內(nèi)的其它主機能收到的廣播幀,還需要在發(fā)送廣播包的時候指定當前所屬廣播域內(nèi)的廣播地址粟耻。廣播地址的計算方法為子網(wǎng)掩碼取反再與廣播域進行或運算查近。
例如:如果主機當前所屬廣播域為192.168.0.0眉踱,子網(wǎng)掩碼為255.255.0.0,那么廣播地址則為192.168.255.255霜威。

使用UDP進行跨網(wǎng)段廣播

要使主機A發(fā)送的廣播包能夠被另一網(wǎng)段的主機B收到谈喳,那么只需要更改主機A的子網(wǎng)掩碼使得與主機B在同一個廣播域內(nèi),再使用新的廣播域的廣播地址發(fā)送廣播包即可戈泼。
例如:要使用192.168.23.150發(fā)送廣播包讓192.168.27.135收到婿禽,只需要設(shè)置192.168.23.150的子網(wǎng)掩碼為255.255.0.0,然后再使用廣播地址192.168.255.255即可大猛。

廣播UDP與單播UDP的區(qū)別就是IP地址不同扭倾,廣播使用廣播地址255.255.255.255,將消息發(fā)送到在同一廣播網(wǎng)絡(luò)上的每個主機挽绩。

多播

多播是一組主機的標示符膛壹,它已經(jīng)加入到一個多播組中。在以太網(wǎng)中琼牧,多播地址是一個48位的標示符恢筝,命名了一組應(yīng)該在這個網(wǎng)絡(luò)中應(yīng)用接收到一個分組的站點哀卫。在IPv4中巨坊,它歷史上被叫做D類地址,一種類型的IP地址此改,它的范圍從224.0.0.0到239.255.255.255趾撵。D類地址用于組播。

相關(guān)文章:

TCP/IP詳解學(xué)習(xí)筆記(6)-UDP
多播(組播)原理分析
UDP廣播原理簡介
UDP 和 TCP 的不同

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末共啃,一起剝皮案震驚了整個濱河市占调,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌移剪,老刑警劉巖究珊,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纵苛,居然都是意外死亡剿涮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門攻人,熙熙樓的掌柜王于貴愁眉苦臉地迎上來取试,“玉大人,你說我怎么就攤上這事怀吻∷才ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵蓬坡,是天一觀的道長猿棉。 經(jīng)常有香客問我磅叛,道長,這世上最難降的妖魔是什么萨赁? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任宪躯,我火速辦了婚禮,結(jié)果婚禮上位迂,老公的妹妹穿的比我還像新娘访雪。我一直安慰自己,他們只是感情好掂林,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布臣缀。 她就那樣靜靜地躺著,像睡著了一般泻帮。 火紅的嫁衣襯著肌膚如雪精置。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天锣杂,我揣著相機與錄音脂倦,去河邊找鬼。 笑死元莫,一個胖子當著我的面吹牛赖阻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踱蠢,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼火欧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茎截?” 一聲冷哼從身側(cè)響起苇侵,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎企锌,沒想到半個月后榆浓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡撕攒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年陡鹃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片打却。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡杉适,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柳击,到底是詐尸還是另有隱情猿推,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站蹬叭,受9級特大地震影響藕咏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秽五,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一孽查、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坦喘,春花似錦盲再、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棠笑,卻和暖如春梦碗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蓖救。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工洪规, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人循捺。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓斩例,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巨柒。 傳聞我的和親對象是個殘疾皇子樱拴,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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

  • 個人認為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記洋满,這雖然只是...
    貳零壹柒_fc10閱讀 5,051評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的珍坊,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,037評論 6 174
  • 11.1 引言 UDP是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議:進程的每個輸出操作都正好產(chǎn)生一個UDP數(shù)據(jù)報牺勾,并組裝成一...
    張芳濤閱讀 2,783評論 1 6
  • 名詞延伸 通俗的說履怯,域名就相當于一個家庭的門牌號碼回还,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,590評論 2 57
  • 春風(fēng)送客猴去急叹洲, 春雨打春金雞立柠硕; 大年初五包和合, 共圓美夢在一七。 家家戶戶迎財神蝗柔, 財神進門有驚喜闻葵; 財神老...
    琢玉書生閱讀 173評論 0 1