亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種報文傳輸方法、裝置及系統(tǒng)與流程

文檔序號:11181045閱讀:396來源:國知局
一種報文傳輸方法、裝置及系統(tǒng)與流程

本發(fā)明涉及通信技術領域,尤其涉及一種報文傳輸方法、裝置及系統(tǒng)。



背景技術:

隨著互聯(lián)網(wǎng)技術的發(fā)展,視頻直播業(yè)務被廣泛應用。

目前的視頻直播業(yè)務的實現(xiàn)主要采用如下過程:視頻被切分成若干個基于超文本傳輸協(xié)議(hypertexttransferprotocol,http)的http文件,這些http文件被上傳至http流媒體服務器集群。用戶終端請求直播視頻時,向http流媒體服務器發(fā)送http請求,http流媒體服務器接收到用戶終端發(fā)送的http請求后,與用戶終端之間基于傳輸控制協(xié)議(transmissioncontrolprotocol,tcp)建立tcp鏈接,并采用端到端模式通過運營商網(wǎng)絡,將報文傳輸給用戶終端。然而針對同一視頻內(nèi)容,通常會有數(shù)量較多的用戶終端請求直播,這樣采用端到端的報文傳輸模式,就需要針對每一個用戶終端的請求,http流媒體服務器與每個用戶終端建立tcp鏈接,并將同一視頻內(nèi)容的報文分別傳輸給不同的用戶終端,造成大量內(nèi)容重復的報文在運營商網(wǎng)絡中傳播,占用了不必要的帶寬資源。



技術實現(xiàn)要素:

本發(fā)明實施例提供一種報文傳輸方法、裝置及系統(tǒng),以降低重復報文的傳輸對運營商網(wǎng)絡的占用率。

一方面,提供一種報文傳輸方法,網(wǎng)絡側路由器接收服務器發(fā)送的報文,確定所述報文為所需傳輸?shù)臄?shù)據(jù)體報文的情況下將所述數(shù)據(jù)體報文發(fā)送給預設用戶側路由器列表中指示的每個用戶側路由器,用戶側路由器接收網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文,將所述數(shù)據(jù)體報文發(fā)送給每個用戶側路由器分別連接 的至少一個用戶終端,通常用戶側路由器連接的用戶終端會包括不止一個用戶終端,即用戶側路由器的數(shù)量會少于用戶終端的數(shù)量,故網(wǎng)絡側路由器將需要傳輸給用戶終端的報文分發(fā)至用戶側路由器,可在一定程度上減少運營商網(wǎng)絡中傳輸?shù)膬?nèi)容相同的報文的數(shù)量,可在一定程度上降低內(nèi)容相同的報文對運營商網(wǎng)絡的帶寬資源占用率。

一種可能的設計中,用戶側路由器自身連接的至少一個用戶終端發(fā)送資源請求報文,所述用戶側路由器接收所述資源請求報文,所述用戶側路由器確定所述資源請求報文為所需傳輸?shù)馁Y源請求報文,所需傳輸?shù)馁Y源請求報文是指由用戶側路由器轉發(fā)給sdn控制器,并由sdn控制器以代理方式向服務器發(fā)送的資源請求報文;所述用戶側路由器將所述資源請求報文發(fā)送給sdn控制器。軟件定義網(wǎng)絡(softwaredefinednetwork,sdn)控制器截獲用戶終端發(fā)送并由用戶側路由器轉發(fā)的資源請求報文,以代理方式,將所述資源請求報文發(fā)送至服務器,服務器響應所述資源請求報文并發(fā)送報文,所述報文包括信息頭報文和數(shù)據(jù)體報文,所述信息頭報文是指用于承載描述對所述服務器的網(wǎng)絡資源請求操作、網(wǎng)絡資源當前狀態(tài)以及網(wǎng)絡資源屬性的元信息的報文,所述數(shù)據(jù)體報文是指用于承載服務器發(fā)送的數(shù)據(jù)實體內(nèi)容的報文,所述網(wǎng)絡側路由器接收到所述報文后,確定所需傳輸?shù)男畔㈩^報文和所需傳輸?shù)臄?shù)據(jù)體報文,所述所需傳輸?shù)臄?shù)據(jù)體報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給用戶側路由器并由用戶側路由器分發(fā)給用戶終端的數(shù)據(jù)體報文,所需傳輸?shù)男畔㈩^報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給sdn控制器的信息頭報文。網(wǎng)絡側路由器將所需傳輸?shù)男畔㈩^報文發(fā)送給sdn控制器,由sdn控制器實現(xiàn)對所述信息頭報文的代理和處理,將所需傳輸?shù)臄?shù)據(jù)體報文發(fā)送給用戶側路由器,由用戶側路由器分發(fā)至用戶終端。

另一種可能的設計中,sdn控制器截獲來自用戶終端的資源請求報文后,向網(wǎng)絡側路由器發(fā)送發(fā)送第一控制指令,向用戶側路由器發(fā)送第二控制指令。

所述第一控制指令用于指示所述網(wǎng)絡側路由器設置用戶側路由器列表、第 一流表以及第一緩存;所述用戶側路由器列表中指示的用戶側路由器用于接收所需傳輸?shù)臄?shù)據(jù)體報文,所需傳輸?shù)臄?shù)據(jù)體報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給用戶側路由器并由用戶側路由器分發(fā)給用戶終端的數(shù)據(jù)體報文;所述第一流表中包括的流表項用于識別所需傳輸?shù)男畔㈩^報文以及所需傳輸?shù)臄?shù)據(jù)體報文,所需傳輸?shù)男畔㈩^報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送并需要發(fā)送給所述sdn控制器的信息頭報文;所述第一緩存用于緩存所述網(wǎng)絡側服務器接收到的數(shù)據(jù)體報文、以及所述網(wǎng)絡側路由器向所述服務器發(fā)送傳輸控制協(xié)議tcp報文所需的tcp序列號和tcp確認序列號。

