IP多播技術及其應用

?

隨著全球互聯網(Internet)的迅猛發展,上網人數正以幾何級數快速增長,以因特網技術為主導的數據通信在通信業務總量中的比列迅速上升,因特網業務已成為多媒體通信業中發展最為迅速、競爭最為激烈的領域。Internet網絡傳輸和處理能力的大幅提高,使得網上應用業務越來越多,特別是視音頻壓縮技術的發展和成熟,使得網上視音頻業務成為Internet網上最重要的業務之一。

在Internet上實現的視頻點播(VOD)、可視電話、視頻會議等視音頻業務和一般業務相比,有著數據量大、時延敏感性強、持續時間長等特點。因此采用最少時間、最小空間來傳輸和解決視音頻業務所要求的網絡利用率高、傳輸速度快、實時性強的問題,就要采用不同于傳統單播、廣播機制的轉發技術及QoS服務保證機制來實現,而IP多播技術是解決這些問題的關鍵技術。

一、IP多播技術的概念

IP多播(也稱多址廣播或組播)技術,是一種允許一臺或多臺主機(多播源)發送單一數據包到多臺主機(一次的,同時的)的TCP/IP網絡技術。多播作為一點對多點的通信,是節省網絡帶寬的有效方法之一。在網絡音頻/視頻廣播的應用中,當需要將一個節點的信號傳送到多個節點時,無論是采用重復點對點通信方式,還是采用廣播方式,都會嚴重浪費網絡帶寬,只有多播才是最好的選擇。多播能使一個或多個多播源只把數據包發送給特定的多播組,而只有加入該多播組的主機才能接收到數據包。目前,IP多播技術被廣泛應用在網絡音頻/視頻廣播、AOD/VOD、網絡視頻會議、多媒體遠程教育、“push”技術(如股票行情等)和虛擬現實游戲等方面。

二、IP多播技術的基礎知識

1. IP多播地址和多播組

IP多播通信必須依賴于IP多播地址,在IPv4中它是一個D類IP地址,范圍從224.0.0.0到239.255.255.255,并被劃分為局部鏈接多播地址、預留多播地址和管理權限多播地址三類。其中,局部鏈接多播地址范圍在224.0.0.0~224.0.0.255,這是為路由協議和其它用途保留的地址,路由器并不轉發屬于此范圍的IP包;預留多播地址為224.0.1.0~238.255.255.255,可用于全球范圍(如Internet)或網絡協議;管理權限多播地址為239.0.0.0~239.255.255.255,可供組織內部使用,類似于私有IP地址,不能用于Internet,可限制多播范圍。
使用同一個IP多播地址接收多播數據包的所有主機構成了一個主機組,也稱為多播組。一個多播組的成員是隨時變動的,一臺主機可以隨時加入或離開多播組,多播組成員的數目和所在的地理位置也不受限制,一臺主機也可以屬于幾個多播組。此外,不屬于某一個多播組的主機也可以向該多播組發送數據包。

2.多播分布樹

為了向所有接收主機傳送多播數據,用多播分布樹來描述IP多播在網絡中傳輸的路徑。多播分布樹有兩個基本類型:有源樹和共享樹。

有源樹是以多播源作為有源樹的根,有源樹的分支形成通過網絡到達接收主機的分布樹,因為有源樹以最短的路徑貫穿網絡,所以也常稱為最短路徑樹(SPT)。共享樹以多播網中某些可選擇的多播路由中的一個作為共享樹的公共根,這個根被稱為匯合點(RP)。共享樹又可分為單向共享樹和雙向共享樹。單向共享樹指多播數據流必須經過共享樹從根發送到多播接收機。雙向共享樹指多播數據流可以不經過共享樹。

3.逆向路徑轉發

逆向路徑轉發(RPF)是多播路由協議中多播數據轉發過程的基礎,其工作機制是當多播信息通過有源樹時,多播路由器檢查到達的多播數據包的多播源地址,以確定該多播數據包所經過的接口是否在有源的分支上,如果在,則RPF檢查成功,多播數據包被轉發;如果RPF檢查失敗,則丟棄該多播數據包。

4.Internet多播主干(MBONE)網絡

