網(wǎng)絡(luò)協(xié)議補(bǔ)完計(jì)劃--UDP協(xié)議

目錄

  • 前言
  • UDP協(xié)議概述
  • 套接字
  • 多路復(fù)用
  • 多路分解
  • UDP數(shù)據(jù)包格式
  • UDP校驗(yàn)和的計(jì)算
  • UDP工作流程
  • 標(biāo)準(zhǔn)UDP端口

前言

參照清華大學(xué)出版社-羅軍周主編的《TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)》進(jìn)行學(xué)習(xí)。
本篇主要參考第八章:《UDP協(xié)議》


UDP協(xié)議概述

  • 傳輸層協(xié)議

    • 位于應(yīng)用層之下蛔添、為不同設(shè)備上的應(yīng)用提供邏輯通訊的功能蹦魔。進(jìn)程之間使用該邏輯彼此發(fā)送報(bào)文之众、而不需要考慮物理層的差異屁倔。
    • 網(wǎng)絡(luò)層只負(fù)責(zé)主機(jī)與主機(jī)之間的傳輸、而傳輸層則將網(wǎng)絡(luò)層(IP協(xié)議)接收/發(fā)送的數(shù)據(jù)贝淤、正確定向到相應(yīng)的應(yīng)用層艳丛。
  • UDP協(xié)議為應(yīng)用程序提供不可靠的無連接的服務(wù)

即UDP協(xié)議數(shù)據(jù)包可能會(huì)出現(xiàn)丟包涝登、失序等雄家、且不處理重發(fā)。這一點(diǎn)和IP協(xié)議一樣胀滚、所以需要使用UDP協(xié)議的程序自己處理重發(fā)趟济、順序重組等。
但這種模式相比可靠的傳輸服務(wù)咽笼、效率更高顷编、沒有擁塞控制、首部更簡(jiǎn)潔剑刑、對(duì)應(yīng)用負(fù)擔(dān)也更小媳纬。

  • 常見的應(yīng)用
    流式多媒體、DNS等施掏。

套接字

從網(wǎng)絡(luò)向某進(jìn)程傳遞數(shù)據(jù)钮惠、或者從進(jìn)程向網(wǎng)絡(luò)傳遞數(shù)據(jù)的門戶。
傳輸層和應(yīng)用進(jìn)程通過套接字來傳遞數(shù)據(jù)七芭。
主機(jī)上的套接字可以有很多個(gè)素挽、每個(gè)套接字都有唯一的標(biāo)識(shí)符。

應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信時(shí)抖苦、傳輸層會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題毁菱。
多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要 通過同一個(gè)TCP協(xié)議端口傳輸數(shù)據(jù)米死。
為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接、許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為套接字 (Socket)的接口贮庞、區(qū)分不同應(yīng)用程序進(jìn)程間的網(wǎng)絡(luò)通信和連接峦筒。

主要有3個(gè)參數(shù):
  • 通信的目的IP地址
  • 使用的傳輸 層協(xié)議(TCP或UDP)
  • 使用的端口號(hào)(像房間號(hào)一樣對(duì)應(yīng)到每一個(gè)程序)。

Socket原意是“插座”窗慎。通過將這3個(gè)參數(shù)結(jié)合起來物喷,與一個(gè)“插座”Socket綁定,應(yīng)用層就可以和傳輸 層通過套接字接口遮斥,區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信峦失,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。

工作原理

報(bào)文到達(dá)目標(biāo)主機(jī)時(shí)术吗、傳輸層會(huì)檢查報(bào)文中的目的端口號(hào)尉辑、并且發(fā)送到相應(yīng)含有套接字的軟件中。報(bào)文端的數(shù)據(jù)將通過套接字進(jìn)入到應(yīng)用層對(duì)應(yīng)的進(jìn)程较屿。

一個(gè)簡(jiǎn)單的例子:

百度在同一個(gè)IP地址(域名)下隧魄、可能有多種應(yīng)用。比如APP(baidu:80)隘蝎、百度貼吧(baidu:81)购啄、百度金融(baidu:82)。80嘱么、81狮含、82代表端口號(hào)。
這個(gè)時(shí)候曼振、我想要訪問百度金融几迄。就需要將對(duì)應(yīng)的套接字(端口號(hào)為82)交給百度的主網(wǎng)、再由其根據(jù)百度金融的端口號(hào)冰评、交給百度金融的應(yīng)用服務(wù)器(監(jiān)聽這baidu:82)乓旗。


多路復(fù)用

針對(duì)發(fā)送主機(jī)

離散狀態(tài)信息的匯聚

同時(shí)給多目標(biāo)發(fā)送數(shù)據(jù)。不同的進(jìn)程有不同的套接字集索、從不同的軟件中收集數(shù)據(jù)、再給每一個(gè)數(shù)據(jù)塊加上頭部汇跨、生成報(bào)文交給網(wǎng)絡(luò)層發(fā)送务荆。


多路分解

針對(duì)接收主機(jī)

匯聚狀態(tài)信息的拆分

同時(shí)接收到多來源發(fā)送的數(shù)據(jù)。將報(bào)文段中的數(shù)據(jù)交付到正確的套接字(將報(bào)文定向到正確的進(jìn)程)穷遂。


UDP數(shù)據(jù)包格式

UDP數(shù)據(jù)包格式

每行4字節(jié)函匕、每個(gè)字節(jié)8位。

  • 源端口
    可選

  • 目的端口
    目標(biāo)主機(jī)端口

  • UDP包長(zhǎng)
    整個(gè)UDP包長(zhǎng)度蚪黑、包括頭部和數(shù)據(jù)盅惜。
    最小值為8(不包含數(shù)據(jù)的情況下其余共4*2字節(jié))中剩。IP數(shù)據(jù)包為20字節(jié)

  • UDP校驗(yàn)和
    可選


UDP校驗(yàn)和的計(jì)算

UDP校驗(yàn)和的計(jì)算不僅包括數(shù)據(jù)包中所有的數(shù)據(jù)、還包含一個(gè)成為偽頭部的結(jié)構(gòu)和抒寂、會(huì)用通過補(bǔ)0的方式來將UDP數(shù)據(jù)包補(bǔ)足16位的整數(shù)倍结啼。
計(jì)算校驗(yàn)和時(shí)、UDP協(xié)議會(huì)先構(gòu)造該數(shù)據(jù)包的偽頭部結(jié)構(gòu)屈芜、然后將UDP數(shù)據(jù)包的校驗(yàn)和字段設(shè)置為0郊愧、并將其追加到偽頭部末尾。

UDP偽頭部格式

UDP偽頭部格式

UDP的協(xié)議代碼為17

UDP偽頭部的意義

包含了源端口和目的端口
原始的UDP數(shù)據(jù)包中沒有包含源IP地址和目的IP地址井佑、以便讓數(shù)據(jù)包的接收者確定數(shù)據(jù)包是來自正確的源地址以及確實(shí)是發(fā)送給目的主機(jī)属铁。


UDP工作流程

  • 接收方主機(jī)
    程序A需要申請(qǐng)一個(gè)UDP端口號(hào)、例如P躬翁。
  • 發(fā)送方主機(jī)
    應(yīng)用程序準(zhǔn)備好數(shù)據(jù)后焦蘑、會(huì)交給UDP協(xié)議進(jìn)行數(shù)據(jù)封裝、目標(biāo)端口號(hào)字段置位P后交給IP協(xié)議在此封裝發(fā)送盒发。
  • 接收方主機(jī)
    IP協(xié)議發(fā)現(xiàn)協(xié)議字段為17例嘱、就將IP數(shù)據(jù)包的數(shù)據(jù)區(qū)交給UDP協(xié)議處理。UDP協(xié)議發(fā)現(xiàn)端口號(hào)為P迹辐、就將UDP數(shù)據(jù)包的數(shù)據(jù)區(qū)放置在端口P的隊(duì)列中蝶防。程序A從該隊(duì)列中將數(shù)據(jù)依次取出進(jìn)行處理。


標(biāo)準(zhǔn)UDP端口

標(biāo)準(zhǔn)UDP端口-1

標(biāo)準(zhǔn)UDP端口-2

一個(gè)應(yīng)用程序如何才能知道該將數(shù)據(jù)發(fā)往那個(gè)目標(biāo)端口?

  • 可以雙方提前約定
  • 可以根據(jù)不同業(yè)務(wù)類型使用標(biāo)準(zhǔn)端口(比如http就是80)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末明吩,一起剝皮案震驚了整個(gè)濱河市间学,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌印荔,老刑警劉巖低葫,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異仍律,居然都是意外死亡嘿悬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門水泉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來善涨,“玉大人,你說我怎么就攤上這事草则「峙。” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵炕横,是天一觀的道長(zhǎng)源内。 經(jīng)常有香客問我,道長(zhǎng)份殿,這世上最難降的妖魔是什么膜钓? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任嗽交,我火速辦了婚禮,結(jié)果婚禮上颂斜,老公的妹妹穿的比我還像新娘夫壁。我一直安慰自己,他們只是感情好焚鲜,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布掌唾。 她就那樣靜靜地躺著,像睡著了一般忿磅。 火紅的嫁衣襯著肌膚如雪糯彬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天葱她,我揣著相機(jī)與錄音撩扒,去河邊找鬼。 笑死吨些,一個(gè)胖子當(dāng)著我的面吹牛搓谆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播豪墅,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼泉手,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了偶器?” 一聲冷哼從身側(cè)響起斩萌,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屏轰,沒想到半個(gè)月后颊郎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霎苗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年姆吭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唁盏。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡内狸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厘擂,到底是詐尸還是另有隱情答倡,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布驴党,位于F島的核電站,受9級(jí)特大地震影響获茬,放射性物質(zhì)發(fā)生泄漏港庄。R本人自食惡果不足惜倔既,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鹏氧。 院中可真熱鬧渤涌,春花似錦、人聲如沸把还。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吊履。三九已至安皱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間艇炎,已是汗流浹背酌伊。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缀踪,地道東北人居砖。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像驴娃,于是被迫代替她去往敵國(guó)和親奏候。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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

  • 11.1 引言 UDP是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議:進(jìn)程的每個(gè)輸出操作都正好產(chǎn)生一個(gè)UDP數(shù)據(jù)報(bào)唇敞,并組裝成一...
    張芳濤閱讀 2,821評(píng)論 1 6
  • 1.這篇文章不是本人原創(chuàng)的蔗草,只是個(gè)人為了對(duì)這部分知識(shí)做一個(gè)整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,073評(píng)論 6 174
  • 個(gè)人認(rèn)為厚棵,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記蕉世,這雖然只是...
    貳零壹柒_fc10閱讀 5,058評(píng)論 0 8
  • 網(wǎng)絡(luò)概念第一天 兩臺(tái)電腦怎么通過網(wǎng)絡(luò)傳輸數(shù)據(jù)?怎樣才能知道傳輸?shù)氖菙?shù)據(jù)婆硬?誰摸過網(wǎng)線狠轻? 看電影,怎么看的彬犯?通過電流向楼,...
    小吖朱閱讀 1,564評(píng)論 0 1
  • 2017年8月28日 江西信豐曾冬姣 身修家和,美麗中國(guó)! 服務(wù)眾生:今天和幾位朋友分享藝博家庭教育谐区,有一個(gè)朋友說...
    江西信豐33組閱讀 163評(píng)論 0 0