CN108023683B - 一种发送报文的方法、装置、芯片及终端 - Google Patents
一种发送报文的方法、装置、芯片及终端 Download PDFInfo
- Publication number
- CN108023683B CN108023683B CN201610946705.1A CN201610946705A CN108023683B CN 108023683 B CN108023683 B CN 108023683B CN 201610946705 A CN201610946705 A CN 201610946705A CN 108023683 B CN108023683 B CN 108023683B
- Authority
- CN
- China
- Prior art keywords
- packet
- message
- baseband processor
- terminal
- information
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/189—Transmission or retransmission of more than one copy of a message
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1628—List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/187—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1896—ARQ related signaling
-
- 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
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- 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
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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/0205—Traffic management, e.g. flow control or congestion control at the air interface
-
- 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/0273—Traffic management, e.g. flow control or congestion control adapting protocols for flow control or congestion control to wireless environment, e.g. adapting transmission control protocol [TCP]
-
- 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/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例记载了一种发送报文的方法、装置、芯片和终端,所述方法用于终端,所述终端包括基带处理器、应用处理器和通信接口,所述方法包括基带处理器向应用处理器上报第一报文的信息,第一报文为被所述基带处理器丢弃的待发送报文;应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;基带处理器通过所述通信接口向网络设备发送所述第二报文。这样,可以一定程度上减少终端重传报文的时延,使得终端与网络的数据通信更加顺畅。
Description
技术领域
本发明涉及通信领域,更具体的涉及一种发送报文的方法、装置。芯片及终端。
背景技术
移动上网已经成为终端的主要特性,终端接入网络所使用的技术方案也不断发展,极大地丰富了终端产品的信息获取速率,移动通信领域常用的TCP/IP(TransmissionControl Protocol//Internet Protocol传输控制/因特网互联协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
在终端使用TCP/IP协议接入网络的过程中,常常会碰到报文被丢弃(也被称为丢包)的情况,当前的处理方法往往是发送端对数据进行重传,目前的处理方法依赖于接收端的反馈判断是否发生丢包,例如发送端未在指定时间段内接收到接收端发送的反馈消息如ACK,则判断发生丢包,然后重新发送包括被丢弃的报文的数据的报文,这种解决方式使得终端对丢包的响应时延较大,终端与网络网络设备的数据传输的卡顿时间较长,实时通信质量影响较大。
发明内容
有鉴于此,本发明实施例提供了一种发送报文的方法、装置。芯片和终端,能够降低终端对基带处理器丢弃的待发送报文的重传的时延,从一定程度上改善终端对丢包的响应时延,使得终端与网络的数据传输更加流畅。
第一方面,本发明实施例提供一种发送报文的方法,所述方法用于终端,所述终端包括基带处理器、应用处理器和通信接口,其特征在于,所述方法包括:所述基带处理器向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;所述基带处理器通过所述通信接口向网络设备发送所述第二报文。
需要说明的是,被所述基带处理器丢弃的待发送报文,又可以理解为所述应用处理器下发给所述基带处理器,而没有成功由所述基带处理器通过所述通信接口向网络设备发送的报文。
需要说明的是,网络设备可以是基站、服务器等设备。
第二报文可以理解为是第一报文的副本。
这样,基带处理器在丢弃待发送的报文后,可以向应用处理器上报被该基带处理器丢弃的待发送报文的信息,使得应用处理器能够根据该上报的信息,重新向基带处理器下发被该基带处理器丢弃的报文的副本,而无需等待到该报文的超时计时器超时而仍未接收到对端的确认报文,才确定该报文被丢弃而重新向基带处理器发送报文,可以降低终端对基带处理器丢弃的待发送报文的重传的时延,一定程度上改善终端对丢包的响应时延,使得终端与网络的数据传输更加流畅。由于无线蜂窝网络的状态经常发生变化,基带处理器将待发送的报文丢弃的情况时常发生。
结合第一方面,在第一方面的第一种实现方式中,所述基带处理器向所述应用处理器上报第一报文的信息,包括:在所述终端的数据连接可用的情况下,所述基带处理器向所述应用处理器上报所述第一报文的信息。
数据连接是用于承载数据业务的连接。终端的数据连接可以理解为是终端与基站之间的数据连接。
结合第一方面或第一方面的第一种实现方式中,在另一种实现方式中,在所述终端的数据连接不可用的情况下,所述基带处理器缓存所述第一报文的信息,在所述终端的数据连接由不可用切换为可用时,所述基带处理器向所述应用处理器上报所述第一报文的信息。
需要理解的是,终端可以通过例如周期性检测、事件触发或者指令触发等形式确定该终端的数据连接可用或者不可用。以下任意一种情况下终端的数据连接不可用:终端数据连接不可用的情况有终端处于掉网状态,或者终端未正常驻留在任何服务小区,或者终端数据业务开关处于关闭状态,或者CSFB(Circuit Switched Fallback,电路域回落)到2G,以及终端处于2G通话场景。
需要说明的是,在所述终端的数据连接由不可用切换为可用时,所述基带处理器向所述应用处理器上报所述第一报文的信息,表示所述基带处理器向所述应用处理器上报所述第一报文的信息是接着所述终端的数据连接由不可用切换为可用发生的,由于读取指令、进行相关操作等需要时间,故不要求严格的同时。也就是基带处理器在所述终端的数据连接由不可用切换为可用这个状态切换产生后的一段时长较小(如几毫秒几秒)的时间内,所述基带处理器完成向所述应用处理器上报所述第一报文的信息的动作。
第一种实现方式和第二种实现方式,该基带处理器只在数据连接的情况下向应用处理器上报丢弃的待发送报文信息,可以提高重传的有效率。仅在数据连接可用的情况下向应用处理器上报丢弃的待发送报文信息,可以减少终端的能耗。
根据上述任意一种实现方式,在另一种实现方式中,在所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文后,所述方法还包括:所述应用处理器增加拥塞窗口。
由于该应用处理器向基带处理器传输第二报文后,可能导致拥塞窗口减少,这样,可以消除超时重传影响,保证终端的发包数量,提高终端的传输吞吐率。
根据上述任意一种实现方式,在另一种实现方式中,所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文,包括:所述应用处理器根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
第二方面,本发明实施例提供一种一种发送报文的装置,所述装置包括基带处理器、应用处理器和发送器;所述基带处理器用于向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;所述应用处理器用于根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;所述基带处理器还用于通过所述发送器向网络设备发送所述第二报文。
由于第二方面是第一方面对应的装置,其各种实现方式及说明以及技术效果请参照第一方面的描述。
第三方面,提供一种芯片,所述芯片通过射频器件与网络设备建立数据连接,所述芯片包括应用处理器和基带处理器,其特征在于,所述基带处理器用于向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;所述应用处理器用于根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;所述基带处理器还用于通过所述射频器件向网络设备发送所述第二报文。
第三方面是第二方面的一种具体的产品形态,第三方面的各种实现方式及说明以及技术效果请参照第二方面,此处不再赘述。
第四方面,提供一种终端,所述终端包括应用处理器、基带处理器、存储器和通信接口,所述应用处理器、基带处理器、通信接口和存储器连接,所述应用处理器、基带处理器和通信接口通过调用所述存储器中存储的指令,执行第一方面中各种实现方式中任意一种的方法。
第五方面,提供一种存储介质,用于存储可以实现第一方面中各种实现方式中任意一种的方法。
第四方面和第五方面的各种实现方式及说明以及技术效果请参照第一方面,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一个系统组网示意图;
图2为本发明实施例的一个终端硬件结构示意图;
图3为本发明实施例的一个终端软件架构示意图;
图4为本发明实施例提供TCP报文格式示意图;
图5为本发明实施例提供的一种发送报文的方法的示意图;
图6为本发明实施例提供的一种发送报文的装置的示意图;
图7为本发明实施例提供的一种终端的示意图;
图8为本发明实施例提供的一种发送端与接收端之间传输报文的封装过程的示意图。
具体实施方式
本发明实施例提供了一种,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下为本发明实施例涉及的一些技术名词:
拥塞窗口,指TCP数据传输中,数据的源端在拥塞控制情况下一个RTT时间段内最多能发送的数据包的数量。拥塞窗口的退避,指数据的源端在网络出现拥塞的情况下,将拥塞窗口减小。
移动通讯的业务分为数据业务(Data Service)和语音业务。数据业务包含除移动通讯CS(Circuit Switched,电路交换)域语音业务外的其他业务。数据连接,可理解为终端与基站之间的数据连接,表示终端与基站之间用于处理数据业务的连接。终端与基站的数据连接可用,表示终端使用蜂窝网络处理数据业务,也就是该终端能够接收到蜂窝网络中的一基站的信号,并且该终端能使用与该基站交互数据业务的数据或者指令的功能。终端与基站的数据连接不可用,表示该终端不可使用蜂窝网络处理数据业务,也就是说该终端不能接收到蜂窝网络的信号,或者该终端因需要处理语音业务而不能同时与蜂窝网络中的基站交互数据业务的数据或者指令。目前已知的终端数据连接不可用的情况有终端处于掉网状态,或者终端未正常驻留在任何服务小区,或者终端数据业务开关处于关闭状态,或者CSFB(Circuit Switched Fallback,电路域回落)到2G,以及终端处于2G通话场景。
待发送报文:终端待向基站发送的报文,一般是指运行在终端上的某应用产生的需要发送给基站的数据通过协议栈封装得到的TCP报文。待发送报文中的数据可以由于用户的某些动作或者行为产生。例如应用为浏览器,用户点击浏览器显示的某个链接,或者输入某个网站的账号或者密码,该那么该链接的数据或者用户输入的账号或者密码就是该浏览器需要发送给基站的数据。待发送报文中的数据也可以是应用在运行过程中为了执行某个任务产生,例如应用为浏览器,为了周期性地刷新主页中的新闻窗口,会产生需要发送给基站的请求数据。这些数据经过协议栈封装,得到的报文在终端未通过终端的射频器件(如天线)发送出去前,就是待发送报文。本领域技术人员应当理解,终端是可以生成或者确定出待发送报文的。本发明对待发送报文的产生方式不做限定。
相同:本发明实施例中的相同表示完全相同或者实质相同,例如,第一报文与第二报文相同,在第一报文和第二报文是TCP报文的情况下,表示至少第一报文和第二报文的数据部分、源端口号、目的端口号等信息相同,可以理解为第二报文是第一报文的一个副本,但是允许第一报文和第二报文的报文头或者报文尾中有不影响实质的细小的不同,这些不同可能是终端在生成报文中由于某些原因产生的,例如时间戳不同、随机产生的某些值不同等。
本发明实施例提供的技术方案可典型地应用于无线通信系统中,比如,例如:全球移动通讯系统(GSM,Global System of Mobile communication)网络,码分多址(CDMA,Code Division Multiple Access)网络,时分同步码分多址(TDSCDMA,Time Division-Synchronous Code Division Multiple Access)网络,宽带码分多址(WCDMA,WidebandCode Division Multiple Access Wireless)网络,通用分组无线业务(GPRS,GeneralPacket Radio Service)网络,长期演进(LTE,Long Term Evolution)网络,软件定义网络(SDN,Software Defined Network),无线传感器网络(Wireless Sensor Network)等。
图2是本发明实施例提供的一种通信系统100的简化框图,该通信系统100仅作为本发明的一种应用场景,不应理解为对本发明应用场景的限定。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
如图2所示,该通信系统100包括终端10、接入点11、网关12、广域网13、以及服务器20。本发明实施例中的终端10,可以是移动终端(Mobile Terminal),例如手机、平板电脑、运动相机、笔记本电脑等便携式、穿戴式、或者车载的移动设备,也可以是一些能够接入蜂窝网络的计算机、服务器等设备,甚至是能够接入蜂窝网络的路由器、网关等网络设备等,例如,可以使用SIM(Subscriber Identification Module,客户识别模块)卡的路由器或者网关,本发明实施例以手机为例进行说明。服务器20可以为应用服务器,服务器代理,数据中心服务器或者是路由器、网关等网络设备。
所属领域的技术人员可以理解一个通信系统通常可包括比图2中所示的部件更少或更多的部件,或者包括与图2中所示部件不同的部件,图2仅仅示出了与本发明实施例所公开的实现方式更加相关的部件。例如,虽然图2中示出了一个服务器20,但所属领域的技术人员可理解成一个通信系统可包含任何数量的服务器。
广域网14可包括公用网络、专用网络、因特网的一部分和/或其任何组合。接入点可以为基站,无线局域网(WLAN)接入点或其他形式的接入点,网关12和接入点11可包括在一个无线网络中,出于简洁之目的,该无线网络的其它部分并未进行阐述。
图2进一步示出了终端10硬件结构,根据图2,终端10包括应用处理器110、存储器120、通信子系统130和电源管理子系统140。其中,存储器120存储可执行程序,该可执行程序包括操作系统和应用程序。应用处理器(Application Processor)110,用于运行操作系统和应用程序的处理器。
在一个实施例中,应用程序为网页浏览器,则服务器20为网页内容提供商的服务器。在另一个实施例中,第一应用程序是在线视频播放器,则服务器20为视频内容提供商服务器。在另一个实施例中,第一应用程序是即时通讯软件,则服务器20为即时通讯服务提供商的服务器。
通信子系统130主要实现基带处理、调制解调、信号放大和滤波、均衡等功能。通信子系统130包括基带处理器131(Communication Processor,CP),也称为无线调制解调器(Modem)、射频模块132和天线133。需要说明的是,基带处理器131可以和Wi-Fi模块150集成在同一芯片中,另一方面,基带处理器131和应用处理器110可以集成在同一芯片中,也可以各自为独立的芯片,图2仅为示意性表达。电源管理子系统140用于系统的供电。
存储器120一般包括内存和外存。内存可以为随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)等。外存可以为硬盘、光盘、USB盘、软盘或磁带机等。可执行程序通常被存储在外存上,应用处理器110会将可执行程序从外存加载到内存后再执行该程序。
可选地,终端10还包括Wi-Fi(Wireless Fidelity,无线保真)模块150,Wi-Fi模块150支持IEEE 802.11系列协议,终端10可以通过Wi-Fi模块150接入WLAN。
可选地,终端10还包括显示器160,用于显示由用户输入的信息或提供给用户的信息以及终端10的各种菜单界面等。显示器160可为液晶显示器(英文:Liquid CrystalDisplay,LED)或有机发光二极管(英文:Organic Light-Emitting Diode,OLED)等。在其他一些实施例中,显示器160上可以覆盖触控面板,以形成触摸显示屏。
除以上之外,终端10还可以包括用于拍摄照片或视频的摄像头180、一个或多个传感器170,例如重力传感器、加速度传感器、光传感器等。
此外,所属领域的技术人员可以理解终端10可包括比图2中所示部件更少或更多的部件,图2所示的终端10仅示出了与本发明实施例所公开的多个实现方式的更加相关的部件。
下面进一步描述终端10的软硬件环境。终端10按照逻辑层级可以被划分为:硬件层,操作系统,以及运行在操作系统之上的应用层(也称用户态)。其中,硬件层包括图2相关的实施例所描述的硬件,比如应用处理器110,存储器120,Wi-Fi模块150等等。操作系统可以为操作系统,操作系统,Windows操作系统或其它类型的操作系统,本发明实施例不做限定。
在一个实施例中,操作系统包括:框架层(Framework)、内核态和驱动层。驱动层包括传感器驱动、Wi-Fi驱动、显示器驱动等硬件设备的驱动程序。内核态包括TCP协议栈、IP协议栈等,下文将结合本发明实施例涉及的方法流程对内核态做进一步说明。框架层包括用户层与内核态之间进行通信的接口,以及一些服务,如图形服务(Graphic Service)224、系统服务(System service)221、网页服务(Web Service)222和用户服务(CustomerService)223等应用层运行应用,这些应用往往可以直接通过显示器与用户交互,例如图库、媒体播放器(Media Player)、浏览器(Browser)以及微信(wechat)等。操作系统和应用层的应用程序均可以可执行程序的形式存储于存储器120中,本发明实施例所使用的术语“程序”应被广泛地解释为包括但不限于:指令,指令集,代码,代码段,子程序,软件模块,应用,软件包,线程,进程,函数,固件,中间件等。如图2所示,终端10可以通过通信子系统130来接入蜂窝网络,然后通过广域网13与服务器20通信。在另一个实施例中,终端10也可以通过Wi-Fi模块150来接入WLAN,然后通过广域网13与服务器20通信。具体地,终端10接入网络后,可以通过TCP/IP协议栈(指TCP协议栈和IP协议栈)与服务器20建立TCP连接,然后利用该TCP连接传输数据。TCP/IP协议栈是用于实现TCP/IP参考模型所定义的TCP/IP协议簇的中间件。TCP协议栈可由终端10上的软件、硬件和/或固件的适当组合执行。TCP/IP协议簇包括两个核心协议:TCP(传输控制协议)和IP(网际协议)。终端10与服务器20之间的TCP连接的建立可由终端10上运行的应用程序发起。以图3中的浏览器213为例,浏览器213生成套接字开启(socket open)命令,该命令被传递给终端10的TCP协议栈,以触发TCP协议栈通过三次消息交互(也称为“三次握手”)与服务器20建立TCP连接,然后,TCP协议栈通知浏览器213连接已经建立。
接下来,浏览器213和服务器20就可以基于建立的TCP连接传送TCP报文了。TCP报文的格式如图4所示,其中,源端口和目的端口用于确定发送端和接收端应用进程,通过源端口、目的端口、源IP地址和目的IP地址可以唯一确定一个TCP连接;TCP报文头部的序列号(Sequence Number,一般也简称为seq)字段携带报文负荷中第一个数据字节的序列号。接收端在接收到TCP报文后,发送确认报文(Acknowledgement,简称ACK)报文至发送端。ACK头部的确认号(Acknowledge Number,一般也简称为ack)字段值,表征接收端接收到的报文的"Sequence Number"字段的值,同时也意味着接收端已经接收到发送端发送所有"Sequence Number"的值小于所述ACK报文的"Acknowledge Number"的报文。窗口大小用于指示接收端当前接收缓冲区的大小。另外,TCP报文头部还有6个标志位以及一个可自定义的选项(Option)字段,选项字段可以用于携带额外的信息;其中6个标志位的定义如下:
URG:紧急指针有效;
ACK:确认号有效;
PSH:立即上送应用层处理;
RST:异常复位;
SYN:同步标志,置1建立连接;
FIN:终止标志,请求释放连接。
下面简单介绍TCP重传及拥塞控制机制,为了简化描述,本发明部分实施例中将已建立通信连接的两个设备中的一个称为发送端,另一个称为接收端。可以理解的是,发送端和接收端可以是具有数据收发能力的任何设备,比如,发送端可以是上述的服务器20,接收端可以使上述的终端10。另外,发送端和接收端是两个相对的角色,且可以互相转换,即同一设备在不同的场景下可能是发送端,也有可能是接收端。
TCP的重传机制保证了报文的可靠传输,重传机制主要包括超时重传和快速重传。超时重传的基本过程是:发送端在发送一个报文后就开启一个超时计时器,如果超时计时器的计时时间到,发送端仍没有接收到表征该报文已被正确接收的确认报文,就重新发送该报文。超时计时器的值一般表示为RTO(Retransmission TimeOut),RTO通常设置为与RTT(Round Trip Time)相同,也就是一个报文从发出去到回来所用的时间,RTT可以通过采样的方式得出。
然而应当理解的是,无线通信系统为终端提供服务,而随着技术的发展,终端往往支持多种通信协议,例如支持2G、3G和4G网络等,由于终端位置的移动等原因,网络经常会不稳定或者信号强度产生变化,例如在电梯、地下停车场等信号较弱的区域,或者终端位于动车、高铁等快速移动的交通工具上的场景,网络信号的不稳定使得终端网络连接状态发生改变,例如终端会在不同种类的蜂窝网络中切换,如LTE切换到WCDMA,或者在某段时间内终端从网络中断开以及重连,这种改变在某段时间内甚至是频繁的,在这类场景下,在终端作为发送端的情况下,终端的Modem可能会将待发送到蜂窝网络中的报文在发送过程中丢弃,这种情况产生的丢包也可称为主动丢包。因此,主动丢包是使用蜂窝网络的终端经常发生的。
可见主动丢包是报文未进入网络传输就发生的一种行为,数据并不是在网络传输过程中丢失的,而根据上文的描述,TCP的重传机制并不区分报文丢失的原因,一般都需要等待网络侧反馈才重传,使得移动终端对主动丢包的响应时延较长,本发明实施例提出本发明实施例主要为实现应用处理器110中的TCP协议栈能够感知基带处理器131中待发送的数据的丢包而进行了优化,以减少移动终端对主动丢包的响应的时延。可以理解的是,本发明实施例的方法同样适用于具有报文重传机制的其它可靠性传输协议。本发明实施例以TCP报文为例进行描述。
图3进一步描述了图1中应用处理器110和基带处理器131在本发明实施例中,配合处理数据过程中涉及的软件架构,其中,应用处理器110可以看做是一个处理器核,基带处理器131(也称为Modem)则看做是另一个处理器核,该软件架构可以支撑这两个核之间数据通信的机制,两个核之间的通信遵循具体的核间通信协议,本发明实施例对核间通信协议的种类不做限定,而以下结合图3简单描述本发明实施例涉及的终端作为数据的源端向网络侧设备发送数据包的过程,其中,应用处理器110中,应用层的应用(APP,application)通过TCP连接的源端的socket接口,将数据包经过内核(也称内核态)的TCP协议栈以及IP协议栈后,使用应用处理器110和Modem内各自用于进行核间通信的任务(task,也可以理解为线程),将数据包传递给Modem中的3GPP(3rdGeneration Partnership Project,第三代合作伙伴计划)协议栈(也可以理解为任务或者线程),3GPP协议栈再通过通信子系统130中的硬件,将该数据包从中终端发送出去。3GPP协议栈用于承载一种或多种数据链路层和物理层的通信协议,主要是用于各种蜂窝网络的通信协议,并不局限于3G网络的各种通信协议,例如可以是GSM,CDMA,LTE等,本发明不做限制。本发明实施例中终端的内核的种类由终端操作系统的种类决定,本发明不做限制,例如可以是linux内核(Andriod内核),Windows内核等。在一种实现方式下,应用处理器110与Modem传输数据量较大的数据(如数据包等)与传输数据量较小的信息(如心跳信息,控制指令等)所使用的核间通信任务是不同的。进一步的,传输数据量较小的信息所使用的核间通信任务的实现可以为,在应用处理器110和基带处理器131中各运行一个任务,这两个任务可以相互传输数据量较小的信息,两个处理器可以通过这两个任务间的通信实现处理器之间的信息传输。
具体的,Modem中用于与应用处理器110传输数据包的任务以及3GPP协议栈都具有自己的数据包缓存队列,这些数据包缓存队列往往配置有定时器来监控这些队列。具体的,3GPP协议栈中不同的协议,往往对应不同的数据包缓存队列,例如,LTE协议使用PDCP(Packet Data Convergence Protocol,分组数据汇聚协议)队列,WCDMA或者TDSCDMA协议使用PDCP或RLC(Radio Link Control,无线链路层控制)队列。在多种情况下,数据包缓存队列中的数据包会被Modem主动丢弃,而无法向网络设备发送。以下简单列举一些典型的丢包场景,应理解,本发明实施例中的丢包场景并不局限于以下的例子。
例如,Modem中用于与处理器110传输数据包的任务,在接到来自应用处理器110的数据包后,通常会确定RRC连接是否已经建立,如果RRC连接已建立,则将该接收到的数据包传输给3GPP协议栈处理,如果RRC连接没有建立,则将该数据包缓存入该任务的队列中,等待RRC连接建立成功后继续传输。该任务会在数据包存入缓存队列失败的情况下将数据包丢弃,或者在该任务的缓存队列的定时器常超时且仍未成功建立RRC连接的情况下,会丢弃缓存队列中的数据包,或者该任务在收到用于清除该任务的数据包缓存队列的ERABM(E-utran Radio Access Bearer Mange,演进无线接入网无线接入承载管理)消息后,会主动清空缓存队列中的数据包。
3GPP协议栈可以通过检测,发现会导致该终端不可用蜂窝网络处理数据业务的事件,从而确定该终端的数据连接是否可用。。例如,终端处于掉网状态,或者终端未正常驻留在任何服务小区,或者终端数据业务开关处于关闭状态,或者CSFB(Circuit SwitchedFallback,电路域回落)到2G,以及终端处于2G通话场景,以上几种场景中,该终端的数据连接不可用。本发明实施例对导致终端数据连接不可用的事件不做限制。或者3GPP协议栈可以通过收集一些用于表征该终端是否能使用蜂窝网络处理数据业务的参数,如终端接收到的蜂窝网络的信号强度、该终端接入的蜂窝网络的类型以及该终端是否在运行语音业务等,基带处理器根据预先设置的算法计算出该终端当前的数据连接是否可用,本发明实施例不对具体的参数和算法进行限制。上述的检测或者计算都可以是3GPP协议栈周期性进行的,或者是由某些指令触发的,或者是由上述的事件触发的,本发明实施例对3GPP协议栈如何确定终端的数据连接是否可用,不做限制。应该理解,在终端使用蜂窝网络处理数据业务的过程中,会涉及到RRC(Radio Resource Control,无线资源控制)的建链与拆链,这是在终端与基站进行数据业务的交互过程中经常发生的,实际上是在终端与基站的数据连接可用的情况下,进一步建立TCP连接的过程,是在物理层(Physical Layer)以及媒介访问控制层(Medium Access Control)之上的连接。因此,在本发明实施例中,RRC的建链与拆链都是在终端的数据连接可用的前提下发生的。终端确定数据连接是否可用与RRC的建链与拆链无关。
另一方面,3GPP协议栈在以下情况下可能会主动丢弃待发送的报文:
不同的无线蜂窝网络之间的切换。例如从LTE网络切换到WCDMA或者TDSCDMA或者GSM网络,这在实际场景中可能是由于4G网络不稳定而无法连接到4G基站,或者当前未使用VoLTE(Voice overLTE)技术的场景中在LTE网络下开始语音通讯(如CSFB场景,),终端切换到3G网络或者2G网络,该事件可能会导致L2层(即LTE2层,包括MAC层、RLC层、PDCP层)释放,如PDCP队列释放,Modem将清除PDCP队列中待发送的报文。又例如WCDMA或者TDSCDMA切换至LTE。该事件同样可能导致L2层释放。
网络参数配置不合理。例如,在终端使用LTE网络的情况下,不合理的参数可能会导致PDCP重配置,Modem将清除PDCP队列中的待发送报文;而在终端使用WCDMA或者TDSCDMA网络的情况下,不合理的参数可能会导致RLC(Radio Link Control,无线链路层控制)重配置,RLC层位于MAC(Media Access Control,媒体访问控制)层之上,与MAC层都是L2层的一部分,Modem将清除待发送的报文。
在终端使用WCDMA或者TDSCDMA网络的情况下,RNC(Radio Network Controller,无线网络控制器)切换,可能导致RLC重建,Modem清除待发送的报文。
PDCP队列满,应用处理器110下发的报文无法插入队列而被Modem丢弃。该情况可能出现在LTE网络或者WCDMA或者TDSCDMA网络中。
在蜂窝网络中,可以有多个无线承载(也就是3GPP协议栈中数据链路层建立的链接)为应用的多个业务服务,通常一个业务使用一个承载,每个承载对应一个PDCP队列缓存待发送的报文,在一个承载上的业务因为网络问题异常中断的情况下,Modem将主动清除该业务对应的PDCP队列中的待发送报文。
为了便于理解,图4是TCP报文的格式的示意图。
以下结合图5说明本发明实施例提供的一种发送报文的方法,该方法用于终端,该终端包括应用处理器、基带处理器和通信接口,该方法包括:
S502:基带处理器向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文。
其中,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识。
需要说明的是,被所述基带处理器丢弃的待发送报文,又可以理解为所述应用处理器下发给所述基带处理器,而没有成功由所述基带处理器通过所述通信接口向网络设备发送的报文。
基带处理器可以丢弃多个待发送报文,基于上文的描述可知,很多情况都会导致待发送报文被丢弃。具体的,基带处理器可以记录下被丢弃的待发送报文想信息,也可以监控会使得基带处理器丢弃待发送报文的事件,例如不同的蜂窝网络之间的切换等,从而确定被丢弃的待发送报文。本发明实施例对基带处理器如何获取被丢弃的待发送报文的信息不做限制。
基带处理器可以将这些丢弃的待发送报文的信息向应用处理器上报,为了描述方便,以其中的第一报文且第一报文是TCP报文为例进行叙述。该第一报文的信息包括第一报文的标识和该第一报文所属的TCP连接的标识。一种实现方式中,该第一报文标识可以是该报文的序列号,该第一报文所属的TCP连接的标识可以是该TCP连接的源端口号,根据TCP报文的格式(如图4所示),基带处理器可以在处理待发送报文的过程中通过解析获得该序列号和该源端口号。
本领域技术人员应理解,基带处理器可以确定需要上报的报文的信息,具体实现方式本发明实施例不做限制。具体的传输协议也不限于TCP协议。
在一种实现方式下,基带处理器可以选择合适的上报丢弃的待发送报文的信息的时机,在恰当的时机上报多条丢弃的报文的信息,而不限于是一发生丢包就向应用处理器上报。具体的,在所述终端的数据连接可用的情况下,所述基带处理器向所述应用处理器上报所述第一报文的信息。或者在所述终端的数据连接不可用的情况下,所述基带处理器缓存所述第一报文的信息,在所述终端的数据连接由不可用切换为可用时,所述基带处理器向所述应用处理器上报所述第一报文的信息。应理解,上述两种方式可以一起使用。
该基带处理器的缓存队列可以缓存待上报给应用处理器的信息,该信息是被该基带处理器丢弃的待发送报文的信息。
数据连接是用于承载数据业务的连接。终端的数据连接可以理解为是终端与基站之间的数据连接。具体的请参照前文的描述。
需要说明的是,在所述终端的数据连接由不可用切换为可用时,所述基带处理器向所述应用处理器上报所述第一报文的信息,表示所述基带处理器向所述应用处理器上报所述第一报文的信息是接着所述终端的数据连接由不可用切换为可用发生的,由于读取指令、进行相关操作等需要时间,故不要求严格的同时。也就是基带处理器在所述终端的数据连接由不可用切换为可用这个状态切换产生后的一段时长较小(如几毫秒几秒)的时间内,所述基带处理器完成向所述应用处理器上报所述第一报文的信息的动作。
可以理解,在这种实现方式下,该基带处理器需要确定该终端的数据连接是否可用。
本领域技术人员应当理解需要理解的是,终端可以通过例如周期性检测、事件触发或者指令触发等形式确定该终端的数据连接可用或者不可用。本发明实施例对确定数据连接是否可用使用的事件,具体分析过程和分析所使用的算法,以及如何触发基带处理器确定该终端的数据连接是否可用都做限制。进一步的描述请参照前文相关的描述。
由于该基带处理器执行S502的步骤是为了让应用处理器知道发生了丢包,以及时向该基带处理器进行重传,而基带处理器得到重传的数据包是为了将数据包向接收端发送,故,如果在该终端的数据连接不可用的情况下重传,基带处理器仍然会因为数据连接不可用而再次主动丢包,则应用处理器的这次重传就是无效的。故,该基带处理器只在数据连接可用的情况下向应用处理器上报丢弃的待发送报文信息,可以提高重传的有效率。另一方面,基带处理器执行S502的步骤需要唤醒该应用处理器,如果基带处理器一出现丢包就上报信息,则该应用处理器会被频繁唤醒,会导致终端的能耗大大增加,而移动终端往往使用电池,要求尽量少的耗电和尽量长的待机时间。故,仅在网络可用的情况下向应用处理器上报丢弃的待发送报文信息,可以减少终端的能耗。
当然,在另一种实现方式中,该基带处理器也可以不考虑该终端的数据连接是否可用,一但确定需要重传的报文的信息,就将该信息上报应用处理器。本发明实施例不做限制。
S504:该应用处理器根据所述第一报文的信息向该基带处理器传输第二报文,所述第二报文与所述第一报文相同。
在一种实现方式下,该应用处理器根据接收到的该第一报文的信息,获得该第一报文以及该第一报文所在TCP连接的源端口;该应用处理器使用该源端口,重新向该基带处理器传输该第一报文。
该第二报文可以理解为第一报文的副本。
应当理解的是,根据TCP传输协议,在发送端的TCP协议栈向底层发送出报文后,会将该报文的副本保存在该TCP连接的队列中,直到收到该TCP连接的接收端返回的ACK(Acknowledgement,确认字符),确认了该报文已成功被接收端接收,才会将该报文的副本删除,否则就一直保存以供传输超时的情况下重传。故,该应用处理器可以根据基带处理器上报的第一报文信息,将第二报文重新传输给该基带处理器。
S506:该基带处理器通过该通信接口向网络设备发送该第二报文。
该网络设备可以是基站、服务器等蜂窝网络中的网络设备,本发明实施例不做限定。
综上,基带处理器在丢弃待发送的报文后,可以向应用处理器上报被该基带处理器丢弃的待发送报文的信息,使得应用处理器能够根据该上报的信息,重新向基带处理器下发被该基带处理器丢弃的报文的副本,而无需等待到该报文的超时计时器超时而仍未接收到对端的确认报文,才确定该报文被丢弃而重新向基带处理器发送报文,可以降低终端对基带处理器丢弃的待发送报文的重传的时延,一定程度上改善终端对丢包的响应时延,使得终端与网络的数据传输更加流畅。由于无线蜂窝网络的状态经常发生变化,基带处理器将待发送的报文丢弃的情况时常发生。
另一方面,正如上文所述,在一种实现方式下,由于考虑功耗,基带处理器上报被丢弃的待发送报文的信息需要等到该终端接入的蜂窝网络的状态为可用,这对于一部分被丢弃的待发送报文,上报信息就有一定的等待时间,这样就有可能导致以下两种情况:其一某一被丢弃报文的超时计时器在基带处理器上报这个报文的信息之前就超时了,这种情况下,可能该报文已经通过超时重传机制由TCP连接重传与该被丢弃报文相同的报文了,那么就无需基带处理器再向应用处理器上报该被丢弃报文的信息,基带处理器可以根据接收到的与该被丢弃报文相同的报文,将该被丢弃报文的信息过滤,也就可以避免浪费功耗和终端的流量。其二,应用处理器在下发与某被丢弃报文相同的报文时,该被丢弃报文的超时计时器超时,这种情况下,相当于也满足超时重传的要求,就有可能触发TCP连接的拥塞控制方法。
需要说明的是,TCP通过重传机制可以保证报文的可靠传输,但是现有技术中的重传机制都是默认丢包是网络拥塞造成的,一般最常见的在网络传输过程中的丢包原因就是网络负载太重,网络设备无法负担当前时刻网络中要传输的数据量,造成网络拥塞,才将部分在网络中传输的报文丢弃,故会与重传机制配套使用的拥塞控制方法减轻网络中的拥塞,以提高重传报文到达对端的成功率。拥塞控制算法主要包括慢启动(Slow Start)和拥塞避免(Congestion Avoidance)等,简单来说,就是应用处理器得知报文丢失需要重传,会减小一些参数的值来限制终端向网络中发送的报文的数量,例如拥塞窗口(cwnd,congestion window)的值,慢启动阈值(ssthresh,slow start threshold)等等,通常应用处理器就使用这调整后的参数控制向基带处理器下发重传的报文和后续的待发送报文的速率。
例如,如果丢包导致超时重传,则发送端可以将慢启动阈值减小为cwnd/2,然后将cwnd置为1,重新进入慢启动过程。又例如,如果发送端根据ACK判断有报文丢失并启动快速重传后,可以将拥塞窗口减小一半,同时将慢启动阈值设置为更新后的拥塞窗口大小。可以理解的是,不同的算法对拥塞窗口和慢启动阈值减少的幅度和方式有所区别,但大多是依据丢包退避的原理,即当发送端判定发生网络丢包后,主动减小拥塞窗口大小和慢启动阈值。
然而,由于本发明实施例中的主动丢包并不是由于网络拥塞引起的,也就不需要减少终端发送到无线网络中的报文数量,并且,由于有报文被基带处理器主动丢弃了,也需要保证一定的报文发送量以尽快将报文传输到对端,然而将本发明实施例的方法往往在现有的TCP机制中使用,就难免会遇到如上文所述cwnd减小的问题。
故,本发明实施例的一种实现方式中,在所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文后,应用处理器增加拥塞窗口进行补偿。
例如,可以增加cwnd到设定的初始值,也可以恢复到由于该次重传触发拥塞窗口减小之前的拥塞窗口的值。本发明实施例对应用处理器将拥塞窗口增加到什么值,采用什么策略将拥塞窗口增加等,均不作限定。这样,可以消除超时重传影响,保证终端的发包数量,提高终端的传输吞吐率。
在另一个实施例中,应用处理器和基带处理器(也称为Modem)甚至可以集成在同一个芯片的同一个核上,上述方法在这样的芯片中同样适用。为了描述方便,在该实现方式下,将这个芯片统称为处理器,则TCP协议栈和3GPP协议栈可以理解为运行在该处理器中的两个任务(或者线程),这两个任务可以属于不同或者相同的进程,TCP协议栈和3GPP协议栈通过线程或者进程间的通信机制进行信息的交互。该应用处理器中还运行着应用程序,应用程序通过该TCP协议栈和3GPP协议栈向基站发送报文,例如应用程序产生的数据或者应用程序受用户操作触发的请求等,3GPP协议栈会将丢弃了的应用程序的报文的信息,例如报文的标识和该报文所在的TCP连接的标识通过线程或者进程间的通信机制传递给TCP协议栈,使得TCP协议栈根据接收的被丢弃的报文的信息,给3GPP协议栈传递一与被丢弃了的报文相同的报文,该处理器通过通信接口,向基站发送3GPP协议栈接收到的与被丢弃了的报文相同的报文。这种实现方式下的其他细节,请参照本发明前文的实施例,此处不再赘述。这样,可以降低终端对基带处理器丢弃的报文的重传的时延,一定程度上改善终端与网络设备间的时延,使得终端与网络的数据传输更加流畅。
下面结合图3的软件架构,以安卓系统的一种终端为例,描述一个实施例中,在基带处理器丢弃待发送的报文后,应用处理器和基带处理器如何配合以完成重传。其中,应用处理器和基带处理器是两个核或者是两个独立的芯片。这个实施例中涉及的一些前文提到的内容,请参阅前文,这里不再赘述。
在这种实现方式下,基带处理器中包括3GPP协议栈,以及用于与应用处理器传输数据包的任务(简称为核间数据传输任务),还包括用于传输数据量较小的核间通信任务,应用处理器中包括与基带处理器中的核间通信任务对应的另一核间通信任务,TCP协议栈,IP协议栈,以及运行在应用处理器应用层的应用。
基带处理器中的3GPP协议栈监测基带处理器丢弃的待发送报文,以及终端当前接入的蜂窝网络的状态,具体的可以是监控会使得基带处理器丢弃待发送报文的事件,例如在不同的蜂窝网络之间的切换等,从而确定被丢弃的待发送报文。
3GPP协议栈生成基带处理器丢弃的待发送报文的信息并采用队列进行存储,(其中包括丢弃的报文的序列号和该丢弃的报文所在的TCP连接的源端口号)以及生成表征该终端的数据连接是否可用的信息(可以是用于表征该连接是否可用的一些参数,或者直接一个布尔值,不同的值表示可用或者不可用),将上述两种信息传递给基带处理器中的核间通信任务,例如通过共享内存的方式传递这些信息。
另一方面,基带处理器中用于与应用处理器传输数据包的任务也会检测该任务丢弃的报文,类似3GPP协议栈,该任务将生成的基带处理器丢弃的待发送报文的信息(其中包括丢弃的报文的序列号和该丢弃的报文所在的TCP连接的源端口号)传递给基带处理器中的核间通信任务,例如通过共享内存的方式传递这些信息。
核间通信任务使用该任务的队列来管理得到的被丢弃的报文的信息,如果该队列已满,则该队列会丢弃队列已满后得到的被丢弃的报文的信息,以及核间通信任务根据3GPP协议栈提供的该终端的数据连接信息,确定出该终端的数据连接为可用或者不可用。
在该终端的数据连接为可用的情况下,该核间通信任务将队列中的被丢弃的报文的信息传输给应用处理器中的核间通信任务,以使得应用处理器的TCP/IP协议栈获知这些被丢弃的报文的信息。
在该终端的数据连接不可用的情况下,该核间通信任务的队列启动该队列的定时器,在该定时器超时的情况下,再次根据3GPP协议栈提供的信息确定出经过这段定时器计时的时间后,再次确定该终端的数据连接是否可用,若该数据连接为可用,则该核间通信任务将队列中的被丢弃的报文的信息传输给应用处理器中的核间通信任务,并清零定时器,若是该数据连接仍然为不可用,则清零该定时器,等待下次定时器超时再判断。
而应用处理器解析基带处理器传输的被丢弃的待发送报文的信息,以得到被丢弃报文的序列号和该被丢弃报文所在的TCP连接的源端口号。
应用处理器使用源端口号在Linux网络协议栈中找到对应的TCP连接,并使用该被丢弃的待发送报文的序列号与该TCP连接的发送队列中报文的序列号进行比对,以找到被丢弃的待发送报文的副本,通过TCP/IP协议栈向基带处理器发送该被丢弃的待发送报文的副本。
另一方面,如果在应用处理器发送该被丢弃的待发送报文的副本的过程中已经触发了TCP的拥塞控制,例如,重传了一待发送报文的副本后,该终端的cwnd减小到1,应用处理器将当前的cwnd值置为该终端的cwnd初始值(TCP_INIT_CWND)与cwnd减小为1之前的值中的较小值。这样就可以消除不必要的对拥塞窗口的减小,从而消除超时重传的影响,提升终端的吞吐率,使得更多的报文能及时发出,从而降低因丢包重传带来的时延。
基带处理器收到应用处理器传输的待发送报文的副本,将该副本通过射频电路例如天线向发送网络设备发送。
这样,基带处理器在丢弃待发送的报文后,可以向应用处理器上报被该基带处理器丢弃的待发送报文的信息,使得应用处理器能够根据该上报的信息,重新向基带处理器下发被该基带处理器丢弃的报文,而无需等待到该报文的超时计时器超时而仍未接收到对端的确认报文,才确定该报文被丢弃而重新向基带处理器发送报文,可以降低终端对基带处理器丢弃的报文的重传的时延,一定程度上改善终端的重传时延,使得终端与网络的数据传输更加流畅。由于无线蜂窝网络的状态经常发生变化,在基带处理器将待发送的报文丢弃的情况时常发生。
以下从测试结果对上述实施例中的方法的效果进行说明。使用上述实施例中的方法对终端的重传机制进行改进,能够较为明显地减小重传的时延,增加上行传输的数据的吞吐率。为了体现蜂窝网络在弱场和高速移动的场景,选择在广州到深圳的高铁上,使用中国联通的无线蜂窝网络进行测试。
对传输时延,采用测试工具iPerf,采样方式为计算3GPP协议栈以及用于与应用处理器传输数据包的任务主动上报丢包的报文传输时延,源端为手机对端为服务器,优化前,平均传输时延约为75s左右;优化后,平均传输时延约为45s左右。丢包重传平均传输时延优化40%。
对上行传输的吞吐率(上行传输方向为手机终端到服务器),采用测试工具iPerf,采样方式为计算每轮iPerf测试统计的平均吞吐率(每轮100s或200s,服务器侧统计),优化前,平均吞吐率1.5Mbps左右;优化后,平均吞吐率3.3Mbps左右,平均吞吐率提升约2.2倍。
本发明实施例还提供一种发送报文装置600,其结构示意图如图6所示。该装置括基带处理器、应用处理器和发送器;所述基带处理器用于向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;所述应用处理器用于根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;所述基带处理器还用于通过所述发送器向网络设备发送所述第二报文。
在一种实现方式下,在向所述应用处理器上报第一报文的信息的方面,所述基带处理器用于在所述装置的数据连接可用的情况下,向所述应用处理器上报所述第一报文的信息。
结合本实施例上述各种实现方式,在向所述应用处理器上报第一报文的信息方面,所述基带处理器用于在所述装置的数据连接不可用的情况下,缓存所述第一报文的信息;以及在所述装置的数据连接由不可用切换为可用时,向所述应用处理器上报所述第一报文的信息。
结合本实施例上述各种实现方式,所述应用处理器还用于,在根据所述第一报文的信息向所述基带处理器传输第二报文后,增加拥塞窗口。
结合本实施例上述各种实现方式,所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,在根据所述第一报文的信息向所述基带处理器传输第二报文的方面,所述应用处理器用于根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
需要说明的是,关于本实施例涉及的具体的对名词、步骤的解释以及相关的有益效果,请参照前文的记载,此处不再赘述。
可以理解的是,上述各方法实施例所描述装置可以由使用蜂窝网络提供的数据服务,传输或者执行数据业务的任何设备来实现。本发明还提供一种终端,以实现上述各个方法实施例中的方法。该终端的结构示意图,如图7所示,该终端300包括:处理电路302,以及与其连接的通信接口304和存储介质320。可见图6实施例中的发送器相当于通信接口304中的发送电路。
处理电路302用于处理数据,控制数据访问和存储,发出命令以及控制其它设备执行操作。处理电路302可以被实现为一个或多个处理器,一个或多个控制器和/或可用于执行程序等的其它结构。处理电路302具体可以包括通用处理器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑组件中的至少一种。通用处理器可以包括微处理器,以及任何常规的处理器,控制器,微控制器,或状态机。处理电路302也可以实现为计算组件,例如DSP和微处理器的组合。
本发明实施例中,处理电路包括应用处理器309和基带处理器310。
存储介质306可以包括计算机可读存储介质,如磁存储设备(例如,硬盘,软盘,磁条),光存储介质(例如,数字多功能盘(DVD)),智能卡,闪存设备,随机存取存储器(RAM),只读存储器(ROM),可编程ROM(PROM),可擦除PROM(EPROM),寄存器,以及它们的任意组合。存储介质306可以耦合到处理电路302以使得处理电路302可读取信息和将信息写入到存储介质306。具体地,存储介质306可以集成到处理电路302,或者存储介质306和处理电路302可以是分开的。
通信接口304可包括电路和/或程序以实现用户设备300与一个或多个无线网络设备(例如,基站、服务器等)之间的双向通信。通信接口304可以耦合到一个或多个天线(图7中未示出),并包括至少一个接收电路316和/或至少一个发射电路318。
在一个实施例中,存储介质306中存储有协议栈程序320,处理电路302执行协议栈程序320以实现协议栈的功能,协议栈与应用处理器309和基带处理器310的关系请参照图3的相关描述。
协议栈用于根据TCP/IP协议规范将应用程序的数据封装成特定数据格式的多个报文,并通过发射电路318发送给应用服务器;同时,协议栈还将接收电路316接收到的报文进行解封装,最终得到应用程序的数据。协议栈对报文封装和解封装的过程如图8所示。可以看出,报文封装的过程实质上是协议栈对报文添加报头和/或帧尾的过程,而报文解封装的过程实质上是对报文去除报头和/或帧尾的过程。协议栈可以对通信接口304接收的数据进行解码和/或解封装处理后,传递给上层应用程序,也可以对应用程序的数据进行封装处理,然后通过通信接口发送给其它设备。
在一个实施例中,协议栈可以包括:物理层、数据链路层、网络层、传输层和应用层,用于实现各个层的协议。例如,物理层用于定义物理设备接口特性、传输介质类型、传输速率、传输模式等,以及实现物理层的信号处理。同样,数据链路层用于实现数据链路层的功能,比如负责分发网络层生成的信令,以及处理由物理层产生的信息。数据链路层可包括一个或多个子模块,例如媒体接入控制(Media Access Control,MAC)层模块,无线链路控制(RLC)层模块和逻辑链路控制(LLC)层模块,分别用于实现MAC层、RLC层和LLC层的功能。例如,MAC层模块用于利用物理层提供的服务传输上层协议数据,以及管理上层与空口之间的数据接入;RLC层模块用于数据分段和重组;LLC层模块用于提供流量和顺序控制,以及差错控制功能。进一步,网络层用于实现逻辑编址、路由选择等功能,比如。传输层用于实现端口编址、分段重组、连接控制、流量控制和差错控制等功能。应用层用于提供接口给上层应用程序。
根据本发明实施例的一个或多个方面,处理电路302被适配为执行存储在与存储介质306中的协议栈程序320,以实现协议栈的功能。其中应用处理器309和基带处理器310中的协议栈具体实现了上述方法实施例中的部分或全部步骤。
本发明实施例还提供一种芯片,所述芯片通过射频器件与网络设备建立数据连接,所述芯片包括应用处理器和基带处理器。所述基带处理器用于向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;所述应用处理器用于根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;所述基带处理器还用于通过所述射频器件向网络设备发送所述第二报文。
也就是说,本发明实施例记载的芯片,其实就是图7所示的终端中装设和使用的处理电路302。
在一种实现方式中,在向所述应用处理器上报第一报文的信息的方面,所述基带处理器用于在所述芯片的数据连接可用的情况下,向所述应用处理器上报所述第一报文的信息。
结合本发明实施例的上述实现方式,在另一种实现方式中在向所述应用处理器上报第一报文的信息方面,所述基带处理器用于在所述芯片的数据连接不可用的情况下,缓存所述第一报文的信息;以及在所述芯片的数据连接由不可用切换为可用时,向所述应用处理器上报所述第一报文的信息。
结合本发明实施例的上述实现方式,在另一种实现方式中所述应用处理器还用于,在根据所述第一报文的信息向所述基带处理器传输第二报文后,增加拥塞窗口。
结合本发明实施例的上述实现方式,在另一种实现方式中所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,在根据所述第一报文的信息向所述基带处理器传输第二报文的方面,所述应用处理器用于根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
关于本实施例记载的芯片的进一步具体的细节,请参照图8所示的终端的实施例和前文中对芯片能够实现的方法的记载,此处不再赘述。
本发明实施例还提供一种存储介质,该介质用于保存实现本发明描述的发送报文的方法的代码。
以上对本发明实施例所提供的发送报文的方法、及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (23)
1.一种发送报文的方法,所述方法用于终端,所述终端包括基带处理器、应用处理器和通信接口,其特征在于,所述方法包括:
所述基带处理器向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;
所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;
所述基带处理器通过所述通信接口向网络设备发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述基带处理器根据丢弃报文的原因,确定所述第一报文,所述丢弃报文的原因包括未建立无线资源控制RRC连接、所述基带处理器接收到演进无线接入网无线接入承载管理消息ERABM、所述终端在不同的无线蜂窝网络之间切换、分组数据汇聚协议PDCP重配置、无线链路层RLC重配置、无线链路层控制RLC重建、PDCP队列满和业务中断中的至少一种,所述第一报文为缓存队列中的数据包、PDCP队列中待发送的报文、加入所述缓存队列失败的报文或者加入所述PDCP队列失败的报文。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述基带处理器确定所述终端的数据连接为可用或者不可用,其中,所述终端的数据连接为不可用的情况包括检测到以下任意一个事件:终端处于掉网状态,终端未正常驻留在任何服务小区,终端数据业务开关处于关闭状态,电路域回落CSFB到2G,以及终端使用2G网络通话中。
4.根据权利要求1或2所述的方法,其特征在于,所述基带处理器向所述应用处理器上报第一报文的信息,包括:
在所述终端的数据连接可用的情况下,所述基带处理器向所述应用处理器上报所述第一报文的信息。
5.根据权利要求1或2所述的方法,其特征在于,所述基带处理器向所述应用处理器上报第一报文的信息,包括:
在所述终端的数据连接不可用的情况下,所述基带处理器缓存所述第一报文的信息,在所述终端的数据连接由不可用切换为可用时,所述基带处理器向所述应用处理器上报所述第一报文的信息。
6.根据权利要求1或2所述的方法,其特征在于,在所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文后,所述方法还包括:
所述应用处理器增加拥塞窗口。
7.根据权利要求1或2所述的方法,其特征在于,所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,
所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文,包括:
所述应用处理器根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
8.一种发送报文的装置,其特征在于,所述装置包括基带处理器、应用处理器和发送器;
所述基带处理器用于向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;
所述应用处理器用于根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;
所述基带处理器还用于通过所述发送器向网络设备发送所述第二报文。
9.根据权利要求8所述的装置,其特征在于,所述基带处理器还用于根据丢弃报文的原因,确定所述第一报文,所述丢弃报文的原因包括未建立无线资源控制RRC连接、所述基带处理器接收到演进无线接入网无线接入承载管理消息ERABM、所述装置在不同的无线蜂窝网络之间切换、分组数据汇聚协议PDCP重配置、无线链路层RLC重配置、无线链路层控制RLC重建、PDCP队列满和业务中断中的至少一种,所述第一报文为缓存队列中的数据包、PDCP队列中待发送的报文、加入所述缓存队列失败的报文或者加入所述PDCP队列失败的报文。
10.根据权利要求8或9所述的装置,其特征在于,所述基带处理器还用于确定所述装置的数据连接为可用或者不可用,其中,所述装置的数据连接为不可用的情况包括检测到以下任意一个事件:装置处于掉网状态,装置未正常驻留在任何服务小区,装置的数据业务开关处于关闭状态,电路域回落CSFB到2G,以及装置使用2G网络通话中。
11.根据权利要求8或9所述的装置,其特征在于,在向所述应用处理器上报第一报文的信息的方面,
所述基带处理器用于在所述装置的数据连接可用的情况下,向所述应用处理器上报所述第一报文的信息。
12.根据权利要求8或9所述的装置,其特征在于,在向所述应用处理器上报第一报文的信息方面,
所述基带处理器用于在所述装置的数据连接不可用的情况下,缓存所述第一报文的信息;以及在所述装置的数据连接由不可用切换为可用时,向所述应用处理器上报所述第一报文的信息。
13.根据权利要求8或9所述的装置,其特征在于,所述应用处理器还用于,在根据所述第一报文的信息向所述基带处理器传输第二报文后,增加拥塞窗口。
14.根据权利要求8或9所述的装置,其特征在于,所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,在根据所述第一报文的信息向所述基带处理器传输第二报文的方面,所述应用处理器用于根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
15.一种芯片,所述芯片通过射频器件与网络设备建立数据连接,所述芯片包括应用处理器和基带处理器,其特征在于,所述基带处理器用于向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;所述应用处理器用于根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;所述基带处理器还用于通过所述射频器件向网络设备发送所述第二报文。
16.根据权利要求15所述的芯片,其特征在于,所述基带处理器还用于根据丢弃报文的原因,确定所述第一报文,所述丢弃报文的原因包括未建立无线资源控制RRC连接、所述基带处理器接收到演进无线接入网无线接入承载管理消息ERABM、所述芯片所在的终端在不同的无线蜂窝网络之间切换、分组数据汇聚协议PDCP重配置、无线链路层RLC重配置、无线链路层控制RLC重建、PDCP队列满和业务中断中的至少一种,所述第一报文为缓存队列中的数据包、PDCP队列中待发送的报文、加入所述缓存队列失败的报文或者加入所述PDCP队列失败的报文。
17.根据权利要求15或16所述的芯片,其特征在于,所述基带处理器还用于确定所述芯片所在的终端的数据连接为可用或者不可用,其中,所述芯片所在的终端的数据连接为不可用的情况包括检测到以下任意一个事件:终端处于掉网状态,终端未正常驻留在任何服务小区,终端数据业务开关处于关闭状态,电路域回落CSFB到2G,以及终端使用2G网络通话中。
18.根据权利要求15或16所述的芯片,其特征在于,在向所述应用处理器上报第一报文的信息的方面,所述基带处理器用于在所述芯片的数据连接可用的情况下,向所述应用处理器上报所述第一报文的信息。
19.根据权利要求15或16所述的芯片,其特征在于,在向所述应用处理器上报第一报文的信息方面,所述基带处理器用于在所述芯片的数据连接不可用的情况下,缓存所述第一报文的信息;以及在所述芯片的数据连接由不可用切换为可用时,向所述应用处理器上报所述第一报文的信息。
20.根据权利要求15或16所述的芯片,其特征在于,所述应用处理器还用于,在根据所述第一报文的信息向所述基带处理器传输第二报文后,增加拥塞窗口。
21.根据权利要求15或16所述的芯片,其特征在于,所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,在根据所述第一报文的信息向所述基带处理器传输第二报文的方面,所述应用处理器用于根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
22.一种终端,所述终端包括应用处理器、基带处理器、存储器和通信接口,所述应用处理器、基带处理器、通信接口和存储器连接,其特征在于所述应用处理器、基带处理器和通信接口通过调用所述存储器中存储的指令,执行权利要求1到7任一权利要求所述的方法。
23.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1到7任一权利要求所述的方法。
Priority Applications (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011545975.4A CN112713970B (zh) | 2016-11-02 | 2016-11-02 | 一种发送报文的方法、装置、芯片及终端 |
CN201610946705.1A CN108023683B (zh) | 2016-11-02 | 2016-11-02 | 一种发送报文的方法、装置、芯片及终端 |
BR112019008916A BR112019008916A2 (pt) | 2016-11-02 | 2017-11-02 | método e aparelho de envio de pacote, chip e terminal |
JP2019522717A JP6924830B2 (ja) | 2016-11-02 | 2017-11-02 | パケット送信方法および装置、チップ、ならびに端末 |
KR1020217003380A KR102350444B1 (ko) | 2016-11-02 | 2017-11-02 | 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 |
KR1020197014851A KR102397347B1 (ko) | 2016-11-02 | 2017-11-02 | 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 |
CA3042605A CA3042605C (en) | 2016-11-02 | 2017-11-02 | Packet sending method and apparatus, chip, and terminal |
PCT/CN2017/109133 WO2018082615A1 (zh) | 2016-11-02 | 2017-11-02 | 一种发送报文的方法、装置、芯片及终端 |
RU2019116616A RU2752652C2 (ru) | 2016-11-02 | 2017-11-02 | Способ и устройство передачи пакетов, микросхема и оконечное устройство |
EP17868269.6A EP3522417A4 (en) | 2016-11-02 | 2017-11-02 | METHOD AND DEVICE FOR SENDING MESSAGES, CHIP AND DEVICE |
US16/398,078 US10771595B2 (en) | 2016-11-02 | 2019-04-29 | Packet sending method and apparatus, chip, and terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610946705.1A CN108023683B (zh) | 2016-11-02 | 2016-11-02 | 一种发送报文的方法、装置、芯片及终端 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011545975.4A Division CN112713970B (zh) | 2016-11-02 | 2016-11-02 | 一种发送报文的方法、装置、芯片及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108023683A CN108023683A (zh) | 2018-05-11 |
CN108023683B true CN108023683B (zh) | 2020-12-25 |
Family
ID=62070043
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011545975.4A Active CN112713970B (zh) | 2016-11-02 | 2016-11-02 | 一种发送报文的方法、装置、芯片及终端 |
CN201610946705.1A Active CN108023683B (zh) | 2016-11-02 | 2016-11-02 | 一种发送报文的方法、装置、芯片及终端 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011545975.4A Active CN112713970B (zh) | 2016-11-02 | 2016-11-02 | 一种发送报文的方法、装置、芯片及终端 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10771595B2 (zh) |
EP (1) | EP3522417A4 (zh) |
JP (1) | JP6924830B2 (zh) |
KR (2) | KR102350444B1 (zh) |
CN (2) | CN112713970B (zh) |
BR (1) | BR112019008916A2 (zh) |
CA (1) | CA3042605C (zh) |
RU (1) | RU2752652C2 (zh) |
WO (1) | WO2018082615A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011834A (zh) * | 2016-10-28 | 2018-05-08 | 华为技术有限公司 | Tcp拥塞窗口的确定方法和装置 |
CN112713970B (zh) * | 2016-11-02 | 2022-05-13 | 华为技术有限公司 | 一种发送报文的方法、装置、芯片及终端 |
CN108289007B (zh) | 2017-01-10 | 2022-04-15 | 中兴通讯股份有限公司 | 数据包传输方法及装置 |
CN108667560B (zh) | 2017-03-31 | 2020-12-04 | 华为技术有限公司 | 一种调整终端发送数据的速率的方法及装置 |
US10931587B2 (en) * | 2017-12-08 | 2021-02-23 | Reniac, Inc. | Systems and methods for congestion control in a network |
CN109302575A (zh) * | 2018-08-21 | 2019-02-01 | 广州市保伦电子有限公司 | 一种基于IOT模块的wifi会议系统 |
CN109743142A (zh) * | 2018-09-30 | 2019-05-10 | 比亚迪股份有限公司 | 消息通信方法及装置 |
CN110049050B (zh) * | 2019-04-22 | 2021-03-19 | 中国科学院计算机网络信息中心 | 一种通信的方法及装置 |
US10880211B2 (en) | 2019-05-06 | 2020-12-29 | Seth Gregory Friedman | Transaction encoding and verification by way of data-link layer fields |
CN110391956B (zh) * | 2019-07-23 | 2021-08-13 | 中国工商银行股份有限公司 | 网络服务进程状态的识别监控方法及装置 |
CN112311725B (zh) * | 2019-07-26 | 2022-01-11 | 华为技术有限公司 | 一种数据处理方法、装置及终端 |
US10868707B1 (en) | 2019-09-16 | 2020-12-15 | Liquid-Markets-Holdings, Incorporated | Zero-latency message processing with validity checks |
WO2021199161A1 (ja) * | 2020-03-30 | 2021-10-07 | 日本電信電話株式会社 | 監視装置、通信システム、通信制御方法、及び監視プログラム |
US20230120832A1 (en) * | 2020-03-30 | 2023-04-20 | Nippon Telegraph And Telephone Corporation | Monitoring device, communication system, communication control method, and monitoring program |
WO2021252423A1 (en) | 2020-06-08 | 2021-12-16 | Liquid-Markets-Holdings, Incorporated | Hardware-based transaction exchange |
CN114765690B (zh) * | 2020-12-31 | 2023-09-12 | 华为技术有限公司 | 数据包传输方法、通信装置及存储介质 |
CN114267670A (zh) * | 2021-12-22 | 2022-04-01 | 北京智联安科技有限公司 | 一种芯片结构及其工作方法 |
CN114826888B (zh) * | 2022-04-27 | 2024-09-24 | 济南浪潮数据技术有限公司 | 一种消息发送方法、装置、设备及存储介质 |
CN115085890B (zh) * | 2022-06-23 | 2024-06-25 | 云合智网(上海)技术有限公司 | 数据中心网络芯片优化tcp rto重传等待时间的方法 |
CN117856985B (zh) * | 2024-03-08 | 2024-08-23 | 珠海星云智联科技有限公司 | 用于报文重传的方法、计算机设备、介质及程序 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052006A (zh) * | 2007-05-14 | 2007-10-10 | 华为技术有限公司 | 报文上送的方法及实现该方法的接口板及路由器 |
CN101232446A (zh) * | 2008-02-01 | 2008-07-30 | 华为技术有限公司 | 报文处理方法及装置 |
WO2010054388A2 (en) * | 2008-11-10 | 2010-05-14 | Qualcomm Incorporated | Application-configured, content-based retransmission scheme for dropped media access control frames |
CN101860435A (zh) * | 2009-04-13 | 2010-10-13 | 中国移动通信集团公司 | 报文发送、接收以及确定网络节点的方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1200368C (zh) | 2000-08-18 | 2005-05-04 | 清华大学 | 一种将tcp用于不可靠传输网络的局域重传方法 |
SE0103853D0 (sv) * | 2001-11-15 | 2001-11-15 | Ericsson Telefon Ab L M | Method and system of retransmission |
US7551561B2 (en) * | 2003-05-15 | 2009-06-23 | Panasonic Corporation | Packet communication terminal |
CN1520104B (zh) * | 2003-09-02 | 2010-04-28 | 中国科学院计算技术研究所 | 提高tcp在异构网络中传输性能的方法 |
JP4580770B2 (ja) * | 2005-02-01 | 2010-11-17 | 株式会社エヌ・ティ・ティ・ドコモ | 通信システム及び受信装置 |
US20090019460A1 (en) * | 2007-05-03 | 2009-01-15 | Qualcomm Incorporated | Application programming interface (api) for handling errors in packets received by a wireless communications receiver |
US20090168723A1 (en) * | 2007-11-27 | 2009-07-02 | Qualcomm Incorporated | Method and apparatus for handling out-of-order packets during handover in a wireless communication system |
US8472379B2 (en) | 2007-12-20 | 2013-06-25 | Ntt Docomo, Inc. | Mobile station, radio base station, communication control method, and mobile communication system |
US20120110115A1 (en) * | 2010-04-30 | 2012-05-03 | Qualcomm Incorporated | Exchanging Data Associated With A Communication Session Within A Communications System |
US8780965B2 (en) | 2010-07-30 | 2014-07-15 | Qualcomm Incorporated | Coordinating data calls on a mobile device with multiple modems |
WO2012095904A1 (en) | 2011-01-12 | 2012-07-19 | Nec Corporation | Communication device, packet retransmission control method and packet retransmission control program |
WO2012132283A1 (ja) * | 2011-03-28 | 2012-10-04 | 日本電気株式会社 | 通信装置およびその通信制御方法 |
CN102833783B (zh) * | 2012-07-02 | 2015-04-08 | 北京邮电大学 | 一种优化无线环境下tcp协议的方法 |
CN103001885B (zh) * | 2012-12-25 | 2015-08-26 | 中国科学院深圳先进技术研究院 | 数据报文传输方法和系统 |
CN103986548B (zh) | 2013-02-07 | 2018-02-23 | 华为技术有限公司 | 一种确定丢包原因的方法和终端 |
EP2979487B1 (en) * | 2013-03-29 | 2018-11-28 | VID SCALE, Inc. | Early packet loss detection and feedback |
US9510242B2 (en) * | 2013-05-17 | 2016-11-29 | Nvidia Corporation | Reducing superfluous traffic in a network |
WO2015032048A1 (zh) * | 2013-09-05 | 2015-03-12 | 展讯通信(上海)有限公司 | 一种移动终端内部通信方法 |
CN112713970B (zh) * | 2016-11-02 | 2022-05-13 | 华为技术有限公司 | 一种发送报文的方法、装置、芯片及终端 |
-
2016
- 2016-11-02 CN CN202011545975.4A patent/CN112713970B/zh active Active
- 2016-11-02 CN CN201610946705.1A patent/CN108023683B/zh active Active
-
2017
- 2017-11-02 CA CA3042605A patent/CA3042605C/en active Active
- 2017-11-02 KR KR1020217003380A patent/KR102350444B1/ko active Active
- 2017-11-02 JP JP2019522717A patent/JP6924830B2/ja active Active
- 2017-11-02 EP EP17868269.6A patent/EP3522417A4/en active Pending
- 2017-11-02 WO PCT/CN2017/109133 patent/WO2018082615A1/zh unknown
- 2017-11-02 RU RU2019116616A patent/RU2752652C2/ru active
- 2017-11-02 KR KR1020197014851A patent/KR102397347B1/ko active Active
- 2017-11-02 BR BR112019008916A patent/BR112019008916A2/pt unknown
-
2019
- 2019-04-29 US US16/398,078 patent/US10771595B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052006A (zh) * | 2007-05-14 | 2007-10-10 | 华为技术有限公司 | 报文上送的方法及实现该方法的接口板及路由器 |
CN101232446A (zh) * | 2008-02-01 | 2008-07-30 | 华为技术有限公司 | 报文处理方法及装置 |
WO2010054388A2 (en) * | 2008-11-10 | 2010-05-14 | Qualcomm Incorporated | Application-configured, content-based retransmission scheme for dropped media access control frames |
CN101860435A (zh) * | 2009-04-13 | 2010-10-13 | 中国移动通信集团公司 | 报文发送、接收以及确定网络节点的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20210016084A (ko) | 2021-02-10 |
RU2019116616A3 (zh) | 2021-02-01 |
EP3522417A1 (en) | 2019-08-07 |
KR102350444B1 (ko) | 2022-01-14 |
EP3522417A4 (en) | 2019-10-16 |
JP6924830B2 (ja) | 2021-08-25 |
US10771595B2 (en) | 2020-09-08 |
JP2020502873A (ja) | 2020-01-23 |
CN112713970A (zh) | 2021-04-27 |
KR102397347B1 (ko) | 2022-05-13 |
RU2752652C2 (ru) | 2021-07-29 |
BR112019008916A2 (pt) | 2019-12-24 |
KR20190073479A (ko) | 2019-06-26 |
CA3042605A1 (en) | 2018-05-11 |
CA3042605C (en) | 2023-07-18 |
CN112713970B (zh) | 2022-05-13 |
WO2018082615A1 (zh) | 2018-05-11 |
RU2019116616A (ru) | 2020-12-03 |
US20190268445A1 (en) | 2019-08-29 |
CN108023683A (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108023683B (zh) | 一种发送报文的方法、装置、芯片及终端 | |
US11153041B2 (en) | Packet transmission method and user equipment | |
US10924421B2 (en) | Packet transmission method, terminal, network device, and communications system | |
US11044630B2 (en) | Method and apparatus for adjusting data sending rate of terminal | |
WO2016154831A1 (zh) | 一种实现传输控制协议tcp传输的方法及装置 | |
US20240381161A1 (en) | Radio access retransmission control | |
WO2024160341A1 (en) | Fast recovery from handover with out-of-order delivery |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |