WO2013056518A1 - 大对象传输方法及系统 - Google Patents

大对象传输方法及系统 Download PDF

Info

Publication number
WO2013056518A1
WO2013056518A1 PCT/CN2012/070158 CN2012070158W WO2013056518A1 WO 2013056518 A1 WO2013056518 A1 WO 2013056518A1 CN 2012070158 W CN2012070158 W CN 2012070158W WO 2013056518 A1 WO2013056518 A1 WO 2013056518A1
Authority
WO
WIPO (PCT)
Prior art keywords
data block
size
server
client
large object
Prior art date
Application number
PCT/CN2012/070158
Other languages
English (en)
French (fr)
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 US14/351,628 priority Critical patent/US9300438B2/en
Priority to JP2014536092A priority patent/JP6050823B2/ja
Publication of WO2013056518A1 publication Critical patent/WO2013056518A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Definitions

  • the present invention relates to a transmission technology based on OMA (Open Mobile Alliance) SyncML (Data Synchronization Protocol) in the field of communication, and in particular, to a large object transmission method and system. Background technique
  • OMA Open Mobile Alliance
  • SyncML Data Synchronization Protocol
  • the OMA SyncML protocol supports the transmission of objects.
  • the object size is larger than the maximum number of message bytes supported by the client, the object is called a large object, that is, the size of the transport object (identified by the Size element in the SyncML message) is larger than that supported by the client.
  • the maximum number of message bytes (identified by the MaxMsgSize element in the SyncML message)
  • the object is a large object.
  • the processing method specified in the OMA SyncML protocol is usually to split the large object into data block transmissions, and send the data blocks to the client through the SyncML message, and the size of each data block is equal to or smaller than the client support.
  • the maximum number of message bytes, the transfer of large objects is based on the basic session in the OMA SyncML protocol.
  • the basic session process in the OMA SyncML protocol includes two phases: session establishment and session management.
  • the session establishment phase can be triggered either by the server or by the client. After the two parties establish a session, they enter the session management phase.
  • the client interacts with the server during the session management phase to complete the transfer of the entire large object.
  • the large object transmission method specified in the OMA SyncML protocol is specified in the OMA SyncML protocol.
  • the existing large object transmission process based on the OMA SyncML protocol mainly includes the following parts:
  • the server establishes a session with the client, the server knows the MaxMsgSize of the client; Second: the server issues a transfer command of the large object, and divides the large object data according to the given MaxMsgSize, and the size of the large object ( Used in SyncML messages The MaxMsgSize element identifies) and the first data block is sent to the client;
  • the client saves the size of the large object and the first data block, and notifies the server to continue to send the next data block;
  • the server continues to send the next data block until the data is completely transferred (identified by the Final element in the SyncML message;);
  • V After receiving the command to transfer the large object, the client combines all the data blocks, calculates the total size, and compares with the size of the saved large object to check whether the large object is successfully transmitted.
  • this transmission method has certain defects, that is, only after all the data blocks of the large object have been completely transmitted, it can be known whether the transmission of the large object is successful, that is, because the server does not give each data block. Size, so even if the data block received by the client is wrong, the client will not know, or notify the server to continue to send the next data block, which will result in waste of interaction time and bandwidth resources.
  • the present invention provides the following technical solutions:
  • a large object transmission method after the server establishes a session with the client: the server splits the pre-transported large object into data blocks, and sends the obtained data blocks and their sizes to the client one by one in sequence;
  • the client determines whether the received data block is successfully transmitted, and if so, saves the data block, and returns a current data block transmission success message to the server; otherwise, returns an end session request message or retransmits the current data block request message to the foregoing Server
  • the above server sends the corresponding data block and its size or ends the session according to the received message.
  • the client determines whether the received data block is successfully transmitted by: Calculate the actual size of the above data block;
  • the server further sends the size of the large object to the client;
  • the above client saves the size of the received large object.
  • the server further sends a transmission end identifier to the client;
  • the above client After receiving the transmission end identifier and successfully transmitting the current data block, the above client performs the following steps:
  • a large object transmission success message is returned to the above server; otherwise, a large object transmission failure message is returned to the above server.
  • the step of sending, by the server, the corresponding data block and its size or ending the session according to the received request is specifically:
  • the server When the server receives the current data block transmission success message and has a data block, the server sends the next data block and its large data to the client;
  • the server When receiving the retransmitting the current data block request message, the server continues to send the current data block and its size to the client;
  • the above server When the above server receives the end session request message, the large object transmission success message, or the large object transmission failure message, the current session ends.
  • the server sends the data block and its size, the size of the large object, and the transmission end identifier to the client by using the extended SyncML message;
  • the extended SyncML message includes a Size element, a Data element, a BlockSize element, and a Final element, where the value of the Size element is the size of the large object, and the value of the Data element is the current transmission.
  • the value of the input data block and BlockSize element is the size of the currently transmitted data block, and the value of the Final element is the end of transmission identifier.
  • the present invention further provides a large object transmission system, the system comprising a server and a client.
  • the server is configured to split the pre-transported large object into data blocks, and send the obtained data blocks and their large data to the client in sequence; and send corresponding data according to the message returned by the client.
  • the client is configured to determine whether the received data block is successfully transmitted, and save the data block when the data block is successfully transmitted, and return a current data block transmission success message to the server; when the data block transmission fails, the return ends.
  • the session request message or the retransmission current data block request message to the above server.
  • the server is configured to: when sending the first data block and its size, send the size of the large object to the client; when sending the last data block and its size, send the end of transmission identifier to the foregoing Client
  • the client is configured to save the size of the received large object; and when the transmission end identifier is received and the current data block is successfully transmitted, the saved data block is merged in order and the total size of the data block is calculated, and the saved data is large.
  • the size of the object is compared. When the two are consistent, a large object transmission success message is returned to the server; when the two are inconsistent, a large object transmission failure message is returned to the server.
  • the server is configured to send the next data block and its size to the client when receiving the current data block transmission success message and the data block; when receiving the retransmission current data block request message, Continue to send the current data block and its large 'j, to the above client;
  • the above client is used to calculate the actual size of the data block and the received data block Size is compared.
  • the server sends the data block and its size, the size of the large object, and the transmission end identifier to the client by using the extended SyncML message.
  • the invention transmits the data block together with the size of the data block to the client, and each time the client receives a data block, it determines whether the transmission is successful, and when the data block fails to transmit, or actively requests to end the session. Either request retransmission; that is, the present invention processes in advance when the data block of the large object is transmitted incorrectly, thereby saving bandwidth resources.
  • FIG. 1 is a flow chart of a first preferred embodiment of a large object transmission method of the present invention
  • FIG. 2 is a flow chart of a second preferred embodiment of the large object transmission method of the present invention.
  • FIG. 3 is a schematic block diagram of a preferred embodiment of the large object transmission system of the present invention. detailed description
  • FIG. 1 it is a flowchart of the first preferred embodiment of the large object transmission method of the present invention.
  • the client uses the request server retransmission mechanism for the data block that fails to be transmitted.
  • This embodiment includes the following steps. :
  • Step S001 The server establishes a session with the client.
  • Step S002 According to the maximum number of message bytes supported by the client, which is known during the session establishment process, splitting the currently transmitted large object, splitting the large object into data blocks and starting transmission; this step splits the large object.
  • a data block that is less than or equal to the maximum number of message bytes supported by the client is transmitted.
  • Step S003 determining whether the current data block is the first data block or the last data block, if it is the first data block, executing step S004; if it is the last data block, executing step S005; otherwise, executing step S006 ;
  • Step S004 The size of the currently transmitted large object is taken as the value of the Size element of the extended SyncML message, step S006 is performed;
  • the extended SyncML message includes a Size element, a Data element, a BlockSize element, and a Final element, wherein the BlockSize element is a new element of the invention to carry the size of the data block; the value of the Size element represents the currently transmitted large object.
  • the size, the value of the Data element indicates the currently transmitted data block, the value of the BlockSize element indicates the size of the currently transmitted data block, and the value of the Final element indicates the end of transmission identification.
  • Step S005 The transmission end identifier is used as the value of the Final element of the extended SyncML message;
  • Step S006 The current data block and its size are respectively used as the value of the Data element and the BlockSize element of the extended SyncML message;
  • Step S007 Send the extended SyncML message to the client.
  • the value of the Size element of the SyncML message is not empty; when the currently transmitted data block is the last data block of the large object, the value of the Final element of the extended SyncML message is not empty, in other cases and when retransmitting, the extended The Size element and Final element of the SyncML message are empty.
  • Step S008 The client receives the extended SyncML message.
  • Step S009 determining whether the Size element of the message is empty, and if so, executing step S010; otherwise, executing step S011;
  • Step S010 Saving the value of the Size element
  • This step saves the size of the large object and is used as a basis for judging whether the large object is successfully transmitted in the subsequent steps.
  • Step S011 Calculate the actual size of the received data block;
  • Step S012 Compared with the value of the BlockSize element, if yes, step S013 is performed; otherwise, step S014 is performed;
  • Step S013 Save the current data block, and return the current data block transmission success message to the above server, and perform step S015;
  • Step S014 Discard the current data block, and return a retransmission current data block request message to the foregoing server.
  • Step S015 determining whether the value of the Final element of the message is empty, if yes, indicating that the currently transmitted data block is the last data block, performing step S016; otherwise, performing step S008; Step S016: combining all the saved data blocks and Calculating the size of the merged data block; Step S017: If the value of the saved Size element is compared, if yes, step S018 is performed; otherwise, step S019 is performed;
  • This step can determine that the data block has packet loss during the transmission process.
  • Step S018 Returning the large object transmission success message to the server, and performing step S020;
  • Step S019 returning a large object transmission failure message to the server;
  • Step S020 The server receives the message returned by the client.
  • Step S021 Determine the message type returned by the client, if it is the current data block transmission success message, execute step S022; if it is to retransmit the current data block request message, execute step S006; if it is a large object transmission success/failure message, Then executing step S025;
  • Step S022 determining whether there is still a data block, and if so, executing step S023; otherwise, executing step S024;
  • Step S023 pointing to the next data block, performing step S003;
  • Step S024 Waiting for the client to return a large object transmission result message, performing step S020; Step S025: ending the current session.
  • FIG. 2 it is a flowchart of a second preferred embodiment of the large object transmission method of the present invention.
  • the client uses the request server to end the dialogue mechanism for the data block that fails to be transmitted. Processing, this embodiment includes the following steps:
  • Step S101 The server establishes a session with the client.
  • Step S102 Split the currently transmitted large object according to the maximum number of message bytes that the client can support during the session establishment process, and split the large object into data blocks and start transmission;
  • Step S103 determining whether the current data block is the first data block or the last data block, if it is the first data block, executing step S104; if it is the last data block, executing step S105; otherwise, executing step S106 ;
  • Step S104 The size of the currently transmitted large object is taken as the value of the Size element of the extended SyncML message, step S106 is performed;
  • Step S105 The transmission end identifier is used as the value of the Final element of the extended SyncML message;
  • Step S106 The current data block and its size are respectively used as the value of the Data element and the BlockSize element of the extended SyncML message;
  • Step S107 Send the extended SyncML message to the client.
  • Step S108 The client receives the extended SyncML message.
  • Step S109 determining whether the Size element of the message is empty, and if so: executing step S110; otherwise, executing step S111;
  • Step S110 Saving the value of the Size element
  • Step S111 Calculate the size of the received data block
  • Step S112 If the value of the BlockSize element is compared, if yes, step S113 is performed; otherwise, step S114 is performed;
  • Step S113 Save the current data block, and return the current data block transmission success message to the above server, and perform step S115;
  • Step S114 discarding the current data block, and returning the end session request message to the server;
  • Step S115 determining whether the value of the Final element of the message is empty, and if yes, indicating that The previously transmitted data block is the last data block, and step S116 is performed; otherwise, step S108 is performed;
  • Step S116 Combine all the saved data blocks and calculate the size of the merged data block;
  • Step S117 and the value of the saved Size element If yes, go to step S118; otherwise, go to step S119;
  • Step S118 Returning the large object transmission success message to the server, and performing step S120;
  • Step S119 returning a large object transmission failure message to the server;
  • Step S120 The server receives the message returned by the client.
  • Step S121 Determine the message type returned by the client, if it is the current data block transmission success message, execute step S122; if it is the end session request message, execute step S125; if it is a large object transmission success/failure message, perform the step S125;
  • Step S122 determining whether there is still a data block, and if so, executing step S123; otherwise, executing step S124;
  • Step S123 pointing to the next data block, performing step S103;
  • Step S124 Waiting for the client to return the large object transmission result message, performing step S120; Step S125: Ending the current session.
  • FIG. 3 it is a schematic block diagram of a preferred embodiment of the large object transmission system of the present invention.
  • the embodiment includes a server and a client.
  • a server configured to split the pre-transported large object into data blocks equal to or smaller than the maximum number of message bytes according to the maximum number of message bytes supported by the client, and pass the obtained data block and its size through the extended SyncML
  • the message is sent to the client one by one in sequence; and when the first data block and its size are sent, the size of the large object is sent to the client; when the last data block and its size are sent, the transmission ends.
  • the client is configured to calculate the actual size of the received data block, compare it with the received size of the data block, determine whether the received data block is successfully transmitted, and save the data block when the data block is successfully transmitted. And returning the current data block transmission success message to the server; when the data block transmission fails, returning the end session request message or retransmitting the current data block request message to the server; and saving the size of the received large object; When the transmission end identifier is reached and the current data block is successfully transmitted, the saved data block is merged in order and the total size of the data block is calculated, and compared with the size of the saved large object, when the two are consistent, the large object transmission success message is returned. To the above server; when the two are inconsistent, return a large object transmission failure message to the above server.
  • the invention transmits the data block together with the size of the data block to the client, and each time the client receives a data block, it determines whether the transmission is successful, so when the data block of the large object is transmitted, the time can be timely. Know and process in advance, saving bandwidth resources.

Abstract

本发明公开了一种大对象传输方法,上述方法在服务器与客户端建立会话后,服务器将预传输的大对象拆分成数据块,并将得到的数据块及其大小按顺序逐个发送给上述客户端;客户端判断收到的数据块是否传输成功,若是,则保存上述数据块,并返回当前数据块传输成功消息给上述服务器;否则,返回结束会话请求消息或重传当前数据块请求消息给上述服务器;服务器根据收到的消息,发送相应数据块及其大小或者结束会话;本发明还进一步公开了一种大对象传输系统。本发明在大对象的数据块传输出错时,提前进行了处理,节省了带宽资源。

Description

大对象传输方法及系统 技术领域
本发明涉及通讯领域中基于 OMA ( Open Mobile Alliance, 开放移动 联盟 ) SyncML ( Synchronization Markup Language, 数据同步协议 )的传输 技术, 尤其涉及一种大对象传输方法及系统。 背景技术
OMA SyncML协议支持对象的传输, 当对象大小大于客户端支持的最 大消息字节数时, 该对象被称为大对象, 即传输对象的大小(SyncML消息 中用 Size元素标识) 大于客户端支持的最大消息字节数(SyncML消息中 用 MaxMsgSize元素标识), 所述对象为大对象。 对于大对象的传输, OMA SyncML协议中规定的处理办法通常是将大对象拆分成数据块传输, 通过 SyncML消息, 将数据块发送给客户端,每一个数据块的大小等于或小于客 户端支持的最大消息字节数, 大对象的传输是基于 OMA SyncML协议中基 本会话完成的。
OMA SyncML协议中基本的会话过程包括会话建立和会话管理两个阶 段。 会话建立阶段既可由服务器端触发, 也可由客户端触发, 双方建立会 话后, 进入会话管理阶段。 客户端与服务器在会话管理阶段交互, 完成整 个大对象的传输。 OMA SyncML协议中规定了的大对象传输方式。
现有的基于 OMA SyncML协议的大对象传输过程主要包括以下几个部 分:
一: 服务器与客户端建立会话, 服务器得知客户端的 MaxMsgSize; 二: 服务器发出大对象的传输命令, 并把所述大对象数据按照给定的 MaxMsgSize 进行分块, 将所述大对象的大小 ( SyncML 消息中用 MaxMsgSize元素标识 )和第一个数据块发送给客户端;
三: 客户端保存大对象的大小和第一个数据块, 并通知服务器继续发 送下一个数据块;
四: 服务器继续发送下一个数据块, 直到数据全部传输完毕(SyncML 消息中用 Final元素标识;);
五: 客户端收到大对象传输完毕的命令后, 将所有的数据块组合起来, 并计算出其总大小, 再与保存的所述大对象的大小进行比较, 来检查大对 象是否传输成功。
从上面的流程可以看出, 这种传输方式存在一定的缺陷, 就是只有在 大对象的所有数据块全部传输完毕后, 才能知道大对象的传输是否成功, 即由于服务器没有给出各数据块的大小, 所以即使客户端接收到的数据块 出错, 客户端也不会知道, 还是通知服务器继续发送下一个数据块, 这样 就造成了交互时间和带宽资源的浪费。 发明内容
本发明的目的在于, 提供一种大对象的传输方法及系统, 以优化现有 的大对象传输方法。
为实现本发明目的, 本发明提供了如下的技术方案:
一种大对象传输方法, 该方法在服务器与客户端建立会话后: 上述服务器将预传输的大对象拆分成数据块, 并将得到的数据块及其 大小按顺序逐个发送给上述客户端;
上述客户端判断收到的数据块是否传输成功, 若是, 则保存上述数据 块, 并返回当前数据块传输成功消息给上述服务器; 否则, 返回结束会话 请求消息或重传当前数据块请求消息给上述服务器;
上述服务器根据收到的消息, 发送相应数据块及其大小或者结束会话。 优选地, 上述客户端通过以下方式判断收到的数据块是否传输成功: 计算上述数据块的实际大小;
与收到的上述数据块的大小比较, 若一致, 则上述数据块传输成功; 否则, 上述数据块传输失败。
优选地, 若当前发送的数据块为上述大对象的第一个数据块, 则上述 服务器还将上述大对象的大小发送给上述客户端;
上述客户端保存收到的大对象的大小。
优选地, 若当前发送的数据块为上述大对象的最后一个数据块, 则上 述服务器还发送传输结束标识发送给上述客户端;
上述客户端在收到传输结束标识且当前数据块传输成功后, 执行以下 步驟:
按顺序合并保存的数据块并计算上述数据块的总大小;
与保存的大对象的大小比较, 若一致, 则返回大对象传输成功消息给 上述服务器; 否则, 返回大对象传输失败消息给上述服务器。
优选地, 上述服务器根据收到的请求, 发送相应数据块及其大小或者 结束会话步驟具体为:
上述服务器在收到当前数据块传输成功消息且还有数据块时, 将下一 个数据块及其大' j、发送给上述客户端;
上述服务器在收到重传当前数据块请求消息时, 继续发送当前数据块 及其大小给上述客户端;
上述服务器在收到结束会话请求消息、 大对象传输成功消息或大对象 传输失败消息时, 结束当前会话。
优选地, 上述服务器通过扩展的 SyncML消息将上述数据块及其大小、 大对象的大小、 传输结束标识发送给上述客户端;
上述扩展的 SyncML消息包括 Size元素、 Data元素、 BlockSize元素、 Final元素, 其中, Size元素的值为大对象的大小、 Data元素的值为当前传 输的数据块、 BlockSize元素的值为当前传输的数据块的大小、 Final元素的 值为传输结束标识。 本发明进一步提供了一种大对象传输系统, 上述系统包括服务器和客 户端,
上述服务器, 用于将预传输的大对象拆分成数据块, 并将得到的数据 块及其大' j、按顺序逐个发送给上述客户端; 以及根据上述客户端返回的消 息, 发送相应数据块及其大小或者结束会话;
上述客户端, 用于判断收到的数据块是否传输成功, 并在数据块传输 成功时, 保存上述数据块, 并返回当前数据块传输成功消息给上述服务器; 在数据块传输失败时, 返回结束会话请求消息或重传当前数据块请求消息 给上述服务器。
优选地, 上述服务器, 用于在发送第一个数据块及其大小时, 将上述 大对象的大小发送给上述客户端; 在发送最后一个数据块及其大小时, 将 传输结束标识发送给上述客户端;
上述客户端, 用于保存收到的大对象的大小; 并在收到传输结束标识 且当前数据块传输成功时, 按顺序合并保存的数据块并计算上述数据块的 总大小, 与保存的大对象的大小进行比较, 在二者一致时, 返回大对象传 输成功消息给上述服务器; 在二者不一致时, 返回大对象传输失败消息给 上述服务器。
优选地, 上述服务器, 用于在收到当前数据块传输成功消息且还有数 据块时, 将下一个数据块及其大小发送给上述客户端; 在收到重传当前数 据块请求消息时, 继续发送当前数据块及其大' j、给上述客户端;
以及在收到结束会话请求消息、 大对象传输成功消息或大对象传输失 败消息时, 结束当前会话;
上述客户端, 用于计算数据块的实际大小, 并与收到的上述数据块的 大小进行比较。
优选地, 上述服务器通过扩展的 SyncML消息将上述数据块及其大小、 大对象的大小、 传输结束标识发送给上述客户端。 本发明在传输数据块的同时, 将上述数据块的大小一起发送给客户端 , 客户端每收到一个数据块, 即判断其是否传输成功, 并在数据块传输失败 时, 要么主动要求结束会话, 要么请求重传; 也就是说, 本发明在大对象 的数据块传输出错时, 提前进行了处理, 节省了带宽资源。 附图说明
图 1是本发明大对象传输方法第一优选实施例的流程图;
图 2是本发明大对象传输方法第二优选实施例的流程图;
图 3是本发明大对象传输系统优选实施例的原理框图。 具体实施方式
为了使本发明所要解决的技术问题、 技术方案及有益效果更加清楚、 明白, 以下结合附图和实施例, 对本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅用以解释本发明, 并不用于限定本发明。
如图 1 所示, 是本发明大对象传输方法第一优选实施例的流程图, 本 实施例中, 客户端对于传输失败的数据块, 采用请求服务器重传机制处理, 本实施例包括以下步驟:
步驟 S001 : 服务器与客户端建立会话;
步驟 S002: 根据会话建立过程中得知的上述客户端支持的最大消息字 节数, 拆分当前传输的大对象, 将上述大对象拆分成数据块并开始传输; 本步驟将大对象拆分成小于等于客户端支持的最大消息字节数的数据 块进行传输。 步驟 S003:判断当前数据块是否是第一个数据块或者最后一个数据块, 若为第一个数据块, 则执行步驟 S004; 若为最后一个数据块, 则执行步驟 S005; 否则, 执行步驟 S006;
步驟 S004:将当前传输的大对象的大小作为扩展的 SyncML消息的 Size 元素的值, 执行步驟 S006;
本发明中, 扩展的 SyncML消息包括 Size元素、 Data元素、 BlockSize 元素、 Final元素, 其中, BlockSize元素为本发明新增元素, 用以携带数据 块的大小; Size元素的值表示当前传输的大对象的大小、 Data元素的值表 示当前传输的数据块、 BlockSize元素的值表示当前传输的数据块的大小、 Final元素的值表示传输结束标识。
步驟 S005:将传输结束标识作为扩展的 SyncML消息的 Final元素的值; 步驟 S006: 将当前数据块及其大小分别作为上述扩展的 SyncML消息 的 Data元素、 BlockSize元素的值;
步驟 S007: 将上述扩展的 SyncML消息发送给上述客户端;
本步驟中, 在当前传输的数据块为大对象的第一个数据块时, 扩展的
SyncML消息的 Size元素的值不为空; 在当前传输的数据块为大对象的最 后一个数据块时, 扩展的 SyncML消息的 Final元素的值不为空, 其他情况 下及重传时, 扩展的 SyncML消息的 Size元素、 Final元素为空。
步驟 S008: 客户端收到扩展的 SyncML消息;
步驟 S009:判断上述消息的 Size元素是否为空,若是,则执行步驟 S010; 否则, 执行步驟 S011;
步驟 S010: 保存 Size元素的值;
本步驟即保存大对象的大小, 用于在后续步驟中作为判断大对象是否 传输成功的依据。
步驟 S011: 计算收到的数据块的实际大小; 步驟 S012: 与 BlockSize元素的值比较, 若一致, 则执行步驟 S013; 否则, 执行步驟 S014;
步驟 S013: 保存当前数据块, 并返回当前数据块传输成功消息给上述 服务器, 执行步驟 S015;
步驟 S014: 丟弃当前数据块, 返回重传当前数据块请求消息给上述服 务器;
步驟 S015: 判断上述消息的 Final元素的值是否为空, 若是, 则表明当 前传输的数据块为最后一个数据块,执行步驟 S016; 否则,执行步驟 S008; 步驟 S016: 合并保存的所有数据块并计算合并后的数据块的大小; 步驟 S017: 与保存的 Size元素的值比较, 若一致, 则执行步驟 S018; 否则, 执行步驟 S019;
本步驟可判断出数据块在传输过程中出现丟包现象。
步驟 S018: 返回大对象传输成功消息给上述服务器, 执行步驟 S020; 步驟 S019: 返回大对象传输失败消息给上述服务器;
步驟 S020: 服务器收到客户端返回的消息;
步驟 S021: 判断客户端返回的消息类型, 若为当前数据块传输成功消 息, 则执行步驟 S022; 若为重传当前数据块请求消息, 则执行步驟 S006; 若为大对象传输成功 /失败消息, 则执行步驟 S025;
步驟 S022: 判断是否还有数据块, 若是, 则执行步驟 S023; 否则, 执 行步驟 S024;
步驟 S023: 指向下一个数据块, 执行步驟 S003;
步驟 S024: 等待客户端返回大对象传输结果消息, 执行步驟 S020; 步驟 S025: 结束当前会话。
如图 2所示, 是本发明大对象传输方法第二优选实施例的流程图, 本 实施例中, 客户端对于传输失败的数据块, 采用请求服务器结束对话机制 处理, 本实施例包括以下步驟:
步驟 S101: 服务器与客户端建立会话;
步驟 S102: 根据会话建立过程中得知的上述客户端能够支持的最大消 息字节数, 拆分当前传输的大对象, 将上述大对象拆分成数据块并开始传 输;
步驟 S103:判断当前数据块是否是第一个数据块或者最后一个数据块, 若为第一个数据块, 则执行步驟 S104; 若为最后一个数据块, 则执行步驟 S105; 否则, 执行步驟 S106;
步驟 S104:将当前传输的大对象的大小作为扩展的 SyncML消息的 Size 元素的值, 执行步驟 S106;
步驟 S105:将传输结束标识作为扩展的 SyncML消息的 Final元素的值; 步驟 S106: 将当前数据块及其大小分别作为上述扩展的 SyncML消息 的 Data元素、 BlockSize元素的值;
步驟 S107: 将上述扩展的 SyncML消息发送给上述客户端;
步驟 S108: 客户端收到扩展的 SyncML消息;
步驟 S109: 判断上述消息的 Size元素是否为空, 若是, 则:执行步驟 S110; 否则, 执行步驟 S111;
步驟 S110: 保存 Size元素的值;
步驟 S111 : 计算收到的数据块的大小;
步驟 S112: 与 BlockSize元素的值比较, 若一致, 则执行步驟 S113; 否则, 执行步驟 S114;
步驟 S113: 保存当前数据块, 并返回当前数据块传输成功消息给上述 服务器, 执行步驟 S115;
步驟 S114: 丟弃当前数据块, 返回结束会话请求消息给上述服务器; 步驟 S115: 判断上述消息的 Final元素的值是否为空, 若是, 则表明当 前传输的数据块为最后一个数据块,执行步驟 S116; 否则,执行步驟 S108; 步驟 S116: 合并保存的所有数据块并计算合并后的数据块的大小; 步驟 S117: 与保存的 Size元素的值比较, 若一致, 则执行步驟 S118; 否则, 执行步驟 S119;
步驟 S118: 返回大对象传输成功消息给上述服务器, 执行步驟 S120; 步驟 S119: 返回大对象传输失败消息给上述服务器;
步驟 S120: 服务器收到客户端返回的消息;
步驟 S121: 判断客户端返回的消息类型, 若为当前数据块传输成功消 息, 则执行步驟 S122; 若为结束会话请求消息, 则执行步驟 S125; 若为大 对象传输成功 /失败消息, 则执行步驟 S125;
步驟 S122: 判断是否还有数据块, 若是, 则执行步驟 S123; 否则, 执 行步驟 S124;
步驟 S123: 指向下一个数据块, 执行步驟 S103;
步驟 S124: 等待客户端返回大对象传输结果消息, 执行步驟 S120; 步驟 S125: 结束当前会话。
如图 3 所示, 是本发明大对象传输系统优选实施例的原理框图, 本实 施例包括服务器和客户端,
服务器, 用于根据客户端支持的最大消息字节数, 将预传输的大对象 拆分成等于或小于上述最大消息字节数的数据块, 并将得到的数据块及其 大小通过扩展的 SyncML消息, 按顺序逐个发送给上述客户端; 并在发送 第一个数据块及其大小时, 将上述大对象的大小发送给上述客户端; 在发 送最后一个数据块及其大小时, 将传输结束标识发送给上述客户端; 以及 在上述客户端返回的消息为当前数据块传输成功消息, 且还有数据块时, 将下一个数据块及其大小发送给上述客户端; 在上述客户端返回的消息为 重传当前数据块请求消息时, 继续发送当前数据块及其大小给上述客户端; 在上述客户端返回的消息为结束会话请求消息、 大对象传输成功消息或大 对象传输失败消息时, 结束当前会话;
客户端, 用于计算收到的数据块的实际大小, 并与收到的上述数据块 的大小进行比较, 判断收到的数据块是否传输成功, 并在数据块传输成功 时, 保存上述数据块, 并返回当前数据块传输成功消息给上述服务器; 在 数据块传输失败时, 返回结束会话请求消息或重传当前数据块请求消息给 上述服务器; 以及保存收到的大对象的大小; 并在收到传输结束标识且当 前数据块传输成功时, 按顺序合并保存的数据块并计算上述数据块的总大 小, 与保存的大对象的大小进行比较, 在二者一致时, 返回大对象传输成 功消息给上述服务器; 在二者不一致时, 返回大对象传输失败消息给上述 服务器。
上述说明示出并描述了本发明的优选实施例, 但如前所述, 应当理解 本发明并非局限于本文所披露的形式, 不应看作是对其他实施例的排除, 而可用于各种其他组合、 修改和环境, 并能够在本文所述发明构想范围内, 通过上述教导或相关领域的技术或知识进行改动。 而本领域人员所进行的 改动和变化不脱离本发明的精神和范围, 则都应在本发明所附权利要求的 保护范围内。 工业实用性
本发明在传输数据块的同时, 将上述数据块的大小一起发送给客户端, 客户端每收到一个数据块, 即判断其是否传输成功, 因此在大对象的数据 块传输出错时, 能够及时获知并提前进行处理, 节省了带宽资源。

Claims

权利要求书
1、 一种大对象传输方法, 该方法包括:
所述服务器将预传输的大对象拆分成数据块, 并将得到的数据块及其 大小按顺序逐个发送给所述客户端;
所述客户端判断收到的数据块是否传输成功, 若是, 则保存所述数据 块, 并返回当前数据块传输成功消息给所述服务器; 否则, 返回结束会话 请求消息或重传当前数据块请求消息给所述服务器;
所述服务器根据收到的消息, 发送相应数据块及其大小或者结束会话。
2、 根据权利要求 1所述的方法, 其中, 所述客户端通过以下方式判断 收到的数据块是否传输成功:
计算所述数据块的实际大小;
与收到的所述数据块的大小比较, 若一致, 则所述数据块传输成功; 否则, 所述数据块传输失败。
3、 根据权利要求 2所述的方法, 其中, 若当前发送的数据块为所述大 对象的第一个数据块, 则所述服务器还将所述大对象的大小发送给所述客 户端;
所述客户端保存收到的大对象的大小。
4、 根据权利要求 3所述的方法, 其中, 若当前发送的数据块为所述大 对象的最后一个数据块, 则所述服务器还发送传输结束标识给所述客户端; 所述客户端在收到传输结束标识且当前数据块传输成功后, 执行以下 步驟: 与保存的大对象的大小比较, 若一致, 则返回大对象传输成功消息给 所述服务器; 否则, 返回大对象传输失败消息给所述服务器。
5、 根据权利要求 1-4任一项所述的方法, 其中, 所述服务器根据收到 的请求, 发送相应数据块及其大小或者结束会话步驟具体为:
所述服务器在收到当前数据块传输成功消息且还有数据块时, 将下一 个数据块及其大' j、发送给所述客户端;
所述服务器在收到重传当前数据块请求消息时, 继续发送当前数据块 及其大小给所述客户端;
所述服务器在收到结束会话请求消息、 大对象传输成功消息或大对象 传输失败消息时, 结束当前会话。
6、根据权利要求 5所述的方法,其中,所述服务器通过扩展的 SyncML 消息将所述数据块及其大小、 大对象的大小、 传输结束标识发送给所述客 户端;
所述扩展的 SyncML消息包括 Size元素、 Data元素、 BlockSize元素、 Final元素, 其中, Size元素的值为大对象的大小、 Data元素的值为当前传 输的数据块、 BlockSize元素的值为当前传输的数据块的大小、 Final元素的 值为传输结束标识。
7、 一种大对象传输系统, 该系统包括服务器和客户端,
所述服务器, 用于将预传输的大对象拆分成数据块, 并将得到的数据 块及其大' j、按顺序逐个发送给所述客户端; 以及根据所述客户端返回的消 息, 发送相应数据块及其大小或者结束会话;
所述客户端, 用于判断收到的数据块是否传输成功, 并在数据块传输 成功时, 保存所述数据块, 并返回当前数据块传输成功消息给所述服务器; 在数据块传输失败时, 返回结束会话请求消息或重传当前数据块请求消息 给所述服务器。
8、 根据权利要求 7所述的系统,
所述服务器还用于在发送第一个数据块及其大小时, 将所述大对象的 大小发送给所述客户端; 在发送最后一个数据块及其大小时, 将传输结束 标识发送给所述客户端;
所述客户端还用于保存收到的大对象的大小; 并在收到传输结束标识 且当前数据块传输成功时, 按顺序合并保存的数据块并计算所述数据块的 总大小, 与保存的大对象的大小进行比较, 在二者一致时, 返回大对象传 输成功消息给所述服务器; 在二者不一致时, 返回大对象传输失败消息给 所述服务器。
9、 根据权利要求 8所述的系统,
所述服务器还用于在收到当前数据块传输成功消息且还有数据块时, 将下一个数据块及其大小发送给所述客户端; 在收到重传当前数据块请求 消息时, 继续发送当前数据块及其大小给所述客户端; 以及在收到结束会 话请求消息、 大对象传输成功消息或大对象传输失败消息时, 结束当前会 话;
所述客户端还用于计算数据块的实际大小, 并与收到的所述数据块的 大小进行比较。
10、 根据权利要求 7-9 任一项所述的系统, 所述服务器通过扩展的 SyncML消息将所述数据块及其大小、 大对象的大小、传输结束标识发送给 所述客户端。
PCT/CN2012/070158 2011-10-18 2012-01-10 大对象传输方法及系统 WO2013056518A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/351,628 US9300438B2 (en) 2011-10-18 2012-01-10 Method and system for transmitting large object
JP2014536092A JP6050823B2 (ja) 2011-10-18 2012-01-10 ラージ・オブジェクトの転送方法及びシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110316789.8 2011-10-18
CN2011103167898A CN102340507A (zh) 2011-10-18 2011-10-18 大对象传输方法及系统

