




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
廣播與多播編程第一頁,共二十九頁,2022年,8月28日廣播一個IP地址由網(wǎng)絡號和主機號組成。所有主機號部分為全1的IP地址是廣播地址。第二頁,共二十九頁,2022年,8月28日1.單播:網(wǎng)絡節(jié)點之間的通信就好像是人們之間的對話一樣。如果一個人對另外一個人說話,那么用網(wǎng)絡技術(shù)的術(shù)語來描述就是“單播”,此時信息的接收和傳遞只在兩個節(jié)點之間進行。單播在網(wǎng)絡中得到了廣泛的應用,網(wǎng)絡上絕大部分的數(shù)據(jù)都是以單播的形式傳輸?shù)?,只是一般網(wǎng)絡用戶不知道而已。例如,你在收發(fā)電子郵件、瀏覽網(wǎng)頁時,必須與郵件服務器、Web服務器建立連接,此時使用的就是單播數(shù)據(jù)傳輸方式。但是通常使用“點對點通信”(PointtoPoint)代替“單播”,因為“單播”一般與“多播”和“廣播”相對應使用。第三頁,共二十九頁,2022年,8月28日2.多播“多播”也可以稱為“組播”,在網(wǎng)絡技術(shù)的應用并不是很多,網(wǎng)上視頻會議、網(wǎng)上視頻點播特別適合采用多播方式。因為如果采用單播方式,逐個節(jié)點傳輸,有多少個目標節(jié)點,就會有多少次傳送過程,這種方式顯然效率極低,是不可取的;如果采用不區(qū)分目標、全部發(fā)送的廣播方式,雖然一次可以傳送完數(shù)據(jù),但是顯然達不到區(qū)分特定數(shù)據(jù)接收對象的目的。采用多播方式,既可以實現(xiàn)一次傳送所有目標節(jié)點的數(shù)據(jù),也可以達到只對特定對象傳送數(shù)據(jù)的目的。IP網(wǎng)絡的多播一般通過多播IP地址來實現(xiàn)。多播IP地址就是D類IP地址,即至之間的IP地址。第四頁,共二十九頁,2022年,8月28日3.廣播“廣播”在網(wǎng)絡中的應用較多,如客戶機通過DHCP自動獲得IP地址的過程就是通過廣播來實現(xiàn)的。但是同單播和多播相比,廣播幾乎占用了子網(wǎng)內(nèi)網(wǎng)絡的所有帶寬。拿開會打一個比方吧,在會場上只能有一個人發(fā)言,想象一下如果所有的人同時都用麥克風發(fā)言,那會場上就會亂成一鍋粥。集線器由于其工作原理決定了不可能過濾廣播風暴,一般的交換機也沒有這一功能,不過現(xiàn)在有的網(wǎng)絡交換機(如全向的QS系列交換機)也有過濾廣播風暴功能了,路由器本身就有隔離廣播風暴的作用。廣播風暴不能完全杜絕,但是只能在同一子網(wǎng)內(nèi)傳播,就好像喇叭的聲音只能在同一會場內(nèi)傳播一樣,因此在由幾百臺甚至上千臺電腦構(gòu)成的大中型局域網(wǎng)中,一般進行子網(wǎng)劃分,就像將一個大廳用墻壁隔離成許多小廳一樣,以達到隔離廣播風暴的目的。在IP網(wǎng)絡中,廣播地址用IP地址“255.255.255.255”來表示,這個IP地址代表同一子網(wǎng)內(nèi)所有的IP地址。第五頁,共二十九頁,2022年,8月28日單播優(yōu)缺點:主機之間一對一的通訊模式,網(wǎng)絡中的交換機和路由器對數(shù)據(jù)只進行轉(zhuǎn)發(fā)不進行復制。如果10個客戶機需要相同的數(shù)據(jù),則服務器需要逐一傳送,重復10次相同的工作。但由于其能夠針對每個客戶的及時響應,所以現(xiàn)在的網(wǎng)頁瀏覽全部都是采用單播模式,具體的說就是IP單播協(xié)議。網(wǎng)絡中的路由器和交換機根據(jù)其目標地址選擇傳輸路徑,將IP單播數(shù)據(jù)傳送到其指定的目的地。第六頁,共二十九頁,2022年,8月28日單播優(yōu)缺點:單播的優(yōu)點:
1)服務器及時響應客戶機的請求
2)服務器針對每個客戶不通的請求發(fā)送不通的數(shù)據(jù),容易實現(xiàn)個性化服務。
單播的缺點:
1)服務器針對每個客戶機發(fā)送數(shù)據(jù)流,服務器流量=客戶機數(shù)量×客戶機流量;在客戶數(shù)量大、每個客戶機流量大的流媒體應用中服務器不堪重負。
2)現(xiàn)有的網(wǎng)絡帶寬是金字塔結(jié)構(gòu),城際省際主干帶寬僅僅相當于其所有用戶帶寬之和的5%。如果全部使用單播協(xié)議,將造成網(wǎng)絡主干不堪重負?,F(xiàn)在的P2P應用就已經(jīng)使主干經(jīng)常阻塞。而將主干擴展20倍幾乎是不可能。第七頁,共二十九頁,2022年,8月28日廣播優(yōu)缺點:主機之間一對所有的通訊模式,網(wǎng)絡對其中每一臺主機發(fā)出的信號都進行無條件復制并轉(zhuǎn)發(fā),所有主機都可以接收到所有信息(不管你是否需要),由于其不用路徑選擇,所以其網(wǎng)絡成本可以很低廉。有線電視網(wǎng)就是典型的廣播型網(wǎng)絡,我們的電視機實際上是接受到所有頻道的信號,但只將一個頻道的信號還原成畫面。在數(shù)據(jù)網(wǎng)絡中也允許廣播的存在,但其被限制在二層交換機的局域網(wǎng)范圍內(nèi),禁止廣播數(shù)據(jù)穿過路由器,防止廣播數(shù)據(jù)影響大面積的主機。第八頁,共二十九頁,2022年,8月28日廣播優(yōu)缺點:廣播的優(yōu)點:
1)網(wǎng)絡設備簡單,維護簡單,布網(wǎng)成本低廉
2)由于服務器不用向每個客戶機單獨發(fā)送數(shù)據(jù),所以服務器流量負載極低。
廣播的缺點:
1)無法針對每個客戶的要求和時間及時提供個性化服務。
2)網(wǎng)絡允許服務器提供數(shù)據(jù)的帶寬有限,客戶端的最大帶寬=服務總帶寬。例如有線電視的客戶端的線路支持100個頻道(如果采用數(shù)字壓縮技術(shù),理論上可以提供500個頻道),即使服務商有更大的財力配置更多的發(fā)送設備、改成光纖主干,也無法超過此極限。也就是說無法向眾多客戶提供更多樣化、更加個性化的服務。
3)廣播禁止允許在Internet寬帶網(wǎng)上傳輸。第九頁,共二十九頁,2022年,8月28日組播優(yōu)缺點:主機之間一對一組的通訊模式,也就是加入了同一個組的主機可以接受到此組內(nèi)的所有數(shù)據(jù),網(wǎng)絡中的交換機和路由器只向有需求者復制并轉(zhuǎn)發(fā)其所需數(shù)據(jù)。主機可以向路由器請求加入或退出某個組,網(wǎng)絡中的路由器和交換機有選擇的復制并傳輸數(shù)據(jù),即只將組內(nèi)數(shù)據(jù)傳輸給那些加入組的主機。這樣既能一次將數(shù)據(jù)傳輸給多個有需要(加入組)的主機,又能保證不影響其他不需要(未加入組)的主機的其他通訊。第十頁,共二十九頁,2022年,8月28日組播優(yōu)缺點:組播的優(yōu)點:
1)需要相同數(shù)據(jù)流的客戶端加入相同的組共享一條數(shù)據(jù)流,節(jié)省了服務器的負載。具備廣播所具備的優(yōu)點。
2)由于組播協(xié)議是根據(jù)接受者的需要對數(shù)據(jù)流進行復制轉(zhuǎn)發(fā),所以服務端的服務總帶寬不受客戶接入端帶寬的限制。IP協(xié)議允許有2億6千多萬個組播,所以其提供的服務可以非常豐富。
3)此協(xié)議和單播協(xié)議一樣允許在Internet寬帶網(wǎng)上傳輸。
組播的缺點:
1)與單播協(xié)議相比沒有糾錯機制,發(fā)生丟包錯包后難以彌補,但可以通過一定的容錯機制和QOS加以彌補。
2)現(xiàn)行網(wǎng)絡雖然都支持組播的傳輸,但在客戶認證、QOS等方面還需要完善,這些缺點在理論上都有成熟的解決方案,只是需要逐步推廣應用到現(xiàn)存網(wǎng)絡當中。第十一頁,共二十九頁,2022年,8月28日一些常用IP地址一、嚴格說來,已經(jīng)不是一個真正意義上的IP地址了。它表示的是這樣一個集合:所有不清楚的主機和目的網(wǎng)絡。這里的“不清楚”是指在本機的路由表里沒有特定條目指明如何到達。對本機來說,它就是一個“收容所”,所有不認識的“三無”人員,一律送進去。如果你在網(wǎng)絡設置中設置了缺省網(wǎng)關,那么Windows系統(tǒng)會自動產(chǎn)生一個目的地址為的缺省路由。二、
限制廣播地址。對本機來說,這個地址指本網(wǎng)段內(nèi)(同一廣播域)的所有主機。如果翻譯成人類的語言,應該是這樣:“這個房間里的所有人都注意了!”這個地址不能被路由器轉(zhuǎn)發(fā)。第十二頁,共二十九頁,2022年,8月28日一些常用IP地址三、本機地址,主要用于測試。用漢語表示,就是“我自己”。在Windows系統(tǒng)中,這個地址有一個別名“Localhost”。尋址這樣一個地址,是不能把它發(fā)到網(wǎng)絡接口的。除非出錯,否則在傳輸介質(zhì)上永遠不應該出現(xiàn)目的地址為“127.0.0.1”的數(shù)據(jù)包。四、
組播地址,注意它和廣播的區(qū)別。從到都是這樣的地址。特指所有主機,特指所有路由器。這樣的地址多用于一些特定的程序以及多媒體程序。如果你的主機開啟了IRDP(Internet路由發(fā)現(xiàn)協(xié)議,使用組播功能)功能,那么你的主機路由表中應該有這樣一條路由。第十三頁,共二十九頁,2022年,8月28日一些常用IP地址五、
如果你的主機使用了DHCP功能自動獲得一個IP地址,那么當你的DHCP服務器發(fā)生故障,或響應時間太長而超出了一個系統(tǒng)規(guī)定的時間,Wingdows系統(tǒng)會為你分配這樣一個地址。如果你發(fā)現(xiàn)你的主機IP地址是一個諸如此類的地址,很不幸,十有八九是你的網(wǎng)絡不能正常運行了。六、;
~;
私有地址,這些地址被大量用于企業(yè)內(nèi)部網(wǎng)絡中。一些寬帶路由器,也往往使用作為缺省地址。私有網(wǎng)絡由于不與外部互連,因而可能使用隨意的IP地址。保留這樣的地址供其使用是為了避免以后接入公網(wǎng)時引起地址混亂。使用私有地址的私有網(wǎng)絡在接入Internet時,要使用地址翻譯(NAT),將私有地址翻譯成公用合法地址。在Internet上,這類地址是不能出現(xiàn)的。第十四頁,共二十九頁,2022年,8月28日發(fā)送應用進程UDPIPv4數(shù)據(jù)鏈路UDPIPv4數(shù)據(jù)鏈路數(shù)據(jù)鏈路IPv4UDP接收應用進程以太網(wǎng)頭部IPv4頭部UDP頭部UDP數(shù)據(jù)子網(wǎng)目的以太網(wǎng)=ff:ff:ff:ff:ff:ff幀類型=0800目的協(xié)議=UDP目的端口=520Sendto目的IP=128.7.6.255目的端口=520丟棄協(xié)議=UDP幀類型0800128.7.6.99=單播128.7.6.255=廣播128.7.6.5=單播128.7.6.255=廣播協(xié)議=UDP端口=520第十五頁,共二十九頁,2022年,8月28日廣播的實現(xiàn)應用程序只能通過UDP方式發(fā)送廣播。一般情況下,如果調(diào)用sendto,只能向非廣播地址發(fā)送數(shù)據(jù)報。如果要發(fā)送廣播數(shù)據(jù)報,必須告訴內(nèi)核,可以通過設置SO_BROADCAST套接口選項來做到這一點。inton=1;setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(int));第十六頁,共二十九頁,2022年,8月28日廣播實例服務端為tserv.c,運行時需指定廣播地址和端口號,運行后每3秒發(fā)送一次廣播,將本機時間通知本子網(wǎng)內(nèi)所有主機。第十七頁,共二十九頁,2022年,8月28日服務器端程序tserv.c#include<sys/socket.h>#include<arpa/inet.h>#include<sys/ioctl.h>#include<stdio.h>#defineBUFLEN255voidgetcurtime(char*curtime){time_ttm;time(&tm);snprintf(curtime,BUFLEN,"%s\n",ctime(&tm));}intmain(intargc,char**argv){structsockaddr_inpeeraddr;intsockfd,on=1;intnum,i;charmsg[BUFLEN+1];if(argc!=3){printf("usage:%s<ipaddress><port>\n",argv[0]);exit(0);}sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd<0){fprintf(stderr,"socketcreatingerrorintserv.c\n");exit(1);}第十八頁,共二十九頁,2022年,8月28日setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(int));memset(&peeraddr,0,sizeof(structsockaddr_in));peeraddr.sin_family=AF_INET;if(inet_pton(AF_INET,argv[1],&peeraddr.sin_addr)<=0){printf("WrongdestIPaddress\n");exit(0);}peeraddr.sin_port=htons(atoi(argv[2]));for(;;){getcurtime(msg);inta;a=sendto(sockfd,msg,strlen(msg),0,(structsockaddr*)&peeraddr,sizeof(structsockaddr_in));printf("%d",a);fflush(stdout);sleep(3);}第十九頁,共二十九頁,2022年,8月28日客戶端程序tcli.c(只需偵聽某一固定端口的數(shù)據(jù)報,接收一個數(shù)據(jù)報就返回。)#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#include<stdio.h>#defineBUFLEN255intmain(intargc,char**argv){structsockaddr_inlocaladdr;intsockfd,n;charmsg[BUFLEN+1];if(argc!=2){printf("usage:%s<port>\n",argv[0]);exit(0);}sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd<0){fprintf(stderr,"socketcreatingerrorintcli.c\n");exit(1);}第二十頁,共二十九頁,2022年,8月28日memset(&localaddr,0,sizeof(structsockaddr_in));localaddr.sin_port=htons(atoi(argv[1]));localaddr.sin_addr.s_addr=htonl(INADDR_ANY);intopt=SO_REUSEADDR;setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));if(bind(sockfd,(structsockaddr*)&localaddr,sizeof(structsockaddr_in))<0){fprintf(stderr,"binderrorintcli.c\n");exit(2);}n=read(sockfd,msg,BUFLEN);if(n==-1){fprintf(stderr,"readerrorintcli.c\n");exit(3);}else{msg[n]=0;printf("%s",msg);}}第二十一頁,共二十九頁,2022年,8月28日程序運行結(jié)果如果在服務器端輸入./serv222.18.113.1711234則兩個客戶不會同時收到數(shù)據(jù)報。第二十二頁,共二十九頁,2022年,8月28日多播多播是通過D類地址進行的,D類地址的前4位為1110,后面28位為群播的組標識。地址范圍224.0.0.0到特殊的IPv4多播地址:224.0.0.0保留224.0.0.1本子網(wǎng)上所有主機224.0.0.2本子網(wǎng)上所有網(wǎng)關224.0.1.1NTP(網(wǎng)絡時間協(xié)議)組第二十三頁,共二十九頁,2022年,8月28日多播的原理當一個多播分組到達一個以太網(wǎng)時,形成幀后它的MAC地址為01:00:5e:xx:xx:xx,其后23位由多播組標識的后23位映射而成。例如目的地址為的多播分組,在以太網(wǎng)上幀的MAC地址就為01:00:5e:00:01:01,如下圖示。11100000000000000000000100000001000000010000000001011110000000000000000100000001IP地址MAC地址第二十四頁,共二十九頁,2022年,8月28日由于多播IP地址中組標識有28位,而映射到MAC地址的只有23位,還差5位,所以有32個組將映射成相同的MAC地址,例如,都映射到MAC地址01:00:5e:00:01:01。因此要由IP層來檢驗到達的多播分組是否是自已所加入的多播組。如果不是,則拋棄該分組。第二十五頁,共二十九頁,2022年,8月28日應用程序UDPIP層數(shù)據(jù)鏈路層52:37:4a:6d:7f:5e應用程序UDPIP層應用程序UDPIP層數(shù)據(jù)鏈路層52:23:4e:6f:2c:35數(shù)據(jù)鏈路層00:2e:2c:5f:ae:3f發(fā)送數(shù)據(jù)報端口1234通過ARP解析對應01:00:5e:00:01:01接收數(shù)據(jù)報端口1234應用程序指定加入多播組IP層指示接收MAC地址為01:00:5e:00:01:01的幀加入丟棄多播數(shù)據(jù)報在子網(wǎng)中的發(fā)送接收第二十六頁,共二十九頁,2022年,8月28日多播的實現(xiàn)
應用程序只需向多播組地址發(fā)送數(shù)據(jù)報,接收應用程序加入這個多播組。在指定端口上進行偵聽。加入多播組的方法是設置套接口選項IP_ADD_MEMBERSHIP.它要用要如下結(jié)構(gòu):Structip_mreq{structin_addrimr_multiaddr;/*IPv4的D類多播地址*/Structin_addrimr_interfa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村出售地皮合同范本
- 出口定金合同范本
- 業(yè)務用車租賃合同范本
- 入股果園合同范例
- 第五單元第14課文藝復興運動2023-2024學年九年級上冊歷史同步教學設計(部編版)
- 專利實施使用合同范本
- epc項目銷售合同范本
- 2024年溫州龍港農(nóng)商銀行招聘筆試真題
- 借條合同范本范文
- 保安顧問合同范本
- 北師大版二年級數(shù)學下冊各單元測試卷
- 品管圈PDCA改善案例-降低住院患者跌倒發(fā)生率
- GB/T 12996-2024電動輪椅車
- 成人氧氣吸入療法-中華護理學會團體標準
- 西師版二年級數(shù)學下冊全冊課件【完整版】
- 福利院裝修改造工程施工組織設計(225頁)
- 部編版六年級下冊語文課后詞語表(拼音)
- 環(huán)境空氣中臭氧的測定
- 第七章 化學物質(zhì)與酶的相互作用
- 機械畢業(yè)設計論文鋼筋自動折彎機的結(jié)構(gòu)設計全套圖紙
- 總體施工進度計劃橫道圖
評論
0/150
提交評論