Communication method, communication apparatus, and communication system
By starting a timer when the lower boundary of the confirmation mode window is less than a specific sequence number, a status report is sent and the window slides in a timely manner, solving the problem of the confirmation mode window being unable to slide, thus achieving timely release of memory resources and improving system security.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-08
- Publication Date
- 2026-04-02
AI Technical Summary
In the acknowledgment mode reliable transmission method, the acknowledgment mode window on the receiving side cannot be slid, which causes undelivered messages to occupy memory or resources for a long time, creating a potential system attack risk and affecting the system's serviceability.
By starting a timer, when the lower boundary of the acknowledgment mode window is less than a specific sequence number, a status report is sent to indicate that all messages have been received correctly, messages that have not been received correctly are actively discarded, the acknowledgment mode window is slid in a timely manner, and memory resources are released.
This effectively prevents messages from occupying memory for extended periods, reduces system load, improves security and reliability, and prevents system crashes.
Smart Images

Figure CN2025119714_02042026_PF_FP_ABST
Abstract
Description
Communication method, communication apparatus and communication system
[0001] Cross-reference to Related Applications
[0002] This application claims priority to the Chinese Patent Application No. 202411393372.5, filed on September 30, 2024, and entitled “A communication method, a communication apparatus and a communication system”, the entire contents of which are incorporated herein by reference. TECHNICAL FIELD
[0003] The present application relates to the field of communication technology, and in particular to a communication method, a communication apparatus and a communication system. BACKGROUND
[0004] The 3rd generation partnership project (3GPP) wireless air interface protocol defines an acknowledged mode (AM) reliability transmission mode, through which a service with strict requirements for packet loss but not for latency, such as a file transfer protocol (FTP) service, can be provided.
[0005] For the acknowledged mode reliability transmission mode, in some cases, the acknowledged mode window on the receiving side can not be able to slide, which in turn causes the messages that have been correctly received in the acknowledged mode window to not be submitted to the upper layer, resulting in these messages that fail to be submitted in time occupying the memory on the receiving side or the relevant resource items bound with the instance for a long time, and further possibly forming an attack mode of the air interface data plane, thereby causing system downtime and a decrease in serviceable capacity. SUMMARY
[0006] The present application provides a communication method, a communication apparatus and a communication system, to slide the acknowledged mode window on the receiving side in time, to avoid messages occupying the memory or the relevant resource items bound with the instance for a long time, thereby reducing the load and improving the security.
[0007] In a first aspect, an embodiment of the present application provides a communication method, which can be executed by a first communication device. The first communication device can refer to a communication device (for example, a network device, a terminal device, etc.), a component (for example, a processor, a chip, or a chip system, etc.) in the communication device, or a logic module or software capable of realizing all or part of the functions of the communication device. The method comprises: starting a first timer when a first lower boundary of a confirmation mode window is less than a first sequence number at a first time, wherein the first sequence number is a maximum sequence number of a packet received in the confirmation mode window at the first time + 1; and sending a first status report when the first timer expires, wherein the first status report is used to indicate that all the packets before an updated second lower boundary of the confirmation mode window have been correctly received, and wherein the packets before the second lower boundary include incorrectly received packets.
[0008] Based on the above scheme, when the first timer expires, the first communication device actively gives up the incorrectly received packets and sends the first status report, which is used to indicate that all the packets before the updated second lower boundary of the confirmation mode window have been correctly received, although there are still incorrectly received packets. In this way, the confirmation mode window can be timely slid, and the packets can be prevented from occupying the memory or the related resource items bound to the instance for a long time, which helps to reduce the load and improve the security.
[0009] In a possible implementation method, the method further comprises: when the first timer is started, setting a value of a first parameter to the first sequence number; and when the first timer expires, if the packet corresponding to the first parameter has not been correctly received, setting the second lower boundary to a sequence number of the packet corresponding to the first parameter; or when the first timer expires, if the packet corresponding to the first parameter has been correctly received, setting the second lower boundary to a sequence number of a first incorrectly received packet after the packet corresponding to the first parameter.
[0010] Based on the above scheme, the parameters related to the confirmation mode window are updated in a timely manner, which helps to timely transmit the packets.
[0011] In a possible implementation method, the method further comprises: sending, to an upper layer, the correctly received packets between the first lower boundary and the second lower boundary.
[0012] Based on the above scheme, the correctly received packets are timely reported to the upper layer, so that the cache can be released, the packets can be prevented from occupying the memory or the related resource items bound to the instance for a long time, and the load can be reduced.
[0013] In a possible implementation, the method further includes: during running of the first timer, if a third lower boundary of the acknowledgement mode window at a second time is equal to a second sequence number, stopping the first timer, wherein the second sequence number is a maximum sequence number of the received packets in the acknowledgement mode window at the second time + 1.
[0014] Based on the above scheme, the first timer can be stopped at a suitable time, which helps to reduce the running cost of the timer.
[0015] In a possible implementation, the method further includes: after stopping the first timer, sending a second status report, wherein the second status report is used to indicate that the packets before the third lower boundary have all been correctly received.
[0016] Based on the above scheme, the status report is sent in time, so that the sending side can know the packet transmission situation, which helps the sending side to slide the acknowledgement mode window in time and release the related resource items in time.
[0017] In a possible implementation, the method further includes: starting the first timer at a fourth time before the first time, and setting a value of a first parameter to a third sequence number, wherein the third sequence number is a maximum sequence number of the received packets in the acknowledgement mode window at the fourth time + 1; and the starting the first timer when the first lower boundary of the acknowledgement mode window at the first time is less than the first sequence number includes: restarting the first timer when the first lower boundary is less than the first sequence number and the first lower boundary is greater than or equal to the value of the first parameter.
[0018] Based on the above scheme, the first timer can be started at a suitable time, which helps to deliver the correctly transmitted packets in time.
[0019] In a possible implementation, the method further includes: after restarting the first timer, updating the value of the first parameter to the first sequence number.
[0020] Based on the above scheme, the parameter related to the acknowledgement mode window is updated in time, which helps to transmit the packets in time.
[0021] In a possible implementation, the starting the first timer when the first lower boundary of the acknowledgement mode window at the first time is less than the first sequence number includes: starting the first timer when the first lower boundary is less than the first sequence number and one or more of the following conditions are met.
[0022] Condition 1: a value of a second parameter is greater than or equal to the first sequence number, and the value of the second parameter is an upper boundary of the packets in the status report allowed to be sent.
[0023] Condition 2: the number of packets correctly received but not sent to the upper layer within the acknowledgement mode window is greater than a preset first threshold value;
[0024] Condition 3: the time length during which the lower boundary of the acknowledgement mode window is not updated is greater than a preset first time length;
[0025] Condition 4: after sending the status report, a retransmission packet is not received within a preset second time length, the retransmission packet being the packet incorrectly received and fed back by the status report;
[0026] Condition 5: the third time length is exceeded since the last sending of the status report;
[0027] Condition 6: the number of times of sending the negative acknowledgement corresponding to the incorrectly received packet exceeds a preset second threshold value.
[0028] Based on the above scheme, accurate judgment of whether to start the first timer helps to reduce the running overhead of the timer, and timely sliding of the acknowledgement mode window can avoid long-term occupation of memory or related resource items bound to the instance, which helps to reduce the load and improve the security.
[0029] In a possible implementation method, the time length of the first timer is equal to the service tolerance delay or the reliability tolerance delay.
[0030] In a second aspect, the present application provides a communication device, which has the function of the first aspect. For example, the communication device includes a module or unit or means for performing the operation corresponding to the first aspect, and the function or unit or means can be implemented by software or hardware, or by executing corresponding software by hardware.
[0031] In a possible design, the communication device includes a processing unit and a communication unit, where the communication unit can be used to transceive signals to realize the communication between the communication device and other devices; the processing unit can be used to perform some internal operations of the communication device. The functions performed by the processing unit and the communication unit can correspond to the operations of the first aspect.
[0032] In a possible design, the communication device includes a processor, which can be coupled with a memory. The memory can store necessary computer programs or instructions for implementing the functions of the first aspect. The processor can execute the computer programs or instructions stored in the memory, and when the computer programs or instructions are executed, the communication device can implement the method in any possible design or implementation manner of the first aspect.
[0033] In a possible design of the first aspect, the communication apparatus includes a processor and a memory. The memory can store computer programs or instructions necessary for implementing the functions of the first aspect. The processor can execute the computer programs or instructions stored in the memory, and when the computer programs or instructions are executed, the communication apparatus can implement the method in any possible design or implementation manner of the first aspect.
[0034] In a possible design of the first aspect, the communication apparatus includes a processor and an interface circuit. The processor can communicate with other apparatuses through the interface circuit, and implement the method in any possible design or implementation manner of the first aspect.
[0035] It can be understood that the processor in the second aspect can be implemented by hardware or software. When implemented by hardware, the processor can be a logic circuit, an integrated circuit, or the like. When implemented by software, the processor can be a general-purpose processor, which implements the functions by reading software codes stored in a memory. In addition, the processor can be one or more, and the memory can be one or more. The memory can be integrated with the processor, or the memory and the processor can be separately arranged. In a specific implementation process, the memory and the processor can be integrated on the same chip, or can be separately arranged on different chips. The type of the memory and the arrangement manner of the memory and the processor are not limited in the embodiments of the present application.
[0036] In a third aspect, the present application provides a communication system, which can include a first communication apparatus and a second communication apparatus. The first communication apparatus can implement the method in the first aspect.
[0037] In a fourth aspect, the present application provides a computer readable storage medium, which stores computer programs (or computer readable instructions). When the computer programs (or computer readable instructions) are read and executed by a computer, the method in any possible design of the first aspect is implemented.
[0038] For example, the computer readable storage medium can be any available medium that can be accessed by a computer. For example, but not limited to: the computer readable medium can include a non-transitory computer readable medium, a random access memory (RAM), a read-only memory (ROM), an electrically EPROM (EEPROM), a CD-ROM or other optical disk storage, a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program codes in the form of instructions or data structures and can be accessed by a computer.
[0039] In a fifth aspect, the present application provides a computer program product, which, when executed by a computer, causes the method in any possible design of the first aspect to be performed.
[0040] In a sixth aspect, the present application provides a chip (or chip system), which comprises a processor coupled with a memory, and the memory stores a computer program; the processor is configured to invoke part or all of the computer program in the memory, so that the method in any possible design of the first aspect is performed. BRIEF DESCRIPTION OF DRAWINGS
[0041] FIG. 1 is a schematic diagram of an architecture of a communication system to which embodiments of the present application are applicable;
[0042] FIG. 2 is an example diagram of an ACK mode window at a receiving side;
[0043] FIG. 3(a) is an example diagram of an ACK mode window at a receiving side;
[0044] FIG. 3(b) is an example diagram of an ACK mode window at a receiving side;
[0045] FIG. 3(c) is an example diagram of an ACK mode window at a receiving side;
[0046] FIG. 3(d) is an example diagram of an ACK mode window at a receiving side;
[0047] FIG. 3(e) is an example diagram of an ACK mode window at a receiving side;
[0048] FIG. 3(f) is an example diagram of an ACK mode window at a receiving side;
[0049] FIG. 4(a) is an example diagram of packet transmission;
[0050] FIG. 4(b) is an example diagram of packet transmission;
[0051] FIG. 5(a) is an example diagram of packet transmission;
[0052] FIG. 5(b) is an example diagram of packet transmission;
[0053] FIG. 6 is a flowchart of a communication method provided by embodiments of the present application;
[0054] FIG. 7(a) is an example diagram of an ACK mode window at a receiving side;
[0055] FIG. 7(b) is an example diagram of an ACK mode window at a receiving side;
[0056] FIG. 7(c) is an example diagram of an ACK mode window at a receiving side;
[0057] FIG. 8 is an exemplary block diagram of a communication device according to an embodiment of the present application;
[0058] FIG. 9 is a structural schematic diagram of a communication device according to an embodiment of the present application. DETAILED DESCRIPTION
[0059] In the embodiments of the present application, the words "exemplary", "for example", and the like are used to mean example, illustration, or description. Any embodiment or design solution described as "exemplary" in the present application should not be interpreted as being more preferred or having more advantages than other embodiments or design solutions. In fact, the word "exemplary" is used to present concepts in a concrete manner. In the embodiments of the present application, "of", "corresponding" and "corresponding" are sometimes used interchangeably, and it should be pointed out that when their differences are not emphasized, the meanings expressed are consistent.
[0060] The technical solutions of the embodiments of the present application can be applied to various wireless communication systems, such as universal mobile communication system (UMTS), wireless local area network (WLAN), short-range wireless communication system (such as sidelink, wireless fidelity (Wi-Fi), Bluetooth, etc.), wired network, vehicle to everything (V2X) communication system, device-to-device (D2D) communication system, Internet of Vehicles communication system, 4th generation (4G) mobile communication system (such as long term evolution (LTE) system), LTE frequency division duplex (FDD) system, LTE time division duplex (TDD), worldwide interoperability for microwave access (WiMAX) communication system, 5th generation (5G) mobile communication system (such as new radio (NR) system), future communication system, or other similar communication systems, etc., without limitation. The embodiments of the present application are described taking the communication system shown in FIG. 1 as an example, when the technical solutions of the embodiments of the present application are applied to other communication systems, the devices, components, modules, etc. in the embodiments can be replaced by corresponding devices, components, modules in other communication systems, without limitation.
[0061] FIG. 1 is a schematic diagram of an architecture of a communication system to which embodiments of the present application are applied. As shown in FIG. 1, the communication system includes an access network 100. Optionally, the communication system can also include a core network 200 and an Internet 300. The access network 100 can include at least one network device, such as 110a and 110b in FIG. 1, and at least one terminal device, such as 120a-120j in FIG. 1. Among them, 110a is a base station, 110b is a micro station, 120a, 120e, 120f and 120j are mobile phones, 120b is a car, 120c is a fuel dispenser, 120d is a home access point (HAP) arranged indoors or outdoors, 120g is a notebook computer, 120h is a printer, and 120i is a drone. Among them, the same terminal device or network device can provide different functions in different application scenarios. For example, the mobile phones in FIG. 1 are 120a, 120e, 120f and 120j. The mobile phone 120a can access the base station 110a, connect to the car 120b, communicate directly with the mobile phone 120e and access the HAP. The car 120b can access the HAP and communicate directly with the mobile phone 120a. The mobile phone 120f can access the micro station 110b, connect to the notebook computer 120g and connect to the printer 120h. The mobile phone 120j can control the drone 120i.
[0062] (1) Network device
[0063] A network device is a network-side device with wireless transceiving function. The network device can be a device in a radio access network (RAN) that provides wireless communication function for terminal devices, referred to as a RAN device. The RAN can be an access network in 3GPP, for example, 4G, 5G or future network. The RAN can also be an open RAN (O-RAN or ORAN), a cloud radio access network (CRAN), or a communication network of two or more of the above networks.
[0064] The RAN device can also be a base station, an evolved NodeB (eNodeB), a transmission reception point (TRP), a next generation NodeB (gNB) in a 5G mobile communication system, a base station in a future mobile communication system or an access node in a WiFi system, etc.
[0065] The RAN device can also be a module or unit that completes the function of the base station part, for example, can be a central unit (CU), can also be a distributed unit (DU), and can also be a radio unit (RU). The CU here completes the functions of the radio resource control (RRC) and the PDCP of the base station, and can also complete the function of the service data adaptation protocol (SDAP); the CU can be further divided into a CU control panel (CP) (CU-CP) and a CU user panel (UP) (CU-UP). The DU completes the functions of the radio link control (RLC) layer and the medium access control (MAC) layer of the base station, and can also complete part of the physical layer or the entire physical layer. For specific descriptions of the above protocol layers, refer to the relevant technical specifications of 3GPP. The CU and the DU can be separately arranged, or can also be included in the same network element, such as a baseband unit (BBU). The RU can be included in a radio frequency device or a radio frequency unit, such as a remote radio unit (RRU), an active antenna processing unit (AAU), or a remote radio head (RRH). In different systems, the CU, the DU, or the RU can also have different names, but those skilled in the art can understand their meanings. For example, in the ORAN system, the CU can also be referred to as an O-CU (open CU), the DU can also be referred to as an O-DU, and the RU can also be referred to as an O-RU. Any one of the CU (or CU-CP, CU-UP), the DU, and the RU in this application can be implemented by a software module, a hardware module, or a combination of a software module and a hardware module. The RAN device can be a macro base station (such as 110a in FIG. 1), can also be a micro base station or an indoor station (such as 110b in FIG. 1), and can also be a relay node or a donor node, etc. The embodiments of this application do not limit the specific technology and specific device form adopted by the network device.
[0066] In the embodiments of this application, the functions of the network device can also be executed by a module (such as a chip) in the network device, or can also be executed by a control subsystem containing the functions of the network device. The control subsystem containing the functions of the network device here can be a control center in the above-mentioned application scenarios such as smart grid, industrial control, intelligent transportation, and smart city.
[0067] (2) Terminal device
[0068] A terminal device is a user-side device with wireless transceiving function. The terminal device can also be referred to as a terminal, a user equipment (UE), a mobile station, a mobile terminal, etc. The terminal device can be widely applied in various scenarios, such as device-to-device (D2D), vehicle to everything (V2X) communication, machine-type communication (MTC), internet of things (IOT), virtual reality, augmented reality, industrial control, automatic driving, remote medical treatment, smart power grid, smart furniture, smart office, smart wear, smart transportation, smart city, etc. The terminal device can be a mobile phone, a tablet computer, a computer with wireless transceiving function, a wearable device, a vehicle, a drone, a helicopter, an airplane, a ship, a robot, a mechanical arm, a smart home device, etc. In the embodiments of the present application, the device for implementing the function of the terminal device can be the terminal device, or a device capable of supporting the terminal device to implement the function, such as a chip system or a combination device or component that can implement the function of the terminal device, which can be installed in the terminal device. The embodiments of the present application do not limit the specific technology and specific device form adopted by the terminal device.
[0069] In the embodiments of the present application, the function of the terminal device can also be executed by a module (such as a chip or a modem) in the terminal device, or by a device containing the function of the terminal device.
[0070] The network device and the terminal device can be fixed in position or movable. The network device and the terminal device can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; can also be deployed on the water surface; can also be deployed on an airplane, a balloon and a man-made satellite in the air. The embodiments of the present application do not limit the application scenarios of the network device and the terminal device.
[0071] The roles of the network device and the terminal device can be relative, for example, the helicopter or the unmanned aerial vehicle 120i in FIG. 1 can be configured as a mobile network device, and for the terminal device 120j that accesses the wireless access network 100 through 120i, the terminal device 120i is a network device; but for the network device 110a, 120i is a terminal device, that is, 110a communicates with 120i through a wireless air interface protocol. Of course, 110a and 120i can also communicate through an interface protocol between network devices and network devices, and at this time, 120i is also a network device relative to 110a. Therefore, the network device and the terminal device can be collectively referred to as a communication apparatus, and 110a and 110b in FIG. 1 can be referred to as a communication apparatus with a network device function, and 120a-120j in FIG. 1 can be referred to as a communication apparatus with a terminal device function.
[0072] The network device and the terminal device, the network device and the network device, and the terminal device and the terminal device can communicate through an authorized frequency spectrum, can communicate through an unlicensed frequency spectrum, or can simultaneously communicate through an authorized frequency spectrum and an unlicensed frequency spectrum, without limitation.
[0073] The network architecture and the service scenario described in the present application are used to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. Those skilled in the art can know that the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems as the network architecture evolves and new service scenarios appear.
[0074] The related terms involved in the embodiments of the present application will be explained first. When not specifically explained, these explanations are used to support the meanings of the related terms and make the embodiments of the present application easier to understand, and should not be regarded as a strict limitation on the related terms in the protection scope claimed by the present application.
[0075] I. Acknowledged Mode (AM)
[0076] The 3GPP wireless air interface protocol defines an acknowledged mode reliable transmission mode, through which a service with strict requirements for packet loss but not strict requirements for delay, such as a file transfer protocol (FTP) service, can be provided.
[0077] II. Variables Related to Acknowledged Mode
[0078] 1. Size of Acknowledged Mode Window (AM window size)
[0079] The size of the acknowledged mode window refers to the size of the transmission window of the sending side and the receiving side in the acknowledged mode.
[0080] The sending side sends the messages within the ACK mode window, and the receiving side processes the messages within the ACK mode window accordingly. If the receiving side receives a message outside the ACK mode window, it does not perform the operation related to the ACK mode window update. In this application, a message refers to an ACK mode PDU, abbreviated as AM PDU.
[0081] The size of the ACK mode window can be predefined by the protocol or negotiated between the sending side and the receiving side.
[0082] Generally, the size of the ACK mode window of the sending side is the same as that of the receiving side.
[0083] 2. The lower bound of the ACK mode window of the receiving side (denoted as VR(R))
[0084] VR(R) is the sequence number of the message with the smallest sequence number among the messages not correctly received.
[0085] In this application, a message not correctly received refers to a message of which no fragment is received or only a part of the fragments of the message are received, i.e. no complete fragment of the message is received. A message correctly received refers to a message of which complete fragments are received.
[0086] Figure 2 is an example of the ACK mode window of the receiving side. In this example, the sequence number of message #i is denoted as i, i = 1, 2, 3,.... For example, the sequence number of message #1 is 1, the sequence number of message #2 is 2, and so on. The receiving side correctly receives message #1, message #2, message #5, message #6 and message #7, but does not correctly receive message #3 and message #4, and thus VR(R) = 3.
[0087] 3. The upper bound of the ACK mode window of the receiving side (denoted as VR(MR))
[0088] VR(MR) is the sequence number of the first message outside the ACK mode window, and VR(MR) = VR(R) + N, where N is the size of the ACK mode window of the receiving side. When the receiving side receives a message, if the sequence number of the message is greater than or equal to VR(R) and less than VR(MR), the receiving side can update the ACK mode window of the receiving side based on the message, i.e. update the parameters or variables related to the ACK mode window.
[0089] Referring to the example of Figure 2, the size of the ACK mode window of the receiving side is 32768, and thus VR(MR) = 3 + 32768 = 32771.
[0090] 4. The sequence number of the packet with the largest sequence number currently received by the receiving side of the acknowledgement mode window (denoted as VR(H))
[0091] The packet with the largest sequence number received here can be the whole fragment of the packet, i.e. the packet is completely received, or can be the partial fragment of the packet, i.e. the packet is not completely received.
[0092] Referring to the example of Fig. 2, the packet with the largest sequence number received by the receiving side is packet #7, thus VR(H) = 8. The value of VR(H) will be updated as the received packets increase. For example, when packet #8 is received, VR(H) is updated to 9.
[0093] 5. The reordering timer of the receiving side (denoted as t-Reordering)
[0094] The reordering timer is started by the receiving side when it detects that there is a packet not correctly received. The reordering timer can be used to trigger the receiving side to send a status report. When the reordering timer expires, the receiving side is triggered to send a status report. The status report is used to feed back the packet transmission status in the acknowledgement mode window to the sending side.
[0095] The position of triggering the starting of the reordering timer is denoted as VR(X). VR(X) is set as VR(H) when the reordering timer is started.
[0096] Referring to the example of Fig. 2, in the acknowledgement mode window, packet #3 and packet #4 are not correctly received, and then the first packet correctly received by the receiving side is packet #7, thus VR(X) is set as 8, and the reordering timer is started. During the counting of the reordering timer (i.e. before the expiration), the receiving side correctly receives packet #5, packet #6 and other packets. Optionally, the receiving side can also correctly receive packet #3 and packet #4.
[0097] During the running of the reordering timer, if the packet corresponding to VR(MS) is correctly received, then VR(MS) is updated as the sequence number of the first packet not correctly received after VR(MS).
[0098] After the reordering timer expires, VR(MS) is set to VR(X) and the sequence number of the first packet after VR(X) that is not correctly received, and the receiving side sends a status report to the sending side, which indicates the transmission status of the packets from VR(R) to VR(MS), i.e., the transmission status of the packet with sequence number VR(R), the packet with sequence number VR(R)+1, the packet with sequence number VR(R)+2,..., the packet with sequence number VR(MS)-1. Here, VR(MS) indicates the upper boundary of the packets whose transmission status is to be reported.
[0099] When the reordering timer stops, if VR(R) < VR(H) and VR(MS) < VR(H), the reordering timer is restarted.
[0100] The updating process of the above variables is described below in connection with specific examples.
[0101] Fig. 3(a) is another example diagram of the acknowledgement mode window of the receiving side. In this example, the receiving side correctly receives packet #1 and packet #2, and has not correctly received any other packet, so VR(R) = 3, VR(H) = 2+1 = 3, and VR(MS) = 3.
[0102] Fig. 3(b) is another example diagram of the acknowledgement mode window of the receiving side. In the example of Fig. 3(b), the receiving side, after the example of Fig. 3(a), does not correctly receive packet #3, packet #4, and packet #5, but correctly receives packet #6, so VR(H) and VR(X) are updated. Here, VR(H) = 6+1 = 7. The receiving side starts the reordering timer and records VR(X) = VR(H) = 7.
[0103] Fig. 3(c) is another example diagram of the acknowledgement mode window of the receiving side. In the example of Fig. 3(c), the receiving side, after the example of Fig. 3(b), correctly receives packet #9 during the running of the reordering timer, so VR(H) is updated. Here, VR(H) = 9+1 = 10.
[0104] Fig. 3(d) is another example diagram of the acknowledgement mode window of the receiving side. In the example of Fig. 3(d), the receiving side, after the example of Fig. 3(c), correctly receives packet #3 during the running of the reordering timer, so VR(R) and VR(MS) are updated. Here, VR(R) = 4 and VR(MS) = 4.
[0105] Figure 3(e) is another example of the ACK mode window of the receiving side. In the example of Figure 3(e), after the example of Figure 3(d), the reordering timer of the receiving side expires, then the receiving side updates the VR(MS) to the VR(X) and the sequence number of the first packet after the VR(X) that is not correctly received, i.e. the VR(MS) is updated to 7, then the receiving side generates a status report for feeding back the transmission status of the packets before packet #7. Meanwhile, the receiving side restarts the reordering timer and updates the VR(X) to the current VR(H), i.e. VR(X) = 10.
[0106] Figure 3(f) is another example of the ACK mode window of the receiving side. In the example of Figure 3(f), after the example of Figure 3(e), the reordering timer of the receiving side expires again, then the receiving side updates the VR(MS) to the VR(X) and the sequence number of the first packet after the VR(X) that is not correctly received, i.e. the VR(MS) is updated to 10, then the receiving side generates a status report for feeding back the transmission status of the packets before packet #10.
[0107] 6. Polling retransmission timer (denoted as t-PollRetransmit)
[0108] The polling retransmission timer is used by the sending side for polling retransmission. That is, whenever the polling retransmission timer of the sending side expires, the sending side sends one or more polling packets to the receiving side, which triggers the receiving side to send a status report for feeding back the transmission status of the packets within the ACK mode window of the receiving side.
[0109] 7. Status prohibit timer (denoted as t-StatusProhibit)
[0110] The status prohibit timer is used by the receiving side for prohibiting the transmission of a status protocol data unit (PDU) (STATUS PDU). The status prohibit timer can be used to control the frequency of sending status reports by the receiving side to the sending side. After the receiving side sends a status report, the status prohibit timer is started, and during the running of the status prohibit timer, the receiving side is not allowed to send a status report. Only after the status prohibit timer expires, the receiving side is allowed to send a status report.
[0111] The above introduces some variables related to the ACK mode. The detailed meanings of the above variables can be referred to the descriptions in the relevant chapters of the 3GPP TS 36 322 protocol or the 3GPP TS 38 322 protocol.
[0112] Figure 4(a) is an example diagram of packet transmission. In this example, the receiving side will actively send a status report to request the sending side to retransmit the packet if it receives a polling packet or the reordering timer of the receiving side expires. The sending side will retransmit the corresponding packet based on the status report. If the receiving side correctly receives the packet corresponding to VR(R), it can slide the acknowledgement mode window of the receiving side. Taking the example of Figure 2, if the sending side retransmits packet #3 and the receiving side correctly receives packet #3, the acknowledgement mode window of the receiving side is slid by one packet, i.e., VR(R) is updated to 4 and VR(MR) is updated to 32772.
[0113] However, when the above-mentioned manner simultaneously satisfies the following three conditions, the data retransmission mechanism of the sending side will fail, the receiving side cannot send a status report, and the sending side cannot retransmit the packet that is not correctly transmitted based on the status report, forming a dead loop and causing the acknowledgement mode window of the receiving side to fail to slide. Referring to Figure 4(b), the three conditions include:
[0114] Condition 1: The polling mechanism of the sending side fails to trigger the sending of a polling packet.
[0115] Condition 2: The sending side has no packet to be retransmitted and no new packet to be sent.
[0116] Condition 3: The reordering timer of the receiving side expires and VR(MS) < VR(H) is not satisfied, causing the reordering timer to fail to be restarted.
[0117] Referring to Figure 4(b), it can be seen that when the above-mentioned three conditions are simultaneously satisfied, the receiving side cannot send a status report, the sending side cannot retransmit the packet that is not correctly transmitted based on the status report, forming a dead loop, and the acknowledgement mode window of the receiving side cannot slide.
[0118] Figure 5(a) is another example diagram of packet transmission. In this example, the sending side actively detects whether one of the following conditions is satisfied, and if any of the conditions is satisfied, actively triggers a user release or a flow reconstruction process to trigger a reset process of the RLC window.
[0119] Condition 1: Air interface resources cannot be obtained.
[0120] Condition 2: The number of packet retransmissions reaches a threshold.
[0121] Referring to Figure 5(b), it can be seen that when the sending side has no data to be retransmitted, the sending side cannot detect air interface quality and determine whether the number of retransmissions reaches a threshold, and thus cannot trigger a reset process of the RLC window, which can also cause the acknowledgement mode window of the receiving side to fail to slide.
[0122] For the example of FIG. 4(a) or FIG. 5(a), since the acknowledgement mode window on the receiving side cannot slide, the messages that have been correctly received within the acknowledgement mode window cannot be submitted to the upper layer, which causes these messages that fail to be submitted in time to occupy the memory on the receiving side or the relevant resource items bound to the instance for a long time, and further can form an attack mode of the air interface data plane, thereby causing system downtime and a decrease in serviceable capacity.
[0123] To solve the above problems, the present application provides corresponding solutions.
[0124] The method provided by the embodiments of the present application is described in detail below. The method provided by the embodiments of the present application involves a first communication device and a second communication device. The first communication device is a receiving end device, and the second communication device is a sending end device. In the case where no special description is made, the "first communication device" in the present application can refer to a communication device (for example, a network device, a terminal device, a receiving device, etc.), a component (for example, a processor, a chip, or a chip system, etc.) in the communication device, or a logic module or software capable of realizing all or part of the functions of the communication device. The "second communication device" in the present application can refer to a communication device (for example, a terminal device, a network device, a sending device, etc.), a component (for example, a processor, a chip, or a chip system, etc.) in the communication device, or a logic module or software capable of realizing all or part of the functions of the communication device.
[0125] FIG. 6 is a flow diagram of a communication method provided by an embodiment of the present application. The method includes the following steps:
[0126] In step 601, when the first lower boundary of the acknowledgement mode window is less than the first sequence number at the first time, the first communication device starts a first timer.
[0127] In the present application, the first timer is also referred to as a protection timer (t-ProtectionTimer).
[0128] The first sequence number is the maximum sequence number of the messages received within the acknowledgement mode window at the first time + 1.
[0129] In this embodiment, VR(R) is used to represent the lower boundary of the acknowledgement mode window, and VR(H) is used to represent the maximum sequence number of the messages received within the acknowledgement mode window + 1. The message with the maximum sequence number received herein can be the complete fragment of the message, that is, the message is completely received, or can be the partial fragment of the message, that is, the message is not completely received.
[0130] In the present application, the first lower boundary of the window of the first time is denoted as VR(R)#1, and the maximum sequence number of the received packet in the window of the first time plus 1 is denoted as VR(H)#1 (i.e. the first sequence number). Therefore, the value of VR(R) at the first time is VR(R)#1, and the value of VR(H) at the first time is VR(H)#1.
[0131] As an implementation method, the step 601 can be specifically: when VR(R)#1<VR(H)#1, and one or more of the following conditions 1-5 is met, starting the first timer.
[0132] Condition 1: the value of the second parameter is greater than or equal to the first sequence number, and the value of the second parameter is the upper boundary of the packet in the allowed status report.
[0133] In the present application, the second parameter can be denoted as VR(MS), and the value of VR(MS) at the first time is denoted as VR(MS)#1. Therefore, the condition 1 can also be expressed as: VR(MS)#1≥VR(H)#1.
[0134] Condition 2: the number of packets correctly received in the window of the first time but not sent to the upper layer is greater than a preset first threshold.
[0135] The value of the first threshold is related to the size of the resources available to the system. For example, assuming that the size of the window of the first communication device is 32768, if the first communication device can only buffer a maximum of 12000 packets, the first threshold can be set to a value slightly smaller than 12000, such as setting the first threshold to 10000, etc.
[0136] Condition 3: the time length during which the lower boundary of the window of the first time is not updated is greater than a preset first time length.
[0137] The condition 3 can also be expressed as: the time length during which VR(R) is not updated is greater than a preset first time length.
[0138] Condition 4: after sending the status report, a retransmission packet is not received within a preset second time length, and the retransmission packet is a packet that is not correctly received and fed back by the status report.
[0139] Condition 5: the time length from the last time the status report is sent is greater than a preset third time length.
[0140] Condition 6: the number of times of sending a negative acknowledgement (NACK) corresponding to the packet not correctly received exceeds a preset second threshold.
[0141] Exemplarily, the duration of the first timer can be pre-defined by a protocol, or pre-configured, or equal to the service tolerance delay, or equal to the reliability tolerance delay.
[0142] In the case of setting the duration of the first timer based on the service tolerance delay, if the duration of the first timer is set to be less than the service tolerance delay, it can cause more service packet loss and affect the service throughput; if the duration of the first timer is greater than the service tolerance delay, it can cause the service to be interrupted in advance. Therefore, setting the duration of the first timer to be equal to the service tolerance delay can achieve the best service experience.
[0143] In the case of setting the duration of the first timer based on the reliability tolerance delay, if the duration of the first timer is set to be less than the reliability tolerance delay, it can cause more service packet loss and affect the service throughput; if the duration of the first timer is greater than the reliability tolerance delay, it can cause the receiving side to enter the reduced service stage in advance and affect the user experience. Therefore, setting the duration of the first timer to be equal to the reliability tolerance delay can ensure that the system is in the best service stage.
[0144] It should be noted that if the duration of the first timer is determined based on the service tolerance delay, the duration of the first timer can also be greater than or less than the service tolerance delay. That is, as long as the duration of the first timer is determined based on the service tolerance delay, it belongs to the protection scope of the present application.
[0145] It should be noted that if the duration of the first timer is determined based on the reliability tolerance delay, the duration of the first timer can also be greater than or less than the reliability tolerance delay. That is, as long as the duration of the first timer is determined based on the reliability tolerance delay, it belongs to the protection scope of the present application. Optionally, the first timer also satisfies any one or more of the following conditions A, condition B or condition C.
[0146] Condition A, the duration of the first timer is greater than N*duration of the reordering timer, wherein N is an integer greater than 1.
[0147] Condition B, the duration of the first timer is greater than the duration of the state prohibit timer.
[0148] Condition C, the duration of the first timer is greater than the duration of the retransmission poll timer.
[0149] Step 602, when the first timer expires, the first communication device sends a first status report.
[0150] The first status report is used to indicate that all the messages before VR(R)#2 have been correctly received, wherein the messages before VR(R)#2 include the incorrectly received messages. VR(R)#2 is the updated value of VR(R) after the first timer expires, that is, the value of VR(R) is updated from VR(R)#1 to VR(R)#2. The VR(R)#2 is also referred to as the updated second lower boundary of the acknowledgement mode window.
[0151] Based on the above scheme, when the first timer expires, the first communication device actively gives up the incorrectly received messages and sends the first status report, although there are still incorrectly received messages, which is used to indicate that all the messages before the updated second lower boundary of the acknowledgement mode window have been correctly received. In this way, the acknowledgement mode window can be timely slid, the messages can be prevented from occupying the memory or the related resource items bound to the instance for a long time, the load can be reduced, and the security can be improved.
[0152] The running mode of the first timer is described in detail below.
[0153] I. Starting of the first timer
[0154] In step 601, when the first timer is started, the first communication device also sets the value of the first parameter (denoted as VR(P)) to VR(H)#1.
[0155] II. Expiration of the first timer
[0156] As an implementation method, when the first timer expires, the first communication device also updates the value of VR(R) to VR(P) and the sequence number of the first incorrectly received message after VR(P). If the message corresponding to VR(P) is not correctly received, the value of VR(R) is updated to VR(P). If the message corresponding to VR(P) is correctly received, the value of VR(R) is updated to the sequence number of the first incorrectly received message after VR(P). After updating VR(R), the first communication device also sends the messages that have been correctly received between VR(R)#1 (that is, the first lower boundary) and VR(R)#2 (that is, the second lower boundary) to the upper layer of the first communication device.
[0157] As an implementation method, when the first timer expires and after updating VR(R), if the updated VR(R) is less than VR(H) and VR(MS) is greater than or equal to VR(H), the first timer is reset, and VR(P) is updated to VR(H).
[0158] As an implementation method, when the first timer expires and the VR(R) is updated, if the updated VR(R) is less than the VR(H) and one or more of the above conditions 2-6 are met, the first timer is reset and the VR(P) is updated to be equal to the VR(H).
[0159] III. During the running of the first timer
[0160] As an implementation method, during the running of the first timer, if the VR(R) = VR(H), the first communication device stops the first timer. For example, after the step 601, during the running of the first timer, if at a second time the VR(R) = VR(H), the VR(H) being the maximum sequence number + 1 of the packets received within the acknowledgement mode window at the second time, the first communication device stops the first timer. Here, the VR(R) at the second time is also referred to as the third lower boundary of the acknowledgement mode window, and the VR(H) at the second time is also referred to as the second sequence number.
[0161] As an implementation method, after the first timer is stopped, the first communication device sends a status report to the second communication device, the status report indicating that all the packets before the updated VR(R) have been correctly received. Here, the updated VR(R) is the third lower boundary.
[0162] As an implementation method, during the running of the first timer, if the VR(R) ≥ VR(P), the VR(R) < VR(H) and the VR(MS) ≥ VR(H), the first timer is restarted. For example, the first timer is started at a fourth time before the first time, and the VR(P) is set to be the third sequence number, the third sequence number being the VR(H) at the fourth time. The step 601 can be specifically that when the VR(R) at the first time (i.e., the first lower boundary) is less than the VR(H) at the first time (i.e., the first sequence number), the VR(R) at the first time is greater than or equal to the VR(P) at the first time, and the VR(MS) at the first time is greater than or equal to the VR(H) at the first time, the first timer is restarted.
[0163] As an implementation method, after the first timer is restarted, the first communication device updates the VR(P) to be the VR(H) at the first time.
[0164] As an implementation method, during the running of the first timer, if the VR(MS) < VR(H), the first communication device can stop the first timer.
[0165] As an implementation method, during the running of the first timer, if one or more of the above conditions 2-5 are not met, the first communication device can stop the first timer.
[0166] The embodiment of FIG. 6 of the present application is described below in combination with a specific example.
[0167] Taking the example of FIG. 3(f) as an example, since VR(R) < VR(H) and VR(MS) ≥ VR(H) are satisfied, according to the flow of FIG. 4(b), it can be seen that the reordering timer is not triggered, and thus the operation of sending a status report after the reordering timer expires also does not occur, and thus the second communication device is not actively triggered to retransmit.
[0168] The following examples of FIGS. 7(a)-7(c) introduce related operations during which the first timer expires.
[0169] FIG. 7(a) is another example diagram of the acknowledgment mode window on the receiving side. In this example, for the example of FIG. 3(f), according to the prior art, the reordering timer is not started, but according to the above scheme of the embodiment of the present application, since VR(R) < VR(H) and VR(MS) ≥ VR(H) are satisfied, the first communication device starts the first timer and records VR(P) = VR(H) = 10.
[0170] FIG. 7(b) is another example diagram of the acknowledgment mode window on the receiving side. In the example of FIG. 7(b), after the example of FIG. 7(a), if no other packets are received during the running of the first timer, then after the first timer expires, VR(R) = VR(P) = 10 is recorded. At the same time, since VR(R) = VR(H) is satisfied at this time, the first timer is not restarted.
[0171] FIG. 7(c) is another example diagram of the acknowledgment mode window on the receiving side. In the example of FIG. 7(c), after the example of FIG. 7(a), if packet #11 is correctly received and packet #10 is not correctly received during the running of the first timer, then VR(H) = 12. At this time, VR(MS) < VR(H), so the reordering timer is started, and when the reordering timer expires, VR(MS) = 12. After the first timer expires, VR(R) is updated, and VR(R) = VR(P) = 10. At the same time, since VR(R) < VR(H) and VR(MS) ≥ VR(H) are satisfied, the first timer is restarted again, and VR(P) is updated, and VR(P) = VR(H) = 12.
[0172] The following examples introduce related operations during which the first timer is running.
[0173] Example one, for the example of Fig. 7(a), after the first communication device starts the first timer, the first timer is in running state. During the running, if on the basis of the example of Fig. 7(a), message #7 and message #8 are correctly received first, and then message #5 and message #4 are correctly received, VR(R) is updated to 10. At this time, VR(R) = 10, VR(H) = 10, thus VR(R) = VR(H), and the first timer is stopped.
[0174] Example two, for the example of Fig. 7(a), after the first communication device starts the first timer, the first timer is in running state. During the running, if on the basis of the example of Fig. 7(a), message #7 and message #8 are correctly received first, and then message #4 is correctly received, VR(R) is updated to 5. At this time, VR(R) = 5, VR(P) = 10, thus VR(R) < VR(P), and no other operation is performed.
[0175] Example three, for the example of Fig. 7(a), after the first communication device starts the first timer, the first timer is in running state. During the running, if on the basis of the example of Fig. 7(a), message #11 is correctly received first, VR(H) is updated to 12, and at this time, VR(MS) < VR(H), the reordering timer is started. Then message #7 and message #8 are correctly received, when the reordering timer expires, VR(MS) is updated to 12. Then message #5 and message #4 are correctly received, VR(R) is updated to 10. Since VR(R) = 10, VR(P) = 10, thus VR(R) ≥ VR(P), and it also satisfies: VR(R) < VR(H) and VR(MS) ≥ VR(H), the first timer is restarted, and VR(P) is updated to VR(H), i.e. VR(P) = 12.
[0176] Example four, for the example of Fig. 7(a), after the first communication device starts the first timer, the first timer is in running state. During the running, if on the basis of the example of Fig. 7(a), message #11 is correctly received again, VR(H) is updated to 12, and VR(MS) remains to be 10. At this time, it satisfies: VR(MS) < VR(H), thus according to the existing protocol, the reordering timer is started, and the first timer is stopped at this time. Of course, the first timer can also not be stopped, i.e. it is automatically stopped after the first timer expires.
[0177] In summary, the scheme provided by the present application has the following beneficial effects: first, the receiving side can provide a kind of fast recovery of the sliding window of the receiving side by using the timer mechanism without depending on the action of the sending side and without releasing the RLC, which improves the robustness and reliability of the system. Second, since the receiving side can slide in time, the physical related resources can be released in time, the storage resource overhead is reduced, and the service ability of the system is improved.
[0178] It can be understood that the first communication device can include hardware structure and / or software module corresponding to each function. Those skilled in the art can easily understand that, in combination with the units and algorithm steps of each example described in the embodiments disclosed in the present document, the embodiments of the present application can be realized in the form of hardware or a combination of hardware and computer software. Whether a certain function is realized in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to realize the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0179] The embodiments of the present application can divide the functional units of the first communication device according to the above-mentioned method examples. For example, each functional unit can be divided according to each function, or two or more functions can be integrated into one unit. The integrated unit can be realized in the form of hardware or software functional unit.
[0180] In the case of integrated units, FIG. 8 shows a possible exemplary block diagram of the device involved in the embodiments of the present application. As shown in FIG. 8, the device 800 can include a processing unit 802 and a communication unit 803. The processing unit 802 is used to control and manage the actions of the device 800. The communication unit 803 is used to support the communication between the device 800 and other devices. Optionally, the communication unit 803, also known as the transceiver unit, can include a receiving unit and / or a sending unit, which are used to perform receiving and sending operations, respectively. The device 800 can also include a storage unit 801 for storing the program code and / or data of the device 800.
[0181] The device 800 can be the first communication device in the above-mentioned embodiments. The processing unit 802 can support the device 800 to perform the actions of the first communication device in the above-mentioned method embodiments. Alternatively, the processing unit 802 mainly performs the internal actions of the first communication device in the method embodiments, and the communication unit 803 can support the communication between the device 800 and other devices.
[0182] For example, in one embodiment, the processing unit 802 is configured to start a first timer when it is confirmed that a first lower boundary of a confirmation mode window at a first time is less than a first sequence number, wherein the first sequence number is a maximum sequence number + 1 of a packet received in the confirmation mode window at the first time; and the communication unit 803 is configured to send a first status report when the first timer expires, wherein the first status report is used to indicate that all the packets before an updated second lower boundary of the confirmation mode window have been correctly received, and wherein the packets before the second lower boundary include incorrectly received packets.
[0183] In a possible implementation, the processing unit 802 is further configured to, when starting the first timer, set a value of a first parameter to the first sequence number; when the first timer expires, if the packet corresponding to the first parameter has not been correctly received, the second lower boundary is a sequence number of the packet corresponding to the first parameter; or, when the first timer expires, if the packet corresponding to the first parameter has been correctly received, the second lower boundary is a sequence number of a first packet that has not been correctly received after the packet corresponding to the first parameter.
[0184] In a possible implementation, the communication unit 803 is further configured to send, to an upper layer, a packet that has been correctly received between the first lower boundary and the second lower boundary.
[0185] In a possible implementation, the processing unit 802 is further configured to, during running of the first timer, if a third lower boundary of the acknowledgement mode window at a second time is equal to a second sequence number, stop the first timer; wherein the second sequence number is a maximum sequence number of a packet that has been received in the acknowledgement mode window at the second time plus 1.
[0186] In a possible implementation, the communication unit 803 is further configured to, after the processing unit 802 stops the first timer, send a second status report, the second status report being used to indicate that all packets before the third lower boundary have been correctly received.
[0187] In a possible implementation, the processing unit 802 is further configured to, before the first time, start the first timer at a fourth time, and set a value of a first parameter to a third sequence number, the third sequence number being a maximum sequence number of a packet that has been received in the acknowledgement mode window at the fourth time plus 1; and the processing unit 802 is configured to, when the first lower boundary of the acknowledgement mode window at the first time is less than the first sequence number, start the first timer, including: when the first lower boundary is less than the first sequence number, and the first lower boundary is greater than or equal to the value of the first parameter, restarting the first timer.
[0188] In a possible implementation, the processing unit 802 is further configured to, after restarting the first timer, update the value of the first parameter to the first sequence number.
[0189] In a possible implementation, the processing unit 802 is configured to, when the first lower boundary of the acknowledgement mode window at the first time is less than the first sequence number, start the first timer, including: when the first lower boundary is less than the first sequence number, and one or more of the following conditions is met, starting the first timer.
[0190] Condition 1: the value of the second parameter is greater than or equal to the first sequence number, and the value of the second parameter is the upper boundary of the message in the status report allowed to be sent;
[0191] Condition 2: the number of messages correctly received but not sent to the upper layer within the acknowledgement mode window is greater than a preset first threshold value;
[0192] Condition 3: the time length during which the lower boundary of the acknowledgement mode window is not updated is greater than a preset first time length;
[0193] Condition 4: after sending the status report, a retransmission message is not received within a preset second time length, and the retransmission message is a message not correctly received and fed back by the status report;
[0194] Condition 5: the time length from the last time the status report is sent is greater than a preset third time length;
[0195] Condition 6: the number of times of sending a negative acknowledgement corresponding to the message not correctly received exceeds a preset second threshold value.
[0196] In a possible implementation method, the time length of the first timer is equal to the service tolerance delay or the reliability tolerance delay.
[0197] It should be understood that the division of the units in the above apparatus is only a logical functional division, and all or part of the units can be integrated into one physical entity or physically separated in actual implementation. The units in the apparatus can all be implemented in the form of software invoked by a processing element; or all be implemented in the form of hardware; or part of the units are implemented in the form of software invoked by a processing element, and part of the units are implemented in the form of hardware. For example, each unit can be a separately established processing element, or can be integrated in a chip of the apparatus, in addition, the unit can also be stored in the form of a program in a memory, and the function of the unit is invoked and executed by a processing element of the apparatus. In addition, all or part of the units can be integrated together or independently implemented. The processing element mentioned herein can be a processor, which can be an integrated circuit with a signal processing capability. In the implementation process, each operation of the above method or each unit can be implemented by an integrated logic circuit of hardware in the processing element or in the form of software invoked by the processing element.
[0198] In one example, the units in any of the above apparatuses can be one or more integrated circuits configured to implement one or more of the above methods, for example, one or more application specific integrated circuits (ASICs), or, one or more digital singnal processors (DSPs), or, one or more field programmable gate arrays (FPGAs), or a combination of at least two of these integrated circuit forms. In another example, when the units in the apparatuses can be implemented in the form of a processing element scheduler, the processing element can be a processor, such as a general purpose central processing unit (CPU), or other processor capable of invoking a program. In yet another example, the units can be integrated together to be implemented in the form of a SoC.
[0199] The above receiving unit is an interface circuit of the apparatus for receiving signals from other apparatuses. For example, when the apparatus is implemented in the form of a chip, the receiving unit is an interface circuit of the chip for receiving signals from other chips or apparatuses. The above transmitting unit is an interface circuit of the apparatus for transmitting signals to other apparatuses. For example, when the apparatus is implemented in the form of a chip, the transmitting unit is an interface circuit of the chip for transmitting signals to other chips or apparatuses.
[0200] Based on the same technical concept, the embodiments of the present application further provide a communication apparatus, which is configured to implement the functions of the first communication apparatus in the above embodiments. As shown in FIG. 9, the apparatus can be a communication device or a component (for example, a processor, a chip, or a chip system, etc.) in a communication device. The apparatus includes a processor 901 and a communication interface 902, and optionally further includes a memory 903. The memory 903 can be independent of the processor 901, or can be integrated in the processor 901, which is not limited specifically. It can be understood that FIG. 9 only shows the main components of the communication apparatus. In addition, the communication apparatus can further include an input / output device (not shown in the figure).
[0201] The processor 901 is configured to execute the program code stored in the memory 903, and specifically configured to execute the actions of the processing unit 802 described above, which will not be repeated here. The communication interface 902 is specifically configured to execute the actions of the communication unit 803 described above, which will not be repeated here.
[0202] The processor 901 can be a CPU, or a digital processing unit, etc. The processor 901 can be used to process communication protocols and communication data, control the whole communication device, execute software programs, process data of the software programs, such as but not limited to baseband related processing. The communication interface 902 can be used to transceive signals, such as but not limited to radio frequency signals. The above-mentioned devices can be respectively arranged on independent chips, or at least partially or entirely arranged on the same chip. For example, the processor 901 can be further divided into an analog baseband processor and a digital baseband processor. The analog baseband processor can be integrated on the same chip as the transceiver, and the digital baseband processor can be arranged on an independent chip. With the continuous development of integrated circuit technology, more and more devices can be integrated on the same chip, for example, the digital baseband processor can be integrated on the same chip as various application processors, such as but not limited to a graphics processor, a multimedia processor, etc. Such a chip can be referred to as a system on chip. Whether to arrange the devices independently on different chips or to integrate them on one or more chips often depends on the specific needs of product design. The embodiments of the present application do not limit the specific implementation forms of the above-mentioned devices.
[0203] The communication interface 902 can be a transceiver, an interface circuit such as a transceiving circuit, etc., or a transceiving chip, etc. Optionally, the communication interface 902 can include a radio frequency circuit and an antenna, the radio frequency circuit being mainly used for conversion between a baseband signal and a radio frequency signal and processing of the radio frequency signal. The antenna is mainly used for transceiving radio frequency signals in the form of electromagnetic waves. Input and output devices, such as a touch screen, a display screen, a keyboard, etc., are mainly used to receive user input data and output data to the user.
[0204] The memory 903 is used to store programs executed by the processor 901. The memory 903 can be a non-volatile memory, such as a hard disk (HDD) or a solid-state drive (SSD), etc., and can also be a volatile memory, such as a random-access memory (RAM). The memory 903 is any other medium capable of carrying or storing desired program codes in the form of instructions or data structures and capable of being accessed by a computer, but is not limited thereto.
[0205] When the communication device is powered on, the processor 901 can read the software program in the memory 903, interpret and execute the instructions of the software program, and process the data of the software program. When data needs to be transmitted wirelessly, the processor 901 performs baseband processing on the data to be transmitted, and outputs the baseband signal to the radio frequency circuit. The radio frequency circuit performs radio frequency processing on the baseband signal, and transmits the radio frequency signal in the form of electromagnetic waves through the antenna. When data is transmitted to the communication device, the radio frequency circuit receives the radio frequency signal through the antenna, converts the radio frequency signal into a baseband signal, and outputs the baseband signal to the processor 901. The processor 901 converts the baseband signal into data and processes the data.
[0206] In another implementation, the radio frequency circuit and the antenna can be arranged independently of the processor that performs baseband processing, for example, in a distributed scenario, the radio frequency circuit and the antenna can be arranged remotely from the communication device.
[0207] The specific connection medium between the communication interface 902, the processor 901 and the memory 903 in the embodiments of the present application is not limited. In FIG. 9, the memory 903, the processor 901 and the communication interface 902 are connected through the bus 904, and the connection mode between other components is only schematically illustrated and is not limited. The bus can be divided into an address bus, a data bus, a control bus, etc. For convenience of representation, only one thick line is shown in FIG. 9, but it does not mean that there is only one bus or only one type of bus.
[0208] Optionally, the communication device can be a stand-alone device or can be part of a larger device. For example, the communication device can be:
[0209] (1) a stand-alone integrated circuit (IC), or a chip, or a chip system or subsystem;
[0210] (2) a set of one or more ICs, which can optionally also include storage components for storing data and instructions;
[0211] (3) an application specific integrated circuit (ASIC), such as a modem;
[0212] (4) a module that can be embedded in other devices;
[0213] (5) a receiver, a smart terminal, a wireless device, a handset, a mobile unit, a vehicle-mounted device, a cloud device, an artificial intelligence device, etc.
[0214] (6) others, etc.
[0215] In the embodiments of the present application, "multiple" can mean two or more than two. Therefore, in the embodiments of the present application, "multiple" can also be understood as "at least two". "At least one" can be understood as one or more, for example, one, two or more. For example, "including at least one" means including one, two or more, for example, including at least one of A, B and C, and the included can be A, B, C, A and B, A and C, B and C, or A, B and C. "And / or" describes the association relationship of the associated objects, and there can be three kinds of relationships, for example, A and / or B, which can represent three cases: A exists alone, A and B exist together, and B exists alone. In addition, the character " / ", if not specially stated, generally represents an "or" relationship between the front and rear associated objects.
[0216] In addition, the terms "system" and "network" in the embodiments of the present application can be used interchangeably, and "according to" and "based on" can be used interchangeably. The ordinal numbers "first", "second" and the like mentioned in the embodiments of the present application are generally used to distinguish different objects, and are not used to limit the order, time sequence, priority or importance of multiple objects. For example, the first communication device in the embodiments of the present application is used to distinguish two communication devices, and does not limit the priority or importance of the two communication devices.
[0217] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system or a computer program product. Therefore, the present application can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer usable program code.
[0218] The present application is described with reference to flowcharts and / or block diagrams according to the methods, devices (systems) and computer program products of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of the flows and / or blocks in the flowcharts and / or block diagrams can be realized by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device for implementing the functions specified in one or more flows in the flowcharts and / or one or more blocks in the block diagrams.
[0219] These computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instructions which implement the function specified in the flowchart or flowchart(s) and / or block diagram block or blocks.
[0220] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart or flowchart(s) and / or block diagram block or blocks.
Claims
1. A communication method characterized by comprising: The method comprises the following steps: starting a first timer when a first lower boundary of the acknowledgement mode window is less than a first sequence number at a first time point, wherein the first sequence number is a maximum sequence number of a packet received in the acknowledgement mode window at the first time point plus 1; sending a first status report when the first timer expires, wherein the first status report is used to indicate that all the packets before an updated second lower boundary of the acknowledgement mode window have been correctly received, and wherein the packets before the second lower boundary include incorrectly received packets.
2. The method of claim 1, wherein, The method further comprises the following steps: setting a value of a first parameter to the first sequence number when the first timer is started; when the first timer expires, if a packet corresponding to the first parameter has not been correctly received, the second lower boundary is a sequence number of the packet corresponding to the first parameter; or when the first timer expires, if the packet corresponding to the first parameter has been correctly received, the second lower boundary is a sequence number of a first incorrectly received packet after the packet corresponding to the first parameter.
3. The method of claim 2, wherein, The method further comprises the following steps: sending, to an upper layer, correctly received packets between the first lower boundary and the second lower boundary.
4. The method of any one of claims 1 to 3, wherein, The method further comprises the following steps: stopping the first timer when a third lower boundary of the acknowledgement mode window is equal to a second sequence number at a second time point during running of the first timer, wherein the second sequence number is a maximum sequence number of a packet received in the acknowledgement mode window at the second time point plus 1.
5. The method of claim 4, wherein, The method further comprises the following steps: sending a second status report after the first timer is stopped, wherein the second status report is used to indicate that all the packets before the third lower boundary have been correctly received.
6. The method of claim 1, wherein, The method further comprises the following steps: starting the first timer at a fourth time point before the first time point and setting a value of a first parameter to a third sequence number, wherein the third sequence number is a maximum sequence number of a packet received in the acknowledgement mode window at the fourth time point plus 1; the step of starting the first timer when the first lower boundary of the acknowledgement mode window is less than the first sequence number comprises the following steps: when the first lower boundary is less than the first sequence number and the first lower boundary is greater than or equal to the value of the first parameter, restarting the first timer.
7. The method of claim 6, wherein, The method further comprises the following steps: updating the value of the first parameter to the first sequence number after the first timer is restarted.
8. The method of any one of claims 1 to 7, wherein, the step of starting the first timer when the first lower boundary of the acknowledgement mode window is less than the first sequence number comprises the following steps: starting the first timer when the first lower boundary is less than the first sequence number and one or more of the following conditions are met; condition 1: a value of a second parameter is greater than or equal to the first sequence number, and the value of the second parameter is an upper boundary of a packet in a status report allowed to be sent; condition 2: a number of packets correctly received in the acknowledgement mode window but not sent to the upper layer is greater than a preset first threshold value; condition 3: a time length during which a lower boundary of the acknowledgement mode window has not been updated is greater than a preset first time length. Condition 4: after sending the status report, no retransmission packet is received within a preset second time length, the retransmission packet being the packet that is not correctly received and fed back by the status report; Condition 5: a third time length is exceeded since the last time the status report is sent; Condition 6: the number of times of sending the negative acknowledgement corresponding to the packet that is not correctly received exceeds a preset second threshold.
9. The method of any one of claims 1 to 8, wherein, The first timer has a time length equal to a service tolerance delay or a reliability tolerance delay.
10. A communications device, characterized by The communication system comprises a first communication device and a second communication device; wherein the first communication device is configured to perform the method according to any one of claims 1 to 9.
11. A communication system, characterized by The communication system comprises a first communication device and a second communication device; wherein the first communication device is configured to perform the method according to any one of claims 1 to 9.
12. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, and when part or all of the computer program is executed by a computer, the method according to any one of claims 1 to 9 is performed.
13. A computer program product, characterised in that, When the computer reads and executes the computer program product, the method according to any one of claims 1 to 9 is performed.
Citation Information
Patent Citations
Management method for automatic retransmission request window
CN101478380A
State report trigger method and device
CN102025471A
Method of triggering status report of acknowledged mode of radio link control layer and communication system
CN108566264A
Method and apparatus for managing sliding window in IP security
US20040202110A1
Method and apparatus for transmitting multicast broadcast service in acknowledged mode, and device and storage medium
WO2022121876A1