Internet多播主干(MBONE)網絡是由一系列相互連接的子網主機和相互連接支持IP多播的路由器組成。它可以看成是一個架構在Internet物理網絡上層的虛擬網,在該虛擬網中,多播源發出的多播信息流可直接在支持IP多播的路由器組之間傳輸,而在多播路由器組和非多播路由器組之間要通過點對點隧道技術進行傳輸。

三、IP多播路由及其協議

1. IP多播路由的基本類型

多播路由的一種常見的思路就是在多播組成員之間構造一棵擴展分布樹。在一個特定的“發送源,目的組”對上的IP多播流量都是通過這個擴展樹從發送源傳輸到接受者的,這個擴展樹連接了該多播組中所有主機。不同的IP多播路由協議使用不同的技術來構造這些多播擴展樹,一旦這個樹構造完成,所有的多播流量都將通過它來傳播。?
根據網絡中多播組成員的分布,總的說來IP多播路由協議可以分為以下兩種基本類型。第一種假設多播組成員密集地分布在網絡中,也就是說,網絡大多數的子網都至少包含一個多播組成員,而且網絡帶寬足夠大,這種被稱作“密集模式”(Dense-Mode)的多播路由協議依賴于廣播技術來將數據“推”向網絡中所有的路由器。密集模式路由協議包括距離向量多播路由協議(DVMRP:Distance Vector Multicast Routing Protocol)、多播開放最短路徑優先協議(MOSPF:Multicast Open Shortest Path First)和密集模式獨立多播協議(PIM-DM:Protocol-Independent Multicast-Dense Mode)等。

多播路由的第二種類型則假設多播組成員在網絡中是稀疏分散的,并且網絡不能提供足夠的傳輸帶寬,比如Internet上通過ISDN線路連接分散在許多不同地區的大量用戶。在這種情況下,廣播就會浪費許多不必要的網絡帶寬從而可能導致嚴重的網絡性能問題。于是稀疏模式多播路由協議必須依賴于具有路由選擇能力的技術來建立和維持多播樹。稀疏模式主要有基于核心樹的多播協議(CBT:Core Based Tree)和稀疏模式獨立協議多播(PIM-SM:Protocol-Independent Multicast-Sparse Mode)。

2.密集模式協議

(1)距離向量多播路由協議 (DVMRP)

第一個支持多播功能的路由協議就是距離向量多播路由協議。它已經被廣泛地應用在多播骨干網MBONE上。
DVMRP為每個發送源和目的主機組構建不同的分布樹。每個分布樹都是一個以多播發送源作為根,以多播接受目的主機作為葉的最小擴展分布樹。這個分布樹為發送源和組中每個多播接受者之間提供了一個最短路徑,這個以“跳數”為單位的最短路徑就是DVMRP的量度。當一個發送源要向多播組中發送消息時,一個擴展分布樹就根據這個請求而建立,并且使用“廣播和修剪”的技術來維持這個擴展分布樹。

擴展分布樹構建過程中的選擇性發送多播包的具體運作是:當一個路由器接收到一個多播包,它先檢查它的單播路由表來查找到多播組發送源的最短路徑的接口,如果這個接口就是這個多播包到達的接口,那么路由器就將這個多播組信息記錄到它的內部路由表(指明該組數據包應該發送的接口),并且將這個多播包向除了接受到該數據包的路由器以外的其他臨近路由器繼續發送。如果這個多播包的到達接口不是該路由器到發送源的最短路徑的接口,那么這個包就被丟棄。這種機制被稱為“反向路徑廣播”(Reverse-Path Broadcasting)機制,保證了構建的樹中不會出現環,而且從發送源到所有接受者都是最短路徑。

對子網中密集分布的多播組來說DVMRP能夠很好的運作,但是對于在范圍比較大的區域上分散分布的多播組來說,周期性的廣播行為會導致嚴重的性能問題。DVMRP不能支持大型網絡中稀疏分散的多播組。

(2)多播開放最短路徑優先 (MOSPF)

開放最短路徑優先(OSPF)是一個單播路由協議,它將數據包在最小開銷路徑上進行路由傳送,這里的開銷是表示鏈路狀態的一種量度。除了路徑中的跳數以外,其他能夠影響路徑開銷的網絡性能參數還有負載平衡信息、應用程序需要的QoS等。

MOSPF是為單播路由多播使用設計的。MOSPF依賴于OSPF作為單播路由協議,就象DVMRP也包含它自己的單播協議一樣。在一個OSPF/MOSPF網絡中每個路由器都維持一個最新的全網絡拓撲結構圖。這個“鏈路狀態”信息被用來構建多播分布樹。

每個MOSPF路由器都通過IGMP協議周期性的收集多播組成員關系信息。這些信息和這些鏈路狀態信息被發送到其路由域中的所有其他路由器。路由器將根據它們從臨近路由器接收到的這些信息更新他們的內部連接狀態信息。由于每個路由器都清楚整個網絡的拓撲結構,就能夠獨立的計算出一個最小開銷擴展樹,將多播發送源和多播組成員分別作為樹的根和葉。這個樹就是用來將多播流從發送源發送到多播組成員的路徑。

(3)獨立多播密集模式協議(PIM-DM)

獨立多播協議(PIM)是一種標準的多播路由協議,并能夠在Internet上提供可擴展的域間多播路由而不依賴于任何單播協議。PIM有兩種運行模式,一種是密集分布多播組模式,另一個是稀疏分布多播組模式,前者被稱為獨立多播密集模式協議(PIM-DM),后者被稱為獨立多播稀疏模式協議(PIM-SM)。

PIM-DM有點類似于DVMRP,這兩個協議都使用了反向路徑多播機制來構建分布樹。它們之間的主要不同在于PIM完全不依賴于網絡中的單播路由協議而DVMRP依賴于某個相關的單播路由協議機制,并且PIM-DM比DVMRP簡單。

PIM-DM協議和所有的密集模式路由協議一樣也是數據驅動的。但是既然PIM-DM不依賴于任何單播路由協議,路由器某個接收端口(就是返回到源的最短路徑的端口)接收到的多播數據包被發送到所有下行接口直到不需要的分枝從樹中被修剪掉。DVMRP在樹構建階段能夠使用單播協議提供的拓撲數據有選擇性的向下行發送數據包,PIM-DM則更加傾向于簡單性和獨立性,甚至不惜增加數據包復制引起的額外開銷。

2.稀疏模式多播路由協議

?

當多播組在網絡中集中分布或者網絡提供足夠大帶寬的情況下,密集模式多播路由協議是一個有效的方法,當多播組成員在廣泛區域內稀疏分布時,就需要另一種方法即稀疏模式多播路由協議將多播流量控制在連接到多播組成員的鏈路路徑上,而不會“泄漏”到不相關的鏈路路徑上,這樣既保證了數據傳輸的安全,又能夠有效的控制網絡中的總流量和路由器的負載。

(1)基于核心樹的多播協議 (CBT)

和DVMRP和MOSPF為每個“發送源、目的組”對構建最短路徑樹不同的是,CBT協議只構建一個樹給組中所有成員共享,這個樹也就被稱為共享樹。整個多播組的多播通信量都在這個共享樹上進行收發而不論發送源有多少或者在什么位置。這種共享樹的使用能夠極大的減少路由器中的多播狀態信息。

CBT共享樹有一個核心路由器用來構建這個樹。要加入的路由器發送加入請求給這個核心路由器。核心路由器接收到加入請求后,沿反路徑返回一個確認,這樣就構成了樹的一個分枝。加入請求數據包在被確認之前不需要一直被傳送到核心路由器。如果加入請求包在到達核心路由器之前先到達樹上的某個路由器,該路由器就接收下這個請求包而不繼續向前發送并確認這個請求包。發送請求的路由器就連接到共享樹上了。 CBT將多播流量集中在最少數量的鏈路而不是在一個基于發送源的共享樹上。集中在核心路由器上的流量可能會引起多播路由的某些問題。某些版本的CBT支持多個多播核心的使用,和單個多播核心相比多核心更能達到負載平衡。

(2)獨立多播稀疏模式協議 (PIM-SM)

和CBT相似,PIM-SM被設計成將多播限制在需要收發的路由器上。PIM-SM圍繞一個被稱為集中點(RP:Rendezvous Point)的路由器構建多播分布樹。這個集中點扮演著和CBT核心路由器相同的角色,接收者在集中點能查找到新的發送源。但是PIM-SM比CBT更靈活,CBT的樹通常是多播組共享樹,PIM-SM中的獨立的接收者可以選擇是構建組共享樹還是最短路徑樹。

PIM-SM協議最初先為多播組構建一個組共享樹。這個樹由連接到集中點的發送者和接收者共同構建,就像CBT協議圍繞著核心路由器構建的共享樹一樣。這共享樹建立以后,一個接受者(實際上是最接近這個接收者的路由器)可以選擇通過最短路徑樹改變到發送源的連接。這個操作的過程是通過向發送源發送一個PIM加入請求完成的。一旦從發送源到接收者的最短路徑建立了,通過RP的外部分枝就被修剪掉了。

四、IP多播路由中的隧道傳輸機制

多播中的隧道概念指將多播包再封裝成一個IP數據包在不支持多播的互聯網絡中路由傳輸。最有名的多播隧道的例子就是MBONE(采用DVMRP協議)。在隧道的入口處進行數據包的封裝,在隧道的出口處則進行拆封。在達到本地全IP多播配置傳輸機制上,隧道機制非常有用。

五、IP多播技術的應用

IP多播應用大致可以分為三類: 點對多點應用,多點對點應用和多點對多點應用。

1.點對多點應用

點對多點應用是指一個發送者,多個接收者的應用形式,這是最常見的多播應用形式。典型的應用包括:媒體廣播、媒體推送、信息緩存、事件通知和狀態監視。

媒體廣播:如演講、演示、會議等按日程進行的事件。其傳統媒體分發手段通常采用電視和廣播。這一類應用通常需要一個或多個恒定速率的數據流,當采用多個數據流(如語音和視頻)時,往往它們之間需要同步,并且相互之間有不同的優先級。它們往往要求較高的帶寬、較小的延時抖動,但是對絕對延時的要求不是很高。
媒體推送:如新聞標題、天氣變化、運動比分等一些非商業關鍵性的動態變化的信息。它們要求的帶寬較低、對延時也沒有什么要求。

信息緩存:如網站信息、執行代碼和其他基于文件的分布式復制或緩存更新。它們對帶寬的要求一般,對延時的要求也一般。

事件通知:如網絡時間、組播會話日程、隨機數字、密鑰、配置更新、有效范圍的網絡警報或其他有用信息。它們對帶寬的需求有所不同,但是一般都比較低,對延時的要求也一般。

狀態監視:如股票價格、傳感設備、安全系統、生產信息或其他實時信息。這類帶寬要求根據采樣周期和精度有所不同,可能會有恒定速率帶寬或突發帶寬要求,通常對帶寬和延時的要求一般。

2.多點對點的應用

多點對點應用是指多個發送者,一個接收者的應用形式。通常是雙向請求響應應用,任何一端(多點或點)都有可能發起請求。典型應用包括:資源查找、數據收集、網絡競拍、信息詢問和Juke Box。

資源查找:如服務定位,它要求的帶寬較低,對時延的要求一般。

數據收集: 它是點對多點應用中狀態監視應用的反向過程。它可能由多個傳感設備把數據發回給一個數據收集主機。帶寬要求根據采樣周期和精度有所不同,可能會有恒定速率帶寬或突發帶寬要求,通常這類應用對帶寬和延時的要求一般。

網絡競拍:拍賣者拍賣產品,而多個競拍者把標價發回給拍賣者。

信息詢問:詢問者發送一個詢問,所有被詢問者返回應答。通常這對帶寬的要求較低,對延時不太敏感。

Juke Box:如支持準點播(Near-On-Demand)的音視頻倒放。通常接收者采用“帶外的”協議機制(如HTTP、RTSP、SMTP,也可以采用組播方式)發送倒放請求給一個調度隊列。它對帶寬的要求較高,對延時的要求一般。

3.多點對多點的應用

多點對多點應用是指多個發送者和多個接收者的應用形式。通常,每個接收者可以接收多個發送者發送的數據,同時,每個發送者可以把數據發送給多個接收者。典型應用包括:多點會議、資源同步、并行處理、協同處理、遠程學習、討論組、分布式交互模擬(DIS)、多人游戲和Jam Session等。

多點會議: 通常音/視頻和文本應用構成多點會議應用。在多點會議中,不同的數據流擁有不同的優先級。傳統的多點會議采用專門的多點控制單元來協調和分配它們,采用多播可以直接由任何一個發送者向所有接收者發送,多點控制單元用來控制當前發言權。這類應用對帶寬和延時要求都比較高。