所述第二控制指令用于指示所述用戶側路由器設置終端列表、第二流表以及第二緩存。所述終端列表中指示的用戶終端用于接收所需傳輸?shù)臄?shù)據(jù)體報文;所述第二流表中包括的流表項用于識別出所需傳輸?shù)臄?shù)據(jù)體報文;所述第二緩存用于緩存用戶側路由器接收的數(shù)據(jù)體報文、所述用戶側路由器接收的數(shù)據(jù)體報文的tcp序列號以及所述sdn控制器為所述終端列表中指示的每一用戶終端設定的tcp序列號修訂值以及tcp確認序列號。

網(wǎng)絡側路由器接收所述第一控制指令并預先創(chuàng)建第一流表,并依據(jù)預先創(chuàng)建的第一流表中的流表項對所述報文進行深度報文檢測,識別出接收到的服務器發(fā)送的所述報文為所需傳輸?shù)男畔㈩^報文,將所述信息頭報文發(fā)送至sdn控制器,識別出接收到的服務器發(fā)送的所述報文為所需傳輸?shù)臄?shù)據(jù)體報文,將所述數(shù)據(jù)體報文發(fā)送給用戶側路由器。

用戶側路由器接收所述第二控制指令并預先創(chuàng)建第二流表,所述用戶側路由器依據(jù)預先創(chuàng)建的所述第二流表中的流表項,識別接收到的網(wǎng)絡側路由器發(fā)送的所述數(shù)據(jù)體報文為所需傳輸?shù)臄?shù)據(jù)體報文,修改所述數(shù)據(jù)體報文的傳輸控制協(xié)議tcp報文頭中包括的tcp序列號和tcp確認序列號,并生成用于分別發(fā)送給所述用戶側路由器連接的至少一個用戶終端的新數(shù)據(jù)體報文。所述用戶側路由器將所述新數(shù)據(jù)體報文,發(fā)送給預設終端列表中指示的、所述用戶側路由器分別連接的至少一個用戶終端。

再一種可能的設計中,所述用戶側路由器采用如下方式修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號和tcp確認序列號,包括:所述用戶側路由器依據(jù)軟件定義網(wǎng)絡sdn控制器設定的tcp序列號修訂值修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號;其中,修改后的tcp報文頭中包括的tcp序列號為所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號與所述tcp序列號修訂值之和,所述tcp序列號修訂值為所述sdn控制器與用戶終端建立tcp鏈接時作為發(fā)送端發(fā)送的報文的tcp序列號與所述sdn控制器和服務器建立tcp鏈接時作為發(fā)送端發(fā)送的報文的tcp序列號之差;所述用戶側路由器依據(jù)所述sdn控制器設定的tcp確認序列號,修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp確認序列號,其中,修改后的tcp報文頭中包括的tcp確認序列號為所述sdn控制器設定的tcp確認序列號。

又一種可能的設計中,所述網(wǎng)絡側路由器確定所述報文為所需傳輸?shù)臄?shù)據(jù)體報文之后,所述網(wǎng)絡側路由器還可在設定的有效緩存時間內(nèi)緩存接收到的該數(shù)據(jù)體報文,并緩存接收到的該數(shù)據(jù)體報文攜帶的tcp序列號。所述網(wǎng)絡側路由器向所述服務器發(fā)送傳輸控制協(xié)議tcp確認報文,其中,所述tcp確認報文的tcp報文頭中包括的tcp序列號為sdn控制器與服務器進行報文交互時設定的tcp序列號,所述tcp確認報文的tcp報文頭中包括的tcp確認序列號依據(jù)緩存的tcp序列號所確定。

所述用戶側路由器在設定的有效緩存時間內(nèi)緩存接收到的該數(shù)據(jù)體報文,并緩存接收到的該數(shù)據(jù)體報文攜帶的tcp序列號。

另一方面,提供一種網(wǎng)絡側路由器,該網(wǎng)絡側路由器具有實現(xiàn)上述報文傳輸方法中網(wǎng)絡側路由器的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應的模塊。

一種可能的設計中,所述網(wǎng)絡側路由器包括接收單元,處理單元和發(fā)送單元,所述接收單元,用于接收服務器發(fā)送的報文。所述處理單元,用于確定所 述接收單元接收的所述報文為所需傳輸?shù)臄?shù)據(jù)體報文,所述數(shù)據(jù)體報文是指用于承載服務器發(fā)送的數(shù)據(jù)實體內(nèi)容的報文,所需傳輸?shù)臄?shù)據(jù)體報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給用戶側路由器并由用戶側路由器分發(fā)給用戶終端的數(shù)據(jù)體報文。所述發(fā)送單元,用于將所述處理單元確定的所述所需傳輸?shù)臄?shù)據(jù)體報文發(fā)送給預設用戶側路由器列表中指示的每個用戶側路由器,通過每個用戶側路由器將所述數(shù)據(jù)體報文發(fā)送給每個用戶側路由器分別連接的至少一個用戶終端。

另一種可能的設計中,網(wǎng)絡側路由器的結構中包括接收器、處理器和發(fā)射器,所述處理器被配置為支持網(wǎng)絡側路由器執(zhí)行上述方法中相應的功能。所述接收器、發(fā)射器用于支持網(wǎng)絡側路由器與服務器之間的通信,支持網(wǎng)絡側路由器與sdn控制器之間的通信,以及支持網(wǎng)絡側路由器與用戶側路由器之間的通信。所述網(wǎng)絡側路由器還可以包括存儲器,所述存儲器用于與處理器耦合,其保存網(wǎng)絡側路由器必要的程序指令和數(shù)據(jù)。

再一方面,提供一種用戶側路由器,該用戶側路由器具有實現(xiàn)上述報文傳輸方法中用戶側路由器的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應的模塊。

