WO2018082615A1 - 一种发送报文的方法、装置、芯片及终端 - Google Patents

一种发送报文的方法、装置、芯片及终端 Download PDF

Info

Publication number
WO2018082615A1
WO2018082615A1 PCT/CN2017/109133 CN2017109133W WO2018082615A1 WO 2018082615 A1 WO2018082615 A1 WO 2018082615A1 CN 2017109133 W CN2017109133 W CN 2017109133W WO 2018082615 A1 WO2018082615 A1 WO 2018082615A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
information
baseband processor
processor
terminal
Prior art date
Application number
PCT/CN2017/109133
Other languages
English (en)
French (fr)
Inventor
张钟
邓宇
杨能
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CA3042605A priority Critical patent/CA3042605C/en
Priority to KR1020197014851A priority patent/KR102397347B1/ko
Priority to JP2019522717A priority patent/JP6924830B2/ja
Priority to EP17868269.6A priority patent/EP3522417A4/en
Priority to BR112019008916A priority patent/BR112019008916A2/pt
Priority to RU2019116616A priority patent/RU2752652C2/ru
Priority to KR1020217003380A priority patent/KR102350444B1/ko
Publication of WO2018082615A1 publication Critical patent/WO2018082615A1/zh
Priority to US16/398,078 priority patent/US10771595B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/189Transmission or retransmission of more than one copy of a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1896ARQ related signaling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0205Traffic management, e.g. flow control or congestion control at the air interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0273Traffic 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0289Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms

Definitions

  • the present invention relates to the field of communications, and more particularly to a method, an apparatus, a chip, and a terminal for transmitting a message.
  • TCP/IP Transmission Control Protocol//Internet Protocol transmission
  • Control/Internet Protocol is a connection-oriented, reliable, byte stream-based transport layer communication protocol.
  • the terminal In the process of using the TCP/IP protocol to access the network, the terminal often encounters the case that the packet is discarded (also referred to as packet loss).
  • the current processing method is often that the sender retransmits the data, and the current processing.
  • the method relies on the feedback of the receiving end to determine whether a packet loss occurs. For example, if the sending end does not receive a feedback message, such as an ACK, sent by the receiving end within a specified time period, it determines that a packet loss occurs, and then retransmits the data including the discarded packet. Packets, this solution makes the response delay of the terminal to packet loss larger, and the data transmission time of the terminal and the network network device is longer, and the quality of real-time communication is greatly affected.
  • a feedback message such as an ACK
  • an embodiment of the present invention provides a method and an apparatus for transmitting a message.
  • the chip and the terminal can reduce the delay of the retransmission of the to-be-sent packet discarded by the terminal to the baseband processor, and improve the response delay of the terminal to the packet loss to a certain extent, so that the data transmission between the terminal and the network is smoother.
  • an embodiment of the present invention provides a method for sending a message, where the method is used for a terminal, where the terminal includes a baseband processor, an application processor, and a communication interface, where the method includes: The baseband processor reports the information of the first packet to the application processor, where the first packet is a to-be-sent packet discarded by the baseband processor, and the information of the first packet includes the first packet An identifier of the packet and an identifier of the TCP connection to which the first packet belongs; the application processor transmits a second packet to the baseband processor according to the information of the first packet, where the second packet is The same as the first packet; the baseband processor sends the second packet to the network device by using the communication interface.
  • the to-be-sent packet discarded by the baseband processor can be understood as being sent by the application processor to the baseband processor without successfully passing the communication interface by the baseband processor.
  • the network device may be a device such as a base station or a server.
  • the second message can be understood as a copy of the first message.
  • the baseband processor can report the information of the to-be-sent packet discarded by the baseband processor to the application processor, so that the application processor can re-route the baseband processor according to the reported information.
  • Sending a copy of the packet discarded by the baseband processor without waiting for the timeout timer of the packet to expire but not receiving the acknowledgement packet from the peer end, determining that the packet is discarded and re-routed to the baseband processor Sending a packet can reduce the delay of the retransmission of the to-be-sent packet discarded by the baseband processor, and improve the response delay of the terminal to the packet loss to a certain extent, so that the data transmission between the terminal and the network is smoother. Since the state of the wireless cellular network often changes, the case where the baseband processor discards the message to be transmitted often occurs.
  • the baseband processor reports the information of the first packet to the application processor, where: when the data connection of the terminal is available, The baseband processor is directed to the response The processor reports the information of the first packet.
  • a data connection is a connection used to carry data traffic.
  • the data connection of the terminal can be understood as a data connection between the terminal and the base station.
  • the baseband processor buffers the first packet if the data connection of the terminal is unavailable.
  • the information when the data connection of the terminal is switched from unavailable to available, the baseband processor reports the information of the first packet to the application processor.
  • the terminal may determine that the data connection of the terminal is available or unavailable by, for example, periodic detection, event triggering, or instruction triggering.
  • the data connection of the terminal is unavailable: the terminal data connection is unavailable, the terminal is in the dropped state, or the terminal does not normally reside in any serving cell, or the terminal data service switch is in the closed state, or CSFB ( Circuit Switched Fallback, the circuit domain falls back to 2G, and the terminal is in the 2G call scenario.
  • CSFB Circuit Switched Fallback
  • the baseband processor reports the information of the first packet to the application processor, indicating that the baseband processor is
  • the information reported by the application processor to report the first message is that the data connection of the terminal is switched from unavailable to available, and the time required for reading the instruction, performing related operations, and the like is not required. That is, the baseband processor finishes processing to the application after a period of time (eg, a few milliseconds) after the data connection of the terminal is switched from unavailable to available. The action of reporting the information of the first message.
  • the baseband processor can report the discarded packet information to be sent to the application processor only when the data is connected, which can improve the efficiency of retransmission.
  • the discarded packet information to be sent is reported to the application processor only when the data connection is available, which can reduce the power consumption of the terminal.
  • the method further includes: The application processor increases a congestion window.
  • the congestion window may be reduced. This can eliminate the impact of timeout retransmission, ensure the number of packets sent by the terminal, and improve the transmission throughput of the terminal.
  • the identifier of the first packet is a sequence number of the first packet
  • the identifier of the TCP connection to which the first packet belongs is The source port number of the TCP connection where the first packet is located
  • the application processor transmitting the second packet to the baseband processor according to the information of the first packet, where the application processor is configured according to the source port No. transmitting the second message that is the same as the sequence number of the first message to the baseband processor.
  • an embodiment of the present invention provides an apparatus for transmitting a message, where the apparatus includes a baseband processor, an application processor, and a transmitter, where the baseband processor is configured to report the first report to the application processor.
  • the information of the text, the first packet is a to-be-sent packet that is discarded by the baseband processor, and the information of the first packet includes an identifier of the first packet and a first packet to which the first packet belongs.
  • An identifier of the TCP connection where the application processor is configured to transmit a second packet to the baseband processor according to the information of the first packet, where the second packet is the same as the first packet;
  • the processor is further configured to send the second packet to the network device by using the transmitter.
  • the second aspect is the device corresponding to the first aspect, various implementations, descriptions, and technical effects thereof are referred to the description of the first aspect.
  • a chip in a third aspect, is provided, the chip establishing a data connection with a network device by using a radio frequency device, the chip comprising an application processor and a baseband processor, wherein the baseband processor is configured to be used by the application processor Reported Information of a message, the first message is a to-be-sent packet discarded by the baseband processor, and the information of the first packet includes an identifier of the first packet and the first packet An identifier of the associated TCP connection; the application processor is configured to transmit a second packet to the baseband processor according to the information of the first packet, where the second packet is the same as the first packet; The baseband processor is further configured to send the second packet to the network device by using the radio frequency device.
  • the third aspect is a specific product form of the second aspect.
  • descriptions, and technical effects of the third aspect refer to the second aspect, and details are not described herein again.
  • a terminal comprising an application processor, a baseband processor, a memory, and a communication interface, the application processor, a baseband processor, a communication interface, and a memory connection, the application processor, and baseband processing
  • the device and communication interface perform the method of any of the various implementations of the first aspect by invoking instructions stored in the memory.
  • a storage medium for storing a method that can implement any of the various implementations of the first aspect.
  • FIG. 1 is a schematic diagram of a system networking according to an embodiment of the present invention
  • FIG. 2 is a schematic structural diagram of a terminal hardware according to an embodiment of the present invention.
  • FIG. 3 is a schematic structural diagram of a terminal software according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a format of a TCP packet according to an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of a method for sending a packet according to an embodiment of the present disclosure
  • FIG. 6 is a schematic diagram of an apparatus for sending a message according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic diagram of a terminal according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic diagram of a packaging process for transmitting a message between a transmitting end and a receiving end according to an embodiment of the present invention.
  • Congestion window refers to the maximum number of data packets that can be sent in an RTT time period when the data source is in the TCP data transmission.
  • the backoff of the congestion window means that the source end of the data reduces the congestion window when the network is congested.
  • the business of mobile communication is divided into data service (Data Service) and voice service.
  • the data service includes services other than the voice service of the CS (Circuit Switched) domain.
  • a data connection can be understood as a data connection between a terminal and a base station, and represents a connection between the terminal and the base station for processing data services.
  • the data connection between the terminal and the base station can be
  • the terminal uses the cellular network to process data services, that is, the terminal can receive a signal from a base station in the cellular network, and the terminal can use the function of data or instructions for interacting with the base station for data services.
  • the data connection between the terminal and the base station is unavailable, indicating that the terminal cannot use the cellular network to process data services, that is, the terminal cannot receive the signal of the cellular network, or the terminal cannot simultaneously handle the voice service and cannot simultaneously cooperate with the base station in the cellular network.
  • Data or instructions for interactive data services When the terminal data connection is not available, the terminal is in the offline state, or the terminal does not normally reside in any serving cell, or the terminal data service switch is in the closed state, or the CSFB (Circuit Switched Fallback) is 2G, and the terminal is in a 2G call scenario.
  • CSFB Circuit Switched Fallback
  • the packets to be sent by the terminal to the base station are generally TCP packets obtained by the application running on the terminal and sent by the application to the base station.
  • the data in the message to be sent may be generated due to certain actions or actions of the user.
  • the application is a browser
  • the data of the link or the account or password input by the user is the data that the browser needs to send to the base station.
  • the data in the to-be-sent message may also be generated by the application to perform a certain task during the running process, for example, the application is a browser, and in order to periodically refresh the news window in the homepage, the request data that needs to be sent to the base station is generated.
  • the data is encapsulated by the protocol stack, and the obtained packet is a packet to be sent before the terminal transmits the radio device (such as an antenna) through the terminal.
  • the terminal can generate or determine a message to be sent.
  • the manner in which the present invention sends a message is not limited.
  • the same representation in the embodiment of the present invention is identical or substantially the same, for example, the first packet is the same as the second packet, and in the case that the first packet and the second packet are TCP packets, The information of the data packet, the source port number, and the destination port number of the second packet is the same as that of the second packet.
  • the second packet is a copy of the first packet, but the first packet and the second packet are allowed.
  • the technical solution provided by the embodiment of the present invention can be typically applied to a wireless communication system, for example, a Global System of Mobile communication (GSM) network, a Code Division Multiple Access (CDMA) network. , Time Division-Synchronous Code Division Multiple Access (TDSCDMA) network, Wideband Code Division Multiple Access (WCDMA) network, General Packet Radio Service (GPRS) Network, Long Term Evolution (LTE) network, Software Defined Network (SDN), Wireless Sensor Network, etc.
  • GSM Global System of Mobile communication
  • CDMA Code Division Multiple Access
  • TDSCDMA Time Division-Synchronous Code Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • GPRS General Packet Radio Service
  • LTE Long Term Evolution
  • SDN Software Defined Network
  • Wireless Sensor Network etc.
  • FIG. 2 is a simplified block diagram of a communication system 100 according to an embodiment of the present invention.
  • the communication system 100 is only used as an application scenario of the present invention, and should not be construed as limiting the application scenario of the present invention.
  • the communication system 100 includes a terminal 10, an access point 11, a gateway 12, a wide area network 13, and a server 20.
  • the terminal 10 in the embodiment of the present invention may be a mobile terminal, such as a mobile, wearable, or in-vehicle mobile device such as a mobile phone, a tablet computer, a sports camera, a notebook computer, or some of the mobile terminals.
  • a device such as a computer or a server, or even a network device such as a router or a gateway capable of accessing a cellular network, for example, a router or a gateway of a SIM (Subscriber Identification Module) card, and the mobile phone is used in the embodiment of the present invention.
  • SIM Subscriber Identification Module
  • the server 20 can be an application server, a server proxy, a data center server, or a network device such as a router or a gateway.
  • a communication system can generally include fewer or more components than those shown in FIG.
  • the components, or components that are different from those shown in Figure 2 only show components that are more relevant to the implementations disclosed in the embodiments of the present invention.
  • a communication system can include any number of servers.
  • Wide area network 14 may include a public network, a private network, a portion of the Internet, and/or any combination thereof.
  • the access point can be a base station, a wireless local area network (WLAN) access point or other form of access point, and the gateway 12 and access point 11 can be included in a wireless network, for the sake of brevity, other parts of the wireless network Not elaborated.
  • WLAN wireless local area network
  • the terminal 10 includes an application processor 110, a memory 120, a communication subsystem 130, and a power management subsystem 140.
  • the memory 120 stores an executable program including an operating system and an application.
  • An Application Processor 110 is a processor for running an operating system and an application.
  • the application is a web browser, and server 20 is a server of the web content provider.
  • the first application is an online video player and the server 20 is a video content provider server.
  • the first application is instant messaging software and the server 20 is a server of an instant messaging service provider.
  • the communication subsystem 130 mainly implements functions such as baseband processing, modulation and demodulation, signal amplification and filtering, and equalization.
  • the communication subsystem 130 includes a baseband processor 131 (CP), also referred to as a modem (Modem), a radio frequency module 132, and an antenna 133.
  • CP baseband processor
  • Modem modem
  • radio frequency module 132 radio frequency module
  • antenna 133 antenna 133.
  • the baseband processor 131 can be integrated in the same chip as the Wi-Fi module 150.
  • the baseband processor 131 and the application processor 110 can be integrated in the same chip, or can be independent chips.
  • Figure 2 is only a schematic representation. Power management subsystem 140 is used to power the system.
  • Memory 120 generally includes memory and external memory.
  • the memory can be random access memory (RAM), read only memory (ROM), and cache (CACHE).
  • the external storage can be a hard disk, a CD, a USB disk, a floppy disk, or a tape drive.
  • the executable program is usually stored on the external memory, and the application processor 110 loads the executable program from the external memory into the memory before executing the program.
  • the terminal 10 further includes a Wi-Fi (Wireless Fidelity) module 150.
  • the Wi-Fi module 150 supports the IEEE 802.11 series protocol, and the terminal 10 can access the WLAN through the Wi-Fi module 150.
  • the terminal 10 further includes a display 160 for displaying information input by the user or information provided to the user, various menu interfaces of the terminal 10, and the like.
  • the display 160 can be a liquid crystal display (LED) or an organic light-emitting diode (OLED).
  • the touch panel can be overlaid on the display 160 to form a touch display.
  • the terminal 10 may further include a camera 180 for taking a photo or video, one or more sensors 170 such as a gravity sensor, an acceleration sensor, a light sensor, and the like.
  • sensors 170 such as a gravity sensor, an acceleration sensor, a light sensor, and the like.
  • terminal 10 may include fewer or more components than those shown in FIG. 2, and terminal 10 shown in FIG. 2 only shows multiple implementations disclosed with embodiments of the present invention. More relevant parts of the way.
  • the hardware and software environment of the terminal 10 is further described below.
  • the terminal 10 can be divided into a hardware layer, an operating system, and an application layer (also called a user mode) running on the operating system according to a logical hierarchy.
  • the hardware layer includes the hardware described in the related embodiment of FIG. 2, such as the application processor 110, the memory 120, the Wi-Fi module 150, and the like.
  • the operating system can be operating system, The operating system, the Windows operating system, or other types of operating systems are not limited in the embodiment of the present invention.
  • the operating system includes: a framework, a kernel state, and a driver layer.
  • the driver layer includes drivers for hardware devices such as sensor drivers, Wi-Fi drivers, and display drivers.
  • the kernel mode includes a TCP protocol stack, an IP protocol stack, and the like. The kernel mode will be further described below in conjunction with the method flow involved in the embodiment of the present invention.
  • Frame layer included The interface between the user layer and the kernel state, and some services, such as a graphic service (Graphic Service) 224, a system service (221), a web service (Web Service) 222, and a customer service (Customer Service) 223 Layers run applications that often interact with users directly through the display, such as the Gallery, Media Player, Browser, and Wechat.
  • terminal 10 can access the cellular network through communication subsystem 130 and then communicate with server 20 over wide area network 13.
  • the terminal 10 can also access the WLAN through the Wi-Fi module 150 and then communicate with the server 20 over the wide area network 13.
  • the TCP connection can be established with the server 20 through the TCP/IP protocol stack (refer to the TCP protocol stack and the IP protocol stack), and then the data is transmitted by using the TCP connection.
  • the TCP/IP protocol stack is a middleware for implementing the TCP/IP protocol suite defined by the TCP/IP reference model.
  • the TCP protocol stack can be executed by a suitable combination of software, hardware, and/or firmware on terminal 10.
  • the TCP/IP protocol suite includes two core protocols: TCP (Transmission Control Protocol) and IP (Internet Protocol).
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • the browser 213 generates a socket open command, which is transmitted to the TCP protocol stack of the terminal 10 to trigger the TCP protocol stack to communicate through three messages (also called "Three-way handshake") establishes a TCP connection with the server 20, and then the TCP protocol stack notifies the browser 213 that the connection has been established.
  • a socket open command which is transmitted to the TCP protocol stack of the terminal 10 to trigger the TCP protocol stack to communicate through three messages (also called "Three-way handshake") establishes a TCP connection with the server 20, and then the TCP protocol stack notifies the browser 213 that the connection has been established.
  • the browser 213 and the server 20 can transmit TCP messages based on the established TCP connection.
  • the format of the TCP packet is as shown in Figure 4, where the source port and the destination port are used to determine the application process of the sender and the receiver.
  • the source port, the destination port, the source IP address, and the destination IP address can uniquely identify a TCP connection.
  • the sequence number (Sequence Number, generally referred to as seq) field of the TCP packet header carries the sequence number of the first data byte in the packet payload.
  • the value of the Acknowledge Number (or simply referred to as ack) field of the ACK header indicates the value of the "Sequence Number" field of the message received by the receiving end, and also means that the receiving end has received all the senders.
  • the value of Sequence Number" is smaller than the message of "Acknowledge Number” of the ACK message.
  • the window size is used to indicate the size of the current receive buffer at the receiving end.
  • the TCP message header has 6 flag bits and a customizable Option field. The option field can be used to carry additional information.
  • the 6 flag bits are defined as follows:
  • SYN Synchronization flag, set to 1 to establish a connection
  • FIN The termination flag, requesting to release the connection.
  • the transmitting end and the receiving end can be any device having data transceiving capability.
  • the transmitting end can be the above-mentioned server 20, and the receiving end can make the above-mentioned terminal 10.
  • the transmitting end and the receiving end are two opposite roles, and can be mutually converted, that is, the same device may be a transmitting end or a receiving end in different scenarios.
  • the TCP retransmission mechanism ensures reliable transmission of packets.
  • the retransmission mechanism mainly includes timeout retransmission and fast retransmission.
  • the basic process of timeout retransmission is: the sender starts a timeout timer after sending a message, if the timeout timer is counted When the time is up, the sender still does not receive an acknowledgment message indicating that the message has been correctly received, and resends the message.
  • the value of the timeout timer is generally expressed as RTO (Retransmission TimeOut), and RTO is usually set to be the same as RTT (Round Trip Time), that is, the time taken for a message to be sent back to and from, and the RTT can be obtained by sampling.
  • the wireless communication system provides services for the terminal, and as the technology develops, the terminal often supports multiple communication protocols, such as supporting 2G, 3G, and 4G networks, etc., due to the movement of the terminal location, etc., the network often Unstable or signal strength changes, such as in areas with weak signals such as elevators and underground parking lots, or scenes where the terminals are located on fast moving vehicles such as trains and high-speed rails.
  • the instability of the network signal causes the connection status of the terminal network to change.
  • the terminal may switch in different kinds of cellular networks, such as LTE switching to WCDMA, or the terminal disconnects and reconnects from the network for a certain period of time, and the change is even frequent during a certain period of time.
  • the modem of the terminal may discard the packets to be sent to the cellular network during transmission.
  • the packet loss generated in this case may also be referred to as active packet loss. Therefore, active packet loss is a frequent occurrence of terminals that use cellular networks.
  • the active packet loss is an action that occurs when the packet does not enter the network transmission.
  • the data is not lost during the network transmission.
  • the TCP retransmission mechanism does not distinguish the cause of the packet loss.
  • the network side feedback is required to be retransmitted, so that the response delay of the mobile terminal to the active packet loss is long.
  • the embodiment of the present invention provides that the TCP protocol stack in the application processor 110 can sense the baseband processing.
  • the packet loss of the data to be transmitted in the device 131 is optimized to reduce the delay of the mobile terminal's response to the active packet loss.
  • the method of the embodiment of the present invention is also applicable to other reliability transmission protocols having a message retransmission mechanism.
  • the embodiment of the present invention uses a TCP packet as an example for description.
  • FIG. 3 further illustrates the software architecture involved in the process of processing data in the embodiment of the present invention, in which the application processor 110 and the baseband processor 131 can be regarded as a processor core, a baseband.
  • the processor 131 (also referred to as Modem) is regarded as another processor core.
  • the software architecture can support the mechanism of data communication between the two cores, and the communication between the two cores follows a specific inter-core communication protocol.
  • the embodiment of the present invention does not limit the type of the inter-core communication protocol, and the process of transmitting the data packet to the network side device by using the terminal as the data source in the embodiment of the present invention is briefly described below with reference to FIG.
  • the application layer application passes the socket interface of the source end of the TCP connection, and passes the data packet through the TCP protocol stack of the kernel (also called kernel state) and the IP protocol stack, and then uses the application processor 110 and the modem respectively.
  • the packet is passed to the Modem in 3GPP (3 rd Generation partnership Project, third Generation partnership Project A protocol stack (which may also be understood as a task or a thread), which in turn transmits the data packet from the medium terminal through hardware in the communication subsystem 130.
  • the 3GPP protocol stack is used to carry one or more communication protocols of the data link layer and the physical layer, and is mainly used for communication protocols of various cellular networks, and is not limited to various communication protocols of the 3G network, and may be, for example, GSM. , CDMA, LTE, etc., the invention is not limited.
  • the type of the kernel of the terminal in the embodiment of the present invention is determined by the type of the terminal operating system, and the present invention is not limited thereto, and may be, for example, a Linux kernel (Andriod kernel), a Windows kernel, or the like.
  • the application processor 110 and the Modem transmit data (such as a data packet, etc.) with a large amount of data and information (such as heartbeat information, control instructions, etc.) used for transmitting an inter-core communication task. It is different. Further, the inter-core communication task used for transmitting information with a small amount of data may be implemented by running one task in each of the application processor 110 and the baseband processor 131, and the two tasks may transmit a small amount of data to each other. Information, the two processors can realize the information transmission between the processors through the communication between the two tasks.
  • the task for transmitting data packets with the application processor 110 in the Modem and the 3GPP protocol stack have their own Their own packet buffer queues, which are often configured with timers to monitor these queues.
  • different protocols in the 3GPP protocol stack often correspond to different packet buffer queues.
  • the LTE protocol uses PDCP (Packet Data Convergence Protocol) queue
  • the WCDMA or TDSCDMA protocol uses PDCP or RLC (Radio Link). Control, wireless link layer control) queue.
  • packets in the packet buffer queue are actively discarded by the modem and cannot be sent to the network device.
  • PDCP Packet Data Convergence Protocol
  • RLC Radio Link
  • Control wireless link layer control
  • the task in the modem for transmitting a data packet with the processor 110 after receiving the data packet from the application processor 110, usually determines whether the RRC connection has been established, and if the RRC connection is established, the received The data packet is transmitted to the 3GPP protocol stack for processing. If the RRC connection is not established, the data packet is buffered into the queue of the task, and the transmission is continued after the RRC connection is successfully established.
  • the task discards the packet if the packet fails to be cached, or discards the packet in the cache queue if the timer of the task queue of the task often times out and the RRC connection is still not established successfully. Or the task voluntarily clears the data in the cache queue after receiving the ERABM (E-utran Radio Access Bearer Mange) message for clearing the packet buffer queue of the task. package.
  • ERABM E-utran Radio Access Bearer Mange
  • the 3GPP protocol stack can detect an event that causes the terminal to be unavailable to the cellular network to process the data service, thereby determining whether the data connection of the terminal is available.
  • the terminal is in a dropped state, or the terminal does not normally reside in any serving cell, or the terminal data service switch is in the closed state, or the CSFB (Circuit Switched Fallback) is 2G, and the terminal is in the 2G call scenario.
  • the data connection of the terminal is not available.
  • the embodiment of the present invention does not limit the event that causes the terminal data connection to be unavailable.
  • the 3GPP protocol stack may collect parameters for characterizing whether the terminal can use the cellular network to process data services, such as the signal strength of the cellular network received by the terminal, the type of the cellular network accessed by the terminal, and whether the terminal is running.
  • the baseband processor calculates whether the current data connection of the terminal is available according to a preset algorithm.
  • the embodiment of the present invention does not limit specific parameters and algorithms. The above detection or calculation may be performed periodically by the 3GPP protocol stack, or triggered by some instructions, or triggered by the above event. How does the embodiment of the present invention determine whether the data connection of the terminal is available to the 3GPP protocol stack? , no restrictions.
  • the RRC Radio Resource Control
  • the process of further establishing a TCP connection is a connection above the physical layer (Physical Layer) and the medium access control layer (Medium Access Control). Therefore, in the embodiment of the present invention, the establishment and de-linking of the RRC takes place on the premise that the data connection of the terminal is available. The terminal determines whether the data connection is available regardless of the establishment and de-linking of the RRC.
  • the 3GPP protocol stack may actively discard the packets to be sent in the following situations:
  • the LTE network is switched to the WCDMA or the TDS CDMA network or the GSM network.
  • the 4G network is unstable and cannot be connected to the 4G base station, or the LTE network is not used in the scenario where the VoLTE (Voice over LTE) technology is not currently used.
  • the terminal switches to the 3G network or the 2G network.
  • This event may cause the L2 layer (that is, the LTE layer 2, including the MAC layer, the RLC layer, and the PDCP layer) to be released. If the PDCP queue is released, the modem will be cleared.
  • WCDMA or TDSCDMA is switched to LTE. This event may also result in the release of the L2 layer.
  • the network parameter configuration is unreasonable.
  • the unreasonable parameters may cause PDCP reconfiguration, the Modem will clear the to-be-sent packets in the PDCP queue, and the unreasonable parameters in the case where the terminal uses the WCDMA or TDSCDMA network. May cause RLC (Radio Link Control, wireless link layer) Controlling the reconfiguration, the RLC layer is located on the MAC (Media Access Control) layer, and the MAC layer is part of the L2 layer, and the modem clears the packet to be sent.
  • RLC Radio Link Control, wireless link layer
  • the RNC Radio Network Controller
  • the PDCP queue is full, and the packets sent by the application processor 110 cannot be inserted into the queue and discarded by the modem. This situation may occur in LTE networks or WCDMA or TDSCDMA networks.
  • radio bearers that is, links established by the data link layer in the 3GPP protocol stack
  • one bearer is used for one service, and one PDCP queue cache is reserved for each bearer.
  • the packets sent on the bearer will be actively cleared by the modem in the PDCP queue corresponding to the service.
  • FIG. 4 is a schematic diagram of the format of a TCP message.
  • a method for transmitting a message according to an embodiment of the present invention is described below with reference to FIG. 5, which is used in a terminal, where the terminal includes an application processor, a baseband processor, and a communication interface, and the method includes:
  • the baseband processor reports the information of the first packet to the application processor, where the first packet is a to-be-sent packet discarded by the baseband processor.
  • the information of the first packet includes an identifier of the first packet and an identifier of a TCP connection to which the first packet belongs.
  • the to-be-sent packet discarded by the baseband processor can be understood as being sent by the application processor to the baseband processor without successfully passing the communication interface by the baseband processor.
  • the baseband processor can discard a plurality of packets to be sent. Based on the above description, in many cases, the packets to be sent are discarded. Specifically, the baseband processor may record the discarded information of the to-be-sent message, and may also monitor an event that causes the baseband processor to discard the to-be-sent packet, for example, switching between different cellular networks, thereby determining that the packet is discarded. The message to be sent. The embodiment of the present invention does not limit how the baseband processor obtains the information of the discarded packet to be sent.
  • the baseband processor can report the information of the discarded packet to be sent to the application processor.
  • the first packet and the first packet are TCP packets are used as an example for description.
  • the information of the first packet includes an identifier of the first packet and an identifier of the TCP connection to which the first packet belongs.
  • the first packet identifier may be a sequence number of the packet
  • the identifier of the TCP connection to which the first packet belongs may be a source port number of the TCP connection, according to a format of the TCP packet (eg, As shown in FIG. 4, the baseband processor can obtain the serial number and the source port number by parsing in the process of processing the message to be sent.
  • the baseband processor can determine the information of the message to be reported, and the specific implementation manner is not limited in the embodiment of the present invention.
  • the specific transport protocol is also not limited to the TCP protocol.
  • the baseband processor may select an appropriate time to report the information of the discarded packet to be sent, and report the information of the plurality of discarded packets at an appropriate timing, and is not limited to a packet loss.
  • the application processor reports. Specifically, in a case that the data connection of the terminal is available, the baseband processor reports the information of the first packet to the application processor. Or if the data connection of the terminal is unavailable, the baseband processor buffers information of the first packet, and when the data connection of the terminal is switched from unavailable to available, the baseband processor sends The application processor reports information about the first packet. It should be understood that the above two methods can be used together.
  • the buffer queue of the baseband processor may buffer information to be reported to the application processor, the information being information of the to-be-sent message discarded by the baseband processor.
  • a data connection is a connection used to carry data traffic.
  • the data connection of the terminal can be understood as a data connection between the terminal and the base station. For details, please refer to the description above.
  • the baseband processor reports the information of the first packet to the application processor, indicating that the baseband processor is
  • the information reported by the application processor to report the first message is that the data connection of the terminal is switched from unavailable to available, and the time required for reading the instruction, performing related operations, and the like is not required. That is, the baseband processor finishes processing to the application after a period of time (eg, a few milliseconds) after the data connection of the terminal is switched from unavailable to available. The action of reporting the information of the first message.
  • the baseband processor needs to determine if the data connection of the terminal is available.
  • the terminal can determine whether the data connection of the terminal is available or not available by, for example, periodic detection, event triggering, or instruction triggering.
  • Embodiments of the present invention limit the event of determining whether a data connection is available for use, the specific analysis process and the algorithm used for the analysis, and how to trigger the baseband processor to determine if the data connection of the terminal is available. For further description, please refer to the relevant description above.
  • the step of the baseband processor executing S502 is to let the application processor know that packet loss has occurred and retransmit to the baseband processor, and the baseband processor obtains the retransmitted data packet to transmit the data packet to the receiving end. Send, therefore, if the data connection of the terminal is not available for retransmission, the baseband processor will still actively drop packets because the data connection is unavailable, and the retransmission of the application processor is invalid. Therefore, the baseband processor can report the discarded message information to be sent to the application processor only when the data connection is available, which can improve the efficiency of retransmission. On the other hand, the step of the baseband processor performing the step S502 needs to wake up the application processor.
  • the baseband processor reports the information as soon as the packet loss occurs, the application processor is frequently woken up, which causes the power consumption of the terminal to be greatly increased.
  • Mobile terminals often use batteries, requiring as little power as possible and as long as possible. Therefore, the discarded packet information to be sent is reported to the application processor only when the network is available, which can reduce the power consumption of the terminal.
  • the baseband processor may also report the information to the application processor without determining whether the data connection of the terminal is available, and determining the information of the message that needs to be retransmitted.
  • the embodiments of the present invention are not limited.
  • the application processor transmits a second packet to the baseband processor according to the information of the first packet, where the second packet is the same as the first packet.
  • the application processor obtains, according to the received information of the first packet, the first packet and a source port of the TCP connection where the first packet is located; the application processor uses the source port Retransmitting the first message to the baseband processor.
  • the second message can be understood as a copy of the first message.
  • the application processor may retransmit the second packet to the baseband processor according to the first packet information reported by the baseband processor.
  • the baseband processor sends the second packet to the network device by using the communication interface.
  • the network device may be a network device in a cellular network such as a base station or a server, which is not limited in the embodiment of the present invention.
  • the baseband processor may report the information of the to-be-sent packet discarded by the baseband processor to the application processor, so that the application processor can re-process the baseband according to the reported information.
  • the device sends a copy of the packet discarded by the baseband processor without waiting for the timeout timer of the packet to expire and still not receiving the peer
  • After confirming the packet it is determined that the packet is discarded and the packet is sent to the baseband processor again, which can reduce the delay of the retransmission of the to-be-sent packet discarded by the terminal to the baseband processor, and improve the terminal to packet loss to some extent.
  • the response delay makes the data transmission between the terminal and the network smoother. Since the state of the wireless cellular network often changes, the case where the baseband processor discards the message to be transmitted often occurs.
  • the baseband processor reports that the information of the discarded message to be sent needs to wait until the state of the cellular network accessed by the terminal is available due to power consumption consideration. For a part of the discarded packets to be sent, there is a certain waiting time for the reported information. This may result in the following two situations: a timeout timer of a discarded packet is reported by the baseband processor. The information is timed out before. In this case, the packet may have been retransmitted by the TCP connection through the timeout retransmission mechanism. The baseband processor is not required to report the packet to the application processor.
  • the baseband processor can filter the information of the discarded packet according to the received packet with the same packet, thereby avoiding waste of power consumption and traffic of the terminal.
  • the timeout timer of the discarded packet expires when the application processor sends the same packet as the discarded packet. In this case, it is equivalent to satisfying the requirement of timeout retransmission. Congestion control method for TCP connections.
  • TCP can ensure reliable transmission of packets through the retransmission mechanism.
  • the retransmission mechanism in the prior art is that the default packet loss is caused by network congestion, and the most common packet loss during network transmission. The reason is that the network load is too heavy, and the network device cannot bear the amount of data to be transmitted in the network at the current time, causing network congestion, and discarding some of the packets transmitted in the network, so the congestion control method used in conjunction with the retransmission mechanism is alleviated.
  • the congestion control algorithm mainly includes Slow Start and Congestion Avoidance.
  • the application processor knows that the packet loss needs to be retransmitted, and the value of some parameters is reduced to limit the terminal to the network.
  • the number of sent packets such as the value of the congestion window (cwnd, congestion window), the slow start threshold (ssthresh, slow start threshold), etc., usually the application processor uses the adjusted parameter control to deliver to the baseband processor. Rate of retransmitted packets and subsequent packets to be sent.
  • the sender can reduce the slow start threshold to cwnd/2, then set cwnd to 1, and re-enter the slow start process.
  • the congestion window can be reduced by half, and the slow start threshold is set to the updated congestion window size. It can be understood that different algorithms differ in the magnitude and manner of the reduction of the congestion window and the slow start threshold, but most of them are based on the principle of packet loss backoff, that is, when the sender determines that network packet loss occurs, the congestion window is actively reduced. Size and slow start threshold.
  • the active packet loss in the embodiment of the present invention is not caused by network congestion, there is no need to reduce the number of packets sent by the terminal to the wireless network, and since the packet is actively discarded by the baseband processor, It is also necessary to ensure a certain amount of message transmission to transmit the message to the peer end as soon as possible.
  • the method of the embodiment of the present invention is often used in the existing TCP mechanism, and it is inevitable that the cwnd is reduced as described above. problem.
  • the application processor after the application processor transmits the second packet to the baseband processor according to the information of the first packet, the application processor adds a congestion window to compensate.
  • cwnd can be increased to the set initial value, or it can be restored to the value of the congestion window before the congestion window is reduced due to the retransmission.
  • the embodiment of the present invention does not limit the value to which the application processor increases the congestion window, and what strategy is used to increase the congestion window. In this way, the impact of timeout retransmission can be eliminated, the number of packets sent by the terminal can be guaranteed, and the transmission throughput rate of the terminal can be improved.
  • the application processor and the baseband processor can even be integrated on the same core of the same chip, and the above method is equally applicable in such a chip.
  • the chip is collectively referred to as a processor, and the TCP protocol stack and the 3GPP protocol stack can be understood as two running in the processor. Tasks (or threads), these two tasks can belong to different or the same process, and the TCP protocol stack and the 3GPP protocol stack interact with each other through threads or inter-process communication mechanisms.
  • the application processor is also running an application, and the application sends a message to the base station through the TCP protocol stack and the 3GPP protocol stack, for example, the data generated by the application or the application is triggered by a user operation, and the 3GPP protocol stack will
  • the information of the discarded application packet such as the identifier of the packet and the identifier of the TCP connection where the packet is located, is transmitted to the TCP protocol stack through a thread or inter-process communication mechanism, so that the TCP protocol stack is discarded according to the received
  • the message of the message is sent to the 3GPP protocol stack with the same message as the discarded message.
  • the processor sends the same message received by the 3GPP protocol stack as the discarded message to the base station through the communication interface. .
  • the delay of the retransmission of the packet discarded by the baseband processor can be reduced, and the delay between the terminal and the network device is improved to some extent, so that the data transmission between the terminal and the network is smoother.
  • a terminal of the Android system is taken as an example to describe how the application processor and the baseband processor cooperate to complete the retransmission after the baseband processor discards the packet to be sent.
  • the application processor and the baseband processor are two cores or two independent chips.
  • the baseband processor includes a 3GPP protocol stack, and a task for transmitting data packets with the application processor (referred to as an inter-core data transmission task), and also includes an inter-core for transmitting a small amount of data.
  • the application processor includes another inter-core communication task corresponding to the inter-core communication task in the baseband processor, a TCP protocol stack, an IP protocol stack, and an application running at the application processor application layer.
  • the 3GPP protocol stack in the baseband processor monitors the to-be-sent packet discarded by the baseband processor and the state of the cellular network currently accessed by the terminal. Specifically, the monitoring may cause the baseband processor to discard the event to be sent, for example, Switching between different cellular networks, etc., to determine the discarded message to be sent.
  • the 3GPP protocol stack generates the information of the to-be-sent packet that is discarded by the baseband processor, and stores the information in the queue, including the sequence number of the discarded packet and the source port number of the TCP connection where the discarded packet is located, and generates and represents the Information about whether the terminal's data connection is available (may be some parameter used to characterize whether the connection is available, or a Boolean value directly, different values indicate available or unavailable), and the above two kinds of information are passed to the baseband processor. Inter-core communication tasks, such as passing this information through shared memory.
  • the task in the baseband processor for transmitting data packets with the application processor also detects the message discarded by the task, similar to the 3GPP protocol stack, and the task will generate the information of the to-be-sent packet discarded by the baseband processor. (This includes the sequence number of the dropped message and the source port number of the TCP connection where the discarded message is located) is passed to the inter-core communication task in the baseband processor, for example, by sharing the memory.
  • the inter-core communication task uses the queue of the task to manage the obtained information of the discarded packet. If the queue is full, the queue discards the information of the discarded packet obtained after the queue is full, and the inter-core communication. The task determines, according to the data connection information of the terminal provided by the 3GPP protocol stack, that the data connection of the terminal is available or unavailable.
  • the inter-core communication task transmits the information of the discarded message in the queue to the inter-core communication task in the application processor, so that the TCP/IP protocol of the application processor is made.
  • the stack knows the information of these discarded messages.
  • the queue of the inter-core communication task starts the timer of the queue, and if the timer expires, the timer is determined according to the information provided by the 3GPP protocol stack. After the timed time, it is determined again whether the data connection of the terminal is available. If the data connection is available, the inter-core communication task transmits the information of the discarded message in the queue to the inter-core communication task in the application processor. And clear the timer, if it is the number If the connection is still unavailable, the timer is cleared and waits for the next timer to expire.
  • the application processor parses the information of the discarded packet to be sent transmitted by the baseband processor to obtain the sequence number of the discarded packet and the source port number of the TCP connection where the discarded packet is located.
  • the application processor uses the source port number to find a corresponding TCP connection in the Linux network protocol stack, and compares the sequence number of the discarded packet to be sent with the sequence number of the packet in the sending queue of the TCP connection. A copy of the discarded message to be sent is found, and the discarded copy of the to-be-sent message is sent to the baseband processor through the TCP/IP protocol stack.
  • the terminal's cwnd is reduced.
  • the application processor sets the current cwnd value to the smaller of the terminal's cwnd initial value (TCP_INIT_CWND) and the value before cwnd is reduced to one. In this way, unnecessary reduction of the congestion window can be eliminated, thereby eliminating the impact of timeout retransmission, improving the throughput rate of the terminal, and enabling more packets to be sent in time, thereby reducing the delay caused by packet loss retransmission. .
  • the baseband processor receives a copy of the to-be-sent message transmitted by the application processor, and sends the copy to the transmitting network device through a radio frequency circuit, such as an antenna.
  • the baseband processor can report the information of the to-be-sent packet discarded by the baseband processor to the application processor, so that the application processor can re-route the baseband processor according to the reported information.
  • the delay of the retransmission of the packet discarded by the baseband processor can be reduced, and the retransmission delay of the terminal is improved to a certain extent, so that the data transmission between the terminal and the network is smoother. Since the state of the wireless cellular network often changes, the case where the baseband processor discards the message to be transmitted often occurs.
  • the delay of the retransmission can be significantly reduced, and the throughput of the data transmitted in the uplink is increased.
  • the high-speed rail from Guangzhou to Shenzhen was selected and tested by China Unicom's wireless cellular network.
  • the test tool iPerf is used, and the sampling mode is to calculate the 3GPP protocol stack and the packet transmission delay for actively reporting the packet loss for the task of transmitting the data packet with the application processor, and the source end is the server for the mobile terminal, optimized.
  • the average transmission delay is about 75s; after optimization, the average transmission delay is about 45s.
  • the packet loss retransmission average transmission delay is optimized by 40%.
  • the throughput rate of the uplink transmission (the uplink transmission direction is the mobile terminal to the server), using the test tool iPerf, the sampling method is to calculate the average throughput rate of each round of iPerf test statistics (100s or 200s per round, server side statistics), before optimization,
  • the average throughput rate is about 1.5Mbps.
  • the average throughput rate is about 3.3Mbps, and the average throughput rate is increased by about 2.2 times.
  • the embodiment of the present invention further provides a device for transmitting a message 600, and a schematic structural diagram thereof is shown in FIG. 6.
  • the device includes a baseband processor, an application processor, and a transmitter.
  • the baseband processor is configured to report information of the first packet to the application processor, where the first packet is discarded by the baseband processor.
  • the application processor is configured to use information according to the first packet Transmitting a second packet to the baseband processor, where the second packet is the same as the first packet;
  • the baseband processor is further configured to send the second packet to the network device by using the transmitter .
  • the baseband processor is configured to report the information of the first packet to the application processor, where the baseband processor is used to report the data connection to the application processor. The information of the first message.
  • the baseband processor is configured to cache the first information when the data connection of the device is unavailable, in terms of reporting the information of the first packet to the application processor. Message information; and When the data connection of the device is switched from unavailable to available, the information of the first packet is reported to the application processor.
  • the application processor is further configured to: after transmitting the second packet to the baseband processor according to the information of the first packet, adding a congestion window.
  • the identifier of the first packet is the sequence number of the first packet
  • the identifier of the TCP connection to which the first packet belongs is the TCP where the first packet is located.
  • the source port number of the connection in the aspect of transmitting the second packet to the baseband processor according to the information of the first packet, the application processor is configured to use the first packet according to the source port number
  • the second message having the same serial number of the text is transmitted to the baseband processor.
  • the devices described in the foregoing method embodiments can be implemented by any device that uses a data service provided by a cellular network to transmit or perform data services.
  • the present invention also provides a terminal to implement the method in the foregoing various method embodiments.
  • the structure of the terminal is as shown in FIG. 7.
  • the terminal 300 includes a processing circuit 302, and a communication interface 304 and a storage medium 320 connected thereto.
  • the transmitter in the embodiment of Fig. 6 can be equivalent to the transmitting circuit in the communication interface 304.
  • Processing circuitry 302 is used to process data, control data access and storage, issue commands, and control other devices to perform operations. Processing circuitry 302 may be implemented as one or more processors, one or more controllers, and/or other structures that may be used to execute a program or the like. Processing circuitry 302 may specifically include at least one of a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic component.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • a general purpose processor may include a microprocessor, as well as any conventional processor, controller, microcontroller, or state machine.
  • Processing circuit 302 can also be implemented as a computing component, such as a combination of a DSP and a microprocessor.
  • the processing circuit includes an application processor 309 and a baseband processor 310.
  • the storage medium 306 may include a computer readable storage medium such as a magnetic storage device (eg, a hard disk, a floppy disk, a magnetic strip), an optical storage medium (eg, a digital versatile disk (DVD)), a smart card, a flash memory device, a random access memory. (RAM), read only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), registers, and any combination thereof.
  • Storage medium 306 can be coupled to processing circuitry 302 such that processing circuitry 302 can read information and write information to storage medium 306.
  • storage medium 306 can be integrated into processing circuit 302, or storage medium 306 and processing circuit 302 can be separate.
  • Communication interface 304 may include circuitry and/or programs to enable two-way communication between user equipment 300 and one or more wireless network devices (e.g., base stations, servers, etc.). Communication interface 304 can be coupled to one or more antennas (not shown in FIG. 7) and includes at least one receiving circuit 316 and/or at least one transmitting circuit 318.
  • the storage medium 306 stores a protocol stack program 320
  • the processing circuit 302 executes the protocol stack program 320 to implement the function of the protocol stack.
  • the protocol stack For the relationship between the protocol stack and the application processor 309 and the baseband processor 310, refer to FIG. Related description.
  • the protocol stack is configured to encapsulate the data of the application into a plurality of messages of a specific data format according to the TCP/IP protocol specification, and send the data to the application server through the transmitting circuit 318; meanwhile, the protocol stack also receives the message received by the receiving circuit 316. Decapsulation, and finally get the data of the application.
  • the process of packet encapsulation and decapsulation of the protocol stack is shown in Figure 8. It can be seen that the packet encapsulation process is essentially a process in which the protocol stack adds a header and/or a frame tail to the packet, and the process of decapsulating the packet is essentially a process of removing the header and/or the end of the packet.
  • the protocol stack can decode and/or decapsulate the data received by the communication interface 304, and then pass it to the upper layer application. The data of the application can also be encapsulated and then sent to other devices through the communication interface.
  • the protocol stack may include a physical layer, a data link layer, a network layer, a transport layer, and an application layer for implementing protocols of the various layers.
  • the physical layer is used to define physical device interface characteristics, transmission media types, transmission rates, transmission modes, etc., as well as to implement signal processing at the physical layer.
  • the data link layer is used to implement the functions of the data link layer, such as the distribution of signaling generated by the network layer, and the processing of information generated by the physical layer.
  • the data link layer may include one or more sub-modules, such as a Media Access Control (MAC) layer module, a Radio Link Control (RLC) layer module, and a Logical Link Control (LLC) layer module, respectively Implement the functions of the MAC layer, the RLC layer, and the LLC layer.
  • the MAC layer module is configured to transmit upper layer protocol data by using a service provided by a physical layer, and manage data access between an upper layer and an air interface; an RLC layer module is used for data segmentation and reassembly; and an LLC layer module is used to provide traffic and order. Control, and error control.
  • the network layer is used to implement functions such as logical addressing and routing, for example.
  • the transport layer is used to implement port addressing, segmentation reassembly, connection control, flow control, and error control.
  • the application layer is used to provide interfaces to upper-level applications.
  • processing circuit 302 is adapted to execute protocol stack program 320 stored in storage medium 306 to implement the functionality of the protocol stack.
  • protocol stack in the application processor 309 and the baseband processor 310 specifically implements some or all of the steps in the foregoing method embodiments.
  • the embodiment of the invention further provides a chip, wherein the chip establishes a data connection with a network device through a radio frequency device, and the chip comprises an application processor and a baseband processor.
  • the baseband processor is configured to report information of the first packet to the application processor, where the first packet is a to-be-sent packet that is discarded by the baseband processor, and the information of the first packet includes The identifier of the first packet and the identifier of the TCP connection to which the first packet belongs;
  • the application processor is configured to transmit the second packet to the baseband processor according to the information of the first packet, where The second packet is the same as the first packet;
  • the baseband processor is further configured to send the second packet to the network device by using the radio frequency device.
  • the chip described in the embodiment of the present invention is actually the processing circuit 302 installed and used in the terminal shown in FIG.
  • the baseband processor is configured to report the information of the first packet to the application processor, where the data connection of the chip is available, and report the information to the application processor. The information of the first message.
  • the baseband processor is configured to be unavailable when the data connection of the chip is unavailable in reporting information of the first packet to the application processor.
  • the information of the first packet is buffered, and the information of the first packet is reported to the application processor when the data connection of the chip is switched from unavailable to available.
  • the application processor is further configured to: after transmitting the second packet to the baseband processor according to the information of the first packet, increase Congestion window.
  • the identifier of the first packet is a sequence number of the first packet
  • the identifier of the TCP connection to which the first packet belongs is The source port number of the TCP connection where the first packet is located
  • the application processor is configured to transmit the second packet to the baseband processor according to the information of the first packet
  • the application processor is configured to use, according to the source port number, Transmitting the second message that is the same as the sequence number of the first message to the baseband processor.
  • the embodiment of the invention further provides a storage medium for storing code for implementing the method for transmitting a message described in the present invention.

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(Transmission Control 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,Wideband Code Division Multiple Access Wireless)网络,通用分组无线业务(GPRS,General Packet 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 Crystal Display,LED)或有机发光二极管(英文:Organic Light-Emitting Diode,OLED)等。在其他一些实施例中,显示器160上可以覆盖触控面板,以形成触摸显示屏。
除以上之外,终端10还可以包括用于拍摄照片或视频的摄像头180、一个或多个传感器170,例如重力传感器、加速度传感器、光传感器等。
此外,所属领域的技术人员可以理解终端10可包括比图2中所示部件更少或更多的部件,图2所示的终端10仅示出了与本发明实施例所公开的多个实现方式的更加相关的部件。
下面进一步描述终端10的软硬件环境。终端10按照逻辑层级可以被划分为:硬件层,操作***,以及运行在操作***之上的应用层(也称用户态)。其中,硬件层包括图2相关的实施例所描述的硬件,比如应用处理器110,存储器120,Wi-Fi模块150等等。操作***可以为
Figure PCTCN2017109133-appb-000001
操作***,
Figure PCTCN2017109133-appb-000002
操作***,Windows操作***或其它类型的操作***,本发明实施例不做限定。
在一个实施例中,操作***包括:框架层(Framework)、内核态和驱动层。驱动层包括传感器驱动、Wi-Fi驱动、显示器驱动等硬件设备的驱动程序。内核态包括TCP协议栈、IP协议栈等,下文将结合本发明实施例涉及的方法流程对内核态做进一步说明。框架层包括用 户层与内核态之间进行通信的接口,以及一些服务,如图形服务(Graphic Service)224、***服务(System service)221、网页服务(Web Service)222和用户服务(Customer Service)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(3rd Generation 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 Switched Fallback,电路域回落)到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 (16)

  1. 一种发送报文的方法,所述方法用于终端,所述终端包括基带处理器、应用处理器和通信接口,其特征在于,所述方法包括:
    所述基带处理器向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;
    所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;
    所述基带处理器通过所述通信接口向网络设备发送所述第二报文。
  2. 根据权利要求1所述的方法,其特征在于,所述基带处理器向所述应用处理器上报第一报文的信息,包括:
    在所述终端的数据连接可用的情况下,所述基带处理器向所述应用处理器上报所述第一报文的信息。
  3. 根据权利要求1或2所述的方法,其特征在于,所述基带处理器向所述应用处理器上报第一报文的信息,包括:
    在所述终端的数据连接不可用的情况下,所述基带处理器缓存所述第一报文的信息,在所述终端的数据连接由不可用切换为可用时,所述基带处理器向所述应用处理器上报所述第一报文的信息。
  4. 根据权利要求1到3任一权利要求所述的方法,其特征在于,在所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文后,所述方法还包括:
    所述应用处理器增加拥塞窗口。
  5. 根据权利要求1到4任一权利要求所述的方法,其特征在于,所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,
    所述应用处理器根据所述第一报文的信息向所述基带处理器传输第二报文,包括:
    所述应用处理器根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
  6. 一种发送报文的装置,其特征在于,所述装置包括基带处理器、应用处理器和发送器;
    所述基带处理器用于向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;
    所述应用处理器用于根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;
    所述基带处理器还用于通过所述发送器向网络设备发送所述第二报文。
  7. 根据权利要求6所述的装置,其特征在于,在向所述应用处理器上报第一报文的信息的方面,
    所述基带处理器用于在所述装置的数据连接可用的情况下,向所述应用处理器上报所述第一报文的信息。
  8. 根据权利要求6或7所述的装置,其特征在于,在向所述应用处理器上报第一报文的信息方面,
    所述基带处理器用于在所述装置的数据连接不可用的情况下,缓存所述第一报文的信息;以及在所述装置的数据连接由不可用切换为可用时,向所述应用处理器上报所述第一报文的信息。
  9. 根据权利要求6到8任一权利要求所述的装置,其特征在于,所述应用处理器还用于,在根据所述第一报文的信息向所述基带处理器传输第二报文后,增加拥塞窗口。
  10. 根据权利要求6到9任一权利要求所述的装置,其特征在于,所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,在根据所述第一报文的信息向所述基带处理器传输第二报文的方面,所述应用处理器用于根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
  11. 一种芯片,所述芯片通过射频器件与网络设备建立数据连接,所述芯片包括应用处理器和基带处理器,其特征在于,所述基带处理器用于向所述应用处理器上报第一报文的信息,所述第一报文为被所述基带处理器丢弃的待发送报文,所述第一报文的信息包括所述第一报文的标识和所述第一报文所属的TCP连接的标识;所述应用处理器用于根据所述第一报文的信息向所述基带处理器传输第二报文,所述第二报文与所述第一报文相同;所述基带处理器还用于通过所述射频器件向网络设备发送所述第二报文。
  12. 根据权利要求11所述的芯片,其特征在于,在向所述应用处理器上报第一报文的信息的方面,所述基带处理器用于在所述芯片的数据连接可用的情况下,向所述应用处理器上报所述第一报文的信息。
  13. 根据权利要求11或12所述的芯片,其特征在于,在向所述应用处理器上报第一报文的信息方面,所述基带处理器用于在所述芯片的数据连接不可用的情况下,缓存所述第一报文的信息;以及在所述芯片的数据连接由不可用切换为可用时,向所述应用处理器上报所述第一报文的信息。
  14. 根据权利要求11到13任一权利要求所述的芯片,其特征在于,所述应用处理器还用于,在根据所述第一报文的信息向所述基带处理器传输第二报文后,增加拥塞窗口。
  15. 根据权利要求11到14任一权利要求所述的芯片,其特征在于,所述第一报文的标识为所述第一报文的序列号,所述第一报文所属的TCP连接的标识为所述第一报文所在TCP连接的源端口号,在根据所述第一报文的信息向所述基带处理器传输第二报文的方面,所述应用处理器用于根据所述源端口号,将与所述第一报文的序列号相同的所述第二报文传输给所述基带处理器。
  16. 一种终端,所述终端包括应用处理器、基带处理器、存储器和通信接口,所述应用处理器、基带处理器、通信接口和存储器连接,其特征在于所述应用处理器、基带处理器和通信接口通过调用所述存储器中存储的指令,执行权利要求1到5任一权利要求所述的方法。
PCT/CN2017/109133 2016-11-02 2017-11-02 一种发送报文的方法、装置、芯片及终端 WO2018082615A1 (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CA3042605A CA3042605C (en) 2016-11-02 2017-11-02 Packet sending method and apparatus, chip, and terminal
KR1020197014851A KR102397347B1 (ko) 2016-11-02 2017-11-02 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말
JP2019522717A JP6924830B2 (ja) 2016-11-02 2017-11-02 パケット送信方法および装置、チップ、ならびに端末
EP17868269.6A EP3522417A4 (en) 2016-11-02 2017-11-02 METHOD AND DEVICE FOR SENDING MESSAGES, CHIP AND TERMINAL
BR112019008916A BR112019008916A2 (pt) 2016-11-02 2017-11-02 método e aparelho de envio de pacote, chip e terminal
RU2019116616A RU2752652C2 (ru) 2016-11-02 2017-11-02 Способ и устройство передачи пакетов, микросхема и оконечное устройство
KR1020217003380A KR102350444B1 (ko) 2016-11-02 2017-11-02 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말
US16/398,078 US10771595B2 (en) 2016-11-02 2019-04-29 Packet sending method and apparatus, chip, and terminal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610946705.1A CN108023683B (zh) 2016-11-02 2016-11-02 一种发送报文的方法、装置、芯片及终端
CN201610946705.1 2016-11-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/398,078 Continuation US10771595B2 (en) 2016-11-02 2019-04-29 Packet sending method and apparatus, chip, and terminal

Publications (1)

Publication Number Publication Date
WO2018082615A1 true WO2018082615A1 (zh) 2018-05-11

Family

ID=62070043

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/109133 WO2018082615A1 (zh) 2016-11-02 2017-11-02 一种发送报文的方法、装置、芯片及终端

Country Status (9)

Country Link
US (1) US10771595B2 (zh)
EP (1) EP3522417A4 (zh)
JP (1) JP6924830B2 (zh)
KR (2) KR102397347B1 (zh)
CN (2) CN112713970B (zh)
BR (1) BR112019008916A2 (zh)
CA (1) CA3042605C (zh)
RU (1) RU2752652C2 (zh)
WO (1) WO2018082615A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3982611A4 (en) * 2019-07-26 2022-07-27 Huawei Technologies Co., Ltd. DATA PROCESSING METHOD AND DEVICE AND TERMINAL

Families Citing this family (17)

* Cited by examiner, † Cited by third party
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 中国工商银行股份有限公司 网络服务进程状态的识别监控方法及装置
US10868707B1 (en) 2019-09-16 2020-12-15 Liquid-Markets-Holdings, Incorporated Zero-latency message processing with validity checks
JPWO2021199162A1 (zh) * 2020-03-30 2021-10-07
JPWO2021199161A1 (zh) * 2020-03-30 2021-10-07
EP4144048A4 (en) 2020-06-08 2024-06-26 Liquid-Markets GmbH HARDWARE-BASED TRANSACTION EXCHANGE
CN114765690B (zh) * 2020-12-31 2023-09-12 华为技术有限公司 数据包传输方法、通信装置及存储介质
CN115085890B (zh) * 2022-06-23 2024-06-25 云合智网(上海)技术有限公司 数据中心网络芯片优化tcp rto重传等待时间的方法
CN117856985A (zh) * 2024-03-08 2024-04-09 珠海星云智联科技有限公司 用于报文重传的方法、计算机设备、介质及程序

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1686716A1 (en) * 2005-02-01 2006-08-02 NTT DoCoMo INC. Communication system, transmitter and receiver with adaptive retransmission depending on the type of data
CN102210119A (zh) * 2008-11-10 2011-10-05 高通股份有限公司 用于丢弃的媒体接入控制帧的以应用程序配置的基于内容的重发方案
CN103650401A (zh) * 2013-09-05 2014-03-19 展讯通信(上海)有限公司 一种移动终端内部通信方法
US20140341028A1 (en) * 2013-05-17 2014-11-20 Nvidia Corporation Reducing superfluous traffic in a network

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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在异构网络中传输性能的方法
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
CN101052006B (zh) * 2007-05-14 2010-06-09 华为技术有限公司 报文上送的方法及实现该方法的接口板及路由器
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
ES2478018T3 (es) 2007-12-20 2014-07-18 Ntt Docomo, Inc. Estación móvil, dispositivo de estación base, método de control de comunicación y sistema de comunicación móvil
CN101232446A (zh) * 2008-02-01 2008-07-30 华为技术有限公司 报文处理方法及装置
CN101860435B (zh) * 2009-04-13 2012-10-31 ***通信集团公司 报文发送、接收以及确定网络节点的方法及装置
US9083772B2 (en) * 2010-04-30 2015-07-14 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
JP5854044B2 (ja) * 2011-01-12 2016-02-09 日本電気株式会社 通信装置、パケット再送制御方法、パケット再送制御プログラム
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 华为技术有限公司 一种确定丢包原因的方法和终端
KR101767913B1 (ko) * 2013-03-29 2017-08-14 브이아이디 스케일, 인크. 조기 패킷 손실 검출 및 피드백
CN112713970B (zh) * 2016-11-02 2022-05-13 华为技术有限公司 一种发送报文的方法、装置、芯片及终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1686716A1 (en) * 2005-02-01 2006-08-02 NTT DoCoMo INC. Communication system, transmitter and receiver with adaptive retransmission depending on the type of data
CN102210119A (zh) * 2008-11-10 2011-10-05 高通股份有限公司 用于丢弃的媒体接入控制帧的以应用程序配置的基于内容的重发方案
US20140341028A1 (en) * 2013-05-17 2014-11-20 Nvidia Corporation Reducing superfluous traffic in a network
CN103650401A (zh) * 2013-09-05 2014-03-19 展讯通信(上海)有限公司 一种移动终端内部通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3522417A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3982611A4 (en) * 2019-07-26 2022-07-27 Huawei Technologies Co., Ltd. DATA PROCESSING METHOD AND DEVICE AND TERMINAL

Also Published As

Publication number Publication date
CN108023683B (zh) 2020-12-25
JP6924830B2 (ja) 2021-08-25
US10771595B2 (en) 2020-09-08
KR20190073479A (ko) 2019-06-26
CN112713970A (zh) 2021-04-27
EP3522417A4 (en) 2019-10-16
KR20210016084A (ko) 2021-02-10
CN108023683A (zh) 2018-05-11
RU2752652C2 (ru) 2021-07-29
CA3042605C (en) 2023-07-18
EP3522417A1 (en) 2019-08-07
BR112019008916A2 (pt) 2019-12-24
CN112713970B (zh) 2022-05-13
US20190268445A1 (en) 2019-08-29
KR102397347B1 (ko) 2022-05-13
RU2019116616A3 (zh) 2021-02-01
CA3042605A1 (en) 2018-05-11
RU2019116616A (ru) 2020-12-03
JP2020502873A (ja) 2020-01-23
KR102350444B1 (ko) 2022-01-14

Similar Documents

Publication Publication Date Title
WO2018082615A1 (zh) 一种发送报文的方法、装置、芯片及终端
US11153041B2 (en) Packet transmission method and user equipment
US10924421B2 (en) Packet transmission method, terminal, network device, and communications system
US11477129B2 (en) Data transmission method, computing device, network device, and data transmission system
US11044630B2 (en) Method and apparatus for adjusting data sending rate of terminal
WO2020147453A1 (zh) 数据传输方法及相关装置
CN102769520A (zh) 基于sctp协议的无线网络拥塞控制方法

Legal Events

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

Ref document number: 17868269

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019522717

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 3042605

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017868269

Country of ref document: EP

Effective date: 20190430

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112019008916

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 20197014851

Country of ref document: KR

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01E

Ref document number: 112019008916

Country of ref document: BR

REG Reference to national code

Ref country code: BR

Ref legal event code: B01Y

Ref document number: 112019008916

Country of ref document: BR

Free format text: ANULADA A PUBLICACAO CODIGO 1.5 NA RPI NO 2536 DE 13/08/2019 POR TER SIDO INDEVIDA.

ENP Entry into the national phase

Ref document number: 112019008916

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20190502