国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于給網(wǎng)絡(luò)中多個設(shè)備傳送數(shù)據(jù)的系統(tǒng)和方法

      文檔序號:7990594閱讀:301來源:國知局
      用于給網(wǎng)絡(luò)中多個設(shè)備傳送數(shù)據(jù)的系統(tǒng)和方法
      【專利摘要】本發(fā)明提供了一種向多個設(shè)備傳送數(shù)據(jù)的系統(tǒng)和方法。在一個實例中,系統(tǒng)被配置成將數(shù)據(jù)廣播到設(shè)備組中。該設(shè)備組中的每一個設(shè)備都被配置成用來檢查消息并本地存儲該消息的內(nèi)容。此外,該設(shè)備組被配置以致該組設(shè)備的單個設(shè)備響應(yīng)于每個消息。
      【專利說明】用于給網(wǎng)絡(luò)中多個設(shè)備傳送數(shù)據(jù)的系統(tǒng)和方法
      [0001]背景【技術(shù)領(lǐng)域】
      [0002]本【技術(shù)領(lǐng)域】一般涉及計算機化設(shè)備之間的通信,并更具體地涉及用于在通過總線連接的設(shè)備之間傳送數(shù)據(jù)的系統(tǒng)和方法。
      【背景技術(shù)】
      [0003]對于采用總線拓?fù)涞木W(wǎng)絡(luò)存在許多通信協(xié)議。這些協(xié)議中的大多數(shù)支持設(shè)備之間的點對點和廣播通信,并包括用于處理通信中的錯誤的過程。然而,由于仲裁總線競爭和其它形式的開銷的復(fù)雜性,用來執(zhí)行握手和遞送驗證的方法在點對點和廣播通信之間有所不同。
      [0004]采用總線拓?fù)涞囊恍┚W(wǎng)絡(luò)標(biāo)準(zhǔn)在市場上已經(jīng)非常成功。例如,基于實施MODBUS協(xié)議的網(wǎng)絡(luò)的RS-485在工業(yè)應(yīng)用上具有廣泛的安裝基礎(chǔ)。這些網(wǎng)絡(luò)獲得成功有各種各樣的原因,這些原因中的一些包括易于實施、低成本的材料和在有噪聲的工業(yè)環(huán)境中的穩(wěn)定的性能。采用了總線拓?fù)涞钠渌W(wǎng)絡(luò)標(biāo)準(zhǔn)包括CAN、I2C和許多基于無線的網(wǎng)絡(luò),如無線局域網(wǎng)(WLAN)、ZigBee 和藍(lán)牙(Bluetooth)。

      【發(fā)明內(nèi)容】

      [0005]本文所公開的各個方面和實例呈現(xiàn)了能夠使通過共享總線互連的設(shè)備以廣播模式有效且高效地交換數(shù)據(jù)的數(shù)據(jù)傳送協(xié)議。如本文所述,術(shù)語“廣播”涉及同時向多個設(shè)備傳送數(shù)據(jù)的動作。如以下進(jìn)一步地討論,這些數(shù)據(jù)傳送協(xié)議中的至少一些提供了旋轉(zhuǎn)響應(yīng)時間表,在該旋轉(zhuǎn)響應(yīng)時間表中,接收數(shù)據(jù)的設(shè)備輪流向提供數(shù)據(jù)的設(shè)備報告進(jìn)程。以這種方式,數(shù)據(jù)傳送協(xié)議使得接收設(shè)備能夠及時地提供關(guān)于失敗的數(shù)據(jù)通信的反饋,而無需要求從每個設(shè)備得到對每個通信數(shù)據(jù)包的響應(yīng)的不必要的開銷。
      [0006]根據(jù)一個方面,提供了一種用于向多個設(shè)備傳送數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括存儲器和連接到該存儲器上的至少一個處理器。該系統(tǒng)被配置成:識別多個設(shè)備的設(shè)備子集,該設(shè)備子集具有基數(shù)并包括第一設(shè)備和第二設(shè)備;在存儲器中分配具有基于設(shè)備子集的基數(shù)的尺寸的緩沖器;將一組數(shù)據(jù)包存儲在緩沖器中,該組數(shù)據(jù)包具有基數(shù)并包括第一數(shù)據(jù)包和第二數(shù)據(jù)包,該組數(shù)據(jù)包的每一個數(shù)據(jù)包在該組數(shù)據(jù)包內(nèi)都具序數(shù)值;將第一數(shù)據(jù)包傳送到設(shè)備子集的所有設(shè)備;從第一設(shè)備接收第一響應(yīng),第一響應(yīng)指示第一設(shè)備成功地接收了第一數(shù)據(jù)包;將第二數(shù)據(jù)包傳送到設(shè)備子集的所有設(shè)備;從第二設(shè)備接收第二響應(yīng),第二響應(yīng)指示第二設(shè)備沒有成功地接收至少一個數(shù)據(jù)包;響應(yīng)于接收到的第二響應(yīng),向設(shè)備子集的所有設(shè)備傳送第一數(shù)據(jù)包;以及響應(yīng)于接收到的第二響應(yīng),向設(shè)備子集的所有設(shè)備傳送第二數(shù)據(jù)包。
      [0007]在該系統(tǒng)中,緩沖器的大小可以等于設(shè)備子集的基數(shù)乘以第一數(shù)據(jù)包的大小。該系統(tǒng)還可以被配置成通過使用xmodem協(xié)議將第一數(shù)據(jù)包傳送到設(shè)備子集的所有設(shè)備。另夕卜,該系統(tǒng)還可以被配置成:將離散節(jié)點號分配給設(shè)備子集的每個設(shè)備,并向設(shè)備子集的每個設(shè)備傳送指示設(shè)備子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號的數(shù)據(jù)。
      [0008]設(shè)備子集的每個設(shè)備可以包括存儲器和連接到該存儲器上的至少一個處理器。每個設(shè)備都可以被配置成:接收指示設(shè)備子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號的數(shù)據(jù);接收該組數(shù)據(jù)包的數(shù)據(jù)包;將該數(shù)據(jù)包存儲在存儲器中并發(fā)送響應(yīng)以選擇具序數(shù)值的數(shù)據(jù)包,該序數(shù)值與子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號成預(yù)定關(guān)系。此外,設(shè)備子集的每個設(shè)備可以被進(jìn)一步配置成:確定指示該組數(shù)據(jù)包的被接收的數(shù)據(jù)包先前被存儲在存儲器中的結(jié)果;響應(yīng)于確定該結(jié)果,接收該組數(shù)據(jù)包的另一數(shù)據(jù)包,而不將所接收的數(shù)據(jù)包存儲在所述存儲器中。
      [0009]該設(shè)備子集的第二設(shè)備可以被配置成:確定第一結(jié)果,該第一結(jié)果指示第二設(shè)備沒有成功地接收第一數(shù)據(jù)包;將指示第一結(jié)果的數(shù)據(jù)存儲在第二設(shè)備的存儲器中;確定指示第一數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果不等于分配給第二設(shè)備的離散節(jié)點號的第二結(jié)果;響應(yīng)于確定第二結(jié)果,延遲第二響應(yīng)的傳送;確定指示第二數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果等于分配給第二設(shè)備的離散節(jié)點號的第三結(jié)果;以及響應(yīng)于確定第三結(jié)果,傳送第二響應(yīng)。
      [0010]在另一個方面,提供了一種用于通過使用計算機將數(shù)據(jù)傳送到多個設(shè)備的計算機實現(xiàn)方法。該計算機包括存儲器和連接到存儲器上的至少一個處理器。該方法包括以下動作:通過計算機識別多個設(shè)備的設(shè)備子集,該設(shè)備子集具有基數(shù)并包括第一設(shè)備和第二設(shè)備;在存儲器中分配具有基于設(shè)備子集的基數(shù)的大小的緩沖器;將一組數(shù)據(jù)包存儲在緩沖器中,該組數(shù)據(jù)包具有基數(shù)并包括第一數(shù)據(jù)包和第二數(shù)據(jù)包,該組數(shù)據(jù)包的每個數(shù)據(jù)包在該組數(shù)據(jù)包內(nèi)都具序數(shù)值;將第一數(shù)據(jù)包傳送到設(shè)備子集的所有設(shè)備;從第一設(shè)備接收第一響應(yīng),第一響應(yīng)指示第一設(shè)備成功地接收了第一數(shù)據(jù)包;將第二數(shù)據(jù)包傳送到設(shè)備子集的所有設(shè)備;從第二設(shè)備接收第二響應(yīng),第二響應(yīng)指示第二設(shè)備沒有成功地接收至少一個數(shù)據(jù)包;響應(yīng)于接收到的第二響應(yīng),向設(shè)備子集的所有設(shè)備傳送第一數(shù)據(jù)包;以及響應(yīng)于接收到的第二響應(yīng),向設(shè)備子集的所有設(shè)備傳送第二數(shù)據(jù)包。
      [0011 ] 在該方法中,將該組數(shù)據(jù)包存儲在緩沖器中的動作可以包括存儲具有等于設(shè)備子集的基數(shù)乘以第一數(shù)據(jù)包的尺寸的總尺寸的一組數(shù)據(jù)包的動作。將第一數(shù)據(jù)包傳送到設(shè)備子集的所有設(shè)備的動作可以包括使用Xmodem協(xié)議進(jìn)行傳送的動作。另外,該方法可以進(jìn)一步包括以下動作:將離散節(jié)點號分配給設(shè)備子集的每個設(shè)備;以及向設(shè)備子集的每個設(shè)備傳送指示設(shè)備子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號的數(shù)據(jù)。
      [0012]另外,該方法可以進(jìn)一步包括以下動作:通過每個設(shè)備接收指示設(shè)備子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號的數(shù)據(jù);通過每個設(shè)備接收該組數(shù)據(jù)包的數(shù)據(jù)包;通過每個設(shè)備將數(shù)據(jù)包存儲在設(shè)備的存儲器中;以及通過每個設(shè)備傳送響應(yīng)以選擇具序數(shù)值的數(shù)據(jù)包,該序數(shù)值與子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號成預(yù)定關(guān)系。該方法還可以包括以下動作:通過設(shè)備子集的至少一個設(shè)備來確定結(jié)果,該結(jié)果指示該組數(shù)據(jù)包的被接收的數(shù)據(jù)包先前被存儲在至少一個設(shè)備的存儲器中;以及響應(yīng)于確定該結(jié)果,通過至少一個設(shè)備接收該組數(shù)據(jù)包的另一個數(shù)據(jù)包,而不用將所接收的數(shù)據(jù)包存儲在至少一個設(shè)備的存儲器中。此外,該方法可以包括以下動作:通過第二設(shè)備確定指示第二設(shè)備沒有成功地接收第一數(shù)據(jù)包的第一結(jié)果;將指示第一結(jié)果的數(shù)據(jù)存儲在第二設(shè)備的存儲器中;通過第二設(shè)備確定指示第一數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果不等于分配給第二設(shè)備的離散節(jié)點號的第二結(jié)果;響應(yīng)于確定第二結(jié)果,通過第二設(shè)備延遲第二響應(yīng)的傳送;通過第二設(shè)備確定指示第二數(shù)據(jù)包的序數(shù)值對子集的基數(shù)取模的結(jié)果等于分配給第二設(shè)備的離散節(jié)點號的第三結(jié)果;以及響應(yīng)于確定第三結(jié)果,通過第二設(shè)備傳送第二響應(yīng)。
      [0013]根據(jù)另一實例,提供了一種非暫時性計算機可讀介質(zhì)。計算機可讀介質(zhì)已將用于向多個設(shè)備傳送數(shù)據(jù)的指令序列存儲在其上。該指令包括一些指令,這些指令將使至少一個處理器用來:識別多個設(shè)備的設(shè)備子集,該設(shè)備子集具有基數(shù)并包括第一設(shè)備和第二設(shè)備;將緩沖器分配在連接到至少一個處理器上的存儲器中,緩沖器具有基于設(shè)備子集的基數(shù)的尺寸;將一組數(shù)據(jù)包存儲在緩沖器中,該組數(shù)據(jù)包具有基數(shù)并包括第一數(shù)據(jù)包和第二數(shù)據(jù)包,該組數(shù)據(jù)包的每個數(shù)據(jù)包在該組數(shù)據(jù)包內(nèi)都具序數(shù)值;將第一數(shù)據(jù)包傳送到設(shè)備子集的所有設(shè)備;從第一設(shè)備接收第一響應(yīng),第一響應(yīng)指示第一設(shè)備成功地接收了第一數(shù)據(jù)包;將第二數(shù)據(jù)包傳送到設(shè)備子集的所有設(shè)備,從第二設(shè)備接收第二響應(yīng),第二響應(yīng)指示第二設(shè)備沒有成功地接收至少一個數(shù)據(jù)包;響應(yīng)于接收到的第二響應(yīng),向設(shè)備子集的所有設(shè)備傳送第一數(shù)據(jù)包;以及響應(yīng)于接收到的第二響應(yīng),向設(shè)備子集的所有設(shè)備傳送第二數(shù)據(jù)包。
      [0014]另外,指令的序列可以包括會使至少一個處理器使用xmodem協(xié)議進(jìn)行傳送的指令。而且,指令的序列可以包括一些指令,這些指令將使至少一個處理器用來:將離散節(jié)點號分配給設(shè)備子集的每個設(shè)備;并將指示設(shè)備子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號的數(shù)據(jù)傳送給設(shè)備子集的每個設(shè)備。此外,指令的序列可以包括一些指令,這些指令會使每個設(shè)備用來:接收指示設(shè)備子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號的數(shù)據(jù);接收該組數(shù)據(jù)包的數(shù)據(jù)包;存儲數(shù)據(jù)包并傳送響應(yīng)以選擇具有序數(shù)值的數(shù)據(jù)包,該序數(shù)值與子集的基數(shù)和分配給該設(shè)備的離散節(jié)點號成預(yù)定關(guān)系。此外,指令的序列可以包括一些指令,這些指令將使設(shè)備子集的至少一個設(shè)備用來:確定指示至少一個設(shè)備之前成功地接收了該組數(shù)據(jù)包的被接收的數(shù)據(jù)包的結(jié)果;并響應(yīng)于確定該結(jié)果接收該組數(shù)據(jù)包的另一數(shù)據(jù)包,而不用將接收的數(shù)據(jù)包存儲在至少一個設(shè)備中。另外,該指令的序列可以包括一些指令,這些指令會使第二設(shè)備用來:確定指示第二設(shè)備沒有成功地接收第一數(shù)據(jù)包的第一結(jié)果;存儲指示第一結(jié)果的數(shù)據(jù);確定指示第一數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果不等于分配給第二設(shè)備的離散節(jié)點號的第二結(jié)果;響應(yīng)于確定第二結(jié)果,延遲第二響應(yīng)的傳送;確定指示第二數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果等于分配給第二設(shè)備的離散節(jié)點號的第三結(jié)果;以及響應(yīng)于確定第三結(jié)果,傳送第二響應(yīng)。
      [0015]這些示例性方面和實施例的其它方面、實例和優(yōu)點將在下文中詳細(xì)的討論。此外,要理解的是,前面的信息和下面的詳細(xì)描述只是各個方面和實例的說明性范例,而且其目的是為理解所要求保護(hù)的各方面和實例的性質(zhì)和特征提供綜述或框架。本文所公開的任何實例都可以與以任何方式與本文所公開的目標(biāo)、目的和需求中的至少一個相一致的任何其它實例相結(jié)合,以及提到“實例”、“一些實例”、“另一實例”、“各種實例”、“一個實例”、“至少一個實例”、“此實例和其它實例”等并不一定是相互排斥的,而是旨在表明結(jié)合該實例所描述的特定的特征、結(jié)構(gòu)或特性可以被包括在至少一個實例中。本文中出現(xiàn)的此類術(shù)語不一定都指的是同一實例?!緦@綀D】

      【附圖說明】
      [0016]下面參照附圖討論至少一個實例的各個方面,其中各個附圖并不是按比例繪制的。附圖被包括在內(nèi),為的是提供說明和進(jìn)一步理解各個方面和實例,并且被合并在此說明書中且構(gòu)成此說明書的一部份,但并不旨在作為限制特定實例的定義。這些附圖連同該說明書的其余部分用來解釋所描述的并提出權(quán)利要求的方面和實施例的原理和操作。在附圖中,在各圖中示出的每個相同的或近似相同的組件用相似的附圖標(biāo)記來表示。為了清楚起見,在每個附圖中,并不是每個組件都被標(biāo)記。在附圖中:
      [0017]圖1是數(shù)據(jù)傳送系統(tǒng)的一個實例的功能示意圖;
      [0018]圖2是可以執(zhí)行本文所公開的過程和功能的計算機系統(tǒng)的一個實例的功能示意圖;
      [0019]圖3是描述了用于向目標(biāo)設(shè)備提供數(shù)據(jù)的過程的流程圖;
      [0020]圖4是示出了用于建立通信會話的過程的流程圖;
      [0021]圖5是示出了用于將數(shù)據(jù)包發(fā)送到目標(biāo)設(shè)備的過程的流程圖;
      [0022]圖6是示出了終止通信會話的過程的流程圖;
      [0023]圖7是描述了用于從源設(shè)備接收數(shù)據(jù)的過程的流程圖;
      [0024]圖8是示出了用于初始化通信會話的過程的流程圖;
      [0025]圖9是示出了用于從源設(shè)備接收數(shù)據(jù)包的過程的流程圖;以及
      [0026]圖10是示出了結(jié)束通信會話的流程圖。
      【具體實施方式】
      [0027]在至少一個實例中,通過共享總線網(wǎng)絡(luò)彼此連接的設(shè)備使用協(xié)議進(jìn)行通信,該協(xié)議使得每個接收數(shù)據(jù)的設(shè)備能夠在定期的、例行的基礎(chǔ)上報告進(jìn)程,但并不要求每個設(shè)備對接收的每個數(shù)據(jù)包都報告進(jìn)程。從而,該實例體現(xiàn)了一種理解,即使在嘈雜的網(wǎng)絡(luò)環(huán)境中,大多數(shù)的數(shù)據(jù)通信還是成功的。在這種情況下,確認(rèn)(在本文中稱為“ACK”)消耗相當(dāng)多的計算資源,而不提供成比例的量值。因此,盡管用來提供反饋的定期的、例行的機會是必要的,以避免重新發(fā)送大量的數(shù)據(jù)集合的需要,但是這些機會并不需要提供所接收的數(shù)據(jù)的每個單元。
      [0028]本文所討論的方法和裝置的實例并不將其應(yīng)用局限于下文提出的或附圖所示的結(jié)構(gòu)細(xì)節(jié)和組件布置。該方法和裝置能夠在其它實例中實現(xiàn)而且能夠以各種不同的方式被執(zhí)行或被實施。本文所提供的特定實施例的實例僅用于說明的目的,且不旨在限制。特別是,結(jié)合任何一個或多個實例一起討論的動作、組件、元件和特征并不旨在排除任何其它實施例的類似作用。
      [0029]同樣,本文所使用的措辭和術(shù)語是出于解釋說明的目的,不應(yīng)該被看作限制。在本文以單數(shù)形式被提及的對系統(tǒng)和方法的實例、組件、元件或動作的任何引用也可以包含包括復(fù)數(shù)的實例,而在本文以復(fù)數(shù)形式對任何實例、組件、元件或動作的任何引用也包含僅包括單數(shù)的實例。單數(shù)或復(fù)數(shù)形式的引用并不旨在限制當(dāng)前公開的系統(tǒng)或方法、它們的組件、動作或元件。本文所使用的“包括”、“包含” “具有”、“含有”、“涉及”及其變體是指包括隨后列出的項目及其等同物以及附加項目。對“或”的引用可以理解為包括在內(nèi),使得所述的使用“或”的任何術(shù)語可以表示所述術(shù)語的任何一個、多于一個和所有。[0030]數(shù)據(jù)傳送系統(tǒng)
      [0031]本文所公開的各種實例在一個或多個計算機系統(tǒng)上實施數(shù)據(jù)傳送系統(tǒng)。圖1示出了這些實例中的一個,數(shù)據(jù)傳送系統(tǒng)100。如圖所示,數(shù)據(jù)傳送系統(tǒng)100包括用戶102和通過網(wǎng)絡(luò)112連接到設(shè)備106、108和110的服務(wù)器104。在所示的實例中,服務(wù)器104通過使用計算機系統(tǒng)來進(jìn)行實施,如下面參考圖2進(jìn)一步討論的計算機系統(tǒng)。在一些實例中,設(shè)備106、108和110也是計算機系統(tǒng)。如圖所示,服務(wù)器104包括通信管理器114且設(shè)備106、108和110分別包括通信客戶端116、118和120。
      [0032]在其它實例中,設(shè)備106、108和110包括計算資源、但主要用作設(shè)備而非計算機系統(tǒng)。例如,在這些實例中,設(shè)備106、108和110可以為不間斷電源、電流變壓器或智能電池和無線Zigbee設(shè)備等等。因此,在這些實例中,限制和調(diào)整包括在設(shè)備106、108和110中的計算資源以支持這些設(shè)備的操作。
      [0033]網(wǎng)絡(luò)112可以包括任何通信網(wǎng)絡(luò),計算機系統(tǒng)通過該通信網(wǎng)絡(luò)可以發(fā)送或提供信息。例如,網(wǎng)絡(luò)112可以是公共網(wǎng)絡(luò),諸如因特網(wǎng),并且可以包括其它公共網(wǎng)絡(luò)或私有網(wǎng)絡(luò),諸如局域網(wǎng)(LANs)、廣域網(wǎng)(WANs)、外部網(wǎng)和內(nèi)部網(wǎng)。在一些實施例中,網(wǎng)絡(luò)112采用非常適用于工業(yè)應(yīng)用或民用應(yīng)用的標(biāo)準(zhǔn)。這些網(wǎng)絡(luò)標(biāo)準(zhǔn)包括通信協(xié)議(諸如以太網(wǎng)上的C-BUS?和 TCP/IP)、串行協(xié)議(諸如串行線、DMX512 和 JC1-N2 上的 MODBUSASCII/RTU、MODBUS),以及無線協(xié)議(諸如ZigBee和藍(lán)牙)。例如,根據(jù)一個實例,服務(wù)器104與設(shè)備106、108和110分別為通過無線總線進(jìn)行通信的主CT模塊和從CT模塊,如在2010年5月28日提交的題目為“用于監(jiān)測電流和功率使用的系統(tǒng)和方法(SYSTEM AND METHOD FOR MONITORINGELECTRICAL CURRENT AND POWER USAGE)”共同待決的美國專利申請序列號為12/789,922中參照圖5所述的主CT模塊502和從CT模塊504,該申請通過引用被本文整個地并入。此夕卜,在至少一個實例中,網(wǎng)絡(luò)112包括只允許一個設(shè)備在給定時間段內(nèi)發(fā)布消息的半雙工介質(zhì)。進(jìn)一步地,根據(jù)該實施例,網(wǎng)絡(luò)112不包括沖突檢測和避免設(shè)施。
      [0034]如圖所示,用戶102使用服務(wù)器104通過網(wǎng)絡(luò)112將信息傳送到設(shè)備106、108和110。特別地,駐留在服務(wù)器104上的用戶接口組件提供用戶接口,通信管理器114通過該用戶接口從用戶102接收數(shù)據(jù)傳送請求。在至少一個實例中,該用戶接口組件被包括在通信管理器114中。根據(jù)該實例,數(shù)據(jù)傳送請求包括:要被傳送的諸如文件的數(shù)據(jù)的集合,數(shù)據(jù)的集合被存儲在其中的一個或多個源設(shè)備;和以接收數(shù)據(jù)的集合為目標(biāo)的一組目標(biāo)設(shè)備。通信管理器114通過與所有的目標(biāo)設(shè)備建立通信回話及將數(shù)據(jù)的集合,逐單元地(即逐數(shù)據(jù)包地),同時提供給所有的目標(biāo)設(shè)備來處理數(shù)據(jù)傳送請求。在一個實例中,通信管理器114實施使用xmodem協(xié)議來建立通信會話和將數(shù)據(jù)的每個數(shù)據(jù)包提供給目標(biāo)設(shè)備的系統(tǒng)接口。以下參考圖3-6進(jìn)一步描述由通信管理器114進(jìn)行的至少一個示例性過程。
      [0035]在另一實例中,中間設(shè)備位于網(wǎng)絡(luò)112的內(nèi)部,并在服務(wù)器104和設(shè)備106、108和110之間。根據(jù)該實例,用戶接口組件不包括在通信管理器114中。相反,根據(jù)該實例,用戶接口組件是駐留在服務(wù)器104上的獨立組件,而通信管理器114駐留在中間設(shè)備上。進(jìn)一步地,根據(jù)該實施例,服務(wù)器104將數(shù)據(jù)傳送請求提供給通信管理器114,并且如上所述,通信管理器114將數(shù)據(jù)的每個數(shù)據(jù)包都提供給目標(biāo)設(shè)備。
      [0036]繼續(xù)參考圖1的實例,根據(jù)預(yù)定協(xié)議,通信客戶端116、118和120的每一個都為進(jìn)行通信會話、接收數(shù)據(jù)包和響應(yīng)該數(shù)據(jù)包做準(zhǔn)備。更具體地,通信客戶端116、118和120的每一個都實施系統(tǒng)接口,通過該系統(tǒng)接口,每個通信客戶端接收數(shù)據(jù)包,驗證每個傳送的數(shù)據(jù)包是否已經(jīng)被成功地接收,以及在數(shù)據(jù)包的序數(shù)值與該組目標(biāo)設(shè)備的基數(shù)值和由正在創(chuàng)建通信會話的通信管理器114所分配的離散節(jié)點號成預(yù)定關(guān)系時進(jìn)行響應(yīng)。以下參考圖7-10進(jìn)一步討論由通信客戶端116、118和120中的每一個進(jìn)行的至少一個示例性過程。
      [0037]使用各種技術(shù),信息可以在本文所公開的這些組件、任何元件、組件和子系統(tǒng)之間流動。這種技術(shù)包括,例如,使用諸如MODBUS的標(biāo)準(zhǔn)協(xié)議在網(wǎng)絡(luò)上傳遞信息,在存儲器中的模塊之間傳遞信息,以及通過向文件、數(shù)據(jù)庫、數(shù)據(jù)存儲器或一些其它非易失性數(shù)據(jù)存儲設(shè)備進(jìn)行寫入來傳遞信息。另外,可以傳送和接收對信息的指針或其它引用來替換或添加到信息的備份。相反地,可以交換信息來替換或添加到對信息的指針或其它引用。在不脫離本文所公開的實例的范圍的情況下,可以使用用于傳送信息的其它技術(shù)和協(xié)議。
      [0038]另外,數(shù)據(jù)傳送系統(tǒng)100的實例可以包括配置成用來執(zhí)行本文所述的過程和功能的各種硬件和軟件組件,且實例并不局限于特定的硬件組件,軟件組件或其組合。例如,根據(jù)一些實例,使用分布式計算機系統(tǒng)進(jìn)行實施數(shù)據(jù)傳送系統(tǒng)100。下面參考圖2進(jìn)一步討論一種這樣的分布式計算機系統(tǒng)的實例。
      [0039]包括數(shù)據(jù)集合和數(shù)據(jù)傳送請求的信息可以以能夠?qū)⑿畔⒋鎯υ谟嬎銠C可讀介質(zhì)上的任何邏輯結(jié)構(gòu)存儲在服務(wù)器104或設(shè)備106、108和110上,該計算機可讀介質(zhì)除其它結(jié)構(gòu)外包括索引文件、層次數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫??墒褂梦ㄒ坏暮屯怄I關(guān)系和索引對數(shù)據(jù)進(jìn)行建模。唯一的和外鍵關(guān)系和索引可以建立在各個字段和表之間以確保數(shù)據(jù)完整性和數(shù)據(jù)互換性能。
      [0040]本文所公開的既包括系統(tǒng)接口又包括用戶接口的接口交換(即提供或接收)各供應(yīng)商和消費者的信息。這些供應(yīng)商和消費者可以包括任何外部實體,該外部實體除其它實體外包括用戶和系統(tǒng)。本文所公開的接口的每一個即可以將輸入限制到一組預(yù)定的值,又可以驗證在使用信息或?qū)⑿畔⑻峁┙o其它組件之前輸入的任何信息。另外,本文所公開的接口的每一個都可以在與外部實體交互之前或期間驗證外部實體的身份。這些功能可以防止將錯誤數(shù)據(jù)引入到數(shù)據(jù)傳送系統(tǒng)100或防止對數(shù)據(jù)傳送系統(tǒng)100的未授權(quán)訪問。
      [0041]計算機系統(tǒng)
      [0042]如以上參考圖1所討論的,本文描述的各個方面和功能可以作為運行在一個或多個計算機系統(tǒng)中的專用硬件或軟件組件進(jìn)行實施。存在目前使用的計算機系統(tǒng)的許多實例。這些實例除其它之外包括網(wǎng)絡(luò)應(yīng)用、個人計算機、工作站、主機、網(wǎng)絡(luò)客戶端、服務(wù)器、媒體服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器和web服務(wù)器。計算機系統(tǒng)的其它實例可以包括移動計算設(shè)備,諸如蜂窩電話、個人數(shù)字助理、平板電腦和筆記本電腦,以及網(wǎng)絡(luò)設(shè)備(例如負(fù)載平衡器、路由器和交換機)。進(jìn)一步地,各個方面可以位于單個計算機系統(tǒng)上,或者可以分布在連接到一個或多個通信網(wǎng)絡(luò)的多個計算機系統(tǒng)間。
      [0043]例如,各個方面和功能可以分布在配置成為一個或多個客戶端計算機提供服務(wù)或作為分布式系統(tǒng)的一部分執(zhí)行全局任務(wù)的一個或多個計算機系統(tǒng)之中。另外,各個方面可以在客戶端-服務(wù)器或多級系統(tǒng)上執(zhí)行,該客戶端-服務(wù)器或多級系統(tǒng)包括分布在執(zhí)行多個功能的一個或多個服務(wù)器系統(tǒng)中的組件。因此,實例并不局限于在任何特定系統(tǒng)或系統(tǒng)組上執(zhí)行。進(jìn)一步地,可以在軟件、硬件、固件或其任何組合中實施各個方面和功能。因此,通過使用各種硬件配置和軟件配置可以在方法、動作、系統(tǒng)、系統(tǒng)元件和組件內(nèi)實施各個方面、過程和功能,并且實例不限于任何特定的分布式結(jié)構(gòu)、網(wǎng)絡(luò)或通信協(xié)議。
      [0044]參考圖2,其示出了在其中實施了各個方面和功能的分布式計算機系統(tǒng)200的功能示意圖。如圖所示,分布式計算機系統(tǒng)200包括交換信息的另一個計算機系統(tǒng)。更具體地,分布式計算機系統(tǒng)200包括計算機系統(tǒng)202、204和206。如圖所示,計算機系統(tǒng)202、204和206通過通信網(wǎng)絡(luò)208互連,并且通過該通信網(wǎng)絡(luò)208可以交換數(shù)據(jù)。網(wǎng)絡(luò)208可以包括任何通信網(wǎng)絡(luò),計算機系統(tǒng)通過該通信網(wǎng)絡(luò)可以交換數(shù)據(jù)。為使用網(wǎng)絡(luò)208交換數(shù)據(jù),計算機系統(tǒng)202、204和206和網(wǎng)絡(luò)208可以使用各種方法、協(xié)議和標(biāo)準(zhǔn),包括除其它外的RS-485、RS422、光纖信道、令牌環(huán)網(wǎng)、以太網(wǎng)、無線以太網(wǎng)、藍(lán)牙、IP、IPV6、TCP/IP、UDP、DTN、HTTP、FTP、SNMP、SMS、MMS、SS7、JSON、SOAP、CORBA、REST 和 Web 服務(wù)。為了 確保數(shù)據(jù)傳送安全,計算機系統(tǒng)202、204和206可以通過使用包括例如TLS、SSL或VPN的各種安全措施的網(wǎng)絡(luò)208來傳送數(shù)據(jù)。雖然分布式計算機系統(tǒng)200示出了三個網(wǎng)絡(luò)化的計算機系統(tǒng),但是分布式計算機系統(tǒng)200并不局限于此,并且可以包括使用任何介質(zhì)和通信協(xié)議進(jìn)行網(wǎng)絡(luò)化的任何數(shù)目的計算機系統(tǒng)和計算設(shè)備。
      [0045]圖2示出了包括計算機系統(tǒng)202、204和206的分布式計算機系統(tǒng)200的特定實例。如圖2所示,計算機系統(tǒng)202包括處理器210、存儲器212、總線214、接口 216和數(shù)據(jù)存儲器218。為了實施本文所公開的至少一些方面、功能和過程,處理器210執(zhí)行導(dǎo)致操控數(shù)據(jù)的一系列的指令。處理器210可以是任何類型的處理器、多處理器、控制器或微控制器。一些示例性的處理器包括市場上可購買到的處理器,例如Stellaris ARM Cortex_M3、IntelXeon、Itanium、Core、Celeron、Pentium、AMD Opteron、SunUltraSPARC、IBMPower5+ 和 IBM主機芯片。處理器210通過總線214被連接到其它的系統(tǒng)組件上,其他系統(tǒng)組件包括一個或多個存儲設(shè)備212。
      [0046]在計算機系統(tǒng)202的操作期間,存儲器212存儲程序和數(shù)據(jù)。因此,存儲器212可以是相對高性能、易失性,隨機存取存儲器,例如,動態(tài)隨機存取存儲器(DRAM)或靜態(tài)隨機存取存儲器(SRAM)。然而,存儲器212可以包括用于存儲數(shù)據(jù)的任何設(shè)備,例如磁盤驅(qū)動器或其它非易失性存儲設(shè)備。各種實例可以將存儲器212組織成具體化的,并且在一些情況下,組織成獨特的結(jié)構(gòu)以執(zhí)行本文所公開的功能。這些數(shù)據(jù)結(jié)構(gòu)可以定尺寸成和組織成用來存儲用于特定的數(shù)據(jù)和數(shù)據(jù)的類型的值。
      [0047]計算機系統(tǒng)202的組件是由例如總線214的互連元件連接的??偩€214可以包括一個或多個物理總線,例如,在相同機器內(nèi)集成的組件之間的總線,但是可以包括系統(tǒng)元件之間的任何通信連接,系統(tǒng)元件包括專用或標(biāo)準(zhǔn)計算總線技術(shù),例如IDE、SCS1、PCI和InfiniBand。因此,總線214使得例如數(shù)據(jù)和指令的通信在計算機系統(tǒng)202的系統(tǒng)組件之間進(jìn)行交換。
      [0048]計算機系統(tǒng)202還包括一個或多個接口設(shè)備216,例如輸入設(shè)備、輸出設(shè)備以及組合輸入/輸出設(shè)備。接口設(shè)備可以接收輸入或提供輸出。更具體地,輸出設(shè)備可以為外部展示提供信息。輸入設(shè)備可以接收來自外部源的信息。接口設(shè)備的實例包括鍵盤、鼠標(biāo)設(shè)備、跟蹤球、麥克風(fēng)、觸摸屏、打印設(shè)備、顯示屏、揚聲器、網(wǎng)絡(luò)接口卡等。接口設(shè)備允許計算機系統(tǒng)202與外部實體進(jìn)行交換信息和通信,外部實體如用戶和其它系統(tǒng)。
      [0049]數(shù)據(jù)存儲器218包括在其上存儲有指令的計算機可讀和可寫的非易失性(非暫時性)數(shù)據(jù)存儲介質(zhì),該指令定義了由處理器210執(zhí)行的程序或其它對象。數(shù)據(jù)存儲器218還可以包括記錄在介質(zhì)之上或之中的信息,該信息在程序執(zhí)行期間由處理器210處理。更具體地,該信息可以存儲在被具體地配置成用來保存存儲空間或增加數(shù)據(jù)交換性能的一個或多個數(shù)據(jù)結(jié)構(gòu)中。該指令可以作為編碼信號被持久地存儲,并且該指令可以使得處理器210來執(zhí)行本文所述的任何功能。例如,該介質(zhì)可以是光盤、磁盤或閃存等。在操作中,處理器210或一些其它的控制器使得數(shù)據(jù)從非易失性記錄介質(zhì)中讀取到例如存儲器212的另一存儲器中,該另一存儲器允許處理器210存取信息比包括在數(shù)據(jù)存儲器218中的存儲介質(zhì)允許存取信息更快。該存儲器可以位于數(shù)據(jù)存儲器218或存儲器212中,然而,處理器210操作存儲器內(nèi)的數(shù)據(jù),然后在完成處理之后將該數(shù)據(jù)拷貝到與數(shù)據(jù)存儲器218相關(guān)聯(lián)的存儲介質(zhì)中。各種組件可以管理數(shù)據(jù)在存儲介質(zhì)和其它存儲元件之間的移動,并且實例并不局限于特定的數(shù)據(jù)管理組件。此外,實例并不局限于特定的存儲器系統(tǒng)或數(shù)據(jù)存儲系統(tǒng)。
      [0050]雖然計算機系統(tǒng)202是作為可以在其上實踐各個方面和功能的一種計算機系統(tǒng)類型的范例示出的,但是各個方面和功能不局限于在圖2所示的計算機系統(tǒng)202上實現(xiàn)。各個方面和功能可以在具有與圖2所示的計算機不同的體系結(jié)構(gòu)或組件的一個或多個計算機上實踐。例如,計算機系統(tǒng)202可以包括專門編程的專用硬件,例如設(shè)計成適于執(zhí)行本文所公開的特定操作的專用集成電路(ASIC)。而另一個實例可以使用運行具有摩托羅拉PowerPC處理器的MACOS系統(tǒng)X的幾個通用計算機設(shè)備和運行專用硬件和操作系統(tǒng)的幾個專用計算設(shè)備的網(wǎng)格來執(zhí)行相同的功能。
      [0051]計算機系統(tǒng)202可以是包括操作系統(tǒng)的計算機系統(tǒng),該操作系統(tǒng)管理包括在計算機系統(tǒng)202中的硬件元件的至少一部分。在一些實例中,處理器或控制器,例如處理器210,執(zhí)行操作系統(tǒng)??梢员粓?zhí)行的特定操作系統(tǒng)的實例包括可從Micrium公司獲得的MicroC/OS-1I ;可從微軟公司獲得的基于Windows的操作系統(tǒng),例如WindowsNT、Windows2000 (Windows ME)、WindowsXP、WindowsVista 或 Windows7 操作系統(tǒng);可從蘋果電腦公司獲得的MACOS系統(tǒng)X操作系統(tǒng),許多基于Linux的操作系統(tǒng)分布中的一個,例如,可從紅帽公司獲得的企業(yè)Iinux操作系統(tǒng);可從Sun微系統(tǒng)公司獲得的Solaris操作系統(tǒng);或可從各種源獲得的UNIX操作系統(tǒng)??梢允褂迷S多其它的操作系統(tǒng),并且實例并不限局限于任何特定的操作系統(tǒng)。
      [0052]處理器210和操作系統(tǒng)一起定義了用高級編程語言寫應(yīng)用程序的計算機平臺。這些組件應(yīng)用程序可以是使用通信協(xié)議(例如,TCP/IP)在通信網(wǎng)絡(luò)(例如,因特網(wǎng))上傳送的可執(zhí)行的代碼、中間代碼、字節(jié)代碼或解釋代碼。類似地,某些方面可以使用面向?qū)ο蟮木幊陶Z言實現(xiàn),例如.Net、SmallTalk、Java、C++、Ada或C# (C-Sharp)。也可以使用其它面向?qū)ο蟮木幊陶Z言。另外,可以使用功能、腳本、或邏輯編程語言。
      [0053]另外,各個方面和功能可以在非編程環(huán)境中實現(xiàn),例如,以HTML、XML或其他形式產(chǎn)生的文件,當(dāng)在瀏覽器程序的窗口中察看的時候,提供圖形用戶界面的諸方面或?qū)崿F(xiàn)其他功能。此外,各個方面可能是作為編程或非編程的元件或其任何組合實現(xiàn)的。例如,當(dāng)從網(wǎng)頁內(nèi)調(diào)用的數(shù)據(jù)對象可以用C++來編寫的同時,網(wǎng)頁可以使用HTML來實現(xiàn)。因此,該實例不局限于具體的編程語言并且可以使用任何合適的編程語言。因此,本文所公開的功能組件可以包括被配置成用來執(zhí)行本文所述的功能的各種各樣的元件,例如專用硬件、可執(zhí)行代碼、數(shù)據(jù)結(jié)構(gòu)或?qū)ο蟆?br> [0054]在一些實例中,本文所公開的組件可以讀取影響由組件執(zhí)行的功能的參數(shù)。這些參數(shù)可以以任何形式物理地存儲在包括易失性存儲器(例如隨機存儲器(RAM))或非易失性存儲器(例如磁性硬盤驅(qū)動器)的合適的存儲器中。另外,該參數(shù)可以以適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)(例如由用戶模式應(yīng)用程序定義的數(shù)據(jù)庫或文件)或通用共享數(shù)據(jù)結(jié)構(gòu)(如由操作系統(tǒng)定義的應(yīng)用注冊表)被邏輯地存儲。另外,一些實例提供系統(tǒng)和用戶接口,允許外部實體來修改該參數(shù),并從而配置部件的行為。
      [0055]數(shù)據(jù)傳送過程
      [0056]如上文所討論的,一些實例執(zhí)行導(dǎo)致數(shù)據(jù)通過網(wǎng)絡(luò)在至少兩個設(shè)備之間傳送的過程。更具體地,根據(jù)一個實施例,諸如服務(wù)器104的設(shè)備包括諸如通信管理器114的一個或多個組件,該一個或多個組件執(zhí)行將存儲在設(shè)備上的數(shù)據(jù)傳送到一個或多個其它設(shè)備(例如設(shè)備106、108和110)的過程。圖3示出了過程300的這種過程的實例。如圖所示,過程300包括建立通信會話、發(fā)送數(shù)據(jù)包和終止通信會話的動作。
      [0057]在動作302中,通信會話被建立在能夠訪問將要被傳送的數(shù)據(jù)集合的源設(shè)備和連接到網(wǎng)絡(luò)上的一個或多個目標(biāo)設(shè)備之間。在至少一個實例中,源設(shè)備和目標(biāo)設(shè)備在由用戶102輸入的或由外部系統(tǒng)提供的數(shù)據(jù)傳送請求中被規(guī)定了。根據(jù)另一實例,源設(shè)備執(zhí)行使得源設(shè)備以支持本文所公開的總體數(shù)據(jù)傳送協(xié)議的具體的初始化和分配功能。在該實例中,源設(shè)備還提供了在對目標(biāo)設(shè)備進(jìn)行初始化的過程中產(chǎn)生的信息的一部分。以下將參考圖4進(jìn)一步地討論在動作302中執(zhí)行的過程的一個實例。
      [0058]在動作304中,數(shù)據(jù)包被從源設(shè)備發(fā)送到至少一個目標(biāo)設(shè)備。在幾個實例中,源設(shè)備為發(fā)送到所有的目標(biāo)設(shè)備的每個數(shù)據(jù)包接收來自指定的目標(biāo)設(shè)備的一個響應(yīng)。如以下進(jìn)一步所述,被指定的將響應(yīng)發(fā)送給任何給定的數(shù)據(jù)包的特定的目標(biāo)設(shè)備從數(shù)據(jù)包到數(shù)據(jù)包不同。以下將參考圖5進(jìn)一步地說明在動作304中執(zhí)行的過程的一個實例。
      [0059]在動作306中,通信會話結(jié)束。根據(jù)至少一個實例,在終止通信會話之前,源設(shè)備通知目標(biāo)設(shè)備。以這種方式,源設(shè)備向目標(biāo)設(shè)備提供請求目標(biāo)設(shè)備沒有接收到的數(shù)據(jù)包重發(fā)的一個機會。以下將參考圖6進(jìn)一步地描述在動作306中執(zhí)行的過程的一個實例。數(shù)據(jù)傳送過程根據(jù)過程300使得源設(shè)備能夠高效地和有效地傳送信息到多個目標(biāo)設(shè)備而不引起大量的所聽到的ACK和NAK。
      [0060]為接收通過過程300的執(zhí)行所提供的信息,諸如設(shè)備106、108和110的目標(biāo)設(shè)備包括諸如通信客戶端116、118、120的至少一個組件,該至少一個組件執(zhí)行逆過程700。參考圖7示出了過程700的一個實例。如圖所示,過程700包括初始化通信會話、接收數(shù)據(jù)包和結(jié)束通信會話的動作。
      [0061 ] 在動作702中,通信會話在目標(biāo)設(shè)備上被初始化。在一個實例中,目標(biāo)設(shè)備從源設(shè)備接收初始化信息,并且目標(biāo)設(shè)備處理該初始化信息以使自身準(zhǔn)備接收來自源設(shè)備的數(shù)據(jù)數(shù)據(jù)包。以下將參考圖8進(jìn)一步討論在動作702中執(zhí)行的過程的一個實例。
      [0062]在動作704中,目標(biāo)設(shè)備接收數(shù)據(jù)包。在一個實例中,目標(biāo)設(shè)備分析每個數(shù)據(jù)包的特征,目標(biāo)設(shè)備的集合的基數(shù)和供應(yīng)給目標(biāo)設(shè)備的初始化信息以確定該目標(biāo)設(shè)備是否可以向源設(shè)備發(fā)出響應(yīng)。以下將參考圖9進(jìn)一步地解釋在動作704中執(zhí)行的過程的一個實例。
      [0063]在動作706中,通信會話結(jié)束。根據(jù)至少一個實例,在從源設(shè)備接收到發(fā)送消息結(jié)束之后,目標(biāo)設(shè)備對源設(shè)備發(fā)出響應(yīng)以請求重發(fā)包括在數(shù)據(jù)傳送中的未被目標(biāo)設(shè)備成功接收的任何數(shù)據(jù)包。以下將參考圖10進(jìn)一步描述在動作706中執(zhí)行的過程的一個實例。[0064]源設(shè)各討稈
      [0065]如以上參考過程300的動作302所討論的,在一些實例中,源設(shè)備(例如服務(wù)器104)建立與一個或多個目標(biāo)設(shè)備的通信會話。圖4示出了由源設(shè)備來實現(xiàn)以達(dá)到該目的的示例性過程400。如圖所示,過程400包括以下動作:確定節(jié)點標(biāo)識符、發(fā)送初始化信息和建立數(shù)據(jù)傳送會話。
      [0066]在動作402中,源設(shè)備為以接收數(shù)據(jù)的集合為目標(biāo)的每個設(shè)備確定節(jié)點標(biāo)識符。根據(jù)一個實例,源設(shè)備使用包括在數(shù)據(jù)傳送請求中的信息識別以接收數(shù)據(jù)的集合為目標(biāo)的一組設(shè)備。一旦該組目標(biāo)設(shè)備被識別,源設(shè)備就會為是該組設(shè)備中的每個目標(biāo)設(shè)備確定離散的和唯一的節(jié)點標(biāo)識符。例如,在一個實例中,源設(shè)備產(chǎn)生以O(shè)開始的整數(shù)序列,,并且將每個整數(shù)作為用于特定設(shè)備成員的節(jié)點標(biāo)識符進(jìn)行存儲。在其它實例中,可以使用其它節(jié)點標(biāo)識符,例如以I開始的整數(shù)、序列號、或其它列舉的數(shù)據(jù),并且實例并不局限于特定組或類型的節(jié)點標(biāo)識符。
      [0067]在動作404中,源設(shè)備為目標(biāo)設(shè)備的每一個提供初始化信息。在至少一個實例中,該初始化信息包括目標(biāo)設(shè)備的集合的基數(shù)和分配給目標(biāo)設(shè)備的節(jié)點標(biāo)識符。接著,在動作406中,源設(shè)備建立與目標(biāo)設(shè)備的每一個的數(shù)據(jù)傳送會話。根據(jù)一個實例,源設(shè)備使用xmodem協(xié)議建立與目標(biāo)設(shè)備的會話并進(jìn)行通信,然而可以使用任何通信協(xié)議而不脫離本文所公開的實例的范圍。在過程400完成之后,源設(shè)備準(zhǔn)備好開始傳送用于分布到目標(biāo)設(shè)備的數(shù)據(jù)的集合。
      [0068]如以上參考過程300的動作304所討論的,在一些實例中,源設(shè)備(例如服務(wù)器104)通過發(fā)送信息的數(shù)據(jù)包傳送所請求的數(shù)據(jù)的集合到一個或多個目標(biāo)設(shè)備。圖5示出了由源設(shè)備來實現(xiàn)以達(dá)到該目的的示例性過程500。如圖所示,過程500包括幾個動作,下面將進(jìn)一步討論這幾個動作中的每一個動作。
      [0069]在動作502中,源設(shè)備初始化數(shù)據(jù)包緩沖器。在一些實例中,源設(shè)備將數(shù)據(jù)包緩沖器分配在本地存儲器中。此外,在這些實例中,數(shù)據(jù)包緩沖器的大小基于以接收數(shù)據(jù)的集合(即目標(biāo)設(shè)備的集合的基數(shù))為目標(biāo)的設(shè)備的數(shù)目來設(shè)置。在至少一個實例中,該數(shù)據(jù)包緩沖器的大小被設(shè)置為容納等于目標(biāo)設(shè)備的集合的基數(shù)的多個數(shù)據(jù)包。在數(shù)據(jù)包緩沖器被分配之后,源設(shè)備將要傳送的數(shù)據(jù)的集合,或其一部分存儲在數(shù)據(jù)包緩沖器內(nèi)作為數(shù)據(jù)包的序列并初始化當(dāng)前的數(shù)據(jù)包指示器,例如,指向緩沖器的指針指示在緩沖器內(nèi)的第一數(shù)據(jù)包。
      [0070]在另一個實例中,該數(shù)據(jù)包緩沖器作為滾動窗口或視圖實現(xiàn)于要被傳送的數(shù)據(jù)的集合中。在該實例中,滾動窗口的范圍是使用指示包括在該窗口中的第一個和最后一個數(shù)據(jù)包的指針來實現(xiàn)的。與先前的實例一樣,源設(shè)備的大小基于目標(biāo)設(shè)備的集合的基數(shù)來設(shè)置,并且在至少一個實例中,源設(shè)備設(shè)置數(shù)據(jù)包緩沖器的大小以包含等于目標(biāo)設(shè)備的集合的基數(shù)的多個數(shù)據(jù)包。而且,與先前的實例一樣,源設(shè)備初始化當(dāng)前的數(shù)據(jù)包指示器,例如,指向緩沖器的指針指示在緩沖器內(nèi)的第一數(shù)據(jù)包。
      [0071]在動作504中,源設(shè)備確定當(dāng)前的數(shù)據(jù)包指示器是否指向數(shù)據(jù)包緩沖器的末端。如果是,則源設(shè)備執(zhí)行動作506。否則,源設(shè)備執(zhí)行動作508。在動作506中,源設(shè)備向數(shù)據(jù)包緩沖器添加另一數(shù)據(jù)包。根據(jù)數(shù)據(jù)包緩沖器的特定的實施方案,這可以通過從緩沖器中移除最近最少傳送的數(shù)據(jù)包并添加新的數(shù)據(jù)包或通過遞增限定了長度為I個數(shù)據(jù)包的滾動窗口的指針來完成。另外,在動作506中,源設(shè)備設(shè)置當(dāng)前的數(shù)據(jù)包指示器以指示最近添加的數(shù)據(jù)包。
      [0072]在動作508中,源設(shè)備向目標(biāo)設(shè)備的每一個傳送當(dāng)前的數(shù)據(jù)包。另外,在一些實例中,源設(shè)備為動作508中的目標(biāo)設(shè)備的每一個提供指示數(shù)據(jù)包標(biāo)識符的數(shù)據(jù)。在這些實例中的一些實例中,指示數(shù)據(jù)包標(biāo)識符的數(shù)據(jù)括在數(shù)據(jù)包中,而在其它實例中,該數(shù)據(jù)被分別從數(shù)據(jù)包傳送。在至少一個實例中,源設(shè)備保存包含來自數(shù)據(jù)的集合的數(shù)據(jù)的該組數(shù)據(jù)包內(nèi)的每個數(shù)據(jù)包的位置(即序數(shù)值)的記錄,提供當(dāng)前數(shù)據(jù)包的序數(shù)值作為數(shù)據(jù)包標(biāo)識符。
      [0073]接下來,在動作510中,源設(shè)備以I個數(shù)據(jù)包地遞增當(dāng)前的數(shù)據(jù)包指示器。在動作512中,源設(shè)備接收來自目標(biāo)設(shè)備的一個的響應(yīng)。然后,在動作514中,源設(shè)備確定該響應(yīng)是否指示相應(yīng)的目標(biāo)設(shè)備在數(shù)據(jù)包緩沖器中沒能成功地接收先前發(fā)送的數(shù)據(jù)包中的一個,即確定該響應(yīng)是否是否定確認(rèn)(本文稱為“NAK”)。如果是,則源設(shè)備執(zhí)行動作516。否則,源設(shè)備執(zhí)行動作518。
      [0074]在動作516中,源設(shè)備重置當(dāng)前的數(shù)據(jù)包指示器以指示數(shù)據(jù)包緩沖器中的第一數(shù)據(jù)包。因此,在接收到目標(biāo)設(shè)備中的一個沒能成功地接收數(shù)據(jù)包的指示之后,源設(shè)備開始重發(fā)緩沖器中的所有數(shù)據(jù)包以確保該失敗的通信得到補救。在動作518中,源設(shè)備確定包括來自數(shù)據(jù)的集合的數(shù)據(jù)的所有數(shù)據(jù)包是否都已經(jīng)被發(fā)送。如果是,則過程500結(jié)束。否則,源設(shè)備執(zhí)行動作504。在過程500完成之后,源設(shè)備很可能已經(jīng)成功地向目標(biāo)設(shè)備傳送了大量的數(shù)據(jù)的集合,并準(zhǔn)備來完成數(shù)據(jù)傳送過程。
      [0075]如以上參考過程300的動作306所討論的,在一些實例中,源設(shè)備(例如服務(wù)器104)終止了與一個或多個目標(biāo)設(shè)備的通信會話。圖6示出了可以由源設(shè)備來實現(xiàn)以達(dá)到該目的的示例性過程600。如圖所示,過程600包括以下動作:傳送傳送結(jié)束的消息、接收響應(yīng)、重傳沒有被目標(biāo)設(shè)備成功地接收的數(shù)據(jù)包和終止數(shù)據(jù)傳送會話。
      [0076]在動作602中,源設(shè)備向每個目標(biāo)設(shè)備傳送EOT消息。EOT消息包括指示源設(shè)備已經(jīng)傳送了包括來自數(shù)據(jù)的集合的數(shù)據(jù)的所有數(shù)據(jù)包。在動作604中,源設(shè)備接收來自每一個目標(biāo)設(shè)備的響應(yīng)。如果任何所接收到的響應(yīng)指示目標(biāo)設(shè)備未接收到先前傳送的數(shù)據(jù)包,即指示NAK的數(shù)據(jù)包的響應(yīng),源設(shè)備則在動作606中將NAK的數(shù)據(jù)包重新發(fā)送到目標(biāo)設(shè)備。源設(shè)備將繼續(xù)重發(fā)NAK的數(shù)據(jù)包,直到所有的目標(biāo)設(shè)備都指示成功地接收了包括來自數(shù)據(jù)的集合的數(shù)據(jù)的所有的數(shù)據(jù)包。在動作608中,源設(shè)備終止了與目標(biāo)設(shè)備的數(shù)據(jù)傳送會話。在完成過程600后,源設(shè)備已經(jīng)成功地向目標(biāo)設(shè)備傳送了數(shù)據(jù)的集合。
      [0077]目標(biāo)設(shè)備過程
      [0078]如以上參考過程700的動作702所討論的,在一些實例中,目標(biāo)設(shè)備(例如設(shè)備106)執(zhí)行初始化過程以使其自身準(zhǔn)備與源設(shè)備進(jìn)行通信會話。圖8示出了過程800這樣的一種過程的實例。如圖所示,過程800包括以下動作:接收初始化信息、存儲初始化信息和初始化數(shù)據(jù)傳送會話。
      [0079]在動作802中,目標(biāo)設(shè)備接收由是將要被傳送給目標(biāo)設(shè)備的數(shù)據(jù)集合的源的設(shè)備提供的初始化信息。在至少一個實例中,初始化信息指示通過源設(shè)備分配給目標(biāo)設(shè)備的節(jié)點標(biāo)識符和以接收數(shù)據(jù)的集合為目標(biāo)的設(shè)備的集合的基數(shù)。接下來,在動作804中,目標(biāo)設(shè)備本地地存儲該初始化信息。在動作806中,目標(biāo)設(shè)備建立與源設(shè)備的數(shù)據(jù)傳送會話。在至少一個實例中,目標(biāo)設(shè)備使用xmodem協(xié)議來與源設(shè)備進(jìn)行通信,但是可以使用任何通信協(xié)議而不脫離本文所公開的實例的范圍。在過程800完成之后,目標(biāo)設(shè)備準(zhǔn)備好開始接收用于分配給目標(biāo)設(shè)備的數(shù)據(jù)的集合。
      [0080]如以上參考過程700的動作704所討論的,在一些實例中,目標(biāo)設(shè)備(例如設(shè)備106)從源設(shè)備接收數(shù)據(jù)的數(shù)據(jù)包。圖9示出了由目標(biāo)設(shè)備來實現(xiàn)以達(dá)到該目的的示例性過程900。如圖所示,過程900包括幾個動作,以下將進(jìn)一步討論這幾個動作中的每一個動作。
      [0081]在動作902中,目標(biāo)設(shè)備從源設(shè)備接收數(shù)據(jù)包。接下來,目標(biāo)設(shè)備確定在動作904中該數(shù)據(jù)包是否先前被成功地接收并確認(rèn)。如果是,則目標(biāo)設(shè)備執(zhí)行動作918。否則,目標(biāo)設(shè)備執(zhí)行動作906。
      [0082]在動作906中,目標(biāo)設(shè)備確定該數(shù)據(jù)包是否是有效的和是否被以正確的順序接收。如果是,則目標(biāo)設(shè)備在動作910中存儲該數(shù)據(jù)包。否則,目標(biāo)設(shè)備在動作908中將該數(shù)據(jù)包記錄為無效。
      [0083]在動作912中,目標(biāo)設(shè)備確定該數(shù)據(jù)包是否是傳送數(shù)據(jù)包結(jié)束。如果是,則目標(biāo)設(shè)備結(jié)束過程900。否則,目標(biāo)設(shè)備執(zhí)行動作914。
      [0084]在動作914中,目標(biāo)設(shè)備確定該數(shù)據(jù)包是否被先前否定確認(rèn)。如果是,則目標(biāo)設(shè)備在動作916中刪除指示數(shù)據(jù)包沒有被成功地接收的記錄。否則,目標(biāo)設(shè)備確定該數(shù)據(jù)包的數(shù)據(jù)包標(biāo)識符是否與目標(biāo)設(shè)備的節(jié)點標(biāo)識符成預(yù)定關(guān)系。如果是,則目標(biāo)設(shè)備執(zhí)行動作920。否則,目標(biāo)設(shè)備執(zhí)行動作902。
      [0085]在動作920中,目標(biāo)設(shè)備確定先前由源設(shè)備傳送的任何數(shù)據(jù)包是否未被成功地接收。如果是,則目標(biāo)設(shè)備在動作924中產(chǎn)生并傳送NAK到源設(shè)備。否則,目標(biāo)設(shè)備在動作922中產(chǎn)生并傳送ACK到源設(shè)備。在過程900完成之后,目標(biāo)設(shè)備很可能已經(jīng)成功地接收了大量的數(shù)據(jù)的集合并準(zhǔn)備結(jié)束數(shù)據(jù)傳送過程。
      [0086]如以上參考過程700的動作706所討論的,在一些實例中,目標(biāo)設(shè)備(例如設(shè)備106)結(jié)束與源設(shè)備的通信過程。圖10示出了可以由目標(biāo)設(shè)備來實現(xiàn)以達(dá)到該目的的示例性過程1000。如圖所示,過程1000包括幾個動作,下面將進(jìn)一步討論這幾個動作中的每一個動作。
      [0087]在動作1002中,目標(biāo)設(shè)備確定先前由源設(shè)備傳送的任何數(shù)據(jù)包是否未被成功地接收。如果是,則目標(biāo)設(shè)備在動作1006中產(chǎn)生并傳送NAK到源設(shè)備。在至少一個實例中,該NAK包括未被成功地接收的數(shù)據(jù)包的數(shù)據(jù)包標(biāo)識符。如果先前由源設(shè)備傳送的所有的數(shù)據(jù)包被成功地接收,那么目標(biāo)設(shè)備在動作1104中產(chǎn)生并發(fā)送ACK到源設(shè)備并結(jié)束過程1000。
      [0088]在動作1008中,目標(biāo)設(shè)備從源設(shè)備接收數(shù)據(jù)包。接下來,目標(biāo)設(shè)備在動作1010中確定該數(shù)據(jù)包是否先前被成功地接收并確認(rèn)。如果是,則目標(biāo)設(shè)備執(zhí)行動作1008。否則,目標(biāo)設(shè)備執(zhí)行動作1012。
      [0089]在動作1012中,目標(biāo)設(shè)備確定該數(shù)據(jù)包是否有效。如果是,則目標(biāo)設(shè)備在動作1016中存儲該數(shù)據(jù)包。否則,目標(biāo)設(shè)備在動作1014中將該數(shù)據(jù)包記錄為無效。
      [0090]在動作1018中,目標(biāo)設(shè)備確定該數(shù)據(jù)包是否被先前否定確認(rèn)。如果是,則目標(biāo)設(shè)備在動作1020中刪除指示該數(shù)據(jù)包未被成功地接收的記錄。否則,目標(biāo)設(shè)備執(zhí)行動作1002。在完成過程1000后,目標(biāo)設(shè)備已經(jīng)從源設(shè)備成功地接收到了數(shù)據(jù)的集合。
      [0091]過程300至1000中的每一個過程都以特定的實例描述了一種特定的動作序列。包括在這些過程中的動作可以由或可以使用本文所討論的專門配置的一個或多個計算機系統(tǒng)來執(zhí)行。一些動作是可選的,并且因此,可以根據(jù)一個或多個實例被省略。另外,動作的順序可以被改變,或可以添加其它動作,而不脫離本文所討論的系統(tǒng)和過程的范圍。此外,如上所述,在至少一個實例中,該動作是在特定的、專門配置的機器,即根據(jù)本文所公開的實例配置的計算機系統(tǒng)上執(zhí)行的。
      [0092]本文所公開的系統(tǒng)和方法可以應(yīng)用于各種環(huán)境中。例如,在一個實例中,民用電力系統(tǒng)采用本文所公開的數(shù)據(jù)傳送協(xié)議來保持在測量家庭中的支路電流的電流變壓器上運行的固件。在另一個實例中,工業(yè)電力系統(tǒng)采用數(shù)據(jù)傳送協(xié)議來保持在多個并聯(lián)的不間斷電源上運行的固件。因此,本文所公開的示例性系統(tǒng)和過程都非常適合用于需要低成本和高度可靠的數(shù)據(jù)通信的環(huán)境中。
      [0093]這樣,本文已經(jīng)描述了至少一個實例的若干方面,應(yīng)理解,本領(lǐng)域技術(shù)人員將容易地想到各種改變、修改和改進(jìn)。例如,雖然說明書的大部分討論了具有總線拓?fù)涞木W(wǎng)絡(luò)內(nèi)的數(shù)據(jù)傳送,但是在網(wǎng)絡(luò)中可以采用的實例具有除了本文所描述的標(biāo)準(zhǔn)以外的其它拓?fù)浠蛑С謽?biāo)準(zhǔn)。另外,實例可以在通過單個設(shè)備中的本地總線連接的設(shè)備之間實現(xiàn)。這些改變、修改和改進(jìn)被認(rèn)為是本公開的一部分,并且被認(rèn)為屬于本公開的精神和范圍內(nèi)。相應(yīng)地,前面的描述和附圖僅是示例性的。
      【權(quán)利要求】
      1.一種用于向多個設(shè)備傳送數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括存儲器和連接到所述存儲器的至少一個處理器,并且所述系統(tǒng)被配置成: 識別所述多個設(shè)備的設(shè)備子集,所述設(shè)備子集具有基數(shù)并包括第一設(shè)備和第二設(shè)備; 在所述存儲器中分配具有基于所述設(shè)備子集的所述基數(shù)的尺寸的緩沖器; 將一組數(shù)據(jù)包存儲在所述緩沖器中,所述一組數(shù)據(jù)包具有基數(shù)并包括第一數(shù)據(jù)包和第二數(shù)據(jù)包,所述一組數(shù)據(jù)包的每個數(shù)據(jù)包在所述一組數(shù)據(jù)包內(nèi)都具有序數(shù)值; 將所述第一數(shù)據(jù)包傳送給所述設(shè)備子集的所有設(shè)備; 從所述第一設(shè)備接收第一響應(yīng),所述第一響應(yīng)指示所述第一設(shè)備成功地接收了所述第一數(shù)據(jù)包; 將所述第二數(shù)據(jù)包傳送給所述設(shè)備子集的所有設(shè)備; 從所述第二設(shè)備接收第二響應(yīng),所述第二響應(yīng)指示所述第二設(shè)備沒有成功地接收至少一個數(shù)據(jù)包; 響應(yīng)于接收到所述第二響應(yīng),向所述設(shè)備子集的所有設(shè)備傳送所述第一數(shù)據(jù)包;以及 響應(yīng)于接收到所述第二響應(yīng),向所述設(shè)備子集的所有設(shè)備傳送所述第二數(shù)據(jù)包。
      2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述緩沖器的尺寸等于所述設(shè)備子集的所述基數(shù)乘以所述第一數(shù)據(jù)包的尺寸。
      3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)被配置成通過使用xmodem協(xié)議將所述第一數(shù)據(jù)包傳送給所述設(shè)備子集的所有設(shè)備。
      4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述系統(tǒng)還被配置成: 將離散節(jié)點號分配給所述設(shè)備子集的每個設(shè)備;以及 向所述設(shè)備子集的每個設(shè)備傳送指示所述設(shè)備子集的所述基數(shù)和分配給所述設(shè)備的離散節(jié)點號的數(shù)據(jù)。
      5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中所述設(shè)備子集的每個設(shè)備包括存儲器和連接到該存儲器的至少一個處理器,并被配置成: 接收指示所述設(shè)備子集的基數(shù)和分配給所述設(shè)備的離散節(jié)點號的數(shù)據(jù); 接收所述一組數(shù)據(jù)包中的數(shù)據(jù)包; 將所述數(shù)據(jù)包存儲在所述存儲器中;以及 發(fā)送響應(yīng)以選擇其序數(shù)值與所述子集的基數(shù)和分配給所述設(shè)備的離散節(jié)點號成預(yù)定關(guān)系的數(shù)據(jù)包。
      6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述設(shè)備子集的每個設(shè)備還被配置成: 確定結(jié)果,所述結(jié)果指示所述一組數(shù)據(jù)包中的被接收的數(shù)據(jù)包被先前存儲在所述存儲器中;以及 響應(yīng)于確定所述結(jié)果,接收所述一組數(shù)據(jù)包的另一數(shù)據(jù)包,而不將所接收的數(shù)據(jù)包存儲在所述存儲器中。
      7.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述設(shè)備子集的所述第二設(shè)備被配置成: 確定第一結(jié)果,所述第一結(jié)果指示所述第二設(shè)備沒有成功地接收所述第一數(shù)據(jù)包; 將指示所述第一結(jié)果的數(shù)據(jù)存儲在所述第二設(shè)備的存儲器中; 確定第二結(jié)果,所述第二結(jié)果指示所述第一數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果不等于分配給所述第二設(shè)備的離散節(jié)點號;響應(yīng)于確定所述第二結(jié)果,延遲所述第二響應(yīng)的傳送; 確定第三結(jié)果,所述第三結(jié)果指示所述第二數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果等于分配給所述第二設(shè)備的離散節(jié)點號;以及響應(yīng)于確定所述第三結(jié)果,傳送所述第二響應(yīng)。
      8.一種用于通過使用計算機將數(shù)據(jù)傳送到多個設(shè)備的計算機實現(xiàn)方法,所述計算機包括存儲器和連接到所述存儲器的至少一個處理器,所述方法包括: 通過所述計算機識別所述多個設(shè)備的設(shè)備子集,所述設(shè)備子集具有基數(shù)并包括第一設(shè)備和第二設(shè)備; 在所述存儲器中分配具有基于所述設(shè)備子集的所述基數(shù)的尺寸的緩沖器; 將一組數(shù)據(jù)包存儲在所述緩沖器中,所述一組數(shù)據(jù)包具有基數(shù)并包括第一數(shù)據(jù)包和第二數(shù)據(jù)包,所述一組數(shù)據(jù)包的每個數(shù)據(jù)包在所述一組數(shù)據(jù)包內(nèi)都具有序數(shù)值; 將所述第一數(shù)據(jù)包傳送給所述設(shè)備子集的所有設(shè)備; 從所述第一設(shè)備接收第一響應(yīng),所述第一響應(yīng)指示所述第一設(shè)備成功地接收了所述第一數(shù)據(jù)包; 將所述第二數(shù)據(jù)包傳送給所述設(shè)備子集的所有設(shè)備; 從所述第二設(shè)備接收第二響應(yīng),所述第二響應(yīng)指示所述第二設(shè)備沒有成功地接收至少一個數(shù)據(jù)包; 響應(yīng)于接收到所述第二響應(yīng),向所述設(shè)備子集的所有設(shè)備傳送所述第一數(shù)據(jù)包;以及 響應(yīng)于接收到所述第二響應(yīng),向所述設(shè)備子集的所有設(shè)備傳送所述第二數(shù)據(jù)包。
      9.根據(jù)權(quán)利要求8所述的方法,其中將所述一組數(shù)據(jù)包存儲在所述緩沖器中包括存儲具有總尺寸等于所述設(shè)備子集的所述基數(shù)乘以所述第一數(shù)據(jù)包的尺寸的一組數(shù)據(jù)包。
      10.根據(jù)權(quán)利要求8所述的方法,其中將所述第一數(shù)據(jù)包傳送給所述設(shè)備子集的所有設(shè)備包括使用xmodem協(xié)議進(jìn)行傳送。
      11.根據(jù)權(quán)利要求8所述的方法,還包括: 向所述設(shè)備子集的每個設(shè)備分配離散節(jié)點號;以及 向所述設(shè)備子集的每個設(shè)備傳送指示所述設(shè)備子集的基數(shù)和分配給所述設(shè)備的離散節(jié)點號的數(shù)據(jù)。
      12.根據(jù)權(quán)利要求11所述的方法,其中所述設(shè)備子集的每個設(shè)備包括存儲器和連接到該存儲器的至少一個處理器,并且所述方法還包括: 通過每個設(shè)備接收指示所述設(shè)備子集的基數(shù)和分配給所述設(shè)備的離散節(jié)點號的數(shù)據(jù); 通過每個設(shè)備接收所述一組數(shù)據(jù)包的數(shù)據(jù)包; 通過每個設(shè)備將所述數(shù)據(jù)包存儲在所述設(shè)備的存儲器中;以及通過每個設(shè)備傳送響應(yīng)以選擇其序數(shù)值與所述子集的基數(shù)和分配給所述設(shè)備的離散節(jié)點號成預(yù)定關(guān)系的數(shù)據(jù)包。
      13.根據(jù)權(quán)利要求12所述的方法,還包括: 通過所述設(shè)備子集的至少一個設(shè)備來確定結(jié)果,所述結(jié)果指示所述一組數(shù)據(jù)包的被接收的數(shù)據(jù)包被先前存儲在所述至少一個設(shè)備的存儲器中;以及 響應(yīng)于確定所述結(jié)果,通過所述至少一個設(shè)備接收所述一組數(shù)據(jù)包的另一個數(shù)據(jù)包,而不用將所接收的數(shù)據(jù)包存儲在所述至少一個設(shè)備的存儲器中。
      14.根據(jù)權(quán)利要求12所述的方法,還包括: 通過所述第二設(shè)備確定指示所述第二設(shè)備沒有成功地接收所述第一數(shù)據(jù)包的第一結(jié)果; 將指示所述第一結(jié)果的數(shù)據(jù)存儲在所述第二設(shè)備的存儲器中; 通過所述第二設(shè)備確定指示所述第一數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果不等于分配給所述第二設(shè)備的離散節(jié)點號的第二結(jié)果; 響應(yīng)于確定所述第二結(jié)果,通過所述第二設(shè)備延遲所述第二響應(yīng)的傳送; 通過所述第二設(shè)備確定指示所述第二數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果等于分配給所述第二設(shè)備的離散節(jié)點號的第三結(jié)果;以及 響應(yīng)于確定所述第三結(jié)果,通過所述第二設(shè)備傳送所述第二響應(yīng)。
      15.一種非暫時性計算機可讀介質(zhì),其上存儲有用于向多個設(shè)備傳送數(shù)據(jù)的指令的序列,所述指令的序列包括將使至少一個處理器進(jìn)行以下操作的指令: 識別所述多個設(shè)備的設(shè)備子集,所述設(shè)備子集具有基數(shù)并包括第一設(shè)備和第二設(shè)備;將緩沖器分配在連接到所述至少一個處理器的存儲器中,所述緩沖器具有基于所述設(shè)備子集的基數(shù)的尺寸; 將一組數(shù)據(jù)包存儲在所述緩沖器中,所述一組數(shù)據(jù)包具有基數(shù)并包括第一數(shù)據(jù)包和第二數(shù)據(jù)包,所述一組數(shù)據(jù)包的`每個數(shù)據(jù)包在所述一組數(shù)據(jù)包內(nèi)都具有序數(shù)值; 將所述第一數(shù)據(jù)包傳送給所述設(shè)備子集的所有設(shè)備; 從所述第一設(shè)備接收第一響應(yīng),所述第一響應(yīng)指示所述第一設(shè)備成功地接收了所述第一數(shù)據(jù)包; 將所述第二數(shù)據(jù)包傳送給所述設(shè)備子集的所有設(shè)備; 從所述第二設(shè)備接收第二響應(yīng),所述第二響應(yīng)指示所述第二設(shè)備沒有成功地接收至少一個數(shù)據(jù)包; 響應(yīng)于接收到所述第二響應(yīng),向所述設(shè)備子集的所有設(shè)備傳送所述第一數(shù)據(jù)包;以及 響應(yīng)于接收到所述第二響應(yīng),向所述設(shè)備子集的所有設(shè)備傳送所述第二數(shù)據(jù)包。
      16.根據(jù)權(quán)利要求15所述的非暫時性計算機可讀介質(zhì),其中所述指令的序列包括會使所述至少一個處理器使用xmodem協(xié)議來傳送的指令。
      17.根據(jù)權(quán)利要求15所述的非暫時性計算機可讀介質(zhì),其中所述指令的序列包括將進(jìn)一步促使所述至少一個處理器進(jìn)行以下操作的指令: 將離散節(jié)點號分配給所述設(shè)備子集的每個設(shè)備;以及 將指示所述設(shè)備子集的基數(shù)和分配給所述設(shè)備的離散節(jié)點號的數(shù)據(jù)傳送給所述設(shè)備子集的每個設(shè)備。
      18.根據(jù)權(quán)利要求17所述的非暫時性計算機可讀介質(zhì),其中所述指令的序列包括將使每個設(shè)備進(jìn)行以下操作的指令: 接收指示所述設(shè)備子集的基數(shù)和分配給所述設(shè)備的離散節(jié)點號的數(shù)據(jù); 接收所述一組數(shù)據(jù)包的數(shù)據(jù)包; 存儲所述數(shù)據(jù)包;以及 傳送響應(yīng)以選擇其序數(shù)值與所述子集的基數(shù)和分配給所述設(shè)備的離散節(jié)點號成預(yù)定關(guān)系的數(shù)據(jù)包。
      19.根據(jù)權(quán)利要求18所述的非暫時性計算機可讀介質(zhì),其中所述指令的序列包括將使所述設(shè)備子集的至少一個設(shè)備進(jìn)行以下操作的指令: 確定指示所述至少一個設(shè)備之前成功地接收了所述一組數(shù)據(jù)包的被接收的數(shù)據(jù)包的結(jié)果;以及 響應(yīng)于確定所述結(jié)果,接收所述一組數(shù)據(jù)包的另一數(shù)據(jù)包,而不將所接收的數(shù)據(jù)包存儲在所述至少一個設(shè)備中。
      20.根據(jù)權(quán)利要求18所述的非暫時性計算機可讀介質(zhì),其中所述指令的序列包括將使所述第二設(shè)備進(jìn)行以下操作的指令: 確定指示所述第二設(shè)備沒有成功地接收所述第一數(shù)據(jù)包的第一結(jié)果; 存儲指示所述第一結(jié)果的數(shù)據(jù); 確定指示所述第一數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果不等于分配給所述第二設(shè)備的離散節(jié)點號的第二結(jié)果; 響應(yīng)于確定所述第二結(jié)果,延遲所述第二響應(yīng)的傳送; 確定指示所述第二數(shù)據(jù)包的序數(shù)值對所述子集的基數(shù)取模的結(jié)果等于分配給所述第二設(shè)備的離散節(jié)點號的第三結(jié)果;以及 響應(yīng)于確定所述第三結(jié)果 ,傳送所述第二響應(yīng)。
      【文檔編號】H04L12/18GK103609065SQ201280029517
      【公開日】2014年2月26日 申請日期:2012年4月18日 優(yōu)先權(quán)日:2011年4月19日
      【發(fā)明者】丹尼爾·C·科恩, 詹姆士·S·斯皮塔埃爾, 布萊恩·帕特里克·默恩斯, 希曼蘇·特里維迪, 維什沃斯·默罕艾拉杰·德奧卡 申請人:施耐德電氣It公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1