一種可能的設計中,所述用戶側路由器包括接收單元、處理單元和發(fā)送單元,其中,所述接收單元,用于接收網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文,所述數(shù)據(jù)體報文為用于承載服務器發(fā)送的數(shù)據(jù)實體內(nèi)容的報文。所述處理單元,用于確定所述接收單元接收的所述數(shù)據(jù)體報文為所需傳輸?shù)臄?shù)據(jù)體報文,修改所述數(shù)據(jù)體報文的傳輸控制協(xié)議tcp報文頭中包括的tcp序列號和tcp確認序列號,并生成用于分別發(fā)送給所述用戶側路由器連接的至少一個用戶終端的新數(shù)據(jù)體報文,所需傳輸?shù)臄?shù)據(jù)體報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給用戶側路由器并由用戶側路由器分發(fā)給用戶終端的數(shù)據(jù)體報文。所述發(fā)送單元,用于將所述處理單元生成的所述新數(shù)據(jù)體報文,發(fā)送給預設用戶終端列表中指示的、所述 用戶側路由器分別連接的至少一個用戶終端。

另一種可能的設計中,所述用戶側路由器的結構中包括接收器、處理器和發(fā)射器,所述處理器被配置為支持用戶側路由器執(zhí)行上述方法中相應的功能。所述接收器,發(fā)射器用于支持用戶側路由器與網(wǎng)絡側路由器之間的通信,支持用戶側路由器與sdn控制器之間的通信,以及支持用戶側路由器與用戶終端之間的通信。所述用戶側路由器還可以包括存儲器,所述存儲器用于與處理器耦合,其保存用戶側路由器必要的程序指令和數(shù)據(jù)。

又一方面,提供一種sdn控制器,該sdn控制器具有實現(xiàn)上述報文傳輸方法中sdn控制器的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應的模塊。

一種可能的設計中,所述sdn控制器包括接收單元和發(fā)送單元,其中,所述接收單元,用于接收用戶側路由器轉發(fā)的資源請求報文,所述資源請求報文為所需傳輸?shù)馁Y源請求報文,所需傳輸?shù)馁Y源請求報文是指由用戶側路由器轉發(fā)給sdn控制器,并由sdn控制器以代理方式向服務器發(fā)送的資源請求報文。所述發(fā)送單元,用于以代理方式,向服務器發(fā)送所述所述接收單元接收的所述資源請求報文。

另一種可能的設計中,所述sdn控制器包括接收器和發(fā)射器,所述接收器和所述發(fā)射器用于支持sdn控制器與用戶側路由器之間的通信,支持sdn控制器與網(wǎng)絡側路由器之間的通信,以及支持sdn控制器與服務器之間的通信。

再一方面,提供一種通信系統(tǒng),該通信系統(tǒng)中包括上述涉及的網(wǎng)絡側路由器、用戶側路由器和sdn控制器。

再一方面,本發(fā)明實施例提供了一種計算機存儲介質,用于儲存為上述網(wǎng)絡側路由器所用的計算機軟件指令,其包含用于執(zhí)行上述方面所涉及的程序。

再一方面,本發(fā)明實施例提供了一種計算機存儲介質,用于儲存為上述用 戶側路由器所用的計算機軟件指令,其包含用于執(zhí)行上述方面所涉及的程序。

再一方面,本發(fā)明實施例提供了一種計算機存儲介質,用于儲存為上述sdn控制器所用的計算機軟件指令,其包含用于執(zhí)行上述方面所涉及的程序。

相較于現(xiàn)有技術,本發(fā)明實施例提供的方案可以在一定程度上減少運營商網(wǎng)絡中傳輸?shù)膬?nèi)容相同的報文的數(shù)量,可在一定程度上降低內(nèi)容相同的報文對運營商網(wǎng)絡的帶寬資源占用率。

附圖說明

圖1為視頻直播錄制系統(tǒng)的架構示意圖;

圖2為本發(fā)明實施例適用的系統(tǒng)架構圖;

圖3為本發(fā)明實施例提供的報文傳輸方法實施流程圖;

圖4為本發(fā)明實施例提供的網(wǎng)絡側路由器進行報文傳輸?shù)倪^程示意圖;

圖5為本發(fā)明實施例提供的用戶側路由器進行報文傳輸?shù)倪^程示意圖;

圖6a至圖6c為本發(fā)明實施例提供的網(wǎng)絡側路由器結構示意圖;

圖7a至圖7c為本發(fā)明實施例提供的用戶側路由器結構示意圖;

圖8a至圖8b為本發(fā)明實施例提供的sdn控制器結構示意圖。

具體實施方式

下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行詳細地描述。

本發(fā)明實施例提供的報文傳輸方法、裝置和系統(tǒng),可應用于例如圖1所示的視頻直播錄制系統(tǒng)。直播錄制的視頻文件被切分成若干個基于超文本傳輸協(xié)議(hypertexttransferprotocol,http)的http文件,這些http文件被上傳至http服務器,http服務器通過運營商網(wǎng)絡將http文件傳輸給用戶終端。

圖1所示的視頻直播錄制系統(tǒng)中,在將http文件傳輸給用戶終端過程中通常會有大量內(nèi)容重復的http報文在運營商網(wǎng)絡中傳輸。本發(fā)明實施例中為 避免例如圖1所示的視頻直播錄制系統(tǒng)中過多重復的http報文在運營商網(wǎng)絡中傳輸,造成不必要的帶寬資源浪費,可采用圖2所述的系統(tǒng)架構,通過網(wǎng)絡側路由器將需要傳輸給用戶終端的報文分發(fā)至用戶側路由器,再由用戶側路由器分發(fā)至用戶終端,通常用戶側路由器連接的用戶終端會包括不止一個用戶終端,即用戶側路由器的數(shù)量會少于用戶終端的數(shù)量,故網(wǎng)絡側路由器將需要傳輸給用戶終端報文分發(fā)至用戶側路由器,可在一定程度上減少運營商網(wǎng)絡中傳輸?shù)膬?nèi)容相同的報文的數(shù)量,可在一定程度上降低內(nèi)容相同的報文對運營商網(wǎng)絡的帶寬資源占用率。