Publications (1)

Publication Number Publication Date
WO2013056518A1 true WO2013056518A1 (zh) 2013-04-25

Family

ID=45516005

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/070158 WO2013056518A1 (zh) 2011-10-18 2012-01-10 大对象传输方法及系统

Country Status (4)

Country Link
US (1) US9300438B2 (zh)
JP (1) JP6050823B2 (zh)
CN (1) CN102340507A (zh)
WO (1) WO2013056518A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2019087295A1 (ja) * 2017-10-31 2020-04-09 三菱電機株式会社 更新システム、更新装置および被更新装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103856955B (zh) * 2012-11-28 2018-07-20 腾讯科技(深圳)有限公司 一种数据传输的测试方法和装置
CN113068177B (zh) * 2021-03-23 2023-01-10 中国联合网络通信集团有限公司 数据传输控制方法、装置及终端设备
CN114697376A (zh) * 2022-03-16 2022-07-01 浪潮云信息技术股份公司 一种超大消息传输方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115364A1 (en) * 2001-12-19 2003-06-19 Li Shu Camouflage of network traffic to resist attack
CN101656756A (zh) * 2009-09-17 2010-02-24 中国科学院声学研究所 一种发送速率自适应控制的文件传输方法及其系统
CN101877862A (zh) * 2009-04-30 2010-11-03 中兴通讯股份有限公司 大对象传输方法、服务器

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01101758A (ja) * 1987-10-15 1989-04-19 Oki Electric Ind Co Ltd 固定長パケット通信におけるパケット分解・組立および粉失検出方法
US5452299A (en) * 1993-10-14 1995-09-19 Intel Corporation Optimized transfer of large object data blocks in a teleconferencing system
WO1996016497A1 (en) * 1994-11-21 1996-05-30 Oracle Corporation Transferring binary large objects (blobs) in a network environment
US5857203A (en) * 1996-07-29 1999-01-05 International Business Machines Corporation Method and apparatus for dividing, mapping and storing large digital objects in a client/server library system
JP2001086190A (ja) * 1999-09-09 2001-03-30 Mega Chips Corp データ伝送における誤り制御システム
JP4003357B2 (ja) 1999-09-29 2007-11-07 ソニー株式会社 ディスクの記録及び/又は再生装置
US6938211B1 (en) * 1999-11-24 2005-08-30 University of Pittsburgh of the Common Wealth System of Higher Education Methods and apparatus for an image transfer object
US7570656B2 (en) * 2001-06-18 2009-08-04 Yitran Communications Ltd. Channel access method for powerline carrier based media access control protocol
JP4860070B2 (ja) * 2001-08-30 2012-01-25 株式会社日立製作所 ファイル伝送方法及びファイル伝送システム
US20030210711A1 (en) * 2002-05-08 2003-11-13 Faust Albert William Data transfer method and apparatus
JP3643360B2 (ja) 2002-08-12 2005-04-27 松下電器産業株式会社 受信装置及び通信方法
US7206910B2 (en) * 2002-12-17 2007-04-17 Oracle International Corporation Delta object replication system and method for clustered system
CN100563253C (zh) * 2006-03-23 2009-11-25 杭州华三通信技术有限公司 一种客户/服务器架构中的数据处理方法
CN101453478B (zh) * 2007-11-28 2013-07-03 新奥特(北京)视频技术有限公司 一种在文件传输中的完整性校验方法
US8103631B2 (en) * 2008-11-19 2012-01-24 Sandisk Il Ltd Merging files on storage and retrieve
CN101827128A (zh) * 2010-04-06 2010-09-08 山东高效能服务器和存储研究院 一种文件网络传输中分块下载和匹配的方法
US20110264763A1 (en) * 2010-04-23 2011-10-27 Yu Chun-Ta Method for retrieving object from device management client and associated device management system
JP5348263B2 (ja) * 2012-02-29 2013-11-20 富士通株式会社 データ伝送装置、データ伝送システムおよびデータ伝送方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115364A1 (en) * 2001-12-19 2003-06-19 Li Shu Camouflage of network traffic to resist attack
CN101877862A (zh) * 2009-04-30 2010-11-03 中兴通讯股份有限公司 大对象传输方法、服务器
CN101656756A (zh) * 2009-09-17 2010-02-24 中国科学院声学研究所 一种发送速率自适应控制的文件传输方法及其系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LAKSHMESHWAR, S. ET AL.: "Suspend and Resume Feature for OMA DM Large Object Delivery.", THE 3RD INTERNATIONAL CONFERENCE ON GRID AND PERVASIVE COMPUTING WORKSHOPS, May 2008 (2008-05-01), pages 206 - 212, XP031270045 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2019087295A1 (ja) * 2017-10-31 2020-04-09 三菱電機株式会社 更新システム、更新装置および被更新装置

