linux udp 單播 組播 廣播實(shí)現(xiàn)

linux udp 單播 組播 廣播實(shí)現(xiàn)

ID:1969738

大小:248.50 KB

頁數(shù):19頁

時(shí)間:2017-11-14

linux udp 單播 組播 廣播實(shí)現(xiàn)_第1頁
linux udp 單播 組播 廣播實(shí)現(xiàn)_第2頁
linux udp 單播 組播 廣播實(shí)現(xiàn)_第3頁
linux udp 單播 組播 廣播實(shí)現(xiàn)_第4頁
linux udp 單播 組播 廣播實(shí)現(xiàn)_第5頁
資源描述:

《linux udp 單播 組播 廣播實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、linuxudp單播組播廣播實(shí)現(xiàn)1、組播和廣播需要在局域網(wǎng)內(nèi)才能實(shí)現(xiàn),另外得查看linux系統(tǒng)是否支持多播和廣播:ifconfigUPBROADCASTMULTICASTMTU:1500躍點(diǎn)數(shù):1說明該網(wǎng)卡支持2、發(fā)送多播包的主機(jī)需要設(shè)置網(wǎng)關(guān),否則運(yùn)行sendto()會(huì)出現(xiàn)"networkisunreachable",網(wǎng)卡可以隨便設(shè)置,但是一定要設(shè)。還要添加路由240.0.0.0,即:routeadd-net224.0.0.0netmask240.0.0.0deveth0routeadddefaultgw"192.168.40.1"deveth0

2、3、出現(xiàn):“setsockopt:Nosuchdevice”。的提示,說明多播IP設(shè)置出現(xiàn)問題,系統(tǒng)所需要的uint32_t格式的網(wǎng)絡(luò)地址的開頭不是1110,檢驗(yàn)通不過。解決辦法:在把地址字符串"*.*.*.*"轉(zhuǎn)化為uint32_t時(shí)采用htonl(inet_network(“*.*.*.*”))或者inet_aton函數(shù),inet_aton(GRUPO,&srv.sin_addr)另外有文章:http://unix-cd.com/unixcd12/article_5577.html11.3多播單播用于兩個(gè)主機(jī)之間的端對(duì)端通信,廣播用于一個(gè)主機(jī)

3、對(duì)整個(gè)局域網(wǎng)上所有主機(jī)上的數(shù)據(jù)通信。單播和廣播是兩個(gè)極端,要么對(duì)一個(gè)主機(jī)進(jìn)行通信,要么對(duì)整個(gè)局域網(wǎng)上的主機(jī)進(jìn)行通信。實(shí)際情況下,經(jīng)常需要對(duì)一組特定的主機(jī)進(jìn)行通信,而不是整個(gè)局域網(wǎng)上的所有主機(jī),這就是多播的用途。11.3.1多播的概念多播,也稱為“組播”,將網(wǎng)絡(luò)中同一業(yè)務(wù)類型主機(jī)進(jìn)行了邏輯上的分組,進(jìn)行數(shù)據(jù)收發(fā)的時(shí)候其數(shù)據(jù)僅僅在同一分組中進(jìn)行,其他的主機(jī)沒有加入此分組不能收發(fā)對(duì)應(yīng)的數(shù)據(jù)。在廣域網(wǎng)上廣播的時(shí)候,其中的交換機(jī)和路由器只向需要獲取數(shù)據(jù)的主機(jī)復(fù)制并轉(zhuǎn)發(fā)數(shù)據(jù)。主機(jī)可以向路由器請求加入或退出某個(gè)組,網(wǎng)絡(luò)中的路由器和交換機(jī)有選擇地復(fù)制并傳輸數(shù)據(jù),

