一種數(shù)據(jù)傳輸裝置及方法
【專利摘要】本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)傳輸裝置及方法。裝置包括:第一獲取單元,用于獲取第一裝置內(nèi)部的程序生成的第一數(shù)據(jù);第一數(shù)據(jù)長(zhǎng)度確定單元,用于確定第一數(shù)據(jù)的長(zhǎng)度;判斷單元,用于判斷長(zhǎng)度是否小于預(yù)設(shè)閾值;第二獲取單元,用于獲取另外的數(shù)據(jù);第二數(shù)據(jù)確定單元,用于從另外的數(shù)據(jù)中,確定第二數(shù)據(jù);第一封裝信息確定單元,用于確定第一封裝信息;第二封裝信息確定單元,用于確定第二封裝信息;封裝單元,用于將第一數(shù)據(jù)與第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包;發(fā)送單元,用于將第三數(shù)據(jù)包發(fā)送至物理地址對(duì)應(yīng)的第二裝置。采用本申請(qǐng)的裝置或方法,可以減小數(shù)據(jù)傳輸過程所消耗的數(shù)據(jù)流量,提高數(shù)據(jù)傳輸效率。
【專利說明】一種數(shù)據(jù)傳輸裝置及方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種數(shù)據(jù)傳輸裝置及方法。
【背景技術(shù)】
[0002]設(shè)備與設(shè)備之間,經(jīng)常需要進(jìn)行數(shù)據(jù)的傳輸。在傳輸數(shù)據(jù)時(shí),需要按照設(shè)備之間的數(shù)據(jù)傳輸協(xié)議執(zhí)行數(shù)據(jù)傳輸過程。
[0003]現(xiàn)有技術(shù)中的數(shù)據(jù)傳輸協(xié)議,通常都規(guī)定了傳輸過程中每個(gè)數(shù)據(jù)包所必須滿足的最小數(shù)據(jù)長(zhǎng)度。例如,在以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議中,采用CSMA/CD(Carrier Sense MultipleAccess/Collision Detect,載波監(jiān)聽多路訪問/沖突檢測(cè)機(jī)制)方法進(jìn)行數(shù)據(jù)傳輸。該方法要求數(shù)據(jù)包中的payload字段的最小長(zhǎng)度為46字節(jié)。如果實(shí)際應(yīng)用中,在單位時(shí)間內(nèi)需要傳輸?shù)臄?shù)據(jù)在payload字段的長(zhǎng)度不足46字節(jié),則需要采用無意義的字節(jié)將payload字段填充至46字節(jié)后,再發(fā)送。
[0004]可以看出,現(xiàn)有技術(shù)中的數(shù)據(jù)傳輸方法,當(dāng)單位時(shí)間內(nèi)需要傳輸?shù)臄?shù)據(jù)長(zhǎng)度小于數(shù)據(jù)傳輸協(xié)議中規(guī)定的最小長(zhǎng)度時(shí),需要在數(shù)據(jù)包中填充無意義的數(shù)據(jù)后,再發(fā)送。由于填充了無意義的數(shù)據(jù),導(dǎo)致現(xiàn)有技術(shù)中的數(shù)據(jù)傳輸方法消耗的數(shù)據(jù)流量較大,數(shù)據(jù)傳輸效率也較低。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)的目的是提供一種數(shù)據(jù)傳輸裝置及方法,能夠通過對(duì)數(shù)據(jù)長(zhǎng)度較小的數(shù)據(jù)在鏈路層進(jìn)行合并,解決現(xiàn)有技術(shù)中的數(shù)據(jù)傳輸方法消耗的數(shù)據(jù)流量較大,數(shù)據(jù)傳輸效率也較低的問題。
[0006]為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┝巳缦路桨?
[0007]根據(jù)本申請(qǐng)的第一方面的第一種可能的實(shí)現(xiàn)方式,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)傳輸裝置,所述數(shù)據(jù)傳輸裝置為第一裝置,包括:
[0008]第一獲取單元,用于獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù);
[0009]第一數(shù)據(jù)長(zhǎng)度確定單元,用于確定所述第一數(shù)據(jù)的長(zhǎng)度;
[0010]判斷單元,用于判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果;
[0011]第二獲取單元,用于當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的另外的數(shù)據(jù);
[0012]第二數(shù)據(jù)確定單元,用于從所述另外的數(shù)據(jù)中,確定與所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址相同的第二數(shù)據(jù);
[0013]第一封裝信息確定單元,用于確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝信息;
[0014]第二封裝信息確定單元,用于確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝信息;
[0015]封裝單元,用于根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包;
[0016]發(fā)送單元,用于將所述第三數(shù)據(jù)包發(fā)送至所述物理地址對(duì)應(yīng)的第二裝置。
[0017]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,所述第二獲取單元,具體包括:
[0018]緩存子單元,用于緩存所述第一數(shù)據(jù);
[0019]計(jì)時(shí)子單元,用于對(duì)所述第一數(shù)據(jù)的緩存時(shí)間進(jìn)行計(jì)時(shí);
[0020]獲取子單元,用于獲取另外的數(shù)據(jù);
[0021]停止子單元,用于當(dāng)計(jì)時(shí)時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng)時(shí),停止獲取另外的數(shù)據(jù)。
[0022]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,還包括:
[0023]能力信息獲取單元,用于在確定所述第一數(shù)據(jù)的長(zhǎng)度之前,獲取所述第二裝置的能力信息;
[0024]能力信息確定單元,用于確定所述能力信息表示所述第二裝置支持從所述第三數(shù)據(jù)包中拆分出所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。
[0025]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式的第一種具體實(shí)現(xiàn)方式,所述能力信息獲取單元,具體包括:
[0026]物理地址獲取子單元,用于獲取所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址;
[0027]能力信息查找子單元,用于在預(yù)先存儲(chǔ)的能力信息記錄中,查找所述物理地址對(duì)應(yīng)的第二裝置的能力信息。
[0028]結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,還包括:
[0029]封裝類型信息獲取單元,用于在確定所述第一數(shù)據(jù)的長(zhǎng)度之前,獲取所述第一數(shù)據(jù)中的封裝類型信息;
[0030]封裝類型信息確定單元,用于確定所述信息表示所述第一數(shù)據(jù)需要與另外的數(shù)據(jù)合并封裝。
[0031]結(jié)合第一方面的五種可能的實(shí)現(xiàn)方式中的任意一種,所述第一封裝信息確定單元,具體包括:
[0032]第一封裝信息確定子單元,用于確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段;
[0033]所述第二封裝信息確定單元,具體包括:
[0034]第二封裝信息確定子單元,用于確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段;
[0035]相應(yīng)的,所述封裝單元,具體包括:
[0036]第一確定子單元,用于確定所述第三數(shù)據(jù)包的前導(dǎo)碼字段、幀開始符字段;
[0037]第二確定子單元,用于確定第一合并數(shù)據(jù)數(shù)目字段和第一長(zhǎng)度指示字段,所述第一合并數(shù)據(jù)數(shù)目字段用于表示在所述第三數(shù)據(jù)包中添加的所述第二數(shù)據(jù)的數(shù)目,所述第一長(zhǎng)度指示字段用于表示所述第一數(shù)據(jù)的長(zhǎng)度;
[0038]第一添加子單元,用于將所述第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段和所述第一數(shù)據(jù)添加在所述幀開始符字段之后;
[0039]第三確定子單元,用于確定第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段,所述第二合并數(shù)據(jù)數(shù)目字段用于表示在所述第二數(shù)據(jù)中添加的另外的數(shù)據(jù)的數(shù)目,所述第二長(zhǎng)度指示字段用于表示所述第二數(shù)據(jù)的長(zhǎng)度;
[0040]第二添加子單元,用于將所述第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)添加在所述第一數(shù)據(jù)之后;
[0041]幀校驗(yàn)序列字段生成子單元,用于根據(jù)所述前導(dǎo)碼字段、幀開始符字段、第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段、所述第一數(shù)據(jù)、第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)生成幀校驗(yàn)序列字段。
[0042]結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,還包括:
[0043]數(shù)據(jù)包接收單元,用于在獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù)之前,接收外部裝置傳入的數(shù)據(jù)包;
[0044]所述第一獲取單元,具體包括:
[0045]第一獲取子單元,用于獲取所述第一裝置內(nèi)部的數(shù)據(jù)包拆分程序從所述數(shù)據(jù)包中拆分出的所述第一數(shù)據(jù)。
[0046]根據(jù)本申請(qǐng)的第二方面的第一種可能的實(shí)現(xiàn)方式,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)傳輸方法,包括:
[0047]第一裝置獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù);
[0048]確定所述第一數(shù)據(jù)的長(zhǎng)度;
[0049]判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果;
[0050]當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的另外的數(shù)據(jù);
[0051 ] 從所述另外的數(shù)據(jù)中,確定與所述第一數(shù)據(jù)在鏈路層中的下一跳的目的地址相同的第二數(shù)據(jù);
[0052]確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝信息;
[0053]確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝信息;
[0054]根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包;
[0055]將所述第三數(shù)據(jù)包發(fā)送至所述目的地址對(duì)應(yīng)的第二裝置。
[0056]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,所述在預(yù)設(shè)時(shí)間內(nèi)獲取另外的數(shù)據(jù)包,具體包括:
[0057]緩存所述第一數(shù)據(jù);
[0058]對(duì)所述第一數(shù)據(jù)的緩存時(shí)間進(jìn)行計(jì)時(shí);
[0059]獲取另外的數(shù)據(jù);
[0060]當(dāng)計(jì)時(shí)時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng)時(shí),停止獲取另外的數(shù)據(jù)。
[0061]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,所述確定所述第一數(shù)據(jù)的長(zhǎng)度之前,還包括:
[0062]獲取所述第二裝置的能力信息;
[0063]確定所述能力信息表示所述第二裝置支持從所述第三數(shù)據(jù)包中拆分出所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。[0064]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式的第一種具體的實(shí)現(xiàn)方式,所述獲取所述第二裝置的能力信息,具體包括:
[0065]獲取所述第一數(shù)據(jù)在鏈路層中的下一跳的目的地址;
[0066]在預(yù)先存儲(chǔ)的能力信息記錄中,查找所述目的地址對(duì)應(yīng)的第二裝置的能力信息。
[0067]結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,所述確定所述第一數(shù)據(jù)的長(zhǎng)度之前,還包括:
[0068]獲取所述第一數(shù)據(jù)包中的封裝類型信息;
[0069]確定所述封裝類型信息表示所述第一數(shù)據(jù)需要與另外的數(shù)據(jù)合并封裝。
[0070]結(jié)合第二方面的五種可能的實(shí)現(xiàn)方式中的任意一種,所述確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝信息,具體包括:
[0071]確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段;
[0072]所述確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝信息,具體包括:
[0073]確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段;
[0074]相應(yīng)的,所述根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包,具體包括:
[0075]確定所述第三數(shù)據(jù)包的前導(dǎo)碼字段、幀開始符字段;
[0076]確定第一合并數(shù)據(jù)數(shù)目字段和第一長(zhǎng)度指示字段,所述第一合并數(shù)據(jù)數(shù)目字段用于表示在所述第三數(shù)據(jù)包中添加的所述第二數(shù)據(jù)的數(shù)目,所述第一長(zhǎng)度指示字段用于表示所述第一數(shù)據(jù)的長(zhǎng)度;
[0077]將所述第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段和所述第一數(shù)據(jù)添加在所述幀開始符字段之后;
[0078]確定第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段,所述第二合并數(shù)據(jù)數(shù)目字段用于表示在所述第二數(shù)據(jù)中添加的另外的數(shù)據(jù)的數(shù)目,所述第二長(zhǎng)度指示字段用于表示所述第二數(shù)據(jù)的長(zhǎng)度;
[0079]將所述第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)添加在所述第一數(shù)據(jù)之后;
[0080]根據(jù)所述前導(dǎo)碼字段、幀開始符字段、第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段、所述第一數(shù)據(jù)、第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)生成幀校驗(yàn)序列字段。
[0081]結(jié)合第二方面的第六種可能的實(shí)現(xiàn)方式,所述獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù)之前,還包括:
[0082]接收外部裝置傳入的數(shù)據(jù)包;
[0083]所述獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù),具體包括:
[0084]獲取所述第一裝置內(nèi)部的數(shù)據(jù)包拆分程序從所述數(shù)據(jù)包中拆分出的所述第一數(shù)據(jù)。
[0085]根據(jù)本申請(qǐng)?zhí)峁┑木唧w實(shí)施例,本申請(qǐng)公開了以下技術(shù)效果:[0086]本申請(qǐng)公開的數(shù)據(jù)傳輸裝置或方法,通過確定所述第一數(shù)據(jù)的長(zhǎng)度;判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果;當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的與所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址相同的第二數(shù)據(jù),將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包,可以在單位時(shí)間內(nèi)需要傳輸?shù)牡谝粩?shù)據(jù)的長(zhǎng)度小于數(shù)據(jù)傳輸協(xié)議中規(guī)定的最小長(zhǎng)度時(shí),將第一數(shù)據(jù)與第二數(shù)據(jù)封裝在一個(gè)數(shù)據(jù)包中進(jìn)行發(fā)送,從而可以減小數(shù)據(jù)傳輸過程所消耗的數(shù)據(jù)流量,提高數(shù)據(jù)傳輸效率。
【專利附圖】
【附圖說明】
[0087]為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0088]圖1為本申請(qǐng)的數(shù)據(jù)傳輸裝置實(shí)施例1的結(jié)構(gòu)圖;
[0089]圖2為本申請(qǐng)的數(shù)據(jù)傳輸裝置實(shí)施例2的結(jié)構(gòu)圖;
[0090]圖3為現(xiàn)有技術(shù)中采用以太網(wǎng)幀格式的數(shù)據(jù)包的結(jié)構(gòu)示意圖;
[0091]圖4為本發(fā)明實(shí)施例中提供的基于以太網(wǎng)幀格式的數(shù)據(jù)包的一種結(jié)構(gòu)示意圖;
[0092]圖5為本發(fā)明實(shí)施例中的封裝有第一數(shù)據(jù)和第二數(shù)據(jù)的數(shù)據(jù)包的一種結(jié)構(gòu)示意圖;
[0093]圖6為本發(fā)明實(shí)施例中的封裝有第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù)的數(shù)據(jù)包的一種結(jié)構(gòu)示意圖;
[0094]圖7為本發(fā)明實(shí)施例中的一種數(shù)據(jù)傳輸過程的示意圖;
[0095]圖8為本申請(qǐng)的數(shù)據(jù)傳輸方法實(shí)施例的流程圖;
[0096]圖9為本申請(qǐng)的計(jì)算節(jié)點(diǎn)的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0097]下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0098]為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。
[0099]圖1為本申請(qǐng)的數(shù)據(jù)傳輸裝置實(shí)施例1的結(jié)構(gòu)圖。所述數(shù)據(jù)傳輸裝置可以稱為第一裝置。所述數(shù)據(jù)傳輸裝置,可以是具備本申請(qǐng)的數(shù)據(jù)傳輸方法的執(zhí)行能力的邏輯電路,也可以是包含所述邏輯電路的芯片,還可以是包含所述芯片的電子設(shè)備。該電子設(shè)備可以是終端設(shè)備或者交換機(jī)等設(shè)備。所述數(shù)據(jù)傳輸裝置可以是交換器件,也可以是終端器件。
[0100]如圖1所示,該裝置可以包括:
[0101]第一獲取單元101,用于獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù);
[0102]所述第一數(shù)據(jù)可以是第一裝置內(nèi)部運(yùn)行的程序生成的。所述第一數(shù)據(jù)需要發(fā)送至所述第一裝置外部的裝置。
[0103]由于第一裝置內(nèi)部運(yùn)行的程序生成的數(shù)據(jù),不會(huì)受到裝置之間的數(shù)據(jù)傳輸協(xié)議的限制。因此,所述第一數(shù)據(jù)的長(zhǎng)度可能會(huì)小于所述數(shù)據(jù)傳輸協(xié)議中規(guī)定的最小長(zhǎng)度。
[0104]第一數(shù)據(jù)長(zhǎng)度確定單元102,用于確定所述第一數(shù)據(jù)的長(zhǎng)度;
[0105]所述第一數(shù)據(jù)的長(zhǎng)度可以用字節(jié)表示。
[0106]判斷單元103,用于判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果;
[0107]所述第一數(shù)據(jù)可以認(rèn)為是數(shù)據(jù)包中的有效載荷。
[0108]在不同的數(shù)據(jù)傳輸協(xié)議下,對(duì)于傳輸?shù)臄?shù)據(jù)包中的有效載荷的最小長(zhǎng)度有不同的要求。例如,在以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議中,采用CSMA/CD方法進(jìn)行數(shù)據(jù)傳輸時(shí),要求數(shù)據(jù)包中的payload字段(即有效載荷)的最小長(zhǎng)度為46字節(jié)。
[0109]所述預(yù)設(shè)閾值,可以根據(jù)裝置之間的數(shù)據(jù)傳輸協(xié)議的要求進(jìn)行設(shè)置。例如,采用以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議時(shí),所述預(yù)設(shè)閾值就可以設(shè)置為46字節(jié)。
[0110]當(dāng)然,如果為了提高數(shù)據(jù)傳輸效率,所述預(yù)設(shè)閾值也可以大于數(shù)據(jù)傳輸協(xié)議中規(guī)定的最小數(shù)據(jù)長(zhǎng)度。例如,采用以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議時(shí),所述預(yù)設(shè)閾值也可以設(shè)置為1000字節(jié)。
[0111]第二獲取單元104,用于當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的另外的數(shù)據(jù);
[0112]可以先將所述第一數(shù)據(jù)進(jìn)行緩存。在預(yù)設(shè)時(shí)間長(zhǎng)度內(nèi)繼續(xù)獲取另外的數(shù)據(jù)。
[0113]第二數(shù)據(jù)確定單元105,用于從所述另外的數(shù)據(jù)中,確定與所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址相同的第二數(shù)據(jù);
[0114]所述物理地址可以是介質(zhì)訪問控制(Media Access Control, MAC)地址。所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址可以表示所述第一數(shù)據(jù)需要發(fā)送至哪個(gè)裝置。
[0115]例如,當(dāng)所述第一裝置為交換器件時(shí),所述交換器件可以與多個(gè)終端器件或者其他交換器件相連,不同的終端器件或者同一交換器件的不同芯片具有不同的MAC地址。根據(jù)所述MAC地址,就可以確定所述第一數(shù)據(jù)需要發(fā)送至哪個(gè)裝置。
[0116]需要說明的是,當(dāng)所述第一裝置為終端器件時(shí),與所述終端器件在物理鏈路上直接相連的裝置可能只有一個(gè),則此時(shí),所述終端器件內(nèi)部的程序生成的第一數(shù)據(jù),全部需要發(fā)送至那唯一一個(gè)與所述終端器件在物理鏈路上直接相連的裝置。所以,在這種情況下,可以省略確定與所述第一數(shù)據(jù)在鏈路層中的下一跳的目的地址相同的第二數(shù)據(jù)的步驟,即,將全部的所述另外的數(shù)據(jù),均確定為第二數(shù)據(jù)。
[0117]還需要說明的是,所述第一數(shù)據(jù)最終需要發(fā)送至的裝置與所述第二數(shù)據(jù)最終需要發(fā)送至的裝置可以是不同的,只要所述第一數(shù)據(jù)與所述第二數(shù)據(jù)在數(shù)據(jù)鏈路層上傳輸時(shí),均需要從所述第一裝置先發(fā)送至相同的第二裝置,就可以將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝在一個(gè)數(shù)據(jù)包中。
[0118]第一封裝信息確定單元106,用于確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝信息;
[0119]在以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議中,所述第一封裝信息可以包括:將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段。[0120]第二封裝信息確定單元107,用于確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝信息;
[0121]在以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議中,所述第二封裝信息可以包括:將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段。
[0122]封裝單元108,用于根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包;
[0123]可以根據(jù)實(shí)際需要,采用不同的具體封裝方式。只要封裝后的第三數(shù)據(jù)包中,具有能夠表明第一數(shù)據(jù)的第一源MAC地址,第一目的MAC地址,第一數(shù)據(jù)所在位置,第二數(shù)據(jù)的第二源MAC地址,第二目的MAC地址,第二數(shù)據(jù)所在位置的信息,使得接收裝置可以從所述第三數(shù)據(jù)包中拆分出所述第一數(shù)據(jù)和所述第二數(shù)據(jù),并且在需要對(duì)所述第一數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)時(shí)能夠確定所述第一數(shù)據(jù)的目的地址,在需要對(duì)所述第二數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)時(shí)能夠確定所述第二數(shù)據(jù)的目的地址即可。
[0124]發(fā)送單元109,用于將所述第三數(shù)據(jù)包發(fā)送至所述物理地址對(duì)應(yīng)的第二裝置。
[0125]綜上所述,本實(shí)施例通過確定所述第一數(shù)據(jù)的長(zhǎng)度;判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果;當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的與所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址相同的第二數(shù)據(jù),將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包,可以在單位時(shí)間內(nèi)需要傳輸?shù)牡谝粩?shù)據(jù)的長(zhǎng)度小于數(shù)據(jù)傳輸協(xié)議中規(guī)定的最小長(zhǎng)度時(shí),將第一數(shù)據(jù)與第二數(shù)據(jù)封裝在一個(gè)數(shù)據(jù)包中進(jìn)行發(fā)送,從而減小數(shù)據(jù)傳輸過程所消耗的數(shù)據(jù)流量,提高數(shù)據(jù)傳輸效率。
[0126]實(shí)際應(yīng)用中,為了保證第一數(shù)據(jù)能夠被接收裝置及時(shí)接收,所述預(yù)設(shè)時(shí)間不應(yīng)設(shè)置地過久。具體的,所述第二獲取單元104,具體可以包括:
[0127]緩存子單元,用于緩存所述第一數(shù)據(jù);
[0128]計(jì)時(shí)子單元,用于對(duì)所述第一數(shù)據(jù)的緩存時(shí)間進(jìn)行計(jì)時(shí);
[0129]獲取子單元,用于獲取另外的數(shù)據(jù);
[0130]停止子單元,用于當(dāng)計(jì)時(shí)時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng)時(shí),停止獲取另外的數(shù)據(jù)。
[0131 ] 實(shí)際應(yīng)用中,為了確保合并封裝在一起的第一數(shù)據(jù)和第二數(shù)據(jù)能夠被接收裝置從第三數(shù)據(jù)包中拆分出來,所述裝置還可以包括:
[0132]能力信息獲取單元,用于在確定所述第一數(shù)據(jù)的長(zhǎng)度之前,獲取所述第二裝置的能力信息;
[0133]能力信息確定單元,用于確定所述能力信息表示所述第二裝置支持從所述第三數(shù)據(jù)包中拆分出所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。
[0134]具體的,所述能力信息獲取單元,可以包括:
[0135]物理地址獲取子單元,用于獲取所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址;
[0136]能力信息查找子單元,用于在預(yù)先存儲(chǔ)的能力信息記錄中,查找所述物理地址對(duì)應(yīng)的第二裝置的能力信息。
[0137]或者,為了確保合并封裝在一起的第一數(shù)據(jù)和第二數(shù)據(jù)能夠被接收裝置從第三數(shù)據(jù)包中拆分出來,所述裝置還可以包括:
[0138]封裝類型信息獲取單元,用于在確定所述第一數(shù)據(jù)的長(zhǎng)度之前,獲取所述第一數(shù)據(jù)中的封裝類型信息;
[0139]所述封裝類型信息可以是所述第一裝置內(nèi)的程序生成的。所述程序可以查詢第二裝置的能力信息。當(dāng)確定所述第二裝置支持?jǐn)?shù)據(jù)包拆分功能時(shí),可以生成所述封裝類型信
肩、O
[0140]封裝類型信息確定單元,用于確定所述信息表示所述第一數(shù)據(jù)需要與另外的數(shù)據(jù)合并封裝。
[0141]圖2為本申請(qǐng)的數(shù)據(jù)傳輸裝置實(shí)施例2的結(jié)構(gòu)圖。本實(shí)施例中,采用以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議進(jìn)行說明。如圖2所示,該裝置可以包括:
[0142]第一獲取單元101,用于獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù);
[0143]第一數(shù)據(jù)長(zhǎng)度確定單元102,用于確定所述第一數(shù)據(jù)的長(zhǎng)度;
[0144]判斷單元103,用于判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果;
[0145]第二獲取單元104,用于當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的另外的數(shù)據(jù);
[0146]第二數(shù)據(jù)確定單元105,用于從所述另外的數(shù)據(jù)中,確定與所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址相同的第二數(shù)據(jù);
[0147]第一封裝信息確定子單元201,用于確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段;
[0148]在以太網(wǎng)的數(shù)據(jù)傳輸協(xié)議中,第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段的定義和確定方法均為現(xiàn)有技術(shù),此處不贅述。
[0149]第二封裝信息確定子單元202,用于確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段;
[0150]同理,第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段的定義和確定方法也為現(xiàn)有技術(shù),不贅述。
[0151]第一確定子單元203,用于確定所述第三數(shù)據(jù)包的前導(dǎo)碼字段、幀開始符字段;
[0152]前導(dǎo)碼字段、幀開始符字段也是以太網(wǎng)數(shù)據(jù)傳輸協(xié)議中的幀格式中定義的字段。
[0153]第二確定子單元204,用于確定第一合并數(shù)據(jù)數(shù)目字段和第一長(zhǎng)度指示字段,所述第一合并數(shù)據(jù)數(shù)目字段用于表示在所述第三數(shù)據(jù)包中添加的所述第二數(shù)據(jù)的數(shù)目,所述第一長(zhǎng)度指示字段用于表示所述第一數(shù)據(jù)的長(zhǎng)度;
[0154]第一合并數(shù)據(jù)數(shù)目字段和第一長(zhǎng)度指示字段是本實(shí)施例中為了使接收裝置能夠從第三數(shù)據(jù)包中拆分出第一數(shù)據(jù)所新增的字段。
[0155]第一添加子單元205,用于將所述第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段和所述第一數(shù)據(jù)添加在所述幀開始符字段之后;
[0156]第三確定子單元206,用于確定第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段,所述第二合并數(shù)據(jù)數(shù)目字段用于表示在所述第二數(shù)據(jù)中添加的另外的數(shù)據(jù)的數(shù)目,所述第二長(zhǎng)度指示字段用于表示所述第二數(shù)據(jù)的長(zhǎng)度;
[0157]第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段是本實(shí)施例中為了使接收裝置能夠從第三數(shù)據(jù)包中拆分出第二數(shù)據(jù)所新增的字段。
[0158]第二添加子單元207,用于將所述第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)添加在所述第一數(shù)據(jù)之后;
[0159]幀校驗(yàn)序列字段生成子單元208,用于根據(jù)所述前導(dǎo)碼字段、幀開始符字段、第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段、所述第一數(shù)據(jù)、第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)生成幀校驗(yàn)序列字段。
[0160]發(fā)送單元109,用于將所述第三數(shù)據(jù)包發(fā)送至所述物理地址對(duì)應(yīng)的第二裝置。
[0161]本實(shí)施例中,通過在以太網(wǎng)幀格式的基礎(chǔ)上增加第一合并數(shù)據(jù)數(shù)目字段和第一長(zhǎng)度指示字段和第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段,可以確保接收裝置能夠從第三數(shù)據(jù)包中拆分出第一數(shù)據(jù)和第二數(shù)據(jù)。
[0162]圖3為現(xiàn)有技術(shù)中采用以太網(wǎng)幀格式的數(shù)據(jù)包的結(jié)構(gòu)示意圖。如圖3所示,該格式的數(shù)據(jù)包包括-J個(gè)字節(jié)的前導(dǎo)碼字段,I個(gè)字節(jié)的幀開始符字段,6個(gè)字節(jié)的目的MAC地址字段,6個(gè)字節(jié)的源MAC地址字段,2個(gè)字節(jié)的類型/長(zhǎng)度字段,46至1500字節(jié)的數(shù)據(jù)和填充字段,4個(gè)字節(jié)的幀校驗(yàn)序列字段。
[0163]圖4為本發(fā)明實(shí)施例中提供的基于以太網(wǎng)幀格式的數(shù)據(jù)包的一種結(jié)構(gòu)示意圖。如圖4所示,本發(fā)明實(shí)施例在現(xiàn)有技術(shù)中的以太網(wǎng)幀格式的數(shù)據(jù)包結(jié)構(gòu)中,增加了兩個(gè)新的字段:合并數(shù)據(jù)數(shù)目字段和長(zhǎng)度指示字段。合并數(shù)據(jù)數(shù)目字段用于表示在所述第三數(shù)據(jù)包中添加的所述第二數(shù)據(jù)的數(shù)目,所述長(zhǎng)度指示字段用于表示位于所述長(zhǎng)度指示字段后面的數(shù)據(jù)和填充字段中添加的首個(gè)數(shù)據(jù)的長(zhǎng)度。在圖4中,合并數(shù)據(jù)數(shù)目字段和長(zhǎng)度指示字段各占2個(gè)字節(jié),共占4個(gè)字節(jié)。這4個(gè)字節(jié)相當(dāng)于占用的數(shù)據(jù)和填充字段的字節(jié)。在圖4中,第二數(shù)據(jù)可以使用的字節(jié)數(shù)就可以是42至1496字節(jié)。
[0164]圖5為本發(fā)明實(shí)施例中的封裝有第一數(shù)據(jù)和第二數(shù)據(jù)的數(shù)據(jù)包的一種結(jié)構(gòu)示意圖。如圖5所示,所述第一合并數(shù)據(jù)數(shù)目為1,表示所述數(shù)據(jù)包中添加有兩個(gè)數(shù)據(jù)。所述第一長(zhǎng)度指示字段所指示的長(zhǎng)度,就是所述第一數(shù)據(jù)的長(zhǎng)度。根據(jù)第一長(zhǎng)度指示字段的值,可以使接收裝置從所述數(shù)據(jù)包中拆分出所述第一數(shù)據(jù)。
[0165]所述第一數(shù)據(jù)后面添加有與第二數(shù)據(jù)相關(guān)的封裝信息。與第二數(shù)據(jù)相關(guān)的封裝信息,包括:第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段。圖5中,第二合并數(shù)據(jù)數(shù)目字段的值為0,表示后面沒有再添加另外的數(shù)據(jù),只添加了一個(gè)第二數(shù)據(jù)。所述第二長(zhǎng)度指示字段所指示的長(zhǎng)度,就是所述第二數(shù)據(jù)的長(zhǎng)度。根據(jù)第二長(zhǎng)度指示字段的值,可以使接收裝置從所述數(shù)據(jù)包中拆分出所述第二數(shù)據(jù)。
[0166]本領(lǐng)域技術(shù)人員根據(jù)以上內(nèi)容,可以知道,采用本發(fā)明的實(shí)施例,還可以在第三數(shù)據(jù)包中封裝更多個(gè)數(shù)的數(shù)據(jù)。
[0167]圖6為本發(fā)明實(shí)施例中的封裝有第一數(shù)據(jù)、第二數(shù)據(jù)和第三數(shù)據(jù)的數(shù)據(jù)包的一種結(jié)構(gòu)示意圖。如圖6所示,在第二數(shù)據(jù)的后面還可以添加第三目的MAC地址字段,第三源MAC地址字段、第三長(zhǎng)度或類型字段、第三合并數(shù)據(jù)數(shù)目字段和第三長(zhǎng)度指示字段。在第三長(zhǎng)度指示字段的后面可以添加第三數(shù)據(jù)。
[0168]需要說明的是,在傳輸過程中,數(shù)據(jù)傳輸裝置會(huì)將第三數(shù)據(jù)包中的第一個(gè)類型/長(zhǎng)度字段與幀校驗(yàn)序列字段之間的數(shù)據(jù)均認(rèn)定為以太網(wǎng)幀格式中的數(shù)據(jù)和填充字段所對(duì)應(yīng)的數(shù)據(jù)。由于第一個(gè)類型/長(zhǎng)度字段與幀校驗(yàn)序列字段之間添加了第二數(shù)據(jù)以及和第二數(shù)據(jù)有關(guān)的其他信息,所以第一個(gè)類型/長(zhǎng)度字段與幀校驗(yàn)序列字段之間的數(shù)據(jù)長(zhǎng)度,可以滿足以太網(wǎng)幀格式中對(duì)于數(shù)據(jù)和填充字段的數(shù)據(jù)長(zhǎng)度的要求。
[0169]圖7為本發(fā)明實(shí)施例中的一種數(shù)據(jù)傳輸過程的示意圖。如圖7所示,圖中有4個(gè)終端器件和I個(gè)交換器件。
[0170]終端器件I發(fā)送兩個(gè)小包數(shù)據(jù)1_>3 (數(shù)據(jù)1_>3表示該數(shù)據(jù)需要從終端器件I發(fā)送至終端器件3,下述數(shù)據(jù)后的數(shù)字表示的含義與此類似)和數(shù)據(jù)1->4,目的地分別為終端器件3和終端器件4 ;終端器件2發(fā)送兩個(gè)小包數(shù)據(jù)2->3和數(shù)據(jù)2->4,目的地分別為終端器件3和終端器件4。
[0171]終端器件I發(fā)送的兩個(gè)包雖然目的地不同,一個(gè)包是發(fā)給終端器件3,另一個(gè)包是給終端器件4,但從終端器件I到交換器件時(shí)經(jīng)過相同的物理連接,在終端器件I發(fā)送時(shí)進(jìn)行合并(即封裝為一個(gè)第三數(shù)據(jù)包),在交換器件收到后解合并(即從第三數(shù)據(jù)包中拆分出第一數(shù)據(jù)和第二數(shù)據(jù))。同樣終端器件2發(fā)送的兩個(gè)小包在與交換器件的連接中,也經(jīng)過一次合并和解合并。
[0172]在交換器件發(fā)往終端器件3時(shí)會(huì)有兩個(gè)小包,分別是數(shù)據(jù)1_>3和數(shù)據(jù)2_>3,這樣交換器件發(fā)送時(shí)會(huì)將兩個(gè)小包合并后發(fā)出,在終端器件3收到后,再進(jìn)行一次解合并,恢復(fù)出原始包。同樣交換器件發(fā)往終端器件4的小包也經(jīng)過一次合并和解合并。
[0173]本申請(qǐng)還提供了一種數(shù)據(jù)傳輸方法。圖8為本申請(qǐng)的數(shù)據(jù)傳輸方法實(shí)施例的流程圖。如圖8所示,該方法可以包括:
[0174]步驟801:第一裝置獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù);
[0175]步驟802:確定所述第一數(shù)據(jù)的長(zhǎng)度;
[0176]步驟803:判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果;
[0177]步驟804:當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的另外的數(shù)據(jù);
[0178]步驟805:從所述另外的數(shù)據(jù)中,確定與所述第一數(shù)據(jù)在鏈路層中的下一跳的目的地址相同的第二數(shù)據(jù);
[0179]步驟806:確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝信息;
[0180]步驟807:確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝信息;
[0181]步驟808:根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包;
[0182]步驟809:將所述第三數(shù)據(jù)包發(fā)送至所述目的地址對(duì)應(yīng)的第二裝置。
[0183]綜上所述,本實(shí)施例通過確定所述第一數(shù)據(jù)的長(zhǎng)度;判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果;當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的與所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址相同的第二數(shù)據(jù),將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包,可以在單位時(shí)間內(nèi)需要傳輸?shù)牡谝粩?shù)據(jù)的長(zhǎng)度小于數(shù)據(jù)傳輸協(xié)議中規(guī)定的最小長(zhǎng)度時(shí),將第一數(shù)據(jù)與第二數(shù)據(jù)封裝在一個(gè)數(shù)據(jù)包中進(jìn)行發(fā)送,從而減小數(shù)據(jù)傳輸過程所消耗的數(shù)據(jù)流量,提高數(shù)據(jù)傳輸效率。
[0184]實(shí)際應(yīng)用中,所述在預(yù)設(shè)時(shí)間內(nèi)獲取另外的數(shù)據(jù)包,具體可以包括:[0185]緩存所述第一數(shù)據(jù);
[0186]對(duì)所述第一數(shù)據(jù)的緩存時(shí)間進(jìn)行計(jì)時(shí);
[0187]獲取另外的數(shù)據(jù);
[0188]當(dāng)計(jì)時(shí)時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng)時(shí),停止獲取另外的數(shù)據(jù)。
[0189]實(shí)際應(yīng)用中,所述確定所述第一數(shù)據(jù)的長(zhǎng)度之前,還可以包括:
[0190]獲取所述第二裝置的能力信息;
[0191]確定所述能力信息表示所述第二裝置支持從所述第三數(shù)據(jù)包中拆分出所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。
[0192]實(shí)際應(yīng)用中,所述獲取所述第二裝置的能力信息,具體可以包括:
[0193]獲取所述第一數(shù)據(jù)在鏈路層中的下一跳的目的地址;
[0194]在預(yù)先存儲(chǔ)的能力信息記錄中,查找所述目的地址對(duì)應(yīng)的第二裝置的能力信息。
[0195]實(shí)際應(yīng)用中,所述確定所述第一數(shù)據(jù)的長(zhǎng)度之前,還可以包括:
[0196]獲取所述第一數(shù)據(jù)包中的封裝類型信息;
[0197]確定所述封裝類型信息表示所述第一數(shù)據(jù)需要與另外的數(shù)據(jù)合并封裝。
[0198]實(shí)際應(yīng)用中,所述確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝信息,具體可以包括:
[0199]確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段;
[0200]所述確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝信息,具體包括:
[0201]確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段;
[0202]相應(yīng)的,所述根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包,具體包括:
[0203]確定所述第三數(shù)據(jù)包的前導(dǎo)碼字段、幀開始符字段;
[0204]確定第一合并數(shù)據(jù)數(shù)目字段和第一長(zhǎng)度指示字段,所述第一合并數(shù)據(jù)數(shù)目字段用于表示在所述第三數(shù)據(jù)包中添加的所述第二數(shù)據(jù)的數(shù)目,所述第一長(zhǎng)度指示字段用于表示所述第一數(shù)據(jù)的長(zhǎng)度;
[0205]將所述第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段和所述第一數(shù)據(jù)添加在所述幀開始符字段之后;
[0206]確定第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段,所述第二合并數(shù)據(jù)數(shù)目字段用于表示在所述第二數(shù)據(jù)中添加的另外的數(shù)據(jù)的數(shù)目,所述第二長(zhǎng)度指示字段用于表示所述第二數(shù)據(jù)的長(zhǎng)度;
[0207]將所述第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)添加在所述第一數(shù)據(jù)之后;
[0208]根據(jù)所述前導(dǎo)碼字段、幀開始符字段、第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段、所述第一數(shù)據(jù)、第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)生成幀校驗(yàn)序列字段。
[0209]實(shí)際應(yīng)用中,所述獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù)之前,還可以包括:
[0210]接收外部裝置傳入的數(shù)據(jù)包;
[0211]所述獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù),具體包括:
[0212]獲取所述第一裝置內(nèi)部的數(shù)據(jù)包拆分程序從所述數(shù)據(jù)包中拆分出的所述第一數(shù)據(jù)。
[0213]另外,本申請(qǐng)實(shí)施例還提供了一種計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)可能是包含計(jì)算能力的主機(jī)服務(wù)器,或者是個(gè)人計(jì)算機(jī)PC,或者是可攜帶的便攜式計(jì)算機(jī)或終端等等,本申請(qǐng)具體實(shí)施例并不對(duì)計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。
[0214]圖9為本申請(qǐng)的計(jì)算節(jié)點(diǎn)的結(jié)構(gòu)圖。如圖9所示,計(jì)算節(jié)點(diǎn)700包括:
[0215]處理器(processor)710,通信接口(Communications Interface) 720,存儲(chǔ)器(memory) 730,總線 740。
[0216]處理器710,通信接口 720,存儲(chǔ)器730通過總線740完成相互間的通信。
[0217]處理器710,用于執(zhí)行程序732。
[0218]具體地,程序732可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。
[0219]處理器710可能是一個(gè)中央處理器CPU,或者是特定集成電路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路。
[0220]存儲(chǔ)器730,用于`存放程序732。存儲(chǔ)器730可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。程序732具體可以包括圖1-圖2所示實(shí)施例中的相應(yīng)模塊或單元,在此不贅述。
[0221]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0222]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以全部通過硬件來實(shí)施,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本申請(qǐng)的技術(shù)方案對(duì)【背景技術(shù)】做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0223]本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的方法而言,由于其與實(shí)施例公開的裝置相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見裝置部分說明即可。
[0224]本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。
【權(quán)利要求】
1.一種數(shù)據(jù)傳輸裝置,所述數(shù)據(jù)傳輸裝置為第一裝置,其特征在于,包括: 第一獲取單元,用于獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù); 第一數(shù)據(jù)長(zhǎng)度確定單元,用于確定所述第一數(shù)據(jù)的長(zhǎng)度; 判斷單元,用于判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果; 第二獲取單元,用于當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的另外的數(shù)據(jù); 第二數(shù)據(jù)確定單元,用于從所述另外的數(shù)據(jù)中,確定與所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址相同的第二數(shù)據(jù); 第一封裝信息確定單元,用于確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝息; 第二封裝信息確定單元,用 于確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝息; 封裝單元,用于根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包; 發(fā)送單元,用于將所述第三數(shù)據(jù)包發(fā)送至所述物理地址對(duì)應(yīng)的第二裝置。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述第二獲取單元,具體包括: 緩存子單元,用于緩存所述第一數(shù)據(jù); 計(jì)時(shí)子單元,用于對(duì)所述第一數(shù)據(jù)的緩存時(shí)間進(jìn)行計(jì)時(shí); 獲取子單元,用于獲取另外的數(shù)據(jù); 停止子單元,用于當(dāng)計(jì)時(shí)時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng)時(shí),停止獲取另外的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,還包括: 能力信息獲取單元,用于在確定所述第一數(shù)據(jù)的長(zhǎng)度之前,獲取所述第二裝置的能力信息; 能力信息確定單元,用于確定所述能力信息表示所述第二裝置支持從所述第三數(shù)據(jù)包中拆分出所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述能力信息獲取單元,具體包括: 物理地址獲取子單元,用于獲取所述第一數(shù)據(jù)在鏈路層中的下一跳的物理地址; 能力信息查找子單元,用于在預(yù)先存儲(chǔ)的能力信息記錄中,查找所述物理地址對(duì)應(yīng)的第二裝置的能力信息。
5.根據(jù)權(quán)利要求1所述的裝置,其特征在于,還包括: 封裝類型信息獲取單元,用于在確定所述第一數(shù)據(jù)的長(zhǎng)度之前,獲取所述第一數(shù)據(jù)中的封裝類型信息; 封裝類型信息確定單元,用于確定所述信息表示所述第一數(shù)據(jù)需要與另外的數(shù)據(jù)合并封裝。
6.根據(jù)權(quán)利要求1-5任一項(xiàng)所述的裝置,其特征在于,所述第一封裝信息確定單元,具體包括: 第一封裝信息確定子單元,用于確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段; 所述第二封裝信息確定單元,具體包括:第二封裝信息確定子單元,用于確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段; 相應(yīng)的,所述封裝單元,具體包括: 第一確定子單元,用于確定所述第三數(shù)據(jù)包的前導(dǎo)碼字段、幀開始符字段; 第二確定子單元,用于確定第一合并數(shù)據(jù)數(shù)目字段和第一長(zhǎng)度指示字段,所述第一合并數(shù)據(jù)數(shù)目字段用于表示在所述第三數(shù)據(jù)包中添加的所述第二數(shù)據(jù)的數(shù)目,所述第一長(zhǎng)度指示字段用于表示所述第一數(shù)據(jù)的長(zhǎng)度; 第一添加子單元,用于將所述第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段和所述第一數(shù)據(jù)添加在所述幀開始符字段之后; 第三確定子單元,用于確定第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段,所述第二合并數(shù)據(jù)數(shù)目字段用于表示在所述第二數(shù)據(jù)中添加的另外的數(shù)據(jù)的數(shù)目,所述第二長(zhǎng)度指示字段用于表示所述第二數(shù)據(jù)的長(zhǎng)度; 第二添加子單元,用于將所述第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)添加在所述第一數(shù)據(jù)之后; 幀校驗(yàn)序列字段生成子單元,用于根據(jù)所述前導(dǎo)碼字段、幀開始符字段、第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段、所述第一數(shù) 據(jù)、第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)生成幀校驗(yàn)序列字段。
7.根據(jù)權(quán)利要求1所述的裝置,其特征在于,還包括: 數(shù)據(jù)包接收單元,用于在獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù)之前,接收外部裝置傳入的數(shù)據(jù)包; 所述第一獲取單元,具體包括: 第一獲取子單元,用于獲取所述第一裝置內(nèi)部的數(shù)據(jù)包拆分程序從所述數(shù)據(jù)包中拆分出的所述第一數(shù)據(jù)。
8.一種數(shù)據(jù)傳輸方法,其特征在于,包括: 第一裝置獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù); 確定所述第一數(shù)據(jù)的長(zhǎng)度; 判斷所述長(zhǎng)度是否小于預(yù)設(shè)閾值,得到第一判斷結(jié)果; 當(dāng)所述第一判斷結(jié)果為是時(shí),在預(yù)設(shè)時(shí)間內(nèi)獲取所述第一裝置內(nèi)部的程序生成的另外的數(shù)據(jù); 從所述另外的數(shù)據(jù)中,確定與所述第一數(shù)據(jù)在鏈路層中的下一跳的目的地址相同的第二數(shù)據(jù); 確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝信息; 確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝信息; 根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包; 將所述第三數(shù)據(jù)包發(fā)送至所述目的地址對(duì)應(yīng)的第二裝置。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述在預(yù)設(shè)時(shí)間內(nèi)獲取另外的數(shù)據(jù)包,具體包括: 緩存所述第一數(shù)據(jù); 對(duì)所述第一數(shù)據(jù)的緩存時(shí)間進(jìn)行計(jì)時(shí); 獲取另外的數(shù)據(jù); 當(dāng)計(jì)時(shí)時(shí)間達(dá)到預(yù)設(shè)時(shí)長(zhǎng)時(shí),停止獲取另外的數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述確定所述第一數(shù)據(jù)的長(zhǎng)度之前,還包括: 獲取所述第二裝置的能力信息; 確定所述能力信息表示所述第二裝置支持從所述第三數(shù)據(jù)包中拆分出所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述獲取所述第二裝置的能力信息,具體包括: 獲取所述第一數(shù)據(jù)在鏈路層中的下一跳的目的地址; 在預(yù)先存儲(chǔ)的能力信息記錄中,查找所述目的地址對(duì)應(yīng)的第二裝置的能力信息。
12.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述確定所述第一數(shù)據(jù)的長(zhǎng)度之前,還包括: 獲取所述第一數(shù)據(jù)包中的封裝類型信息; 確定所述封裝類型信息表示所述第一數(shù)據(jù)需要與另外的數(shù)據(jù)合并封裝。
13.根據(jù)權(quán)利要求8-12任一項(xiàng)所述的方法,其特征在于,所述確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一封裝信息,具體包括: 確定將所述第一數(shù)據(jù)封裝為第一數(shù)據(jù)包所采用的第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段; 所述確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二封裝信息,具體包括: 確定將所述第二數(shù)據(jù)封裝為第二數(shù)據(jù)包所采用的第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段; 相應(yīng)的,所述根據(jù)所述第一封裝信息以及所述第二封裝信息將所述第一數(shù)據(jù)與所述第二數(shù)據(jù)封裝為一個(gè)第三數(shù)據(jù)包,具體包括: 確定所述第三數(shù)據(jù)包的前導(dǎo)碼字段、幀開始符字段; 確定第一合并數(shù)據(jù)數(shù)目字段和第一長(zhǎng)度指示字段,所述第一合并數(shù)據(jù)數(shù)目字段用于表示在所述第三數(shù)據(jù)包中添加的所述第二數(shù)據(jù)的數(shù)目,所述第一長(zhǎng)度指示字段用于表示所述第一數(shù)據(jù)的長(zhǎng)度; 將所述第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段和所述第一數(shù)據(jù)添加在所述幀開始符字段之后; 確定第二合并數(shù)據(jù)數(shù)目字段和第二長(zhǎng)度指示字段,所述第二合并數(shù)據(jù)數(shù)目字段用于表示在所述第二數(shù)據(jù)中添加的另外的數(shù)據(jù)的數(shù)目,所述第二長(zhǎng)度指示字段用于表示所述第二數(shù)據(jù)的長(zhǎng)度; 將所述第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)添加在所述第一數(shù)據(jù)之后;根據(jù)所述前導(dǎo)碼字段、幀開始符字段、第一目的MAC地址字段、第一源MAC地址字段、第一長(zhǎng)度或類型字段、第一合并數(shù)據(jù)數(shù)目字段、第一長(zhǎng)度指示字段、所述第一數(shù)據(jù)、第二目的MAC地址字段、第二源MAC地址字段、第二長(zhǎng)度或類型字段、第二合并數(shù)據(jù)數(shù)目字段、第二長(zhǎng)度指示字段和所述第二數(shù)據(jù)生成幀校驗(yàn)序列字段。
14.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù)之前,還包括: 接收外部裝置傳入的數(shù)據(jù)包; 所述獲取所述第一裝置內(nèi)部的程序生成的第一數(shù)據(jù),具體包括: 獲取所述第一裝置內(nèi)部的數(shù)據(jù)包拆分程序從所述數(shù)據(jù)包中拆分出的所述第一數(shù)據(jù)。
【文檔編號(hào)】H04L12/951GK103746945SQ201310747064
【公開日】2014年4月23日 申請(qǐng)日期:2013年12月30日 優(yōu)先權(quán)日:2013年12月30日
【發(fā)明者】王健 申請(qǐng)人:上海華為技術(shù)有限公司