資源同步:如日程、目錄、信息等分布數據庫的同步。它們對帶寬和延時的要求一般。
并行處理:如分布式并行處理。它對帶寬和延時的要求都比較高。
協同處理:如共享文檔的編輯。它對帶寬和延時的要求一般。
遠程學習:這實際上是媒體廣播應用加上對上行數據流(允許學生向老師提問)的支持。它對帶寬和延時的要求一般。
討論組:類似于基于文本的多點會議,還可以提供一些模擬的表達。
分布式交互模擬(DIS):它對帶寬和時延的要求較高。
多人游戲: 多人游戲是一種帶討論組能力的簡單分布式交互模擬。它對帶寬和時延的要求都比較高。
Jam Session:這是一種音頻編碼共享應用。它對帶寬和時延的要求都比較高。

IP多播帶入了許多新的應用并減少了網絡的擁塞和服務器的負擔。目前IP多播的應用范圍還不夠大,但它能夠降低占用帶寬,減輕服務器負荷,并能改善傳送數據的質量,尤其適用于需要大量帶寬的多媒體應用,如音頻、視頻等。這項新技術已成為當前網絡界的熱門話題,并將從根本上改變網絡的體系結構。

轉載于:https://www.cnblogs.com/iloverain/p/5502165.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257172.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257172.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257172.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【轉載】惱人的函數指針(一)

本文轉載自: http://www.cnblogs.com/AnnieKim/archive/2011/11/20/2255813.html#undefined> 這篇是為了加深記憶所寫。發現,很多知識若不經過反復的琢磨和動手實踐,是很難記得住的。 1) 函數指針的初始化。 函數如下: int Com…

dns服務器未響應

昨天還好好的,今天打開電腦顯示DNS服務器為響應。 解決辦法:右擊電腦下方圖標欄——打開Windows任務管理器——服務——服務(s)——找到DNS client和DHCP client——右擊重啟

php分頁原理

<?php 1.分頁原理所需數據&#xff1a; 總記錄數&#xff1a; $records mysql_num_rows() 每頁顯示&#xff1a; $pagesize 人為定義10 總頁數&#xff1a; $pages $records/$pagesize 當前頁&#xff1a; $page 自己選擇2.分頁的sql語句&#xff1a; SELECT * F…

從客戶端(CourseIssueContent=P財務審計師崗位認證招生簡章BR...)中檢測到有潛在危險的 Request.Form 值。...

說明: 請求驗證過程檢測到有潛在危險的客戶端輸入值&#xff0c;對請求的處理已經中止。該值可能指示危及應用程序安全的嘗試&#xff0c;如跨站點的腳本攻擊。通過在 Page 指令或 配置節中設置 validateRequestfalse 可以禁用請求驗證。但是&#xff0c;在這種情況下&#xff…

ubuntu安裝pytorch鏡像修改及下載

ubuntu安裝pytorch鏡像修改及下載 下載pytorch下載太慢&#xff0c;搞了很長時間&#xff0c;終于改好鏡像能快速下載了&#xff0c;記錄以下。 1.在/home/用戶名/ 下找到/.condarc 文件&#xff0c;可能需要你右擊鼠標顯示隱藏文件才能顯示&#xff0c; 2.把內容修改為清華等鏡…

R--線性回歸診斷(一)

線性回歸診斷--R 【轉載時請注明來源】&#xff1a;http://www.cnblogs.com/runner-ljt/ Ljt 勿忘初心 無畏未來 作為一個初學者&#xff0c;水平有限&#xff0c;歡迎交流指正。 在R中線性回歸&#xff0c;一般使用lm函數就可以得到線性回歸模型&#xff0c;但是得到的模型…

CSS屬性(根據繼承性分為兩類)

一、可繼承屬性 1》所有標簽可繼承&#xff1a; visibility:行高 cursor: 2》內聯標簽可繼承&#xff1a; line-height:行高 color:文字顏色 font-family:文字字體 font-size:文字大小 font-weight:文字加粗 text-decoration:文字下劃線 3》塊級標簽可繼承&#xff1a; text-in…

妙趣橫生的算法--棧和隊列

棧 棧的特點是先進后出&#xff0c;一張圖簡單介紹一下。 #include "stdio.h" #include "math.h" #include "stdlib.h" #define STACK_INIT_SIZE 20 #define STACKINCRE…

win10系統開不了機

