本發(fā)明涉及一種用于在服務(wù)器設(shè)備與客戶(hù)端設(shè)備之間以多播傳輸模式發(fā)送數(shù)據(jù)流的方法,以及實(shí)現(xiàn)所述方法的客戶(hù)端設(shè)備和服務(wù)器設(shè)備。該方法受益于將客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的多個(gè)網(wǎng)絡(luò)接口的存在。
使用多播通信模式的數(shù)據(jù)傳輸應(yīng)用是已知的。多播通信模式主要用在服務(wù)器設(shè)備必須向多個(gè)客戶(hù)端設(shè)備發(fā)送相同的數(shù)據(jù)流時(shí)。多播通信模式尤其用于在網(wǎng)絡(luò)上廣播多媒體節(jié)目的應(yīng)用,諸如,例如,用于在因特網(wǎng)上廣播電視節(jié)目、因特網(wǎng)上的視頻點(diǎn)播或無(wú)線電節(jié)目的應(yīng)用。
多播傳輸模式的一個(gè)優(yōu)點(diǎn)是避免了在通信網(wǎng)絡(luò)的某些部分上重復(fù)數(shù)據(jù)。
圖1a示意性地示出了在服務(wù)器設(shè)備(或服務(wù)器)101與客戶(hù)端設(shè)備(或客戶(hù)端)103、104和105之間使用多播通信模式的第一示例。在圖1a的示例中,通信鏈路106將服務(wù)器101連接到路由器102。通信鏈路107、108和109分別將路由器102連接到客戶(hù)端103、104和105。通信鏈路107(又或者108和109)和106在服務(wù)器101與客戶(hù)端103(又或者客戶(hù)端104和客戶(hù)端105)之間形成通信路徑106/107(又或者106/108和106/109)。因此,通過(guò)使用路徑106/107(又或者路徑106/108和路徑106/109),客戶(hù)端103(又或者客戶(hù)端104和客戶(hù)端105)具有將其連接到服務(wù)器設(shè)備101的網(wǎng)絡(luò)接口。
每個(gè)客戶(hù)端103、104和105可以是能夠使用由服務(wù)器101發(fā)送的數(shù)據(jù)流的終端客戶(hù)端(諸如,多媒體設(shè)備)。多媒體設(shè)備可以例如是計(jì)算機(jī)、觸摸平板、智能電話、電視機(jī)或數(shù)字電視節(jié)目解碼器。每個(gè)客戶(hù)端103、104和105也可以是終端客戶(hù)端與服務(wù)器101之間的中間客戶(hù)端。中間客戶(hù)端可以例如是將局部網(wǎng)絡(luò)(局域網(wǎng)-lan)中的多媒體流中繼到終端客戶(hù)端設(shè)備的因特網(wǎng)網(wǎng)關(guān)。
多播通信模式需要希望接收在多播組上發(fā)送的數(shù)據(jù)流的客戶(hù)端訂閱多播組。管理多播組的訂閱需要在多播組中涉及的每個(gè)服務(wù)器、路由器和客戶(hù)端之間交換多播組管理請(qǐng)求。這種訂閱管理通常由rfc988(版本0)、1112(版本1)、2236(版本2)和3376(版本3))中相繼地描述的igmp(因特網(wǎng)組管理協(xié)議)來(lái)實(shí)現(xiàn)。
在圖1a的示例中,只有客戶(hù)端103是被稱(chēng)為目標(biāo)多播組的多播組的訂戶(hù)。為此,客戶(hù)端103已經(jīng)向路由器102發(fā)送了igmp訂閱請(qǐng)求,以便通知路由器102客戶(hù)端103希望訂閱目標(biāo)多播組。如果沒(méi)有連接到路由器102的其它客戶(hù)端已經(jīng)訂閱了所述目標(biāo)多播組,則路由器102向服務(wù)器101發(fā)送igmp訂閱請(qǐng)求,以便通知服務(wù)器客戶(hù)端希望接收與所述目標(biāo)多播組對(duì)應(yīng)的數(shù)據(jù)流。以這種方式,激活與所述目標(biāo)多播組對(duì)應(yīng)的數(shù)據(jù)流的傳輸。只要訂閱是無(wú)效的,在服務(wù)器101與客戶(hù)端103之間就沒(méi)有與數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)分組通過(guò)。一旦訂閱是有效的,數(shù)據(jù)分組p1、p2、p3、p4就通過(guò)路徑106/107。
圖1b示意性地示出了在服務(wù)器設(shè)備101與客戶(hù)端設(shè)備103、104和105之間使用多播通信模式的第二示例。在該示例中,客戶(hù)端104和105訂閱與客戶(hù)端103相同的多播組。為此,它們各自向路由器102發(fā)送igmp訂閱請(qǐng)求,以便向其指示他們希望訂閱所述目標(biāo)多播組。因?yàn)樵谶@種情況下,客戶(hù)端103已經(jīng)是目標(biāo)多播組的訂戶(hù),所以在接收到來(lái)自客戶(hù)端104和105的igmp訂閱請(qǐng)求之后,路由器102不必向服務(wù)器101發(fā)送igmp訂閱請(qǐng)求。圖1b中的示例示出了多播通信模式的優(yōu)點(diǎn)。雖然三個(gè)客戶(hù)端是訂戶(hù),但分組p7和p8不在鏈路106上重復(fù),所述鏈路106作為通信路徑106/107、106/108和106/109之間的共用鏈路。僅在路由器102之后,在通信路徑106/107、106/108和106/109之間不共用的鏈路107、108和109上重復(fù)分組,所述分組已被路由器102重復(fù)。以這種方式,所有路徑共用的每個(gè)通信路徑的部分不會(huì)被每個(gè)分組的多個(gè)副本過(guò)載。
在下文中,當(dāng)我們談到訂閱請(qǐng)求和取消訂閱請(qǐng)求時(shí),這些請(qǐng)求與如由igmp協(xié)議定義的igmp訂閱請(qǐng)求和igmp取消訂閱請(qǐng)求對(duì)應(yīng)。
圖1c示意性地示出了當(dāng)客戶(hù)端設(shè)備具有將客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的多個(gè)網(wǎng)絡(luò)接口時(shí)的多播通信模式的限制。在該示例中,每個(gè)客戶(hù)端103、104和105具有將其連接到服務(wù)器101的兩個(gè)網(wǎng)絡(luò)接口。客戶(hù)端103(又或者104和105)具有通過(guò)路徑106/107(又或者106/108和106/109)將該客戶(hù)端103連接到服務(wù)器101的第一接口和通過(guò)包括鏈路110和112(又或者鏈路110和113以及鏈路110和114)并且通過(guò)路由器111的路徑110/112(又或者110/113和110/114)將該客戶(hù)端103連接到服務(wù)器101的第二網(wǎng)絡(luò)接口。如當(dāng)前定義的多播通信模式不能使客戶(hù)端從多個(gè)通信接口的存在受益。這是因?yàn)槎嗖ネㄐ胖荒苁褂靡粋€(gè)通信路徑來(lái)發(fā)送數(shù)據(jù)流。例如,在訂閱多播組的情況下,客戶(hù)端只在路徑106/107或路徑110/112上接收與多播組對(duì)應(yīng)的數(shù)據(jù)流。因?yàn)槊總€(gè)通信路徑與帶寬相關(guān)聯(lián),所以?xún)蓚€(gè)路徑106/107和110/112的組合使用將允許增加客戶(hù)端103的接收帶寬。
期望克服現(xiàn)有技術(shù)的這些各種缺陷。
尤其期望使得訂閱多播組的客戶(hù)端能夠從服務(wù)器獲得數(shù)據(jù)流,以從將其連接到可用于所述客戶(hù)端的服務(wù)器的所有網(wǎng)絡(luò)接口受益。
尤其期望提供一種易于實(shí)現(xiàn)并且低成本的解決方案。
根據(jù)本發(fā)明的第一方面,本發(fā)明涉及一種在服務(wù)器設(shè)備與客戶(hù)端設(shè)備之間根據(jù)多播傳輸模式發(fā)送數(shù)據(jù)流的方法,該方法包括由客戶(hù)端設(shè)備實(shí)現(xiàn)的以下步驟:獲得用于訂閱多播組(稱(chēng)為目標(biāo)多播組)的第一請(qǐng)求,所述多播組允許獲得數(shù)據(jù)流;利用多個(gè)第二訂閱請(qǐng)求替換用于訂閱目標(biāo)多播組的第一請(qǐng)求,每個(gè)第二訂閱請(qǐng)求與多播子組的集合中的多播子組相關(guān)聯(lián),每個(gè)多播子組允許獲得形成數(shù)據(jù)流的子部分的數(shù)據(jù)子流,所有多播子組允許通過(guò)組合數(shù)據(jù)子流來(lái)獲得所述數(shù)據(jù)流;將網(wǎng)絡(luò)接口與每個(gè)第二訂閱請(qǐng)求相關(guān)聯(lián),每個(gè)相關(guān)聯(lián)的網(wǎng)絡(luò)接口從將服務(wù)器設(shè)備連接到客戶(hù)端設(shè)備并在客戶(hù)端設(shè)備上可用的網(wǎng)絡(luò)接口的集合中獲??;通過(guò)與所述第二請(qǐng)求相關(guān)聯(lián)的網(wǎng)絡(luò)接口向服務(wù)器設(shè)備發(fā)送每個(gè)第二訂閱請(qǐng)求;接收與所發(fā)送的第二訂閱請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)子流,所接收到的每個(gè)數(shù)據(jù)子流通過(guò)發(fā)送與所述數(shù)據(jù)子流相關(guān)聯(lián)的第二訂閱請(qǐng)求的網(wǎng)絡(luò)接口被接收到;使用所接收到的數(shù)據(jù)子流來(lái)重構(gòu)數(shù)據(jù)流,以便能夠使用所述數(shù)據(jù)流。
因此,本發(fā)明允許從客戶(hù)端上可用的所有網(wǎng)絡(luò)接口受益。與多播組對(duì)應(yīng)的數(shù)據(jù)流的數(shù)據(jù)被分配在數(shù)據(jù)子流的集合中,每個(gè)數(shù)據(jù)子流與多播子組對(duì)應(yīng)。然后,客戶(hù)端可以從各種網(wǎng)絡(luò)接口訂閱多播子組,并通過(guò)所述網(wǎng)絡(luò)接口接收數(shù)據(jù)子流。通過(guò)多個(gè)網(wǎng)絡(luò)接口對(duì)數(shù)據(jù)流的接收允許將各種網(wǎng)絡(luò)接口上可用的帶寬相加在一起。
根據(jù)一個(gè)實(shí)施方式,在獲得用于訂閱目標(biāo)多播組的第一請(qǐng)求之后,客戶(hù)端設(shè)備在表示多播組的信息的集合中尋找表示所述目標(biāo)多播組的信息,當(dāng)在表示多播組的信息的集合中找到表示所述目標(biāo)多播組的信息時(shí),第一訂閱請(qǐng)求被第二訂閱請(qǐng)求替換。
根據(jù)一個(gè)實(shí)施方式,當(dāng)在表示多播組的信息的集合中尋求表示所述目標(biāo)多播組的信息時(shí),客戶(hù)端設(shè)備實(shí)現(xiàn)以下步驟:向服務(wù)器設(shè)備發(fā)送被稱(chēng)為getcaps請(qǐng)求的請(qǐng)求,請(qǐng)求表示可由所述服務(wù)器設(shè)備傳遞的每個(gè)數(shù)據(jù)流的信息;從所述服務(wù)器設(shè)備接收稱(chēng)為sendcaps請(qǐng)求的至少一個(gè)請(qǐng)求,提供表示可由所述服務(wù)器設(shè)備傳遞的每個(gè)數(shù)據(jù)流的信息;從表示所接收到的數(shù)據(jù)流的信息構(gòu)建表示多播組的信息的集合;在表示如此構(gòu)建的多播組的信息的集合中尋找表示所述目標(biāo)多播組的信息。
以這種方式,當(dāng)客戶(hù)端設(shè)備沒(méi)有關(guān)于多播組上可用的數(shù)據(jù)流的信息時(shí),該客戶(hù)端設(shè)備可以詢(xún)問(wèn)服務(wù)器設(shè)備,以便獲得該信息。
根據(jù)一個(gè)實(shí)施方式,表示每個(gè)數(shù)據(jù)流的信息包括表示所述數(shù)據(jù)流的多播地址的信息和表示與所述數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)子流的集合的信息,以及(針對(duì)每個(gè)數(shù)據(jù)子流)表示所述數(shù)據(jù)子流的多播地址的信息。
根據(jù)一個(gè)實(shí)施方式,表示每個(gè)數(shù)據(jù)流的信息還包括表示每個(gè)數(shù)據(jù)流和每個(gè)數(shù)據(jù)子流的傳輸速率的信息。
根據(jù)一個(gè)實(shí)施方式,每個(gè)getcaps請(qǐng)求和每個(gè)sendcaps請(qǐng)求與因特網(wǎng)組管理協(xié)議(igmp)兼容。
根據(jù)一個(gè)實(shí)施方式,當(dāng)接收到與所發(fā)送的第二訂閱請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)子流時(shí),客戶(hù)端設(shè)備檢查針對(duì)所發(fā)送的每個(gè)第二訂閱請(qǐng)求對(duì)應(yīng)于與所述第二訂閱請(qǐng)求相關(guān)聯(lián)的多播子組的數(shù)據(jù)子流是否被接收到,并且如果每個(gè)數(shù)據(jù)子流被接收到,則重構(gòu)所述數(shù)據(jù)流。
根據(jù)一個(gè)實(shí)施方式,當(dāng)至少一個(gè)數(shù)據(jù)子流未被接收時(shí),客戶(hù)端設(shè)備向服務(wù)器設(shè)備發(fā)送針對(duì)每個(gè)多播子組(針對(duì)該多播子組已經(jīng)發(fā)送了第二訂閱請(qǐng)求)的取消訂閱請(qǐng)求。
根據(jù)一個(gè)實(shí)施方式,當(dāng)在表示多播組的信息的集合中未找到表示所述多播組的信息時(shí),客戶(hù)端設(shè)備向服務(wù)器設(shè)備發(fā)送第一訂閱請(qǐng)求,以接收數(shù)據(jù)流。
根據(jù)一個(gè)實(shí)施方式,當(dāng)在接收與所發(fā)送的第二訂閱請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)子流期間客戶(hù)端設(shè)備檢測(cè)將客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的新的網(wǎng)絡(luò)接口的打開(kāi)時(shí),客戶(hù)端設(shè)備實(shí)現(xiàn)以下步驟:通過(guò)添加檢測(cè)到的新的網(wǎng)絡(luò)接口來(lái)增強(qiáng)所述網(wǎng)絡(luò)接口的集合;將所述新的網(wǎng)絡(luò)接口與至少一個(gè)第二請(qǐng)求相關(guān)聯(lián),所述至少一個(gè)第二請(qǐng)求用于訂閱與目標(biāo)多播組對(duì)應(yīng)的多播子組的集合中的多播子組;通過(guò)使用新的網(wǎng)絡(luò)接口向服務(wù)器設(shè)備發(fā)送與所述新的網(wǎng)絡(luò)接口相關(guān)聯(lián)的每個(gè)第二訂閱請(qǐng)求;當(dāng)通過(guò)包括所述新的網(wǎng)絡(luò)接口的多個(gè)網(wǎng)絡(luò)接口同時(shí)接收到和與通過(guò)所述新的網(wǎng)絡(luò)接口發(fā)送的第二訂閱請(qǐng)求相關(guān)聯(lián)的多播子組對(duì)應(yīng)的數(shù)據(jù)子流(稱(chēng)為重復(fù)子流)時(shí),發(fā)送對(duì)與通過(guò)除了新的網(wǎng)絡(luò)接口以外的網(wǎng)絡(luò)接口接收到的重復(fù)子流對(duì)應(yīng)的每個(gè)多播子組的取消訂閱請(qǐng)求。
根據(jù)一個(gè)實(shí)施方式,當(dāng)通過(guò)新的網(wǎng)絡(luò)接口未接收到和與通過(guò)所述新的網(wǎng)絡(luò)接口發(fā)送的第二訂閱請(qǐng)求相關(guān)聯(lián)的多播子組對(duì)應(yīng)的數(shù)據(jù)子流時(shí),客戶(hù)端設(shè)備向服務(wù)器設(shè)備發(fā)送對(duì)與未被接收的數(shù)據(jù)子流對(duì)應(yīng)的多播子組的取消訂閱請(qǐng)求。
根據(jù)一個(gè)實(shí)施方式,當(dāng)在接收與所發(fā)送的第二訂閱請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)子流期間客戶(hù)端設(shè)備檢測(cè)將客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的網(wǎng)絡(luò)接口的抑制時(shí),客戶(hù)端設(shè)備實(shí)現(xiàn)以下步驟:通過(guò)移除被抑制的網(wǎng)絡(luò)接口來(lái)縮減所述網(wǎng)絡(luò)接口的集合;將先前與被抑制的網(wǎng)絡(luò)接口相關(guān)聯(lián)的每個(gè)第二訂閱請(qǐng)求與經(jīng)縮減的網(wǎng)絡(luò)接口的集合中的網(wǎng)絡(luò)接口相關(guān)聯(lián);使用經(jīng)縮減的網(wǎng)絡(luò)接口的集合中與每個(gè)第二訂閱請(qǐng)求相關(guān)聯(lián)的網(wǎng)絡(luò)接口向服務(wù)器設(shè)備發(fā)送所述每個(gè)第二訂閱請(qǐng)求,所述每個(gè)第二訂閱請(qǐng)求先前與被抑制的網(wǎng)絡(luò)接口相關(guān)聯(lián);如果在先前與被抑制的網(wǎng)絡(luò)接口相關(guān)聯(lián)的每個(gè)第二訂閱請(qǐng)求的傳輸之后,接收到與所發(fā)送的每個(gè)第二訂閱請(qǐng)求對(duì)應(yīng)的每個(gè)數(shù)據(jù)子流,則重構(gòu)所述多播流。
根據(jù)一個(gè)實(shí)施方式,如果在先前與被抑制的網(wǎng)絡(luò)接口相關(guān)聯(lián)的每個(gè)第二訂閱請(qǐng)求的傳輸之后,與所發(fā)送的第二訂閱請(qǐng)求對(duì)應(yīng)的至少一個(gè)數(shù)據(jù)子流未被接收到,則客戶(hù)端設(shè)備向服務(wù)器設(shè)備發(fā)送對(duì)每個(gè)多播子組的取消訂閱請(qǐng)求。
根據(jù)一個(gè)實(shí)施方式,所述方法包括由服務(wù)器設(shè)備實(shí)現(xiàn)的以下步驟:通過(guò)接收接口接收每個(gè)第二訂閱請(qǐng)求;在數(shù)據(jù)子流中分配數(shù)據(jù)流的數(shù)據(jù);通過(guò)對(duì)應(yīng)與接收和對(duì)應(yīng)于所述數(shù)據(jù)子流的多播子組相關(guān)聯(lián)的第二訂閱請(qǐng)求的接口的網(wǎng)絡(luò)接口發(fā)送每個(gè)數(shù)據(jù)子流。
根據(jù)一個(gè)實(shí)施方式,在將數(shù)據(jù)流的數(shù)據(jù)分配在數(shù)據(jù)子流中時(shí),考慮表示每個(gè)數(shù)據(jù)流和/或每個(gè)子流的傳輸速率的信息。
根據(jù)本發(fā)明的第二方面,本發(fā)明涉及一種能夠根據(jù)多播傳輸模式從服務(wù)器設(shè)備接收數(shù)據(jù)流的客戶(hù)端設(shè)備,該客戶(hù)端設(shè)備包括以下裝置:用于獲得用于訂閱多播組(稱(chēng)為目標(biāo)多播組)的第一請(qǐng)求的裝置,所述多播組允許獲得數(shù)據(jù)流;用于利用多個(gè)第二訂閱請(qǐng)求替換用于訂閱目標(biāo)多播組的第一請(qǐng)求的裝置,每個(gè)第二訂閱請(qǐng)求與多播子組的集合中的多播子組相關(guān)聯(lián),每個(gè)多播子組允許獲得形成數(shù)據(jù)流的子部分的數(shù)據(jù)子流,所有多播子組允許通過(guò)組合數(shù)據(jù)子流來(lái)獲得所述數(shù)據(jù)流;用于將網(wǎng)絡(luò)接口與每個(gè)第二訂閱請(qǐng)求相關(guān)聯(lián)的裝置,每個(gè)相關(guān)聯(lián)的網(wǎng)絡(luò)接口從將服務(wù)器設(shè)備連接到客戶(hù)端設(shè)備并在客戶(hù)端設(shè)備上可用的網(wǎng)絡(luò)接口的集合中獲??;用于在與所述第二請(qǐng)求相關(guān)聯(lián)的網(wǎng)絡(luò)接口上向服務(wù)器設(shè)備發(fā)送每個(gè)第二訂閱請(qǐng)求的裝置;用于接收與所發(fā)送的第二訂閱對(duì)應(yīng)的數(shù)據(jù)子流的裝置,所接收的每個(gè)數(shù)據(jù)子流通過(guò)發(fā)送與所述數(shù)據(jù)子流相關(guān)聯(lián)的第二訂閱請(qǐng)求的網(wǎng)絡(luò)接口被接收到;用于使用所接收到的數(shù)據(jù)子流來(lái)重構(gòu)數(shù)據(jù)流以便能夠使用所述數(shù)據(jù)流的裝置。
根據(jù)本發(fā)明的第三方面,本發(fā)明涉及一種能夠以多播傳輸模式向客戶(hù)端設(shè)備發(fā)送數(shù)據(jù)流的服務(wù)器設(shè)備,該服務(wù)器設(shè)備包括以下裝置:接收裝置,接收裝置用于接收與由客戶(hù)端設(shè)備發(fā)送的、替換用于訂閱由客戶(hù)端設(shè)備獲得的目標(biāo)多播組的第一請(qǐng)求的多個(gè)第二訂閱請(qǐng)求對(duì)應(yīng)的多個(gè)第二訂閱請(qǐng)求,所述目標(biāo)多播組允許獲取數(shù)據(jù)流,每個(gè)第二訂閱請(qǐng)求與多播子組的集合中的多播子組相關(guān)聯(lián),每個(gè)多播組允許獲得形成數(shù)據(jù)流的子部分的數(shù)據(jù)子流,所有多播子組允許通過(guò)組合所述數(shù)據(jù)子流獲得所述數(shù)據(jù)流;分配裝置,所述分配裝置用于將所述數(shù)據(jù)流的數(shù)據(jù)分配在所述數(shù)據(jù)子流中;發(fā)送裝置(desmoyensdetransmission),所述發(fā)送裝置用于通過(guò)與用于接收第二訂閱請(qǐng)求的接口對(duì)應(yīng)的網(wǎng)絡(luò)接口發(fā)送每個(gè)數(shù)據(jù)子流,所述第二訂閱請(qǐng)求與和所述數(shù)據(jù)子流對(duì)應(yīng)的多播子組相關(guān)聯(lián)。
根據(jù)本發(fā)明的第四方面,本發(fā)明涉及一種通信系統(tǒng),該通信系統(tǒng)包括根據(jù)第三方面的服務(wù)器設(shè)備以及至少一個(gè)根據(jù)第二方面的客戶(hù)端設(shè)備。
根據(jù)本發(fā)明的第五方面,本發(fā)明涉及一種計(jì)算機(jī)程序,該計(jì)算機(jī)程序包含用于當(dāng)所述程序由服務(wù)器設(shè)備或客戶(hù)端設(shè)備的處理器執(zhí)行時(shí)由所述客戶(hù)端設(shè)備或所述服務(wù)器設(shè)備實(shí)現(xiàn)根據(jù)第一方面的方法的指令。
根據(jù)本發(fā)明的第六方面,本發(fā)明涉及存儲(chǔ)裝置,該存儲(chǔ)裝置存儲(chǔ)計(jì)算機(jī)程序,該計(jì)算機(jī)程序包含用于當(dāng)所述程序由服務(wù)器設(shè)備或客戶(hù)端設(shè)備的處理器執(zhí)行時(shí)由所述客戶(hù)端設(shè)備或所述服務(wù)器設(shè)備實(shí)現(xiàn)根據(jù)第一方面的方法的指令。
上述本發(fā)明的特征(以及其它特征)將通過(guò)閱讀下面的示例實(shí)施方式的描述而更清晰地呈現(xiàn),結(jié)合附圖給出所述描述,其中:
-圖1a示意性地示出了在服務(wù)器設(shè)備與客戶(hù)端設(shè)備之間實(shí)現(xiàn)多播通信模式的第一示例;
-圖1b示意性地示出了在服務(wù)器設(shè)備與客戶(hù)端設(shè)備之間實(shí)現(xiàn)多播通信模式的第二示例;
-圖1c示意性地示出了當(dāng)客戶(hù)端設(shè)備具有將客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的多個(gè)網(wǎng)絡(luò)接口時(shí)的多播通信模式的限制;
-圖1d示意性地示出了當(dāng)客戶(hù)端設(shè)備具有將客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的多個(gè)網(wǎng)絡(luò)接口時(shí)的本發(fā)明的實(shí)現(xiàn);
-圖2a示意性地示出了實(shí)現(xiàn)本發(fā)明的客戶(hù)端設(shè)備的硬件架構(gòu)的示例;
-圖2b示意性地示出了實(shí)現(xiàn)本發(fā)明的服務(wù)器設(shè)備的硬件架構(gòu)的示例;
-圖3示意性地示出了在多播通信的背景下由客戶(hù)端設(shè)備實(shí)現(xiàn)的方法的第一示例,所述方法允許從將該客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的多個(gè)網(wǎng)絡(luò)接口受益;
-圖4示意性地示出了在多播通信的背景下由客戶(hù)端設(shè)備實(shí)現(xiàn)的方法的第二示例,所述方法允許從將該客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的多個(gè)網(wǎng)絡(luò)接口受益;
-圖5示意性地示出了在出現(xiàn)將客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的新的網(wǎng)絡(luò)接口時(shí)由客戶(hù)端設(shè)備實(shí)現(xiàn)的方法的示例;
-圖6示意性地示出了在將客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的現(xiàn)有網(wǎng)絡(luò)接口消失時(shí)由客戶(hù)端設(shè)備實(shí)現(xiàn)的方法的示例;
-圖7示意性地示出了由服務(wù)器設(shè)備實(shí)現(xiàn)的方法,該方法允許將與多播流對(duì)應(yīng)的多播子流發(fā)送到至少一個(gè)客戶(hù)端設(shè)備;
-圖8示意性地示出了由客戶(hù)端設(shè)備實(shí)現(xiàn)的方法的示例,該方法允許在表示多播組的信息的集合中尋找表示某一多播組的信息;
-圖9示意性地示出了允許獲得服務(wù)器可以提供的多播組的描述的請(qǐng)求的示例;
-圖10示意性地示出了請(qǐng)求的示例,所述請(qǐng)求使得服務(wù)器設(shè)備能夠提供表示可由所述服務(wù)器設(shè)備在相應(yīng)的多播組中傳遞的每個(gè)數(shù)據(jù)流的信息;以及
-圖11、圖12和圖13示意性地示出了請(qǐng)求的選項(xiàng)的示例,所述請(qǐng)求使得服務(wù)器設(shè)備能夠提供表示可由所述服務(wù)器設(shè)備在相應(yīng)的多播組中傳遞的每個(gè)數(shù)據(jù)流的信息。
圖1d示意性地示出了當(dāng)客戶(hù)端設(shè)備103、104和105具有將每個(gè)客戶(hù)端設(shè)備103、104和105連接到服務(wù)器設(shè)備101的多個(gè)網(wǎng)絡(luò)接口時(shí)的本發(fā)明的實(shí)現(xiàn)。該示例重復(fù)圖1c中的情況,其中每個(gè)客戶(hù)端103、104和105具有連接到服務(wù)器101的兩個(gè)網(wǎng)絡(luò)接口。我們?cè)谶@里假設(shè)每個(gè)客戶(hù)端103、104和105是因特網(wǎng)網(wǎng)關(guān),每個(gè)因特網(wǎng)網(wǎng)關(guān)已經(jīng)從位于其局部網(wǎng)絡(luò)中的終端客戶(hù)端接收到訂閱允許獲得數(shù)據(jù)流的相同多播組(被稱(chēng)為目標(biāo)多播組)的第一請(qǐng)求。在本發(fā)明的背景下,根據(jù)隨后描述的方法,每個(gè)客戶(hù)端103、104和105用兩個(gè)第二訂閱請(qǐng)求替換用于訂閱目標(biāo)多播組的第一請(qǐng)求。每個(gè)第二訂閱請(qǐng)求與多播子組的集合中的多播子組相關(guān)聯(lián)。每個(gè)多播子組使得能夠獲得形成數(shù)據(jù)流的子部分的數(shù)據(jù)子流,所有多播子組允許通過(guò)組合數(shù)據(jù)子流來(lái)獲得所述數(shù)據(jù)流。每個(gè)客戶(hù)端103、104和105接下來(lái)向第一網(wǎng)絡(luò)接口(例如,在通信路徑106/107、106/108和106/109上)發(fā)送第一第二訂閱請(qǐng)求,并在第二網(wǎng)絡(luò)接口上(例如,在通信路徑110/112、110/113、110/114上)發(fā)送第二訂閱請(qǐng)求。當(dāng)它們接收到第二訂閱請(qǐng)求時(shí),如果沒(méi)有連接到路由器102和111的客戶(hù)端尚不是子組中的一個(gè)子組的訂戶(hù),則路由器102和111各自向服務(wù)器101發(fā)送與他們已接收到的第二訂閱請(qǐng)求對(duì)應(yīng)的第二訂閱請(qǐng)求。在接收到這些第二訂閱請(qǐng)求之后,服務(wù)器101開(kāi)始第一數(shù)據(jù)子流到客戶(hù)端103、104和105的第一網(wǎng)絡(luò)接口的傳輸以及第二數(shù)據(jù)子流到客戶(hù)端103、104和105的第二網(wǎng)絡(luò)接口的傳輸。每個(gè)客戶(hù)端103、104和105接下來(lái)從其接收到的數(shù)據(jù)子流重構(gòu)數(shù)據(jù)流,并將重構(gòu)的數(shù)據(jù)流重傳到位于其局部網(wǎng)絡(luò)中的其各自的終端客戶(hù)端。因此,每個(gè)客戶(hù)端103、104和105從使用對(duì)其可用的網(wǎng)絡(luò)接口中的每一個(gè)獲益。例如,客戶(hù)端103受益于用于接收數(shù)據(jù)流的路徑106/107和110/112的總帶寬。
在下文中,在服務(wù)器和客戶(hù)端之間的多播傳輸?shù)谋尘跋旅枋霰景l(fā)明,其中,客戶(hù)端是因特網(wǎng)網(wǎng)關(guān),其接收用于訂閱位于該因特網(wǎng)網(wǎng)關(guān)的局部網(wǎng)絡(luò)中的終端客戶(hù)端的多播組的請(qǐng)求。然而,本發(fā)明可以在終端客戶(hù)端(諸如,計(jì)算機(jī)、智能電話、觸摸平板等)中以相同的方式實(shí)現(xiàn)。在后一種情況下,終端客戶(hù)端不向利用多個(gè)第二訂閱請(qǐng)求替換第一訂閱請(qǐng)求的中間客戶(hù)端發(fā)送用于訂閱多播組的該第一請(qǐng)求,所述中間客戶(hù)端而是所述終端客戶(hù)端本身以多個(gè)第二訂閱請(qǐng)求替換第一訂閱請(qǐng)求。
此外,我們將在這里考慮用于以多播模式傳輸電視數(shù)據(jù)流的應(yīng)用。然而,可以設(shè)想其它數(shù)據(jù)流(諸如,例如,無(wú)線電數(shù)據(jù)流)。
圖2a示意性地示出了實(shí)現(xiàn)本發(fā)明的客戶(hù)端設(shè)備的硬件架構(gòu)的示例。這里我們以客戶(hù)端103為例。客戶(hù)端103然后包括(通過(guò)通信總線210連接的):處理器或cpu(中央處理單元)200;隨機(jī)存取存儲(chǔ)器(ram)201;只讀存儲(chǔ)器(rom)202;諸如sd(安全數(shù)字)卡讀取器203的存儲(chǔ)單元或存儲(chǔ)介質(zhì)讀取器;連接接口的集合204,所述連接接口用于將客戶(hù)端103連接到用于例如與服務(wù)器101通信的一個(gè)或更多個(gè)擴(kuò)展網(wǎng)絡(luò)(wan,廣域網(wǎng))(例如,因特網(wǎng))或者連接到用于例如與終端客戶(hù)端通信的局部網(wǎng)絡(luò)。
處理器200能夠執(zhí)行從rom202、從外部存儲(chǔ)器(未示出)、從諸如sd卡的存儲(chǔ)介質(zhì)或者從通信網(wǎng)絡(luò)加載到ram201中的指令。當(dāng)客戶(hù)端103被上電時(shí),處理器200能夠從ram201讀取指令并執(zhí)行所述指令。這些指令形成計(jì)算機(jī)程序,該計(jì)算機(jī)程序使得通過(guò)處理器200實(shí)現(xiàn)下面結(jié)合圖3、圖4、圖5、圖6和圖8描述的方法中的全部或一些。
圖2b示意性地示出了實(shí)現(xiàn)本發(fā)明的服務(wù)器設(shè)備的硬件架構(gòu)的示例。這里我們以服務(wù)器101為例。服務(wù)器101然后包括(通過(guò)通信總線250連接的):處理器或cpu(中央處理單元)240;隨機(jī)存取存儲(chǔ)器(ram)241;只讀存儲(chǔ)器(rom)242;諸如sd(安全數(shù)字)卡讀取器243的存儲(chǔ)單元或存儲(chǔ)介質(zhì)讀取器;連接接口的集合244,所述連接接口用于將服務(wù)器101連接到一個(gè)或更多個(gè)擴(kuò)展網(wǎng)絡(luò)(wan),以便例如與客戶(hù)端103、104和105進(jìn)行通信。
處理器250能夠執(zhí)行從rom242、從外部存儲(chǔ)器(未示出)、從諸如sd卡的存儲(chǔ)介質(zhì)或者從通信網(wǎng)絡(luò)加載到ram241中的指令。當(dāng)服務(wù)器101被上電時(shí),處理器240能夠從ram241讀取指令并執(zhí)行所述指令。這些指令形成計(jì)算機(jī)程序,該計(jì)算機(jī)程序使得通過(guò)處理器240實(shí)現(xiàn)下面結(jié)合圖7描述的方法中的全部或一些。
下面結(jié)合圖3、圖4、圖5、圖6、圖7和圖8描述的算法的全部或部分可以通過(guò)由諸如dsp(數(shù)字信號(hào)處理器)或者微控制器的可編程機(jī)器執(zhí)行一組指令來(lái)以軟件的形式實(shí)現(xiàn),或者通過(guò)機(jī)器或?qū)S媒M件(諸如,fpga(現(xiàn)場(chǎng)可編程門(mén)陣列)或asic(專(zhuān)用集成電路))來(lái)以硬件的形式實(shí)現(xiàn)。
圖3示意性地示出了在多播通信的背景下由客戶(hù)端設(shè)備實(shí)現(xiàn)的方法的第一示例,所述方法允許從將該客戶(hù)端設(shè)備連接到服務(wù)器設(shè)備的多個(gè)網(wǎng)絡(luò)接口受益。我們?cè)谶@里重復(fù)結(jié)合圖1d描述的示例,服務(wù)器是服務(wù)器101,客戶(hù)端是客戶(hù)端103。
在步驟301中,客戶(hù)端103獲得用于訂閱多播組(被稱(chēng)為目標(biāo)多播組)的第一請(qǐng)求,所述多播組允許獲得數(shù)據(jù)流。該訂閱請(qǐng)求例如已由連接到客戶(hù)端103的局部網(wǎng)絡(luò)的終端客戶(hù)端發(fā)送到客戶(hù)端103。在圖3中的示例中,用于訂閱多播組的請(qǐng)求的目的是將終端客戶(hù)端訂閱到允許接收與電視頻道對(duì)應(yīng)的電視數(shù)據(jù)流的多播組。
在步驟304中,客戶(hù)端103利用多個(gè)第二訂閱請(qǐng)求替換用于訂閱目標(biāo)多播組的第一請(qǐng)求。每個(gè)第二訂閱請(qǐng)求與多播子組的集合中的多播子組相關(guān)聯(lián)。每個(gè)多播子組允許獲得形成數(shù)據(jù)流的子部分的數(shù)據(jù)子流,所有多播子組允許通過(guò)組合數(shù)據(jù)子流來(lái)獲得所述數(shù)據(jù)流。在圖3中的示例中,假設(shè)客戶(hù)端103具有對(duì)局部網(wǎng)絡(luò)中包括的終端客戶(hù)端可以訂閱的所有多播組的描述。該描述將多播組的每個(gè)地址與多播子組的多個(gè)地址相匹配。多播子組的每多個(gè)地址使得能夠訂閱允許獲得數(shù)據(jù)子流的多播子組,通過(guò)組合所述數(shù)據(jù)子流允許重構(gòu)通過(guò)訂閱目標(biāo)多播組獲得的數(shù)據(jù)流。
在步驟305中,客戶(hù)端103將網(wǎng)絡(luò)接口與每個(gè)第二訂閱請(qǐng)求相關(guān)聯(lián)。在一個(gè)實(shí)施方式中,客戶(hù)端103具有網(wǎng)絡(luò)接口的集合,該網(wǎng)絡(luò)接口的集合包括足以使每個(gè)第二訂閱請(qǐng)求與不同網(wǎng)絡(luò)接口相關(guān)聯(lián)的多個(gè)網(wǎng)絡(luò)接口。
在步驟306中,客戶(hù)端103通過(guò)與第二請(qǐng)求相關(guān)聯(lián)的網(wǎng)絡(luò)接口向服務(wù)器101發(fā)送所述每個(gè)第二訂閱請(qǐng)求。通過(guò)經(jīng)由給定的網(wǎng)絡(luò)接口發(fā)送第二訂閱請(qǐng)求,確保了將在該給定網(wǎng)絡(luò)接口上接收與該第二訂閱請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)子流。
在步驟307中,客戶(hù)端103接收與所發(fā)送的第二訂閱請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)子流,所接收的每個(gè)數(shù)據(jù)子流通過(guò)發(fā)送與所述數(shù)據(jù)子流相關(guān)聯(lián)的第二訂閱請(qǐng)求的網(wǎng)絡(luò)接口被接收到。在一個(gè)實(shí)施方式中,針對(duì)其發(fā)送了第二訂閱請(qǐng)求的所有數(shù)據(jù)子流被系統(tǒng)地接收到。
在步驟308中,客戶(hù)端103從所接收到的數(shù)據(jù)子流重構(gòu)數(shù)據(jù)流。在一個(gè)實(shí)施方式中,在其傳輸期間,每個(gè)數(shù)據(jù)子流被封裝在各自包括序列號(hào)信息和時(shí)間指示符的數(shù)據(jù)分組(諸如,例如,與rtp協(xié)議(實(shí)時(shí)傳輸協(xié)議,rfc1889)兼容的分組)中。包含序列號(hào)信息和時(shí)間指示符的分組的使用使得能夠?qū)λ邮盏降拿總€(gè)數(shù)據(jù)子流的數(shù)據(jù)分組進(jìn)行重新排序,以便重構(gòu)數(shù)據(jù)流。
在步驟309期間,客戶(hù)端103將數(shù)據(jù)流發(fā)送到使用它的終端客戶(hù)端。在用于發(fā)送電視數(shù)據(jù)的應(yīng)用的情況下,終端客戶(hù)端對(duì)電視數(shù)據(jù)流進(jìn)行解碼以便顯示電視頻道。
在一個(gè)實(shí)施方式中,包括在客戶(hù)端103的局部網(wǎng)絡(luò)中的終端客戶(hù)端可以訂閱的所有多播組的描述包括:(針對(duì)每個(gè)數(shù)據(jù)流)表示數(shù)據(jù)流的傳輸速率的信息;以及(針對(duì)每個(gè)數(shù)據(jù)子流)關(guān)于數(shù)據(jù)子流的傳輸速率的信息。此外,客戶(hù)端103能夠估計(jì)其具有的每個(gè)網(wǎng)絡(luò)接口上可用的帶寬。在該實(shí)施方式中,在步驟304期間,在進(jìn)行利用第二訂閱請(qǐng)求替換第一訂閱請(qǐng)求之前,客戶(hù)端103將與目標(biāo)多播組對(duì)應(yīng)的數(shù)據(jù)流的傳輸速率與客戶(hù)端103上可用的網(wǎng)絡(luò)接口上可用帶寬的總和進(jìn)行比較。僅當(dāng)數(shù)據(jù)流的傳輸速率小于或等于帶寬的總和時(shí)才執(zhí)行替換。如果數(shù)據(jù)流的傳輸速率大于帶寬的總和,則放棄對(duì)多播組使用的訂閱,并且客戶(hù)端103不實(shí)現(xiàn)步驟305至309。
如果數(shù)據(jù)流的傳輸速率小于帶寬的總和,則在步驟305期間,在將第二訂閱請(qǐng)求與網(wǎng)絡(luò)接口相關(guān)聯(lián)之前,客戶(hù)端103檢查和與所述接口相關(guān)聯(lián)的第二訂閱請(qǐng)求對(duì)應(yīng)的子流的傳輸速率的總和是否小于所述網(wǎng)絡(luò)接口上可用的帶寬。如果第二訂閱請(qǐng)求中的至少一個(gè)不能與客戶(hù)端103上可用的網(wǎng)絡(luò)接口中的一個(gè)相關(guān)聯(lián),則客戶(hù)端103放棄對(duì)多播子組的訂閱,并且不實(shí)現(xiàn)步驟306至309。
在一個(gè)實(shí)施方式中,客戶(hù)端103具有的網(wǎng)絡(luò)接口的數(shù)量小于多播子組的數(shù)量,所述多播子組包括在與目標(biāo)多播組對(duì)應(yīng)的多播子組的集合中。在這種情況下,一些網(wǎng)絡(luò)接口與多個(gè)第二訂閱請(qǐng)求相關(guān)聯(lián)。
在一個(gè)實(shí)施方式中,與由客戶(hù)端103發(fā)送的第二訂閱請(qǐng)求對(duì)應(yīng)的某些數(shù)據(jù)子流未被接收到。在這種情況下,客戶(hù)端103從其接收到的數(shù)據(jù)子流重構(gòu)數(shù)據(jù)流。在一個(gè)實(shí)施方式中,客戶(hù)端103利用其所接收到的、在時(shí)間上最接近丟失的分組的流的數(shù)據(jù)分組替換其尚未接收到的子流的數(shù)據(jù)分組。在另一個(gè)實(shí)施方式中,客戶(hù)端103不嘗試替換其尚未接收到的流的數(shù)據(jù)分組,并且認(rèn)為可以使用錯(cuò)誤隱藏方法通過(guò)終端客戶(hù)端掩蔽與這些數(shù)據(jù)分組對(duì)應(yīng)的每個(gè)數(shù)據(jù)丟失。
在一個(gè)實(shí)施方式中,當(dāng)其被上電時(shí),客戶(hù)端103不具有對(duì)包括在其局部網(wǎng)絡(luò)中的終端客戶(hù)端可以訂閱的所有多播組的描述。然后有必要從服務(wù)器101獲得它。然后,客戶(hù)端103可以例如通過(guò)在服務(wù)器101的url(統(tǒng)一資源定位符)地址上發(fā)送http(超文本傳輸協(xié)議)請(qǐng)求來(lái)獲得該描述。作為響應(yīng),服務(wù)器101例如以文本、html(超文本標(biāo)記語(yǔ)言)或xml(可擴(kuò)展標(biāo)記語(yǔ)言)發(fā)送該描述。在下文中將結(jié)合圖4的步驟302以及圖3至圖13來(lái)看使得客戶(hù)端103能夠基于igmp協(xié)議恢復(fù)描述的第二方法。
圖4示意性地示出了在多播通信的背景下由客戶(hù)端設(shè)備103使用的方法的第二示例,所述方法允許從將客戶(hù)端設(shè)備103連接到服務(wù)器設(shè)備101的多個(gè)網(wǎng)絡(luò)接口受益。該方法重復(fù)結(jié)合圖3描述的方法的步驟301、304、305、306、308和309,并添加了其它步驟。
該方法從結(jié)合圖3描述的步驟301開(kāi)始。
在步驟302中,客戶(hù)端103在表示多播組的信息的集合中尋找表示目標(biāo)多播組的信息。在下文中結(jié)合圖8至圖13詳細(xì)描述步驟302。
在步驟303中,客戶(hù)端103檢查表示所述目標(biāo)多播組的信息是否位于表示多播組的信息的集合中,并且檢查在表示目標(biāo)組的信息中,目標(biāo)多播組的地址是否與多播子組的多個(gè)地址匹配。
如果表示所述多播組的信息位于表示多播組的信息的集合中,并且目標(biāo)組的多播地址與多播子組的多個(gè)地址相匹配,則客戶(hù)端103認(rèn)為目標(biāo)多播組適合于使用客戶(hù)端103上可用的所有網(wǎng)絡(luò)接口的傳輸。在這種情況下,客戶(hù)端103實(shí)現(xiàn)已經(jīng)結(jié)合圖3說(shuō)明的步驟304至306。
在步驟3070中,客戶(hù)端103檢查客戶(hù)端103是否接收到與由客戶(hù)端103發(fā)送的第二訂閱請(qǐng)求對(duì)應(yīng)的所有數(shù)據(jù)子流。如果是這種情況,則客戶(hù)端103實(shí)現(xiàn)已經(jīng)說(shuō)明的步驟308和309。
如果與由客戶(hù)端103發(fā)送的第二請(qǐng)求對(duì)應(yīng)的至少一個(gè)數(shù)據(jù)子流未被客戶(hù)端103接收到,則在步驟310中,客戶(hù)端103向服務(wù)器101發(fā)送針對(duì)每個(gè)多播子組(針對(duì)其已發(fā)送第二訂閱請(qǐng)求)的取消訂閱請(qǐng)求。
在步驟303期間,如果表示所述目標(biāo)多播組的信息位于表示多播組的信息的集合中,但目標(biāo)組的多播地址與多播子組的多個(gè)地址不匹配,則客戶(hù)端103認(rèn)為目標(biāo)多播組不適合使用客戶(hù)端上可用的所有網(wǎng)絡(luò)接口的傳輸。在這種情況下,步驟303之后是步驟311,在步驟311期間,向服務(wù)器101發(fā)送用于訂閱多播組的第一請(qǐng)求。
在步驟312中,客戶(hù)端103檢查與目標(biāo)多播組對(duì)應(yīng)的數(shù)據(jù)流是否被接收到。
如果所述數(shù)據(jù)流被接收到,則客戶(hù)端103繼續(xù)步驟309。如果所述數(shù)據(jù)流未被接收到,則客戶(hù)端103從目標(biāo)多播組取消訂閱。
在步驟303期間,如果表示所述多播組的信息不位于表示多播組的信息的集合中,則客戶(hù)端103放棄訂閱目標(biāo)多播組的嘗試。
圖8示意性地示出了由客戶(hù)端103設(shè)備實(shí)現(xiàn)的方法的示例,該方法允許在表示多播組的信息的集合中尋找表示某一多播組的信息。結(jié)合圖8描述的方法詳細(xì)描述了步驟302的實(shí)現(xiàn)。這里假設(shè)客戶(hù)端103在被上電時(shí)不具有包括在客戶(hù)端103的局部網(wǎng)絡(luò)中的終端客戶(hù)端可以訂閱的所有多播組的描述,并因此,有必要從服務(wù)器101獲得該描述。
在步驟3021中,客戶(hù)端103通過(guò)其所有可用的網(wǎng)絡(luò)接口發(fā)送與igmp協(xié)議兼容的請(qǐng)求(稱(chēng)為getcaps請(qǐng)求)。在圖1c和圖1d的背景下,getcaps請(qǐng)求旨在從服務(wù)器101獲得描述,服務(wù)器101是唯一可用的服務(wù)器。在另一個(gè)實(shí)施方式中,如果多個(gè)服務(wù)器可用,則getcaps請(qǐng)求旨在針對(duì)每個(gè)服務(wù)器,每個(gè)服務(wù)器能夠響應(yīng)于通過(guò)發(fā)送包括在客戶(hù)端103的局部網(wǎng)絡(luò)中的終端客戶(hù)端可以訂閱的多播組的描述接收到的getcaps請(qǐng)求。
圖9示意性地示出了允許獲得服務(wù)器可以提供的多播組的描述的getcaps請(qǐng)求的示例。getcaps請(qǐng)求包括:“type”字段91,例如十六進(jìn)制等于0x30,其允許識(shí)別getcaps請(qǐng)求;“maxrespcode”字段92,其允許指示分配用于從服務(wù)器獲得響應(yīng)的最大時(shí)間;以及“checksum”字段93,其包括允許檢測(cè)getcaps請(qǐng)求中的錯(cuò)誤的糾錯(cuò)碼?!癿axrespcode”字段提供例如以十分之一秒表示的時(shí)間指示。在接收到getcaps請(qǐng)求后,接收getcaps請(qǐng)求的服務(wù)器必須在等于“maxrespcode”字段的值的時(shí)間內(nèi)進(jìn)行響應(yīng)。
在步驟3022中,服務(wù)器101對(duì)其已經(jīng)接收到的getcaps請(qǐng)求進(jìn)行響應(yīng)。為此,當(dāng)客戶(hù)端訂閱與數(shù)據(jù)流對(duì)應(yīng)的多播組時(shí),服務(wù)器101發(fā)送提供表示可由服務(wù)器101傳遞的每個(gè)數(shù)據(jù)流的信息的igmp請(qǐng)求(稱(chēng)為sendcaps請(qǐng)求)。
圖10示意性地示出了sendcaps請(qǐng)求的示例,所述sendcaps請(qǐng)求使得服務(wù)器設(shè)備能夠提供表示可由所述服務(wù)器設(shè)備在相應(yīng)的多播組中傳遞的每個(gè)數(shù)據(jù)流的信息。
sendcaps請(qǐng)求包括“type”字段1010,例如以十六進(jìn)制等于值“0x31”,該字段1010允許識(shí)別sendcaps請(qǐng)求。sendcaps請(qǐng)求還包括保留字段“reserved”1020和“checksum”字段1030,所述“checksum”字段1030允許檢測(cè)sendcaps請(qǐng)求中的錯(cuò)誤的糾錯(cuò)碼?!癱hecksum”字段之后是“ttl”(離開(kāi)時(shí)間)字段1040,所述“ttl”字段1040允許向客戶(hù)端指示包含在sendcaps請(qǐng)求中的信息的有效期?!皌tl”字段之后是至少一個(gè)可選字段1050。
可以通過(guò)sendcaps請(qǐng)求傳送幾種類(lèi)型的可選字段1050。在用于廣播電視數(shù)據(jù)流的應(yīng)用中,結(jié)合圖11描述的第一可選字段1050允許提供關(guān)于交付電視數(shù)據(jù)流的運(yùn)營(yíng)商的信息。可選字段1050因此包括“optiontype”字段1051,例如等于值“1”,其指示可選字段1050給出關(guān)于運(yùn)營(yíng)商的信息。在“optiontype”字段1051之后,可選字段1050包括“l(fā)ength”字段1052,其指示接著的指示運(yùn)營(yíng)商的名稱(chēng)的“name”字段1053的字節(jié)長(zhǎng)度。
結(jié)合圖12描述的第二可選字段1050允許描述電視數(shù)據(jù)流。結(jié)合圖12描述的可選字段1050包括“optiontype”字段1051,例如等于值“5”,其指示可選字段1050給出關(guān)于數(shù)據(jù)流的信息。在“optiontype”字段1051之后,可選字段1050包括“l(fā)ength”字段1052,其指示接著的“channelcode”1054、“channelname”1055、“streamtransmissionrate”1056和“groupaddress“1057字段的字節(jié)總長(zhǎng)度?!癱hannelcode”字段1054給出分配給與電視數(shù)據(jù)流對(duì)應(yīng)的電視頻道的代碼?!癱hannelname”字段1055給出與由“channelcode”字段指示的電視頻道的名稱(chēng)對(duì)應(yīng)的名稱(chēng)?!皊treamtransmissionrate”字段1056指示數(shù)據(jù)流的傳輸速率。“groupaddress”字段1057指示允許訂閱與數(shù)據(jù)流對(duì)應(yīng)的多播組的多播地址。
結(jié)合圖13描述的第三可選字段1050使得能夠給出關(guān)于與數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)子流的信息。結(jié)合圖13描述的可選字段因此允許在多播組與對(duì)應(yīng)于該多播組的多播子組之間建立鏈路。結(jié)合圖13描述的可選字段1050包括“optiontype”字段1051,例如等于值“6”,其指示可選字段1051給出關(guān)于與數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)子流的信息。在“optiontype”字段1051之后,可選字段1050包括指示接著的字段(“channelcode”字段1055,“subgroupaddress”字段1058和“sub-streamtransmissionrate”字段1059)的字節(jié)總長(zhǎng)度的“l(fā)ength”字段1052,結(jié)合圖13描述的可選字段包含多個(gè)連續(xù)的“subgroupaddress”1058和“sub-streamtransmissionrate”1059字段對(duì)?!皊ubgroupaddress”1058和“sub-streamtransmissionrate”1059字段具有固定大小?!皊ubgroupaddress”字段1058給出與數(shù)據(jù)子流對(duì)應(yīng)的多播子組的地址?!皊ub-streamtransmissionrate”字段指示數(shù)據(jù)子流的傳輸速率?!癱hannelcode”字段1055的存在允許在結(jié)合圖12描述的可選字段1050中描述的數(shù)據(jù)流與結(jié)合圖13描述的可選字段1050中描述的數(shù)據(jù)子流之間建立鏈接。
在某些情況下,在通過(guò)網(wǎng)絡(luò)接口發(fā)送getcaps請(qǐng)求之后不會(huì)接收到sendcaps請(qǐng)求。該網(wǎng)絡(luò)接口可以例如連接到不是客戶(hù)端103針對(duì)其具有訂閱的運(yùn)營(yíng)商的第三方運(yùn)營(yíng)商的第三方網(wǎng)絡(luò)。在下文中,客戶(hù)端103針對(duì)其具有描述的運(yùn)營(yíng)商稱(chēng)為主運(yùn)營(yíng)商。在一個(gè)實(shí)施方式中,為了能夠使用第三方網(wǎng)絡(luò),使用結(jié)合圖11描述的第一可選字段1050的變型。該變型使得服務(wù)器101能夠向客戶(hù)端103提供關(guān)于主運(yùn)營(yíng)商的可從第三方網(wǎng)絡(luò)訪問(wèn)并使得客戶(hù)端103能夠與服務(wù)器101進(jìn)行通信的網(wǎng)絡(luò)單元的信息。在結(jié)合圖11描述的選項(xiàng)1050的該變型中,字段“optiontype”1051獲取指示可選字段1050通過(guò)第三方網(wǎng)絡(luò)提供允許與服務(wù)器101進(jìn)行通信的信息的值。例如,“optiontype”字段取值“2”?!發(fā)ength”字段1052指示接著的字段“name”1053的字節(jié)長(zhǎng)度。字段“name”1053指示允許指定主運(yùn)營(yíng)商的可通過(guò)第三方網(wǎng)絡(luò)訪問(wèn)的網(wǎng)絡(luò)單元的絕對(duì)地址的完全合格域名(fqdn)。然后,通過(guò)連接到第三方網(wǎng)絡(luò)的網(wǎng)絡(luò)接口發(fā)送的客戶(hù)端103的每個(gè)請(qǐng)求被發(fā)送到在“name”字段1053中指定的主運(yùn)營(yíng)商的網(wǎng)絡(luò)單元,該網(wǎng)絡(luò)單元將它們重定向到服務(wù)器101。
在步驟3023中,當(dāng)其接收sendcaps請(qǐng)求時(shí),客戶(hù)端103構(gòu)建表示多播組的信息的集合。表示多播組的信息的集合形成對(duì)客戶(hù)端103的局部網(wǎng)絡(luò)的終端客戶(hù)端可以訂閱的多播組的描述。該集合可以例如以表的形式被放置作為輸入的多播組(稱(chēng)為輸入多播組)的多播地址,并且針對(duì)每個(gè)輸入多播組提供包括與該輸入多播組對(duì)應(yīng)的多播子組的地址以及關(guān)于當(dāng)接收到sendcaps請(qǐng)求時(shí)獲得的多播組的其它信息的描述。
在步驟3024中,客戶(hù)端103在已經(jīng)構(gòu)建的表中尋找目標(biāo)多播組。步驟1024之后是已經(jīng)描述的步驟303。
經(jīng)常地,在根據(jù)多播傳輸模式傳輸數(shù)據(jù)流期間,客戶(hù)端的某些接口變得不可用(例如由于通信鏈路中斷),或者變得可用(例如在打開(kāi)新的通信鏈路之后)。
圖5示意性地示出了當(dāng)將客戶(hù)端設(shè)備103連接到服務(wù)器設(shè)備101的新的網(wǎng)絡(luò)接口出現(xiàn)時(shí)由客戶(hù)端設(shè)備實(shí)現(xiàn)的方法的示例。
在步驟501中,客戶(hù)端設(shè)備103檢測(cè)將客戶(hù)端設(shè)備103連接到服務(wù)器設(shè)備101的新的網(wǎng)絡(luò)接口的打開(kāi)。
在步驟502中,客戶(hù)端設(shè)備103通過(guò)向其添加檢測(cè)到的新的網(wǎng)絡(luò)接口來(lái)增強(qiáng)其可用網(wǎng)絡(luò)接口的集合。在步驟502期間,客戶(hù)端103使用新的網(wǎng)絡(luò)接口將該新的網(wǎng)絡(luò)接口與用于訂閱多播子組的至少一個(gè)第二請(qǐng)求相關(guān)聯(lián)。
在步驟504中,客戶(hù)端103檢查與通過(guò)新的網(wǎng)絡(luò)接口發(fā)送的第二請(qǐng)求對(duì)應(yīng)的每個(gè)數(shù)據(jù)子流是否被接收到。
如果每個(gè)數(shù)據(jù)子流都被接收到,則步驟504之后是步驟505。
通過(guò)新的網(wǎng)絡(luò)接口發(fā)送的第二訂閱請(qǐng)求與通過(guò)不同于該新的網(wǎng)絡(luò)接口的至少一個(gè)其它網(wǎng)絡(luò)接口已經(jīng)接收到的數(shù)據(jù)子流對(duì)應(yīng)。這是因?yàn)樵诓襟E306期間,客戶(hù)端103已經(jīng)發(fā)送了對(duì)允許重構(gòu)終端客戶(hù)端所需的數(shù)據(jù)流的所有數(shù)據(jù)子流的第二訂閱請(qǐng)求。然后,當(dāng)實(shí)現(xiàn)步驟306時(shí),這些第二請(qǐng)求已經(jīng)通過(guò)可用的客戶(hù)端103的網(wǎng)絡(luò)接口被發(fā)送。為了避免在步驟505期間多次接收相同的數(shù)據(jù)子流,當(dāng)通過(guò)包括新的網(wǎng)絡(luò)接口的多個(gè)網(wǎng)絡(luò)接口接收到相同數(shù)據(jù)子流(稱(chēng)為重復(fù)子流)時(shí),客戶(hù)端103發(fā)送針對(duì)每個(gè)多播子組的取消訂閱請(qǐng)求,所述每個(gè)多播子組與通過(guò)除了新的網(wǎng)絡(luò)接口以外的網(wǎng)絡(luò)接口接收到的重復(fù)子流對(duì)應(yīng)。為此,客戶(hù)端103通過(guò)接收重復(fù)子流的每個(gè)其它接口發(fā)送針對(duì)與重復(fù)子流對(duì)應(yīng)的多播子組的取消訂閱請(qǐng)求。
在步驟505之后,客戶(hù)端103實(shí)現(xiàn)分別與步驟308和309相同的步驟507和步驟508。
在一個(gè)實(shí)施方式中,如果在步驟504期間與通過(guò)新的網(wǎng)絡(luò)接口發(fā)送的請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)子流未被接收到,則步驟504之后是步驟506。在步驟506期間,客戶(hù)端發(fā)送針對(duì)與通過(guò)新的網(wǎng)絡(luò)接口未接收到的數(shù)據(jù)子流對(duì)應(yīng)的多播子組的取消訂閱請(qǐng)求,以避免該子流稍后被接收到并因此被重復(fù)。
步驟506之后是步驟507和508。
圖6示意性地示出了當(dāng)將客戶(hù)端103連接到服務(wù)器101并且在步驟306期間可用的網(wǎng)絡(luò)接口消失時(shí)由客戶(hù)端設(shè)備實(shí)現(xiàn)的方法的示例。
在步驟601中,客戶(hù)端設(shè)備檢測(cè)對(duì)將客戶(hù)端103連接到服務(wù)器101的網(wǎng)絡(luò)接口的抑制。
在步驟602中,客戶(hù)端設(shè)備103通過(guò)移除被抑制的網(wǎng)絡(luò)接口來(lái)縮減其可用網(wǎng)絡(luò)接口的集合。在步驟602期間,客戶(hù)端103將先前與被抑制的網(wǎng)絡(luò)接口相關(guān)聯(lián)的每個(gè)第二訂閱請(qǐng)求與經(jīng)縮減的網(wǎng)絡(luò)接口的集合中的網(wǎng)絡(luò)接口相關(guān)聯(lián)。
在步驟603中,客戶(hù)端103使用經(jīng)縮減的網(wǎng)絡(luò)接口的集合中與每個(gè)第二訂閱請(qǐng)求相關(guān)聯(lián)的網(wǎng)絡(luò)接口向服務(wù)器設(shè)備101發(fā)送所述每個(gè)第二訂閱請(qǐng)求,所述每個(gè)第二訂閱請(qǐng)求先前與被抑制的網(wǎng)絡(luò)接口相關(guān)聯(lián)。
在步驟604中,客戶(hù)端103檢查與先前與被抑制的接口相關(guān)聯(lián)的第二請(qǐng)求對(duì)應(yīng)的每個(gè)子流是否被適當(dāng)?shù)亟邮盏健?/p>
如果每個(gè)子流都被適當(dāng)?shù)亟邮盏?,則客戶(hù)端103實(shí)現(xiàn)分別與步驟308和309相同的步驟605和606。
如果至少一個(gè)子流未被接收到,則客戶(hù)端103實(shí)現(xiàn)與步驟310相同的步驟609。
圖7示意性地示出了由服務(wù)器101實(shí)現(xiàn)的方法,所述方法允許將與多播流對(duì)應(yīng)的多播子流發(fā)送到至少一個(gè)客戶(hù)端設(shè)備。
在步驟701中,服務(wù)器101通過(guò)網(wǎng)絡(luò)接口(被稱(chēng)為接收接口)接收每個(gè)第二訂閱請(qǐng)求。然后,服務(wù)器記憶其接收每個(gè)請(qǐng)求的接收接口,并將所述接收接口與請(qǐng)求中指示的多播子組相關(guān)聯(lián)。
在步驟702中,服務(wù)器101將數(shù)據(jù)流的數(shù)據(jù)分組分配在與針對(duì)其接收到第二訂閱請(qǐng)求的多播組對(duì)應(yīng)的數(shù)據(jù)子流中。在一個(gè)實(shí)施方式中,服務(wù)器101在分配這些分組時(shí)考慮每個(gè)數(shù)據(jù)子流的目標(biāo)傳輸速率。該目標(biāo)傳輸速率與sendcaps請(qǐng)求中指示的每個(gè)子流的傳輸速率對(duì)應(yīng)。
在步驟703中,服務(wù)器101通過(guò)與對(duì)應(yīng)于子流的多播子組相關(guān)聯(lián)的接收接口發(fā)送每個(gè)數(shù)據(jù)子流。以這種方式,服務(wù)器101確保該數(shù)據(jù)子流通過(guò)客戶(hù)端103的用于發(fā)送對(duì)應(yīng)于該子流的第二訂閱請(qǐng)求的網(wǎng)絡(luò)接口被接收到。
在圖1c和圖1d的示例中,結(jié)合圖7描述的方法在存在客戶(hù)端103、104或105中的至少一個(gè)的對(duì)與目標(biāo)多播組對(duì)應(yīng)的多播子組的第一訂閱時(shí)被實(shí)現(xiàn)。在圖7中的示例中,該第一訂閱由客戶(hù)端103實(shí)現(xiàn)。如果在客戶(hù)端103的該第一訂閱之后,客戶(hù)端104和105中的至少一個(gè)發(fā)起對(duì)與目標(biāo)多播組對(duì)應(yīng)的相同多播子組的訂閱過(guò)程,則服務(wù)器在這些訂閱中不具有活躍角色。這是因?yàn)檫@些訂閱完全由路由器102和111管理,路由器102和111負(fù)責(zé)重復(fù)用于客戶(hù)端104和/或105的數(shù)據(jù)子流的數(shù)據(jù)分組。