1.一種直播服務(wù)器切換方法,應(yīng)用于客戶端,其特征在于,包括:
獲取當前連接服務(wù)器P的當前網(wǎng)絡(luò)丟包率、當前網(wǎng)絡(luò)延時以及當前網(wǎng)絡(luò)抖動;
基于所述當前網(wǎng)絡(luò)丟包率、當前網(wǎng)絡(luò)延時以及當前網(wǎng)絡(luò)抖動,計算當前連接服務(wù)器P的當前網(wǎng)絡(luò)質(zhì)量QP;
判斷所述當前網(wǎng)絡(luò)質(zhì)量QP是否大于預(yù)定值P;
若所述當前網(wǎng)絡(luò)質(zhì)量QP大于預(yù)定值P,則控制客戶端切換至備選服務(wù)器集合中的目標服務(wù)器,其中,備選服務(wù)器集合包括至少一個備選服務(wù)器。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,當所述客戶端為直播客戶端以發(fā)送直播數(shù)據(jù)包至當前連接服務(wù)器P時;
所述獲取當前連接服務(wù)器P的當前網(wǎng)絡(luò)丟包率、當前網(wǎng)絡(luò)抖動的步驟包括:
基于實時傳輸控制協(xié)議,向當前連接服務(wù)器P發(fā)送發(fā)送端報告SR;
其中,所述發(fā)送端報告SR至少包括:發(fā)送端報告SR的發(fā)送時間、已發(fā)送至當前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個直播數(shù)據(jù)包至少包括:與其自身唯一對應(yīng)的序列號及數(shù)據(jù)包發(fā)送時間,其中直播數(shù)據(jù)包的序列號為連續(xù)標號;
接收當前連接服務(wù)器P返回的與所述發(fā)送端報告SR對應(yīng)的接收端報告RR;
其中,接收端報告RR至少包括:與其自身對應(yīng)的發(fā)送端報告SR的發(fā)送時間、當前網(wǎng)絡(luò)丟包率、當前網(wǎng)絡(luò)抖動;
其中,當前網(wǎng)絡(luò)丟包率,是當前連接服務(wù)器P在基于直播客戶端已發(fā)送的直播數(shù)據(jù)包的發(fā)送數(shù)量、各已發(fā)送的直播數(shù)據(jù)包的序列號和當前連接服務(wù)器P自身接收到的各直播數(shù)據(jù)包的序列號確定丟包數(shù)量后,計算得到的;
當前網(wǎng)絡(luò)抖動,是當前連接服務(wù)器P基于序列號連續(xù)的兩個直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時間的差值,和接收到該序列號連續(xù)的兩個直播數(shù)據(jù)包的數(shù)據(jù)包接收時間的差值,計算得到的;
所述獲取當前網(wǎng)絡(luò)延時的步驟包括:
基于發(fā)送端報告SR的發(fā)送時間,和接收到與該發(fā)送端報告SR對應(yīng)的接收端報告RR的接收時間的差值,計算獲取當前網(wǎng)絡(luò)延時。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,當客戶端為觀看客戶端時以接收當前連接服務(wù)器P轉(zhuǎn)發(fā)的直播數(shù)據(jù)包和發(fā)送端報告SR時;
所述獲取當前連接服務(wù)器P的當前網(wǎng)絡(luò)丟包率的步驟包括:
基于發(fā)送端報告SR中包括的直播客戶端已發(fā)送至當前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,和已發(fā)送的各直播數(shù)據(jù)包的序列號,及觀看客戶端已接收的各直播數(shù)據(jù)包的序列號,確定丟包數(shù)量;
基于丟包數(shù)量和所述發(fā)送數(shù)量,計算獲取當前網(wǎng)絡(luò)丟包率;
所述獲取當前連接服務(wù)器P的當前網(wǎng)絡(luò)抖動的步驟包括:
基于序列號連續(xù)的兩個直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時間的差值,和觀看客戶端接收到該序列號連續(xù)的兩個直播數(shù)據(jù)包的接收時間的差值,計算獲取當前網(wǎng)絡(luò)抖動;
所述獲取當前連接服務(wù)器P的當前網(wǎng)絡(luò)延時的步驟包括:
基于最新接收到的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時間,和當前正播放的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時間的差值,計算獲取當前網(wǎng)絡(luò)延時;
其中,播數(shù)據(jù)包和發(fā)送端報告SR是由直播客戶端發(fā)送至當前連接服務(wù)器P的;發(fā)送端報告SR至少包括:發(fā)送端報告SR的發(fā)送時間、直播客戶端已發(fā)送至當前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個直播數(shù)據(jù)包至少包括:與其自身唯一對應(yīng)的序列號及數(shù)據(jù)包發(fā)送時間,其中直播數(shù)據(jù)包的序列號為連續(xù)標號。
4.根據(jù)權(quán)利要求1至3任一項所述的方法,其特征在于,
所述基于所述當前網(wǎng)絡(luò)丟包率、當前網(wǎng)絡(luò)延時以及當前網(wǎng)絡(luò)抖動,計算當前連接服務(wù)器P的當前網(wǎng)絡(luò)質(zhì)量QP的步驟包括:
基于第一預(yù)設(shè)公式計算當前連接服務(wù)器P的當前網(wǎng)絡(luò)質(zhì)量QP;
其中,所述第一預(yù)設(shè)公式為:
QP=a*LOSTP+b*JITTERP+c*DELAYP;
LOSTP為所述當前網(wǎng)絡(luò)丟包率;JITTERP為所述當前網(wǎng)絡(luò)抖動;DELAYP為所述當前網(wǎng)絡(luò)延時;a,b,c分別為預(yù)設(shè)加權(quán)系數(shù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述控制客戶端切換至備選服務(wù)器集合中的目標服務(wù)器的步驟之前,還包括:
分別獲取備選服務(wù)器集合中的目標服務(wù)器中的每個備選服務(wù)器的網(wǎng)絡(luò)負載和網(wǎng)絡(luò)延時;
基于每個備選服務(wù)器的網(wǎng)絡(luò)負載、網(wǎng)絡(luò)延時和第二預(yù)設(shè)公式,分別計算每個備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb;
其中,第二預(yù)設(shè)公式為:Qb=x*LOADb+y*DELAYb;
LOADb為備選服務(wù)器的網(wǎng)絡(luò)負載,DELAYb為備選服務(wù)器的網(wǎng)絡(luò)延時,x,y分別為預(yù)設(shè)加權(quán)系數(shù)。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述控制客戶端切換至備選服務(wù)器集合中的目標服務(wù)器的步驟包括:
基于每臺備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb,將備選服務(wù)器集合中與最小的備選網(wǎng)絡(luò)質(zhì)量Qb對應(yīng)的備選服務(wù)器作為目標服務(wù)器;
控制客戶端切換至所述目標服務(wù)器。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述控制客戶端切換至所述目標服務(wù)器的步驟包括:
控制客戶端向所述目標服務(wù)器發(fā)送連接請求;
在與所述目標服務(wù)器連接成功后,以連接成功的時間為起始時間進行計時,形成連接時長;
判斷所述連接時長是否達到預(yù)設(shè)時長;
若達到預(yù)設(shè)時長,則客戶端斷開與所述當前連接服務(wù)器P的連接;
否則,則所述客戶端同時連接所述當前連接服務(wù)器P和所述目標服務(wù)器。
8.一種直播服務(wù)器切換系統(tǒng),應(yīng)用于客戶端,其特征在于,包括:
獲取模塊,用于獲取當前連接服務(wù)器P的當前網(wǎng)絡(luò)丟包率、當前網(wǎng)絡(luò)延時以及當前網(wǎng)絡(luò)抖動;
計算模塊,用于基于所述當前網(wǎng)絡(luò)丟包率、當前網(wǎng)絡(luò)延時以及當前網(wǎng)絡(luò)抖動,計算當前連接服務(wù)器P的當前網(wǎng)絡(luò)質(zhì)量QP;
控制模塊,用于判斷所述當前網(wǎng)絡(luò)質(zhì)量QP是否大于預(yù)定值P;和,
用于在判斷到所述當前網(wǎng)絡(luò)質(zhì)量QP大于預(yù)定值P時,控制客戶端切換至備選服務(wù)器集合中的目標服務(wù)器,其中,備選服務(wù)器集合包括至少一個備選服務(wù)器。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,當所述客戶端為直播客戶端以發(fā)送直播數(shù)據(jù)包至當前連接服務(wù)器P時;
所述獲取模塊,還用于基于實時傳輸控制協(xié)議,向當前連接服務(wù)器P發(fā)送發(fā)送端報告SR;其中,所述發(fā)送端報告SR至少包括:發(fā)送端報告SR的發(fā)送時間、已發(fā)送至當前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個直播數(shù)據(jù)包至少包括:與其自身唯一對應(yīng)的序列號及數(shù)據(jù)包發(fā)送時間,其中直播數(shù)據(jù)包的序列號為連續(xù)標號;和,
用于接收當前連接服務(wù)器P返回的與所述發(fā)送端報告SR對應(yīng)的接收端報告RR;
其中,接收端報告RR至少包括:與其自身對應(yīng)的發(fā)送端報告SR的發(fā)送時間、當前網(wǎng)絡(luò)丟包率、當前網(wǎng)絡(luò)抖動;
其中,當前網(wǎng)絡(luò)丟包率,是當前連接服務(wù)器P在基于直播客戶端已發(fā)送的直播數(shù)據(jù)包的發(fā)送數(shù)量、各已發(fā)送的直播數(shù)據(jù)包的序列號和當前連接服務(wù)器P自身接收到的各直播數(shù)據(jù)包的序列號確定丟包數(shù)量后,計算得到的;
當前網(wǎng)絡(luò)抖動,是當前連接服務(wù)器P基于序列號連續(xù)的兩個直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時間的差值,和接收到該序列號連續(xù)的兩個直播數(shù)據(jù)包的數(shù)據(jù)包接收時間的差值,計算得到的;
其中,所述計算模塊,還用于基于發(fā)送端報告SR的發(fā)送時間,和接收到與該發(fā)送端報告SR對應(yīng)的接收端報告RR的接收時間的差值,計算獲取當前網(wǎng)絡(luò)延時。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,當客戶端為觀看客戶端時以接收當前連接服務(wù)器P轉(zhuǎn)發(fā)的直播數(shù)據(jù)包和發(fā)送端報告SR時;
所述計算模塊,還用于基于發(fā)送端報告SR中包括的直播客戶端已發(fā)送至當前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,和已發(fā)送的各直播數(shù)據(jù)包的序列號,及觀看客戶端已接收的各直播數(shù)據(jù)包的序列號,確定丟包數(shù)量;和,
用于基于丟包數(shù)量和所述發(fā)送數(shù)量,計算獲取當前網(wǎng)絡(luò)丟包率;和,用于基于序列號連續(xù)的兩個直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時間的差值,和觀看客戶端接收到該序列號連續(xù)的兩個直播數(shù)據(jù)包的接收時間的差值,計算獲取當前網(wǎng)絡(luò)抖動;和,
基于最新接收到的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時間,和當前正播放的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時間的差值,計算獲取當前網(wǎng)絡(luò)延時;
其中,播數(shù)據(jù)包和發(fā)送端報告SR是由直播客戶端發(fā)送至當前連接服務(wù)器P的;發(fā)送端報告SR至少包括:發(fā)送端報告SR的發(fā)送時間、直播客戶端已發(fā)送至當前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個直播數(shù)據(jù)包至少包括:與其自身唯一對應(yīng)的序列號及數(shù)據(jù)包發(fā)送時間,其中直播數(shù)據(jù)包的序列號為連續(xù)標號。
11.根據(jù)權(quán)利要求8至10任一項所述的系統(tǒng),其特征在于,
所述計算模塊,用于基于第一預(yù)設(shè)公式計算當前連接服務(wù)器P的當前網(wǎng)絡(luò)質(zhì)量QP;
其中,所述第一預(yù)設(shè)公式為:QP=a*LOSTP+b*JITTERP+c*DELAYP;
LOSTP為所述當前網(wǎng)絡(luò)丟包率;JITTERP為所述當前網(wǎng)絡(luò)抖動;DELAYP為所述當前網(wǎng)絡(luò)延時;a,b,c分別為預(yù)設(shè)加權(quán)系數(shù)。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,
所述獲取模塊,還用于在控制模塊所述控制客戶端切換至備選服務(wù)器集合中的目標服務(wù)器之前,分別獲取備選服務(wù)器集合中的目標服務(wù)器中的每個備選服務(wù)器的網(wǎng)絡(luò)負載和網(wǎng)絡(luò)延時;
所述計算模塊,還用于基于每個備選服務(wù)器的網(wǎng)絡(luò)負載、網(wǎng)絡(luò)延時和第二預(yù)設(shè)公式,分別計算每個備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb;
其中,第二預(yù)設(shè)公式為:Qb=x*LOADb+y*DELAYb;
LOADb為備選服務(wù)器的網(wǎng)絡(luò)負載,DELAYb為備選服務(wù)器的網(wǎng)絡(luò)延時,x,y分別為預(yù)設(shè)加權(quán)系數(shù)。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,
所述控制模塊,還用于基于每臺備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb,將備選服務(wù)器集合中與最小的備選網(wǎng)絡(luò)質(zhì)量Qb對應(yīng)的備選服務(wù)器作為目標服務(wù)器;和,
用于控制客戶端切換至所述目標服務(wù)器。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,還包括:計時模塊;
其中,所述控制模塊,還用于控制客戶端向所述目標服務(wù)器發(fā)送連接請求;
所述計時模塊,用于在客戶端與所述目標服務(wù)器連接成功后,以連接成功的時間為起始時間進行計時,形成連接時長;
所述控制模塊,還用于判斷所述連接時長是否達到預(yù)設(shè)時長;
若達到預(yù)設(shè)時長,則控制客戶端斷開與所述當前連接服務(wù)器P的連接;
否則,則控制所述客戶端同時連接所述當前連接服務(wù)器P和所述目標服務(wù)器。
15.一種客戶端,其特征在于,所述客戶端上設(shè)有包括權(quán)利要求8至14任一項所述的直播服務(wù)器切換系統(tǒng)。