TWI635396B - Data transmission system, a data receiving method and a data transmission method using two-stage memories to handle packet data - Google Patents

Data transmission system, a data receiving method and a data transmission method using two-stage memories to handle packet data Download PDF

Info

Publication number
TWI635396B
TWI635396B TW105142946A TW105142946A TWI635396B TW I635396 B TWI635396 B TW I635396B TW 105142946 A TW105142946 A TW 105142946A TW 105142946 A TW105142946 A TW 105142946A TW I635396 B TWI635396 B TW I635396B
Authority
TW
Taiwan
Prior art keywords
data
client
group
packet
server
Prior art date
Application number
TW105142946A
Other languages
Chinese (zh)
Other versions
TW201824005A (en
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/en
Publication of TW201824005A publication Critical patent/TW201824005A/en
Application granted granted Critical
Publication of TWI635396B publication Critical patent/TWI635396B/en

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一種使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法,其透過在客戶端設置緩衝區與儲存媒體兩階記憶體,當客戶端接收到伺服器所傳送的群播封包時,先將群播封包中的封包資料暫存於緩衝區中,當緩衝區中儲存完整的資料區塊時,將資料區塊由緩衝區中移動到儲存媒體中,並在儲存媒體中的資料區塊不連續時,通知伺服器重送遺失的群播封包之技術手段,可以加快客戶端的資料接收與處理速度,並達成以較短時間較少頻寬完成資料傳送的技術功效。A data transmission system, a data receiving method, and a data transmission method for processing packet data by using two-stage memory, by setting a buffer and a storage medium two-level memory on a client, when the client receives the group transmitted by the server When the packet is broadcast, the packet data in the multicast packet is temporarily stored in the buffer. When the complete data block is stored in the buffer, the data block is moved from the buffer to the storage medium and stored in the storage medium. When the data block in the data is not continuous, the technical means for notifying the server to resend the lost multicast packet can speed up the data receiving and processing speed of the client, and achieve the technical effect of completing the data transmission with less time and less bandwidth.

Description

使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法Data transmission system, data receiving method, and data transmission method for processing packet data using two-stage memory

一種資料傳輸系統及資料接收與資料傳送方法,特別係指一種使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法。A data transmission system, a data receiving and data transmission method, in particular, a data transmission system, a data receiving method, and a data transmission method for processing packet data using two-stage memory.

多點廣播(multicast,又稱群播)技術的優點是伺服器可以同時向多個客戶端發送資料,相對於傳統TCP所使用之單點傳播(unicast)的方式而言,群播技術佔用更少的頻寬。但群播技術的缺點是在資料傳送過程中可能會有封包遺失,尤其容易在傳輸的資料比較大時,或是在客戶端資料接收或處理速度不佳時發生。The advantage of multicast (multicast, also known as multicast) technology is that the server can send data to multiple clients at the same time. Compared with the traditional unicast method used by TCP, the multicast technology takes up more. Less bandwidth. However, the shortcoming of the multicast technology is that packets may be lost during the data transmission process, especially when the data transmitted is relatively large, or when the client data is received or processed at a low speed.

為了解決使用群播技術在資料傳輸過程可能遺失封包的問題,客戶端在判斷出封包遺失時,可以向伺服器請求重送遺失的封包(補包)。然而,一旦需要向伺服器請求重送封包,也就表示資料完成傳送的時間將會延長。一旦因為客戶端資料接收或處理速度不佳而導致封包大量遺失,這將造成資料傳送時間大幅度的增加。In order to solve the problem that the packet transmission technology may lose the packet during the data transmission process, the client may request the server to resend the lost packet (refill) when it is determined that the packet is lost. However, once the server needs to request a resend packet, it means that the data transfer time will be extended. Once the packet is lost due to poor client data reception or processing speed, this will result in a significant increase in data transfer time.

綜上所述,可知先前技術中長期以來一直存在群播技術在傳輸過程中可能因為客戶端資料接收或處理速度不佳導致封包大量遺失而延長資料傳輸時間的問題,因此有必要提出改進的技術手段,來解決此一問題。In summary, it can be seen that in the prior art, there has been a long-standing problem that the multicast technology may prolong the data transmission time due to the loss of the client data due to the poor reception or processing speed of the client data, so it is necessary to propose an improved technology. Means to solve this problem.

有鑒於先前技術存在傳輸過程中可能因為客戶端資料接收或處理速度不佳導致封包大量遺失而延長資料傳輸時間的問題,本發明遂揭露一種使用兩階記憶體處理封包資料之資料傳輸系統、資料接收方法、及資料傳送方法,其中:In view of the prior art, there is a problem that the data transmission time is prolonged due to the loss of a large amount of packets due to poor reception or processing speed of the client data, and the present invention discloses a data transmission system and data for processing packet data using two-stage memory. Receiving method and data transmitting method, wherein:

本發明所揭露之使用兩階記憶體處理封包資料之資料傳輸系統,至少包含:伺服器與客戶端。其中,伺服器更包含:伺服處理模組,用以將目標資料分割為多個資料區塊並分割各資料區塊為封包資料;伺服傳輸模組,用以以一定的頻率或速度按順序使用群播封包發送資料區塊,其中,群播封包包含封包資料,及用以接收各客戶端所傳送之補包請求,合併重複之補包請求,並依據補包請求發送相對應之群播封包。客戶端更包含:緩衝區;客戶儲存媒體;客戶傳輸模組,用以向伺服器請求加入群播群組,及用以在緩衝區中配置記憶體空間,接收群播封包,並將群播封包中之封包資料寫入記憶體空間中之對應位置;客戶處理模組,用以判斷記憶體空間所儲存之封包資料已組成完整之資料區塊時,將資料區塊由緩衝區移動到客戶儲存媒體中,及用以依據客戶儲存媒體中所儲存之資料區塊之識別資料判斷資料區塊不連續時,透過客戶傳輸模組通知伺服器,及依據客戶儲存媒體中所儲存之資料區塊之識別資料判斷客戶儲存媒體已儲存完整目標資料時通該客戶傳輸模組退出群播群組。The data transmission system for processing packet data using two-level memory disclosed in the present invention comprises at least a server and a client. The server further includes: a servo processing module, configured to divide the target data into a plurality of data blocks and divide each data block into packet data; and the servo transmission module is used to sequentially use at a certain frequency or speed. The multicast packet sends a data block, wherein the multicast packet includes the packet data, and is configured to receive the replenishment request transmitted by each client, merge the repeated replenishment request, and send the corresponding multicast packet according to the replenishment request. . The client further includes: a buffer; a client storage medium; a client transmission module, configured to request the server to join the multicast group, and configured to allocate a memory space in the buffer, receive the multicast packet, and multicast the group. The packet data in the packet is written into the corresponding location in the memory space; the client processing module is configured to move the data block from the buffer to the client when the packet data stored in the memory space has been formed into a complete data block. The storage medium is used to notify the server through the client transmission module when the data block is determined to be discontinuous according to the identification data of the data block stored in the customer storage medium, and according to the data block stored in the customer storage medium. The identification data determines that the customer storage medium has stored the complete target data and exits the multicast group through the customer transmission module.

本發明所揭露之資料傳送之方法,應用於伺服器,伺服器提供客戶端連接,其步驟至少包括:將目標資料分割為多個資料區塊,並分割各資料區塊為封包資料;接收客戶端所傳送之群組加入請求,並依據客戶端之數量及目標資料之發送次數允許或拒絕客戶端加入群播群組;重複下列步驟直到目標資料已重複發送一定次數或客戶端都退出群播群組:以一定的頻率或速度按資料區塊於目標資料中的順序選擇資料區塊;使用群播封包發送被選擇之資料區塊,群播封包包含封包資料;合併客戶端所傳送之重複之補包請求;依據補包請求發送相對應之群播封包。The method for transmitting data disclosed in the present invention is applied to a server, and the server provides a client connection, and the steps include at least: dividing the target data into multiple data blocks, and dividing each data block into packet data; receiving the client The group sent by the terminal joins the request, and allows or denies the client to join the multicast group according to the number of clients and the number of times the target data is sent; repeat the following steps until the target data has been sent repeatedly for a certain number of times or the client exits the multicast group. Group: select the data block in the order of the data block in the target data at a certain frequency or speed; use the group broadcast packet to send the selected data block, the multicast packet contains the packet data; and the duplicate transmitted by the merge client The replenishment request; the corresponding multicast packet is sent according to the replenishment request.

本發明所揭露之使用兩階記憶體處理封包資料之資料接收方法,應用於客戶端,客戶端包含緩衝區及客戶儲存媒體,且與伺服器連接,其步驟至少包括:向伺服器請求加入群播群組;在緩衝區中配置記憶體空間;接收伺服器所傳送之群播封包,並將群播封包中之封包資料寫入記憶體空間中之對應位置;判斷記憶體空間所儲存之封包資料已組成完整之資料區塊時,由緩衝區移動資料區塊至客戶儲存媒體中;依據客戶儲存媒體中所儲存之資料區塊之識別資料判斷資料區塊不連續時,傳送與不連續之資料區塊相對應之補包請求至伺服器;依據客戶儲存媒體中所儲存之資料區塊之識別資料判斷客戶儲存媒體已儲存完整目標資料時退出群播群組。The data receiving method for processing packet data by using the two-level memory disclosed in the present invention is applied to a client, the client includes a buffer and a client storage medium, and is connected to the server, and the steps include at least: requesting the joining group to the server Broadcast group; configure memory space in the buffer; receive the multicast packet transmitted by the server, and write the packet data in the multicast packet to the corresponding position in the memory space; determine the packet stored in the memory space When the data has formed a complete data block, the data block is moved from the buffer to the customer storage medium; when the data block is determined to be discontinuous according to the identification data of the data block stored in the customer storage medium, the transmission and the discontinuity are The data block corresponds to the replenishment request to the server; and according to the identification data of the data block stored in the customer storage medium, it is judged that the customer storage medium has stored the complete target data and exits the multicast group.

本發明所揭露之系統與方法如上,與先前技術之間的差異在於本發明透過在客戶端設置緩衝區與儲存媒體兩階記憶體,當客戶端接收到伺服器所傳送的群播封包時,先將群播封包中的封包資料暫存於緩衝區中,當緩衝區中儲存完整的資料區塊時,將資料區塊由緩衝區中移動到儲存媒體中,並在儲存媒體中的資料區塊不連續時,通知伺服器重送遺失的群播封包,藉以解決先前技術所存在的問題,並可以達成以較短時間較少頻寬完成資料傳送的技術功效。The system and method disclosed in the present invention are as above, and the difference from the prior art is that the present invention sets a buffer and a storage medium two-level memory on the client side, when the client receives the multicast packet transmitted by the server, First, the packet data in the multicast packet is temporarily stored in the buffer. When the complete data block is stored in the buffer, the data block is moved from the buffer to the storage medium and is in the data area in the storage medium. When the block is discontinuous, the notification server resends the lost multicast packet to solve the problems in the prior art, and can achieve the technical effect of completing the data transmission in a shorter time and less bandwidth.

以下將配合圖式及實施例來詳細說明本發明之特徵與實施方式,內容足以使任何熟習相關技藝者能夠輕易地充分理解本發明解決技術問題所應用的技術手段並據以實施,藉此實現本發明可達成的功效。The features and embodiments of the present invention will be described in detail below with reference to the drawings and embodiments, which are sufficient to enable those skilled in the art to fully understand the technical means to which the present invention solves the technical problems, and The achievable effects of the present invention.

本發明應用於伺服器對大量客戶端使用群播(multicast)技術的網路環境中,其中,本發明在客戶端中額外設置有緩衝區,藉以讓客戶端在接收由伺服器所發出的群播封包時,可以將接收到的群播封包暫存於緩衝區中,而後再將儲存緩衝區中的完整資料寫入儲存媒體中。The present invention is applied to a network environment in which a server uses a multicast technology for a large number of clients, wherein the present invention additionally provides a buffer in the client, so that the client receives the group sent by the server. When the packet is broadcast, the received multicast packet can be temporarily stored in the buffer, and then the complete data in the storage buffer is written into the storage medium.

以下先以「第1圖」本發明所提之伺服器之元件示意圖以及「第2圖」本發明所提之客戶端之元件示意圖來說明本發明的系統運作。如「第1圖」與「第2圖」所示,本發明之系統含有伺服器100以及客戶端200。Hereinafter, the operation of the system of the present invention will be described with reference to the components of the server of the present invention and the schematic diagram of the components of the client proposed by the present invention in the "Fig. 1". As shown in "Fig. 1" and "Fig. 2", the system of the present invention includes a server 100 and a client 200.

伺服器100負責接收客戶端200所傳送的群組加入請求,並依據伺服器100當前的狀態選擇是否讓客戶端200加入群播群組,另外,伺服器100也負責透過群播技術將目標資料以群播封包發送給同一群播群組內的客戶端200。其中,伺服器100更包含伺服儲存媒體110、伺服處理模組120、以及伺服傳輸模組130。The server 100 is responsible for receiving the group join request transmitted by the client 200, and selecting whether to allow the client 200 to join the multicast group according to the current state of the server 100. In addition, the server 100 is also responsible for the target data through the multicast technology. The multicast packet is sent to the client 200 in the same multicast group. The server 100 further includes a servo storage medium 110, a servo processing module 120, and a servo transmission module 130.

伺服儲存媒體110負責儲存目標資料。伺服儲存媒體110所儲存的目標資料通常為檔案大小較大的檔案,但本發明並不以此為限。The servo storage medium 110 is responsible for storing the target data. The target data stored in the servo storage medium 110 is usually a file with a large file size, but the invention is not limited thereto.

伺服處理模組120負責以預定的區塊長度(例如:2 MB,但本發明並不以此為限)將伺服儲存媒體110所儲存的目標資料分割為多個資料區塊,並以預定的資料長度(例如:32 KB,但本發明亦不以此為限)將每一個資料區塊分割為一個或多個封包資料。其中,伺服處理模組120分割產生的各個資料區塊依照對應到目標資料的位置而具有相對應的順序。The servo processing module 120 is responsible for dividing the target data stored in the servo storage medium 110 into a plurality of data blocks with a predetermined block length (for example, 2 MB, but the invention is not limited thereto), and is predetermined. The data length (for example, 32 KB, but the invention is not limited thereto) divides each data block into one or more packet data. The data blocks generated by the segmentation of the servo processing module 120 have a corresponding order according to the position corresponding to the target data.

在部分的實施例中,伺服傳輸模組130可以先壓縮分割產生的資料區塊,在將壓縮後的資料區塊分割為封包資料。In some embodiments, the servo transmission module 130 may first compress the data block generated by the segmentation, and divide the compressed data block into packet data.

伺服傳輸模組130負責接收客戶端200所傳送的群組加入請求,並依據被請求加入之群播群組內的客戶端數量及/或目標資料的發送次數選擇允許或拒絕客戶端200加入群播群組。例如,當群播群組內的客戶端數量達到預定的上限值時,又如,當目標資料的發送次數達到預定的次數時,伺服傳輸模組130可以拒絕客戶端200加入所請求的群播群組。The servo transmission module 130 is responsible for receiving the group join request transmitted by the client 200, and selecting or allowing the client 200 to join the group according to the number of clients in the multicast group requested to join and/or the number of times the target data is sent. Broadcast group. For example, when the number of clients in the multicast group reaches a predetermined upper limit, for example, when the number of times the target data is sent reaches a predetermined number of times, the servo transmission module 130 may reject the client 200 to join the requested group. Broadcast group.

伺服傳輸模組130也負責按順序選擇伺服處理模組120分割目標資料所產生的各個資料區塊,並將當前被選擇之資料區塊的封包資料逐一封裝為不同的群播封包後發送給客戶端200。例如,伺服傳輸模組130可以先將由第一個資料區塊分割產生的封包資料依序封裝為群播封包並發送給客戶端200,接著將由第二個資料區塊分割產生的封包資料依序封裝為群播封包並發送給客戶端200,依此類推。The servo transmission module 130 is also responsible for sequentially selecting the data blocks generated by the servo processing module 120 to segment the target data, and packaging the packet data of the currently selected data block into different multicast packets and transmitting them to the client. End 200. For example, the servo transmission module 130 may first encapsulate the packet data generated by the first data block segmentation into a multicast packet and send it to the client 200, and then sequentially process the packet data generated by the second data block segmentation. Encapsulated as a multicast packet and sent to the client 200, and so on.

伺服傳輸模組130可以依照一定的頻率或速度封裝一個封包資料為群播封包並發送被產生的群播封包到客戶端200,也可以一次將多個封包資料分別封裝為不同的群播封包後,依照一定的頻率或速度發送一個群播封包,本發明並沒有特別的限制。其中,上述之一定的頻率或速度可以是一定的時間間隔(例如每隔十毫秒)或是固定的時間(例如每秒中的第零毫秒與第50毫秒等),但本發明並不以此為限,且上述之一定的頻率或速度可以是系統的預定值,也可以是伺服器100管理者所設定的設定值。The servo transmission module 130 may encapsulate a packet data into a multicast packet according to a certain frequency or speed and send the generated multicast packet to the client 200, or may package multiple packet data into different multicast packets at a time. The multicast packet is transmitted according to a certain frequency or speed, and the present invention is not particularly limited. Wherein, the certain frequency or speed may be a certain time interval (for example, every ten milliseconds) or a fixed time (for example, the zeroth millisecond and the 50th millisecond in every second), but the present invention does not To be limited, the above-mentioned certain frequency or speed may be a predetermined value of the system, or may be a set value set by the server 100 manager.

一般而言,伺服傳輸模組130可以在伺服器100啟動後,接收到第一個客戶端200所傳送的群組加入請求並允許該客戶端200加入群播群組後,也就是該客戶端200與伺服器100建立連線後,依照預定的頻率或速度發送群播封包給加入群播群組的所有客戶端200,後續的任何客戶端200是否被允許或拒絕加入群播群組都不會影響伺服傳輸模組130向群播群組發送群播封包的頻率或速度。但本發明並不以此為限。在部分的實施例中,伺服傳輸模組130也可以在判斷群播群組中沒有任何客戶端200時停止發送群播封包。In general, the servo transmission module 130 may receive the group join request transmitted by the first client 200 after the server 100 is started and allow the client 200 to join the multicast group, that is, the client. After the connection with the server 100 is established, the multicast packet is sent to all the clients 200 participating in the multicast group according to the predetermined frequency or speed, and any subsequent client 200 is allowed or denied to join the multicast group. The frequency or speed at which the servo transmission module 130 sends the multicast packet to the multicast group is affected. However, the invention is not limited thereto. In some embodiments, the servo transmission module 130 may also stop transmitting the multicast packet when it is determined that there is no client 200 in the multicast group.

伺服傳輸模組130還負責接收各個客戶端200所傳送的補包請求,並合併重複的補包請求(也就是在不同客戶端請求再次發送相同封包資料時,將請求相同封包資料的多個補包請求視為一個補包請求),以及依據所接收到的補包請求發送相對應的群播封包給發出補包請求的客戶端200。The servo transmission module 130 is also responsible for receiving the replenishment request transmitted by each client 200, and merging the repeated replenishment requests (that is, when different clients request to resend the same packet data, multiple requests for the same packet data will be requested). The packet request is treated as a replenishment request), and the corresponding multicast packet is sent to the client 200 that issues the replenishment request according to the received replenishment request.