電腦裝了雙系統&#xff0c;從ubuntu切回win10系統后&#xff0c;win10系統開不了機&#xff0c;一直轉圈&#xff0c;修復結果是什么C:\WINDOWS\System32\Logfiles\Srt\SrtTrail.txt問題&#xff0c;是了網上的常用方法都沒成功。 最后我的解決方案&#xff1a;強制關機后開機…

Android SDK打包

2015年6月18日 14:38:49 星期四 eclipse: 1. 將寫好的代碼上傳版本庫 2. 刪除 /bin/* 3. eclipse->project->clean... 4. 上一步自動生成 /bin/xx.jar 5. 復制/bin/xx.jar 到 /libs/xx.jar 6. 刪除 /src/* 7. 連同demo和剛才的工程文件夾壓縮給到對方(這樣可以避免包命…

MySQL 5.7.11 重置root密碼

1.修改/etc/my.conf&#xff0c;添加參數skip-grant-tables 2.重啟mysql service mysqld stop service mysqld start 3.用root 直接登錄 [rootbogon ~]# mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server versio…

resure挽救筆記本系統和一些相關的操作記錄

使用fedora23很久了, 但是感覺不是很流暢, 出現了一些不太穩定的體驗, 所以想改到centos7. 因為centos7的很多東西 跟 fedora23 很相近了. 所以應該是無縫過渡是選擇32位的系統還是選擇64位的系統?還是要使用 32位的 它是90%的人的選擇使用, 是普通人的通用選擇, 幾乎支持linu…

2021-06-08

opencv無法讀取mp4文件opencv讀取mp4文件時&#xff0c;總是VideoCapture.isopen()返回0,即無法打開cap。解決方法&#xff0c;將opencv安裝包的opencv_videoio_ffmpeg451_64文件復制進工程中。

Web網頁布局的主要方式

一、靜態布局&#xff08;static layout&#xff09; 即傳統Web設計&#xff0c;網頁上的所有元素的尺寸一律使用px作為單位。 1、布局特點 不管瀏覽器尺寸具體是多少&#xff0c;網頁布局始終按照最初寫代碼時的布局來顯示。常規的pc的網站都是靜態&#xff08;定寬度&#xf…

HDU 3966 Aragorn's Story (樹鏈點權剖分,成段修改單點查詢)

題目鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3966 樹鏈剖分的模版&#xff0c;成段更新單點查詢。熟悉線段樹的成段更新的話就小case啦。 1 //樹鏈剖分 邊權修改 單點查詢2 #include <iostream>3 #include <cstring>4 #include <algorithm&…

微信分享無響應的解決

微信分享無響應的解決 最近使用友盟的社會化分享&#xff0c;集成到程序中進行分享功能的開發。 可是一開始還是可以正常使用&#xff0c;今天突然發現微信分享&#xff08;好友分享和朋友圈分享&#xff09;均是點擊沒有響應&#xff0c;也就是點擊后&#xff0c;沒有任何回饋…

x64電腦連接x32共享打印機

下載64位打印機驅動到64位電腦&#xff0c;在連接32位共享打印機出錯時出現在本地尋找相關inf文件&#xff0c;此時將64位打印機驅動解壓(不在64位本地安裝)并找到相應inf文件&#xff0c;載入即可連接成功。

HTML中的br標簽講解(菜鳥)

br標簽&#xff1a;如何在HTML中換行&#xff1f;可以使用br標簽 1.br標簽作用&#xff1a;換行 2.br標簽格式&#xff1a;<br/> 3.br標簽的注意點&#xff1a; 3.1多個br標簽可以連續使用&#xff0c;使用了多少個br標簽就會換多少行 3.2由于HTML的作用就是用來給文本添…

Cocos2d-3.x版的HelloWorld工程分析 (二)

我們HelloWorld 從applicationDidFinishLaunching()后&#xff0c; 大部分人都會從這部分代碼開始研究&#xff0c;如果想要研究main函數 如何調用applicationDidFinishLaunching() 傳送門 http://blog.csdn.net/hiwoshixiaoyu/article/details/51472707 #include "App…

安卓中bundle的使用

Bundle類用作攜帶數據&#xff0c;它類似于Map&#xff0c;用于存放key-value形式的值&#xff0c;相對于Map&#xff0c;它提供了各種常用類型的putXxx()/getXxx()方法&#xff0c;Bundle的內部實際上是使用了HashMap類型的變量來存放PutXxx()方法存入的值。 SDK里是這樣描述&…