圖2所示的系統(tǒng)中包括有用戶側路由器、網(wǎng)絡側路由器和軟件定義網(wǎng)絡(softwaredefinednetwork,sdn)控制器。服務器需要發(fā)送的報文包括信息頭報文和數(shù)據(jù)體報文,其中,信息頭是指在請求/響應模型中,用于描述對網(wǎng)絡資源的請求操作、網(wǎng)絡資源當前狀態(tài)、以及網(wǎng)絡資源屬性的元信息。數(shù)據(jù)體是指由服務器傳送的數(shù)據(jù)實體內(nèi)容。所述信息頭報文是指用于承載信息頭的報文。所述數(shù)據(jù)體報文是指用于承載數(shù)據(jù)體的報文。信息頭報文和數(shù)據(jù)體報文在不同的傳輸協(xié)議中可能會有不同的名稱,例如在采用http傳輸協(xié)議時,信息頭報文可以稱為http協(xié)議報文,http協(xié)議報文包括資源請求報文和http應答報文。數(shù)據(jù)體報文可稱為http數(shù)據(jù)報文。本發(fā)明實施例中可由sdn控制器負責信息頭報文的代理或處理,由運營商網(wǎng)絡中的網(wǎng)絡側路由器和用戶側路由器處理數(shù)據(jù)體報文。用戶側路由器連接用戶終端,接收用戶終端發(fā)送的資源請求報文,將所述資源請求報文發(fā)送給sdn控制器。sdn控制器以代理方式向服務器發(fā)送所述資源請求報文。服務器接收到資源請求報文后發(fā)送報文,網(wǎng)絡側路由器與服務器連接,接收服務器發(fā)送的報文,并將信息頭報文發(fā)送給sdn控制器,將數(shù)據(jù)體報文分發(fā)給用戶側路由器,通過每個用戶側路由器將所述數(shù)據(jù)體報文分發(fā)給每個用戶側路由器分別連接的至少一個用戶終端。

本發(fā)明實施例以下為描述方便,將經(jīng)由網(wǎng)絡側路由器發(fā)送并需要發(fā)送給sdn控制器的信息頭報文稱為所需傳輸?shù)男畔㈩^報文,將經(jīng)由網(wǎng)絡側路由器發(fā) 送給用戶側路由器并由用戶側路由器分發(fā)給用戶終端的數(shù)據(jù)體報文,稱為所需傳輸?shù)臄?shù)據(jù)體報文。

通常,運營商網(wǎng)絡中用戶側路由器的數(shù)量為多個,本發(fā)明實施例中所述多個可以理解為是至少一個??梢岳斫獾氖?,本發(fā)明實施例中通過網(wǎng)絡側路由器將數(shù)據(jù)體報文分發(fā)至用戶側路由器,再由用戶側路由器分發(fā)至用戶終端,以減少運營商網(wǎng)絡中相同http報文的數(shù)量,適用于用戶側路由器連接的用戶終端數(shù)量多于所述用戶側路由器的數(shù)量的場景,即所述多個用戶側路由器中有至少一個用戶側路由器連接的用戶終端數(shù)量為至少兩個。

需要說明的是,本發(fā)明實施例中圖1以視頻直播系統(tǒng)為例進行說明的,但并不引以為限,其它在運營商網(wǎng)絡中應用tcp鏈接進行報文傳輸?shù)南到y(tǒng)也可適用。

進一步需要說明的是,本發(fā)明實施例中涉及的用戶終端可以包括各種具有無線通信功能的手持設備、車載設備、可穿戴設備、計算設備或連接到無線調制解調器的其它處理設備,以及各種形式的用戶設備(userequipment,ue),移動臺(mobilestation,ms),終端(terminal),終端設備(terminalequipment)等等。

本發(fā)明實施例以下將對應用圖2所示系統(tǒng)進行報文傳輸?shù)膶嵤┻^程進行說明。

圖3所示為本發(fā)明實施例提供的報文傳輸方法實施流程圖,如圖3所示包括:

s101:用戶終端發(fā)送資源請求報文。

本發(fā)明實施例中用戶終端在需要請求服務器發(fā)送報文的時候發(fā)送資源請求報文,例如用戶終端在需要進行視頻直播業(yè)務時,可向http服務器發(fā)送http請求報文。

s102:sdn控制器截獲用戶終端發(fā)送的資源請求報文,并以代理方式向服務器發(fā)送所述資源請求報文。

可選的,本發(fā)明實施例中通過sdn控制器處理信息頭報文,通過網(wǎng)絡側路由器和用戶側路由器處理數(shù)據(jù)體報文,進而實現(xiàn)服務器與用戶終端之間報文傳輸?shù)拇恚时景l(fā)明實施例中所述sdn控制器向網(wǎng)絡側路由器發(fā)送第一控制指令,所述第一控制指令用于指示所述網(wǎng)絡側路由器預設用戶側路由器列表、第一流表以及第一緩存。其中,所述用戶側路由器列表中包括的用戶側路由器用于接收所需傳輸?shù)臄?shù)據(jù)體報文。所述第一流表中包括的流表項用于識別所需傳輸?shù)男畔㈩^報文以及所需傳輸?shù)臄?shù)據(jù)體報文。所述第一緩存用于緩存所述網(wǎng)絡側服務器接收到的數(shù)據(jù)體報文、以及所述網(wǎng)絡側路由器向所述服務器發(fā)送傳輸控制協(xié)議tcp報文所需的tcp序列號和tcp確認序列號。

所述sdn控制器向用戶側路由器發(fā)送第二控制指令,所述第二控制指令用于指示所述用戶側路由器預設終端列表、第二流表以及第二緩存。其中,所述用戶終端列表中包括的用戶終端用于接收所需傳輸?shù)臄?shù)據(jù)體報文,所述第二流表中包括的流表項用于識別出所需傳輸?shù)臄?shù)據(jù)體報文,所述第二緩存用于緩存用戶側路由器接收的數(shù)據(jù)體報文、所述用戶側路由器接收的數(shù)據(jù)體報文的tcp序列號以及所述sdn控制器為所述終端列表中包括的每一用戶終端設定的tcp序列號修訂值以及tcp確認序列號。