4、將數(shù)據(jù)僅僅傳輸給組內(nèi)的主機(jī)。多播的這種功能,可以一次將數(shù)據(jù)發(fā)送到多個(gè)主機(jī),又能保證不影響其他不需要(未加入組)的主機(jī)的其他通信。相對(duì)于傳統(tǒng)的一對(duì)一的單播,多播具有如下的優(yōu)點(diǎn):q具有同種業(yè)務(wù)的主機(jī)加入同一數(shù)據(jù)流,共享同一通道,節(jié)省了帶寬和服務(wù)器的優(yōu)點(diǎn),具有廣播的優(yōu)點(diǎn)而又沒有廣播所需要的帶寬。q服務(wù)器的總帶寬不受客戶端帶寬的限制。由于組播協(xié)議由接收者的需求來確定是否進(jìn)行數(shù)據(jù)流的轉(zhuǎn)發(fā),所以服務(wù)器端的帶寬是常量,與客戶端的數(shù)量無關(guān)。q與單播一樣,多播是允許在廣域網(wǎng)即Internet上進(jìn)行傳輸?shù)?,而廣播僅僅在同一局域網(wǎng)上才能進(jìn)行。組播的缺點(diǎn):q多播與單播相

5、比沒有糾錯(cuò)機(jī)制,當(dāng)發(fā)生錯(cuò)誤的時(shí)候難以彌補(bǔ),但是可以在應(yīng)用層來實(shí)現(xiàn)此種功能。q多播的網(wǎng)絡(luò)支持存在缺陷,需要路由器及網(wǎng)絡(luò)協(xié)議棧的支持。多播的應(yīng)用主要有網(wǎng)上視頻、網(wǎng)上會(huì)議等。11.3.2廣域網(wǎng)的多播多播的地址是特定的,D類地址用于多播。D類IP地址就是多播IP地址,即224.0.0.0至239.255.255.255之間的IP地址,并被劃分為局部連接多播地址、預(yù)留多播地址和管理權(quán)限多播地址3類:q局部多播地址:在224.0.0.0~224.0.0.255之間,這是為路由協(xié)議和其他用途保留的地址,路由器并不轉(zhuǎn)發(fā)屬于此范圍的IP包。q預(yù)留多播地址:在224

6、.0.1.0~238.255.255.255之間,可用于全球范圍(如Internet)或網(wǎng)絡(luò)協(xié)議。q管理權(quán)限多播地址:在239.0.0.0~239.255.255.255之間,可供組織內(nèi)部使用,類似于私有IP地址,不能用于Internet,可限制多播范圍。11.3.3多播的編程多播的程序設(shè)計(jì)使用setsockopt()函數(shù)和getsockopt()函數(shù)來實(shí)現(xiàn),組播的選項(xiàng)是IP層的,其選項(xiàng)值和含義參見11.5所示。表11.5多播相關(guān)的選項(xiàng)getsockopt()/setsockopt()的選項(xiàng)含義IP_MULTICAST_TTL設(shè)置多播組數(shù)據(jù)的TT

7、L值IP_ADD_MEMBERSHIP在指定接口上加入組播組IP_DROP_MEMBERSHIP退出組播組IP_MULTICAST_IF獲取默認(rèn)接口或設(shè)置接口IP_MULTICAST_LOOP禁止組播數(shù)據(jù)回送1.選項(xiàng)IP_MULTICASE_TTL選項(xiàng)IP_MULTICAST_TTL允許設(shè)置超時(shí)TTL,范圍為0~255之間的任何值,例如:unsignedcharttl=255;setsockopt(s,IPPROTO_IP,IP_MULTICAST_TTL,&ttl,sizeof(ttl));2.選項(xiàng)IP_MULTICAST_IF選項(xiàng)IP_MUL

8、TICAST_IF用于設(shè)置組播的默認(rèn)默認(rèn)網(wǎng)絡(luò)接口,會(huì)從給定的網(wǎng)絡(luò)接口發(fā)送,另一個(gè)網(wǎng)絡(luò)接口會(huì)忽略此數(shù)據(jù)。例如:structin_addra

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。