CN115941762A - 一种数据传输方法、电子设备和装置 - Google Patents
一种数据传输方法、电子设备和装置 Download PDFInfo
- Publication number
- CN115941762A CN115941762A CN202111034071.XA CN202111034071A CN115941762A CN 115941762 A CN115941762 A CN 115941762A CN 202111034071 A CN202111034071 A CN 202111034071A CN 115941762 A CN115941762 A CN 115941762A
- Authority
- CN
- China
- Prior art keywords
- message
- electronic device
- specific
- packet
- router
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例涉及一种数据传输方法、电子设备和装置。该方法包括:第一电子设备配置第一发送报文缓存区,用于缓存向第二电子设备发送的第一特定报文,第一特定报文是以不同于TCP报文封装方式的特定报文封装方式封装第一应用程序数据得到的报文;第二电子设备配置第一接收报文缓存区,用于缓存接收到的由第一电子设备发送的第一特定报文;在第一电子设备确定需要重新发送第一特定报文的情况下,第一电子设备从第一发送报文缓存区获取第一特定报文,并重新发送第一特定报文。通过本申请实施例的方法,能够减少第一电子设备封装数据的次数,降低生成数据的电子设备的CPU消耗,使得电子设备传输数据更流畅。
Description
技术领域
本申请涉及数据传输领域,尤其涉及一种数据传输方法、电子设备和装置。
背景技术
在物联网领域中,数台电子设备可以同时通过网络设备利用无线网络进行数据传输。随着接入无线网络的电子设备的数量增多,如果多台电子设备占用的无线网络的带宽资源较多,则会造成无线网络的带宽资源紧张,造成无线网络中电子设备之间,电子设备与网络设备之间的网络传输能力不佳。
现在主流的无线网络的数据传输的方式是报文传输,发送端将数据封装为报文由发送端经过网络设备的转发到达接收端。在无线网络的网络传输能力不佳的情况下,电子设备并不会根据网络传输能力来调整数据传输的方式,使得一部分报文未能发送至网络设备,或者即使报文到达网络设备,但网络设备向接收端转发报文失败,以致这些报文会被丢弃;即使报文发送至接收端,发送端也会无法接收到接收端返回的确认信息。这种情况不但会导致发送端与接收端之间的数据传输的延迟高,同时,还会导致发送端产生过多的数据重传,造成发送端的CPU频繁地处理数据重传产生额外的性能消耗。
发明内容
本申请实施例提供一种数据传输方法、电子设备和装置,能够减少生成数据的电子设备的CPU消耗,使得电子设备的CPU能够提供更多的算力给其他应用,使得电子设备传输数据更流畅。
本申请实施例的第一方面提供了一种数据传输方法,应用于包括第一电子设备、第二电子设备的系统中,其特征在于,方法包括:
第一电子设备、第二电子设备之间建立第一会话连接;
第一电子设备配置第一发送报文缓存区,其中,第一发送报文缓存区用于缓存通过第一会话连接向第二电子设备发送的第一特定报文,第一特定报文是以不同于TCP报文封装方式的特定报文封装方式封装第一应用程序数据得到的报文,第一应用程序数据的最终目的接收设备是不同于第二电子设备的第三电子设备;
第二电子设备配置第一接收报文缓存区,其中,第一接收报文缓存区用于缓存通过第一会话连接接收到的由第一电子设备发送的第一特定报文;
第一电子设备通过第一会话连接向第二电子设备发送第一特定报文;
在第一电子设备确定需要重新发送第一特定报文的情况下,第一电子设备从第一发送报文缓存区获取第一特定报文,并重新发送第一特定报文。
第一方面提供的数据传输方法,可以应用于通过第一会话连接的第一电子设备和第二电子设备,例如,通过WIFI连接的手机和WIFI路由器。在第一电子设备向第二电子设备发送第一应用程序数据的过程中,第一电子设备可以使用特定报文封装方式将第一应用程序数据封装为第一特定报文,相较于TCP报文封装方式,特定报文封装方式可以省略,如:TCP头部字段和IP头部字段,在第一电子设备将第一应用程序数据封装为第一特定报文的过程中,无需调用TCP模块和IP模块,从而加快了第一特定报文的封装过程。可选地,第一会话连接可以对应于第一会话标识,第一会话标识用于确定第一特定报文封装的第一应用程序数据来自第一电子设备的第一应用程序。
第一发送报文缓存区可以设置在第一电子设备的存储区域,如:内存,在第一电子设备向第二电子设备发送第一特定报文后,在第一发送报文缓存区缓存第一特定报文,在第一电子设备需要重传第一特定报文的情况下,第一电子设备可以直接从第一发送报文缓存区查找并重传第一特定报文,而无需再次对第一应用程序数据进行封装。
而第一接收报文缓存区可以设置在第二电子设备的存储区域,如:内存,在第二电子设备接受到第一电子设备发送的第一特定报文后,在第一接收报文缓存区缓存第一特定报文。
在上述第一方面的一种可能的实现中,第一电子设备配置第一发送报文缓存区,具体包括:
第一电子设备根据第一电子设备与第二电子设备之间数据传输速度,配置与数据传输速度对应的大小的第一发送报文缓存区。
在该实现方式中,第一电子设备可以根据第一电子设备与第二电子设备之间的数据传输速度动态地调节第一发送报文缓存区的容量,更加灵活地配置第一发送报文缓存区,也就是说,如果第一电子设备与第二电子设备之间的数据传输速度越快,第一电子设备可以将第一发送报文缓存区的容量调小;相反。如果第一电子设备与第二电子设备之间的数据传输速度越慢,第一电子设备可以将第一发送报文缓存区的容量调大。
在上述第一方面的一种可能的实现中,第二电子设备配置第一接收报文缓存区,具体包括:
第二电子设备根据第一电子设备与第二电子设备之间数据传输速度,配置与数据传输速度对应的大小的第一接收报文缓存区。
在该实现方式中,第二电子设备也可以根据第一电子设备与第二电子设备之间的数据传输速度动态地调节第一接收报文缓存区的容量。
在上述第一方面的一种可能的实现中,第一特定报文包括特定报文字段,特定报文字段用于标识第一特定报文对应的序号和/或发送时间。
在该实现方式中,第一特定报文对应的序号可以是第一特定报文的报文序号,用于唯一标识第一特定报文,使得第一电子设备可以根据报文序号在第一发送报文缓存区快速地查找到对应的第一特定报文。第一特定报文对应的发送时间,可以是第一电子设备发出第一特定报文的时间,第一电子设备还可以根据相邻两个特定报文中,一个特定报文的发送时间和另一个特定报文的确认信息的返回时间之间的差值是否超过重传时间阈值来判断是否需要重传特定报文,而无需通过开启计时功能来监听是否收到特定报文的确认信息,加快第一电子设备重传第一特定报文的效率。
在上述第一方面的一种可能的实现中,在第一特定报文的长度与标准TCP报文的长度相同的情况下,第一特定报文能够携带的应用数据字节数大于标准TCP报文能够携带的应用数据字节数。
在该实现方式中,由于第一特定报文对应的特定报文封装方式可以省略,如:TCP头部字段和IP头部字段,使得第一特定报文能够携带的应用数据字节数大于标准TCP报文,提高了数据传输的效率。
在上述第一方面的一种可能的实现中,第一电子设备需要重新发送第一特定报文的情况,包括:
第一电子设备接收到第二电子设备发送的对应于第一特定报文的重传请求,或者,第一电子设备确定超时未接收到第一特定报文对应的确认信息。
在该实现方式中,第一电子设备在接收到对应于第一特定报文的重传请求后重新发送第一特定报文,可以确保发送失败的第一特定报文能够再次发送;或者,第一电子设备发送第一特定报文后可以开启计时功能,在等待时长经过后,第一电子设备确定超时未接收到第一特定报文对应的确认信息,则第一电子设备重新发送第一特定报文,可以加快第一电子设备重传第一特定报文的效率。
在上述第一方面的一种可能的实现中,数据传输方法还包括:
在第一电子设备确定第一特定报文发送成功的情况下,第一电子设备从第一发送报文缓存区删除第一特定报文。
在该实现方式中,在第一电子设备接受到第一特定报文的确认信息后,第一电子设备可以从第一发送报文缓存区删除第一特定报文,释放第一电子设备的存储区域,从而第一发送报文缓存区可以继续缓存后续要发送的其他以特定报文封装方式封装的报文。
在上述第一方面的一种可能的实现中,数据传输方法还包括:
在第二电子设备接收到第一特定报文后,第二电子设备将第一特定报文存储至第一接收报文缓存区。
在该实现方式中,在第二电子设备接受到第一电子设备发送的第一特定报文后,在第一接收报文缓存区缓存第一特定报文,从而若第二电子设备可以从该第一接收报文缓存区获取接收到的第一特定报文,方便对第一特定报文进行后续处理。
在上述第一方面的一种可能的实现中,数据传输方法还包括:
第二电子设备从第一接收报文缓存区获取第一特定报文,并采用与特定报文封装方式对应的特定报文解封装方式解封装第一特定报文,得到第一应用程序数据;
第二电子设备采用TCP报文封装方式封装第一应用程序数据,得到第一TCP报文,并发送第一TCP报文。
在该实现方式中,如果携带第一应用程序数据的报文的整个传输路径中,位于第二电子设备下一跳的设备不支持特定报文封装方式但支持TCP报文封装方式,第二电子设备可以先解封第一特定报文获取第一应用程序数据,再使用TCP报文封装方式将第一应用程序数据封装为第一TCP报文后,发送给位于第二电子设备下一跳的设备,提高了兼容性。
在上述第一方面的一种可能的实现中,数据传输方法还包括:
第二电子设备将第一接收报文缓存区中的第一特定报文,拷贝至第二发送报文缓存区,其中,第二发送报文缓存区用于缓存通过第二会话连接向第三电子设备发送的第一特定报文,第二会话连接是第二电子设备和第三电子设备之间建立的会话连接;
第二电子设备删除第一接收报文缓存区中的第一特定报文。
在该实现方式中,作为第一应用数据的目的接受设备的第三电子设备也支持特定报文封装方式且与第二电子设备之间建立有第二会话连接。在第二电子设备向第三电子设备发送第一特定报文后,在第二发送报文缓存区缓存第一特定报文,从而在第二电子设备需要重传第一特定报文的情况下,由于第二电子设备的第二发送报文缓存区中缓存了第一特定报文,因此第二电子设备就可以直接从第二发送报文缓存区查找并重传第一特定报文,而无需向第一电子设备发送第一应用程序数据的重传请求,进而第一电子设备也无需再次获取、封装、发送第一应用程序数据,缩短了重传报文的获取和传输路径,可以减少第一电子设备的CPU消耗。在第二电子设备接受到第一特定报文的确认信息后,第二电子设备可以从第二发送报文缓存区以及第一接收报文缓存区一起删除第一特定报文,释放第二电子设备的存储区域;第二电子设备也可以在将第一接收报文缓存区中的第一特定报文,拷贝至第二发送报文缓存区后,删除第一接收报文缓存区中的第一特定报文。第二会话连接可以对应于第二会话标识,第二会话标识用于确定第一特定报文封装的第一应用程序数据来自第一电子设备的第一应用程序,以及确定第二电子设备将第一特定报文发送给第三电子设备。
在上述第一方面的一种可能的实现中,数据传输方法还包括:
第二电子设备通过第二会话连接向第三电子设备发送第一特定报文。
在该实现方式中,第二电子设备和第三电子设备可以是通过WIFI连接的WIFI路由器和平板电脑。
在上述第一方面的一种可能的实现中,第一电子设备为终端设备,如:手机,第二电子设备为路由器。
本申请实施例的第二方面提供了一种数据传输方法,应用于第一电子设备,方法包括:
第一电子设备与第二电子设备之间建立第一会话连接;
第一电子设备配置第一发送报文缓存区,其中,第一发送报文缓存区用于缓存通过第一会话连接向第二电子设备发送的第一特定报文,第一特定报文是以不同于TCP报文封装方式的特定报文封装方式封装第一应用程序数据得到的报文,第一应用程序数据的最终目的接收设备是不同于第二电子设备的第三电子设备;
第一电子设备通过第一会话连接向第二电子设备发送第一特定报文;
在第一电子设备确定需要重新发送第一特定报文的情况下,第一电子设备从第一发送报文缓存区获取第一特定报文,并重新发送第一特定报文。
第二方面提供的数据传输方法,可以应用于配置了有线连接/无线连接的第一电子设备,例如,配置了WIFI通信功能的手机。在第一电子设备向第二电子设备发送第一应用程序数据的过程中,第一电子设备可以使用特定报文封装方式将第一应用程序数据封装为第一特定报文,相较于TCP报文封装方式,特定报文封装方式可以省略,如:TCP头部字段和IP头部字段,在第一电子设备将第一应用程序数据封装为第一特定报文的过程中,无需调用TCP模块和IP模块,从而加快了第一特定报文的封装过程。第一会话连接可以对应于第一会话标识,第一会话标识用于确定第一特定报文封装的第一应用程序数据来自第一电子设备的第一应用程序。
第一发送报文缓存区可以设置在第一电子设备的存储区域,如:内存,在第一电子设备向第二电子设备发送第一特定报文后,在第一发送报文缓存区缓存第一特定报文,在第一电子设备需要重传第一特定报文的情况下,第一电子设备可以直接从第一发送报文缓存区查找并重传第一特定报文,而无需再次对第一应用程序数据进行封装。第一特定报文可以经过第二电子设备再发送给第三电子设备。
在上述第二方面的一种可能的实现中,第一电子设备配置第一发送报文缓存区,具体包括:
第一电子设备根据第一电子设备与第二电子设备之间数据传输速度,配置与数据传输速度对应的大小的第一发送报文缓存区。
在该实现方式中,第一电子设备可以根据第一电子设备与第二电子设备之间的数据传输速度动态地调节第一发送报文缓存区的容量,更加灵活地配置第一发送报文缓存区,也就是说,如果第一电子设备与第二电子设备之间的数据传输速度越快,第一电子设备可以将第一发送报文缓存区的容量调小;相反。如果第一电子设备与第二电子设备之间的数据传输速度越慢,第一电子设备可以将第一发送报文缓存区的容量调大。
在上述第二方面的一种可能的实现中,第一特定报文包括特定报文字段,特定报文字段用于标识第一特定报文对应的序号和/或发送时间。
在该实现方式中,第一特定报文对应的序号可以是第一特定报文的报文序号,用于唯一标识第一特定报文,使得第一电子设备可以根据报文序号在第一发送报文缓存区快速地查找到对应的第一特定报文。第一特定报文对应的发送时间,可以是第一电子设备发出第一特定报文的时间,第一电子设备还可以根据相邻两个特定报文中,一个特定报文的发送时间和另一个特定报文的确认信息的返回时间之间的差值是否超过重传时间阈值来判断是否需要重传特定报文,而无需通过开启计时功能来监听是否收到特定报文的确认信息,加快第一电子设备重传第一特定报文的效率。
在上述第二方面的一种可能的实现中,在第一特定报文的长度与标准TCP报文的长度相同的情况下,第一特定报文能够携带的应用数据字节数大于标准TCP报文能够携带的应用数据字节数。
在该实现方式中,由于第一特定报文对应的特定报文封装方式可以省略,如:TCP头部字段和IP头部字段,使得第一特定报文能够携带的应用数据字节数大于标准TCP报文,提高了数据传输的效率。
在上述第二方面的一种可能的实现中,第一电子设备需要重新发送第一特定报文的情况,包括:
第一电子设备接收到第二电子设备发送的对应于第一特定报文的重传请求,或者,第一电子设备确定超时未接收到第一特定报文对应的确认信息。
在该实现方式中,第一电子设备在接收到对应于第一特定报文的重传请求后重新发送第一特定报文,可以确保发送失败的第一特定报文能够再次发送;或者,第一电子设备发送第一特定报文后可以开启计时功能,在等待时长经过后,第一电子设备确定超时未接收到第一特定报文对应的确认信息,则第一电子设备重新发送第一特定报文,可以加快第一电子设备重传第一特定报文的效率。
在上述第二方面的一种可能的实现中,方法还包括:
在第一电子设备确定第一特定报文发送成功的情况下,第一电子设备从第一发送报文缓存区删除第一特定报文。
在该实现方式中,在第一电子设备接受到第一特定报文的确认信息后,第一电子设备可以从第一发送报文缓存区删除第一特定报文,释放第一电子设备的存储区域。
在上述第二方面的一种可能的实现中,第一电子设备为终端设备。
在该实现方式中,第一电子设备可以是手机。
本申请实施例的第三方面提供了一种数据传输方法,应用于第二电子设备,方法包括:
第二电子设备与第一电子设备之间建立第一会话连接;
第二电子设备配置第一接收报文缓存区,其中,第一接收报文缓存区用于缓存通过第一会话连接接收到的由第一电子设备发送的第一特定报文,第一特定报文是以不同于TCP报文封装方式的特定报文封装方式封装第一应用程序数据得到的报文,第一应用程序数据的最终目的接收设备是不同于第二电子设备的第三电子设备;
第二电子设备通过第一会话连接接收第一特定报文,并将第一特定报文存储至第一接收报文缓存区。
第三方面提供的数据传输方法,可以应用于配置了有线连接/无线连接的第二电子设备,例如,WIFI路由器。第一会话连接可以是第一电子设备与第二电子设备之间的通信连接,如:WIFI连接。第一接收报文缓存区可以设置在第二电子设备的存储区域,如:内存,在第二电子设备接受到第一电子设备发送的第一特定报文后,在第一接收报文缓存区缓存第一特定报文。
在上述第三方面的一种可能的实现中,第二电子设备配置第一接收报文缓存区,具体包括:
第二电子设备根据第一电子设备与第二电子设备之间数据传输速度,配置与数据传输速度对应的大小的第一接收报文缓存区。
在该实现方式中,第二电子设备可以根据第一电子设备与第二电子设备之间的数据传输速度动态地调节第一接收报文缓存区的容量。也就是说,如果第一电子设备与第二电子设备之间的数据传输速度越快,第二电子设备可以将第一接收报文缓存区的容量调小;相反。如果第一电子设备与第二电子设备之间的数据传输速度越慢,第二电子设备可以将第一接收报文缓存区的容量调大。
在上述第三方面的一种可能的实现中,数据传输方法还包括:第二电子设备向第一电子设备发送第一特定报文对应的确认信息。
在该实现方式中,第二电子设备可以在接收到第一特定报文后向第一电子设备返回第一特定报文对应的确认信息,相较于现有方案中第一电子设备需要等待第一应用程序数据的最终目的接受设备返回的确认信息,本申请实施例提供的该实现方式缩短了第一电子设备接收确认信息的传输路径和等待时长,加快了报文重传的速度,进而加快了整体的报文传输速度。
在上述第三方面的一种可能的实现中,第一特定报文包括特定报文字段,特定报文字段包括序号和/或发送时间,方法还包括:第二电子设备根据序号和/或发送时间,确定是否向第一电子设备发送重传请求。
在该实现方式中,第二电子设备在确定需要重传第一特定报文时,向第一电子设备发送重传请求,可以确保发送失败的第一特定报文能够再次发送。例如,第二电子设备根据第一特定报文的序号,得知已接收到序号为1、3、4、5的第一特定报文,未接收到序号为2的第一特定报文,则第二电子设备向第一电子设备发送对应于序号为2的第一特定报文的重传请求,用来请求第一电子设备向第二电子设备重新发送序号为2的第一特定报文。从而第一电子设备可以根据该重传请求,从第一发送报文缓存区找到序号为2的第一特定报文并重新发送。
在上述第三方面的一种可能的实现中,数据传输方法还包括:
第二电子设备从第一接收报文缓存区获取第一特定报文,并采用与第一特定报文的封装方式对应的解封装方式解封装第一特定报文,得到第一应用程序数据;
第二电子设备采用TCP报文封装方式封装第一应用程序数据,得到第一TCP报文,并发送第一TCP报文。
在该实现方式中,如果携带第一应用程序数据的报文的整个传输路径中,位于第二电子设备下一跳的设备不支持特定报文封装方式但支持TCP报文封装方式,第二电子设备可以先解封第一特定报文获取第一应用程序数据,再使用TCP报文封装方式将第一应用程序数据封装为第一TCP报文后,发送给位于第二电子设备下一跳的设备,提高了兼容性。
在上述第三方面的一种可能的实现中,数据传输方法还包括:
第二电子设备将第一接收报文缓存区中的第一特定报文,拷贝至第二发送报文缓存区,其中,第二发送报文缓存区用于缓存通过第二会话连接向第三电子设备发送的第一特定报文,第二会话连接是第二电子设备和第三电子设备之间建立的会话连接;
第二电子设备删除第一接收报文缓存区中的第一特定报文;
第二电子设备通过第二会话连接向第三电子设备发送第一特定报文。
在该实现方式中,作为第一应用数据的目的接受设备的第三电子设备也支持特定报文封装方式且与第二电子设备之间建立有第二会话连接。在第二电子设备向第三电子设备发送第一特定报文后,在第二发送报文缓存区缓存第一特定报文,从而在第二电子设备需要重传第一特定报文的情况下,由于第二电子设备的第二发送报文缓存区中缓存了第一特定报文,因此第二电子设备就可以直接从第二发送报文缓存区查找并重传第一特定报文,而无需向第一电子设备发送第一应用程序数据的重传请求,进而第一电子设备也无需再次获取、封装、发送第一应用程序数据,缩短了重传报文的获取和传输路径,可以减少第一电子设备的CPU消耗。在第二电子设备接受到第一特定报文的确认信息后,第二电子设备可以从第二发送报文缓存区以及第一接收报文缓存区一起删除第一特定报文,释放第二电子设备的存储区域;第二电子设备也可以在将第一接收报文缓存区中的第一特定报文,拷贝至第二发送报文缓存区后,删除第一接收报文缓存区中的第一特定报文。第二会话连接可以对应于第二会话标识,第二会话标识用于确定第二电子设备将第一特定报文发送给第三电子设备。
在上述第三方面的一种可能的实现中,第二电子设备为路由器。
本申请实施例的第四方面提供了一种电子设备,包括至少一个处理器、存储器;其中,存储器用于存储计算机执行指令;当电子设备运行时,至少一个处理器执行存储器存储的计算机执行指令,以使电子设备执行第二方面或第三方面提供的方法。
本申请实施例的第五方面提供了一种计算机可读存储介质,计算机存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行第二方面或第三方面提供的方法。
本申请实施例的第六方面提供了一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行第二方面或第三方面提供的方法。
本申请实施例的第七方面提供了一种芯片系统,芯片系统包括至少一个处理器和至少一个接口电路,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,当至少一个处理器执行指令时,使得包含芯片系统的电子设备执行第二方面或第三方面提供的方法。
附图说明
图1根据本申请实施例示出了一种多个电子设备之间实现数据传输的场景图;
图2a至图2c根据本申请实施例示出了一种手机100与服务器300之间的数据传输的示意图;
图3a根据本申请实施例示出了一种手机100通过路由器200向平板电脑400传输TCP报文的示意图;
图3b根据本申请实施例示出了一种手机100通过路由器200向平板电脑400传输TCP报文的方法流程图;
图4a根据本申请实施例示出了一种手机100与路由器200之间传输特定报文的示意图;
图4b根据本申请实施例示出了一种手机100与路由器200之间传输特定报文的方法流程图;
图5根据本申请实施例示出了报文传输服务的软件结构框图;
图6根据本申请实施例示出了一种电子设备的硬件结构框图;
图7根据本申请实施例示出了一种电子设备的软件结构框图;
图8根据本申请实施例示出了一种手机100与路由器200之间传输报文以及进行报文重传的方法流程图;
图9根据本申请实施例示出了一种手机100配置报文传输服务的示意图;
图10根据本申请实施例示出了一种特定报文的报文格式的示意图;
图11a至图11c根据本申请实施例示出了一种手机100通过路由器200向平板电脑400传输特定报文的示意图;
图12根据本申请实施例示出了一种路由器200向平板电脑400转发报文以及进行报文重传的方法流程图;
图13根据本申请实施例示出了一种手机100与路由器200之间传输报文以及进行报文重传的方法流程图;
图14a至图14c根据本申请实施例示出了一种手机100通过路由器200向服务器300传输特定报文的示意图;
图15根据本申请实施例示出了一种路由器200向服务器300转发报文以及进行报文重传的方法流程图;
图16根据本申请实施例示出了一种平板电脑400与路由器200之间传输报文以及进行报文重传的方法流程图;
图17a至图17c根据本申请实施例示出了一种平板电脑400通过路由器200向手机100传输特定报文的示意图;
图18根据本申请实施例示出了一种路由器200向手机100转发报文以及进行报文重传的方法流程图;
图19根据本申请实施例示出了一种服务器300与路由器200之间传输报文以及进行报文重传的方法流程图;
图20a至图20c根据本申请实施例示出了一种服务器300通过路由器200向手机100传输特定报文的示意图;
图21根据本申请实施例示出了一种路由器200向手机100转发报文以及进行报文重传的方法流程图。
具体实施方式
本申请的实施例包括但不限于一种数据传输方法、电子设备和装置。为使本申请的实施例目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施例的实施方式作进一步地详细描述。
图1示出了手机100、智能电视500、平板电脑400之间分别通过路由器200通信或者通过路由器200与服务器300通信,如:手机100在进行视频直播,智能电视500在进行网络点播而平板电脑400在进行在线授课。
在图1所示的场景下,例如,手机100正在进行视频直播,则手机100需要与服务器300(例如视频直播应用服务器)进行数据传输,该数据传输过程中手机100产生的携带视频数据的TCP报文,可以经由路由器200转发至服务器300,从而实现手机100与服务器300之间的通信。可以理解,在图1的场景中,路由器200用于将手机100产生的报文转发至服务器300。
如果图1的场景中的网络传输能力不佳,手机100与服务器300之间的数据传输会存在如下的场景。如图2a所示,手机100通过路由器200的转发向服务器300发送报文,但是该报文并未发送至路由器200,如果手机100不能缓存报文,则手机100会将发送失败的报文丢弃。
与图2a的场景类似,如图2b所示,如果手机100能够缓存报文,但手机100缓存报文的数量是固定的,如:手机100能够缓存4个报文,在手机100未成功发送至路由器200的报文的数量超过4个之后,再产生未成功发送至路由器200的报文将会被手机100丢弃。
如图2c所示,手机100向服务器300发送的报文到达路由器200,但路由器200未能将报文转发至服务器300使得报文被路由器200丢弃。由于路由器200只有报文转发的功能,在转发报文失败后,还需要手机100执行数据重传。
可以看出,对于图2a至图2c的场景,如果手机100与服务器300之间的无线网络的网络传输能力不佳的情况持续发生,会使得手机100丢弃过多的报文进行产生过多的数据重传,造成手机100的CPU频繁地处理数据重传产生额外的性能消耗,导致手机100与服务器300之间的数据传输的延迟高。
此外,手机100在向服务器300发送一个报文后,会等待该报文的确认信息(Acknowledgement,ACK),如果手机100判断超过预设的等待时间后未收到该报文的确认信息,则手机100会重传该报文。通常,该确认信息由服务器300向手机100返回,因此手机100往往会设置一个相对较长的等待时间来等待接收确认信息,如果手机100接收到确认信息,则手机100确认报文发送成功,如果没有接收到,则手机100执行数据重传。对于图2a至图2c的场景,由于存在报文发送失败,需要进行报文重传,因此手机100从首次发送该报文直至收到该报文的确认信息的时长会比不存在报文发送失败、不需要进行报文重传情形下更长,导致手机100与服务器300之间的数据传输的延迟高。
可以理解,图2a至图2c的场景中的报文可以是TCP报文,也就是传输控制协议(transmission control protocol,TCP)格式的报文,电子设备之间执行一次基于TCP协议的数据传输,数据需要经过电子设备的操作系统的多层协议栈封装为TCP报文,如:TCP模块,IP模块,防火墙模块。
图3a和图3b示出了手机100向服务器300发送报文的过程包括步骤S301至S305:手机100产生的视频数据会经过手机100的操作系统的TCP模块封装为TCP报文,再由IP模块添加IP数据,最后,防火墙模块对TCP报文进行安全校验后,通过网卡驱动模块将TCP报文发送给路由器200。路由器200在收到TCP报文后,路由器200会采用与手机100类似的方法,先通过防火墙模块、IP模块以及TCP模块解析TCP报文获得数据后,再将数据重新封装成TCP报文并转发给服务器200。服务器300在收到TCP报文后,服务器300也会采用上述类似的方法,通过防火墙模块、IP模块以及TCP模块解析TCP报文,获得发送给视频直播应用服务的视频数据。服务器300还会向手机100返回TCP报文的确认信息,手机100接收到确认信息后,手机100确认该TCP报文发送成功。
在图2a至图2c的场景中,由于服务器300都未接收到报文,因此服务器300不会向手机100返回报文的确认信息,使得手机100需要执行数据重传,也就是报文重传。在手机100报文重传的过程中,手机100还需要重新执行一次图3b描述的步骤S301至S305,将数据封装为TCP报文以及添加IP数据和安全校验的操作后,再通过路由器200转发给服务器300,也就是说,该TCP报文需要再经过一次从手机100到路由器200再到服务器300的过程。从而导致报文在重传的过程中需要再次经过手机100、路由器200和服务器300之间多次内存复制、报文封装/解封装、模块队列操作以及缓存,进一步加剧了报文重传的效率低,手机100的CPU消耗多以及报文传输的延迟高。
在本申请的实施例中,以手机100和路由器200为例,手机100和路由器200之间基于TCP报文的数据传输可以通过TCP协议的吞吐量来衡量, 在上述公式中cwnd表示(congestion window,TCP拥塞窗口)、RTT表示(RoundTrip Time,环回时间)、MSS表示(Maximum Segment Size,最大数据段长度)、p表示(Probability of packet loss,丢包率)。通过该公式可以看出,在TCP报文的最大数据段长度不变的情况下,如果手机100和路由器200之间的网络传输能力不佳,手机100和路由器200之间的丢包率就会变大,手机100和路由器200之间传输报文的环回时间也会变大,造成手机100和路由器200之间的TCP协议的吞吐量变小,使得手机100和服务器300之间数据传输的延迟高。
为了解决图2a至图2c中描述的在手机100和服务器300之间数据传输的延迟高的问题,本申请的实施例提供了一种数据传输方法,用于加快数据重传的过程,图4a和图4b所示,该数据传输方法包括步骤S401至S404:手机100将发送给服务器300的数据封装成与标准的TCP报文的格式不同的特定格式的报文(以下简称“特定报文”),相较于TCP报文,特定格式可省略部分或全部报文封装字段,如:TCP头部字段、IP头部字段,加快了手机100将数据封装成报文的过程;在手机100与路由器200之间建立用于传输特定报文的会话连接,基于该会话连接在手机100与路由器200之间建立特定报文的发送和应答机制,也就是,在路由器200接收到手机100发出的特定报文后,路由器200可以向手机100返回该特定报文的确认信息,手机100无需等待服务器300返回确认信息,缩短了手机100用于等待特定报文的确认信息的等待时长;手机100可以根据手机100和路由器200之间的网络传输能力设置与网络传输能力对应的特定报文的缓存区,使得手机100和路由器200可以根据不同的网络传输能力缓存对应数量的特定报文,以避免在网络传输能力不佳的情况下,造成特定报文的丢失;手机100还可以根据手机100和路由器200之间的网络传输能力执行与网络传输能力对应的特定报文的发送方式,根据网络传输能力的好或者坏,加快或者减慢向服务器300发送特定报文的速度,减少因网络传输能力的影响造成的特定报文重传;手机100在需要执行特定报文重传的情况下,手机100还可以从已缓存的特定报文中查找并重传该特定报文,避免了手机100再次执行将数据封装为报文的过程。
可以理解,图4a和图4b示出的方法可以通过设置在手机100以及路由器200的操作系统的应用框架层的软件模块,如:报文传输服务500,来实现,如图5所示,报文传输服务500的软件结构可以包括:数据获取模块501,会话连接模块502,发送报文缓存模块503,接收报文缓存模块504,报文封装模块505,数据传输检测模块506以及报文重传模块507。可以理解,图5所示的报文传输服务500可以分别运行在手机100和路由器200上,并且手机100和路由器200上运行的报文传输服务500的软件结构可以是相同的。以图5所示的报文传输服务500运行在手机100上为例,报文传输服务500中每一个模块的功能描述如下:
数据获取模块501用于获取手机100的应用发送给路由器200的数据。
会话连接模块502可以建立手机100与路由器200之间的用于传输报文的会话连接,会话连接可以与手机100的应用对应。在本申请的实施例中,在手机100向路由器200发送的特定报文来自手机100的多个应用的情况下,手机100可以将每个的应用对应的特定报文通过与应用对应的会话连接,发送给路由器200,也就是,会话连接模块502可以为每一个应用建立一个会话连接。
发送报文缓存模块503可以在手机100的存储区域中设置一个发送报文缓存区,用于存储手机100与路由器200之间传输的特定报文。在本申请的实施例中,发送报文缓存模块503还可以在手机100的存储区域中,预先配置手机100与路由器200之间的数据传输速度与发送报文缓存区的容量之间的对应关系,这里的发送报文缓存区的容量可以是发送报文缓存区100131可以同时存储报文的数量。
接收报文缓存模块504可以在手机100的存储区域中设置一个与路由器200对应的接收报文缓存区,用于存储手机100从路由器200接收的特定报文。
报文封装模块505用于将手机100发送给路由器200的数据封装成特定报文。
数据传输检测模块506用于确定手机100与路由器200之间的数据传输状态。
报文重传模块507用于确定手机100与路由器200之间是否需要进行特定报文的重传,例如,在本申请的一个实施例中,在手机100向路由器200发送了特定报文后,报文重传模块507可以持续监听是否收到路由器200返回的确认信息,如果没有返回,报文重传模块507可以根据已发送的特定报文的报文序号,从发送报文缓存模块503中查找与报文序号对应的特定报文并重传。
可以理解,在另一个本申请的实施例中,发送报文缓存模块503和接收报文缓存模块504可以是同一个软件模块,彼此之间不做区分,用于缓存手机100发送或者接收的特定报文。
上述图3a和图3b所示的手机100与服务器300之间的数据传输方法也可以应用在手机100与其他接入路由器200的电子设备之间,如,用户之间通过手机100与接入路由器200的平板电脑400进行视频通话,在手机100与平板电脑400进行视频通话的场景中,手机100,路由器200以及平板电脑400三者都可以设置报文传输服务500,使得本申请的实施例的数据传输方法可以应用在手机100和路由器200之间,以及路由器200和平板电脑400之间。
通过本申请的实施例的数据传输方法,在多个电子设备之间进行数据传输的过程中,作为发送端的第一电子设备采用了自定义的报文格式对数据进行封装,区别于标准的TCP报文,简化了第一电子设备对数据执行封装操作的过程;在一些实施例中,第一电子设备与第二电子设备之间建立了用于传输自定义的报文的会话连接,基于该会话连接实现了第一电子设备和第二电子设备之间的报文发送和应答机制,减少了第一电子设备接收自定义的报文的确认信息的等待时长;在一些实施例中,第一电子设备和第二电子设备分别设置了与两者之间的网络传输能力对应的自定义的报文的缓存区,可以根据不同的网络传输能力缓存对应数量的特定报文,并根据网络传输能力对应的发送方式发送自定义的报文;在一些实施例中,第一电子设备可以在发送自定义的报文失败以及在第二电子设备未收到自定义的报文而需要重传的情况下,第一电子设备可以直接从缓存区查找并重传报文,而无需再次对数据执行封装、校验等操作。本申请的实施例的数据传输方法,采用了自定义的报文格式,省略了TCP协议中的报文字段,提高了第一电子设备封装报文的效率,提升了电子设备之间的无线网络的带宽利用率;在一些实施例中,通过在第一电子设备和第二电子设备之间建立报文发送和应答机制,缩短了第一电子设备接收确认信息的等待时长,加快了报文的传输速度;在一些实施例中,通过设置与网络传输能力对应的缓存区缓存报文,可以减少第一电子设备丢弃未发送的报文的数量;在一些实施例中,根据网络传输能力对应的发送方式发送自定义的报文可以加快或者减慢发送自定义的报文的速度,提升第一电子设备和第二电子设备之间的网络的带宽利用率;在一些实施例中,通过缓存区缓存已发送的报文能够加快重传报文的过程,降低了报文转发时延,进一步降低电子设备之间的报文转发时延。本申请的实施例的数据传输方法能够减少生成数据的电子设备的CPU消耗,使得电子设备的CPU能够提供更多的算力给其他应用,使得电子设备传输数据更流畅,给用户带来更快速的连接体验。
本申请的实施例中的第一电子设备可以是一种向用户提供语音和/或数据连通性的终端设备,例如,常见的终端设备可以包括:车载设备、手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如包括:智能手表、智能手环、计步器等)、个人数字助理、便携式媒体播放器、导航设备、视频游戏设备、机顶盒、虚拟现实和/或增强现实设备、物联网设备、工业控制设备、流媒体客户端设备、电子书、阅读设备、POS机以及其他设备。而、本申请的实施例中的第二电子设备可以包括但不限于,网络服务器、信号服务器、路由器、交换机以及用于传输信号的其他电子设备。
图6示出了根据本申请的实施例的第一电子设备100的结构示意图,第一电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对第一电子设备100的具体限定。在本申请另一些实施例中,第一电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器,调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(imagesignal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signalprocessor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在本申请的实施例中,处理器110通过执行程序将应用的数据封装为特定报文,并通过无线通信模块160将特定报文发送给第二电子设备200;同时,处理器110将特定报文缓存于内部存储器121;在处理器110确定需要重传特定报文的情况下,处理器110查找已缓存的特定报文并重传。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。
第一电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
移动通信模块150可以提供应用在第一电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。
无线通信模块160可以提供应用在第一电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。在本申请的实施例中,无线通信模块160与第二电子设备200之间建立会话连接,用于传输特定报文。
第一电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,第一电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
第一电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
摄像头193用于捕获静态图像或视频。在一些实施例中,第一电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展第一电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。在本申请的实施例中,内部存储器121用于缓存已发送的特定报文。
第一电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。第一电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当第一电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
陀螺仪传感器180B可以用于确定第一电子设备100的运动姿态。
气压传感器180C用于测量气压。在一些实施例中,第一电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。
加速度传感器180E可检测第一电子设备100在各个方向上(一般为三轴)加速度的大小。
距离传感器180F,用于测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。
骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。第一电子设备100可以接收按键输入,产生与第一电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和第一电子设备100的接触和分离。
图7是本申请一些实施例公开的第一电子设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图7所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
如图7所示,应用程序框架层可以包括:报文传输服务,流量服务,视图系统,资源服务。
报文传输服务可以是上文描述的报文传输服务,用于建立第一电子设备100与第二电子设备200之间的报文的会话连接,将第一电子设备100的应用向第二电子设备200发送的数据封装成特定报文,在向第二电子设备200发送特定报文后,缓存已发送的特定报文,并在确定需要重传特定报文后,查找已缓存的特定报文并重传。
流量服务用于检测当前第一电子设备100与第二电子设备200之间发送的或者接收到的数据数量,在本申请的实施例中,这里的数据数量可以是,第一电子设备100从第二电子设备200接收到的字节总数。报文传输服务可以通过流量服务获取的数据数量,计算出单位时间内的第一电子设备100与第二电子设备200之间的数据传输速度。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源服务为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
可以理解,图7中描述的软件结构除了可以运行在第一电子设备100上,也可以运行在其他电子设备上,例如,第二电子设备200,并且第二电子设备200的软件结构框图可以与图6描述的第一电子设备100的软件结构框图相同或者相似。
下面基于图5至图7所示的第一电子设备100的软硬件结构,以手机100,路由器200,平板电脑400等电子设备为例,通过图8并结合图9至图11c对手机100与平板电脑400之间的数据传输方案进行说明。本申请的实施例中,手机100与平板电脑400之间进行文件传输,该文件传输的过程中携带文件对应的数据的报文,可以经由路由器200进行转发。本申请的实施例中,收发双方设备都连接同一个路由器200、且收发双方设备和路由器200都配置了本方案时的一种具体实现方式。本申请的实施例以路由器200为无线路由器为例进行讲解,但并不限定路由器必须为无线路由器。
具体地,本申请的实施例的图8中的数据传输方案可以通过手机100、路由器200以及平板电脑400的处理器执行相关程序来实现。如图8所示,根据本申请的实施例的一个具体实施方式提供的数据传输方法包括如下所示的步骤。
S801:手机100、路由器200以及平板电脑400分别启动报文传输服务。
以手机100为例,报文传输服务1001可以作为手机100的系统服务,也就是报文传输服务1001(可以命名为MessageTransmitService)运行在手机100的软件系统的框架层(Framework层)。在另一个本申请的实施例中,报文传输服务1001还可以作为手机100的一个应用程序,也就是报文传输服务应用(可以命名为MessageTransmitServiceApp)运行在手机100的软件系统的应用程序层。
在一个本申请的实施例中,如图9所示,手机100可以通过在自身的操作系统的系统设置里配置报文传输服务1001的开启/关闭的选项1011。用户可以通过点击该开启/关闭的选项1011实现开启/关闭报文传输服务1001。
在一个本申请的实施例中,报文传输服务1001可以配置为手机100的操作系统的启动项,在手机100开机后报文传输服务1001可以自行启动,而无需用户手动开启。
另外,手机100自行启动报文传输服务1001的条件,可以包括:手机100与路由器200之间当前的报文重传率高于阈值或者无线网络的数据传输速度低于阈值,也就是说,在手机100确定与路由器200之间的当前的网络条件不佳的情况下,手机100也可以启动报文传输服务1001,以实现数据传输加速、减少手机100与平板电脑400之间的数据丢失以及数据重传的情况。
例如,以报文重传率为例,报文重传率可以通过单位时间内,报文重传数/发送报文总数来确定,假设单位时间为10s,单位时间内报文重传数为30个,发送报文总数为100个,则报文重传率为0.3。这时,如果手机100的存储区域内配置的报文重传率的重传阈值为0.2,则手机100可以确定当前的报文重传率高于报文重传率的重传阈值,手机100可以启动报文传输服务1001。
在一个本申请的实施例中,手机100自行启动报文传输服务1001的条件,还可以包括:在手机100与路由器200连接后,如:在路由器200为WIFI路由器的情况下,手机100通过WIFI与路由器200连接,手机100检测到手机100与路由器200之间存在数据传输的情况下,手机100启动报文传输服务1001。
在一个本申请的实施例中,手机100还可以将报文传输服务1001设置为手机100的开机启动项,在手机100开机时,手机100自动启动报文传输服务1001。
可以理解,平板电脑400可以采用与手机100相同的方式来启动报文传输服务4001;对于没有触控界面的路由器200来说,路由器200的操作系统可以采用上述自行启动的方式来启动报文传输服务2001。用户也通过远程访问的方式,如,用户通过接入路由器200的手机100,启动手机100的浏览器,在浏览器中输入路由器200的局域网地址,在浏览器中打开路由器200的配置界面,在配置界面中启动报文传输服务2001。或者用户也可以通过拨动或按下路由器200上的实体按键的方式启动或关闭报文传输服务
S802:手机100确定与路由器200之间的数据传输状态。
这里的数据传输状态可以是手机100与路由器200之间的网络传输能力,如:数据传输速度,手机100的报文传输服务1001的数据传输检测模块可以通过手机100的软件系统的框架层的流量服务对数据传输速度进行判断。手机100的流量服务可以检测当前手机100与路由器200之间接收的或者发送的数据数量,例如,以发送的数据数量为例,这里的数据数量可以是,手机100向路由器200发送的字节总数。数据传输检测模块可以在一个预设的时间段内,连续地检测手机100发送的数据数量,并计算该预设的时间段内,手机100与路由器200之间的数据传输速度。例如,这里的预设的时间段可以是10s,如果手机100检测到在10s内,手机100向路由器200发送的数据数量为100MB(Mbyte,兆字节)的情况下,则数据传输检测模块确定手机100与路由器200之间的数据传输速度为10MB/s,即,每秒10兆字节。
可以理解,除了数据传输速度,手机100还可以根据手机100与路由器200之间的无线网络带宽或者信号强度来确定手机100与路由器200之间的数据传输状态。
S803:手机100根据数据传输状态配置发送报文缓存区。
如图11a所示,手机100的报文传输服务1001的发送报文缓存模块可以在手机100的存储区域中,如:内存,设置发送报文缓存区100131。在本申请的实施例中,发送报文缓存模块可以是报文传输服务1001中的一个软件模块,用于在手机100的内存中划分出一个存储区域,将该存储区域设置为发送报文缓存区100131。发送报文缓存模块还可以根据步骤S802确定的数据传输状态,如:数据传输速度,对发送报文缓存区100131进行配置。例如,表1示出了数据传输速度与发送报文缓存区100131的容量之间的对应关系。表1所示的数据传输速度与发送报文缓存区100131的容量之间的对应关系,可以是手机100的报文传输服务1001的发送报文缓存模块在手机100的存储区域中,预先配置的;这里的发送报文缓存区100131的容量可以是发送报文缓存区100131可以同时存储报文的数量。
可以看出,该对应关系包含3条记录。在数据传输速度小于等于10MB/s的情况下,发送报文缓存区100131的容量是可以缓存1000个报文;在数据传输速度大于10MB/s且小于等于50MB/s的情况下,发送报文缓存区100131的容量是可以缓存100个报文;在数据传输速度大于50MB/s的情况下,发送报文缓存区100131的容量是可以缓存10个报文。
可以理解,在表1示出的数据传输速度与发送报文缓存区100131的容量之间的对应关系中,发送报文缓存区100131的容量与数据传输速度成反比,也就是说,如果手机100与路由器200之间的数据传输速度越快,则手机100与路由器200之间发送特定报文的过程中,产生丢包的可能性越低,因此,在手机100与路由器200之间的数据传输速度较快的情况下,无需对手机100配置容量较大的发送报文缓存区100131。
表1中示出的数据传输速度与发送报文缓存区的容量之间的对应关系是示例性的,在本申请的另一个实施例中,该对应关系包含的记录的数量以及数据传输速度与发送报文缓存区的容量还可以取其他任意数值,这里不做限定。可以理解,数据传输速度与发送报文缓存区的容量之间的对应关系包含的记录越多,说明数据传输速度与发送报文缓存区的容量之间的对应关系越精确。
表1
在本申请的另一个实施例中,在上述步骤S802和S803中,手机100的报文传输服务1001的数据传输检测模块也可以无需确定手机100与路由器200之间的数据传输状态,手机100的报文传输服务1001的发送报文缓存模块可以直接在手机100的存储区域中设置发送报文缓存区100131,发送报文缓存区100131的容量可以是预先配置的容量。
S804:手机100获取待发送的数据,将待发送的数据封装为特定报文。
这里的待发送的数据,可以是手机100的文件传输应用向平板电脑400的文件传输应用发送的文件对应的数据。手机100作为发送端,手机100的文件传输应用向作为接收端的平板电脑400的文件传输应用发送数据,携带该数据的报文经过路由器200转发。
手机100可以通过报文传输服务1001的数据获取模块获取文件传输应用发送的数据,再通过报文封装模块将数据封装成特定报文。这里的手机100的报文传输服务1001的数据获取模块,替代了手机100的操作系统的TCP模块,获取了原本通过TCP模块发送的文件传输应用的数据,起到了代理数据发送的作用。
图10示出了本申请的实施例中的特定报文的格式以及标准TCP报文的格式,可以看出,特定报文的格式与标准TCP报文的格式相比,省略了标准TCP报文的格式中的IP头部字段和TCP头部字段,增加了特定报文字段,例如:特定报文字段的长度定义为2字节,用于存储特定报文的报文序号以及发送时间,其中,1字节用于表示报文序号,可以是16位的无符号数,在它增大到2的31次方时,便会回绕到0,也就是报文序号的取值范围是0至65536;1字节用于表示特定报文的发送时间。在本申请的一个实施例中,相较于标准TCP报文的格式中的IP头部字段和TCP头部字段的长度各为20字节,在特定报文中将省略的IP头部字段和TCP头部字段之和40字节去除序号字段后剩余的38字节增加至用于携带数据的数据字段,使得每一个特定报文能够携带的数据多于标准TCP报文。报文头部字段和报文尾部字段分别记录了报文的基本信息,如:报文的长度,字段数量等。
在本申请的实施例中,与标准TCP报文的报文格式相比,特定报文的格式省略了IP头部字段和TCP头部字段,可以增加特定报文每次能够携带数据的数量,同时,在特定报文中增加了报文序号和发送时间,可以按顺序地记录手机100发送的特定报文,如果其中有特定报文需要重传,则可以根据报文序号快速地查找到报文并及时重传。
在本申请的另一个实施例中,特定报文中的数据字段的长度也可以与标准TCP报文的数据字段的长度相同。
可以看出,在手机100采用了特定报文的报文格式对数据进行封装后,相较于标准TCP报文的报文格式,省略了TCP协议中的多个报文字段,提高了手机100封装特定报文的效率。
S805:手机100缓存特定报文并根据数据传输状态对应的发送方式发送特定报文。
手机100可以通过与路由器200之间的传输方式,向平板电脑400发送特定报文。例如,在路由器200是WIFI路由器的情况下,传输方式可以是WIFI传输。手机100的报文传输服务1001可以通过WIFI与路由器200之间建立发送特定报文的会话连接,通过该会话连接将特定报文发送至路由器200。
这里的会话连接可以是套接字连接(socket),手机100的报文传输服务1001的会话连接模块可以根据路由器200的IP地址,通过手机100的特定端口,如:端口号为222的端口与路由器200上运行的报文传输服务2001的会话连接模块之间建立会话连接;在会话连接建立后,对于路由器200来说,路由器200实时地接收并转发手机100向平板电脑400发送的特定报文;而手机100可以通过会话连接实时地监听路由器200是否返回特定报文的确认信息。
如图11a所示,在手机100通过会话连接发送特定报文前,手机100可以将特定报文缓存在发送报文缓存区100131。表2示出了一种特定报文在发送报文缓存区100131的存储方式。可以看出表2通过建立特定报文,发送状态以及会话标识之间的对应关系来存储已发送报文。在本申请的实施例中,发送状态可以包括如下四种:已发送、发送失败、发送成功以及空值。已发送表示特定报文已经由手机100经过与路由器200之间的会话连接发出;发送失败表示手机100发出特定报文后,手机100未接收到特定报文的确认信息,如:手机100与路由器200之间的网络传输能力不佳,导致特定报文无法经过手机100与路由器200之间的会话连接发送至路由器200,或者,路由器200接收到特定报文,手机100未能及时收到确认信息;发送成功表示手机100发送特定报文后,手机100收到特定报文对应的确认信息;空值表示手机100尚未处理特定报文。在本申请的实施例中,在手机100通过会话连接向路由器200发出特定报文后,特定报文的发送状态可以变更为已发送;手机100接收到已发送的特定报文的确认信息后,特定报文的发送状态可以变更为发送成功;手机100未及时接收到已发送的特定报文的确认信息,特定报文的发送状态可以变更为发送失败。
这里的会话标识可以是手机100与路由器200之间的会话连接的会话ID(Identification,标识),会话标识可以用于确定向路由器200发送特定报文的电子设备以及特定报文对应的电子设备的应用。
例如,手机100与平板电脑400之间进行文件传输的过程中,手机100与路由器200之间建立了会话标识为10001的会话连接,通过会话标识为10001的会话连接将携带文件数据的特定报文发送至路由器200,路由器200可以根据会话标识10001确定,手机100经过会话标识10001的会话连接发送的特定报文是发送给平板电脑400的;路由器200还可以根据会话标识10001确定特定报文对应手机100的文件传输应用,也就是,特定报文携带的数据是手机100的文件传输应用生成的。
会话标识 | 序号 | 报文 | 发送状态 |
10001 | 1 | 报文1 | 空值 |
10001 | 2 | 报文2 | 空值 |
10001 | 3 | 报文3 | 空值 |
表2
表2中示出的特定报文和发送状态之间的对应关系是示例性的,在本申请的另一个实施例中,表2的对应关系包含的记录的数量,字段以及特定报文和发送状态之间还可以取其他任意数值,这里不做限定。
在本申请的实施例中,仅以手机100与平板电脑400之间进行文件传输时,手机100与路由器200之间建立一个会话连接为例进行说明;在本申请的另一个实施例中,在手机100与平板电脑400之间进行文件传输的同时,手机100还可以与平板电脑400之间进行视频通话,在这种情况下,手机100与路由器200之间可以建立两个会话连接,分别传输携带文件数据的特定报文和携带视频通话数据的特定报文。
在手机100缓存特定报文后,手机100可以根据手机100与路由器200之间的数据传输状态对应的发送方式发送特定报文,这里的数据传输状态可以是步骤S803中确定的数据传输速度。表3示出了一种数据传输状态与发送方式的对应关系。例如,在手机100与路由器200之间的数据传输速度小于10MB/s的情况下,说明手机100与路由器200之间的网络传输能力不佳,手机100可以按照100个/s的发送方式向平板电脑400发送特定报文。当手机100与路由器200之间的数据传输速度大于50MB/s时,手机100可以将向平板电脑400发送特定报文的发送方式调整为1000个/s。
序号 | 数据传输速度 | 发送方式 |
1 | 小于10MB/s | 100个/s |
2 | 大于10MB/s且小于50MB/s | 500个/s |
3 | 大于50MB/s | 1000个/s |
表3
可以理解,在表3示出的数据传输速度与发送方式之间的对应关系中,发送报文缓存区100131的容量与数据传输速度成正比,也就是说,如果手机100与路由器200之间的数据传输速度越快,则手机100与路由器200之间发送特定报文的速度也越快。
在本申请实施例中,表3中示出的数据传输速度与发送方式之间的对应关系是示例性的,该对应关系包含的记录的数量以及数据传输速度与发送方式还可以取其他任意数值,这里不做限定。可以理解,数据传输速度与发送方式之间的对应关系包含的记录越多,说明数据传输速度与发送方式之间的对应关系越精确。
可以看出,手机100与路由器200之间通过专门用于传输特定报文的会话连接进行报文传输,并且,手机100可以根据与路由器200之间的数据传输速度实时地调整传输特定报文的发送方式,在数据传输速度较快的时候加快特定报文的传输速度,相反地,在数据传输速度较慢的时候降低特定报文的传输速度,可以提升手机100与路由器200之间的无线网络的带宽利用率。
在本申请的另一个实施例中,如果在上述步骤S802和S803中,在手机100的报文传输服务1001的数据传输检测模块未确定手机100与路由器200之间的数据传输状态的情况下,手机100与路由器200之间可以通过默认的发送方式发送特定报文,默认的发送方式可以是预先配置的手机100每时间单位向路由器200发送特定报文的数量,如:200个/s。
在手机100发送了特定报文后,手机100可以更新发送报文缓存区100131中缓存的特定报文的发送状态。如表4所示,序号为1和3的特定报文为已发送,序号为2的特定报文为发送失败。
表4
表4中示出的特定报文和发送状态之间的对应关系是示例性的,在本申请的另一个实施例中,表4的对应关系包含的记录的数量,字段以及特定报文和发送状态之间还可以取其他任意数值,这里不做限定。
S806:手机100确定是否需要重传特定报文。
对已发送的特定报文,手机100可以根据预先设置的等待时长,在手机100发送了该特定报文后手机100开启计时功能,在等待时长经过后,手机100未从路由器200接收到已发送的特定报文的确认信息,则手机100确定特定报文发送失败,手机100需要重传该特定报文。例如,手机100可以对表4中的报文1和报文3分别启动计时功能来确定在等待时长内是否收到报文1和报文3的确认信息。
对于发送失败的特定报文,手机100可以在发送报文缓存区100131中查找到发送失败的特定报文后,可以立即重传该特定报文。
如果手机100确定需要重传特定报文,则进入S807,手机100根据该特定报文中包含的特定报文字段中的报文序号,从发送报文缓存区100131获取与该报文序号对应的特定报文进行重传;如果不是,则手机100回到S804,手机100继续获取数据并将数据封装为特定报文进行发送。
这里,对于已发送的特定报文,手机100的报文传输服务1001的报文重传模块10017可以在手机100发送完特定报文后,开启计时功能,监听在预先设置的等待时长内否收到返回的特定报文对应的确认信息,该确认信息可以是路由器200发送的。在预先设置的等待时长内,手机100接收到特定报文对应的确认信息后,手机100确定特定报文发送成功;如果在预先设置的等待时长内,手机100未接收到特定报文对应的确认信息,则手机100确定该特定报文发送失败,需要重传。
在本申请的一个实施例中,手机100的报文传输服务1001的报文重传模块10017可以在手机100发送完特定报文后,开启一个计时功能,在预先设置的等待时长内,如:200ms(millisecond,毫秒)监听是否接收到特定报文的确认信息,当超过200ms手机100未接收到特定报文的确认信息后,手机100确定该特定报文发送失败,需要重传。例如,手机100依次向平板电脑400发送了表4中序号为1,3的特定报文,如果起转发作用的路由器200仅接收到序号为1的特定报文、未接收到序号为3的特定报文,则路由器200会向手机100返回序号为1的特定报文的确认信息,不会向手机100返回序号为3的特定报文的确认信息,手机100在发送序号为3的特定报文200ms后,未收到序号为3的特定报文的确认信息后,确定需要重传序号为3的特定报文。
在本申请的另一个实施例中,手机100的报文传输服务1001的报文重传模块10017还可以根据相邻两个特定报文中,一个特定报文的发送时间和另一个特定报文的确认信息的返回时间之间的差值是否超过重传时间阈值来判断是否需要重传特定报文,而无需通过开启计时功能来监听是否收到特定报文的确认信息。例如,例如,手机100依次向平板电脑400发送了序号为1,3的特定报文,手机100在返回时间,如:2021-01-01 09:51:17.3629接收到了序号为3的特定报文的确认信息,如果,此时尚未接收到序号为1的特定报文的确认信息,而序号为1的特定报文的发送时间,如:2021-01-01 09:51:17.3411,序号为3的特定报文的确认信息的返回时间与序号为1的特定报文的发送时间之间的差值为208ms,如果重传时间阈为200ms,则,手机100可以确定重传序号为1的特定报文。这样,可以减少手机100需要开启计时功能来监听是否接收到特定报文的确认信息的资源消耗。
S807:手机100重传特定报文。
在手机100确定需要重传特定报文后,如图11b所示,手机100可以根据该特定报文的报文序号从步骤S805中描述的发送报文缓存区100131查找与该报文序号对应的特定报文,并再次将重新发送特定报文,在路由器200接收到该特定报文后,路由器200可以根据与平板电脑400之间的用于传输特定报文的会话连接直接将报文转发至平板电脑400。
例如,以步骤S806中的序号为3的特定报文为例,在手机100确定需要重传序号为3的特定报文的情况下,手机100可以根据序号为3的特定报文的报文字段中包含的报文序号,在步骤S805中描述的发送报文缓存区100131,也就是表4中查找到与序号为3的特定报文的报文序号对应的特定报文,并重传。
可以理解,在手机100发送了特定报文并接收到路由器200返回的确认信息后,手机100可以将缓存在发送报文缓存区100131的特定报文删除。
可以看出,手机100可以通过直接查找并重传已经缓存的特定报文,避免了手机100需要执行重新获取待发送的数据,并将数据再次封装成报文的步骤,加快了手机100重传报文的过程,降低了报文转发时延,进一步降低手机100与路由器200以及平板电脑400之间的报文转发时延,同时还能够减少手机100的CPU消耗。
上述图8描述了手机100向平板电脑400传输文件的过程中,手机100与路由器200之间传输携带文件的数据的报文以及进行报文重传的方法。下面通过图12描述路由器200向平板电脑400转发携带文件的数据的报文以及进行报文重传的数据传输方案,该数据传输方案包括:
S1201:路由器200接收手机100发送的特定报文并缓存。
如图11a所示,路由器200的报文传输服务2001的接收报文缓存模块,在路由器200存储区域内,如:内存,配置一个手机100对应的接收报文缓存区200141,用于缓存从手机100接收的特定报文。表5示出了一种路由器200为手机100配置一个接收报文缓存区中特定报文的存储方式。可以看出表5通过建立会话标识和已接收报文之间的对应关系来存储已接收报文,这里的会话标识与图8的步骤S805中描述的会话标识相同,可以是手机100与路由器200之间的会话连接的会话ID,例如,10001。
在本申请的实施例中,在有多个电子设备接入路由器200并且都向路由器200发送特定报文的情况下,路由器200可以为每一个电子设备设置接收报文缓存区。例如,手机100和平板电脑400接入路由器200,手机100和平板电脑400都向路由器200发送特定报文,路由器200可以为手机100和平板电脑400分别配置接收报文缓存区200141和接收报文缓存200142。
在本申请的另一个实施例中,在电子设备向路由器200发送的特定报文来自电子设备的多个应用的情况下,电子设备可以将每个的应用对应的特定报文通过与应用对应的会话连接,发送给路由器200,也就是,每个应用的会话连接的会话标识都不相同。例如,手机100向平板电脑400发送的特定报文来自手机100的文件传输应用以及视频通话应用,则路由器200与手机100之间可以建立与文件传输应用以及视频通话应用对应的两个会话连接,两个会话连接的会话标识都不相同,例如:文件传输应用对应的会话标识为10001,视频通话应用对应的会话标识为10002。在路由器200的接收报文缓存区200141中可以存储与会话标识为10001以及会话标识为10002对应的特定报文。路由器200可以根据会话标识来确定接收报文缓存区200141中的特定报文的转发对象。
序号 | 已接收报文 | 会话标识 |
1 | 报文1 | 10001 |
2 | 报文2 | 10001 |
3 | 报文3 | 10001 |
表5
表5中示出的特定送报文与会话标识之间的对应关系是示例性的,在本申请的另一个实施例中,表5的对应关系包含的记录的数量,字段以及特定送报文与会话标识之间还可以取其他任意数值,这里不做限定。
在本申请的一个实施例中,路由器200还可以根据步骤S802中确定的手机100与路由器200之间的数据传输状态,即,数据传输速度,调整路由器200的存储区域中的手机100对应的接收报文缓存区200141的容量,例如:表6示出了数据传输速度与接收报文缓存区200141的容量之间的对应关系。在表6中,在数据传输速度小于等于10MB/s的情况下,接收报文缓存区200141的容量是可以缓存10个报文;在数据传输速度大于10MB/s且小于等于50MB/s的情况下,接收报文缓存区200141的容量是可以缓存100个报文;在数据传输速度大于50MB/s的情况下,接收报文缓存区200141的容量是可以缓存1000个报文。
可以理解,在表6示出的数据传输速度与接收报文缓存区的容量之间的对应关系中,接收报文缓存区的容量与数据传输速度可以成正比,也就是说,如果手机100与路由器200之间的数据传输速度越快,则单位时间内,如:1s内,路由器200能够接收到手机100发送的特定报文越多。
表6
可以理解,表6中示出的数据传输速度与接收报文缓存区的容量之间的对应关系是示例性的,该对应关系包含的记录的数量以及数据传输速度与接收报文缓存区的容量还可以取其他任意数值,这里不做限定。
S1202:路由器200确定与平板电脑400之间的数据传输状态。
在图8的步骤S801中,路由器200以及平板电脑400各自的报文传输服务已经启动。路由器200可以采用与图8的步骤S802相同的方式确定与平板电脑400之间的数据传输状态,即,路由器200与平板电脑400之间的数据传输速度。
路由器200中可以运行具有与手机100流量服务相同或类似的数据传输速度检测程序,可以检测单位时间内路由器200与平板电脑400之间接收的或者发送的数据数量,即,路由器200与平板电脑400之间单位时间内接收或者发送的字节总数。
S1203:路由器200根据数据传输状态配置发送报文缓存区。
路由器200的报文传输服务2001的发送报文缓存模块可以针对每一个通过无线接入方式接入路由器200并且从路由器200接收特定报文的电子设备配置一个对应的发送报文缓存区。例如,服务器300和平板电脑400接入路由器200,路由器300会向服务器300和平板电脑400转发特定报文,则路由器200可以为服务器300和平板电脑400分别配置一个发送报文缓存区。
以平板电脑400为例,路由器200可以采用与图8的步骤S803类似的方式,通过路由器200的报文传输服务2001的发送报文缓存模块,在路由器200的存储器内配置与平板电脑400对应的发送报文缓存区200131,用于缓存向平板电脑400发送的特定报文。发送报文缓存区200131的容量可以与S1202获取的路由器200与平板电脑400之间的数据传输速度之间对应。
在本申请的另一个实施例中,在上述步骤S1202和S1203中,路由器200的报文传输服务2001也可以无需确定路由器200与平板电脑400之间的数据传输状态,路由器200的报文传输服务2001的发送报文缓存模块可以直接在路由器200的存储区域中设置发送报文缓存区200131,发送报文缓存区200131的容量可以是预先配置的容量。
S1204:路由器200向平板电脑400转发特定报文后将特定报文缓存。
路由器200采用与图8的步骤S805类似的方式,通过与平板电脑400之间建立的用于传输特定报文的会话连接,使用与步骤S1202确定的数据传输状态对应的发送方式,将特定报文转发给平板电脑400并将转发后的特定报文缓存于步骤S1203中在路由器200的存储区域内配置的平板电脑400对应的发送报文缓存区200131。
在本申请的另一个实施例中,在步骤S1204中,在路由器200的报文传输服务2001的数据传输检测模块也可以无需确定路由器200与平板电脑400之间的数据传输状态,路由器200与平板电脑400之间可以通过默认的发送方式发送特定报文。
路由器200向平板电脑400转发的特定报文是手机100向平板电脑400发送的,如图11a所示,路由器200可以先从步骤S1201中在路由器200的存储区域内配置的与手机100对应的接收报文缓存区200141中获取特定报文,根据该特定报文对应的会话标识,也就是手机100与路由器200之间的会话连接的会话标识,确定需要将该特定报文转发至平板电脑400;在路由器200转发了该特定报文后,路由器200将该特定报文的发送状态以及路由器200与平板电脑400之间的会话连接的会话标识缓存于平板电脑400对应的发送报文缓存区200131。
可以理解,在路由器200将手机100对应的接收报文缓存区200141中的特定报文转发至平板电脑400并缓存于平板电脑400对应的发送报文缓存区200131的过程中,路由器200无需将特定报文解封装以及封装,而是直接从手机100对应的接收报文缓存区200141获取特定报文进行转发后缓存于平板电脑400对应的发送报文缓存区200131。在路由器200向平板电脑400转发特定报文的过程中,路由器200还可以从手机100对应的接收报文缓存区200141将特定报文拷贝至平板电脑400对应的发送报文缓存区200131,并在手机100对应的接收报文缓存区200141将特定报文删除。表7示出了一种平板电脑400对应的发送报文缓存区200131内,特定报文的存储方式。可以看出表7中的发送报文缓存区与表4中的发送报文缓存区相同,通过建立特定报文、发送状态和会话标识之间的对应关系来缓存路由器200向平板电脑400转发的特定报文。与图8中的步骤S805描述的手机100中的发送报文缓存区100131的不同之处在于,表7中的平板电脑400对应的发送报文缓存区200131中的会话标识是路由器200与平板电脑400之间的会话连接的会话标识。
会话标识 | 序号 | 报文 | 发送状态 |
10003 | 1 | 报文1 | 已发送 |
10003 | 2 | 报文2 | 发送失败 |
10003 | 3 | 报文3 | 已发送 |
表7
表7中示出的特定报文和发送状态之间的对应关系是示例性的,在本申请的另一个实施例中,表7的对应关系包含的记录的数量,字段以及特定报文和发送状态之间还可以取其他任意数值,这里不做限定。
可以理解,路由器200可以针对每一个接入路由器200的作为特定报文的接收端的电子设备在路由器200的存储区域内配置一个对应的发送报文缓存区。例如,对于接入路由器200的服务器300和平板电脑400,在服务器300和平板电脑400作为特定报文的接收端的情况下,路由器200可以分别为服务器300和平板电脑400配置一个对应的发送报文缓存区。以平板电脑400为例,如果平板电脑400的文件传输应用经过路由器200从手机100的文件传输应用接收特定报文,平板电脑400与路由器200之间的会话连接的会话标识为10003,则路由器200的存储区域内的平板电脑400对应的发送报文缓存区200131可以包括会话标识为10003对应的特定报文。在本申请的另一个实施例中,如果平板电脑400的文件传输应用以及视频通话应用经过路由器200分别从手机100的文件传输应用以及视频通话应用接收各自的特定报文,文件传输应用以及视频通话应用各自使用的会话连接的会话标识为10003和10004,这时,路由器200的存储区域内的平板电脑400对应的发送报文缓存区200131可以包括上述两个会话连接的会话标识10003和10004对应的特定报文。
S1205:路由器200确定是否需要重传特定报文。
路由器200可以采用与图8的步骤S806类似的方式确定是否需要重传特定报文。如果路由器200确定需要重传特定报文,则进入S1206,路由器200根据该特定报文中包含的特定报文字段中的报文序号,从平板电脑400对应的发送报文缓存区200131中获取与该报文序号对应的特定报文进行重传;如果不是,则路由器200回到S1204,路由器200继续转发特定报文。
S1206:路由器200重传特定报文。
如图11c所示,路由器200可以采用与图8的步骤S807类似的方式重传特定报文。这里不再赘述。在平板电脑400接收到特定报文后,可以将特定报文缓存于平板电脑400的报文传输服务4001在存储区域中设置的接收报文缓存区400141内。平板电脑400也可以使用图12的步骤S1201的方法,在平板电脑400的存储区域,如:内存,设置接收报文缓存区400141。
S1207:平板电脑400获取并解封特定报文,得到特定报文携带的数据。
平板电脑400的报文传输服务4001的报文封装模块对特定报文进行解封并获取特定报文携带的数据。如图11a所示,平板电脑400采用与图8的步骤S804中封装特定报文对应的解封特定报文的方法,根据图10描述的特定报文格式,从接收报文缓存区400141缓存的特定报文的数据字段中获取数据,并将数据发送给平板电脑400的应用程序。
在通过图8至图12说明了本申请的实施例的手机100与平板电脑400之间进行文件传输,手机100发送的携带文件的数据的报文经过路由器200转发至平板电脑400的方案后,下面介绍本申请的另一个实施例中的数据传输方案,在该数据传输方案中,手机100正在进行视频直播,手机100与服务器300(例如视频直播应用服务器)进行数据传输,该数据传输过程中手机100产生的携带数据的报文,可以经由路由器200转发至服务器300。可以理解,这里的数据传输方案与图8和图12描述的类似,与图8描述的数据传输方案的不同之处在于,在服务器300上没有启动报文传输服务,在路由器200将手机100发送的特定报文转发给服务器300时,路由器200需要将特定报文转换为标准的TCP报文后转发给服务器300。本申请此实施例以手机100与服务器300传输数据为例,来说明本申请实施例提供的方法,在收发双方设备其中一方设备配置了本方案、另一方设备未配置本方案时的一种具体实现方式。如图13所示,该数据传输方案包括:
S1301:手机100、路由器200分别启动报文传输服务。
这里的步骤S1301与图8的步骤S801类似,手机100和路由器200可以分别启动报文传输服务1001和报文传输服务2001。
S1302:手机100确定与路由器200之间的数据传输状态。
这里的步骤S1302与图8的步骤S802类似,手机100的报文传输服务1001的数据传输检测模块可以通过手机100的软件系统的框架层的流量服务对数据传输速度进行判断。
S1303:手机100根据数据传输状态配置发送报文缓存区。
这里的步骤S1303与图8的步骤S803类似,如图14a所示,手机100的报文传输服务1001的发送报文缓存模块可以在手机100的存储区域中,如:内存,设置发送报文缓存区100131。手机100的报文传输服务1001的发送报文缓存模块还可以根据数据传输速度配置发送报文缓存区100131的容量。
在本申请的另一个实施例中,在上述步骤S1302和S1303中,手机100的报文传输服务1001也可以无需确定手机100与路由器200之间的数据传输状态,手机100的报文传输服务1001的发送报文缓存模块可以直接在手机100的存储区域中设置发送报文缓存区100131,发送报文缓存区100131的容量可以是预先配置的容量。
S1304:手机100获取待发送的数据,将待发送的数据封装为特定报文。
这里的步骤S1304与图8的步骤S804类似,这里的待发送的数据可以是手机100在视频直播中生成的视频数据。手机100作为发送端,手机100的视频直播应用向服务器300的视频直播应用服务发送视频数据,携带该视频数据的报文经过路由器200转发。
S1305:手机100缓存特定报文并根据数据传输状态对应的发送方式发送特定报文。
这里的步骤S1305与图8的步骤S805类似,手机100通过与路由器200之间建立的会话连接,向服务器300发送特定报文;同时,手机100在发送报文缓存区100131缓存已发送的特定报文。
在本申请的另一个实施例中,如果在上述步骤S1302和S1303中,在手机100的报文传输服务1001的数据传输检测模块未确定手机100与路由器200之间的数据传输状态的情况下,手机100与路由器200之间可以通过默认的发送方式发送特定报文。
S1306:手机100确定是否需要重传特定报文。
这里的步骤S1306与图8的步骤S806类似,如果手机100未从路由器200接收到手机100发送的特定报文的确认信息,则进入S1307,手机100根据该特定报文中包含的报文序号从发送报文缓存区100131获取与该报文序号对应的特定报文进行重传;如果不是,则手机100回到S1304,手机100继续获取数据并将数据封装为特定报文进行发送。
S1307:手机100重传特定报文。
这里的步骤S1307与图8的步骤S807类似,如图14b所示,手机100可以根据该特定报文的报文序号从步骤S1305中描述的发送报文缓存区100131查找与该报文序号对应的特定报文,并再次将重新发送特定报文;而在路由器200接收到该特定报文后,由于路由器200与服务器300之间不存在用于传输该特定报文的会话连接,路由器200可以通过解封特定报文,获取特定报文携带的数据,然后将数据封装为标准的TCP报文,进而将TCP报文转发给服务器300。
上述图13描述了手机100向服务器300传输视频数据的过程中,手机100与路由器200之间传输携带视频数据的报文以及进行报文重传的方法。下面通过图15描述路由器200向服务器300转发携带视频数据的报文以及进行报文重传的数据传输方案,该数据传输方案包括:
S1501:路由器200接收手机100发送的特定报文并缓存。
这里的步骤S1501与图12的步骤S1201类似,如图14a所示,路由器200在存储区域内,如:内存,配置一个手机100对应的接收报文缓存区200141,用于缓存从手机100接收的特定报文。
S1502:路由器200配置发送报文缓存区的容量。
这里的步骤S1502与图12的步骤S1202的方式的不同之处在于,路由器200与服务器300(如视频直播应用服务器)之间通常通过有线网络连接,如:光纤网络。在这种情况下,路由器200在存储区域设置的服务器300对应的发送报文缓存区200132的容量可以根据当前的有线网络的带宽进行配置,例如,对于千兆有线网络,发送报文缓存区的容量可以配置为10,对于百兆有线网络,发送报文缓存区的容量可以配置为100。可以理解,步骤S1502示出的有线网络的带宽与发送报文缓存区的容量之间的对应关系是示例性的,在本申请的另一个实施例中,该对应关系包含的有线网络的带宽与发送报文缓存区的容量还可以取其他任意数值,这里不做限定。
S1503:路由器200将特定报文转换为TCP报文并向服务器300转发。
路由器200可以先从步骤S1501中在路由器200的存储区域内配置的与手机100对应的接收报文缓存区200141中获取特定报文,根据该特定报文对应的会话标识,也就是手机100与路由器200之间的会话连接的会话标识,确定需要将该特定报文转发至服务器300;在路由器200转发了该特定报文后,路由器200将该特定报文的发送状态以及路由器200与服务器300之间的会话连接的会话标识缓存于服务器300对应的发送报文缓存区200132。
在路由器200向服务器300转发特定报文时,路由器200的报文传输服务2001的报文封装模块20015可以解封特定报文,通过如图10所示的特定报文的报文格式,获取特定报文携带的视频数据,然后按照图10所示的TCP报文的报文格式,将视频数据封装为标准的TCP报文,进而将TCP报文转发给服务器300。
S1504:路由器200确定是否需要重传TCP报文。
路由器200可以采用与图12的步骤S1204类似的方式确定是否需要重传TCP报文。如果路由器200确定需要重传特定报文,则进入S1505,路由器200根据该TCP报文对应的特定报文的报文序号从服务器300对应的发送报文缓存区200132获取与该报文序号对应的特定报文,并将特定报文转换为TCP报文后进行重传;如果不是,则路由器200回到S1503,路由器200继续转发特定报文。
S1505:路由器200重传TCP报文。
这里,如图14c所示,路由器200可以根据确定的需要重传的TCP报文对应的特定报文的报文序号,从服务器300对应的发送报文缓存区200132查找与该报文序号对应的特定报文,并再次通过与步骤S1503类似的方法,通过报文传输服务2001的报文封装模块20015将特定报文转换为TCP报文进行重传。
S1506:服务器300获取并解封TCP报文,得到TCP报文携带的数据。
服务器300可以通过TCP报文的报文格式,从TCP报文的数据字段中获取视频数据,并将视频数据发送给服务器300的视频直播应用服务。
上述图8至图12说明了本申请的实施例的手机100与平板电脑400之间进行文件传输的技术方案。在该技术方案中,手机100发送的携带文件的数据的报文经过路由器200转发至平板电脑400。下面介绍本申请的另一个实施例中,平板电脑400向手机100返回的报文经过路由器200转发至手机100的技术方案。可以理解,在上述技术方案中,平板电脑400与路由器200之间的数据传输方案可以如图16所示,该数据传输方案与图8所示的数据传输方案类似,且手机100、路由器200以及平板电脑400已经分别启动了报文传输服务,该数据传输方案包括:
S1601:平板电脑400确定与路由器200之间的数据传输状态。
这里的步骤S1601与图8的步骤S802类似,这里的数据传输状态可以是数据传输速度,平板电脑400的报文传输服务4001的数据传输检测模块可以通过平板电脑400的软件系统的框架层的流量服务对数据传输速度进行判断。
S1602:平板电脑400根据数据传输状态配置发送报文缓存区。
这里的步骤S1602与图8的步骤S803类似,如图17a所示,平板电脑400的报文传输服务4001的发送报文缓存模块可以在平板电脑400的存储区域中,如:内存,设置发送报文缓存区400131。平板电脑400的报文传输服务1001的发送报文缓存模块还可以根据数据传输速度配置发送报文缓存区400131的容量。
在本申请的另一个实施例中,在上述步骤S1601和S1602中,平板电脑400的报文传输服务4001的数据传输检测模块也可以无需确定平板电脑400与路由器200之间的数据传输状态,平板电脑400的报文传输服务4001的发送报文缓存模块可以直接在平板电脑400的存储区域中设置发送报文缓存区400131,发送报文缓存区400131的容量可以是预先配置的容量。
S1603:平板电脑400获取应答数据,将应答数据封装为特定报文。
这里的步骤S1603与图8的步骤S804类似,这里的应答数据可以是基于手机100向平板电脑400发送的数据对应的应答数据,例如,在手机100向平板电脑400传输文件的过程中,应答数据可以是平板电脑400确认收到文件后的应答数据。平板电脑400将应答数据封装为特定报文。
S1604:平板电脑400缓存特定报文并根据数据传输状态对应的发送方式发送特定报文。
这里的步骤S1604与图8的步骤S805类似,平板电脑400通过与路由器200之间建立的会话连接,向服务器300发送特定报文;同时,平板电脑400在发送报文缓存区400131缓存已发送的特定报文。
在本申请的另一个实施例中,如果在上述步骤S1601和S1602中,在平板电脑400的报文传输服务4001的数据传输检测模块未确定手机100与路由器200之间的数据传输状态的情况下,平板电脑400与路由器200之间可以通过默认的发送方式发送特定报文。
S1605:平板电脑400确定是否需要重传特定报文。
这里的步骤S1605与图8的步骤S806类似,如果平板电脑400未从路由器200接收到平板电脑400发送的特定报文的确认信息,则进入S1606,平板电脑400根据该特定报文中包含的报文序号从发送报文缓存区400131获取与该报文序号对应的特定报文进行重传;如果不是,则平板电脑400回到S1603,平板电脑400继续将应答数据封装为特定报文进行发送。
S1606:平板电脑400重传特定报文。
这里的步骤S1606与图8的步骤S807类似,如图17b所示,平板电脑400可以根据该特定报文的报文序号从步骤S1604中描述的发送报文缓存区400131查找与该报文序号对应的特定报文,并再次将重新发送特定报文。
上述图16描述了平板电脑400与路由器200之间传输报文以及进行报文重传的方法,下面通过图18描述路由器200向手机100转发报文以及进行报文重传的数据传输方案,该数据传输方案,包括:
S1801:路由器200接收平板电脑400发送的特定报文并缓存。
这里的步骤S1801与图12的步骤S1201类似,如图17b所示,路由器200在存储区域内,如:内存,配置一个平板电脑400对应的接收报文缓存区200142,用于缓存从平板电脑400接收的特定报文。在本申请的实施例中,接收报文缓存区200142可以通过路由器200可以通过与平板电脑400之间的会话连接的会话标识,如:会话ID,来缓存平板电脑400发送的特定报文。
S1802:路由器200确定与手机100之间的数据传输状态。
这里的步骤S1802与图12的步骤S1202类似,数据传输状态可以是数据传输速度,路由器200中可以通过数据传输速度检测程序,检测单位时间内路由器200与手机100之间接收的或者发送的数据数量,即,路由器200与手机100之间单位时间内接收或者发送的字节总数。
S1803:路由器200根据数据传输状态配置发送报文缓存区。
以手机100为例,路由器200可以采用与图12的步骤S1203类似的方式,通过路由器200的报文传输服务2001的发送报文缓存模块,在路由器200的存储器内配置与手机对应的100的发送报文缓存区200133,手机100的发送报文缓存区200133的容量可以与S1802获取的路由器200与手机100之间的数据传输速度之间对应。
在本申请的另一个实施例中,在上述步骤S1802和S1803中,路由器200也可以无需确定路由器200与手机100之间的数据传输状态,路由器200的报文传输服务2001的发送报文缓存模块的发送报文缓存模块可以直接在路由器200的存储区域中设置发送报文缓存区200133,发送报文缓存区200133的容量可以是预先配置的容量。
S1804:路由器200向手机100转发特定报文后将特定报文缓存。
路由器200采用与图12的步骤S1204相同的方式,通过与手机100之间建立的用于传输特定报文的会话连接,将特定报文转发给手机100并将转发后的特定报文缓存于步骤S1803中在路由器200的存储区域内配置的手机100对应的发送报文缓存区200133。
S1805:路由器200确定是否需要重传特定报文。
路由器200可以采用与图12的步骤S1205相同的方式确定是否需要重传特定报文。如果路由器200确定需要重传特定报文,则进入S1806,路由器200根据该特定报文中包含的特定报文字段中的报文序号,从手机100对应的发送报文缓存区200133中获取与该报文序号对应的特定报文进行重传;如果不是,则路由器200回到S1804,路由器200继续转发特定报文。
S1806:路由器200重传特定报文。
如图17c所示,路由器200可以采用与图12的步骤S1206相同的方式重传特定报文。这里不再赘述。在手机100接收到特定报文后,可以将特定报文缓存于手机100的存储区域中设置的接收报文缓存区100141内。手机100也可以使用图12的步骤S1201的方法,在手机100的存储区域,如:内存,设置接收报文缓存区100141。
S1807:手机100获取并解封特定报文,得到特定报文携带的数据。
手机100的报文传输服务1001的报文封装模块对特定报文进行解封并获取特定报文携带的数据。如图17a所示,手机100采用与图12的步骤S1207中封装特定报文相反的方法,从接收报文缓存区100141缓存的特定报文的数据字段中获取数据,并将数据发送给手机100的应用程序。
上述图13至图15说明了本申请的实施例的手机100正在进行视频直播的数据传输方案,在该技术方案中,手机100与服务器300(例如视频直播应用服务器)进行数据传输,该数据传输过程中手机100产生的携带数据的报文,可以经由路由器200转发至服务器300。下面介绍本申请的另一个实施例中,服务器300向手机100返回的报文经过路由器200转发至手机100的技术方案。可以理解,在本技术方案中,服务器300与路由器200之间的数据传输方案可以如图19所示,在服务器300上没有启动报文传输服务,服务器300与路由器200之间可以采用标准的TCP报文的数据传输方式,也就是,路由器200收到服务器300发送的TCP报文后,路由器200需要将TCP报文转换为特定报文后转发给手机100。如图19所示,该数据传输方案包括:
S1901:服务器300向路由器200发送TCP报文。
如图20a所示,服务器300可以通过TCP模块、IP模块将应用服务返回给手机100的数据封装为TCP报文,例如:视频直播的过程中,视频直播应用服务产生的弹幕、评论。服务器300可以通过TCP报文的会话连接,将TCP报文发送至路由器200。
S1902:服务器300确定是否需要重传TCP报文。
如果服务器300未从路由器200接收到服务器300发送的TCP报文的确认信息,则进入S1903,服务器300重新获取数据,将数据封装为TCP报文后进行重传;如果不是,则服务器300回到S1901,服务器300继续将数据封装为TCP报文进行发送。
S1903:服务器300重传TCP报文。
如图20b所示,服务器300可以从应用服务再次获取数据,并重新封装为TCP报文后重传。
上述图19描述了服务器300与路由器200之间传输报文以及进行报文重传的方法,下面通过图21描述路由器200向手机100转发报文以及进行报文重传的数据传输方案,该数据传输方案,包括:
S2101:路由器200接收TCP报文,将TCP报文转换为特定报文并缓存。
路由器200的TCP模块,IP模块先对TCP报文进行解封并获取TCP报文携带的数据。路由器200的报文传输服务2001的报文封装模块20015将数据封装为特定报文。
如图20b所示,路由器200在存储区域内,如:内存,配置一个服务器300对应的接收报文缓存区200143,用于缓存从服务器300接收的特定报文。在本申请的实施例中,接收报文缓存区200143可以通过路由器200可以通过与服务器300之间的会话连接的会话标识,如:会话ID,来缓存服务器300发送的从TCP报文转换后的特定报文。
S2102:路由器200确定与手机100之间的数据传输状态。
这里的步骤S2101与图12的步骤S1202类似,数据传输状态可以是数据传输速度,路由器200中可以通过数据传输速度检测程序,检测单位时间内路由器200与手机100之间接收的或者发送的数据数量,即,路由器200与手机100之间单位时间内接收或者发送的字节总数。
S2103:路由器200根据数据传输状态配置发送报文缓存区。
以手机100为例,路由器200可以采用与图12的步骤S1203类似的方式,通过路由器200的报文传输服务2001的发送报文缓存模块,在路由器200的存储器内配置与手机100对应的发送报文缓存区200133,手机100的发送报文缓存区200133的容量可以与S2001获取的路由器200与手机100之间的数据传输速度之间对应。
在本申请的另一个实施例中,在上述步骤S2102和S2103中,路由器200也可以无需确定路由器200与手机100之间的数据传输状态,路由器200的报文传输服务2001的发送报文缓存模块的发送报文缓存模块可以直接在路由器200的存储区域中设置发送报文缓存区200133,发送报文缓存区200133的容量可以是预先配置的容量。
S2104:路由器200向手机100转发特定报文后将特定报文缓存。
路由器200采用与图12的步骤S1204相同的方式,通过与手机100之间建立的用于传输特定报文的会话连接,将特定报文转发给手机100并将转发后的特定报文缓存于步骤S2002中在路由器200的存储区域内配置的手机100对应的发送报文缓存区200133。
S2105:路由器200确定是否需要重传特定报文。
路由器200可以采用与图12的步骤S1205相同的方式确定是否需要重传特定报文。如果路由器200确定需要重传特定报文,则进入S2106,路由器200根据该特定报文中包含的特定报文字段中的报文序号,从手机100对应的发送报文缓存区200133中获取与该报文序号对应的特定报文进行重传;如果不是,则路由器200回到S2104,路由器200继续转发特定报文。
S2105:路由器200重传特定报文。
如图20c所示,路由器200可以采用与图12的步骤S1206相同的方式重传特定报文。这里不再赘述。在手机100接收到特定报文后,可以将特定报文缓存于手机100的存储区域中设置的接收报文缓存区100141内。手机100也可以使用图12的步骤S1201的方法,在手机100的存储区域,如:内存,设置接收报文缓存区100141。
S2107:手机100获取并解封特定报文,得到特定报文携带的数据。
手机100的报文传输服务1001的报文封装模块对特定报文进行解封并获取特定报文携带的数据。如图20a所示,手机100采用与图12的步骤S1207中封装特定报文相反的方法,从接收报文缓存区100141缓存的特定报文的数据字段中获取数据,并将数据发送给手机100的应用程序,如视频直播应用。
上述图8至图21示出了本申请的一个实施例中,多个电子设备之间通过一个路由器进行数据传输的技术方案,可以理解,在本申请的另一个实施例中,电子设备和路由器的数量均可以大于两个。例如,手机100和平板电脑400分别与路由器201和路由器202连接,路由器201和路由器202之间可以通过有线或者无线连接。手机100和平板电脑400之间的数据传输方法包括:
手机100、平板电脑400、路由器201和路由器202分别运行各自的报文传输服务;手机100与路由器201之间,可以采用与图8类似的方式存储、发送以及重传特定报文;路由器201和路由器202之间对来自不同应用的特定报文建立对应的会话连接,路由器201还可以配置路由器202对应的发送报文缓存区,用于存储特定报文,实现将特定报文从路由器201转发路由器202,在路由器201需要向路由器202重传特定报文的情况下,路由器201可以直接从路由器202对应的发送报文缓存区中查找并重传特定报文;路由器202与平板电脑400之间则可以采用与图12类似的方式存储、发送以及重传特定报文,平板电脑400还可以根据图10所示的特定报文格式,从特定报文的数据字段中获取数据,并将数据发送给平板电脑400的应用程序。
应当理解的是,虽然在本文中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了进行区分,而不能理解为指示或暗示相对重要性。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个彼此分离的操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖描述的顺序,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序也可以被重新安排。当所描述的操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加操作。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
说明书中对“一个实施例”,“实施例”,“说明性实施例”等的引用表示所描述的实施例可以包括特定特征、结构或性质,但是每个实施例也可能或不是必需包括特定的特征、结构或性质。而且,这些短语不一定是针对同一实施例。此外,当结合具体实施例描述特定特征,本领域技术人员的知识能够影响到这些特征与其他实施例的结合,无论这些实施例是否被明确描述。
除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义词。短语“A/B”表示“A或B”。短语“A和/或B”表示“(A)、(B)或(A和B)”。
如本文所使用的,术语“模块”可以指代,作为其中的一部分,或者包括:用于运行一个或多个软件或固件程序的存储器(共享、专用或组),专用集成电路(ASIC),电子电路和/或处理器(共享、专用或组),组合逻辑电路,和/或提供所述功能的其他合适组件。
在附图中,可能以特定布置和/或顺序示出了一些结构或方法特征。然而,应当理解的是,这样的特定布置和/或排序不是必需的。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来进行说明。另外,特定附图中所包含得结构或方法特征并不意味着所有实施例都需要包含这样的特征,在一些实施例中,可以不包含这些特征,或者可以将这些特征与其他特征进行组合。
上面结合附图对本申请的实施例做了详细说明,但本申请技术方案的使用不仅仅局限于本专利实施例中提及的各种应用,各种结构和变型都可以参考本申请技术方案轻易地实施,以达到本文中提及的各种有益效果。在本领域普通技术人员所具备的知识范围内,在不脱离本申请宗旨的前提下做出的各种变化,均应归属于本申请专利涵盖范围。
Claims (30)
1.一种数据传输方法,应用于包括第一电子设备、第二电子设备的系统中,其特征在于,所述方法包括:
所述第一电子设备、所述第二电子设备之间建立第一会话连接;
所述第一电子设备配置第一发送报文缓存区,其中,所述第一发送报文缓存区用于缓存通过所述第一会话连接向所述第二电子设备发送的第一特定报文,所述第一特定报文是以不同于TCP报文封装方式的特定报文封装方式封装第一应用程序数据得到的报文,所述第一应用程序数据的最终目的接收设备是不同于所述第二电子设备的第三电子设备;
所述第二电子设备配置第一接收报文缓存区,其中,所述第一接收报文缓存区用于缓存通过所述第一会话连接接收到的由所述第一电子设备发送的所述第一特定报文;
所述第一电子设备通过所述第一会话连接向所述第二电子设备发送所述第一特定报文;
在所述第一电子设备确定需要重新发送所述第一特定报文的情况下,所述第一电子设备从所述第一发送报文缓存区获取所述第一特定报文,并重新发送所述第一特定报文。
2.根据权利要求1所述的方法,其特征在于,所述第一电子设备配置第一发送报文缓存区,具体包括:
所述第一电子设备根据所述第一电子设备与所述第二电子设备之间数据传输速度,配置与所述数据传输速度对应的大小的所述第一发送报文缓存区。
3.根据权利要求1或2所述的方法,其特征在于,所述第二电子设备配置第一接收报文缓存区,具体包括:
所述第二电子设备根据所述第一电子设备与所述第二电子设备之间数据传输速度,配置与所述数据传输速度对应的大小的所述第一接收报文缓存区。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一特定报文包括特定报文字段,所述特定报文字段用于标识所述第一特定报文对应的序号和/或发送时间。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述第一特定报文的长度与标准TCP报文的长度相同的情况下,所述第一特定报文能够携带的应用数据字节数大于所述标准TCP报文能够携带的应用数据字节数。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一电子设备需要重新发送所述第一特定报文的情况,包括:
所述第一电子设备接收到所述第二电子设备发送的对应于所述第一特定报文的重传请求,或者,所述第一电子设备确定超时未接收到所述第一特定报文对应的确认信息。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一电子设备确定所述第一特定报文发送成功的情况下,所述第一电子设备从所述第一发送报文缓存区删除所述第一特定报文。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
在所述第二电子设备接收到所述第一特定报文后,所述第二电子设备将所述第一特定报文存储至所述第一接收报文缓存区。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
所述第二电子设备从所述第一接收报文缓存区获取所述第一特定报文,并采用与所述特定报文封装方式对应的特定报文解封装方式解封装所述第一特定报文,得到所述第一应用程序数据;
所述第二电子设备采用所述TCP报文封装方式封装所述第一应用程序数据,得到第一TCP报文,并发送所述第一TCP报文。
10.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
所述第二电子设备将所述第一接收报文缓存区中的所述第一特定报文,拷贝至第二发送报文缓存区,其中,所述第二发送报文缓存区用于缓存通过第二会话连接向所述第三电子设备发送的所述第一特定报文,所述第二会话连接是所述第二电子设备和所述第三电子设备之间建立的会话连接;
所述第二电子设备删除所述第一接收报文缓存区中的所述第一特定报文。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述第二电子设备通过所述第二会话连接向所述第三电子设备发送所述第一特定报文。
12.根据权利要求1-11种任一项所述的方法,其特征在于,所述第一电子设备为终端设备,所述第二电子设备为路由器。
13.一种数据传输方法,应用于第一电子设备,其特征在于,所述方法包括:
所述第一电子设备与第二电子设备之间建立第一会话连接;
所述第一电子设备配置第一发送报文缓存区,其中,所述第一发送报文缓存区用于缓存通过所述第一会话连接向所述第二电子设备发送的第一特定报文,所述第一特定报文是以不同于TCP报文封装方式的特定报文封装方式封装第一应用程序数据得到的报文,所述第一应用程序数据的最终目的接收设备是不同于所述第二电子设备的第三电子设备;
所述第一电子设备通过所述第一会话连接向所述第二电子设备发送所述第一特定报文;
在所述第一电子设备确定需要重新发送所述第一特定报文的情况下,所述第一电子设备从所述第一发送报文缓存区获取所述第一特定报文,并重新发送所述第一特定报文。
14.根据权利要求13所述的方法,其特征在于,所述第一电子设备配置第一发送报文缓存区,具体包括:
所述第一电子设备根据所述第一电子设备与所述第二电子设备之间数据传输速度,配置与所述数据传输速度对应的大小的所述第一发送报文缓存区。
15.根据权利要求13-14中任一项所述的方法,其特征在于,所述第一特定报文包括特定报文字段,所述特定报文字段用于标识所述第一特定报文对应的序号和/或发送时间。
16.根据权利要求13-15中任一项所述的方法,其特征在于,在所述第一特定报文的长度与标准TCP报文的长度相同的情况下,所述第一特定报文能够携带的应用数据字节数大于所述标准TCP报文能够携带的应用数据字节数。
17.根据权利要求13-16中任一项所述的方法,其特征在于,所述第一电子设备需要重新发送所述第一特定报文的情况,包括:
所述第一电子设备接收到所述第二电子设备发送的对应于所述第一特定报文的重传请求,或者,所述第一电子设备确定超时未接收到所述第一特定报文对应的确认信息。
18.根据权利要求13-17中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一电子设备确定所述第一特定报文发送成功的情况下,所述第一电子设备从所述第一发送报文缓存区删除所述第一特定报文。
19.根据权利要求13-18种任一项所述的方法,其特征在于,所述第一电子设备为终端设备。
20.一种数据传输方法,应用于第二电子设备,其特征在于,所述方法包括:
所述第二电子设备与第一电子设备之间建立第一会话连接;
所述第二电子设备配置第一接收报文缓存区,其中,所述第一接收报文缓存区用于缓存通过所述第一会话连接接收到的由第一电子设备发送的第一特定报文,所述第一特定报文是以不同于TCP报文封装方式的特定报文封装方式封装第一应用程序数据得到的报文,所述第一应用程序数据的最终目的接收设备是不同于所述第二电子设备的第三电子设备;
所述第二电子设备通过所述第一会话连接接收所述第一特定报文,并将所述第一特定报文存储至所述第一接收报文缓存区。
21.根据权利要求20所述的方法,其特征在于,所述第二电子设备配置第一接收报文缓存区,具体包括:
所述第二电子设备根据所述第一电子设备与所述第二电子设备之间数据传输速度,配置与所述数据传输速度对应的大小的所述第一接收报文缓存区。
22.根据权利要求20或21所述的方法,其特征在于,所述方法还包括:
所述第二电子设备向所述第一电子设备发送所述第一特定报文对应的确认信息。
23.根据权利要求20-22中任一项所述的方法,其特征在于,所述第一特定报文包括特定报文字段,所述特定报文字段包括序号和/或发送时间,所述方法还包括:
所述第二电子设备根据所述序号和/或发送时间,确定是否向所述第一电子设备发送重传请求。
24.根据权利要求20-23中任一项所述的方法,其特征在于,所述方法还包括:
所述第二电子设备从所述第一接收报文缓存区获取所述第一特定报文,并采用与所述第一特定报文的封装方式对应的解封装方式解封装所述第一特定报文,得到第一应用程序数据;
所述第二电子设备采用所述TCP报文封装方式封装所述第一应用程序数据,得到第一TCP报文,并发送所述第一TCP报文。
25.根据权利要求20-23中任一项所述的方法,其特征在于,所述方法还包括:
所述第二电子设备将所述第一接收报文缓存区中的所述第一特定报文,拷贝至第二发送报文缓存区,其中,所述第二发送报文缓存区用于缓存通过第二会话连接向所述第三电子设备发送的所述第一特定报文,所述第二会话连接是所述第二电子设备和所述第三电子设备之间建立的会话连接;
所述第二电子设备删除所述第一接收报文缓存区中的所述第一特定报文;
所述第二电子设备通过所述第二会话连接向所述第三电子设备发送所述第一特定报文。
26.根据权利要求20-25种任一项所述的方法,其特征在于,所述第二电子设备为路由器。
27.一种电子设备,其特征在于,包括至少一个处理器、存储器;其中,所述存储器用于存储计算机执行指令;当所述电子设备运行时,所述至少一个处理器执行所述存储器存储的所述计算机执行指令,以使所述电子设备执行权利要求13-19中任一项所述的方法,或者执行权利要求20-26中任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行权利要求13-19中任一项所述的方法,或者执行权利要求20-26中任一项所述的方法。
29.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行权利要求13-19中任一项所述的方法,或者执行权利要求20-26中任一项所述的方法。
30.一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器和至少一个接口电路,所述至少一个接口电路用于执行收发功能,并将指令发送给所述至少一个处理器,当所述至少一个处理器执行所述指令时,使得包含所述芯片系统的电子设备执行权利要求13-19中任一项所述的方法,或者执行权利要求20-26中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111034071.XA CN115941762A (zh) | 2021-09-03 | 2021-09-03 | 一种数据传输方法、电子设备和装置 |
PCT/CN2022/116212 WO2023030386A1 (zh) | 2021-09-03 | 2022-08-31 | 一种数据传输方法、电子设备和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111034071.XA CN115941762A (zh) | 2021-09-03 | 2021-09-03 | 一种数据传输方法、电子设备和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115941762A true CN115941762A (zh) | 2023-04-07 |
Family
ID=85410717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111034071.XA Pending CN115941762A (zh) | 2021-09-03 | 2021-09-03 | 一种数据传输方法、电子设备和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115941762A (zh) |
WO (1) | WO2023030386A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558289B1 (en) * | 2004-06-17 | 2009-07-07 | Marvell International Ltd. | Method and apparatus for providing quality of service (QOS) in a wireless local area network |
WO2017113390A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 数据传输的方法和装置 |
CN107277853A (zh) * | 2016-04-07 | 2017-10-20 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN108886705A (zh) * | 2016-04-29 | 2018-11-23 | 华为技术有限公司 | 一种信令传输方法和设备 |
CN110958213B (zh) * | 2018-09-27 | 2021-10-22 | 华为技术有限公司 | 处理tcp报文的方法、toe组件以及网络设备 |
-
2021
- 2021-09-03 CN CN202111034071.XA patent/CN115941762A/zh active Pending
-
2022
- 2022-08-31 WO PCT/CN2022/116212 patent/WO2023030386A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023030386A1 (zh) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934352B2 (en) | Card rendering method and electronic device | |
US20230069398A1 (en) | Method for Implementing Wi-Fi Peer-To-Peer Service and Related Device | |
JP2022516663A (ja) | データ伝送方法と電子デバイス | |
WO2019128657A1 (zh) | 数据发送方法、装置及设备 | |
KR102491006B1 (ko) | 데이터 송신 방법 및 전자 기기 | |
WO2022228011A1 (zh) | Quic数据传输方法、装置、客户端及服务端 | |
WO2019019032A1 (zh) | 下行数据包配置方法及装置 | |
CN114979021B (zh) | 数据处理方法及电子设备 | |
WO2021179990A1 (zh) | 一种应用服务器的访问方法及终端 | |
WO2023143300A1 (zh) | 一种切片选择方法、系统及相关装置 | |
WO2024087900A1 (zh) | 一种摄像头切换方法及相关电子设备 | |
WO2021244456A1 (zh) | 反向地址解析方法及电子设备 | |
WO2021147678A1 (zh) | 一种数据传输的方法及电子设备 | |
WO2021088773A1 (zh) | 一种显示报警文件的方法、装置及系统 | |
CN111988362B (zh) | 数据的传输方法、装置、终端及存储介质 | |
CN113810451A (zh) | 点对点链路的建立方法、装置、服务器和终端设备 | |
WO2023030386A1 (zh) | 一种数据传输方法、电子设备和装置 | |
WO2022184157A1 (zh) | 多路径聚合调度方法及电子设备 | |
WO2021114950A1 (zh) | 一种多路http通道复用的方法及终端 | |
CN115412972B (zh) | 一种数据传输方法、装置及系统 | |
CN113678481B (zh) | 无线音频系统、音频通讯方法及设备 | |
WO2022267739A1 (zh) | 一种连接探测方法、客户端与服务器 | |
US12041026B2 (en) | Reverse address resolution method and electronic device | |
CN116723587B (zh) | 一种会话管理方法及电子设备 | |
CN113259370B (zh) | 数据传输方法、装置、设备、系统及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |