TW201824005A - 使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法 - Google Patents

使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法 Download PDF

Info

Publication number
TW201824005A
TW201824005A TW105142946A TW105142946A TW201824005A TW 201824005 A TW201824005 A TW 201824005A TW 105142946 A TW105142946 A TW 105142946A TW 105142946 A TW105142946 A TW 105142946A TW 201824005 A TW201824005 A TW 201824005A
Authority
TW
Taiwan
Prior art keywords
data
client
group
packet
server
Prior art date
Application number
TW105142946A
Other languages
English (en)
Other versions
TWI635396B (zh
Inventor
劉福成
李哲
Original Assignee
英業達股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英業達股份有限公司 filed Critical 英業達股份有限公司
Priority to TW105142946A priority Critical patent/TWI635396B/zh
Publication of TW201824005A publication Critical patent/TW201824005A/zh
Application granted granted Critical
Publication of TWI635396B publication Critical patent/TWI635396B/zh

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一種使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法,其透過在客戶端設置緩衝區與儲存媒體兩階記憶體,當客戶端接收到伺服器所傳送的群播封包時,先將群播封包中的封包資料暫存於緩衝區中,當緩衝區中儲存完整的資料區塊時,將資料區塊由緩衝區中移動到儲存媒體中,並在儲存媒體中的資料區塊不連續時,通知伺服器重送遺失的群播封包之技術手段,可以加快客戶端的資料接收與處理速度,並達成以較短時間較少頻寬完成資料傳送的技術功效。

Description

使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法
一種資料傳輸系統及資料接收與資料傳送方法,特別係指一種使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法。
多點廣播(multicast,又稱群播)技術的優點是伺服器可以同時向多個客戶端發送資料,相對於傳統TCP所使用之單點傳播(unicast)的方式而言,群播技術佔用更少的頻寬。但群播技術的缺點是在資料傳送過程中可能會有封包遺失,尤其容易在傳輸的資料比較大時,或是在客戶端資料接收或處理速度不佳時發生。
為了解決使用群播技術在資料傳輸過程可能遺失封包的問題,客戶端在判斷出封包遺失時,可以向伺服器請求重送遺失的封包(補包)。然而,一旦需要向伺服器請求重送封包,也就表示資料完成傳送的時間將會延長。一旦因為客戶端資料接收或處理速度不佳而導致封包大量遺失,這將造成資料傳送時間大幅度的增加。
綜上所述,可知先前技術中長期以來一直存在群播技術在傳輸過程中可能因為客戶端資料接收或處理速度不佳導致封包大量遺失而延長資料傳輸時間的問題,因此有必要提出改進的技術手段,來解決此一問題。
有鑒於先前技術存在傳輸過程中可能因為客戶端資料接收或處理速度不佳導致封包大量遺失而延長資料傳輸時間的問題,本發明遂揭露一種使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法,其中:
本發明所揭露之使用兩階記憶體處理封包資料之資料傳輸系統,至少包含:伺服器與客戶端。其中,伺服器更包含:伺服處理模組,用以將目標資料分割為多個資料區塊並分割各資料區塊為封包資料;伺服傳輸模組,用以以一定的頻率或速度按順序使用群播封包發送資料區塊,其中,群播封包包含封包資料,及用以接收各客戶端所傳送之補包請求,合併重複之補包請求,並依據補包請求發送相對應之群播封包。客戶端更包含:緩衝區;客戶儲存媒體;客戶傳輸模組,用以向伺服器請求加入群播群組,及用以在緩衝區中配置記憶體空間,接收群播封包,並將群播封包中之封包資料寫入記憶體空間中之對應位置;客戶處理模組,用以判斷記憶體空間所儲存之封包資料已組成完整之資料區塊時,將資料區塊由緩衝區移動到客戶儲存媒體中,及用以依據客戶儲存媒體中所儲存之資料區塊之識別資料判斷資料區塊不連續時,透過客戶傳輸模組通知伺服器,及依據客戶儲存媒體中所儲存之資料區塊之識別資料判斷客戶儲存媒體已儲存完整目標資料時通該客戶傳輸模組退出群播群組。
本發明所揭露之資料傳送之方法,應用於伺服器,伺服器提供客戶端連接,其步驟至少包括:將目標資料分割為多個資料區塊,並分割各資料區塊為封包資料;接收客戶端所傳送之群組加入請求,並依據客戶端之數量及目標資料之發送次數允許或拒絕客戶端加入群播群組;重複下列步驟直到目標資料已重複發送一定次數或客戶端都退出群播群組:以一定的頻率或速度按資料區塊於目標資料中的順序選擇資料區塊;使用群播封包發送被選擇之資料區塊,群播封包包含封包資料;合併客戶端所傳送之重複之補包請求;依據補包請求發送相對應之群播封包。
本發明所揭露之使用兩階記憶體處理封包資料之資料接收方法,應用於客戶端,客戶端包含緩衝區及客戶儲存媒體,且與伺服器連接,其步驟至少包括:向伺服器請求加入群播群組;在緩衝區中配置記憶體空間;接收伺服器所傳送之群播封包,並將群播封包中之封包資料寫入記憶體空間中之對應位置;判斷記憶體空間所儲存之封包資料已組成完整之資料區塊時,由緩衝區移動資料區塊至客戶儲存媒體中;依據客戶儲存媒體中所儲存之資料區塊之識別資料判斷資料區塊不連續時,傳送與不連續之資料區塊相對應之補包請求至伺服器;依據客戶儲存媒體中所儲存之資料區塊之識別資料判斷客戶儲存媒體已儲存完整目標資料時退出群播群組。
本發明所揭露之系統與方法如上,與先前技術之間的差異在於本發明透過在客戶端設置緩衝區與儲存媒體兩階記憶體,當客戶端接收到伺服器所傳送的群播封包時,先將群播封包中的封包資料暫存於緩衝區中,當緩衝區中儲存完整的資料區塊時,將資料區塊由緩衝區中移動到儲存媒體中,並在儲存媒體中的資料區塊不連續時,通知伺服器重送遺失的群播封包,藉以解決先前技術所存在的問題,並可以達成以較短時間較少頻寬完成資料傳送的技術功效。
以下將配合圖式及實施例來詳細說明本發明之特徵與實施方式,內容足以使任何熟習相關技藝者能夠輕易地充分理解本發明解決技術問題所應用的技術手段並據以實施,藉此實現本發明可達成的功效。
本發明應用於伺服器對大量客戶端使用群播(multicast)技術的網路環境中,其中,本發明在客戶端中額外設置有緩衝區,藉以讓客戶端在接收由伺服器所發出的群播封包時,可以將接收到的群播封包暫存於緩衝區中,而後再將儲存緩衝區中的完整資料寫入儲存媒體中。
以下先以「第1圖」本發明所提之伺服器之元件示意圖以及「第2圖」本發明所提之客戶端之元件示意圖來說明本發明的系統運作。如「第1圖」與「第2圖」所示,本發明之系統含有伺服器100以及客戶端200。
伺服器100負責接收客戶端200所傳送的群組加入請求,並依據伺服器100當前的狀態選擇是否讓客戶端200加入群播群組,另外,伺服器100也負責透過群播技術將目標資料以群播封包發送給同一群播群組內的客戶端200。其中,伺服器100更包含伺服儲存媒體110、伺服處理模組120、以及伺服傳輸模組130。
伺服儲存媒體110負責儲存目標資料。伺服儲存媒體110所儲存的目標資料通常為檔案大小較大的檔案,但本發明並不以此為限。
伺服處理模組120負責以預定的區塊長度(例如:2 MB,但本發明並不以此為限)將伺服儲存媒體110所儲存的目標資料分割為多個資料區塊,並以預定的資料長度(例如:32 KB,但本發明亦不以此為限)將每一個資料區塊分割為一個或多個封包資料。其中,伺服處理模組120分割產生的各個資料區塊依照對應到目標資料的位置而具有相對應的順序。
在部分的實施例中,伺服傳輸模組130可以先壓縮分割產生的資料區塊,在將壓縮後的資料區塊分割為封包資料。
伺服傳輸模組130負責接收客戶端200所傳送的群組加入請求,並依據被請求加入之群播群組內的客戶端數量及/或目標資料的發送次數選擇允許或拒絕客戶端200加入群播群組。例如,當群播群組內的客戶端數量達到預定的上限值時,又如,當目標資料的發送次數達到預定的次數時,伺服傳輸模組130可以拒絕客戶端200加入所請求的群播群組。
伺服傳輸模組130也負責按順序選擇伺服處理模組120分割目標資料所產生的各個資料區塊,並將當前被選擇之資料區塊的封包資料逐一封裝為不同的群播封包後發送給客戶端200。例如,伺服傳輸模組130可以先將由第一個資料區塊分割產生的封包資料依序封裝為群播封包並發送給客戶端200,接著將由第二個資料區塊分割產生的封包資料依序封裝為群播封包並發送給客戶端200,依此類推。
伺服傳輸模組130可以依照一定的頻率或速度封裝一個封包資料為群播封包並發送被產生的群播封包到客戶端200,也可以一次將多個封包資料分別封裝為不同的群播封包後,依照一定的頻率或速度發送一個群播封包,本發明並沒有特別的限制。其中,上述之一定的頻率或速度可以是一定的時間間隔(例如每隔十毫秒)或是固定的時間(例如每秒中的第零毫秒與第50毫秒等),但本發明並不以此為限,且上述之一定的頻率或速度可以是系統的預定值,也可以是伺服器100管理者所設定的設定值。
一般而言,伺服傳輸模組130可以在伺服器100啟動後,接收到第一個客戶端200所傳送的群組加入請求並允許該客戶端200加入群播群組後,也就是該客戶端200與伺服器100建立連線後,依照預定的頻率或速度發送群播封包給加入群播群組的所有客戶端200,後續的任何客戶端200是否被允許或拒絕加入群播群組都不會影響伺服傳輸模組130向群播群組發送群播封包的頻率或速度。但本發明並不以此為限。在部分的實施例中,伺服傳輸模組130也可以在判斷群播群組中沒有任何客戶端200時停止發送群播封包。
伺服傳輸模組130還負責接收各個客戶端200所傳送的補包請求,並合併重複的補包請求(也就是在不同客戶端請求再次發送相同封包資料時,將請求相同封包資料的多個補包請求視為一個補包請求),以及依據所接收到的補包請求發送相對應的群播封包給發出補包請求的客戶端200。
在部分的實施例中,伺服傳輸模組130可以在接收到補包請求時,依據所接收到之補包請求所請求的群播封包丟棄發送順序在前一定數量的補包請求。也就是當當前所發送之封包資料與被請求之封包資料之間所具有的封包資料數多於預定值時,伺服傳輸模組130可以丟棄被請求之封包資料的補包請求。
客戶端200負責向伺服器100請求加入群播群組,並負責透過群播技術接收由伺服器100所發送的群播封包,藉以由伺服器100取得目標資料。其中,客戶端200包含緩衝區210、客戶傳輸模組220、客戶處理模組230、以及客戶儲存媒體240。
緩衝區210負責提供客戶傳輸模組220暫存所接收到的封包資料。緩衝區210可以使用隨機存取記憶體、快閃記憶體、或其他的儲存媒體,本發明並沒有特別的限制。特別值得一提的是,緩衝區210與習知網路卡上之緩衝區(buffer)不同,通常為額外配置的記憶體。
客戶傳輸模組220負責傳送群組加入請求給伺服器100,藉以向伺服器100請求加入群播群組。
客戶傳輸模組220也負責在緩衝區210中配置記憶體空間,並接收到之群播封包中的封包資料寫入所配置之記憶體空間中的對應位置。一般而言,客戶傳輸模組220所接收到的群播封包中記載有足以讓客戶傳輸模組220辨識出所接收到之群播封包的順序的資料(例如群播封包表頭中的流水號或群播 封包內容中的編號等,本發明沒有特別的限制),使得客戶傳輸模組220可以依據所接收到之群播封包的順序將群播封包中的封包資料寫入記憶體空間中的對應位置。
客戶傳輸模組220可以在判斷出所配置的記憶體空間已滿時,刪除儲存時間最久的封包資料,藉以儲存新收到的封包資料。
在部分的實施例中,客戶傳輸模組220可以丟棄加入群播群組後之預定時間內所接收到的群播封包,藉以避免接收到不完整的群播封包而影響所接收到之資料的正確性。
客戶處理模組230負責判斷客戶傳輸模組220所配置之記憶體空間中所儲存的封包資料已可以組成完整的一個或多個資料區塊時,將已完整的資料區塊由緩衝區210移動到客戶儲存媒體240中,也就是將已完整的資料區塊複製到客戶儲存媒體240中儲存,並由緩衝區210中刪除已複製到客戶儲存媒體240中的封包資料。
客戶處理模組230也負責依據客戶儲存媒體240中所儲存之資料區塊的識別資料判斷被儲存於客戶儲存媒體240中的資料區塊不連續時,透過客戶傳輸模組220通知伺服器100,並在依據客戶儲存媒體240中所儲存之資料區塊的識別資料判斷客戶儲存媒體240已儲存完整目標資料時,通知客戶傳輸模組220退出群播群組。一般而言,上述之資料區塊的識別資料可以由任意數量的文字或數字任意排列而成,本發明沒有特別的限制,但不同資料區塊的識別資料並不重複。
接著以一個實施例來解說本發明的運作系統與方法,並請參照「第3圖」本發明所提之資料傳送方法之流程圖以及「第4圖」本發明所提之使用兩階記憶體處理封包資料之資料接收方法之流程圖。本實施例假設本發明應用於生產線上,但本發明並不以此為限。
在伺服器100啟動後,伺服器100的伺服處理模組120可以由伺服器100的伺服儲存媒體110中讀取目標資料,再將目標資料分割為多個資料區塊,並將各個資料區塊分割為封包資料(步驟305)。
之後,當客戶端200在生產線移動時,客戶端200的客戶傳輸模組220可以與伺服器100連接,並傳送群組加入請求給伺服器100,藉以向伺服器100請求加入群播群組(步驟402)。在本實施例中,假設客戶傳輸模組220可以透過無線網路與伺服器100連接,並透過無線網路技術傳送群組加入請求至伺服器100。
在伺服傳輸模組130接收到客戶端200所傳送的群組加入請求後,伺服傳輸模組130可以依據當前已加入同一群播群組的客戶端數量及/或目標資料當前的發送次數選擇允許或拒絕客戶端200加入所請求的群播群組(步驟320)。在本實施例中,假設客戶端200所請求加入之組播群組中的客戶端數量並未達到上限值200,且目標資料當前的發送次數也尚未達到預定次數5次,如此,伺服傳輸模組130可以選擇允許客戶端200加入所請求的群播群組。而若客戶端200所請求加入之組播群組已有200個其他客戶端加入,或目標資料當前的發送次數為第5次(最後一次)時,伺服傳輸模組130可以選擇拒絕客戶端200加入請求的群播群組,如此,客戶端200需要等待其他客戶端200離開所請求的群播群組,或是等待伺服傳輸模組130重新開始發送目標資料後,伺服傳輸模組130才可以選擇允許客戶端200加入群播群組。
當有任何客戶端200被允許加入群播群組,伺服傳輸模組130可以先以一定的頻率或速度按分割產生之資料區塊於目標檔案中的順序,依序選擇資料區塊(步驟330),再將被選擇之資料區塊中的各個封包資料依序封裝為群播封包,並發送封裝產生的群播封包給客戶端200(步驟340)。在本實施例中,假設伺服傳輸模組130在分割產生資料區塊後,可以先壓縮所產生的資料區塊,再將壓縮後的資料區塊分割為封包資料,並可以每隔預定的時間間隔發送群播封包給群播群組中的所有客戶端200。
在客戶端200加入群播群組後,客戶端200的客戶傳輸模組220可以在客戶端200的緩衝區210中配置記憶體空間(步驟406)。在本實施例中,假設客戶傳輸模組220所配置的記憶體空間為緩衝區210中之剩餘空間的75%。
之後,當客戶傳輸模組220接收到伺服傳輸模組130所傳送的群播封包時,可以將所接收到之群播封包中的封包資料寫入記憶體空間中的對應位置(步驟410)。在本實施例中,為了讓客戶端200確保所接收到之資料的正確性,在客戶端200加入群播群組後,客戶傳輸模組220可以丟棄預定時間內所接收到的所有群播封包。另外,當客戶傳輸模組220接收到伺服傳輸模組130所傳送的群播封包時,若記憶體空間已滿,則客戶傳輸模組220可以先刪除儲存時間最久的一個封包資料,再寫入所接收到的封包資料。
另外,同樣在客戶端200加入群播群組後,客戶端200的客戶處理模組230也可以判斷被客戶傳輸模組220所寫入緩衝區210中的封包資料是否已經組成完整的資料區塊(步驟420)。若是,則客戶處理模組230可以將已組成完整資料區塊的封包資料由緩衝區210一同移動到客戶端200的客戶儲存媒體240中(步驟430);若否,則客戶處理模組230可以繼續等待客戶傳輸模組220寫入緩衝區210中的封包資料組成完整的資料區塊。
在客戶處理模組230將組成完整資料區塊的封包資料由緩衝區210移動到客戶端200的客戶儲存媒體240後,客戶處理模組230可以進一步判斷儲存於客戶儲存媒體240中的資料區塊是否連續(步驟440)。若客戶儲存媒體240中的資料區塊不連續,則客戶傳輸模組220可以傳送與不連續之資料區塊對應的補包請求至伺服器100(步驟450),並繼續接收伺服器100所傳送的群播封包,以及將群播封包中的封包資料寫入記憶體空間中(步驟410)。例如,當客戶儲存媒體240中所儲存的資料區塊為第一與第三資料區塊,而沒有第二資料區塊時,客戶處理模組230可以判斷出客戶儲存媒體240中所儲存的資料區塊不連續,並通知客戶傳輸模組220檢查以寫入緩衝區210中之第二資料區塊的封包資料,並將尚未收到之第二資料區塊之封包資料的識別資料封裝為相對應的補包請求,在傳送所產生的補包請求給伺服器100。
在伺服傳輸模組130接收到客戶端200所傳送的補包請求時,伺服傳輸模組130可以先記錄被請求重送之封包資料的識別資料,並在完整的將一個資料區塊發送給客戶端200後,合併不同客戶端200所傳送之相同的補包請求(步驟350),並依據合併後的補包請求發送相對應的群播封包給客戶端200(步驟370)。在本實施例中,假設有兩個客戶端200請求重送識別資料為208的封包資料,有一個客戶端200請求重送識別資料為413的封包資料,則伺服傳輸模組130可以將兩個重送識別資料為208之封包資料的補包請求合併為一個,如此,伺服傳輸模組130將可以只傳送一個封裝識別資料為208之封包資料的群播封包以及一個封裝識別資料為413之封包資料的群播封包給客戶端200。
而若客戶處理模組230判斷儲存於客戶儲存媒體240中的資料區塊連續,則客戶處理模組230可以再次判斷客戶儲存媒體240中是否已儲存所有的資料區塊,也就是判斷客戶儲存媒體240中是否已儲存完整的目標資料(步驟460),若否,則繼續由客戶傳輸模組220接收伺服器100所傳送的群播封包,以及將群播封包中的封包資料寫入記憶體空間中(步驟410);若是,則客戶處理模組230可以決定讓客戶端200退出群播群組,使得客戶端200可以在生產線上繼續移動,且客戶傳輸模組220可以傳送群組退出訊息至伺服器100,使得客戶端200退出所加入的群播群組(步驟470)。
另外,在伺服傳輸模組130依據所接收到的補包請求發送相對應的群播封包給客戶端200(步驟370)後,伺服傳輸模組130可以判斷目標資料是否已發送達到一定次數或客戶端200是否都已退出所加入群播群組(步驟380)。若是,則伺服器100可以結束本發明;若否,也就是目標資料尚未發送一定次數(如5次)或仍然有客戶端200在群播群組中,則伺服傳輸模組130可以繼續以一定的頻率或速度按分割產生之資料區塊於目標檔案中的順序,依序選擇資料區塊(步驟330),再將被選擇之資料區塊中的各個封包資料依序封裝為群播封包,並發送封裝產生的群播封包給客戶端200(步驟340)。
綜上所述,可知本發明與先前技術之間的差異在於具有客戶端設置緩衝區與儲存媒體兩階記憶體,當客戶端接收到伺服器所傳送的群播封包時,先將群播封包中的封包資料暫存於緩衝區中,當緩衝區中儲存完整的資料區塊時,將資料區塊由緩衝區中移動到儲存媒體中,並在儲存媒體中的資料區塊不連續時,通知伺服器重送遺失的群播封包之技術手段,藉由此一技術手段可以來解決先前技術所存在傳輸過程中可能因為客戶端資料接收或處理速度不佳導致封包大量遺失而延長資料傳輸時間的問題,進而達成以較短時間較少頻寬完成資料傳送的技術功效。
上述的實施例中,在伺服傳輸模組130接收到客戶端200所傳送的補包請求時,伺服傳輸模組130也可以依據所接收到之補包請求所請求的群播封包丟棄發送順序在前一定數量的補包請求。在本實施例中,假設當前所發送之封包資料的識別資料為315,被請求之封包資料的識別資料為228,由於被請求之封包資料與當前所發送之封包資料的順序差為87,此一順序差多於預定值50時,伺服傳輸模組130可以丟棄被請求之封包資料的補包請求,並記錄沒有被丟棄之被請求之封包資料的識別資料,也就是選擇不重送發送順序在前一定數量的封包資料。換句話說,如此一來,當客戶端200請求重送發送順序在前一定數量的封包資料時,客戶端200將無法立刻接收到請求重送的封包資料,而是需要等待伺服傳輸模組130再次由第一資料區塊、第二資料區塊、…的順序重新發送各個封包資料給客戶端200時,才能接收到請求重送的封包資料。
再者,本發明之使用兩階記憶體處理封包資料之資料接收方法與資料傳送方法,可實現於硬體、軟體或硬體與軟體之組合中,亦可在電腦系統中以集中方式實現或以不同元件散佈於若干互連之電腦系統的分散方式實現。
雖然本發明所揭露之實施方式如上,惟所述之內容並非用以直接限定本發明之專利保護範圍。任何本發明所屬技術領域中具有通常知識者,在不脫離本發明所揭露之精神和範圍的前提下,對本發明之實施的形式上及細節上作些許之更動潤飾,均屬於本發明之專利保護範圍。本發明之專利保護範圍,仍須以所附之申請專利範圍所界定者為準。
100‧‧‧伺服器
110‧‧‧伺服儲存媒體
120‧‧‧伺服處理模組
130‧‧‧伺服傳輸模組
200‧‧‧客戶端
210‧‧‧緩衝區
220‧‧‧客戶傳輸模組
230‧‧‧客戶處理模組
240‧‧‧客戶儲存媒體
步驟305‧‧‧將目標資料分割為多個資料區塊,並分割資料區塊為封包資料
步驟320‧‧‧接收客戶端所傳送之群組加入請求,並依據客戶端之數量及目標資料之發送次數允許或拒絕客戶端加入群播群組
步驟330‧‧‧以一定的頻率或速度按資料區塊於目標資料中的順序選擇資料區塊
步驟340‧‧‧使用群播封包發送被選擇之資料區塊,群播封包包含封包資料
步驟350‧‧‧合併客戶端所傳送之重複之補包請求
步驟370‧‧‧依據補包請求發送相對應之群播封包
步驟380‧‧‧目標資料是否已重複發送一定次數或客戶端是否都退出群播群組
步驟402‧‧‧向伺服器請求加入群播群組
步驟406‧‧‧在緩衝區中配置記憶體空間
步驟410‧‧‧接收伺服器所傳送之群播封包,並將群播封包中之封包資料寫入記憶體空間中之對應位置
步驟420‧‧‧封包資料是否已組成完整之資料區塊
步驟430‧‧‧由緩衝區移動資料區塊至客戶儲存媒體中
步驟440‧‧‧資料區塊是否連續
步驟450‧‧‧傳送與不連續之資料區塊對應之補包請求至伺服器
步驟460‧‧‧是否已儲存完整目標資料
步驟470‧‧‧退出群播群組
第1圖為本發明所提之伺服器之元件示意圖。 第2圖為本發明所提之客戶端之元件示意圖。 第3圖為本發明所提之資料傳送方法之流程圖。 第4圖為本發明所提之使用兩階記憶體處理封包資料之資料接收方法之流程圖。

Claims (10)

  1. 一種使用兩階記憶體處理封包資料之資料傳輸系統,該資料傳輸系統至少包含: 一伺服器,其中更包含: 一伺服處理模組,用以將一目標資料分割為多個資料區塊並分割各該資料區塊為至少一封包資料;及 一伺服傳輸模組,用以依照一定的頻率或速度按順序使用至少一群播封包發送一該資料區塊,其中,各該群播封包包含一該封包資料,及用以接收各該客戶端所傳送之各補包請求,合併重複之各該補包請求,並依據該些補包請求發送相對應之各該群播封包;及 一客戶端,其中更包含: 一緩衝區; 一客戶儲存媒體; 一客戶傳輸模組,用以向該伺服器請求加入一群播群組,及用以在該緩衝區中配置一記憶體空間,接收至少一群播封包,並將各該群播封包中之封包資料寫入該記憶體空間中之對應位置;及 一客戶處理模組,用以判斷該記憶體空間所儲存之該些封包資料已組成完整之至少一資料區塊時,將各該資料區塊由該緩衝區移動到該客戶儲存媒體中,及用以依據該客戶儲存媒體中所儲存之該些資料區塊之識別資料判斷該些資料區塊不連續時,透過該客戶傳輸模組通知該伺服器,及依據該客戶儲存媒體中所儲存之該些資料區塊之識別資料判斷該客戶儲存媒體已儲存完整目標資料時通知該客戶傳輸模組退出該群播群組。
  2. 如申請專利範圍第1項所述之使用兩階記憶體處理封包資料之資料傳輸系統,其中該客戶資料傳輸模組更用以丟棄加入群播群組後一預定時間內所接收到之該些群播封包。
  3. 如申請專利範圍第1項所述之使用兩階記憶體處理封包資料之資料傳輸系統,其中該伺服傳輸模組更用以依據各該補包請求所請求之群播封包丟棄發送順序在前一定數量之各該補包請求。
  4. 如申請專利範圍第1項所述之使用兩階記憶體處理封包資料之資料傳輸系統,其中該伺服傳輸模組更用以依據該群播群組內之客戶端數量及/或該目標資料之發送次數選擇允許或拒絕該客戶端加入該群播群組。
  5. 一種使用兩階記憶體處理封包資料之資料接收方法,係應用於一客戶端,該客戶端包含一緩衝區及一客戶儲存媒體,且與一伺服器連接,該資料接收方法至少包含下列步驟: 向該伺服器請求加入一群播群組; 在該緩衝區中配置一記憶體空間; 接收該伺服器所傳送之至少一群播封包,並將各該群播封包中之封包資料寫入該記憶體空間中之對應位置; 判斷該記憶體空間所儲存之該些封包資料已組成完整之至少一資料區塊時,由該緩衝區移動各該資料區塊至該客戶儲存媒體中; 依據該客戶儲存媒體中所儲存之該些資料區塊之識別資料判斷該些資料區塊不連續時,傳送與不連續之該些資料區塊相對應之補包請求至該伺服器;及 依據該客戶儲存媒體中所儲存之該些資料區塊之識別資料判斷該客戶儲存媒體已儲存完整目標資料時退出該群播群組。
  6. 如申請專利範圍第5項所述之使用兩階記憶體處理封包資料之資料接收方法,其中該資料接收方法於將各該群播封包中之封包資料寫入該記憶體空間中之對應位置之步驟前,更包含丟棄預定時間內所接收到之該些群播封包之步驟。
  7. 如申請專利範圍第5項所述之使用兩階記憶體處理封包資料之資料接收方法,其中將各該群播封包中之封包資料寫入該記憶體空間中之對應位置之步驟更包含判斷該記憶體空間已滿時,刪除儲存時間最久之一該封包資料之步驟。
  8. 一種資料傳輸方法,係應用於一伺服器,該伺服器提供至少一客戶端連接,該資料傳輸方法至少包含下列步驟: 將一目標資料分割為多個資料區塊,並分割各該資料區塊為至少一封包資料; 接收一該客戶端所傳送之一群組加入請求,並依據該些客戶端之數量及該目標資料之發送次數允許或拒絕該客戶端加入一群播群組;及 重複下列步驟直到該目標資料已重複發送一定次數或該些客戶端都退出該群播群組: 以一定的頻率或速度按各該資料區塊於目標資料中的順序選擇一該資料區塊; 使用至少一群播封包發送該被選擇之資料區塊,各該群播封包包含一該封包資料; 合併各該客戶端所傳送之重複之各補包請求;及 依據該些補包請求發送相對應之各該群播封包。
  9. 如申請專利範圍第8項所述之資料傳輸方法,其中該資料傳輸方法於合併各該客戶端所傳送之重複之各該補包請求之步驟後,更包含丟棄發送順序在前一定數量之各該補包請求步驟。
  10. 如申請專利範圍第8項所述之資料傳輸方法,其中以一定的頻率或速度按順序使用至少一群播封包發送一該資料區塊之步驟更包含壓縮該資料區塊之步驟。
TW105142946A 2016-12-23 2016-12-23 使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法 TWI635396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW105142946A TWI635396B (zh) 2016-12-23 2016-12-23 使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105142946A TWI635396B (zh) 2016-12-23 2016-12-23 使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法

Publications (2)

Publication Number Publication Date
TW201824005A true TW201824005A (zh) 2018-07-01
TWI635396B TWI635396B (zh) 2018-09-11

Family

ID=63639738

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105142946A TWI635396B (zh) 2016-12-23 2016-12-23 使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法

Country Status (1)

Country Link
TW (1) TWI635396B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10785306B1 (en) 2019-07-11 2020-09-22 Alibaba Group Holding Limited Data transmission and network interface controller
CN110460412B (zh) * 2019-07-11 2021-09-07 创新先进技术有限公司 用于数据传输的方法和rdma网卡

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060146822A1 (en) * 2004-12-30 2006-07-06 Mikolaj Kolakowski System, protocol and associated methods for wireless multimedia distribution
TW201119290A (en) * 2009-11-16 2011-06-01 Univ Nat Pingtung Sci & Tech Share transmission method of multimedia streaming transmission
TWI389515B (zh) * 2009-12-04 2013-03-11 Univ Nat Pingtung Sci & Tech 多媒體串流傳輸之錯誤修補方法
WO2011072422A1 (en) * 2009-12-17 2011-06-23 Intel Corporation Method and system for facilitating one-to-many data transmissions with reduced network overhead
TW201227372A (en) * 2010-12-22 2012-07-01 Inventec Corp Multicast downloading method for image file

Also Published As

Publication number Publication date
TWI635396B (zh) 2018-09-11

Similar Documents

Publication Publication Date Title
CN111539726B (zh) 区块链共识系统及方法
TWI376126B (en) Bandwidth reservation for data flows in interconnection networks
US8937920B2 (en) High capacity network communication link using multiple cellular devices
CN109560901B (zh) 一种数据重传方法、装置、终端设备及存储介质
US20130138771A1 (en) Apparatus and method for transmitting data
US20110246763A1 (en) Parallel method, machine, and computer program product for data transmission and reception over a network
CN105450785B (zh) 一种文件传输方法和装置
CN112653656B (zh) 一种基于应用层协议的数据通信方法及其装置
CN109561054B (zh) 一种数据传输方法、控制器及接入设备
WO2016095149A1 (zh) 一种数据压缩存储方法、装置,及分布式文件系统
US10020916B2 (en) Method and apparatus for data communication of vehicle
TWI635396B (zh) 使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法
CN112100146A (zh) 一种高效的纠删分布式存储写入方法、系统、介质及终端
WO2019154330A1 (zh) 一种反馈方法、系统、电子设备和计算机可读存储介质
US20070136484A1 (en) Transmit request management in a distributed shared storage system
US20160294729A1 (en) Packet memory system, method and device for preventing underrun
CN111404842B (zh) 数据传输方法、装置及计算机存储介质
CN109726144B (zh) 一种数据报文的处理方法和装置
CN102238206A (zh) 映像文件的补包方法
CN105450679A (zh) 进行数据云存储的方法及系统
CN109862297B (zh) 窗口调整方法、装置及可读存储介质
CN116389455A (zh) 一种文件传输方法、系统及电子设备
CN110837573A (zh) 分布式音频文件存储与读取方法及系统
CN104754760B (zh) 一种分组业务重建方法和终端
CN115665487A (zh) 一种影像数据传输方法、装置、计算机设备