s103:服務器發(fā)送報文,所述報文包括信息頭報文和數(shù)據(jù)體報文。

本發(fā)明實施例中所述服務器發(fā)送的報文可以是用戶側路由器預先設定的某種業(yè)務類型的報文,例如可以是http視頻報文。

s104:網(wǎng)絡側路由器接收服務器發(fā)送的報文,確定所述服務器發(fā)送的報文為所需傳輸?shù)男畔㈩^報文或所需傳輸?shù)臄?shù)據(jù)體報文。

本發(fā)明實施例中網(wǎng)絡側路由器可預先設定所需傳輸?shù)男畔㈩^報文和數(shù)據(jù)體報文,即可以預先設定流表,該預先設定的流表是可以依據(jù)sdn控制器發(fā)送的第一控制指令進行預先創(chuàng)建的,即上文中涉及的第一流表。網(wǎng)絡側路由器在接收到服務器發(fā)送的信息頭報文時,依據(jù)預先創(chuàng)建的流表中的流表項對所述報文進行深度報文檢測,識別出所述報文為所需傳輸?shù)男畔㈩^報文或數(shù)據(jù)體報 文。其中,所述進行深度報文檢測過程可以是:判斷預先創(chuàng)建的流表中是否存在與所述報文相匹配的ip五元組和關鍵字,若存在,則所述報文為所需傳輸?shù)男畔㈩^報文;若不存在,則繼續(xù)判斷預先創(chuàng)建的流表中是否存在與所述報文的ip五元組相匹配的ip五元組,若存在,則所述報文為所需傳輸?shù)臄?shù)據(jù)體報文。

本發(fā)明實施例中,若所述報文為所需傳輸?shù)男畔㈩^報文,則執(zhí)行s105的步驟。若所述報文為所需傳輸?shù)臄?shù)據(jù)體報文,則執(zhí)行s106的步驟。

s105:若所述報文為所需傳輸?shù)男畔㈩^報文,則網(wǎng)絡側路由器將所述信息頭報文發(fā)送給sdn控制器。

s106:若所述報文為所需傳輸?shù)臄?shù)據(jù)體報文,則網(wǎng)絡側路由器將所述數(shù)據(jù)體報文發(fā)送給預設用戶側路由器列表中的每個用戶側路由器。

s107:網(wǎng)絡側路由器緩存接收到的數(shù)據(jù)體報文,并緩存接收到的該數(shù)據(jù)體報文攜帶的tcp序列號,實現(xiàn)更新已緩存的數(shù)據(jù)體報文的tcp序列號。

本發(fā)明實施例中將接收到的數(shù)據(jù)體報文緩存在第一緩存中,并記錄緩存的數(shù)據(jù)體報文的tcp序列號,可實現(xiàn)依據(jù)所述tcp序列號確定目前接收到的數(shù)據(jù)體報文的字節(jié)號。

本發(fā)明實施例中所述第一緩存為上述實施例中依據(jù)sdn控制器發(fā)送的第一控制指令所創(chuàng)建的。

為了保證第一緩存中記錄的數(shù)據(jù)體報文的tcp序列號的準確性,在每次緩存數(shù)據(jù)體報文時,更新已緩存數(shù)據(jù)體報文的tcp序列號。

進一步的,本發(fā)明實施例中為保證第一緩存中數(shù)據(jù)體報文的時效性,可設定緩存的數(shù)據(jù)體報文的老化時間,即實現(xiàn)在設定的有效緩存時間內(nèi)緩存所述數(shù)據(jù)體報文。

需要說明的是,本發(fā)明實施例中s107為可選步驟。

s108:所述網(wǎng)絡側路由器向服務器發(fā)送tcp確認報文。

其中,所述tcp確認報文的tcp報文頭中包括的tcp序列號為sdn控 制器與服務器進行報文交互時設定的tcp序列號,所述tcp確認報文的tcp報文頭中包括的tcp確認序列號依據(jù)所述網(wǎng)絡側路由器已緩存的tcp序列號所確定。

需要說明的是,本發(fā)明實施例中s108為可選步驟。

進一步需要說明的是,s105、s106、s107和s108的執(zhí)行順序不分先后。

本發(fā)明實施例中網(wǎng)絡側路由器進行報文傳輸?shù)倪^程示意圖如圖4所示。

s109:用戶側路由器接收網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文,修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號和tcp確認序列號,并生成用于分別發(fā)送給所述用戶側路由器連接的至少一個用戶終端的新數(shù)據(jù)體報文。

本發(fā)明實施例中sdn控制器與服務器建立一個公共tcp連接,用戶設備又與sdn控制器建立獨立的用戶tcp連接,故本發(fā)明實施例中用戶側路由器向用戶終端發(fā)送數(shù)據(jù)體報文時,需要將公共tcp連接的報文轉成獨立的用戶tcp連接的報文,轉發(fā)給用戶終端。

本發(fā)明實施例中所述用戶側路由器依據(jù)sdn控制器設定的tcp序列號修訂值修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號。其中,修改后的tcp報文頭中包括的tcp序列號為所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號與所述tcp序列號修訂值之和,所述tcp序列號修訂值為所述sdn控制器與用戶終端建立tcp鏈接時作為發(fā)送端發(fā)送的報文的tcp序列號與所述sdn控制器與服務器建立tcp鏈接時作為發(fā)送端發(fā)送的報文的tcp序列號之差。

例如,假設所述sdn控制器與服務器建立tcp鏈接時作為發(fā)送端發(fā)送的報文的tcp序列號是0。所述sdn控制器與用戶終端a建立tcp鏈接時作為發(fā)送端發(fā)送的報文的tcp序列號是17,則tcp序列號修訂值=17-0=17。