Also Published As

Publication number Publication date
JP2015501584A (ja) 2015-01-15
JP6050823B2 (ja) 2016-12-21
US9300438B2 (en) 2016-03-29
CN102340507A (zh) 2012-02-01
US20140317465A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
JP6462879B2 (ja) 適応的フローテーブルを処理する方法及び装置
JP5598582B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム
JP2018503303A5 (zh)
WO2013056518A1 (zh) 大对象传输方法及系统
EP2866395B1 (en) Maximum transmission unit negotiation method and data terminal
JP2011524127A5 (zh)
WO2011100911A2 (zh) 探测处理方法、数据发送端、数据接收端以及通信系统
JP2012510759A5 (zh)
WO2015113297A1 (zh) 数据传输方法、传输控制方法及设备
WO2018107925A1 (zh) 一种数据流的处理方法及装置、计算机存储介质
WO2015180418A1 (zh) 组播传输方法、装置及系统
WO2013167065A2 (zh) 一种协同业务传输中的数据重传方法及接入网网关
KR101018685B1 (ko) 광대역 무선통신시스템에서 자동 재송 요구 리셋을제어하기 위한 장치 및 방법
US10193941B2 (en) Interworking between first protocol entity of stream reservation protocol and second protocol entity of routing protocol
CN104270320B (zh) 一种分布式通信系统主动流量控制的方法
KR101927081B1 (ko) Rlc 계층의 데이터 패킷 처리 방법 및 rlc 엔티티
US20160080972A1 (en) Data transmission system and method
TWI477112B (zh) Chain data transmission method, node and system
WO2014101733A1 (zh) 报文处理方法和装置
WO2011026374A1 (zh) 确定路由的方法和装置
JP2020061610A5 (ja) Ue、制御装置及び通信制御方法
WO2020092560A1 (en) Mobility management in information centric networking
WO2016202072A1 (zh) 自动配置方法、控制器及设备
JP2008244822A (ja) アドレス重複回避方法、システム、ルータ
US9641421B2 (en) Message transmitting method, message receiving method, openflow controller and first openflow switch

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12841082

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14351628

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2014536092

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12841082

Country of ref document: EP

Kind code of ref document: A1