專利名稱::一種基于單向鏈路的文件傳輸方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于通訊和廣播
技術(shù)領(lǐng)域:
,尤其涉及一種基于單向鏈路傳輸?shù)奈募指罘庋b傳送方法。
背景技術(shù):
:伴隨著通訊技術(shù)和數(shù)字技術(shù)的迅猛發(fā)展,用戶對(duì)信息資源的獲取與共享需求變得越來越迫切,也越來越多樣化。各種文件作為信息的重要栽體,如何在網(wǎng)絡(luò)中快速、有效地傳輸,是擺在我們面前的重要課題。目前,文件的網(wǎng)絡(luò)傳輸有很多方式,如比較常用的有文件傳輸協(xié)議(FileTransferProtocal,縮寫為FTP)月l務(wù),它工作在開放式通信系統(tǒng)互聯(lián)模型(OpenSystemInterconnection,簡稱OSI模型)的第七層,傳輸控制協(xié)議模型(TransmissionControlProtocol,簡稱TCP模型)的第四層上,即應(yīng)用層。這樣,F(xiàn)TP客戶在和服務(wù)器建立連接前就要經(jīng)過一個(gè)被廣為熟知的"三次握手"的過程,為數(shù)據(jù)的傳輸提供了可靠的保證?,F(xiàn)在,用得比較多的點(diǎn)對(duì)點(diǎn)(peer-to-peer,簡稱P2P)傳輸,BT(BitTorrent協(xié)議)也是一種文件傳輸方式。但是,針對(duì)單向傳輸網(wǎng)絡(luò),比如廣播網(wǎng)絡(luò),將同一文件傳輸給多個(gè)用戶,目前尚無很好的文件傳輸解決方法。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種基于單向鏈路上的文件的封裝傳輸方法,該方法將需要傳送的文件進(jìn)行分割傳輸,能夠快速、有效地實(shí)現(xiàn)文件數(shù)據(jù)在單向傳輸系統(tǒng)中的傳輸。為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案包括如下步驟第一步,將需要傳輸?shù)奈募奈募?shù)描述為文件屬性表(FileAttributeTable,縮寫為FAT)文件;第二步,根據(jù)需要對(duì)FAT文件進(jìn)行分片處理,再按照FAT封裝語法打包成FAT片包傳輸;第三步,將需要傳輸?shù)奈募制山y(tǒng)一長度的文件片,最后一個(gè)文件片長度不足時(shí)予以填充,再按照文件片封裝語法打包成文件片包;第四步,將若干文件片組成文件塊,并對(duì)其進(jìn)行校驗(yàn)形成緊跟此文件塊的校驗(yàn)塊;4第五步,根據(jù)需要對(duì)校驗(yàn)塊進(jìn)行分片處理,再按照校驗(yàn)片封裝語法打包成校驗(yàn)片包;第六步,傳輸文件片包以及緊跟其后的校驗(yàn)片包。所述FAT文件描述數(shù)據(jù)業(yè)務(wù)的文件構(gòu)成、文件屬性、傳輸分割參數(shù)等信息,采用可擴(kuò)展標(biāo)識(shí)語言(TheExtensibleMarkupLanguage,縮寫為XML)語法描述。本發(fā)明根據(jù)具體情況,可以將一個(gè)FAT文件分割成n個(gè)FAT片,每個(gè)FAT片的長度一般不超過4095字節(jié),n取值通常在1256范圍內(nèi),當(dāng)n等于l時(shí)表示不分割。所述FAT片包包含F(xiàn)AT包頭、FAT凈荷和CRC—32。其中,F(xiàn)AT包頭包括資源標(biāo)識(shí)、當(dāng)前片序號(hào)、更新序號(hào)、編碼類型、最后片序號(hào)和片長度,F(xiàn)AT凈荷攜帶FAT片數(shù)據(jù),CRC—32是對(duì)FAT凈荷進(jìn)行校驗(yàn)的32位循環(huán)校驗(yàn)位。所述文件片包由文件片包頭和文件片凈荷組成。文件片包頭包括資源標(biāo)識(shí)、塊序號(hào)、片序號(hào)和更新序號(hào);文件片凈荷攜帶實(shí)際的文件片。所述校驗(yàn)片包的語法封裝結(jié)構(gòu)與文件片包的相同,包括校驗(yàn)片包頭和校驗(yàn)片凈荷。校驗(yàn)片包頭包括資源標(biāo)識(shí)、塊序號(hào)、片序號(hào)和更新序號(hào);校驗(yàn)片凈荷攜帶實(shí)際的校驗(yàn)片。本發(fā)明采用FAT文件描述數(shù)據(jù)業(yè)務(wù)的文件構(gòu)成、文件屬性、傳輸分割參數(shù)信息,通過對(duì)文件進(jìn)行分割、糾錯(cuò)等操作,封裝形成文件片包及校驗(yàn)片包,從而簡單有效地實(shí)現(xiàn)了文件在單向傳輸網(wǎng)絡(luò)中的傳送與接收,用戶可以方便快捷的接收文件數(shù)據(jù)業(yè)務(wù),從而極大的滿足用戶需求。圖1為FAT分割示意圖2為FAT片包結(jié)構(gòu)示意圖3為文件分割示意圖4為文件塊校驗(yàn)示意圖5為文件片/校驗(yàn)片包結(jié)構(gòu)示意圖6為FAT文件根元素的模式結(jié)構(gòu)圖7為文件路徑信息元素?cái)?shù)據(jù)類型(簡稱FDIType)的模式結(jié)構(gòu)圖;圖8為文件屬性信息元素?cái)?shù)據(jù)類型(簡稱FAIType)的才莫式結(jié)構(gòu)圖;圖9為傳輸信息元素?cái)?shù)據(jù)類型(簡稱TransferlnfoType)的模式結(jié)構(gòu)圖;圖10為內(nèi)容信息元素?cái)?shù)據(jù)類型(簡稱ContentlnfoType)的模式結(jié)構(gòu)圖;圖11為分割信息元素?cái)?shù)據(jù)類型(簡稱SegmentlnfoType)的^f莫式結(jié)構(gòu)圖;圖12為FEC信息元素?cái)?shù)據(jù)類型(簡稱FECInfoType)的模式結(jié)構(gòu)圖;圖13為文件信息保護(hù)元素?cái)?shù)據(jù)類型(簡稱ProtectionlnfoType)的模式結(jié)構(gòu)圖;圖14為生命周期元素?cái)?shù)據(jù)類型(簡稱LifePeriod)的模式結(jié)構(gòu)圖。具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明進(jìn)行進(jìn)一步說明。首先,定義數(shù)據(jù)業(yè)務(wù)為由若干文件組成,文件可以在同一個(gè)目錄,也可以在不同的目錄中,目錄結(jié)構(gòu)可以分多層。本發(fā)明采用文件屬性表(FileAttributeTable,簡稱FAT)描述數(shù)據(jù)業(yè)務(wù)的文件構(gòu)成、文件屬性、傳輸分割參數(shù)信息。具體實(shí)現(xiàn)可采用可擴(kuò)展標(biāo)識(shí)語言(TheExtensibleMarkupLanguage,縮寫為XML)語法描述文件屬性表,文件屬性表本身也形成一個(gè)文件。在文件發(fā)送通道建立前,本發(fā)明首先生成FAT文件。終端首先接收、解析FAT文件,根據(jù)FAT文件指示的信息在本地完整恢復(fù)出與發(fā)端一致的文件和目錄結(jié)構(gòu)。圖1所示為FAT文件分割示意圖。本發(fā)明根據(jù)需要將FAT文件分割成FAT片,序號(hào)為O,l,...n-l,共n個(gè),n取值范圍1-256,當(dāng)n等于l表示不分割。FAT文件和普通文件采用不同的封裝語法進(jìn)行分割傳輸。終端不需要先驗(yàn)信息就可以接收FAT文件。圖2所示為FAT片包封裝結(jié)構(gòu)示意圖。如圖所示,F(xiàn)AT片包由FAT包頭、FAT凈荷和CRC一32組成。FAT包頭包括資源標(biāo)識(shí)、當(dāng)前片序號(hào)、更新序號(hào)、編碼類型、最后片序號(hào)和片長度。其中,資源標(biāo)識(shí)字段用于標(biāo)識(shí)一個(gè)FAT文件數(shù)據(jù)業(yè)務(wù);當(dāng)前片序號(hào)字段用于表示當(dāng)前FAT片的序號(hào),若FAT文件未分片,則本字段取值為0;更新序號(hào)字^:用于表示當(dāng)前資源的更新序號(hào),若FAT信息發(fā)生變化,本字段循環(huán)遞增加1;編碼類型字段用于表示FAT文件采用的編碼類型;最后片序號(hào)字段用于標(biāo)識(shí)最后一個(gè)FAT片的序號(hào),若FAT文件未分片,則本字段取值為0;片長度字段用于表示當(dāng)前FAT片的長度。FAT凈荷字段攜帶FAT片數(shù)據(jù),其長度由FAT包頭中的"片長度"字段指示。CRC—32是32位循環(huán)校驗(yàn)字段,用于對(duì)FAT凈荷進(jìn)行校驗(yàn)。圖3所示為文件分割示意圖。如圖所示,首先將文件分割成若干等長的文件片,每個(gè)文件片的長度一般不超過65535字節(jié),最后一個(gè)文件片長度不足時(shí)需要進(jìn)行填充,本實(shí)施例采用0x00填充,當(dāng)然也可以采用其他填充方式。多個(gè)文件片組成一個(gè)文件塊,由于文件片的長度可長可短,組成文件塊的文件片的數(shù)量也不是惟一確定的,但一般不超過16383個(gè)。根據(jù)文件塊中的文件片數(shù)量不同可分為A、B兩種類型,若文件片數(shù)量相等,則只有類型A。區(qū)分A類文件塊和B類文件塊,有助于更容易實(shí)現(xiàn)校驗(yàn)。文件糾錯(cuò)按文件塊進(jìn)行,得到的糾錯(cuò)數(shù)據(jù)稱為校驗(yàn)塊。校驗(yàn)塊劃分成若干片,稱之為校驗(yàn)片,長度與文件片相等,校驗(yàn)片與文件片連續(xù)編號(hào),見圖4。圖5所示為文件片/校驗(yàn)片包結(jié)構(gòu)示意圖,將文件分割后形成的文件片,再組合成文件塊,然后對(duì)文件塊進(jìn)行校驗(yàn)操作生成校驗(yàn)塊,最后將文件塊和校驗(yàn)塊分割打包成文件片/校驗(yàn)片包。文件片和校驗(yàn)片包采用統(tǒng)一的語法封裝結(jié)構(gòu),包括文件片/校驗(yàn)片包頭和文件片/校驗(yàn)片凈荷。文件片/校驗(yàn)片包頭包括資源標(biāo)識(shí)、塊序號(hào)、片序號(hào)和更新序號(hào)。其中,資源標(biāo)識(shí)字段用于唯一標(biāo)識(shí)一個(gè)文件;塊序號(hào)字段用于表示當(dāng)前文件片/校驗(yàn)片所從屬的文件塊/校驗(yàn)塊的序號(hào);片序號(hào)字段用于表示當(dāng)前文件片/校驗(yàn)片在文件塊/校驗(yàn)塊內(nèi)的序號(hào);更新序號(hào)字段用于表示當(dāng)前資源的更新序號(hào)。文件片/校驗(yàn)片凈荷攜帶實(shí)際的文件片或校驗(yàn)片,其長度由FAT文件指定,通過文件片序號(hào)識(shí)別文件片和校驗(yàn)片。在單向鏈路系統(tǒng)中,傳送的文件數(shù)據(jù)由一系列離散的文件組成,每個(gè)文件除了數(shù)據(jù)信息外,還有若干描述該文件屬性的信息,如文件名、長度、壓縮方式等,終端不僅需要正確接收數(shù)據(jù),還要接收文件屬性的描述信息,以便能恢復(fù)出與發(fā)端一致的文件。終端首先接收、解析FAT文件,根據(jù)FAT文件指示的信息在本地完整恢復(fù)出與發(fā)端一致的文件和目錄結(jié)構(gòu),具體包括以下步驟第一步,用戶首先得到FAT片,若FAT文件沒有分片,則此FAT片即為完整的FAT文件,若FAT文件被分片,則根據(jù)FAT片包頭中的"當(dāng)前片序號(hào)"和"最后片序號(hào)"字段信息進(jìn)行拼接,并根據(jù)"編碼類型"字段進(jìn)行解析,恢復(fù)出完整的FAT文件;第二步,用戶通過數(shù)據(jù)解封裝獲得文件片/校驗(yàn)片;第三步,用戶通過FAT文件中參數(shù)對(duì)獲得的文件片進(jìn)行拼接獲得文件數(shù)據(jù)。終端不需要先驗(yàn)信息就可以接收FAT文件,而對(duì)于數(shù)據(jù)業(yè)務(wù)文件終端必須按照FAT文件指示的分割傳輸信息才能正確接收。本實(shí)施例采用XML描述文件屬性的數(shù)據(jù)模型,采用XML方式描述的文件屬性數(shù)據(jù)是根據(jù)該模型生成的實(shí)例。以下通過本發(fā)明的業(yè)務(wù)參數(shù)信息實(shí)例進(jìn)行說明圖6為FAT根元素的模式結(jié)構(gòu)圖。FAT根元素的語義定義見表1。表l根元素語義字段語義FDI文件路徑信息元素FAI文件屬性信息元素DefaultFECInfo默認(rèn)FEC參數(shù)信息元素MaxVersionFAT的大版本號(hào)屬性,若大版本號(hào)變化,終端需要重新構(gòu)建資7源標(biāo)識(shí)與文件的對(duì)應(yīng)關(guān)系。MinVersionFAT的小版本號(hào)屬性,若僅有小版本號(hào)變化,資源標(biāo)識(shí)與文件的對(duì)應(yīng)關(guān)系保持不變。所述文件路徑信息元素(FDI)描述了文件路徑信息,該元素的數(shù)據(jù)類型由FDIType定義,其模式結(jié)構(gòu)見圖7,FDIType的語義定義見表2。表2FDIType語義字段語義DirName路徑元素,描述文件的路徑。DirID路徑標(biāo)識(shí)元素,通過本元素可與路徑元素之間建立對(duì)應(yīng)關(guān)系。DirLevel路徑級(jí)別屬性,表示文件路徑的級(jí)別。所述文件屬性信息元素(FAI)描述了文件屬性信息,該元素的數(shù)據(jù)類型由FAIType定義,其模式結(jié)構(gòu)見圖8。FAIType的語義定義見表3。表3FAIType語義字段語義Transferlnfo傳輸信息元素Contentlnfo內(nèi)容信息元素Segmentationlnfo分割信息元素FECInfoFEC信息元素Protectionlnfo保護(hù)信息元素resource—ID資源標(biāo)識(shí)屬性,表示本FAI元素對(duì)應(yīng)的文件資源。Updatelndex更新序號(hào)屬性,表示本FAI元素的更新序號(hào)。所述傳輸信息元素(Transferlnfo)描述了跟文件傳輸相關(guān)的一些屬性信息,該元素的數(shù)據(jù)類型由TransferlnfoType定義,其模式結(jié)構(gòu)見圖9。TransferlnfoType的語義定義見表4。表4TransferlnfoType語義字段語義DirID文件路徑標(biāo)識(shí),與FDI元素中的DirID對(duì)應(yīng),根據(jù)該標(biāo)識(shí)可建立文件的路徑關(guān)系。file—name文件名life_period生命周期元素所述內(nèi)容信息元素(Contentlnfo)描述了跟文件內(nèi)容相關(guān)的一些屬性信息,該元素的數(shù)據(jù)類型由ContentlnfoType定義,其模式結(jié)構(gòu)見圖10。ContentlnfoType的語義定義見表5。表5ContentlnfoType語義字段語義container—file指示本文件是否為一個(gè)容器<table>tableseeoriginaldocumentpage9</column></row><table>所述分割信息元素(Segmentationlnfo)描述了文件的分割信息,該元素的數(shù)據(jù)類型由SegmentationlnfoType定義,其模式結(jié)構(gòu)圖見圖11。SegmentationlnfoType的語義見表6。表6SegmentationlnfoType語義<table>tableseeoriginaldocumentpage9</column></row><table>所述FEC信息元素(FECInfo)描述了文件前向糾錯(cuò)信息,F(xiàn)ECInfoType是該元素的數(shù)據(jù)類型定義,其模式結(jié)構(gòu)見圖12。FECInfoType的語義見表7。表7FECInfoType語義<table>tableseeoriginaldocumentpage9</column></row><table>所述文件保護(hù)信息元素(Protectionlnfo)描述了文件保護(hù)信息,ProtectionlnfoType是該元素的數(shù)據(jù)類型定義,其模式結(jié)構(gòu)圖見圖13。ProtectionlnfoType的語義見表8。表8ProtectionlnfoType語義<table>tableseeoriginaldocumentpage9</column></row><table>所述生命周期元素(life_period)描述了文件生命周期信息,LifePeriod是該元素的數(shù)據(jù)類型定義,其模式結(jié)構(gòu)圖見圖14。LifePeriod的語義見表9。表9LifePeriod語義<table>tableseeoriginaldocumentpage10</column></row><table>留綜上,本發(fā)明可根據(jù)需求將文件分片為等長的文件片并生成相應(yīng)的校驗(yàn)片,使之適應(yīng)于單向鏈路的傳輸。對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之權(quán)利要求1、一種基于單向鏈路的文件傳輸方法,其特征在于包括如下步驟第一步,將需要傳輸?shù)奈募奈募?shù)描述為文件屬性表FAT文件;第二步,根據(jù)需要對(duì)FAT文件進(jìn)行分片處理,再按照FAT封裝語法打包成FAT片包傳輸;第三步,將需要傳輸?shù)奈募制山y(tǒng)一長度的文件片,最后一個(gè)文件片長度不足時(shí)予以填充,再按照文件片封裝語法打包成文件片包;第四步,將若干文件片組成文件塊,并對(duì)其進(jìn)行校驗(yàn)形成緊跟此文件塊的校驗(yàn)塊;第五步,根據(jù)需要對(duì)校驗(yàn)塊進(jìn)行分片處理,再按照校驗(yàn)片封裝語法打包成校驗(yàn)片包;第六步,傳輸文件片包以及緊跟其后的校驗(yàn)片包。2、根據(jù)權(quán)利要求1所述的文件傳輸方法,其特征在于,所述FAT文件的根元素語義定義如下:<table>tableseeoriginaldocumentpage2</column></row><table>3、根據(jù)權(quán)利要求2所述的文件傳輸方法,其特征在于,所述文件路徑信息元素FDI描述文件的路徑信息,其語義定義如下<table>tableseeoriginaldocumentpage2</column></row><table>4、根據(jù)權(quán)利要求3所述的文件傳輸方法,其特征在于,所述文件屬性信息元素FAI描述文件的屬性信息,其語義定義如下<table>tableseeoriginaldocumentpage2</column></row><table><table>tableseeoriginaldocumentpage3</column></row><table>5、根據(jù)權(quán)利要求1至4中任意一項(xiàng)所述的文件傳輸方法,其特征在于,所述第二步中,根據(jù)具體情況,將一個(gè)FAT文件分割成n個(gè)FAT片,n取值范圍為1~256,每個(gè)FAT片的長度不超過4095字節(jié)。6、根據(jù)權(quán)利要求5所述的文件傳輸方法,其特征在于,所述FAT片包包含F(xiàn)AT包頭、FAT凈荷和CRC_32;FAT包頭包括資源標(biāo)識(shí)、當(dāng)前片序號(hào)、更新序號(hào)、編碼類型、最后片序號(hào)和片長度,F(xiàn)AT凈荷攜帶FAT片數(shù)據(jù),CRC—32是對(duì)FAT凈荷進(jìn)行校驗(yàn)的32位循環(huán)校驗(yàn)位。7、根據(jù)權(quán)利要求6所述的文件傳輸方法,其特征在于,所述文件片包由文件片包頭和文件片凈荷組成;文件片包頭包括資源標(biāo)識(shí)、塊序號(hào)、片序號(hào)和更新序號(hào);文件片凈荷攜帶實(shí)際的文件片;所述校驗(yàn)片包由校驗(yàn)片包頭和校驗(yàn)片凈荷組成;校驗(yàn)片包頭包括資源標(biāo)識(shí)、塊序號(hào)、片序號(hào)和更新序號(hào);校驗(yàn)片凈荷攜帶實(shí)際的校驗(yàn)片。8、根據(jù)權(quán)利要求7所述的文件傳輸方法,其特征在于,所述校驗(yàn)片的長度與文件片的長度相等;校驗(yàn)片的片序號(hào)與文件片的片序號(hào)連續(xù)編號(hào)。9、一種接收按照權(quán)利要求8所述方法傳輸?shù)奈募姆椒?,其特征在于包括如下步驟第一步,用戶首先得到FAT片,若FAT文件沒有分片,則此FAT片即為完整的FAT文件,若FAT文件被分片,則根據(jù)FAT片包頭中的"當(dāng)前片序號(hào)"和"最后片序號(hào)"字段信息進(jìn)行拼接,并根據(jù)"編碼類型"字段進(jìn)行解析,恢復(fù)出完整的FAT文件;第二步,用戶通過數(shù)據(jù)解封裝獲得文件片和校驗(yàn)片;第三步,用戶通過FAT文件中參數(shù)對(duì)獲得的文件片進(jìn)行拼接獲得文件數(shù)據(jù)。全文摘要本發(fā)明公開了一種基于單向鏈路的文件傳輸方法,用于在單向傳輸網(wǎng)絡(luò)中將同一文件傳輸給多個(gè)用戶。該方法采用文件屬性表描述數(shù)據(jù)業(yè)務(wù)的文件構(gòu)成、文件屬性、傳輸分割參數(shù)等信息,將需要傳輸?shù)奈募制山y(tǒng)一長度的數(shù)據(jù)片,最后一片如果不足,以0x00補(bǔ)充,再按照數(shù)據(jù)片封裝語法打包成數(shù)據(jù)片包,并對(duì)數(shù)據(jù)塊進(jìn)行校驗(yàn)形成緊跟數(shù)據(jù)塊的校驗(yàn)塊,再將校驗(yàn)塊分片打包成校驗(yàn)片包,緊隨相應(yīng)的數(shù)據(jù)片包傳輸。終端首先接收、解析文件屬性表,然后根據(jù)文件屬性表指示的信息在本地完整恢復(fù)出與發(fā)端一致的文件和目錄結(jié)構(gòu)。本發(fā)明簡單有效地實(shí)現(xiàn)了文件在單向傳輸網(wǎng)絡(luò)中的傳送與接收,用戶可以方便快捷的接收文件數(shù)據(jù)業(yè)務(wù),從而極大的滿足用戶需求。文檔編號(hào)H04L12/56GK101465791SQ20071017977公開日2009年6月24日申請日期2007年12月18日優(yōu)先權(quán)日2007年12月18日發(fā)明者張定京,穎王,偉解,趙良福,陳德林申請人:國家廣播電影電視總局廣播科學(xué)研究院