假設當前服務器發(fā)送的數(shù)據(jù)體報文為第10000字節(jié),所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號=10000,則修改后的tcp報文頭中包括的tcp序列號=10000+17=10017。

同樣的,tcp確認序列號,是由用戶終端發(fā)送報文的初始tcp序列號與已發(fā)送字節(jié)數(shù)決定的,故不同的用戶終端的tcp確認序列號也不一樣。

本發(fā)明實施例中所述用戶側路由器依據(jù)所述sdn控制器設定的tcp確認序列號,修改所述數(shù)據(jù)體報文的tcp報文頭中包括的確認tcp序列號。其中,修改后的tcp報文頭中包括的tcp確認序列號為所述sdn控制器設定的tcp確認序列號,所述sdn控制器設定的tcp確認序列號為用戶終端發(fā)送報文的初始tcp序列號與已發(fā)送字節(jié)數(shù)之和再加1。

本發(fā)明實施例中用戶側路由器可預先設定所需傳輸?shù)臄?shù)據(jù)體報文,即可以預先設定流表,該預先設定的流表是可以依據(jù)sdn控制器發(fā)送的第二控制指令進行預先創(chuàng)建的,即上文中涉及的第二流表,通過該流表中保存的流表項用于識別所需傳輸?shù)臄?shù)據(jù)體報文。用戶側路由器接收到網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文后,可判斷預先創(chuàng)建的流表中是否存在與所述數(shù)據(jù)體報文的ip五元組相匹配的ip五元組,若存在,則確定該數(shù)據(jù)體報文為需要傳輸給用戶終端的報文,然后再進行報文的修改生成新報文并發(fā)送給用戶終端。

s110:所述用戶側路由器將所述新數(shù)據(jù)體報文,發(fā)送給預設終端列表中指示的、所述用戶側路由器分別連接的至少一個用戶終端。

s111:用戶側路由器在設定的有效緩存時間內(nèi)緩存所述數(shù)據(jù)體報文,并緩存接收到的該數(shù)據(jù)體報文攜帶的tcp序列號,實現(xiàn)更新已緩存數(shù)據(jù)體報文的tcp序列號。

本發(fā)明實施例中用戶側路由器緩存報文的實現(xiàn)過程與網(wǎng)絡側路由器保存數(shù)據(jù)體報文的過程相似,在此不再贅述。

本發(fā)明實施例中s110和s111的執(zhí)行順序不分先后。

本發(fā)明實施例中用戶側路由器進行報文傳輸?shù)倪^程示意圖如圖5所示。

本發(fā)明實施例中上述實現(xiàn)報文傳輸?shù)姆椒ǎㄟ^網(wǎng)絡側路由器將數(shù)據(jù)體報文分發(fā)至用戶側路由器,再由用戶側路由器分發(fā)至用戶終端,通常用戶側路由器連接的用戶終端會包括不止一個用戶終端,實現(xiàn)一種類似組播的樹形報文傳 輸方法,代替現(xiàn)有需要服務器與用戶終端之間端到端的tcp傳輸方式,可在一定程度上減少運營商網(wǎng)絡中傳輸?shù)膬?nèi)容相同的報文的數(shù)量,在一定程度上降低內(nèi)容相同的報文對運營商網(wǎng)絡的帶寬資源占用率。

可選的,本發(fā)明實施例中用戶側路由器預先設定的第一流表和第二流表,可依據(jù)sdn控制器再次接收的資源請求報文進行更新。即若sdn控制器接收到新的用戶終端發(fā)送的資源請求報文時,若確定該新的用戶終端請求的報文為重復的報文,則sdn控制器不再向服務器發(fā)送資源請求報文,而是直接生成應答報文。sdn控制器向用戶側路由器下發(fā)更新指令,以更新第二流表和終端列表,將新的用戶終端信息加入用戶側路由器的終端列表中??刂破飨蚓W(wǎng)絡側路由器下發(fā)下發(fā)更新指令,以更新第一流表和用戶側路由器列表。

上述主要從各個網(wǎng)元之間交互的角度對本發(fā)明實施例提供的方案進行了介紹。可以理解的是,各個網(wǎng)元,例如用戶側路由器,網(wǎng)絡側路由器和sdn控制器等為了實現(xiàn)上述功能,其包含了執(zhí)行各個功能相應的硬件結構和/或軟件模塊。本領域技術人員應該很容易意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,本發(fā)明能夠以硬件或硬件和計算機軟件的結合形式來實現(xiàn)。某個功能究竟以硬件還是計算機軟件驅動硬件的方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。

本發(fā)明實施例提供一種網(wǎng)絡側路由器100,圖6a所示為本發(fā)明實施例提供的網(wǎng)絡側路由器100的一種可能的結構示意圖,如圖6a所示,網(wǎng)絡側路由器100包括接收單元101、處理單元102和發(fā)送單元103,其中,

接收單元101,用于接收服務器發(fā)送的報文。

處理單元102,用于確定所述接收單元101接收的所述報文為所需傳輸?shù)臄?shù)據(jù)體報文,所述數(shù)據(jù)體報文是指用于承載服務器發(fā)送的數(shù)據(jù)實體內(nèi)容的報文,所需傳輸?shù)臄?shù)據(jù)體報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給用戶側路由器并由用 戶側路由器分發(fā)給用戶終端的數(shù)據(jù)體報文。

發(fā)送單元103,用于將所述處理單元102確定的所述所需傳輸?shù)臄?shù)據(jù)體報文發(fā)送給預設用戶側路由器列表中指示的每個用戶側路由器,通過每個用戶側路由器將所述數(shù)據(jù)體報文發(fā)送給每個用戶側路由器分別連接的至少一個用戶終端。