在部分的實施例中,伺服傳輸模組130可以在接收到補包請求時,依據所接收到之補包請求所請求的群播封包丟棄發送順序在前一定數量的補包請求。也就是當當前所發送之封包資料與被請求之封包資料之間所具有的封包資料數多於預定值時,伺服傳輸模組130可以丟棄被請求之封包資料的補包請求。In some embodiments, the servo transmission module 130 may discard a certain number of replenishment requests in the transmission order according to the requested multicast packet according to the received replenishment request when receiving the replenishment request. That is, when the number of packet data between the currently sent packet data and the requested packet data is more than a predetermined value, the servo transmission module 130 may discard the replenishment request of the requested packet data.

客戶端200負責向伺服器100請求加入群播群組,並負責透過群播技術接收由伺服器100所發送的群播封包,藉以由伺服器100取得目標資料。其中,客戶端200包含緩衝區210、客戶傳輸模組220、客戶處理模組230、以及客戶儲存媒體240。The client 200 is responsible for requesting the server 100 to join the multicast group, and is responsible for receiving the multicast packet sent by the server 100 through the multicast technology, so that the target data is obtained by the server 100. The client 200 includes a buffer 210, a client transmission module 220, a client processing module 230, and a client storage medium 240.

緩衝區210負責提供客戶傳輸模組220暫存所接收到的封包資料。緩衝區210可以使用隨機存取記憶體、快閃記憶體、或其他的儲存媒體,本發明並沒有特別的限制。特別值得一提的是,緩衝區210與習知網路卡上之緩衝區(buffer)不同,通常為額外配置的記憶體。The buffer 210 is responsible for providing the client transmission module 220 to temporarily store the received packet data. The buffer 210 may use random access memory, flash memory, or other storage medium, and the present invention is not particularly limited. It is particularly worth mentioning that the buffer 210 is different from the buffer on the conventional network card, and is usually an additionally configured memory.

