




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Linux網(wǎng)絡(luò)編程第十單元廣播與多播編程2/20 單播 一臺(tái)主機(jī)向另一臺(tái)主機(jī)發(fā)送數(shù)據(jù) 廣播 一臺(tái)主機(jī)向本子網(wǎng)內(nèi)所有主機(jī)發(fā)送數(shù)據(jù) 多播 一臺(tái)主機(jī)向網(wǎng)絡(luò)中的部分主機(jī)發(fā)送數(shù)據(jù)3/203第十單元 廣播與多播編程 10.1廣播的概念 10.2多播的概念4/20主機(jī)A向B發(fā)送數(shù)據(jù)過程n某機(jī)器A要向主機(jī)B發(fā)送報(bào)文,會(huì)查詢本地的ARP緩存表,找到B的IP地址對(duì)應(yīng)的MAC地址后,就會(huì)進(jìn)行數(shù)據(jù)傳輸。如果未找到,則廣播A一個(gè)ARP請(qǐng)求報(bào)文(攜帶主機(jī)A的IP地址Ia和物理地址Pa),請(qǐng)求IP地址為Ib的主機(jī)B回答物理地址Pb。n網(wǎng)上所有主機(jī)包括B都收到ARP請(qǐng)求,但只有主機(jī)B識(shí)別自己的IP地址,于是向A主機(jī)發(fā)回一個(gè)A
2、RP響應(yīng)報(bào)文。其中就包含有B的MAC地址,A接收到B的應(yīng)答后,就會(huì)更新本地的ARP緩存。n接著使用這個(gè)MAC地址發(fā)送數(shù)據(jù)。n以太網(wǎng)就是以廣播方式工作的,所以A發(fā)送的數(shù)據(jù)被子網(wǎng)所有主機(jī)接收,每個(gè)主機(jī)判斷幀的MAC地址是否與自己的一致,不一致則丟棄,一致則向上層傳遞數(shù)據(jù)判斷處理。5/20廣播 一個(gè)IP地址由網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)組成。所有主機(jī)號(hào)部分為全1的IP地址是廣播地址。 某臺(tái)主機(jī)向子網(wǎng)內(nèi)所有主機(jī)發(fā)數(shù)據(jù),即向IP為主機(jī)號(hào)全1的地址發(fā)數(shù)據(jù)。 當(dāng)發(fā)送方主機(jī)發(fā)現(xiàn)目的地址為子網(wǎng)廣播地址時(shí),會(huì)自動(dòng)將數(shù)據(jù)幀中MAC地址設(shè)為全1。帶有這樣MAC地址的幀在經(jīng)過子網(wǎng)任何主機(jī)都將被數(shù)據(jù)鏈路層接收并向上層協(xié)議傳遞,如IP層
3、。 上層協(xié)議經(jīng)過判斷,如果有相應(yīng)進(jìn)程處理廣播數(shù)據(jù)報(bào),則發(fā)送到進(jìn)程相應(yīng)的端口,否則丟棄數(shù)據(jù)。6/20發(fā)送應(yīng)用進(jìn)程發(fā)送應(yīng)用進(jìn)程UDPIPv4數(shù)據(jù)鏈路數(shù)據(jù)鏈路UDPIPv4數(shù)據(jù)鏈路數(shù)據(jù)鏈路數(shù)據(jù)鏈路數(shù)據(jù)鏈路IPv4UDP接收應(yīng)用進(jìn)程接收應(yīng)用進(jìn)程以太網(wǎng)頭部IPv4頭部UDP頭部UDP數(shù)據(jù)子網(wǎng)子網(wǎng)128.7.6目的以太網(wǎng)目的以太網(wǎng)=ff:ff:ff:ff:ff:ff幀類型幀類型=0800目的目的IP=128.7.6.255協(xié)議協(xié)議=UDP目的端口目的端口=520Sendto 目的目的IP=128.7.6.255 目的端口目的端口=520丟棄丟棄協(xié)議協(xié)議=UDP幀類型幀類型0800128.7.6.99=單播
4、單播128.7.6.255=廣播廣播128.7.6.5=單播單播128.7.6.255=廣播廣播協(xié)議協(xié)議=UDP端口端口=5207/20廣播的實(shí)現(xiàn) 服務(wù)器端: 創(chuàng)建UDP套接字 設(shè)置套接字要發(fā)送廣播數(shù)據(jù) 調(diào)用sendto函數(shù)向廣播地址發(fā)送數(shù)據(jù),如192.168.50.255。 客戶端: 創(chuàng)建UDP套接字 綁定本地地址到套接字上。 接收數(shù)據(jù)。8/20設(shè)置套接字發(fā)送廣播數(shù)據(jù) 一般情況下,如果調(diào)用sendto,只能向非廣播地址發(fā)送數(shù)據(jù)報(bào)。如果要發(fā)送廣播數(shù)據(jù)報(bào),必須告訴內(nèi)核,可以通過設(shè)置SO_BROADCAST套接口選項(xiàng)來做到這一點(diǎn)。 inton=1; setsockopt(sockfd,SOL_SO
5、CKET,SO_BROADCAST,&on,sizeof(int);9/20廣播實(shí)例 服務(wù)端為tserv.c,運(yùn)行時(shí)需指定廣播地址和端口號(hào),運(yùn)行后每3秒發(fā)送一次廣播,將本機(jī)時(shí)間通知本子網(wǎng)內(nèi)所有主機(jī)。 客戶端為tcli.c,作用是偵聽某一固定端口的數(shù)據(jù)報(bào),接收一個(gè)數(shù)據(jù)報(bào)就返回。10/20第十單元 廣播與多播編程 10.1廣播的概念 10.2多播的概念11/20多播 多播是對(duì)單播和廣播的一種折中方案。 廣播限于局域網(wǎng),多播可以用于局域網(wǎng)也可跨廣域網(wǎng)。12/20多播地址 多播是通過D類地址進(jìn)行的,D類地址的前4位為1110,后面28位為多播的組標(biāo)識(shí)。 地址范圍224.0.0.0到239.25
6、5.255.255 特殊的IPv4多播地址: 224.0.0.0保留 224.0.0.1本子網(wǎng)上所有主機(jī) 224.0.0.2本子網(wǎng)上所有網(wǎng)關(guān) 224.0.1.1NTP(網(wǎng)絡(luò)時(shí)間協(xié)議)組13/20多播的原理 當(dāng)一個(gè)多播分組到達(dá)一個(gè)以太網(wǎng)時(shí),形成幀后它的MAC地址為01:00:5e:xx:xx:xx,其后23位由多播組標(biāo)識(shí)的后23位映射而成。 例如目的地址為224.0.1.1的多播分組,在以太網(wǎng)上幀的MAC地址就為01:00:5e:00:01:01。111000000000000000000001000000010000000100000000010111100000000000000001000
7、00001IP地址地址MAC地址地址14/20多播地址中的組 由于多播IP地址中組標(biāo)識(shí)有28位,而映射到MAC地址的只有23位,還差5位,所以有32個(gè)組將映射成相同的MAC地址,例如224.0.1.1,225.0.1.1,239.128.1.1都映射到MAC地址01:00:5e:00:01:01。 因此要由IP層來檢驗(yàn)到達(dá)的多播分組是否是自已所加入的多播組。如果不是,則拋棄該分組。15/20應(yīng)用程序應(yīng)用程序UDPIP層層132.0.0.100數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層52:37:4a:6d:7f:5e應(yīng)用程序應(yīng)用程序UDPIP層層132.0.0.129應(yīng)用程序應(yīng)用程序UDPIP層層132.0.0.1
8、68數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層52:23:4e:6f:2c:35數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層00:2e:2c:5f:ae:3f發(fā)送數(shù)據(jù)報(bào)發(fā)送數(shù)據(jù)報(bào)IP:224.0.1.1端口端口1234通過通過ARP解析解析224.0.1.1對(duì)應(yīng)對(duì)應(yīng)01:00:5e:00:01:01接收數(shù)據(jù)報(bào)接收數(shù)據(jù)報(bào)端口端口1234應(yīng)用程序指定應(yīng)用程序指定132.0.0.129加入多加入多播組播組224.0.1.1IP層指示接收層指示接收MAC地址為地址為01:00:5e:00:01:01的幀的幀加入加入225.0.1.1丟棄丟棄多播數(shù)據(jù)報(bào)在子網(wǎng)中的發(fā)送接收多播數(shù)據(jù)報(bào)在子網(wǎng)中的發(fā)送接收16/20多播的實(shí)現(xiàn) 服務(wù)器端: 創(chuàng)建UDP套接字 調(diào)用sendto函數(shù)向多播地址發(fā)送數(shù)據(jù),如224.0.4.5。 客戶端: 創(chuàng)建UDP套接字 加入一個(gè)多播組。 綁定本地地址到套接字上。 接收數(shù)據(jù)。17/20如何加入多播組 加入多播組的方法是:設(shè)置套接口選項(xiàng)IP_ADD_MEMBERSHIP。 它要用要如下結(jié)構(gòu):structip_mreqstructin_addrimr_multiaddr;/*IPv4的D類多播地址*/structin_addrimr_interface;/*本地接口IPv4地址*/; 例:setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mcaddr,siz
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)際結(jié)算流動(dòng)資金貸款合同樣本
- 鞋類定制加工合同范本
- 農(nóng)村集體土地承包合同版
- 試驗(yàn)檢測(cè)技術(shù)服務(wù)合同模板
- 電力調(diào)度合同協(xié)議
- 化工原料采購(gòu)合同格式范本
- 新建住房分期付款合同
- 甲乙丙三方租賃合同補(bǔ)充協(xié)議
- 搬家行業(yè)安全生產(chǎn)與事故預(yù)防考核試卷
- 危險(xiǎn)品倉(cāng)儲(chǔ)安全操作規(guī)程優(yōu)化考核試卷
- 2024中考英語(yǔ)1500詞匯默寫匯總表練習(xí)(含答案)
- 2024屆高三英語(yǔ)作文復(fù)習(xí)寫作專項(xiàng)讀后續(xù)寫:幫我修車的墨西哥一家人(人性之光)任務(wù)單學(xué)案
- 2022年四川省綿陽(yáng)市中考語(yǔ)文真題
- 麥琪的禮物全面英文詳細(xì)介紹
- 使用智能手機(jī)教程文檔
- 數(shù)字資產(chǎn)培訓(xùn)課件
- (醫(yī)院安全生產(chǎn)培訓(xùn))課件
- 幼兒園優(yōu)質(zhì)公開課:中班數(shù)學(xué)《到艾比家做客》課件
- 部編人教版歷史八年級(jí)下冊(cè)《三大改造》省優(yōu)質(zhì)課一等獎(jiǎng)教案
- 水輪機(jī)調(diào)速器現(xiàn)場(chǎng)調(diào)試
評(píng)論
0/150
提交評(píng)論