一種可實現(xiàn)的方式中,所述處理器還用于:在所述接收單元101接收服務器發(fā)送的報文之后,確定所述報文為所需傳輸?shù)男畔㈩^報文,所述信息頭報文是指用于承載描述對所述服務器的網(wǎng)絡資源請求操作、網(wǎng)絡資源當前狀態(tài)以及網(wǎng)絡資源屬性的元信息的報文,所需傳輸?shù)男畔㈩^報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給sdn控制器的信息頭報文。

所述發(fā)送單元103,還用于將所述信息頭報文發(fā)送給所述sdn控制器。

其中,所述處理單元102,具體采用如下方式確定所述報文為所需傳輸?shù)男畔㈩^報文或數(shù)據(jù)體報文:

依據(jù)預先創(chuàng)建的流表中的流表項對所述報文進行深度報文檢測,識別出所述報文為所需傳輸?shù)男畔㈩^報文或數(shù)據(jù)體報文,其中,所述流表為所述網(wǎng)絡側路由器依據(jù)sdn控制器在接收到用戶終端發(fā)送的資源請求報文時所發(fā)送的控制指令預先創(chuàng)建的。

另一種可實現(xiàn)的方式中,所述網(wǎng)絡側路由器還包括緩存單元104,如圖6b所示,其中,

所述緩存單元104,用于在所述處理單元102確定所述報文為所需傳輸?shù)臄?shù)據(jù)體報文之后,在設定的有效緩存時間內(nèi)緩存接收到的該數(shù)據(jù)體報文,并緩存接收到的該數(shù)據(jù)體報文攜帶的tcp序列號。

所述發(fā)送單元103,還用于:向所述服務器發(fā)送傳輸控制協(xié)議tcp確認報文,其中,所述tcp確認報文的tcp報文頭中包括的tcp序列號為sdn控制器與服務器進行報文交互時設定的tcp序列號,所述tcp確認報文的tcp報文頭中包括的tcp確認序列號依據(jù)所述緩存單元104緩存的tcp序列號所 確定。

圖6c為本發(fā)明實施例提供的網(wǎng)絡側路由器100另一種可能的結構示意圖,如圖6c所示,網(wǎng)絡側路由器100包括處理器1001、接收器1002、發(fā)射器1003和存儲器1004。

存儲器1004,用于存儲處理器1001執(zhí)行的程序代碼。

處理器1001,用于調用所述存儲器1004存儲的程序,通過接收器1002接收服務器發(fā)送的報文,并確定接收的所述報文為所需傳輸?shù)臄?shù)據(jù)體報文,通過發(fā)射器1003將所述所需傳輸?shù)臄?shù)據(jù)體報文發(fā)送給預設用戶側路由器列表中指示的每個用戶側路由器,通過每個用戶側路由器將所述數(shù)據(jù)體報文發(fā)送給每個用戶側路由器分別連接的至少一個用戶終端。

本發(fā)明實施例提供了一種計算機存儲介質,用于儲存為上述網(wǎng)絡側路由器所用的計算機軟件指令,其包含用于執(zhí)行上述方面所涉及的程序。

本發(fā)明實施例提供一種用戶側路由器,圖7a為本發(fā)明實施例提供的用戶側路由器200的一種可能的結構示意圖,如圖7a所示,用戶側路由器200包括接收單元201、處理單元202和發(fā)送單元203,其中,

接收單元201,用于接收網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文,所述數(shù)據(jù)體報文為用于承載服務器發(fā)送的數(shù)據(jù)實體內(nèi)容的報文。

處理單元202,用于確定所述接收單元201接收的所述數(shù)據(jù)體報文為所需傳輸?shù)臄?shù)據(jù)體報文,修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號和tcp確認序列號,并生成用于分別發(fā)送給所述用戶側路由器連接的至少一個用戶終端的新數(shù)據(jù)體報文,所需傳輸?shù)臄?shù)據(jù)體報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給用戶側路由器并由用戶側路由器分發(fā)給用戶終端的數(shù)據(jù)體報文。

發(fā)送單元203,用于將所述處理單元202生成的所述新數(shù)據(jù)體報文,發(fā)送給預設用戶終端列表中指示的、所述用戶側路由器分別連接的至少一個用戶終端。

其中,所述處理單元202,具體用于按如下方式修改所述數(shù)據(jù)體報文的tcp 報文頭中包括的tcp序列號和tcp確認序列號:

依據(jù)sdn控制器設定的tcp序列號修訂值修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號。其中,修改后的tcp報文頭中包括的tcp序列號為所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號與所述tcp序列號修訂值之和,所述tcp序列號修訂值為所述sdn控制器與用戶終端建立tcp鏈接時作為發(fā)送端發(fā)送的報文的tcp序列號與所述sdn控制器和服務器建立tcp鏈接時作為發(fā)送端發(fā)送的報文的tcp序列號之差。依據(jù)所述sdn控制器設定的tcp確認序列號,修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp確認序列號,其中,修改后的tcp報文頭中包括的tcp確認序列號為所述sdn控制器設定的tcp確認序列號。

其中,所述處理單元202,具體用于按如下方式確定所述數(shù)據(jù)體報文為所需傳輸?shù)臄?shù)據(jù)體報文:

依據(jù)預先創(chuàng)建的流表中的流表項,識別所述數(shù)據(jù)體報文為所需傳輸?shù)臄?shù)據(jù)體報文,其中,所述流表為所述用戶側路由器依據(jù)sdn控制器在接收到用戶終端發(fā)送的資源請求報文時所發(fā)送的控制指令預先創(chuàng)建的。

一種可能的實現(xiàn)方式中,所述用戶側路由器還包括緩存單元204,如圖7b所示,其中,

所述緩存單元204,用于在所述接收單元201接收網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文之后,在設定的有效緩存時間內(nèi)緩存接收到的該數(shù)據(jù)體報文,并緩存接收到的該數(shù)據(jù)體報文攜帶的tcp序列號。

另一種可能的實現(xiàn)方式中,所述接收單元201,還用于:接收網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文之前,接收自身連接的至少一個用戶終端發(fā)送的資源請求報文。