客戶傳輸模組220負責傳送群組加入請求給伺服器100,藉以向伺服器100請求加入群播群組。The client transmission module 220 is responsible for transmitting the group join request to the server 100, thereby requesting the server 100 to join the multicast group.

客戶傳輸模組220也負責在緩衝區210中配置記憶體空間,並接收到之群播封包中的封包資料寫入所配置之記憶體空間中的對應位置。一般而言,客戶傳輸模組220所接收到的群播封包中記載有足以讓客戶傳輸模組220辨識出所接收到之群播封包的順序的資料(例如群播封包表頭中的流水號或群播 封包內容中的編號等,本發明沒有特別的限制),使得客戶傳輸模組220可以依據所接收到之群播封包的順序將群播封包中的封包資料寫入記憶體空間中的對應位置。The client transfer module 220 is also responsible for configuring the memory space in the buffer 210, and the received packet data in the multicast packet is written into the corresponding location in the configured memory space. Generally, the multicast packet received by the client transmission module 220 is recorded with sufficient data for the client transmission module 220 to recognize the sequence of the received multicast packet (for example, the serial number in the multicast packet header or The number in the content of the multicast packet is not limited in the present invention, so that the client transmission module 220 can write the packet data in the multicast packet into the corresponding space in the memory space according to the order of the received group packet. position.

客戶傳輸模組220可以在判斷出所配置的記憶體空間已滿時,刪除儲存時間最久的封包資料,藉以儲存新收到的封包資料。The client transmission module 220 can delete the packet data with the longest storage time when it is determined that the configured memory space is full, so as to store the newly received packet data.

在部分的實施例中,客戶傳輸模組220可以丟棄加入群播群組後之預定時間內所接收到的群播封包,藉以避免接收到不完整的群播封包而影響所接收到之資料的正確性。In some embodiments, the client transmission module 220 may discard the multicast packet received within a predetermined time after joining the multicast group to avoid receiving the incomplete multicast packet and affecting the received data. Correctness.

客戶處理模組230負責判斷客戶傳輸模組220所配置之記憶體空間中所儲存的封包資料已可以組成完整的一個或多個資料區塊時,將已完整的資料區塊由緩衝區210移動到客戶儲存媒體240中,也就是將已完整的資料區塊複製到客戶儲存媒體240中儲存,並由緩衝區210中刪除已複製到客戶儲存媒體240中的封包資料。The client processing module 230 is configured to determine that the complete data block is moved by the buffer 210 when the packet data stored in the memory space configured by the client transmission module 220 can form a complete one or more data blocks. To the customer storage medium 240, the completed data block is copied to the customer storage medium 240 for storage, and the package data copied to the customer storage medium 240 is deleted from the buffer 210.

客戶處理模組230也負責依據客戶儲存媒體240中所儲存之資料區塊的識別資料判斷被儲存於客戶儲存媒體240中的資料區塊不連續時,透過客戶傳輸模組220通知伺服器100,並在依據客戶儲存媒體240中所儲存之資料區塊的識別資料判斷客戶儲存媒體240已儲存完整目標資料時,通知客戶傳輸模組220退出群播群組。一般而言,上述之資料區塊的識別資料可以由任意數量的文字或數字任意排列而成,本發明沒有特別的限制,但不同資料區塊的識別資料並不重複。The client processing module 230 is also responsible for determining, according to the identification data of the data block stored in the client storage medium 240, that the data block stored in the client storage medium 240 is discontinuous, and notifying the server 100 through the client transmission module 220. When it is determined that the client storage medium 240 has stored the complete target data according to the identification data of the data block stored in the client storage medium 240, the client transmission module 220 is notified to exit the multicast group. Generally, the identification data of the above data block may be arbitrarily arranged by any number of characters or numbers, and the present invention is not particularly limited, but the identification data of different data blocks is not repeated.

接著以一個實施例來解說本發明的運作系統與方法,並請參照「第3圖」本發明所提之資料傳送方法之流程圖以及「第4圖」本發明所提之使用兩階記憶體處理封包資料之資料接收方法之流程圖。本實施例假設本發明應用於生產線上,但本發明並不以此為限。Next, an operation system and method of the present invention will be described with reference to an embodiment. Referring to FIG. 3, a flowchart of a data transmission method according to the present invention and a "fourth diagram" using the second-order memory of the present invention. A flow chart of a method for receiving data for processing packet data. This embodiment assumes that the present invention is applied to a production line, but the present invention is not limited thereto.

在伺服器100啟動後,伺服器100的伺服處理模組120可以由伺服器100的伺服儲存媒體110中讀取目標資料,再將目標資料分割為多個資料區塊,並將各個資料區塊分割為封包資料(步驟305)。After the server 100 is started, the servo processing module 120 of the server 100 can read the target data from the servo storage medium 110 of the server 100, divide the target data into multiple data blocks, and divide each data block. Split into packet data (step 305).

之後,當客戶端200在生產線移動時,客戶端200的客戶傳輸模組220可以與伺服器100連接,並傳送群組加入請求給伺服器100,藉以向伺服器100請求加入群播群組(步驟402)。在本實施例中,假設客戶傳輸模組220可以透過無線網路與伺服器100連接,並透過無線網路技術傳送群組加入請求至伺服器100。Thereafter, when the client 200 moves on the production line, the client transmission module 220 of the client 200 can connect with the server 100 and transmit a group join request to the server 100, thereby requesting the server 100 to join the multicast group ( Step 402). In this embodiment, it is assumed that the client transmission module 220 can connect to the server 100 through the wireless network and transmit the group join request to the server 100 through the wireless network technology.

在伺服傳輸模組130接收到客戶端200所傳送的群組加入請求後,伺服傳輸模組130可以依據當前已加入同一群播群組的客戶端數量及/或目標資料當前的發送次數選擇允許或拒絕客戶端200加入所請求的群播群組(步驟320)。在本實施例中,假設客戶端200所請求加入之組播群組中的客戶端數量並未達到上限值200,且目標資料當前的發送次數也尚未達到預定次數5次,如此,伺服傳輸模組130可以選擇允許客戶端200加入所請求的群播群組。而若客戶端200所請求加入之組播群組已有200個其他客戶端加入,或目標資料當前的發送次數為第5次(最後一次)時,伺服傳輸模組130可以選擇拒絕客戶端200加入請求的群播群組,如此,客戶端200需要等待其他客戶端200離開所請求的群播群組,或是等待伺服傳輸模組130重新開始發送目標資料後,伺服傳輸模組130才可以選擇允許客戶端200加入群播群組。After the servo transmission module 130 receives the group join request transmitted by the client 200, the servo transmission module 130 may select the permission according to the number of clients currently joined to the same multicast group and/or the current number of transmissions of the target data. Or the client 200 is denied to join the requested multicast group (step 320). In this embodiment, it is assumed that the number of clients in the multicast group that the client 200 requests to join does not reach the upper limit value of 200, and the current number of transmissions of the target data has not reached the predetermined number of times five times. Thus, the servo transmission Module 130 may choose to allow client 200 to join the requested multicast group. If the client group 200 requests to join the multicast group has 200 other clients join, or the target data is currently sent 5 times (last time), the servo transmission module 130 may choose to reject the client 200. Join the requested multicast group. In this way, the client 200 needs to wait for the other client 200 to leave the requested multicast group, or wait for the servo transmission module 130 to restart sending the target data before the servo transmission module 130 can Select to allow client 200 to join the multicast group.

當有任何客戶端200被允許加入群播群組,伺服傳輸模組130可以先以一定的頻率或速度按分割產生之資料區塊於目標檔案中的順序,依序選擇資料區塊(步驟330),再將被選擇之資料區塊中的各個封包資料依序封裝為群播封包,並發送封裝產生的群播封包給客戶端200(步驟340)。在本實施例中,假設伺服傳輸模組130在分割產生資料區塊後,可以先壓縮所產生的資料區塊,再將壓縮後的資料區塊分割為封包資料,並可以每隔預定的時間間隔發送群播封包給群播群組中的所有客戶端200。When any client 200 is allowed to join the multicast group, the servo transmission module 130 may first select the data block in the order of the data blocks generated by the segmentation in the target file at a certain frequency or speed (step 330). And then, the packet data in the selected data block is sequentially encapsulated into a multicast packet, and the packaged multicast packet is sent to the client 200 (step 340). In this embodiment, it is assumed that after the segmentation of the data block is generated, the servo transmission module 130 may first compress the generated data block, and then divide the compressed data block into packet data, and may be scheduled every predetermined time. The multicast packet is sent to all clients 200 in the multicast group at intervals.

在客戶端200加入群播群組後,客戶端200的客戶傳輸模組220可以在客戶端200的緩衝區210中配置記憶體空間(步驟406)。在本實施例中,假設客戶傳輸模組220所配置的記憶體空間為緩衝區210中之剩餘空間的75%。After the client 200 joins the multicast group, the client transfer module 220 of the client 200 can configure the memory space in the buffer 210 of the client 200 (step 406). In this embodiment, it is assumed that the memory space configured by the client transmission module 220 is 75% of the remaining space in the buffer 210.

之後,當客戶傳輸模組220接收到伺服傳輸模組130所傳送的群播封包時,可以將所接收到之群播封包中的封包資料寫入記憶體空間中的對應位置(步驟410)。在本實施例中,為了讓客戶端200確保所接收到之資料的正確性,在客戶端200加入群播群組後,客戶傳輸模組220可以丟棄預定時間內所接收到的所有群播封包。另外,當客戶傳輸模組220接收到伺服傳輸模組130所傳送的群播封包時,若記憶體空間已滿,則客戶傳輸模組220可以先刪除儲存時間最久的一個封包資料,再寫入所接收到的封包資料。Then, when the client transmission module 220 receives the multicast packet transmitted by the servo transmission module 130, the packet data in the received multicast packet can be written into a corresponding location in the memory space (step 410). In this embodiment, in order for the client 200 to ensure the correctness of the received data, after the client 200 joins the multicast group, the client transmission module 220 may discard all the multicast packets received within the predetermined time. . In addition, when the client transmission module 220 receives the multicast packet transmitted by the servo transmission module 130, if the memory space is full, the client transmission module 220 may delete the packet data with the longest storage time and then write Enter the received packet data.

另外,同樣在客戶端200加入群播群組後,客戶端200的客戶處理模組230也可以判斷被客戶傳輸模組220所寫入緩衝區210中的封包資料是否已經組成完整的資料區塊(步驟420)。若是,則客戶處理模組230可以將已組成完整資料區塊的封包資料由緩衝區210一同移動到客戶端200的客戶儲存媒體240中(步驟430);若否,則客戶處理模組230可以繼續等待客戶傳輸模組220寫入緩衝區210中的封包資料組成完整的資料區塊。In addition, after the client 200 joins the multicast group, the client processing module 230 of the client 200 can also determine whether the packet data written in the buffer 210 by the client transmission module 220 has formed a complete data block. (Step 420). If yes, the client processing module 230 can move the packet data that has formed the complete data block together with the buffer 210 to the client storage medium 240 of the client 200 (step 430); if not, the client processing module 230 can Waiting for the packet data written in the buffer 210 by the client transmission module 220 to form a complete data block.

在客戶處理模組230將組成完整資料區塊的封包資料由緩衝區210移動到客戶端200的客戶儲存媒體240後,客戶處理模組230可以進一步判斷儲存於客戶儲存媒體240中的資料區塊是否連續(步驟440)。若客戶儲存媒體240中的資料區塊不連續,則客戶傳輸模組220可以傳送與不連續之資料區塊對應的補包請求至伺服器100(步驟450),並繼續接收伺服器100所傳送的群播封包,以及將群播封包中的封包資料寫入記憶體空間中(步驟410)。例如,當客戶儲存媒體240中所儲存的資料區塊為第一與第三資料區塊,而沒有第二資料區塊時,客戶處理模組230可以判斷出客戶儲存媒體240中所儲存的資料區塊不連續,並通知客戶傳輸模組220檢查以寫入緩衝區210中之第二資料區塊的封包資料,並將尚未收到之第二資料區塊之封包資料的識別資料封裝為相對應的補包請求,在傳送所產生的補包請求給伺服器100。After the client processing module 230 moves the packet data constituting the complete data block from the buffer 210 to the client storage medium 240 of the client 200, the client processing module 230 can further determine the data block stored in the client storage medium 240. Whether it is continuous (step 440). If the data block in the client storage medium 240 is not continuous, the client transmission module 220 may transmit a replenishment request corresponding to the discontinuous data block to the server 100 (step 450), and continue to receive the transmission by the server 100. The multicast packet is encapsulated, and the packet data in the multicast packet is written into the memory space (step 410). For example, when the data block stored in the client storage medium 240 is the first and third data blocks and there is no second data block, the client processing module 230 can determine the data stored in the client storage medium 240. The block is discontinuous, and the client transmission module 220 is notified to check the packet data of the second data block in the buffer 210, and encapsulate the identification data of the packet data of the second data block that has not been received as a phase. The corresponding replenishment request is transmitted to the server 100 for the replenishment request generated.

在伺服傳輸模組130接收到客戶端200所傳送的補包請求時,伺服傳輸模組130可以先記錄被請求重送之封包資料的識別資料,並在完整的將一個資料區塊發送給客戶端200後,合併不同客戶端200所傳送之相同的補包請求(步驟350),並依據合併後的補包請求發送相對應的群播封包給客戶端200(步驟370)。在本實施例中,假設有兩個客戶端200請求重送識別資料為208的封包資料,有一個客戶端200請求重送識別資料為413的封包資料,則伺服傳輸模組130可以將兩個重送識別資料為208之封包資料的補包請求合併為一個,如此,伺服傳輸模組130將可以只傳送一個封裝識別資料為208之封包資料的群播封包以及一個封裝識別資料為413之封包資料的群播封包給客戶端200。When the servo transmission module 130 receives the replenishment request transmitted by the client 200, the servo transmission module 130 may first record the identification data of the packet data requested to be resent, and send a complete data block to the client. After the terminal 200, the same replenishment request transmitted by the different clients 200 is merged (step 350), and the corresponding multicast packet is sent to the client 200 according to the merged replenishment request (step 370). In this embodiment, if two clients 200 request to resend the packet data of the identification data 208, and one client 200 requests to resend the packet data of the identification data 413, the servo transmission module 130 may The replenishment request for resending the identification data to the packet data of 208 is merged into one, so that the servo transmission module 130 can transmit only one multicast packet with the package identification data of 208 and a package identification data of 413. The multicast packet of the data is sent to the client 200.

而若客戶處理模組230判斷儲存於客戶儲存媒體240中的資料區塊連續,則客戶處理模組230可以再次判斷客戶儲存媒體240中是否已儲存所有的資料區塊,也就是判斷客戶儲存媒體240中是否已儲存完整的目標資料(步驟460),若否,則繼續由客戶傳輸模組220接收伺服器100所傳送的群播封包,以及將群播封包中的封包資料寫入記憶體空間中(步驟410);若是,則客戶處理模組230可以決定讓客戶端200退出群播群組,使得客戶端200可以在生產線上繼續移動,且客戶傳輸模組220可以傳送群組退出訊息至伺服器100,使得客戶端200退出所加入的群播群組(步驟470)。If the client processing module 230 determines that the data blocks stored in the client storage medium 240 are continuous, the client processing module 230 can determine again whether all the data blocks have been stored in the client storage medium 240, that is, the client storage media is determined. Whether the complete target data has been stored in step 240 (step 460), if not, the client transmission module 220 continues to receive the multicast packet transmitted by the server 100, and the packet data in the multicast packet is written into the memory space. (Step 410); if so, the client processing module 230 may decide to have the client 200 exit the multicast group, so that the client 200 can continue to move on the production line, and the client transmission module 220 can transmit the group exit message to The server 100 causes the client 200 to exit the joined multicast group (step 470).

另外,在伺服傳輸模組130依據所接收到的補包請求發送相對應的群播封包給客戶端200(步驟370)後,伺服傳輸模組130可以判斷目標資料是否已發送達到一定次數或客戶端200是否都已退出所加入群播群組(步驟380)。若是,則伺服器100可以結束本發明;若否,也就是目標資料尚未發送一定次數(如5次)或仍然有客戶端200在群播群組中,則伺服傳輸模組130可以繼續以一定的頻率或速度按分割產生之資料區塊於目標檔案中的順序,依序選擇資料區塊(步驟330),再將被選擇之資料區塊中的各個封包資料依序封裝為群播封包,並發送封裝產生的群播封包給客戶端200(步驟340)。In addition, after the servo transmission module 130 sends the corresponding multicast packet to the client 200 according to the received replenishment request (step 370), the servo transmission module 130 can determine whether the target data has been sent a certain number of times or the client. Whether end 200 has exited the joined multicast group (step 380). If yes, the server 100 can end the invention; if not, that is, the target data has not been sent a certain number of times (such as 5 times) or the client 200 is still in the multicast group, the servo transmission module 130 can continue to be certain The frequency or speed is sequentially selected in the order of the data blocks generated by the segmentation in the target file (step 330), and then the packet data in the selected data block is sequentially encapsulated into a multicast packet. And sending the encapsulated multicast packet to the client 200 (step 340).

綜上所述,可知本發明與先前技術之間的差異在於具有客戶端設置緩衝區與儲存媒體兩階記憶體,當客戶端接收到伺服器所傳送的群播封包時,先將群播封包中的封包資料暫存於緩衝區中,當緩衝區中儲存完整的資料區塊時,將資料區塊由緩衝區中移動到儲存媒體中,並在儲存媒體中的資料區塊不連續時,通知伺服器重送遺失的群播封包之技術手段,藉由此一技術手段可以來解決先前技術所存在傳輸過程中可能因為客戶端資料接收或處理速度不佳導致封包大量遺失而延長資料傳輸時間的問題,進而達成以較短時間較少頻寬完成資料傳送的技術功效。In summary, it can be seen that the difference between the present invention and the prior art is that there is a client setting buffer and a storage medium two-level memory. When the client receives the multicast packet transmitted by the server, the multicast packet is firstly packetized. The packet data in the buffer is temporarily stored in the buffer. When the complete data block is stored in the buffer, the data block is moved from the buffer to the storage medium, and when the data block in the storage medium is discontinuous, The technical means for notifying the server to resend the lost multicast packet, by using a technical means, can solve the problem that the data transmission time may be prolonged due to the loss of a large amount of packets due to poor reception or processing speed of the client data in the transmission process of the prior art. The problem, in turn, achieves the technical effect of completing data transmission with less time and less bandwidth.

上述的實施例中,在伺服傳輸模組130接收到客戶端200所傳送的補包請求時,伺服傳輸模組130也可以依據所接收到之補包請求所請求的群播封包丟棄發送順序在前一定數量的補包請求。在本實施例中,假設當前所發送之封包資料的識別資料為315,被請求之封包資料的識別資料為228,由於被請求之封包資料與當前所發送之封包資料的順序差為87,此一順序差多於預定值50時,伺服傳輸模組130可以丟棄被請求之封包資料的補包請求,並記錄沒有被丟棄之被請求之封包資料的識別資料,也就是選擇不重送發送順序在前一定數量的封包資料。換句話說,如此一來,當客戶端200請求重送發送順序在前一定數量的封包資料時,客戶端200將無法立刻接收到請求重送的封包資料,而是需要等待伺服傳輸模組130再次由第一資料區塊、第二資料區塊、…的順序重新發送各個封包資料給客戶端200時,才能接收到請求重送的封包資料。In the above embodiment, when the servo transmission module 130 receives the replenishment request transmitted by the client 200, the servo transmission module 130 may also discard the transmission order of the multicast packet requested according to the received replenishment request. A certain number of replenishment requests before. In this embodiment, it is assumed that the identification data of the currently sent packet data is 315, and the identification data of the requested packet data is 228, because the order difference between the requested packet data and the currently sent packet data is 87, When a sequence difference is more than a predetermined value of 50, the servo transmission module 130 may discard the replenishment request of the requested packet data, and record the identification data of the requested packet data that has not been discarded, that is, select not to resend the transmission sequence. A certain amount of packet information before. In other words, when the client 200 requests to resend a certain amount of packet data in the transmission order, the client 200 cannot immediately receive the packet data requested to be retransmitted, but needs to wait for the servo transmission module 130. When the packet data is resent to the client 200 again in the order of the first data block, the second data block, ..., the packet data requested to be resent can be received.

再者,本發明之使用兩階記憶體處理封包資料之資料接收方法與資料傳送方法,可實現於硬體、軟體或硬體與軟體之組合中,亦可在電腦系統中以集中方式實現或以不同元件散佈於若干互連之電腦系統的分散方式實現。Furthermore, the data receiving method and the data transmitting method for processing the packet data using the two-step memory of the present invention can be implemented in a combination of hardware, software or hardware and software, or can be implemented in a centralized manner in a computer system or This is achieved by a distributed approach in which different components are interspersed among several interconnected computer systems.

雖然本發明所揭露之實施方式如上,惟所述之內容並非用以直接限定本發明之專利保護範圍。任何本發明所屬技術領域中具有通常知識者,在不脫離本發明所揭露之精神和範圍的前提下,對本發明之實施的形式上及細節上作些許之更動潤飾,均屬於本發明之專利保護範圍。本發明之專利保護範圍,仍須以所附之申請專利範圍所界定者為準。While the embodiments of the present invention have been described above, the above description is not intended to limit the scope of the invention. Any modification of the form and details of the practice of the present invention, which is a matter of ordinary skill in the art to which the present invention pertains, is a patent protection of the present invention. range. The scope of the invention is to be determined by the scope of the appended claims.

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 退出群播群組100 server 110 servo storage medium 120 servo processing module 130 servo transmission module 200 client 210 buffer 220 client transmission module 230 client processing module 240 client storage media step 305 split the target data into multiple data blocks, And dividing the data block into the packet data step 320, receiving the group join request transmitted by the client, and allowing or denying the client to join the multicast group step 330 according to the number of the client and the number of times the target data is sent, at a certain frequency or The speed selects the data block in the order of the data block in the target data. Step 340: Send the selected data block using the multicast packet, the multicast packet includes the packet data, step 350, and the repeated replenishment request step 370 transmitted by the merge client Sending the corresponding multicast packet step 380 according to the replenishment request, whether the target data is Repeat sending a certain number of times or whether the client exits the multicast group step 402, requesting the server to join the multicast group step 406, configuring the memory space in the buffer, step 410, receiving the multicast packet transmitted by the server, and The packet data in the broadcast packet is written into the corresponding location in the memory space. Step 420 Whether the packet data has formed a complete data block. Step 430: Move the data block from the buffer to the client storage medium. Step 440 Whether the data block continues in step 450 Transmitting a replenishment request corresponding to the discontinuous data block to the server, step 460, whether the complete target data has been stored, step 470, exiting the multicast group

第1圖為本發明所提之伺服器之元件示意圖。 第2圖為本發明所提之客戶端之元件示意圖。 第3圖為本發明所提之資料傳送方法之流程圖。 第4圖為本發明所提之使用兩階記憶體處理封包資料之資料接收方法之流程圖。Figure 1 is a schematic diagram of the components of the server of the present invention. Figure 2 is a schematic diagram of the components of the client proposed by the present invention. Figure 3 is a flow chart of the data transmission method proposed by the present invention. FIG. 4 is a flow chart of a method for receiving data for processing packet data using two-level memory according to the present invention.

Claims (7)

一種使用兩階記憶體處理封包資料之資料傳輸系統,該資料傳輸系統至少包含:一伺服器,其中更包含:一伺服處理模組,用以將一目標資料分割為多個資料區塊並分割各該資料區塊為至少一封包資料;及一伺服傳輸模組,用以依照一定的頻率或速度按順序使用至少一群播封包發送一該資料區塊,其中,各該群播封包包含一該封包資料,及用以接收各補包請求,合併重複之各該補包請求及依據各該補包請求所請求之群播封包丟棄發送順序在前一定數量之各該補包請求,並依據該些補包請求發送相對應之各該群播封包;及一客戶端,其中更包含:一緩衝區;一客戶儲存媒體;一客戶傳輸模組,用以向該伺服器請求加入一群播群組,及用以在該緩衝區中配置一記憶體空間,接收至少一群播封包,並將各該群播封包中之封包資料寫入該記憶體空間中之對應位置;及一客戶處理模組,用以判斷該記憶體空間所儲存之該些封包資料已組成完整之至少一資料區塊時,將各該資料區塊由該緩衝區移動到該客戶儲存媒體中,及用以依據該客戶儲存媒體中所儲存之該些資料區塊之識別資料判斷該些資料區塊不連續時,透過該客戶傳輸模組通知該伺服器,及依據該客戶儲存媒體中所儲存之該些資料區塊之識別 資料判斷該客戶儲存媒體已儲存完整目標資料時通知該客戶傳輸模組退出該群播群組。 A data transmission system for processing packet data using two-stage memory, the data transmission system comprising: at least one server, further comprising: a servo processing module for dividing a target data into a plurality of data blocks and dividing Each of the data blocks is at least one package data; and a servo transmission module is configured to send, by using at least one group of broadcast packets, a data block in sequence according to a certain frequency or speed, wherein each of the group broadcast packets comprises one Packet data, and a request for receiving each replenishment request, merging and repeating each of the replenishment requests, and requesting, according to each of the replenishment requests, a certain number of the replenishment requests, and according to the Some of the replenishment requests are sent to the corresponding group of broadcast packets; and a client, further comprising: a buffer; a client storage medium; and a client transmission module for requesting the server to join the group of broadcast groups And configuring a memory space in the buffer, receiving at least one group of broadcast packets, and writing the packet data in each of the group broadcast packets into the memory space. And a client processing module, configured to: when the packet data stored in the memory space has formed at least one data block, move the data block from the buffer to the customer storage medium And determining, by the identification data of the data blocks stored in the customer storage medium, that the data blocks are discontinuous, notifying the server through the client transmission module, and according to the customer storage medium Identification of the stored data blocks The data is determined to notify the customer that the transmission module has exited the multicast group when the client storage medium has stored the complete target data. 如申請專利範圍第1項所述之使用兩階記憶體處理封包資料之資料傳輸系統,其中該客戶資料傳輸模組更用以丟棄加入群播群組後一預定時間內所接收到之該些群播封包。 The data transmission system for processing packet data by using a two-level memory as described in claim 1, wherein the customer data transmission module is further configured to discard the plurality of data received after joining the group broadcast group within a predetermined time period. Group broadcast package. 如申請專利範圍第1項所述之使用兩階記憶體處理封包資料之資料傳輸系統,其中該伺服傳輸模組更用以依據該群播群組內之客戶端數量及/或該目標資料之發送次數選擇允許或拒絕該客戶端加入該群播群組。 The data transmission system for processing packet data using the second-order memory as described in claim 1, wherein the servo transmission module is further configured to use the number of clients in the multicast group and/or the target data. Sends the number of choices to allow or deny the client to join the multicast group. 一種使用兩階記憶體處理封包資料之資料傳輸方法,該資料傳輸方法至少包含下列步驟:一伺服器將一目標資料分割為多個資料區塊,並分割各該資料區塊為至少一封包資料;至少一客戶端傳送一群組加入請求至該伺服器;該伺服器依據當前已加入一群播群組之客戶端之數量及該目標資料之發送次數允許或拒絕該客戶端加入該群播群組;該客戶端於加入該群播群組後,於一緩衝區中配置一記憶體空間;及重複下列步驟直到該伺服器已重複發送該目標資料達到一定次數或該組播群組中之客戶端都退出該群播群組:該伺服器以一定的頻率或速度按各該資料區塊於目標資料中的順序選擇一該資料區塊;該伺服器使用至少一群播封包發送該被選擇之資料區塊至該至少一客戶端,各該群播封包包含一該封包資料; 該至少一客戶端接收該至少一群播封包,並將該至少一群播封包中之封包資料寫入該記憶體空間中之對應位置;該至少一客戶端判斷該記憶體空間所儲存之該些封包資料已組成完整之至少一資料區塊時,由該緩衝區移動各該資料區塊至一客戶儲存媒體中;該客戶端依據該客戶儲存媒體中所儲存之該些資料區塊之識別資料判斷該客戶儲存媒體已儲存完整目標資料時退出該群播群組;該客戶端依據該客戶儲存媒體中所儲存之該些資料區塊之識別資料判斷該些資料區塊不連續時,傳送與不連續之該些資料區塊相對應之補包請求至該伺服器;該伺服器合併該至少一客戶端所傳送之重複之各補包請求;該伺服器丟棄發送順序在前一定數量之各該補包請求;及該伺服器依據該些補包請求發送相對應之各該群播封包至該至少一客戶端。 A data transmission method for processing packet data using two-level memory, the data transmission method comprising at least the following steps: a server divides a target data into a plurality of data blocks, and divides each of the data blocks into at least one package data. At least one client transmits a group join request to the server; the server allows or denies the client to join the group based on the number of clients currently joined to the group of broadcast groups and the number of times the target data is sent a group; after the client joins the group, configure a memory space in a buffer; and repeat the following steps until the server has repeatedly sent the target data for a certain number of times or in the multicast group The client exits the multicast group: the server selects a data block in the order of each data block in the target data at a certain frequency or speed; the server sends the selected one using at least one group of broadcast packets. a data block to the at least one client, each of the group broadcast packets including a packet data; Receiving, by the at least one client, the at least one group of the broadcast packets, and writing the packet data in the at least one group of the broadcast packets to corresponding locations in the memory space; the at least one client determining the packets stored in the memory space When the data has formed at least one data block, the data block is moved by the buffer to a client storage medium; the client judges according to the identification data of the data blocks stored in the client storage medium. The client storage medium exits the multicast group when the complete target data is stored; the client determines whether the data blocks are discontinuous according to the identification data of the data blocks stored in the customer storage medium, and transmits or not The plurality of data blocks corresponding to the replenishment request are consecutively sent to the server; the server merges the repeated replenishment request transmitted by the at least one client; the server discards a certain number of the transmission order Replenishing the request; and the server sends the corresponding group of the broadcast package to the at least one client according to the replenishment request. 如申請專利範圍第4項所述之使用兩階記憶體處理封包資料之資料傳輸方法,其中以一定的頻率或速度按順序使用至少一群播封包發送一該資料區塊之步驟更包含壓縮該資料區塊之步驟。 The data transmission method for processing packet data by using two-level memory according to claim 4, wherein the step of transmitting the data block by using at least one group of broadcast packets in sequence at a certain frequency or speed further comprises compressing the data. The steps of the block. 如申請專利範圍第4項所述之使用兩階記憶體處理封包資料之資料傳輸方法,其中該至少一客戶端將該至少一群播封包中之封包資料寫入該記憶體空間中之對應位置之步驟前,更包含丟棄預定時間內所接收到之群播封包之步驟。 The data transmission method for processing packet data by using a second-order memory according to claim 4, wherein the at least one client writes the packet data in the at least one group of the broadcast packets to a corresponding position in the memory space. Before the step, the method further includes the step of discarding the group broadcast packet received within the predetermined time. 如申請專利範圍第4項所述之使用兩階記憶體處理封包資料之資料傳輸方法,其中該至少一客戶端將該至少一群播封包中之封包資料寫入該記憶體空間中之對應位置之步驟更包含該至少一客戶端判斷該記憶體空間已滿時,刪除儲存時間最久之一該封包資料之步驟。The data transmission method for processing packet data by using a second-order memory according to claim 4, wherein the at least one client writes the packet data in the at least one group of the broadcast packets to a corresponding position in the memory space. The step further includes the step of deleting at least one of the storage time of the packet data when the at least one client determines that the memory space is full.
TW105142946A 2016-12-23 2016-12-23 Data transmission system, a data receiving method and a data transmission method using two-stage memories to handle packet data TWI635396B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW105142946A TWI635396B (en) 2016-12-23 2016-12-23 Data transmission system, a data receiving method and a data transmission method using two-stage memories to handle packet data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105142946A TWI635396B (en) 2016-12-23 2016-12-23 Data transmission system, a data receiving method and a data transmission method using two-stage memories to handle packet data

Publications (2)

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

Family

ID=63639738

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105142946A TWI635396B (en) 2016-12-23 2016-12-23 Data transmission system, a data receiving method and a data transmission method using two-stage memories to handle packet data

Country Status (1)

Country Link
TW (1) TWI635396B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI734380B (en) * 2019-07-11 2021-07-21 開曼群島商創新先進技術有限公司 Computer-implemented method and system and non-transitory computer-readable storage medium
US11115474B2 (en) 2019-07-11 2021-09-07 Advanced New Technologies Co., Ltd. Data transmission and network interface controller

Citations (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
TW201227372A (en) * 2010-12-22 2012-07-01 Inventec Corp Multicast downloading method for image file
US20120210016A1 (en) * 2009-12-17 2012-08-16 Justin Lipman Method and system for facilitating one-to-many data transmissions with reduced network overhead
TWI389515B (en) * 2009-12-04 2013-03-11 Univ Nat Pingtung Sci & Tech Multimedia streaming transmission error recover method

Patent Citations (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 (en) * 2009-12-04 2013-03-11 Univ Nat Pingtung Sci & Tech Multimedia streaming transmission error recover method
US20120210016A1 (en) * 2009-12-17 2012-08-16 Justin Lipman 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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI734380B (en) * 2019-07-11 2021-07-21 開曼群島商創新先進技術有限公司 Computer-implemented method and system and non-transitory computer-readable storage medium
US11115474B2 (en) 2019-07-11 2021-09-07 Advanced New Technologies Co., Ltd. Data transmission and network interface controller
US11736567B2 (en) 2019-07-11 2023-08-22 Advanced New Technologies Co., Ltd. Data transmission and network interface controller

Also Published As

Publication number Publication date
TW201824005A (en) 2018-07-01

Similar Documents

Publication Publication Date Title
TWI376126B (en) Bandwidth reservation for data flows in interconnection networks
US10291482B2 (en) ECU for transmitting large data in HiL test environment, system including the same and method thereof
US20130138771A1 (en) Apparatus and method for transmitting data
CN103269260A (en) Data transmission method, data receiving terminal, data sending terminal and data transmission system
CN105450785B (en) File transmission method and device
CN108199925A (en) A kind of data transmission method for uplink, method of reseptance and device
US20110246763A1 (en) Parallel method, machine, and computer program product for data transmission and reception over a network
US10020916B2 (en) Method and apparatus for data communication of vehicle
CN110460412A (en) Method and RDMA network interface card for data transmission
TWI635396B (en) Data transmission system, a data receiving method and a data transmission method using two-stage memories to handle packet data
CN112448826B (en) Multicast message communication method and device, readable medium and electronic equipment
US20210392187A1 (en) Data transmission and network interface controller
WO2019154330A1 (en) Feedback method, system, electronic device, and computer-readable storage medium
CN109120385A (en) A kind of data transmission method based on data transmission system, apparatus and system
CN111404842B (en) Data transmission method, device and computer storage medium
CN102238206A (en) Image file packet retransmission method
CN109862297B (en) Window adjusting method and device and readable storage medium
CN108600308B (en) Data uploading method and device, storage medium and server
CN116389455A (en) File transmission method, system and electronic equipment
CN104754760B (en) A kind of Packet Service method for reconstructing and terminal
CN116260887A (en) Data transmission method, data transmission device, data reception device, and storage medium
JP7123194B2 (en) Data transmission method, transmission device, data reception method, and reception device
WO2013056420A1 (en) Mixing station and data storage method, server and system for same
CN113904976A (en) Multi-path data transmission method and device for lossy network based on RDMA
CN108234327A (en) Data transmission system, data receiver method and data transmission method