緩沖傳輸服務(wù)的制作方法
【專利摘要】本發(fā)明提供了一種緩沖傳輸會(huì)話,該緩沖傳輸會(huì)話可用于使用低開銷、可靠的點(diǎn)對點(diǎn)數(shù)據(jù)傳輸協(xié)議來將數(shù)據(jù)對象從一個(gè)設(shè)備發(fā)送到另一個(gè)設(shè)備。響應(yīng)于將數(shù)據(jù)對象傳輸至接收設(shè)備的請求,發(fā)送設(shè)備可定位所請求的數(shù)據(jù)對象并建立第一緩沖傳輸會(huì)話以將數(shù)據(jù)對象傳輸至接收設(shè)備。緩沖傳輸會(huì)話可被分配唯一的會(huì)話標(biāo)識符。發(fā)送設(shè)備可將數(shù)據(jù)對象作為分組序列來發(fā)送,每個(gè)分組包括數(shù)據(jù)對象的一部分和會(huì)話標(biāo)識符。多個(gè)緩沖傳輸會(huì)話可同時(shí)建立在兩個(gè)設(shè)備之間。在一些情況下,可將傳輸暫停、恢復(fù)、取消、切換至不同傳輸、或跨斷開/重新連接事件持續(xù)進(jìn)行。
【專利說明】緩沖傳輸服務(wù)
【背景技術(shù)】
[0001] 本公開整體涉及在設(shè)備之間傳送數(shù)據(jù),并且具體涉及對已知大小的數(shù)據(jù)對象的傳 送進(jìn)行管理的緩沖傳輸服務(wù)。
[0002] 便攜式電子設(shè)備能夠存儲(chǔ)并提供對數(shù)據(jù)對象包括多種格式的媒體文件(音頻、視 頻、圖像)、文檔、原圖文件、個(gè)人數(shù)據(jù)(例如,聯(lián)系人、日歷)、表格等等的交互式用戶訪問。 因此,用戶能夠操作便攜式電子設(shè)備來聽音樂、看電影、查看并管理個(gè)人信息等等。在一些 情況下,便攜式電子設(shè)備還能夠創(chuàng)建數(shù)據(jù)對象,例如通過音頻或視頻錄制、使用靜物照相機(jī) 拍照、收集并處理用戶輸入等。
[0003] -些便攜式電子設(shè)備還能夠與各種附件進(jìn)行通信以增強(qiáng)用戶與設(shè)備的交互。例 如,便攜式電子設(shè)備可連接至具有比便攜式電子設(shè)備更大的顯示器或更強(qiáng)的揚(yáng)聲器、或更 方便的用戶接口的附件。此類附件可用于呈現(xiàn)存儲(chǔ)于便攜式電子設(shè)備上的媒體內(nèi)容和其他 信息并與其進(jìn)行交互。
【發(fā)明內(nèi)容】
[0004] 為了支持通過附件與便攜式電子設(shè)備的用戶交互(或反之亦然),在設(shè)備和附件 之間傳輸數(shù)據(jù)對象有時(shí)是有用的。本發(fā)明的某些實(shí)施例涉及緩沖傳輸服務(wù),其能夠被調(diào)用 以在兩個(gè)設(shè)備(發(fā)送設(shè)備和接收設(shè)備,兩者中任何一者通??筛鶕?jù)具體實(shí)施被視為便攜 式的或非便攜式的)之間使用低開銷、可靠的點(diǎn)對點(diǎn)數(shù)據(jù)傳輸協(xié)議根據(jù)要求來發(fā)送數(shù)據(jù)對 象。例如,在接收到將數(shù)據(jù)對象傳輸至接收設(shè)備的請求時(shí),發(fā)送設(shè)備可對所請求的數(shù)據(jù)對 象進(jìn)行定位并建立第一緩沖傳輸會(huì)話以將數(shù)據(jù)對象傳輸至接收設(shè)備??蔀榫彌_傳輸會(huì)話 分配唯一的會(huì)話標(biāo)識符以將其與可能同時(shí)建立的其他通信會(huì)話區(qū)別開來,并且在一些實(shí)施 例中,在這兩個(gè)設(shè)備之間可同時(shí)建立多個(gè)緩沖傳輸會(huì)話,其中每個(gè)緩沖傳輸會(huì)話分配有不 同的會(huì)話標(biāo)識符。當(dāng)建立了傳輸會(huì)話時(shí)(例如,當(dāng)兩個(gè)設(shè)備相互傳送它們的準(zhǔn)備就緒狀態(tài) 時(shí)),發(fā)送設(shè)備發(fā)送分組序列,每個(gè)分組包括會(huì)話標(biāo)識符和需傳輸?shù)臄?shù)據(jù)對象的一部分。在 一些實(shí)施例中,分組還可包括另外的信息,諸如序號或由發(fā)送設(shè)備和接收設(shè)備用來確定已 對數(shù)據(jù)對象的哪些部分進(jìn)行傳輸?shù)钠渌ㄒ坏姆纸M標(biāo)識符、由接收方用來檢測所接收的分 組中的錯(cuò)誤的錯(cuò)誤檢測和/或錯(cuò)誤校正代碼,等等。在一些實(shí)施例中,傳輸可根據(jù)接收方的 控制被暫停和恢復(fù)。在一些實(shí)施例中,正在進(jìn)行的傳輸可跨斷開事件和重新連接事件持續(xù) 進(jìn)行。
[0005] 本發(fā)明的某些方面涉及用于在第一設(shè)備和第二設(shè)備之間傳輸數(shù)據(jù)的方法。第一設(shè) 備(發(fā)送方設(shè)備)可建立與第二設(shè)備(接收方設(shè)備)的點(diǎn)對點(diǎn)通信鏈路并且可接收將第一 數(shù)據(jù)對象發(fā)送至第二設(shè)備的指令。例如,第二設(shè)備可經(jīng)由點(diǎn)對點(diǎn)鏈路發(fā)送對第一數(shù)據(jù)對象 的請求。第一設(shè)備可定位第一數(shù)據(jù)對象,為第一傳輸會(huì)話分配第一唯一標(biāo)識符,并且將包括 第一唯一標(biāo)識符的第一發(fā)送準(zhǔn)備就緒消息發(fā)送至第二設(shè)備(經(jīng)由點(diǎn)對點(diǎn)通信鏈路)。發(fā)送 準(zhǔn)備就緒消息還可包括其他信息,諸如第一數(shù)據(jù)對象的標(biāo)識符和/或指示第一數(shù)據(jù)對象的 大小的信息。在響應(yīng)于第一發(fā)送準(zhǔn)備就緒消息,發(fā)送方接收到了接收準(zhǔn)備就緒消息之后,發(fā) 送方可開始發(fā)送第一組分組,第一組中的每個(gè)分組包括第一唯一標(biāo)識符,和第一數(shù)據(jù)對象 的不同部分。第一組分組可包括足以傳輸?shù)谝粩?shù)據(jù)對象的全部的多個(gè)分組。
[0006] 在一些實(shí)施例中,可同時(shí)執(zhí)行多個(gè)傳輸。例如,在發(fā)送第一組分組時(shí),第一設(shè)備可 接收將第二數(shù)據(jù)對象發(fā)送至第二設(shè)備的指令,定位第二數(shù)據(jù)對象,為第二傳輸會(huì)話分配第 二唯一標(biāo)識符,并且將包括第二唯一標(biāo)識符的第二發(fā)送準(zhǔn)備就緒消息發(fā)送至第二設(shè)備(經(jīng) 由點(diǎn)對點(diǎn)通信鏈路)。在第一設(shè)備響應(yīng)于第二發(fā)送準(zhǔn)備就緒消息接收到第二接收準(zhǔn)備就緒 消息之后,第一設(shè)備可開始發(fā)送第二組分組,第二多個(gè)分組中的每個(gè)分組包括第二唯一標(biāo) 識符,和第二數(shù)據(jù)對象的不同部分。第二組分組可包括足以傳輸?shù)诙?shù)據(jù)對象的全部的多 個(gè)分組;其根據(jù)數(shù)據(jù)對象的大小可能與第一組中分組的數(shù)量不同或相同。第一組分組和第 二組分組中的至少一些可經(jīng)由點(diǎn)對點(diǎn)通信鏈路以交織方式發(fā)送。
[0007] 在一些實(shí)施例中,由于鏈路是點(diǎn)對點(diǎn)的,因此分組無需包括發(fā)送方設(shè)備標(biāo)識或接 收方設(shè)備標(biāo)識。分組也無需包括作為第一數(shù)據(jù)對象的一部分的內(nèi)容的任何顯式標(biāo)識;接收 方設(shè)備可根據(jù)第一唯一標(biāo)識符存在于分組中以及分組是在會(huì)話發(fā)起消息之后發(fā)送的事實(shí) 來推斷出內(nèi)容。給定分組大小的固定上限,這就能夠通過將可用于數(shù)據(jù)的空間最大化來減 少與傳輸較大數(shù)據(jù)對象相關(guān)聯(lián)的開銷。
[0008] 本發(fā)明的某些方面涉及用于在第二設(shè)備處接收來自第一設(shè)備的數(shù)據(jù)的方法。第二 設(shè)備可建立與第一設(shè)備的點(diǎn)對點(diǎn)通信鏈路并可經(jīng)由鏈路接收來自第一設(shè)備的發(fā)送準(zhǔn)備就 緒消息。發(fā)送準(zhǔn)備就緒消息可指示第一設(shè)備已準(zhǔn)備好將數(shù)據(jù)對象傳輸至第二設(shè)備并且可包 括用于傳輸所述數(shù)據(jù)對象的會(huì)話標(biāo)識符。在一些實(shí)施例中,發(fā)送準(zhǔn)備就緒消息可響應(yīng)于來 自第二設(shè)備的對接收數(shù)據(jù)對象的請求。響應(yīng)于發(fā)送準(zhǔn)備就緒消息,第二設(shè)備可向第一設(shè)備 發(fā)送接收準(zhǔn)備就緒消息,接收準(zhǔn)備就緒消息指示第二設(shè)備已準(zhǔn)備好接收數(shù)據(jù)對象。在一些 實(shí)施例中,在發(fā)送接收準(zhǔn)備就緒消息之前,第二設(shè)備可準(zhǔn)備接收數(shù)據(jù)對象,例如通過分配足 夠的存儲(chǔ)空間來存儲(chǔ)數(shù)據(jù)對象。隨后,第二設(shè)備可接收來自第一設(shè)備的一組分組。在一些 實(shí)施例中,這些分組中的每一個(gè)包括標(biāo)頭和有效載荷,其中標(biāo)頭包括會(huì)話標(biāo)識符和針對每 個(gè)分組來講唯一的序號?;跁?huì)話標(biāo)識符,第二設(shè)備可確定每個(gè)分組的有效載荷包含數(shù)據(jù) 對象的一部分并且可將每個(gè)分組的有效載荷存儲(chǔ)在存儲(chǔ)介質(zhì)中,其中用于存儲(chǔ)每個(gè)分組的 有效載荷的位置至少部分地基于分組的序號來確定。
[0009] 在一些實(shí)施例中,分組可包括錯(cuò)誤檢測和/或錯(cuò)誤校正代碼,并且第二設(shè)備可對 所接收的分組執(zhí)行錯(cuò)誤檢查和/或錯(cuò)誤校正操作。如果檢測到錯(cuò)誤,第二設(shè)備可向第一設(shè) 備發(fā)送否定確認(rèn)(Nack)分組;如果未檢測到錯(cuò)誤,第二設(shè)備可發(fā)送確認(rèn)(Ack)分組。可針對 每個(gè)數(shù)據(jù)分組發(fā)送Ack或Nack分組,或可針對一組數(shù)據(jù)分組(諸如連續(xù)數(shù)據(jù)分組的子集) 發(fā)送單個(gè)Ack或Nack分組。這能夠有助于確保數(shù)據(jù)完整性。
[0010] 在一些實(shí)施例中,在接收到數(shù)據(jù)對象的一組分組時(shí),第二設(shè)備可將暫停消息發(fā)送 至第一設(shè)備以信號式通知第一設(shè)備暫停發(fā)送分組并且隨后可發(fā)送恢復(fù)消息至第一設(shè)備以 信號式通知第一設(shè)備來恢復(fù)所述分組的發(fā)送。第一設(shè)備例如可基于在暫停發(fā)送之前所接收 的最后的Ack分組所確定的時(shí)間點(diǎn)處進(jìn)行恢復(fù)。
[0011] 在一些實(shí)施例中,當(dāng)已接收到數(shù)據(jù)對象的所有部分時(shí),第二設(shè)備可向第一設(shè)備發(fā) 送完成消息以指示傳輸完成。
[0012] 本發(fā)明的某些其他方面涉及可將數(shù)據(jù)對象發(fā)送至接收方設(shè)備的電子設(shè)備。例如, 電子設(shè)備可包括被配置為建立與接收方設(shè)備的點(diǎn)對點(diǎn)通信鏈路的接口以及耦接至接口的 處理子系統(tǒng)。處理子系統(tǒng)可被配置(例如,通過適當(dāng)?shù)木幊蹋榘l(fā)起各種會(huì)話,包括被配置 為經(jīng)由點(diǎn)對點(diǎn)通信鏈路將數(shù)據(jù)對象傳輸至接收方設(shè)備的緩沖傳輸會(huì)話。每個(gè)會(huì)話可擁有其 自身的唯一標(biāo)識符。緩沖傳輸會(huì)話可響應(yīng)于對數(shù)據(jù)對象的請求而發(fā)起。請求可以例如由在 處理子系統(tǒng)中執(zhí)行的應(yīng)用程序或由接收方設(shè)備而產(chǎn)生。對于緩沖傳輸會(huì)話,處理子系統(tǒng)可 將需傳輸?shù)臄?shù)據(jù)對象的至少一部分加載到緩沖區(qū)中并將包括分配給緩沖傳輸會(huì)話的唯一 標(biāo)識符的發(fā)送準(zhǔn)備就緒消息發(fā)送至接收方設(shè)備(經(jīng)由點(diǎn)對點(diǎn)通信鏈路)。處理子系統(tǒng)可響 應(yīng)于發(fā)送準(zhǔn)備就緒消息接收所述接收準(zhǔn)備就緒消息。響應(yīng)于所述接收準(zhǔn)備就緒消息,處理 子系統(tǒng)可被配置為經(jīng)由點(diǎn)對點(diǎn)通信鏈路將分組序列發(fā)送至接收方設(shè)備。每個(gè)分組可包括序 號、分配給緩沖傳輸會(huì)話的唯一標(biāo)識符和數(shù)據(jù)對象的從緩沖區(qū)讀取的一部分。在一些實(shí)施 例中,處理系統(tǒng)可被配置為定義鏈路層,并且數(shù)據(jù)對象的分組的發(fā)送可由鏈路層進(jìn)行管理。
[0013] 在一些實(shí)施例中,在向接收方設(shè)備發(fā)送數(shù)據(jù)對象的分組時(shí),發(fā)送設(shè)備可檢測到點(diǎn) 對點(diǎn)通信鏈路已丟失。如果發(fā)生這種情況,發(fā)送設(shè)備可確定是否應(yīng)經(jīng)由已與同一接收方設(shè) 備建立的另一點(diǎn)對點(diǎn)通信鏈路來繼續(xù)第一數(shù)據(jù)對象的傳輸。如果是這樣的話,則可使用另 一點(diǎn)對點(diǎn)通信鏈路來恢復(fù)分組的發(fā)送;恢復(fù)發(fā)送的時(shí)間點(diǎn)可基于在鏈路丟失之前所接收的 最后的Ack分組來確定。
[0014] 在一些實(shí)施例中,如果在發(fā)送數(shù)據(jù)對象的分組時(shí)鏈路丟失,發(fā)送設(shè)備可確定隨后 應(yīng)恢復(fù)數(shù)據(jù)對象的傳輸,并相應(yīng)地存儲(chǔ)指示當(dāng)前傳輸狀態(tài)的信息(例如,存儲(chǔ)在其自身的 本地存儲(chǔ)介質(zhì)中);該信息可在與接收方設(shè)備的點(diǎn)對點(diǎn)通信鏈路重新建立之后用于恢復(fù)第 一數(shù)據(jù)對象的傳輸。因此,傳輸操作可跨斷開/重新連接事件持續(xù)進(jìn)行。
[0015] 本發(fā)明的某些其他方面涉及可接收來自發(fā)送方設(shè)備的數(shù)據(jù)對象的電子設(shè)備。例 如,電子設(shè)備可包括被配置為建立與發(fā)送方設(shè)備的點(diǎn)對點(diǎn)通信鏈路的接口、被配置為存儲(chǔ) 數(shù)據(jù)的存儲(chǔ)介質(zhì)和耦接至接口和存儲(chǔ)介質(zhì)的處理子系統(tǒng)。處理子系統(tǒng)可被配置為經(jīng)由點(diǎn)對 點(diǎn)通信鏈路將對數(shù)據(jù)對象的請求發(fā)送至發(fā)送方設(shè)備并且從發(fā)送方設(shè)備接收(經(jīng)由點(diǎn)對點(diǎn) 通信鏈路)指示發(fā)送方設(shè)備準(zhǔn)備好發(fā)送數(shù)據(jù)對象的發(fā)送準(zhǔn)備就緒消息。發(fā)送準(zhǔn)備就緒消息 可包括與傳輸數(shù)據(jù)對象相關(guān)聯(lián)的會(huì)話標(biāo)識符。作為響應(yīng),處理子系統(tǒng)可向發(fā)送方設(shè)備發(fā)送 (經(jīng)由點(diǎn)對點(diǎn)通信鏈路)指示電子設(shè)備準(zhǔn)備好接收數(shù)據(jù)對象的接收準(zhǔn)備就緒消息。然后,處 理子系統(tǒng)可從發(fā)送方設(shè)備接收(再次經(jīng)由點(diǎn)對點(diǎn)通信鏈路)作為由發(fā)送方設(shè)備所產(chǎn)生的分 組序列的數(shù)據(jù)對象。多個(gè)分組的序列中的每個(gè)分組可標(biāo)記有與數(shù)據(jù)對象的傳輸相關(guān)聯(lián)的會(huì) 話標(biāo)識符并且可包括數(shù)據(jù)對象的作為有效載荷的一部分。處理子系統(tǒng)可將所接收的分組中 每個(gè)分組的有效載荷作為數(shù)據(jù)對象的一部分存儲(chǔ)在存儲(chǔ)介質(zhì)中。例如,多個(gè)分組的序列中 的每個(gè)分組可包括序號,并且在用于存儲(chǔ)每個(gè)分組的有效載荷的存儲(chǔ)介質(zhì)內(nèi)的位置可至少 部分地基于分組的序號進(jìn)行確定。
[0016] 本文所述的技術(shù)可在多種設(shè)備中實(shí)現(xiàn)。在一些實(shí)施例中,發(fā)送方設(shè)備可為便攜式 設(shè)備,并且接收方設(shè)備可為能夠與便攜式設(shè)備互操作的附件。設(shè)備可使用物理連接(例如, 有線連接,諸如可由配對連接器、纜線或適配器提供的連接)和/或無線連接(例如,WiFi、 Bluetooth或其他射頻連接)進(jìn)行通信。
[0017] 以下【具體實(shí)施方式】連同附圖將提供對本發(fā)明的實(shí)質(zhì)和優(yōu)點(diǎn)的更好理解。
【專利附圖】
【附圖說明】
[0018] 圖1示出根據(jù)本發(fā)明的實(shí)施例的主機(jī)設(shè)備和附件。
[0019] 圖2為根據(jù)本發(fā)明的實(shí)施例的包括主機(jī)設(shè)備和附件的系統(tǒng)的簡化框圖。
[0020] 圖3為示出根據(jù)本發(fā)明的實(shí)施例的主機(jī)設(shè)備內(nèi)的進(jìn)程的進(jìn)一步詳情的框圖。
[0021] 圖4為示出根據(jù)本發(fā)明的實(shí)施例的能夠發(fā)送的與從主機(jī)設(shè)備到附件的文件傳輸 相關(guān)的消息的表。
[0022] 圖5為根據(jù)本發(fā)明的實(shí)施例的用于發(fā)送數(shù)據(jù)對象的緩沖傳輸進(jìn)程的流程圖。
[0023] 圖6為根據(jù)本發(fā)明的實(shí)施例的用于接收數(shù)據(jù)對象的緩沖傳輸進(jìn)程的流程圖。
[0024] 圖7為根據(jù)本發(fā)明的實(shí)施例進(jìn)一步示出緩沖傳輸操作的簡化消息傳送圖。
[0025] 圖8為根據(jù)本發(fā)明的實(shí)施例的可實(shí)施以支持暫停和恢復(fù)緩沖傳輸會(huì)話的進(jìn)程流 程圖。
[0026] 圖9為根據(jù)本發(fā)明的實(shí)施例示出兩個(gè)數(shù)據(jù)對象從主機(jī)設(shè)備并發(fā)傳輸?shù)礁郊暮?化消息傳送圖。
[0027] 圖10示出根據(jù)本發(fā)明的實(shí)施例的用于在緩沖傳輸會(huì)話中提供回退和持續(xù)選項(xiàng)的 進(jìn)程。
【具體實(shí)施方式】
[0028] 本發(fā)明的某些實(shí)施例涉及緩沖傳輸服務(wù),其能夠被調(diào)用以在兩個(gè)設(shè)備(發(fā)送設(shè)備 和接收設(shè)備,兩者中任何一者通??筛鶕?jù)具體實(shí)施被視為便攜式的或非便攜式的)之間使 用低開銷、可靠的點(diǎn)對點(diǎn)數(shù)據(jù)傳輸協(xié)議根據(jù)請求發(fā)送數(shù)據(jù)對象。例如,在接收到向接收設(shè)備 發(fā)送數(shù)據(jù)對象的請求時(shí),發(fā)送設(shè)備可對所請求的數(shù)據(jù)對象進(jìn)行定位并建立第一緩沖傳輸會(huì) 話以將數(shù)據(jù)對象傳輸至接收設(shè)備。緩沖傳輸會(huì)話可被分配唯一的會(huì)話標(biāo)識符以將其與可 能同時(shí)建立的其他通信會(huì)話區(qū)別開來,并且在一些實(shí)施例中,在兩個(gè)設(shè)備之間可同時(shí)建立 多個(gè)緩沖傳輸會(huì)話,其中每個(gè)緩沖傳輸會(huì)話分配有不同的會(huì)話標(biāo)識符。當(dāng)建立了傳輸會(huì)話 時(shí)(例如,當(dāng)兩個(gè)設(shè)備相互傳送它們的準(zhǔn)備就緒狀態(tài)時(shí)),發(fā)送設(shè)備發(fā)送分組的序列,每個(gè) 分組包括會(huì)話標(biāo)識符和需傳輸?shù)臄?shù)據(jù)對象的一部分。在一些實(shí)施例中,分組還可包括另外 的信息,諸如序號或由發(fā)送設(shè)備和接收設(shè)備用來確定數(shù)據(jù)對象的哪些部分已被傳輸?shù)钠渌?唯一的分組標(biāo)識符、由接收方用來檢測所接收分組中的錯(cuò)誤的錯(cuò)誤檢測和/或錯(cuò)誤校正代 碼,等等。在一些實(shí)施例中,傳輸可根據(jù)接收方的控制暫停和恢復(fù)。在一些實(shí)施例中,正在 進(jìn)行的傳輸可跨斷開事件和重新連接事件持續(xù)進(jìn)行。
[0029] 圖1示出根據(jù)本發(fā)明的實(shí)施例的主機(jī)設(shè)備100和附件102。
[0030] 例如,主機(jī)設(shè)備100可為手持設(shè)備,諸如媒體播放器、智能電話、個(gè)人數(shù)字助理;平 板電腦;膝上型計(jì)算機(jī);臺式計(jì)算機(jī);或能夠發(fā)送數(shù)據(jù)并與其他設(shè)備通信的任何其他電子 設(shè)備。在一些實(shí)施例中,主機(jī)設(shè)備100可為便攜式設(shè)備(即,用戶容易攜帶到不同地方的設(shè) 備),但這并非是必需的。在示出的實(shí)例中,主機(jī)設(shè)備100為平板電腦,其具有控制按鈕108 和由邊框106環(huán)繞的顯示區(qū)域104。插座連接器110在主機(jī)設(shè)備100的底部處提供(例如, 嵌入到外殼中)以允許附件連接至主機(jī)設(shè)備100。
[0031] 附件102可為能夠與主機(jī)設(shè)備102交互的任何附件,諸如揚(yáng)聲器底座或揚(yáng)聲器系 統(tǒng)、媒體控制臺、汽車音響主體等等。附件102可具有各種用戶接口部件,諸如揚(yáng)聲器112、 顯示器114和用戶可操作控件116。在示出的實(shí)例中,附件102具有能夠插入插座連接器 110中的插頭連接器118以在附件102和主機(jī)設(shè)備100之間提供電連接和機(jī)械連接。在一 些實(shí)施例中,電連接可同時(shí)包括電力連接和數(shù)據(jù)連接,從而允許附件102傳送電力至主機(jī) 設(shè)備100和/或從主機(jī)設(shè)備100接收電力。盡管指出連接器110和118之間的直接連接, 但應(yīng)當(dāng)理解,一些實(shí)施例可使用間接連接,例如經(jīng)由纜線或適配器。在一些實(shí)施例中,除了 或代替如連接器110和118所提供的有線信號路徑,主機(jī)設(shè)備100和附件102還能夠例如 使用諸如WiFi或Bluetooth之類的射頻通信技術(shù)、近場通信技術(shù)、紅外通信等進(jìn)行無線通 信。在一些實(shí)施例中,多條通信路徑可能同時(shí)在主機(jī)設(shè)備100和附件102之間建立,不同類 型的信息選擇性地經(jīng)由不同路徑進(jìn)行路由。
[0032] 如插圖120所示,主機(jī)設(shè)備100可存儲(chǔ)各種數(shù)據(jù)對象,諸如數(shù)據(jù)對象122。數(shù)據(jù)對 象的實(shí)例包括音頻文件、視頻文件、圖像文件、原圖文件、數(shù)據(jù)文件諸如文檔和電子郵件消 息、個(gè)人信息記錄諸如聯(lián)系方式信息或預(yù)約日程,等等。附件接口 124可提供緩沖傳輸會(huì)話 126以有助于將數(shù)據(jù)對象122傳送至附件102 ;下面對具體實(shí)例進(jìn)行描述。
[0033] 如插圖130所示,附件102可具有主機(jī)接口 132,其與主機(jī)設(shè)備100的附件接口 124 兼容。控制邏輯134可操作主機(jī)接口 132以將通信發(fā)送至主機(jī)設(shè)備100并接收來自主機(jī)設(shè) 備的通信??刂七壿?34還可例如響應(yīng)于從主機(jī)設(shè)備100所接收的指令或響應(yīng)于通過控件 116所接收的用戶輸入操作附件102的其他部件,并且可例如基于用戶輸入經(jīng)由接口 132向 主機(jī)設(shè)備100發(fā)送消息。存儲(chǔ)介質(zhì)136可存儲(chǔ)各種數(shù)據(jù)對象,包括傳輸自主機(jī)設(shè)備100的 數(shù)據(jù)對象。
[0034] 例如,附件102的控制邏輯134可生成從主機(jī)設(shè)備100接收數(shù)據(jù)對象(例如,數(shù)據(jù) 對象122)的請求。在一個(gè)具體實(shí)例中,附件102可播放來自主機(jī)設(shè)備100的音頻并通過揚(yáng) 聲器112呈現(xiàn)音頻;在播放音頻時(shí),附件102可請求與音頻相關(guān)聯(lián)的原圖或圖像文件以展示 在顯示器114上。在該示例中,控制邏輯134可經(jīng)由接口 132與主機(jī)設(shè)備100進(jìn)行通信以 確定哪些文件是可用的,然后再次通過經(jīng)由接口 132進(jìn)行通信來請求文件(例如,數(shù)據(jù)對象 122)。響應(yīng)于所述請求,主機(jī)設(shè)備100的接口 124可發(fā)起緩沖傳輸會(huì)話126以將數(shù)據(jù)對象 122傳輸至附件102 ;附件102可將數(shù)據(jù)對象122存儲(chǔ)在存儲(chǔ)介質(zhì)136中并執(zhí)行使用數(shù)據(jù)對 象122的其他操作,例如將原圖或圖像文件顯示在顯示器114上。
[0035] 應(yīng)當(dāng)理解,圖1的主機(jī)設(shè)備和附件為示例性的并且可能做出變型和修改。主機(jī)設(shè) 備和/或附件可實(shí)現(xiàn)任何功能的組合。本文所述的緩沖傳輸會(huì)話可用于從主機(jī)設(shè)備1〇〇到 附件102來傳輸任何數(shù)據(jù)對象;在一些實(shí)施例中,緩沖傳輸會(huì)話還可用于從附件102到主 機(jī)設(shè)備100傳輸數(shù)據(jù)對象;例如,附件102可包括用于存儲(chǔ)數(shù)據(jù)對象的存儲(chǔ)設(shè)備,并且附件 102的接口 132可具有發(fā)起緩沖傳輸會(huì)話以傳輸所選擇的數(shù)據(jù)對象至主機(jī)設(shè)備100的能力。
[0036] 本文所述的緩沖傳輸會(huì)話可用于傳輸其大小在開始傳輸之前為已知的離散數(shù)據(jù) 對象(諸如文件)。在一些實(shí)施例中,發(fā)起緩沖傳輸會(huì)話來傳輸單個(gè)數(shù)據(jù)對象并且在完成數(shù) 據(jù)對象的傳輸時(shí)終止。在其它實(shí)施例中,一個(gè)緩沖傳輸會(huì)話可用于順序地傳輸多個(gè)數(shù)據(jù)對 象。如下所述,在一些實(shí)施例中,緩沖傳輸會(huì)話僅用于其大小超過某一閾值的數(shù)據(jù)對象,而 其他可用的數(shù)據(jù)傳輸技術(shù)(例如,不同類型的通信會(huì)話)對于傳輸較小數(shù)據(jù)對象可更為有 效。此外,一些實(shí)施例還可提供流式數(shù)據(jù)會(huì)話以傳送其大小為未知的數(shù)據(jù)對象或不易分割 成離散對象的數(shù)據(jù)流。因此,不需要主機(jī)設(shè)備1〇〇和附件102將緩沖傳輸會(huì)話用于所有數(shù) 據(jù)傳輸。
[0037] 圖2為根據(jù)本發(fā)明的實(shí)施例的包括主機(jī)設(shè)備202和附件204的系統(tǒng)200的簡化框 圖。在該實(shí)施例中,主機(jī)設(shè)備202 (例如,實(shí)施圖1的主機(jī)設(shè)備100)可提供計(jì)算、傳送和/ 或媒體回放能力。主機(jī)設(shè)備200可包括處理子系統(tǒng)210、存儲(chǔ)設(shè)備212、用戶接口 214、網(wǎng)絡(luò) 接口 216和附件輸入/輸出(I/O)接口 218。主機(jī)設(shè)備202還可包括其他部件(未明確示 出),諸如電池、功率控制器和能夠操作以提供各種增強(qiáng)的能力的其他部件。
[0038] 存儲(chǔ)設(shè)備212例如可使用磁盤、閃存存儲(chǔ)器或任何其他非暫態(tài)存儲(chǔ)介質(zhì)或介質(zhì)的 組合來實(shí)現(xiàn),并且可包括易失性和/或非易失性介質(zhì)。在一些實(shí)施例中,存儲(chǔ)設(shè)備212可存 儲(chǔ)數(shù)據(jù)對象,諸如音頻文件、視頻文件、圖像或原圖文件、有關(guān)用戶聯(lián)系方式(名稱、地址、 電話號碼等)的信息、有關(guān)用戶預(yù)約和事件的信息、備注和/或其他類型的信息。在一些實(shí) 施例中,存儲(chǔ)設(shè)備212還可存儲(chǔ)需由處理子系統(tǒng)210執(zhí)行的一個(gè)或多個(gè)應(yīng)用程序(例如,視 頻游戲程序、個(gè)人信息管理程序、媒體回放程序,等等)。
[0039] 用戶接口 214可包括諸如觸控板、觸摸屏、滾輪、點(diǎn)擊式轉(zhuǎn)盤、撥號盤、按鈕、開關(guān)、 小鍵盤、麥克風(fēng)等輸入設(shè)備,和諸如顯示屏、指示燈、揚(yáng)聲器、耳機(jī)插孔等輸出設(shè)備,以及輔 助性電子器件(例如,數(shù)模轉(zhuǎn)換器或模數(shù)轉(zhuǎn)換器、信號處理器等)。用戶可操作用戶接口 214 的輸入設(shè)備以調(diào)用主機(jī)設(shè)備202的功能并且可經(jīng)由用戶接口 214的輸出設(shè)備查看和/或聽 取來自主機(jī)設(shè)備202的輸出。
[0040] 處理子系統(tǒng)210可實(shí)現(xiàn)為一個(gè)或多個(gè)集成電路,例如一個(gè)或多個(gè)單核或多核微處 理器或微控制器,其實(shí)例在本領(lǐng)域中是已知的。在操作中,處理系統(tǒng)210可控制主機(jī)設(shè)備 202的操作。在各種實(shí)施例中,處理子系統(tǒng)210可響應(yīng)于程序代碼執(zhí)行多種程序并且可保持 多個(gè)同時(shí)執(zhí)行的程序或進(jìn)程。在任何給定時(shí)間,需執(zhí)行的一些或所有程序代碼可位于處理 子系統(tǒng)210中和/或諸如存儲(chǔ)設(shè)備212之類的存儲(chǔ)介質(zhì)中。
[0041] 通過合適的編程,處理子系統(tǒng)210可為主機(jī)設(shè)備202提供各種功能。例如,響應(yīng)于 來自附件204的請求,處理子系統(tǒng)210可發(fā)起緩沖傳輸會(huì)話以經(jīng)由附件I/O接口 218將存 儲(chǔ)在存儲(chǔ)設(shè)備212中的數(shù)據(jù)對象傳輸至附件204。處理子系統(tǒng)210還可執(zhí)行用于控制主機(jī) 設(shè)備202的其他功能的其他程序,包括可存儲(chǔ)在存儲(chǔ)設(shè)備212中的應(yīng)用程序;在一些實(shí)施例 中,這些應(yīng)用程序可包括生成發(fā)送或接收數(shù)據(jù)對象的請求的指令,并且處理子系統(tǒng)210可 發(fā)起緩沖傳輸會(huì)話以服務(wù)于任何此類請求。
[0042] 網(wǎng)絡(luò)接口 216可以為主機(jī)設(shè)備202提供語音和/或數(shù)據(jù)通信能力。在一些實(shí)施例 中,網(wǎng)絡(luò)接口 216可包括用于訪問無線語音和/或數(shù)據(jù)網(wǎng)絡(luò)(例如使用蜂窩電話技術(shù)、諸如 3G或EDGE的高級數(shù)據(jù)網(wǎng)絡(luò)技術(shù)、WiFi(IEEE802. 11系列標(biāo)準(zhǔn))、或其他移動(dòng)通信技術(shù)、或它 們的任何組合)的射頻(RF)收發(fā)器部件、用于短程無線聯(lián)網(wǎng)(例如,使用藍(lán)牙標(biāo)準(zhǔn))的部 件、GPS接收器部件,和/或其他部件。在一些實(shí)施例中,除了或代替無線接口,網(wǎng)絡(luò)接口 216 可提供有線網(wǎng)絡(luò)連接性(例如以太網(wǎng))。網(wǎng)絡(luò)接口 216可以利用硬件(例如,驅(qū)動(dòng)器電路、 天線、調(diào)制器/解調(diào)器、編碼器/解碼器,以及其他模擬和/或數(shù)字信號處理電路)與軟件 組件的組合來實(shí)現(xiàn)。
[0043] 附件I/O接口 218可允許主機(jī)設(shè)備202與各種附件進(jìn)行通信。例如,附件I/O接 口 218可支持連接計(jì)算機(jī)、外部鍵盤、揚(yáng)聲器底座或媒體回放臺、數(shù)字相機(jī)、無線電調(diào)諧器、 車載娛樂系統(tǒng)或音響主體、外部視頻設(shè)備、存儲(chǔ)卡讀卡器,等等。在一些實(shí)施例中,附件I/O 接口 218可包括連接器諸如與用于各種iP〇d'iPh〇nex和iPad?產(chǎn)品中的連接器相對應(yīng) 的連接器,以及支持電路系統(tǒng)。連接器可提供用于電源和接地端的連接以及諸如通用串行 總線(USB)、火線(IEEE1394標(biāo)準(zhǔn))、和/或通用異步接收器/發(fā)送器(UART)之類的一個(gè) 或多個(gè)數(shù)據(jù)通信接口的連接。在一些實(shí)施例中,連接器提供專用電源觸頭和接地觸頭,以及 可用于并行地實(shí)現(xiàn)不同通信技術(shù)的一些數(shù)量(例如,四個(gè))的可編程數(shù)字?jǐn)?shù)據(jù)觸頭;例如, 可將兩個(gè)引腳分配為USB數(shù)據(jù)引腳(D+和D-)并且將兩個(gè)其他引腳分配為串行發(fā)送/接收 引腳(例如,實(shí)現(xiàn)UART接口);在建立連接時(shí)可協(xié)商引腳對特定通信技術(shù)的分配。在一些 實(shí)施例中,連接器還可提供用于音頻和/或視頻信號的連接,其可以模擬和/或數(shù)字格式傳 輸來往于主機(jī)設(shè)備202。因此,附件I/O接口 218可支持多個(gè)通信信道,并且給定附件可使 用任何或所有的這些信道。在一些實(shí)施例中,除了或代替有線通信信道,附件I/O接口 218 還可支持無線通信(例如,經(jīng)由WiFi、Bluetooth或其他無線協(xié)議)。
[0044] 附件202 (例如,實(shí)現(xiàn)圖1的附件102)可包括控制器230、用戶接口設(shè)備232、存儲(chǔ) 介質(zhì)233、其他附件專用硬件234和主機(jī)I/O接口 236。附件202表示能夠與主機(jī)設(shè)備進(jìn)行 互操作的一系列附件,并且此類附件在能力、復(fù)雜性和形狀因數(shù)上可以有很大變化。各種附 件可包括圖2中未明確示出的部件,包括但不限于具有固定或可移動(dòng)存儲(chǔ)介質(zhì)的存儲(chǔ)設(shè)備 (磁盤、閃存存儲(chǔ)器等);顯示屏、揚(yáng)聲器、或用于連接至外部音頻/視頻設(shè)備的端口;相機(jī) 組件,諸如透鏡、圖像傳感器和用于它們的控件(例如,光圈、縮放、曝光時(shí)間、幀率,等等); 用于記錄音頻(單獨(dú)地或與視頻記錄相結(jié)合)的麥克風(fēng);等等。此外,一些附件可提供可連 接至并與另一附件進(jìn)行通信的其他接口(未示出)。
[0045] 控制器230可包括例如執(zhí)行程序代碼以執(zhí)行與附件204相關(guān)聯(lián)的各種功能的一個(gè) 或多個(gè)單核或微處理器和/或微控制器。例如,在附件230包含用戶可操作控件(例如,圖 1的控件116)的情況下,控制器230可翻譯所述控件的用戶操作并且作為應(yīng)答來調(diào)用附件 202的功能;在一些情況下,調(diào)用的功能可包括發(fā)送信息至主機(jī)設(shè)備202和/或從主機(jī)設(shè)備 202接收信息。
[0046] 用戶接口 232可包括諸如觸控盤、觸摸屏、滾輪、點(diǎn)擊式轉(zhuǎn)盤、撥號盤、按鈕、開關(guān)、 小鍵盤、麥克風(fēng)等用戶可操作輸入設(shè)備,和諸如顯示屏、指示燈、揚(yáng)聲器、耳機(jī)插孔等輸出設(shè) 備,以及輔助性電子器件(例如,數(shù)模轉(zhuǎn)換器或模數(shù)轉(zhuǎn)換器、信號處理器等)。根據(jù)特定附件 202的具體實(shí)施,用戶可操作用戶接口 232的輸入設(shè)備以調(diào)用附件202的功能。
[0047] 存儲(chǔ)介質(zhì)233可包含任何類型的數(shù)據(jù)存儲(chǔ)介質(zhì),包括但不限于磁盤、閃存存儲(chǔ)器、 或任何其他非暫態(tài)存儲(chǔ)介質(zhì)、或介質(zhì)的組合,并且可包括易失性和/或非易失性介質(zhì)。存儲(chǔ) 介質(zhì)233可用于存儲(chǔ)需由控制器230執(zhí)行的程序代碼、從主機(jī)設(shè)備202接收的數(shù)據(jù)對象、以 及可在附件204的操作中生成和/或使用的任何其他數(shù)據(jù)或指令。
[0048] 附件專用硬件234可包括可存在于附件202中以允許其功能的任何其他部件。例 如,在各種實(shí)施例中,附件專用硬件234可包括使用固定或可移動(dòng)存儲(chǔ)介質(zhì)的一個(gè)或多個(gè) 存儲(chǔ)設(shè)備;GPS接收器;網(wǎng)絡(luò)接口;電源和/或電源管理電路;環(huán)境傳感器(例如,溫度傳感 器、壓力傳感器、加速度計(jì)、化學(xué)傳感器等);等等。應(yīng)當(dāng)理解,可通過提供適當(dāng)?shù)母郊S?硬件234來支持任何類型的附件功能。
[0049] 主機(jī)I/O接口 236可允許附件204與主機(jī)設(shè)備202進(jìn)行通信。根據(jù)本發(fā)明的一 些實(shí)施例,主機(jī)I/O接口 236可包括與包含在主機(jī)設(shè)備202中的連接器直接相配對的連接 器,諸如與用于各種iPod'iPhoneK?和iPacT產(chǎn)品中的連接器互補(bǔ)的連接器。此類連接器 可用于向主機(jī)設(shè)備202提供電力和/或從主機(jī)設(shè)備202接收電力,用于以模擬和/或數(shù)字 格式發(fā)送和/或接收音頻和/或視頻信號,并用于使用一種或多種數(shù)據(jù)通信接口諸如USB、 UART和/或火線來傳送信息。還可使用其他連接器;例如,主機(jī)I/O接口 236可包含標(biāo)準(zhǔn) USB連接器并且可經(jīng)由適配器線纜而連接至主機(jī)設(shè)備202的附件I/O接口 218。在其它實(shí) 施例中,除了或代替有線通信信道,主機(jī)I/O接口 236還可支持無線通信(例如,經(jīng)由WiFi、 Bluetooth或其他無線協(xié)議)。
[0050] 附件204可為與主機(jī)設(shè)備202交互的任何電子裝置。在一些實(shí)施例中,附件204 可提供對主機(jī)設(shè)備202操作的遠(yuǎn)程控制、或可同時(shí)包括輸入控制和輸出控制(例如,用于顯 示從主機(jī)設(shè)備202得到的當(dāng)前狀態(tài)信息的顯示器)的遠(yuǎn)程用戶接口。在各種實(shí)施例中的附 件204可控制主機(jī)設(shè)備202的任何功能并且還可接收來自主機(jī)設(shè)備202的數(shù)據(jù)對象。在其 它實(shí)施例中,主機(jī)設(shè)備202可控制附件204的操作,諸如從附件204的存儲(chǔ)介質(zhì)中檢索存儲(chǔ) 數(shù)據(jù),由結(jié)合到附件204中的相機(jī)發(fā)起圖像捕獲操作,等等。
[0051]應(yīng)當(dāng)理解,本文描述的系統(tǒng)配置和部件是例示性的,并且可能做出變型和修改。 主機(jī)設(shè)備和/或附件可具有本文未具體描述的其他能力(例如,移動(dòng)電話、全球定位系統(tǒng) (GPS)、寬帶數(shù)據(jù)通信、互聯(lián)網(wǎng)連接性,等等)。
[0052]位于主機(jī)設(shè)備202和附件204的相應(yīng)的I/O接口 218、236處的連接器可為互補(bǔ)的 或根據(jù)需要不為互補(bǔ)的。在兩個(gè)連接器非互補(bǔ)的情況下,可提供適配器(未示出)來用于 連接兩個(gè)設(shè)備。盡管連接器在本文中可描述為具有引腳(通常與具有用于連接部件的電線 的常規(guī)電子設(shè)備相關(guān)聯(lián)的術(shù)語),但應(yīng)當(dāng)理解,也可用其他信號路徑(例如,光信號)來代 替。此外,在一些實(shí)施例中,一些連接可為無線的,并且在提供無線接口的情況下可將連接 器省略。
[0053]此外,盡管本文參考特定塊描述了主機(jī)設(shè)備和附件,但應(yīng)當(dāng)理解,定義這些塊是為 了描述方便,并非旨在暗示組件部分的特定物理布置。此外,塊不必對應(yīng)于物理上不同的部 件??梢耘渲脡K以執(zhí)行各種操作,例如通過對處理器編程或提供適當(dāng)?shù)目刂齐娐?,并且各個(gè) 塊根據(jù)初始配置是如何獲得的而可以被重新配置或不能被重新配置??梢栽诎ɡ秒娐?和軟件的任意組合實(shí)現(xiàn)的電子設(shè)備在內(nèi)的多種裝置中實(shí)現(xiàn)本發(fā)明的實(shí)施例。
[0054] 主機(jī)設(shè)備202的附件I/O接口 218和附件204的主機(jī)I/O接口 236允許主機(jī)設(shè)備 202與附件204連接并隨后從附件204斷開。如本文所用,主機(jī)設(shè)備和附件在通信信道建立 在它們相應(yīng)的接口之間時(shí)"連接"并且在信道終止時(shí)"斷開"。此類連接可經(jīng)由直接物理連 接,例如通過配對的連接器;間接物理連接,例如經(jīng)由纜線;和/或無線連接,例如經(jīng)由藍(lán)牙 來實(shí)現(xiàn)。
[0055]在一些實(shí)施例中,主機(jī)設(shè)備和附件可在通過根據(jù)"附件協(xié)議"交換消息和數(shù)據(jù)而連 接時(shí)進(jìn)行通信。消息和數(shù)據(jù)例如可使用由相關(guān)接口所提供的任何有線或無線傳輸介質(zhì)進(jìn)行 傳送。
[0056] 附件協(xié)議可定義能夠在主機(jī)設(shè)備202和與其連接的諸如附件204之類的任何附件 之間交換的消息的"領(lǐng)域"。消息格式可包括例如指示以下所述為消息代碼的起始位或位序 列,之后是可由接收方翻譯并實(shí)施的實(shí)際消息代碼。消息代碼中的至少一些可具有由協(xié)議 定義的一個(gè)或多個(gè)相關(guān)聯(lián)的參數(shù),并且除了消息代碼之外,消息還可包括用于任何此類參 數(shù)的值。在一些情況下,協(xié)議還可在未接收到與消息代碼相關(guān)聯(lián)的特定參數(shù)的情況下或在 通過消息代碼接收到非期望參數(shù)的情況下規(guī)定接收方的行為。對于不同消息,多個(gè)參數(shù)可 為不同的,并且在一些情況下,參數(shù)可具有可變長度。在一些實(shí)施例中,可對消息代碼進(jìn)行 定義,使得給定消息代碼僅在一個(gè)方向上為有效的。還可使用其他消息結(jié)構(gòu)。
[0057] 附件協(xié)議還可定義消息交換的格式。例如,附件協(xié)議可規(guī)定使用一個(gè)或多個(gè)分組 來發(fā)送消息,每個(gè)分組具有標(biāo)頭和有效載荷。標(biāo)頭提供基本信息(例如,起始指示符;分組 長度;分組序號;如下所述的分組與其相關(guān)聯(lián)的會(huì)話標(biāo)識符),而有效載荷提供全部或部分 的消息數(shù)據(jù)。分組還可包括本領(lǐng)域中已知的錯(cuò)誤檢測或錯(cuò)誤校正代碼。
[0058] 在一些實(shí)施例中,可在邏輯上將消息分成"通用"消息集和"可選"消息集??赡?需要使用附件協(xié)議的每個(gè)附件和每個(gè)主機(jī)設(shè)備來至少支持通用消息集。該消息集可包括使 得主機(jī)設(shè)備和附件能夠彼此識別和驗(yàn)證并且提供有關(guān)它們相應(yīng)的能力的信息的消息,包括 每個(gè)均支持的可選集中的消息(如果有的話)。例如,通用消息集可包括附件可發(fā)送至主機(jī) 設(shè)備的消息以列出可選集中的附件能夠發(fā)送的每個(gè)消息以及可選集中的附件能夠接收并 實(shí)施的每個(gè)消息。通用消息集還可包括主機(jī)設(shè)備能夠用于驗(yàn)證附件的聲稱身份和能力(或 反之亦然)的認(rèn)證消息,并且在認(rèn)證不成功的情況下附件(或主機(jī)設(shè)備)可被阻止調(diào)用某 些(或全部的)可選消息。
[0059] 可選消息集可包括在給定附件中可能被支持或不被支持的與各種功能相關(guān)的消 息。例如,可選消息集可包括允許附件對主機(jī)設(shè)備的需調(diào)用的功能進(jìn)行識別的簡單的遠(yuǎn)程 消息、能夠用于獲得與將主機(jī)設(shè)備的全部或部分用戶接口復(fù)制在附件上(從而支持更高級 的遠(yuǎn)程控制)相關(guān)的信息的遠(yuǎn)程用戶接口消息、允許用戶通過操作主機(jī)設(shè)備控制附件中的 無線電調(diào)諧器和/或通過操作附件控制主機(jī)設(shè)備中的無線電調(diào)諧器的消息、有助于在主機(jī) 設(shè)備和附件之間傳輸數(shù)據(jù)對象(其實(shí)例在下文中描述)的消息,等等??稍诟郊f(xié)議中對 可選消息的任何組合進(jìn)行定義,并且并未要求給定附件或主機(jī)設(shè)備支持所有(甚至任何) 的可選消息。
[0060] 圖3為示出根據(jù)本發(fā)明的實(shí)施例的主機(jī)設(shè)備202內(nèi)的進(jìn)程的進(jìn)一步詳情的框圖。 示出的各種進(jìn)程可對應(yīng)于在圖2的處理子系統(tǒng)210中執(zhí)行的程序。在一些實(shí)施例中,多個(gè) 處理器芯片或單個(gè)芯片內(nèi)的多個(gè)處理器核可用于實(shí)現(xiàn)本文所述的多種進(jìn)程。一些或所有的 處理器可為執(zhí)行軟件和/或固件程序的可編程的通用處理器;其他的處理器可為數(shù)字信號 處理器、具有內(nèi)置功能的狀態(tài)機(jī)、或它們的任何組合。
[0061] 物理傳輸介質(zhì)302可包括天線、信號引腳、驅(qū)動(dòng)器、數(shù)模轉(zhuǎn)換器、編碼器、射頻電 路、以及可操作以經(jīng)由物理傳輸介質(zhì)發(fā)送和接收信號的其他部件,諸如引腳或電線、光纖、 無線傳輸介質(zhì)(例如,射頻載波)等。特定的細(xì)節(jié)取決于傳輸介質(zhì),其為設(shè)計(jì)選擇的問題。
[0062] 協(xié)議守護(hù)進(jìn)程304可通過管理各種物理的或邏輯的端口來控制附件協(xié)議通信。在 一些實(shí)施例中,協(xié)議守護(hù)進(jìn)程304可定義端口 306,其對應(yīng)于每個(gè)端口建立至附件的連接。 盡管僅示出一個(gè)端口 306,但一些實(shí)施例允許多個(gè)并發(fā)連接,并且可存在多個(gè)端口 306。每 個(gè)端口 306可與物理傳輸介質(zhì)302(其可為針對不同端口 306的相同傳輸介質(zhì)或不同傳輸 介質(zhì))交互以接收和發(fā)送信號至連接于端口 306上的附件。在一些情況下,端口 306可以 實(shí)現(xiàn)為軟件對象(例如,設(shè)備固件的一部分);在其他情況下,端口 306可連接至合適的通 信硬件或與其相關(guān)聯(lián)。協(xié)議守護(hù)進(jìn)程304可提取經(jīng)由接口 306所接收的入站附件協(xié)議消息 (或任何其他活動(dòng)端口)并將它們傳送至協(xié)議管理器308。協(xié)議守護(hù)進(jìn)程304還可接收來 自協(xié)議管理器308的出站附件協(xié)議消息并將這些消息提供至端口 306 (或另一活動(dòng)端口) 以供傳送至連接至端口 306的附件。
[0063] 更具體地,協(xié)議守護(hù)進(jìn)程304可包括鏈路層310,其可以實(shí)現(xiàn)為在適當(dāng)?shù)挠布蠄?zhí) 行的軟件對象(例如,設(shè)備固件的一部分)。在一些實(shí)施例中,鏈路層310操作為創(chuàng)建、發(fā) 送、接收和讀取符合附件協(xié)議的分組(例如,如上所述)。對于出站通信,鏈路層310可接收 來自協(xié)議管理器308的消息,將消息封裝進(jìn)一個(gè)或多個(gè)分組中,并經(jīng)由端口 306和物理傳輸 介質(zhì)302發(fā)送分組。對于入站通信,鏈路層310可經(jīng)由端口 306接收分組,提取消息,并將 消息提供至協(xié)議管理器308以供處理。在連接多個(gè)端口 306的情況下,鏈路層310可管理 跨不同的連接端口的通信交織,特別是在多個(gè)端口共享共同的物理傳輸介質(zhì)(例如,使用 所有端口所共用的天線的無線傳輸介質(zhì))的情況下。
[0064] 協(xié)議管理器308可接收來自協(xié)議守護(hù)進(jìn)程304的附件協(xié)議消息并開始翻譯消息的 進(jìn)程。協(xié)議管理器308可以相同的格式接收所有消息,而與端口無關(guān);因此,圖3所示的進(jìn) 程堆棧的較高級別可與傳輸機(jī)制隔離開來。協(xié)議管理器308可將消息傳送至充當(dāng)協(xié)議管理 器308 (以及可選地其他低級別設(shè)備功能)和應(yīng)用程序324之間的中間層的支持層322,或 者在一些情況下直接傳送至應(yīng)用程序324。
[0065]協(xié)議管理器308可包括會(huì)話層312,其可以實(shí)現(xiàn)為在適當(dāng)硬件上執(zhí)行的軟件對象 (例如,設(shè)備固件的一部分)。會(huì)話層312可操作以創(chuàng)建并讀取符合附件協(xié)議(例如,如上 所述的協(xié)議)的消息。對于出站通信,會(huì)話層312可例如基于來自支持層308或直接來自 應(yīng)用程序324的函數(shù)調(diào)用來創(chuàng)建消息,并將消息提供至用于被發(fā)送的鏈路層310。對于入站 通信,鏈路層310可將提取自分組的消息提供至?xí)拰?12以供處理。會(huì)話層312可翻譯 消息并將適當(dāng)?shù)暮瘮?shù)調(diào)用發(fā)送至協(xié)議管理器308或直接發(fā)送至應(yīng)用程序324。
[0066] 在一些實(shí)施例中,會(huì)話層312可創(chuàng)建并定義不同類型的多個(gè)會(huì)話,每個(gè)會(huì)話被適 配于處理不同類型的消息和數(shù)據(jù)交換。圖3中的實(shí)例示出為會(huì)話314、316、318和320。每 個(gè)會(huì)話可被分配唯一的會(huì)話標(biāo)識符(未示出)使得會(huì)話層312中沒有兩個(gè)同時(shí)存在的會(huì)話 具有相同的會(huì)話標(biāo)識符??啥x不同的會(huì)話以處理附件協(xié)議中的不同子集的消息;在一些 實(shí)施例中,這些子集可重疊。
[0067] 控制會(huì)話314可被配置為處理與附件協(xié)議的通用消息集相關(guān)聯(lián)的所有消息,諸如 連接附件的識別和認(rèn)證;控制會(huì)話314還可確定允許其他哪些類型的會(huì)話與附件進(jìn)行通 信。該確定可基于附件識別和認(rèn)證、主機(jī)設(shè)備的能力,等等。
[0068] 可創(chuàng)建消息會(huì)話316以處理來自附件協(xié)議的可選消息集中的至少一些消息。例 如,大部分消息可包括相對較少量的參數(shù)和/或其他數(shù)據(jù),并且消息會(huì)話316可用于創(chuàng)建和 讀取此類消息。
[0069] 緩沖傳輸會(huì)話318可在請求傳輸諸如數(shù)據(jù)對象322之類的數(shù)據(jù)對象時(shí)進(jìn)行創(chuàng)建。 如下所述,緩沖傳輸會(huì)話318可管理對象級的數(shù)據(jù)對象322的傳輸,將較低級別的細(xì)節(jié)留給 鏈路層310。在一些實(shí)施例中,多個(gè)緩沖傳輸會(huì)話(例如,會(huì)話318和320)可并存以支持多 個(gè)數(shù)據(jù)對象的并發(fā)傳輸。
[0070] 還可定義其他類型的會(huì)話(圖3中未示出)。例如,針對傳輸來往于主機(jī)設(shè)備202 的開放式數(shù)據(jù)可定義流式會(huì)話。還可定義測試和診斷會(huì)話,例如以供開發(fā)人員使用。
[0071]在具有多個(gè)端口 306的一些實(shí)施例中,會(huì)話層312可針對每個(gè)連接端口定義不同 組的會(huì)話。每個(gè)會(huì)話可具有全局唯一的會(huì)話標(biāo)識符(例如,與第一端口相關(guān)聯(lián)的控制會(huì)話 和與第二端口相關(guān)聯(lián)的控制會(huì)話可具有不同的標(biāo)識符)。在一些實(shí)施例中,每個(gè)所接收的分 組包含會(huì)話標(biāo)識符,并且鏈路層310可基于會(huì)話標(biāo)識符對所提取的消息進(jìn)行路由;同樣地, 鏈路層310可基于消息來源的會(huì)話標(biāo)識符將傳出消息路由至端口。鏈路層310可保持會(huì)話 標(biāo)識符到端口的映射,并且會(huì)話層312可在不了解當(dāng)前定義了哪些端口的情況下操作。應(yīng) 當(dāng)理解,多個(gè)會(huì)話標(biāo)識符可被映射到同一端口。在多個(gè)會(huì)話標(biāo)識符映射到同一端口的情況 下,鏈路層310可對來往于不同會(huì)話的通信交織進(jìn)行管理,其對會(huì)話層312來說是透明的。
[0072]對于入站通信,協(xié)議管理器308中的會(huì)話314、316、318、320中的一個(gè)可接收來自 協(xié)議守護(hù)進(jìn)程304的附件協(xié)議消息并且開始對消息進(jìn)行翻譯的進(jìn)程。協(xié)議管理器308可以 相同的格式接收所有消息,而與端口無關(guān);因此,圖3所示的進(jìn)程堆棧的較高級別可與傳輸 機(jī)制隔離開來。協(xié)議管理器308可將消息傳送至充當(dāng)協(xié)議管理器308 (以及可選地其他低 級別設(shè)備功能)和應(yīng)用程序324之間的中間層的支持層322,或者在一些情況下直接傳送至 應(yīng)用程序324。
[0073]應(yīng)用程序324可包括實(shí)現(xiàn)主機(jī)設(shè)備202的各種功能的一個(gè)或多個(gè)應(yīng)用程序。實(shí)例 包括用于導(dǎo)航媒體資產(chǎn)的數(shù)據(jù)庫并用于回放各種類型的資產(chǎn)(例如,音頻、視頻、諸如照片 之類的靜態(tài)圖像,等等)的接口。其他實(shí)例包括萬維網(wǎng)瀏覽器、電子郵件程序、個(gè)人信息管 理應(yīng)用程序(例如,用于管理日歷、任務(wù)、聯(lián)系人等)、地理導(dǎo)航程序(例如,在存在的情況下 使用GPS功能),等等。根據(jù)具體實(shí)施,應(yīng)用程序324可為主機(jī)設(shè)備202的操作系統(tǒng)的一部 分、預(yù)加載到主機(jī)設(shè)備202上的獨(dú)立程序、或由用戶加載到主機(jī)設(shè)備202上的程序。
[0074] 會(huì)話層312中的一些或所有會(huì)話可根據(jù)需求發(fā)起和終止。例如,控制會(huì)話314可 在檢測到新的連接并且對端口 306進(jìn)行初始化時(shí)發(fā)起。控制會(huì)話314可用于處理從附件接 收的識別和認(rèn)證消息并確定是否應(yīng)創(chuàng)建消息會(huì)話316。在一些實(shí)施例中,控制會(huì)話314可保 持活動(dòng)狀態(tài)直至端口 306出現(xiàn)斷開時(shí)為止。消息會(huì)話316可響應(yīng)于控制會(huì)話314確定應(yīng)創(chuàng) 建消息會(huì)話316而創(chuàng)建。一旦創(chuàng)建,消息會(huì)話316可保持活動(dòng)狀態(tài)直至端口 306出現(xiàn)斷開 時(shí)為止,或直至控制會(huì)話314確定應(yīng)終止消息會(huì)話316 (例如,由于經(jīng)由端口 306從附件接 收到新的識別消息)時(shí)為止。
[0075]在一些實(shí)施例中,消息會(huì)話316可接收來自附件的、請求傳輸數(shù)據(jù)對象322的消 息。作為響應(yīng),消息會(huì)話316可發(fā)起緩沖傳輸會(huì)話318以傳輸數(shù)據(jù)對象322。在一些實(shí)施例 中,在控制會(huì)話314確定連接附件未被授權(quán)執(zhí)行緩沖傳輸?shù)那闆r下,可阻止消息會(huì)話316發(fā) 起緩沖傳輸會(huì)話318。緩沖傳輸會(huì)話318 -旦創(chuàng)建,則可開始傳輸數(shù)據(jù)對象322,并且一旦 傳輸完成則可終止。如果隨后對另一傳輸進(jìn)行請求,則可創(chuàng)建另一緩沖傳輸會(huì)話。
[0076]應(yīng)當(dāng)理解,本文所述的進(jìn)程是示例性的,并且可能做出變型形式和修改形式。主機(jī) 設(shè)備202可支持任何類型的應(yīng)用程序,并且應(yīng)用程序可根據(jù)用戶或另一進(jìn)程的控制來啟動(dòng) 或退出。預(yù)期較低級別的進(jìn)程(包括支持層322、協(xié)議管理器308和協(xié)議守護(hù)進(jìn)程304)可 在軟件和/或固件中實(shí)現(xiàn)并且可被配置為在設(shè)備上電時(shí)自動(dòng)開始并僅在切斷電源時(shí)或在 檢測到各種異常情況時(shí)終止。進(jìn)程可在未使用時(shí)進(jìn)入非活動(dòng)狀態(tài)以最小化資源消耗。此外, 本文所示的所有等級和進(jìn)程并非都是需要的;例如,在一些實(shí)施例中,應(yīng)用程序可與協(xié)議管 理器或協(xié)議守護(hù)進(jìn)程直接通信。在其它實(shí)施例中,可對圖3中單獨(dú)示出的進(jìn)程進(jìn)行合并。
[0077] 還應(yīng)當(dāng)了解,附件204可實(shí)現(xiàn)類似于圖3所示的進(jìn)程和設(shè)備或它們的任何變型。通 信需要主機(jī)設(shè)備202和附件204同時(shí)具有適當(dāng)配置的硬件和/或軟件組件以發(fā)送和接收互 通的消息(例如,符合分組級和消息級的附件協(xié)議),但具體實(shí)施可根據(jù)需要而變化。
[0078] 如上所述,附件協(xié)議可根據(jù)需實(shí)現(xiàn)的功能包含任何數(shù)量和組合的消息。在本發(fā)明 的某些實(shí)施例中,功能可包括使用緩沖傳輸會(huì)話將數(shù)據(jù)對象從主機(jī)設(shè)備傳輸至附件和/或 將數(shù)據(jù)對象從附件傳輸至主機(jī)設(shè)備。附件協(xié)議可包括有助于建立緩沖傳輸會(huì)話和傳輸數(shù)據(jù) 對象的消息。
[0079] 例如,圖4為表400,其示出根據(jù)本發(fā)明的實(shí)施例能夠發(fā)送的與從主機(jī)設(shè)備到附件 的文件傳輸相關(guān)的消息。這些信息例如可使用圖3的進(jìn)程進(jìn)行發(fā)送和接收。對于列402中 的每個(gè)消息,表400標(biāo)識出消息為有效的方向404(附件(A)到主機(jī)(H)或主機(jī)到附件)和 相關(guān)聯(lián)的消息參數(shù)406。
[0080]DataRequest消息可從附件發(fā)送至主機(jī)設(shè)備以請求由DatalD參數(shù)所識別的特定 數(shù)據(jù)對象。DatalD參數(shù)可包括由主機(jī)用來識別所請求的數(shù)據(jù)對象的任何信息,諸如文件 名稱、句柄、在保持文件標(biāo)識符的情況下到查找表或其他數(shù)據(jù)結(jié)構(gòu)中的索引、或任何其他信 息。在會(huì)話層312在主機(jī)設(shè)備中實(shí)現(xiàn)的情況下,DataRequest消息可被發(fā)送至例如消息會(huì) 話316。在一些實(shí)施例中,可存在用于請求不同種類的數(shù)據(jù)對象或用于指示所請求的數(shù)據(jù)對 象的不同預(yù)期使用的多個(gè)不同消息。
[0081]BXSendReady消息可從主機(jī)發(fā)送至附件以指示緩沖傳輸會(huì)話(例如,圖3的緩沖傳 輸會(huì)話318)已在主機(jī)上發(fā)起并已準(zhǔn)備好開始向附件發(fā)送數(shù)據(jù)對象。BXSendReady消息可 包括分配給緩沖傳輸會(huì)話318的唯一的會(huì)話標(biāo)識符(SessionID)、由附件發(fā)送的DatalD參 數(shù)、以及數(shù)據(jù)對象的大小信息。在一些實(shí)施例中,可省略DatalD參數(shù),并且附件可基于附件 協(xié)議的規(guī)則推斷出與緩沖傳輸會(huì)話相關(guān)聯(lián)的數(shù)據(jù)對象的身份。例如,協(xié)議規(guī)則可規(guī)定在附 件作出多個(gè)數(shù)據(jù)請求的情況下將按照請求順序發(fā)起緩沖傳輸會(huì)話,或者每次僅一個(gè)數(shù)據(jù)請 求可為顯著的。大小消息例如可參考數(shù)據(jù)對象中數(shù)據(jù)字節(jié)的數(shù)量或傳輸整個(gè)數(shù)據(jù)對象將需 要的分組的數(shù)量進(jìn)行規(guī)定。參見圖3,在一些實(shí)施例中,發(fā)起緩沖傳輸會(huì)話318包括將數(shù)據(jù) 對象(或它的一部分)傳輸至能夠訪問鏈路層310的緩沖區(qū)330,并且BXSendReady消息是 在將此完成之后發(fā)送的。
[0082]BXRcvReady消息可從附件發(fā)送至主機(jī)以指示附件已準(zhǔn)備好接收數(shù)據(jù)對象。例 如,在接收到BXSendReady消息時(shí),附件可分配適當(dāng)大小的緩沖區(qū)(或其他存儲(chǔ)裝置)以 接收數(shù)據(jù)對象,使所分配的緩沖區(qū)與緩沖傳輸會(huì)話的SessionID相關(guān)聯(lián),并且進(jìn)行任何 其他必要或期望的準(zhǔn)備,然后發(fā)送BXRcvReady消息。在一些實(shí)施例中,主機(jī)直到接收到 BXRcvReady消息才開始發(fā)送數(shù)據(jù)對象。響應(yīng)于BXRcvReady消息,主機(jī)可開始發(fā)送數(shù)據(jù)對 象。
[0083] 在一些實(shí)施例中,主機(jī)將數(shù)據(jù)對象作為一系列連續(xù)編號的分組進(jìn)行發(fā)送,每個(gè)分 組在標(biāo)頭中標(biāo)記有緩沖傳輸會(huì)話的SessionID。SessionID標(biāo)簽足以指示分組包含數(shù)據(jù)對 象的一部分,并且序號指示數(shù)據(jù)對象的哪部分。因此,無需來自主機(jī)的像這樣識別出數(shù)據(jù) 對象的傳輸部分的消息;附件可假設(shè)在其發(fā)送BXRcvReady之后,標(biāo)記有緩沖傳輸會(huì)話的 SessionID的所有接收到的分組包含數(shù)據(jù)文件的一部分,并且附件可基于序號按順序放置 這些部分。這能夠減少在數(shù)據(jù)傳輸期間的開銷并且允許數(shù)據(jù)對象更為有效地傳輸。
[0084]BXPause、BXResume和BXCancel消息可在主機(jī)發(fā)送數(shù)據(jù)對象的分組時(shí)的任何時(shí)間 由附件進(jìn)行發(fā)送。可發(fā)送BXPause消息以請求主機(jī)暫停發(fā)送其他對象數(shù)據(jù)分組直至另行通 知,并且可發(fā)送BXResume消息以請求主機(jī)在BXPause之后恢復(fù)發(fā)送。在一些實(shí)施例中,暫 停和恢復(fù)的具體實(shí)施依賴于如下所述用于通過其對分組進(jìn)行發(fā)送和接收的鏈路層。
[0085]BXCancel消息可在傳輸處于進(jìn)行中時(shí)由附件來發(fā)送以指示附件不再需要數(shù)據(jù)對 象。在接收到BXCancel消息之后,圖3的緩沖傳輸會(huì)話318可通知鏈路層310停止發(fā)送分 組并釋放緩沖區(qū)330,使其可用于其他用途。在此情況下,鏈路層310并不保留指示傳輸操 作已到達(dá)位置處的信息。
[0086]BXDone消息可在已接收到整個(gè)數(shù)據(jù)對象后由附件來發(fā)送。響應(yīng)于BXDone消息,圖 3的緩沖傳輸會(huì)話318可通知鏈路層310釋放緩沖區(qū)330并且可終止。
[0087] 應(yīng)當(dāng)理解,這些消息為例示性的,并且可能做出變型和修改。例如,以上所述的消 息有關(guān)從主機(jī)到附件的數(shù)據(jù)對象傳輸。在一些實(shí)施例中,相同的消息或類似消息集可被定 義為支持沿相反方向(從附件到主機(jī))的數(shù)據(jù)對象傳輸;因此,一些實(shí)施例可支持沿任一方 向或沿雙向的、使用本文所述的緩沖傳輸會(huì)話的數(shù)據(jù)對象傳輸。
[0088] 圖5為根據(jù)本發(fā)明的實(shí)施例的用于發(fā)送數(shù)據(jù)對象的緩沖傳輸進(jìn)程500的流程圖。 進(jìn)程500例如可在使用圖3所示的軟件進(jìn)程的圖2的主機(jī)設(shè)備200中實(shí)現(xiàn)。
[0089] 在框502處,在主機(jī)設(shè)備處接收對數(shù)據(jù)對象的請求。該請求可來自各種來源。在 一些實(shí)施例中,請求可作為如上所述參考圖4的DataRequest消息從附件中接收。在一些 實(shí)施例中,在主機(jī)設(shè)備上執(zhí)行的應(yīng)用程序324可確定應(yīng)被傳輸?shù)臄?shù)據(jù)對象并且直接地或經(jīng) 由支持層322發(fā)送指令至協(xié)議管理器308。請求可識別需傳輸?shù)奶囟〝?shù)據(jù)對象,例如數(shù)據(jù)對 象 322。
[0090] 在框504處,會(huì)話層312可發(fā)起緩沖傳輸會(huì)話318以傳輸數(shù)據(jù)對象322。例如,在 框506處,可將唯一的會(huì)話標(biāo)識符(SessionID)分配給緩沖傳輸會(huì)話318。在框508處,緩 沖傳輸會(huì)話318可確定數(shù)據(jù)對象322的大小。在框510處,會(huì)話層312可分配鏈路層310 中的緩沖區(qū)330以暫時(shí)存儲(chǔ)待傳輸?shù)臄?shù)據(jù)對象322 (或它的一部分)在框512處,會(huì)話層 312可將數(shù)據(jù)對象322(或它的第一部分)加載到緩沖區(qū)330中。在一些實(shí)施例中,數(shù)據(jù)對 象322可本地存儲(chǔ)到主機(jī)設(shè)備200,例如存儲(chǔ)在存儲(chǔ)設(shè)備212中。在一些實(shí)施例中,數(shù)據(jù)對 象322還可被遠(yuǎn)程地存儲(chǔ)并使用網(wǎng)絡(luò)接口 216從其存儲(chǔ)位置中檢索。加載數(shù)據(jù)對象322可 包括將數(shù)據(jù)對象從其存儲(chǔ)位置復(fù)制或移動(dòng)到緩沖區(qū)330。
[0091] 在框514處,當(dāng)數(shù)據(jù)對象322 (或其足夠部分)已加載到緩沖區(qū)330中時(shí),緩沖傳輸 會(huì)話318可發(fā)送1^3611(11^3(17消息至附件(例如,經(jīng)由鏈路層310)。如上所述,1^3611(11^3(17 消息可包括緩沖傳輸會(huì)話318的SessionID、數(shù)據(jù)對象的大小信息(在框508處獲得)和數(shù) 據(jù)對象的標(biāo)識符。在框516處,緩沖傳輸會(huì)話318可接收來自附件的BXRcvReady消息(例 如,經(jīng)由鏈路層310) ;BXRcvReady消息還可包括緩沖傳輸會(huì)話318的SessionID。
[0092]在框518處,鏈路層310可傳輸數(shù)據(jù)對象。例如,響應(yīng)于BXRcvReady消息,緩沖 傳輸會(huì)話318可發(fā)信號通知鏈路層310開始從緩沖區(qū)330生成數(shù)據(jù)分組。鏈路層310可 管理實(shí)際的數(shù)據(jù)傳輸:生成分組、發(fā)送分組和接收來自附件的確認(rèn)(Ack分組)或否定確認(rèn) (Nack分組)。在一些實(shí)施例中,緩沖傳輸會(huì)話318在傳輸期間可為活動(dòng)狀態(tài)以用作其他目 的。例如,如果數(shù)據(jù)對象322大于緩沖區(qū)330,則緩沖傳輸會(huì)話318可對緩沖區(qū)330中未發(fā) 送數(shù)據(jù)的程度進(jìn)行監(jiān)控,并將數(shù)據(jù)對象322的其他部分傳輸至緩沖區(qū)330,替換已被成功發(fā) 送的部分。常規(guī)的方案,諸如讀取指針和寫入指針,可用于管理緩沖區(qū)330中未發(fā)送數(shù)據(jù) 的程度并且用于防止緩沖區(qū)330中的數(shù)據(jù)在其成功傳輸至附件之前被覆蓋。在傳輸處于進(jìn) 行中時(shí),緩沖傳輸會(huì)話318可偵聽來自附件的消息,諸如圖4所示的BXPausejXResume、和 BXCancel消息。(以下參考圖8來描述相對于這些消息的緩沖傳輸會(huì)話318的操作。)
[0093] 在框520處,當(dāng)傳輸數(shù)據(jù)對象322完成時(shí),附件可發(fā)送如上所述的BXDone消息。響 應(yīng)于BXDone消息,緩沖傳輸會(huì)話318可結(jié)束或終止于框522處。結(jié)束緩沖傳輸會(huì)話318可 包括在框524處釋放鏈路層310中的緩沖區(qū)330 (即,釋放由其他進(jìn)程使用的資源)以及在 框326處釋放緩沖傳輸會(huì)話318的SessionID以供不同緩沖傳輸會(huì)話或不同類型的會(huì)話進(jìn) 行再利用。
[0094] 圖6為根據(jù)本發(fā)明的實(shí)施例的用于接收數(shù)據(jù)對象的緩沖傳輸進(jìn)程600的流程圖。 進(jìn)程600例如可在用于接收與在主機(jī)設(shè)備202上執(zhí)行的進(jìn)程500相關(guān)的數(shù)據(jù)對象的圖2的 附件204中實(shí)現(xiàn)。
[0095] 在框602處,附件204可將對數(shù)據(jù)對象的請求發(fā)送至主機(jī),例如主機(jī)設(shè)備202。在 一些實(shí)施例中,可使用如上所述的DataRequest消息。在一些實(shí)施例中,代替發(fā)送請求,附 件204可接收指示主機(jī)提出發(fā)送數(shù)據(jù)對象的消息,并且附件204可響應(yīng)以指示接受。
[0096] 在框604處,附件204可接收來自主機(jī)設(shè)備202的BXSendReady消息或指示主機(jī) 設(shè)備202已準(zhǔn)備好發(fā)送數(shù)據(jù)對象的另一消息。如上所述,BXSendReady消息可包括與傳輸 相關(guān)聯(lián)的緩沖傳輸會(huì)話的SessionID。在框606處,響應(yīng)于BXSendReady消息,附件204可 準(zhǔn)備接收數(shù)據(jù)對象。例如,附件204可分配足夠量的存儲(chǔ)空間(例如,存儲(chǔ)介質(zhì)233內(nèi)的區(qū) 域)。在一些實(shí)施例中,附件204可發(fā)起其自身的緩沖傳輸端點(diǎn)以有助于管理傳輸。該端點(diǎn) 可為會(huì)話或在適當(dāng)?shù)挠布蠄?zhí)行的其他軟件對象。在一些實(shí)施例中,緩沖傳輸端點(diǎn)例如可 基于分組序號將所接收的數(shù)據(jù)存儲(chǔ)到所分配存儲(chǔ)空間內(nèi)的適當(dāng)位置(從而允許順序顛倒 地接收分組)。在一些實(shí)施例中,緩沖傳輸端點(diǎn)還可對所接收分組的有效載荷執(zhí)行數(shù)據(jù)完 整性檢查、視情況生成確認(rèn)或重試分組,等等。在一些實(shí)施例中,可在與如上所述的鏈路層 310相類似的鏈路層中對傳入分組的管理進(jìn)行處理。
[0097] 在框608處,當(dāng)已準(zhǔn)備好開始接收分組時(shí),附件204可發(fā)送BXRcvReady消息至主 機(jī)設(shè)備202。在框610處,附件204可開始接收來自主機(jī)設(shè)備202的數(shù)據(jù)分組。如上所述, 數(shù)據(jù)分組可包括序號、將其標(biāo)識為屬于緩沖傳輸會(huì)話(例如,通過包括SessionID)的標(biāo)頭 和包含進(jìn)行傳輸?shù)膶ο蟮囊徊糠值挠行лd荷。附件204可從每個(gè)所接收的分組中提取有效 載荷并將其存儲(chǔ)到所分配的存儲(chǔ)區(qū)域中(例如,在存儲(chǔ)介質(zhì)233內(nèi)分配的區(qū)域);可基于序 號選擇特定的存儲(chǔ)位置,并且可順序顛倒地接收分組而不影響數(shù)據(jù)完整性。在分組包括錯(cuò) 誤檢測代碼的實(shí)施例中,附件204可在存儲(chǔ)有效載荷之前驗(yàn)證數(shù)據(jù)完整性;如果分組包括 錯(cuò)誤校正代碼,附件204可在存儲(chǔ)有效載荷之前校正數(shù)據(jù)。附件204還可發(fā)送Ack(確認(rèn)) 和Nack(否定確認(rèn))分組至主機(jī)設(shè)備202。在一些實(shí)施例中,針對每個(gè)成功接收的分組發(fā)送 Ack,并且在分組包含錯(cuò)誤的情況下發(fā)送Nack。在其它實(shí)施例中,在成功接收到一組N個(gè)連 續(xù)分組之后(N例如可為2、4、8或16)發(fā)送一個(gè)Ack,并且在檢測到錯(cuò)誤的情況下發(fā)送Nack; 滑動(dòng)窗口或其他技術(shù)可用于管理對Ack分組和Nack分組的發(fā)送和響應(yīng)。如上所述,根據(jù)具 體實(shí)施,生成Ack分組和Nack分組可被委派給附件中的鏈路層。
[0098] 在框612處,附件204可例如基于所接收的數(shù)據(jù)的量和數(shù)據(jù)對象的已知大小來確 定是否已接收到整個(gè)數(shù)據(jù)對象。如果已接收的部分小于整個(gè)數(shù)據(jù)對象,進(jìn)程600可返回至 框610以繼續(xù)接收分組。一旦已接收到整個(gè)數(shù)據(jù)對象,在框614處,附件204可發(fā)送BXDone 消息至主機(jī)設(shè)備202以確認(rèn)遞送。
[0099] 圖7為根據(jù)本發(fā)明的實(shí)施例的進(jìn)一步示出進(jìn)程500和600的操作的簡化消息傳送 圖。在該圖中,時(shí)間是垂直運(yùn)行的并且各種進(jìn)程由垂直線來表示;在進(jìn)程之間發(fā)送的消息以 箭頭示出。將主機(jī)702示出為具有包括協(xié)議管理器704、緩沖傳輸會(huì)話706和鏈路層708的 進(jìn)程;這些可類似于以上參考圖3描述的進(jìn)程。將附件710示出為具有單個(gè)進(jìn)程;應(yīng)當(dāng)理 解,還可存在另外的進(jìn)程,例如單獨(dú)的鏈路層和會(huì)話層。
[0100] 示出的消息順序開始于從附件704發(fā)送至主機(jī)702的DataRequest消息712,識 別出所請求的數(shù)據(jù)對象。DataRequest消息712由協(xié)議管理器704接收,協(xié)議管理器可發(fā) 送意圖傳輸所請求數(shù)據(jù)對象的確認(rèn)(消息714)并發(fā)起緩沖傳輸會(huì)話706 (消息716)。如 Alloc/Ld信號718所指出的那樣,緩沖傳輸會(huì)話706對鏈路層708中的緩沖區(qū)進(jìn)行分配并 將所請求數(shù)據(jù)對象加載到緩沖區(qū)中。盡管示出單個(gè)Alloc/Ld信號718,但應(yīng)當(dāng)理解,在此階 段可在主機(jī)702中交換多個(gè)信號并且其他進(jìn)程(未明確示出)可參與對主機(jī)702進(jìn)行準(zhǔn)備 以用于傳輸。
[0101] 當(dāng)主機(jī)702已準(zhǔn)備好開始傳輸時(shí),將BXSendReady消息718發(fā)送至附件704。附件 704準(zhǔn)備接收數(shù)據(jù),并且在其做好準(zhǔn)備時(shí),發(fā)送BXRcvReady消息720至主機(jī)702,消息由緩 沖傳輸會(huì)話706進(jìn)行接收。作為響應(yīng),緩沖傳輸會(huì)話706可發(fā)送Go信號722至鏈路層708 以發(fā)起用于傳輸數(shù)據(jù)對象的分組的發(fā)送。
[0102] 數(shù)據(jù)對象的傳輸由數(shù)據(jù)分組726和Ack分組728來表示。每個(gè)數(shù)據(jù)分組726可包 括分組ID(例如,序號)以及與緩沖傳輸會(huì)話706相關(guān)聯(lián)的會(huì)話標(biāo)識符(SessID)。如上所 述,各種技術(shù)可在鏈路層708和附件704之間實(shí)現(xiàn)以確保分組的接收和數(shù)據(jù)完整性。這些 技術(shù)可包括由附件704來發(fā)送Ack分組728 ;每個(gè)Ack分組728可確認(rèn)單個(gè)數(shù)據(jù)分組或多 個(gè)數(shù)據(jù)分組??山粨Q任何數(shù)量的數(shù)據(jù)分組726和Ack分組728。
[0103] 當(dāng)附件704已接收到整個(gè)數(shù)據(jù)對象時(shí),可發(fā)送BXDone消息730至緩沖傳輸會(huì)話 706。緩沖傳輸會(huì)話706可通過指示鏈路層708釋放緩沖區(qū)(信號732)進(jìn)行響應(yīng),在此之 后緩沖傳輸會(huì)話706可結(jié)束,其由信號734所指示。
[0104] 如圖7所示,緩沖傳輸會(huì)話可響應(yīng)于數(shù)據(jù)請求而發(fā)起并且在傳輸完成時(shí)終止。單 獨(dú)的鏈路層可管理數(shù)據(jù)傳輸進(jìn)程的詳情,而無需所述緩沖傳輸會(huì)話的干預(yù)。在一些實(shí)施例 中,數(shù)據(jù)分組(例如,數(shù)據(jù)分組726)的有效載荷可完全由來自數(shù)據(jù)對象的數(shù)據(jù)組成;接收方 (在這種情況下,附件704)可根據(jù)標(biāo)頭中存在會(huì)話標(biāo)識符以及分組的定時(shí)(即,在附件發(fā) 送BXRcvReady之后接收)推斷出分組包含對象數(shù)據(jù)。這就能夠減少與使用分組傳輸較大 數(shù)據(jù)對象相關(guān)聯(lián)的開銷。
[0105] 應(yīng)當(dāng)理解,本文所述的緩沖傳輸會(huì)話為例示性的并且可能做出各種變型和修改。 可并行執(zhí)行按序列描述的步驟,可改變步驟的次序,并且可修改、組合、添加或省略步驟。例 如,在上述實(shí)施例中,緩沖傳輸會(huì)話用于傳輸單個(gè)數(shù)據(jù)對象。在其它實(shí)施例中,單個(gè)緩沖 傳輸會(huì)話可用于在能夠檢測到每個(gè)數(shù)據(jù)對象的起點(diǎn)和/或終點(diǎn)時(shí)相繼地傳輸一系列數(shù)據(jù) 對象。例如,如果正在發(fā)送多個(gè)數(shù)據(jù)對象,則主機(jī)可發(fā)送第一數(shù)據(jù)對象,等待來自附件的 BXDone,然后開始發(fā)送第二數(shù)據(jù)對象。在一些實(shí)施例中,在發(fā)送第二數(shù)據(jù)對象之前,主機(jī)可 發(fā)送標(biāo)識第二數(shù)據(jù)對象的第二BXSendReady并等待來自附件的BXRcvReady響應(yīng)。
[0106] 如上參考圖4所描述的,在一些實(shí)施例中,附件可請求主機(jī)暫停、恢復(fù)或取消進(jìn)行 中的緩沖傳輸。圖8為根據(jù)本發(fā)明的實(shí)施例的例如可在圖3的緩沖傳輸會(huì)話318中實(shí)現(xiàn)的 進(jìn)程800的流程圖。進(jìn)程800示出可在鏈路層310正生成并發(fā)送數(shù)據(jù)分組時(shí)進(jìn)行的操作。
[0107] 在框802處,進(jìn)程800可等待要接收的消息。消息可例如經(jīng)由如上所述的鏈路層 310來接收。在框804處,如果未接收到消息,進(jìn)程800可繼續(xù)等待直到接收到消息為止。在 框806處,進(jìn)程800翻譯消息。在該示例中,消息可為"暫停"(例如,上述BXPause消息)、 "恢復(fù)"(例如,上述BXResume消息)、"取消"(例如,上述BXCancel消息)或"完成"(例 如,上述BXDone消息)。
[0108] 對于暫停消息,在框810處,進(jìn)程800可發(fā)信號通知鏈路層310停止發(fā)送數(shù)據(jù)分 組。在一些實(shí)施例中,該信號僅僅影響與緩沖傳輸會(huì)話相關(guān)的數(shù)據(jù)分組的發(fā)送;鏈路層310 可繼續(xù)發(fā)送與其他會(huì)話(例如,圖3的消息會(huì)話316或控制會(huì)話314)相關(guān)聯(lián)的分組。在框 812處,緩沖傳輸會(huì)話318 (或鏈路層310)可保存由附件所確認(rèn)的最后的數(shù)據(jù)分組的分組標(biāo) 識符(例如,序號);這就能夠允許鏈路層310恢復(fù)傳輸而幾乎沒有重復(fù)或完全沒有重復(fù)。 進(jìn)程800可返回至框802以等待進(jìn)一步的消息。
[0109] 對于恢復(fù)消息,在框820處,進(jìn)程800可確定傳輸當(dāng)前是否被暫停(例如,BXPause 是否為所接收的最后的消息)。如果不是,可忽略恢復(fù)消息,并且進(jìn)程800可返回至框802 以等待進(jìn)一步的消息。(在一些實(shí)施例中,在傳輸未暫停時(shí)接收到恢復(fù)消息可被視為錯(cuò)誤, 并且緩沖傳輸會(huì)話318可中止傳輸。)在框822處,如果傳輸當(dāng)前被暫停,則緩沖傳輸會(huì)話 318可指示鏈路層310恢復(fù)對數(shù)據(jù)分組的發(fā)送。在一些實(shí)施例中,鏈路層310 (或緩沖傳輸 會(huì)話318)已保存最后被確認(rèn)的分組的標(biāo)識符,并且所述傳輸可利用最后被確認(rèn)的分組之 后的下一連續(xù)分組進(jìn)行恢復(fù)。進(jìn)程800可返回至框802以等待進(jìn)一步的消息。
[0110] 對于取消消息,在框830處,進(jìn)程800可發(fā)信號通知鏈路層310停止發(fā)送數(shù)據(jù)分 組。正如暫停消息一樣,這無需影響發(fā)送與其他會(huì)話相關(guān)聯(lián)的分組。在此情況下,假設(shè)附件 將不恢復(fù)傳輸,并且無需保存有關(guān)傳輸?shù)漠?dāng)前狀態(tài)的信息。在框832處,緩沖傳輸會(huì)話318 可結(jié)束。在成功完成的情況下,結(jié)束可包括釋放鏈路層緩沖區(qū)和釋放會(huì)話標(biāo)識符。
[0111] 對于完成消息,進(jìn)程800可前進(jìn)至框832以結(jié)束緩沖傳輸會(huì)話。(由于傳輸完成, 因此假設(shè)鏈路層310不發(fā)送數(shù)據(jù)分組。)
[0112] 應(yīng)當(dāng)理解,進(jìn)程800可根據(jù)具體實(shí)施而包括另外的選項(xiàng)。在傳輸期間還可接收其 他消息;例如,附件可發(fā)送周期性的狀態(tài)消息至緩沖傳輸會(huì)話。
[0113] 在一些實(shí)施例中,多個(gè)數(shù)據(jù)對象的傳輸可同時(shí)處于進(jìn)行中,每個(gè)數(shù)據(jù)對象處于不 同的緩沖傳輸會(huì)話中。圖9為根據(jù)本發(fā)明的實(shí)施例的、類似于圖7的、示出可將兩個(gè)數(shù)據(jù)對 象從主機(jī)設(shè)備902傳輸至附件904的一個(gè)場景的簡化消息傳送圖。
[0114] 順序可開始于附件904發(fā)送消息920至主機(jī)904的協(xié)議管理器906以請求第一數(shù) 據(jù)對象(ObjA)。協(xié)議管理器906可通過確認(rèn)(消息922)進(jìn)行響應(yīng)并如消息924所指出的 那樣發(fā)起具有唯一標(biāo)識符的第一緩沖傳輸會(huì)話908(Sessl)。消息926可用于分配鏈路層 912中的緩沖區(qū)并為傳輸?shù)谝粩?shù)據(jù)對象(例如,如上所述)做準(zhǔn)備。當(dāng)?shù)谝痪彌_傳輸會(huì)話 908準(zhǔn)備好時(shí),其可發(fā)送BXSendReady消息928至附件904,所述消息包括其會(huì)話標(biāo)識符和 第一數(shù)據(jù)對象的標(biāo)識符。附件904可通過BXRcvReady消息930進(jìn)行響應(yīng)。緩沖傳輸會(huì)話 908可指示鏈路層912開始發(fā)送分組("Go"消息932);對分組的發(fā)送可如數(shù)據(jù)和Ack消息 934所指出的那樣開始。
[0115] 在傳輸?shù)谝粩?shù)據(jù)對象完成之前,附件904可發(fā)送消息940至協(xié)議管理器906以請 求第二數(shù)據(jù)對象(ObjB)。協(xié)議管理器906可通過確認(rèn)(消息942)進(jìn)行響應(yīng)并如消息944 所指出的那樣發(fā)起具有唯一標(biāo)識符的第二緩沖傳輸會(huì)話910 (Sess2)。消息946可用于分配 鏈路層912中的第二緩沖區(qū)并為傳輸?shù)诙?shù)據(jù)對象(例如,如上所述)做準(zhǔn)備。在所有這 些均發(fā)生的情況下,鏈路層912可如消息948所指出的那樣繼續(xù)發(fā)送第一數(shù)據(jù)對象的分組。
[0116] 當(dāng)?shù)诙彌_傳輸會(huì)話910準(zhǔn)備好時(shí),其可發(fā)送BXSendReady消息950至附件904, 所述消息包括其會(huì)話標(biāo)識符(Sess2)和第二數(shù)據(jù)對象(ObjB)的標(biāo)識符。附件904可通過 BXRcvReady消息952進(jìn)行響應(yīng);由于會(huì)話標(biāo)識符是不同的,因此與進(jìn)行中的第一會(huì)話不存 在混淆。在接收消息952之后,緩沖傳輸會(huì)話910可指示鏈路層912開始發(fā)送分組("Go" 消息954)。
[0117] 此時(shí),鏈路層912可具有兩個(gè)進(jìn)行中的緩沖傳輸。來自兩個(gè)緩沖傳輸中的數(shù)據(jù)可 在主機(jī)902和附件904之間的單一物理傳輸介質(zhì)上交織;例如,消息956和958中的任一消 息可根據(jù)需要交織進(jìn)行。在一些實(shí)施例中,優(yōu)先邏輯可用于確定來自不同緩沖傳輸?shù)姆纸M 之間的相對順序。在一些實(shí)施例中,如果在主機(jī)902和附件904之間連接多個(gè)端口或多個(gè) 傳輸介質(zhì)(例如,如上參考圖3所描述的),鏈路層310可經(jīng)由不同端口或傳輸介質(zhì)對用于 不同緩沖傳輸?shù)姆纸M進(jìn)行路由。
[0118] 在接收側(cè)(附件904),可通過參考所述會(huì)話標(biāo)識符將用于不同對象的數(shù)據(jù)區(qū)別開 來,所述會(huì)話標(biāo)識符可被包括在如上所述的每個(gè)分組標(biāo)頭中?;跁?huì)話標(biāo)識符,附件904可 將每個(gè)分組的有效載荷存儲(chǔ)到適當(dāng)位置中,從而同時(shí)裝配兩個(gè)數(shù)據(jù)對象。由附件904發(fā)送 的每個(gè)Ack分組還包括會(huì)話標(biāo)識符,允許鏈路層912正確地追蹤對于每個(gè)傳輸而言哪些分 組已被接收或尚未接收。
[0119] 當(dāng)附件904已接收到第一數(shù)據(jù)對象的所有分組時(shí),其可發(fā)送BXDone消息960至主 機(jī)設(shè)備902。由于BXDone消息960以特定的緩沖傳輸會(huì)話(Sessl)標(biāo)識,因此其由緩沖傳 輸會(huì)話908 (而非緩沖傳輸會(huì)話910)進(jìn)行處理。緩沖傳輸會(huì)話908可釋放其在鏈路層912 中的緩沖區(qū)(消息962)并結(jié)束(消息964)。第二緩沖傳輸會(huì)話910繼續(xù),并且鏈路層912 可如消息966所指出的那樣繼續(xù)發(fā)送用于第二數(shù)據(jù)對象的分組。
[0120] 當(dāng)附件904已接收到用于第一數(shù)據(jù)對象的所有分組時(shí),其可發(fā)送BXDone消息968 至主機(jī)設(shè)備902。BXDone消息968由緩沖傳輸會(huì)話910進(jìn)行處理(基于其會(huì)話標(biāo)識符)。 緩沖傳輸會(huì)話910可釋放其在鏈路層912中的緩沖區(qū)(消息970)并結(jié)束(消息972)。
[0121] 應(yīng)當(dāng)理解,圖9的消息順序?yàn)槔拘缘?,并且可能做出各種變型和修改??墒褂貌?同的消息,并且可改變順序。例如,在一些情況下,根據(jù)優(yōu)先規(guī)則、可用的傳輸介質(zhì)和所傳輸 數(shù)據(jù)對象的大小,開始較晚的傳輸可能先于開始較早的傳輸而完成。任何數(shù)量的傳輸可同 時(shí)處于進(jìn)行中,其受制于可能由主機(jī)或附件對并發(fā)會(huì)話數(shù)量所施加的限制,這關(guān)乎設(shè)計(jì)選 擇的問題;此類選擇可基于可用的資源、對快速完成傳輸?shù)脑竿?、預(yù)期使用場景等等。
[0122] 在一些實(shí)施例中,各種錯(cuò)誤可能在緩沖傳輸期間發(fā)生。如上所述,分組傳輸錯(cuò)誤 可通過重新發(fā)送分組來處理。如果錯(cuò)誤率過高,一些實(shí)施例可中止傳輸(如果需要重新開 始)。
[0123] 還可能的是附件或主機(jī)可在傳輸期間變?yōu)閿嚅_的。例如,參見圖1,用戶可在傳輸 進(jìn)行時(shí)物理地?cái)嚅_連接器110和118。在無線傳輸?shù)那闆r下,例如在一個(gè)設(shè)備移出另一個(gè) 設(shè)備的范圍的情況下或在信號質(zhì)量以其他方式降至無法接受的水平的情況下,連接可能丟 失。其他事件也可導(dǎo)致斷開。在斷開的情況下,本發(fā)明的一些實(shí)施例可簡單地中止傳輸;當(dāng) 設(shè)備重新連接時(shí),如果需要,傳輸可從頭重新啟動(dòng)。
[0124] 在一些實(shí)施例中,可繼續(xù)進(jìn)行中的傳輸,而不重新開始。例如,可實(shí)現(xiàn)回退和/或 持續(xù)邏輯。如本文所用,回退為在同一附件連接在兩個(gè)或更多個(gè)端口上的情況下的選項(xiàng)。如 果一個(gè)端口斷開,則鏈路層可回退至保持連接的另一端口并繼續(xù)傳輸。持續(xù)是在回退端口 不可用的情況下(或在無法實(shí)現(xiàn)回退邏輯的情況下)的選項(xiàng);根據(jù)該選項(xiàng),進(jìn)行中的傳輸?shù)?當(dāng)前狀態(tài)信息可被保存到持久性存儲(chǔ)裝置中并在附件重新連接時(shí)訪問,允許傳輸恢復(fù)。
[0125] 圖10示出根據(jù)本發(fā)明的實(shí)施例的實(shí)現(xiàn)回退和持續(xù)的進(jìn)程1000。在框1002處,檢測 到例如鏈路層310中的端口斷開,并且鏈路層310停止向斷開的端口發(fā)送分組。在框1004 處,鏈路層310可確定回退端口是否處于連接狀態(tài)。例如,在一些實(shí)施例中,鏈路層310可 保持端口映射,其包括(針對每個(gè)當(dāng)前連接的端口)連接至該端口的附件的標(biāo)識符;如果同 一附件標(biāo)識符與端口映射中的兩個(gè)端口相關(guān)聯(lián),則兩個(gè)端口中的任一個(gè)可為另一端口的回 退端口。
[0126] 如果回退端口處于連接狀態(tài),則在框1006處,鏈路層310可確定是否使用回退端 口來繼續(xù)緩沖傳輸操作。例如,鏈路層310可經(jīng)由回退端口將特定的控制分組發(fā)送至附件, 從而提供有關(guān)進(jìn)行中的傳輸?shù)男畔?。附件可通過經(jīng)由回退端口發(fā)送分組來響應(yīng):Ack分組 可用于指示傳輸應(yīng)經(jīng)由回退端口來恢復(fù),并且Nack分組可用于指示不應(yīng)恢復(fù)傳輸。
[0127] 如果在框1006處確定傳輸應(yīng)繼續(xù),則在框1008處所述傳輸可使用回退端口而恢 復(fù)。例如,鏈路層310可確定在斷開之前最后被確認(rèn)的分組的序號,并且通過下一連續(xù)分組 而恢復(fù)。可使用相同的緩沖傳輸會(huì)話標(biāo)識符,并且轉(zhuǎn)變?yōu)樾露丝趯彌_傳輸會(huì)話來說是不 可見的。
[0128] 如果回退端口未連接(框1004)或如果確定傳輸不應(yīng)經(jīng)由回退端口而繼續(xù)(框 1006),則在框1010處進(jìn)程1000可確定傳輸是否應(yīng)持續(xù)。在一些實(shí)施例中,在主機(jī)和附件 之間可對持續(xù)進(jìn)行協(xié)商,例如,在識別進(jìn)程期間或在請求數(shù)據(jù)對象傳輸時(shí)。如果傳輸應(yīng)持 續(xù),則在框1012處,傳輸?shù)漠?dāng)前狀態(tài)信息由主機(jī)進(jìn)行保存。該信息可包括例如數(shù)據(jù)對象的 標(biāo)識符、最后發(fā)送的分組的序號(或已知數(shù)據(jù)對象的哪些部分已傳輸?shù)囊恍┢渌甘荆?huì) 話標(biāo)識符、數(shù)據(jù)對象所傳輸至的附件的標(biāo)識符,以及可用于在同一附件重新連接時(shí)重建傳 輸?shù)娜魏纹渌畔?。狀態(tài)信息可保存在主機(jī)設(shè)備中的非易失性存儲(chǔ)裝置中使其在附件重新 連接時(shí)可用。在一些實(shí)施例中,傳輸狀態(tài)信息僅在固定時(shí)間段內(nèi)保存(例如,一天、一周或 30天)以避免狀態(tài)信息的蓄積。
[0129] 如果回退端口和持續(xù)均不可用,則在框1014處,可中止所述緩沖傳輸會(huì)話。在這 種情況下,附件可重新連接并通過從頭啟動(dòng)新的傳輸操作來獲得數(shù)據(jù)對象。
[0130] 本文所述的實(shí)施例可提供較大數(shù)據(jù)對象在兩個(gè)設(shè)備之間的可靠有效的傳輸。將會(huì) 話層與鏈路層分離允許以多個(gè)層次來管理傳輸:會(huì)話層將傳輸作為涉及數(shù)據(jù)對象的單一事 務(wù)來處理,而鏈路層將傳輸作為數(shù)據(jù)分組序列來處理。此外,由于在發(fā)送方和接收方之間存 在點(diǎn)對點(diǎn)連接,因此鏈路層可使用非常簡單的分組結(jié)構(gòu)來減少開銷。例如,數(shù)據(jù)分組可僅僅 包括以下元素:會(huì)話標(biāo)識符、序號、錯(cuò)誤檢測和/或錯(cuò)誤校正代碼、以及對象數(shù)據(jù)。分組無 需明確標(biāo)識發(fā)送方、接收方或其所有關(guān)的數(shù)據(jù)對象。由于分組可為固定長度(例如,由端口 (分組將經(jīng)由其發(fā)送)所支持的最大長度,以便最小化所需的分組數(shù)量),因此有效載荷信 息盡管是可選的但并不需要。另外的元素可包括起始字節(jié)、結(jié)束字節(jié)或用于幫助接收方將 比特流解析到分組中的類似分隔符。
[0131] 盡管相對于特定實(shí)施例對本發(fā)明進(jìn)行了描述,但本領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識到,可 能做出許多修改并且可使特定參考一個(gè)實(shí)施例所描述的特征適用于其他實(shí)施例中。
[0132] 例如,前述【具體實(shí)施方式】涉及將數(shù)據(jù)對象從主機(jī)傳輸?shù)礁郊?。本領(lǐng)域的技術(shù)人員 應(yīng)理解,可將角色顛倒,并且相同的技術(shù)可用于將數(shù)據(jù)從附件傳輸?shù)街鳈C(jī)。更一般地,所述 技術(shù)可用于在其間具有點(diǎn)對點(diǎn)連接的任何兩個(gè)設(shè)備之間傳輸數(shù)據(jù)。
[0133] 以發(fā)送設(shè)備為重點(diǎn),對緩沖傳輸會(huì)話進(jìn)行了描述。應(yīng)當(dāng)理解,接收設(shè)備也可實(shí)現(xiàn)單 獨(dú)的會(huì)話層和鏈路層。因此,例如,接收設(shè)備可響應(yīng)于接收到BXSendReady消息而發(fā)起緩沖 傳輸會(huì)話,并且會(huì)話可生成諸如BXRcvReady和BXDone之類的消息。同時(shí),接收設(shè)備中的鏈 路層可處理數(shù)據(jù)分組的接收、檢查和確認(rèn);接收鏈路層可將實(shí)際數(shù)據(jù)路由到接收緩沖傳輸 會(huì)話或簡單地將其存儲(chǔ)在緩沖區(qū)中并且當(dāng)緩沖區(qū)已準(zhǔn)備好被讀取時(shí)將通知所述接收緩沖 傳輸會(huì)話。所述接收緩沖傳輸會(huì)話可有助于將數(shù)據(jù)移動(dòng)至長期存儲(chǔ)位置和/或?qū)⑺邮盏?數(shù)據(jù)對象傳送至將對其進(jìn)行使用的用戶進(jìn)程。在上述實(shí)例中,緩沖傳輸操作可基于來自接 收設(shè)備的請求而發(fā)起。其他事件也可導(dǎo)致發(fā)起緩沖傳輸操作。例如,在第一設(shè)備上執(zhí)行的 應(yīng)用程序可確定第一設(shè)備連接至第二設(shè)備并且第一設(shè)備將發(fā)送特定數(shù)據(jù)對象至第二設(shè)備。 應(yīng)用程序可指示第一設(shè)備中的較低層發(fā)起緩沖傳輸,而傳輸操作本身可使用上述技術(shù)來實(shí) 現(xiàn)。因此,傳輸操作并不依賴于傳輸請求的來源。
[0134] 在一些實(shí)施例中,緩沖傳輸會(huì)話的發(fā)起與否基于發(fā)送設(shè)備的協(xié)議管理器進(jìn)行確 定。例如,當(dāng)接收到對傳輸數(shù)據(jù)對象的請求時(shí),協(xié)議管理器可確定數(shù)據(jù)對象的大小。在一 些情況下,小數(shù)據(jù)對象可使用消息來傳輸,所述消息能夠使用消息會(huì)話(例如,圖3的會(huì)話 316)進(jìn)行發(fā)送。由于可能存在與發(fā)起緩沖傳輸會(huì)話相關(guān)聯(lián)的開銷,因此在數(shù)據(jù)對象足夠小 的情況下,使用消息會(huì)話來發(fā)送數(shù)據(jù)對象可能更有效。因此,協(xié)議管理器可對數(shù)據(jù)對象的大 小施加閾值。如果大小低于閾值,數(shù)據(jù)對象可經(jīng)由消息會(huì)話進(jìn)行發(fā)送;如果大小超過閾值, 可使用緩沖傳輸會(huì)話。在一些實(shí)施例中,閾值可基于關(guān)于與建立緩沖傳輸會(huì)話相關(guān)聯(lián)的開 銷的具體實(shí)施細(xì)節(jié)、分組的大小和傳輸速率、在消息會(huì)話中用于緩沖傳出數(shù)據(jù)對象的可用 資源等進(jìn)行確定。
[0135] 本公開整體涉及數(shù)據(jù)對象的傳輸,所述數(shù)據(jù)對象可為任何固定大小的數(shù)據(jù)項(xiàng),對 于數(shù)據(jù)的大小或信息內(nèi)容沒有限制。此外,應(yīng)當(dāng)理解,本文所用的"傳輸"涉及將數(shù)據(jù)對象從 發(fā)送方提供到接收方;根據(jù)具體實(shí)施,在傳輸之后發(fā)送方可能保留或不保留原始數(shù)據(jù)對象。 (因此,"傳輸"應(yīng)理解為同時(shí)包括復(fù)制和移動(dòng)數(shù)據(jù)對象。)
[0136] 可使用專用組件和/或可編程處理器和/或其他可編程設(shè)備的任意組合來實(shí)現(xiàn)本 發(fā)明的實(shí)施例。本文所述的各種進(jìn)程可以任何組合方式在相同處理器上或不同處理器上實(shí) 現(xiàn)。在組件被描述為被配置成執(zhí)行某些操作的情況下,可例如通過設(shè)計(jì)電子電路以執(zhí)行操 作、通過對可編程電子電路(諸如微處理器)進(jìn)行編程以執(zhí)行操作或它們的任何組合,來實(shí) 現(xiàn)此類配置。盡管上述實(shí)施例可引用具體硬件和軟件組件,但本領(lǐng)域的技術(shù)人員將會(huì)知道, 也可以使用硬件和/或軟件組件的不同組合,并且被描述為在硬件中實(shí)現(xiàn)的特定操作也可 能在軟件中實(shí)現(xiàn),或反之亦然。
[0137] 可以在各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上編碼并存儲(chǔ)結(jié)合了本發(fā)明各特征的計(jì)算機(jī)程 序;合適的介質(zhì)包括磁盤或磁帶、光學(xué)存儲(chǔ)介質(zhì)諸如光盤(CD)或DVD(數(shù)字多功能盤)、閃 存存儲(chǔ)器,以及其他非暫態(tài)介質(zhì)。(應(yīng)當(dāng)理解,數(shù)據(jù)的"存儲(chǔ)"不同于使用諸如載波之類的暫 態(tài)介質(zhì)的數(shù)據(jù)傳播。)可將用程序代碼編碼的計(jì)算機(jī)可讀介質(zhì)與兼容的電子設(shè)備封裝在一 起,或者所述程序代碼可獨(dú)立于電子設(shè)備提供(例如,經(jīng)由互聯(lián)網(wǎng)下載或作為單獨(dú)封裝的 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì))。
[0138] 因此,盡管已相對于具體實(shí)施例描述了本發(fā)明,但應(yīng)當(dāng)理解,本發(fā)明意在覆蓋以下 權(quán)利要求范圍之內(nèi)的所有修改和等價(jià)形式。
【權(quán)利要求】
1. 一種用于在第一設(shè)備和第二設(shè)備之間傳輸數(shù)據(jù)的方法,所述方法包括: 由所述第一設(shè)備建立與所述第二設(shè)備的點(diǎn)對點(diǎn)通信鏈路; 在所述第一設(shè)備處,接收向所述第二設(shè)備發(fā)送第一數(shù)據(jù)對象的指令; 由所述第一設(shè)備對所述第一數(shù)據(jù)對象進(jìn)行定位; 由所述第一設(shè)備將第一唯一標(biāo)識符分配給第一傳輸會(huì)話; 由所述第一設(shè)備經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路將包含所述第一唯一標(biāo)識符的第一發(fā)送準(zhǔn) 備就緒消息發(fā)送至所述第二設(shè)備; 響應(yīng)于所述第一發(fā)送準(zhǔn)備就緒消息,由所述第一設(shè)備經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路從所述 第二設(shè)備接收第一接收準(zhǔn)備就緒消息;以及 響應(yīng)于所述第一接收準(zhǔn)備就緒消息,由所述第一設(shè)備經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路向所述 第二設(shè)備發(fā)送第一多個(gè)分組,所述第一多個(gè)分組中的每個(gè)分組包括所述第一唯一標(biāo)識符和 所述第一數(shù)據(jù)對象的不同部分,其中所述第一多個(gè)分組包括足以傳輸所述第一數(shù)據(jù)對象的 全部的多個(gè)分組。
2. 根據(jù)權(quán)利要求1所述的方法,其中所述分組不包括發(fā)送方設(shè)備標(biāo)識或接收方設(shè)備標(biāo) 識。
3. 根據(jù)權(quán)利要求1所述的方法,其中發(fā)送所述第一數(shù)據(jù)對象的指令經(jīng)由所述點(diǎn)對點(diǎn)通 信鏈路作為數(shù)據(jù)請求消息從所述第二設(shè)備接收。
4. 根據(jù)權(quán)利要求1所述的方法,還包括: 在發(fā)送所述第一多個(gè)分組時(shí),在所述第一設(shè)備處,接收向所述第二設(shè)備發(fā)送第二數(shù)據(jù) 對象的指令; 由所述第一設(shè)備對所述第二數(shù)據(jù)對象進(jìn)行定位; 由所述第一設(shè)備將第二唯一標(biāo)識符分配給第二傳輸會(huì)話; 由所述第一設(shè)備經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路將包含所述第二唯一標(biāo)識符的第二發(fā)送準(zhǔn) 備就緒消息發(fā)送至所述第二設(shè)備; 響應(yīng)于所述第二發(fā)送準(zhǔn)備就緒消息,由所述第一設(shè)備經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路從所述 第二設(shè)備接收第二接收準(zhǔn)備就緒消息;以及 響應(yīng)于所述第二接收準(zhǔn)備就緒消息,由所述第一設(shè)備經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路向所述 第二設(shè)備發(fā)送第二多個(gè)分組,所述第二多個(gè)分組中的每個(gè)分組包括所述第二唯一標(biāo)識符和 所述第二數(shù)據(jù)對象的不同部分,其中所述第二多個(gè)分組包括足以傳輸所述第二數(shù)據(jù)對象的 全部的多個(gè)分組, 其中所述第一多個(gè)分組中的至少一些和所述第二多個(gè)分組中的至少一些在所述點(diǎn)對 點(diǎn)通信鏈路上交織。
5. 根據(jù)權(quán)利要求1所述的方法,還包括: 在發(fā)送所述第一多個(gè)分組時(shí),從所述第二設(shè)備接收暫停消息;以及 響應(yīng)于所述暫停消息,停止發(fā)送所述第一多個(gè)分組。
6. -種用于從第一設(shè)備向第二設(shè)備傳輸數(shù)據(jù)的方法,所述方法包括: 由所述第二設(shè)備建立與所述第一設(shè)備的點(diǎn)對點(diǎn)通信鏈路; 在所述第二設(shè)備處,接收來自所述第一設(shè)備的發(fā)送準(zhǔn)備就緒消息,所述發(fā)送準(zhǔn)備就緒 消息指示所述第一設(shè)備已準(zhǔn)備好向所述第二設(shè)備傳輸數(shù)據(jù)對象,所述發(fā)送準(zhǔn)備就緒消息包 括用于傳輸所述數(shù)據(jù)對象的會(huì)話標(biāo)識符; 由所述第二設(shè)備將接收準(zhǔn)備就緒消息發(fā)送至所述第一設(shè)備,所述接收準(zhǔn)備就緒消息指 示所述第二設(shè)備已準(zhǔn)備好接收所述數(shù)據(jù)對象; 繼發(fā)送所述接收準(zhǔn)備就緒消息之后,由所述第二設(shè)備接收來自所述第一設(shè)備的多個(gè)分 組,所述多個(gè)分組中的每個(gè)分組包括標(biāo)頭和有效載荷,所述標(biāo)頭包括所述會(huì)話標(biāo)識符和序 號,其中所述多個(gè)分組中的每個(gè)分組具有不同的序號; 由所述第二設(shè)備基于所述會(huì)話標(biāo)識符確定所述多個(gè)分組中的每個(gè)分組的所述有效載 荷包含所述數(shù)據(jù)對象的一部分;以及 由所述第二設(shè)備將所述多個(gè)分組中的每個(gè)分組的所述有效載荷存儲(chǔ)在存儲(chǔ)介質(zhì)中,其 中用于存儲(chǔ)所述多個(gè)分組中的每個(gè)分組的所述有效載荷的位置至少部分地基于所述分組 的所述序號來確定。
7. 根據(jù)權(quán)利要求6所述的方法,其中所述發(fā)送準(zhǔn)備就緒消息包括指示待傳輸?shù)乃鰯?shù) 據(jù)對象的大小的信息,所述方法還包括: 在發(fā)送所述接收準(zhǔn)備就緒消息之前,由所述第二設(shè)備分配所述存儲(chǔ)介質(zhì)中的足以包含 所述數(shù)據(jù)對象的空間,所述分配基于指示所述數(shù)據(jù)對象的大小的所述信息。
8. 根據(jù)權(quán)利要求6所述的方法,還包括: 由所述第二設(shè)備確定是否已接收所述數(shù)據(jù)對象的所有部分;以及 響應(yīng)于確定已接收所述數(shù)據(jù)對象的所有部分,由所述第二設(shè)備向所述第一設(shè)備發(fā)送指 示所述傳輸完成的完成消息。
9. 根據(jù)權(quán)利要求6所述的方法,其中所述多個(gè)分組中的每個(gè)分組包括錯(cuò)誤檢測代碼, 所述方法還包括: 由所述第二設(shè)備檢查所述多個(gè)分組中的第一子集的每個(gè)分組以檢測錯(cuò)誤,所述檢查使 用所述錯(cuò)誤檢測代碼; 在未檢測到所述多個(gè)分組中的所述第一子集中存在錯(cuò)誤的情況下,由所述第二設(shè)備將 確認(rèn)分組發(fā)送至所述第一設(shè)備;以及 在檢測到所述多個(gè)分組中的所述第一子集中存在至少一個(gè)錯(cuò)誤的情況下,由所述第二 設(shè)備將否定確認(rèn)分組發(fā)送至所述第一設(shè)備。
10. 根據(jù)權(quán)利要求6所述的方法,還包括: 繼建立所述連接之后,由所述第二設(shè)備向所述第一設(shè)備發(fā)送對所述數(shù)據(jù)對象的請求, 其中響應(yīng)于對所述數(shù)據(jù)對象的所述請求,接收所述發(fā)送準(zhǔn)備就緒消息。
11. 根據(jù)權(quán)利要求6所述的方法,還包括: 在接收所述多個(gè)分組時(shí),由所述第二設(shè)備向所述第一設(shè)備發(fā)送暫停消息,其中響應(yīng)于 所述暫停消息,所述第一設(shè)備暫停所述多個(gè)分組的發(fā)送;以及 在發(fā)送所述暫停消息之后,由所述第二設(shè)備向所述第一設(shè)備發(fā)送恢復(fù)消息,其中響應(yīng) 于所述恢復(fù)消息,所述第一設(shè)備恢復(fù)所述多個(gè)分組的發(fā)送。
12. -種電子設(shè)備,包括: 被配置為建立與接收方設(shè)備的點(diǎn)對點(diǎn)通信鏈路的接口;和 耦接至所述接口的處理子系統(tǒng),所述處理子系統(tǒng)被配置為: 發(fā)起多個(gè)會(huì)話,所述多個(gè)會(huì)話包括被配置為經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路將數(shù)據(jù)對象傳輸 至所述接收方設(shè)備的緩沖傳輸會(huì)話,所述多個(gè)會(huì)話中的每個(gè)會(huì)話具有為其分配的唯一標(biāo)識 符; 將所述數(shù)據(jù)對象的至少一部分加載到緩沖區(qū)中; 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路將發(fā)送準(zhǔn)備就緒消息發(fā)送至所述接收方設(shè)備,所述發(fā)送準(zhǔn)備 就緒消息包括分配給所述緩沖傳輸會(huì)話的所述唯一標(biāo)識符; 響應(yīng)于所述發(fā)送準(zhǔn)備就緒消息,經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路接收來自所述接收方設(shè)備的 接收準(zhǔn)備就緒消息;以及 響應(yīng)于所述接收準(zhǔn)備就緒消息,經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路向所述接收方設(shè)備發(fā)送分組 序列,其中所述序列中的每個(gè)分組包括序號、分配給所述緩沖傳輸會(huì)話的所述唯一標(biāo)識符 和所述數(shù)據(jù)對象的從所述緩沖區(qū)讀取的一部分,其中所述分組序列包括對應(yīng)于所述數(shù)據(jù)對 象的每個(gè)部分的分組。
13. 根據(jù)權(quán)利要求12所述的電子設(shè)備,其中所述處理子系統(tǒng)還被配置為執(zhí)行應(yīng)用程 序,并且其中所述緩沖傳輸會(huì)話是響應(yīng)于來自所述應(yīng)用程序的向所述接收方設(shè)備傳輸所述 數(shù)據(jù)對象的指令而發(fā)起的。
14. 根據(jù)權(quán)利要求12所述的電子設(shè)備,其中所述處理子系統(tǒng)還被配置為從所述接收方 設(shè)備接收對所述數(shù)據(jù)對象的請求,并且其中所述緩沖傳輸會(huì)話是響應(yīng)于接收所述請求而發(fā) 起的。
15. 根據(jù)權(quán)利要求12所述的電子設(shè)備,其中所述電子設(shè)備為便攜式設(shè)備。
16. 根據(jù)權(quán)利要求15所述的電子設(shè)備,其中所述接口包括連接器并且所述接收方設(shè)備 為所述便攜式電子設(shè)備的連接至所述連接器的附件。
17. 根據(jù)權(quán)利要求12所述的電子設(shè)備,其中所述處理子系統(tǒng)還被配置為對鏈路層進(jìn)行 定義,并且其中發(fā)送所述分組序列是由所述鏈路層執(zhí)行的。
18. -種電子設(shè)備,包括: 被配置為建立與發(fā)送方設(shè)備的點(diǎn)對點(diǎn)通信鏈路的接口; 被配置為存儲(chǔ)數(shù)據(jù)的存儲(chǔ)介質(zhì);以及 耦接至所述接口和所述存儲(chǔ)介質(zhì)的處理子系統(tǒng),所述處理子系統(tǒng)被配置為: 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路向所述發(fā)送方設(shè)備發(fā)送對數(shù)據(jù)對象的請求; 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路從所述發(fā)送方設(shè)備接收指示所述發(fā)送方設(shè)備已準(zhǔn)備好發(fā)送 所述數(shù)據(jù)對象的發(fā)送準(zhǔn)備就緒消息,所述發(fā)送準(zhǔn)備就緒消息包括與所述數(shù)據(jù)對象的傳輸相 關(guān)聯(lián)的會(huì)話標(biāo)識符; 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路將指示所述電子設(shè)備已準(zhǔn)備好接收所述數(shù)據(jù)對象的接收準(zhǔn) 備就緒消息發(fā)送至所述發(fā)送方設(shè)備; 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路從所述發(fā)送方設(shè)備接收作為由所述發(fā)送方設(shè)備產(chǎn)生的分組 序列的所述數(shù)據(jù)對象,所述分組序列中的每個(gè)分組標(biāo)記有與所述數(shù)據(jù)對象的傳輸相關(guān)聯(lián)的 會(huì)話標(biāo)識符并且包括所述數(shù)據(jù)對象的作為有效載荷的一部分;以及 將所接收的分組中的每個(gè)分組的所述有效載荷作為所述數(shù)據(jù)對象的一部分存儲(chǔ)在所 述存儲(chǔ)介質(zhì)中。
19. 根據(jù)權(quán)利要求18所述的電子設(shè)備,其中所述分組序列中的每個(gè)分組包括序號并且 其中所述處理子系統(tǒng)還被配置為至少部分地基于所述分組的所述序號來確定用于存儲(chǔ)每 個(gè)分組的所述有效載荷的存儲(chǔ)介質(zhì)內(nèi)的位置。
20. 根據(jù)權(quán)利要求18所述的電子設(shè)備,其中所述處理子系統(tǒng)還被配置為: 確定所述分組序列的子集是否被無錯(cuò)誤地接收; 在所述子集被無錯(cuò)誤地接收的情況下,經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路向所述發(fā)送方設(shè)備發(fā) 送確認(rèn)分組;以及 在所述子集并非被無錯(cuò)誤地接收的情況下,經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路向所述發(fā)送方設(shè) 備發(fā)送否定確認(rèn)分組。
21. -種存儲(chǔ)有程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼包括指令,所述指令在 被電子設(shè)備中的處理子系統(tǒng)執(zhí)行時(shí)使得所述處理子系統(tǒng)執(zhí)行一種方法,所述方法包括: 建立與接收方設(shè)備的點(diǎn)對點(diǎn)通信鏈路; 確定第一數(shù)據(jù)對象將被傳輸至所述接收方設(shè)備; 發(fā)起第一緩沖傳輸會(huì)話以管理所述第一數(shù)據(jù)對象至所述接收方設(shè)備的所述傳輸,其中 發(fā)起所述第一緩沖傳輸會(huì)話包括將第一唯一標(biāo)識符分配給所述第一緩沖傳輸會(huì)話; 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路從所述第一緩沖傳輸會(huì)話向所述接收方設(shè)備傳送指示所述 第一唯一標(biāo)識符與所述第一數(shù)據(jù)對象的傳輸相關(guān)聯(lián)的消息;以及 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路向所述接收方設(shè)備發(fā)送第一多個(gè)分組,所述第一多個(gè)分組中 的每個(gè)分組包括所述第一唯一標(biāo)識符,和所述第一數(shù)據(jù)對象的不同部分,其中所述第一多 個(gè)分組包括足以傳輸所述第一數(shù)據(jù)對象的全部的多個(gè)分組。
22. 根據(jù)權(quán)利要求21所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述方法還包括: 確定第二數(shù)據(jù)對象將被發(fā)送至所述第二設(shè)備; 發(fā)起第二緩沖傳輸會(huì)話以管理所述第二數(shù)據(jù)對象至所述接收方設(shè)備的傳輸,其中發(fā)起 所述第二緩沖傳輸會(huì)話包括將第二唯一標(biāo)識符分配給所述第二緩沖傳輸會(huì)話; 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路,從所述第二緩沖傳輸會(huì)話向所述接收方設(shè)備傳送指示所述 第二唯一標(biāo)識符與所述第二數(shù)據(jù)對象的傳輸相關(guān)聯(lián)的消息;以及 經(jīng)由所述點(diǎn)對點(diǎn)通信鏈路向所述接收方設(shè)備發(fā)送第二多個(gè)分組,所述第二多個(gè)分組中 的每個(gè)分組包括所述第二唯一標(biāo)識符和所述第二數(shù)據(jù)對象的不同部分,其中所述第二多個(gè) 分組包括足以傳輸所述第二數(shù)據(jù)對象的全部的多個(gè)分組, 其中所述第一多個(gè)分組和所述第二多個(gè)分組在所述點(diǎn)對點(diǎn)通信鏈路上交織。
23. 根據(jù)權(quán)利要求21所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中發(fā)送所述第一多個(gè)分組是由鏈 路層執(zhí)行的而無需所述緩沖傳輸會(huì)話的干預(yù)。
24. 根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述方法還包括: 在發(fā)送所述第一多個(gè)分組時(shí),在所述鏈路層處檢測到所述點(diǎn)對點(diǎn)通信鏈路已丟失; 響應(yīng)于檢測到所述點(diǎn)對點(diǎn)通信鏈路已丟失,確定是否應(yīng)當(dāng)在已與同一接收方設(shè)備建立 的另一點(diǎn)對點(diǎn)通信鏈路上繼續(xù)所述第一數(shù)據(jù)對象的傳輸;以及 在應(yīng)當(dāng)繼續(xù)所述第一數(shù)據(jù)對象的傳輸?shù)那闆r下,使用所述另一點(diǎn)對點(diǎn)通信鏈路來恢復(fù) 對所述第一多個(gè)分組的發(fā)送。
25. 根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述方法還包括: 在發(fā)送所述第一多個(gè)分組時(shí),在所述鏈路層處檢測到所述點(diǎn)對點(diǎn)通信鏈路已丟失; 響應(yīng)于檢測到所述點(diǎn)對點(diǎn)通信鏈路已丟失,確定是否隨后應(yīng)恢復(fù)所述第一數(shù)據(jù)對象的 傳輸;以及 在隨后應(yīng)恢復(fù)所述第一數(shù)據(jù)對象的傳輸?shù)那闆r下,將指示所述傳輸?shù)漠?dāng)前狀態(tài)的信息 存儲(chǔ)在所述電子設(shè)備本身的存儲(chǔ)介質(zhì)中,其中所存儲(chǔ)的信息在重新建立了與所述接收方設(shè) 備的所述點(diǎn)對點(diǎn)通信鏈路之后可用于恢復(fù)所述第一數(shù)據(jù)對象的傳輸。
【文檔編號】H04L29/08GK104322037SQ201380026550
【公開日】2015年1月28日 申請日期:2013年5月2日 優(yōu)先權(quán)日:2012年5月24日
【發(fā)明者】E·W·福 申請人:蘋果公司