所述處理單元202,還用于:確定所述資源請求報文為所需傳輸?shù)馁Y源請求報文,所需傳輸?shù)馁Y源請求報文是指由用戶側路由器轉發(fā)給sdn控制器,并由sdn控制器以代理方式向服務器發(fā)送的資源請求報文。

所述發(fā)送單元203,還用于:將所述資源請求報文發(fā)送給sdn控制器。

圖7c為本發(fā)明實施例提供的用戶側路由器200另一種可能的結構示意圖,如圖7c所示,用戶側路由器200包括處理器2001、接收器2002、發(fā)射器2003和存儲器2004。

存儲器2004,用于存儲處理器2001執(zhí)行的程序代碼。

處理器2001,用于調用所述存儲器2004存儲的程序,通過接收器2002接收網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文,并確定所述數(shù)據(jù)體報文為所需傳輸?shù)臄?shù)據(jù)體報文,修改所述數(shù)據(jù)體報文的tcp報文頭中包括的tcp序列號和tcp確認序列號,并生成用于分別發(fā)送給所述用戶側路由器連接的至少一個用戶終端的新數(shù)據(jù)體報文,并通過發(fā)射器2003將生成的所述新數(shù)據(jù)體報文,發(fā)送給預設終端列表中指示的、所述用戶側路由器分別連接的至少一個用戶終端。

本發(fā)明實施例提供了一種計算機存儲介質,用于儲存為上述用戶側路由器所用的計算機軟件指令,其包含用于執(zhí)行上述方面所涉及的程序。

本發(fā)明實施例還提供一種sdn控制器,圖8a所示為本發(fā)明實施例提供的sdn控制器300的一種可能的結構示意圖,如圖8a所示,sdn控制300包括接收單元301和發(fā)送單元302,其中,接收單元301,用于接收用戶側路由器轉發(fā)的資源請求報文,所述資源請求報文為所需傳輸?shù)馁Y源請求報文,所需傳輸?shù)馁Y源請求報文是指由用戶側路由器轉發(fā)給sdn控制器,并由sdn控制器以代理方式向服務器發(fā)送的資源請求報文。

發(fā)送單元302,用于以代理方式,向服務器發(fā)送所述所述接收單元301接收的所述資源請求報文。

一種可能的實現(xiàn)方式中,所述發(fā)送單元302,還用于:在所述接收單元301接收用戶側路由器轉發(fā)的資源請求報文之后,向網(wǎng)絡側路由器發(fā)送第一控制指令,以及向用戶側路由器發(fā)送第二控制指令。

所述第一控制指令用于指示所述網(wǎng)絡側路由器設置用戶側路由器列表、第一流表以及第一緩存。所述用戶側路由器列表中指示的用戶側路由器用于接收 所需傳輸?shù)臄?shù)據(jù)體報文,所需傳輸?shù)臄?shù)據(jù)體報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送給用戶側路由器并由用戶側路由器分發(fā)給用戶終端的數(shù)據(jù)體報文。所述第一流表中包括的流表項用于識別所需傳輸?shù)男畔㈩^報文以及所需傳輸?shù)臄?shù)據(jù)體報文,所需傳輸?shù)男畔㈩^報文是指經(jīng)由網(wǎng)絡側路由器發(fā)送并需要發(fā)送給所述sdn控制器的信息頭報文。所述第一緩存用于緩存所述網(wǎng)絡側服務器接收到的數(shù)據(jù)體報文、以及所述網(wǎng)絡側路由器向所述服務器發(fā)送傳輸控制協(xié)議tcp報文所需的tcp序列號和tcp確認序列號。

所述第二控制指令用于指示所述用戶側路由器設置終端列表、第二流表以及第二緩存。所述終端列表中指示的用戶終端用于接收所需傳輸?shù)臄?shù)據(jù)體報文。所述第二流表中包括的流表項用于識別出所需傳輸?shù)臄?shù)據(jù)體報文。所述第二緩存用于緩存用戶側路由器接收的數(shù)據(jù)體報文、所述用戶側路由器接收的數(shù)據(jù)體報文的tcp序列號以及所述sdn控制器為所述終端列表中指示的每一用戶終端設定的tcp序列號修訂值以及tcp確認序列號。

圖8b為本發(fā)明實施例提供的sdn控制器300的另一種結構示意圖,如圖8b所示。sdn控制器300包括接收器3001和發(fā)射器3002。

其中,接收器3001用于接收用戶側路由器轉發(fā)的資源請求報文。

發(fā)射器3002,用于以代理方式,向服務器發(fā)送所述所述接收器3001接收的所述資源請求報文。

本發(fā)明實施例提供了一種計算機存儲介質,用于儲存為上述sdn控制器所用的計算機軟件指令,其包含用于執(zhí)行上述方面所涉及的程序。

可以理解的是,本發(fā)明實施例上述涉及的網(wǎng)絡側路由器100、用戶側路由器200和sdn控制器300,可用于實現(xiàn)上述方法實施例中涉及的功能,其具體實現(xiàn)過程可以參照上述方法實施例的相關描述,此處不再贅述。

本發(fā)明實施例還提供一種報文傳輸系統(tǒng),該報文傳輸系統(tǒng)包括上述涉及的網(wǎng)絡側路由器100、用戶側路由器200和sdn控制器300,并具有相應的功能,在此不再贅述。

本發(fā)明實施例提供的報文傳輸方法、裝置及系統(tǒng),網(wǎng)絡側路由器將需要傳輸給用戶終端的報文分發(fā)至用戶側路由器,用戶側路由器接收網(wǎng)絡側路由器發(fā)送的數(shù)據(jù)體報文,將所述數(shù)據(jù)體報文發(fā)送給每個用戶側路由器分別連接的至少一個用戶終端,可在一定程度上減少運營商網(wǎng)絡中傳輸?shù)膬?nèi)容相同的報文的數(shù)量,可在一定程度上降低內(nèi)容相同的報文對運營商網(wǎng)絡的帶寬資源占用率。

顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1