Data flow control method and electronic device therefor

The electronic device adjusts reception window sizes based on BDP and latency sensitivity to reduce network congestion and latency, addressing XR application delays and improving user experience.

WO2025150843A1PCT designated stage expired Publication Date: 2025-07-17SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/000325
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-22
Filing Date
2025-01-07
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

Extended reality (XR) applications experience delays due to network latency, which can cause user discomfort and disorientation, and existing methods fail to effectively minimize latency in data transmission across networks.

Method used

An electronic device controls data flow by adjusting the size of the reception window based on bandwidth delay product (BDP) and latency sensitivity of data sessions, reducing network congestion and latency without modifying the network end.

Benefits of technology

This approach effectively reduces network latency and congestion, ensuring low-latency data transmission for XR applications, enhancing user experience by minimizing delays and maintaining smooth interaction with XR environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025000325_17072025_PF_FP_ABST
    Figure KR2025000325_17072025_PF_FP_ABST
Patent Text Reader

Abstract

An electronic device comprising a wireless communication circuit, a processor and a memory is disclosed. The electronic device can: change, when network congestion is identified, the size of a reception window of a data session on the basis of a bandwidth product delay (BDP) of the data session; and transmit, to a network, information including the changed size of the reception window through the data session.
Need to check novelty before this filing date? Find Prior Art

Description

Data flow control method and electronic device therefor

[0001] Embodiments disclosed in this document relate to a method for controlling data flow and an electronic device therefor.

[0002] A variety of applications utilizing extended reality (XR) are being widely released. XR can encompass various environments, such as virtual reality (VR), mixed reality (MR), and / or augmented reality (AR). For example, users can access XR applications through a head-mounted device (HMD). While XR applications were previously primarily used within local environments, XR applications that support multi-party communication are now widely used.

[0003] XR applications may require low latency. When there is a delay between the XR experience and the user's reality, the user may experience dizziness or a sense of dissonance. When video data is generated by a server and delivered to a user, a delay may occur due to the server's video buffer generation. Furthermore, a delay may occur in encoding the video data. Furthermore, a network delay may occur when delivering the encoded video data to the user device. A delay may also occur due to the decoding of the video data on the user device. When providing the decoded video data to the user, a delay may occur due to the display's frame rate.

[0004] The 3rd Generation Partnership Project (3GPP) has proposed various latency requirements for XR. For example, the latency of visual information changes due to user actions (e.g., motion-to-photon (MTP) latency) is less than 20ms. For example, if XR is delivered over a network, minimizing network latency is required to meet the latency requirements.

[0005] The above information may be provided as background information to aid in understanding the present disclosure. No claim or determination is made as to whether any of the above is applicable as prior art in connection with the present disclosure.

[0006] An electronic device according to an embodiment disclosed in the present document may include a wireless communication circuit, at least one processor, and a memory storing instructions. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to perform the following operations. The electronic device may use the wireless communication circuit to communicate with a network through a data session. In the case of identifying congestion in the network, the electronic device may change the size of a reception window of the data session from a first value to a second value based on a data bandwidth delay product (BDP). The electronic device may use the wireless communication circuit to transmit information about the second value associated with the changed size of the reception window for the data session.

[0007] An electronic device according to an embodiment disclosed in the present document may include a wireless communication circuit, at least one processor, and a memory storing instructions. The instructions, when individually or collectively executed by the at least one processor, may cause the electronic device to perform the following operations. The electronic device may communicate with a network through a first data session and a second data session using the wireless communication circuit. The electronic device may identify latency sensitivity of the first data session and the second data session based on at least one of a quality of service (QoS), a flow characteristic, a data type, or an application attribute. The electronic device may reduce the size of the reception window of the first data session from a first value to a second value based on a bandwidth delay product (BDP) of the first data session, independent of the size of the reception window of the second data session, when congestion of the network is identified and the latency sensitivity of the second data session is higher than the latency sensitivity of the first data session. The electronic device may transmit information about the second value related to the changed size of the reception window for the first data session through the first data session.

[0008] A method for controlling data flow according to an embodiment disclosed in the present document may include: communicating with a network via a data session; in case of congestion identification of the network, changing the size of a receive window of the data session from a first value to a second value based on a BDP of the data session; and transmitting information about the second value associated with the changed size of the receive window for the data session.

[0009] A method for controlling a data flow according to an embodiment disclosed in the present document may include: communicating with a network through a first data session and a second data session; identifying latency sensitivities of the first data session and the second data session based on at least one of a quality of service (QoS), a flow characteristic, a data type, or an application property; reducing a size of a receive window of the first data session from a first value to a second value based on a bandwidth delay product (BDP) of the first data session, regardless of a size of a receive window of the second data session, when congestion of the network is identified and the latency sensitivity of the second data session is higher than the latency sensitivity of the first data session; and transmitting, through the first data session, information about the second value related to the changed size of the receive window for the first data session.

[0010] A computer-readable storage medium according to an embodiment disclosed in this document can store instructions that, when executed by a processor of an electronic device, cause the electronic device to perform a method for controlling the data flow.

[0011] Figure 1 illustrates an extended reality environment according to an example.

[0012] Figure 2 illustrates a communication environment of an electronic device according to one embodiment.

[0013] FIG. 3 illustrates data flow between electronic devices according to one embodiment.

[0014] FIG. 4 illustrates a network buffer of an electronic device according to one embodiment.

[0015] FIG. 5 is a signal flow diagram for data flow control of an electronic device according to one embodiment.

[0016] FIG. 6 illustrates a data session of an electronic device according to one embodiment.

[0017] FIG. 7 illustrates a flowchart of a method for controlling a data session of an electronic device according to one embodiment.

[0018] FIG. 8 illustrates a flowchart of a method for determining whether to control a data session of an electronic device according to one embodiment.

[0019] FIG. 9 illustrates a delay sensitive session priority mode UI of an electronic device according to one embodiment.

[0020] FIG. 10 illustrates a method for determining a delay control mode of an electronic device according to one embodiment.

[0021] FIG. 11 illustrates data sessions of an electronic device according to one embodiment.

[0022] FIG. 12 illustrates a flowchart of a method for controlling a data session of an electronic device according to one embodiment.

[0023] FIG. 13 illustrates a flowchart of a method for determining whether to control a data session of an electronic device according to one embodiment.

[0024] FIG. 14 illustrates a method for determining a delay control mode of an electronic device according to one embodiment.

[0025] FIG. 15 is a block diagram of an electronic device within a network environment according to various embodiments.

[0026] In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components.

[0027] Hereinafter, various embodiments of the present invention will be described with reference to the attached drawings. However, this is not intended to limit the present invention to specific embodiments, and it should be understood that the present invention encompasses various modifications, equivalents, and / or alternatives of the embodiments.

[0028] Figure 1 illustrates an extended reality environment according to an example.

[0029] Referring to FIG. 1, a user (99) can experience extended reality using an electronic device (10).

[0030] For example, a user (99) may view a virtual image (91) displayed on a display of an electronic device (10). The virtual image (91) may include an image having a depth specified by the user (99). For example, the electronic device (10) may form the depth of the virtual image (91) using two images based on binocular disparity. The virtual image (91) may be displayed by being mapped on a real space, a real space image, and / or a virtual space image.

[0031] In the example of FIG. 1, the electronic device (10) is illustrated as a head mounted device (HMD), but embodiments of the present disclosure are not limited thereto. The electronic device (10) may be, for example, any device configured to provide XR (e.g., a device installed with an application configured to provide XR content). The electronic device (10) may be configured to support user (99) interaction with XR. For example, the user (99) may interact with a virtual image (91) (e.g., XR content). The electronic device (10) may be configured to detect the user's (99) interaction. For example, the electronic device (10) may identify a gesture from an image of at least a part of the user's (99) body (e.g., a hand, a foot, and / or an eye) using at least one camera. The electronic device (10) may process the identified gesture as an input for XR (e.g., XR content). For example, the electronic device (10) can acquire the voice of the user (99) using at least one microphone and identify the user input based on the acquired voice. For example, the electronic device (10) can detect the input of the user (99) using at least one peripheral device. For example, the electronic device (10) can detect the user input (e.g., the user action) using a wired and / or wirelessly connected peripheral device (e.g., a wearable device).

[0032] According to one embodiment, the electronic device (10) may be configured to provide XR based on wired and / or wireless communication. For example, the electronic device (10) may receive a video stream corresponding to the surrounding environment of the user (99) from a network. For example, the electronic device (10) may transmit user input (e.g., user movement and / or interaction by user input) to the network. During the process of transmitting and receiving data through the network, the user (99) may experience delay due to network latency.

[0033] According to one embodiment of the present disclosure, an electronic device (10) can reduce network latency through data flow control. For example, the electronic device (10) can control data flow by controlling information on the remaining amount of a reception buffer (e.g., the size of a reception window). The electronic device (10) can control data flow associated with the electronic device (10) by transmitting information on the controlled remaining amount of a reception buffer to a network (e.g., a transmitting end). Through data flow control by the electronic device (10), network congestion can be reduced, and the delay of data flow associated with the electronic device (10) can be improved. Through data flow control by the electronic device (10), network delay can be reduced without modifying the network end.

[0034] Hereinafter, various operations of the electronic device (10) may be described with reference to FIGS. 2 to 15. The operations described below may be referred to as operations of a data flow control method of the electronic device (10). Those skilled in the art will understand that, according to the following disclosure, there may be various examples for one operation. For convenience of explanation, the examples are described with a focus on XR, but the embodiments of the present disclosure are not limited thereto. For example, those skilled in the art will understand that the examples described below may be applied to any data communication having high latency sensitivity (e.g., low delay tolerance).

[0035] Figure 2 illustrates a communication environment of an electronic device according to one embodiment.

[0036] Referring to FIG. 2, according to one embodiment, the electronic device (10) may include a processor (120), a memory (130), an interface (140), a sensor (150), a display (160), a speaker (170), a camera (180), and / or a communication circuit (190). For example, the electronic device (10) may include a configuration similar to the electronic device (1501) with respect to FIG. 15. The electronic device (10) may be referred to as any user device. For example, the processor (120) may correspond to the processor (1520) of FIG. 15. The memory (130) may correspond to the memory (1530) of FIG. 15. The interface (140) may correspond to the interface (1577) of FIG. 15. The sensor (160) may correspond to the sensor module (1576) of FIG. 15. The display (160) may correspond to the display module (1560) of FIG. 15. The speaker (170) may correspond to the audio module (1570) of FIG. 15. The camera (180) may correspond to the camera module (1580) of FIG. 15. The communication circuit (190) may correspond to the communication module (1590) of FIG. 15. The configuration of the electronic device (10) illustrated in FIG. 2 is exemplary, and the configuration of the electronic device (10) is not limited thereto. For example, the electronic device (10) may further include configurations not illustrated in FIG. 2. For example, the electronic device (10) may not include at least one of the configurations illustrated in FIG. 2.

[0037] The processor (120) may be electrically, operatively, or functionally connected to memory (130), an interface (140), a sensor (150), a display (160), a speaker (170), a camera (180), and / or communication circuitry (190). In various embodiments of the present disclosure, when a component is “operatively” connected to another component, it may mean that the component is connected so as to be able to operate the other component. For example, the component may operate the other component by transmitting a control signal to the other component, either directly or via another component. In various embodiments of the present disclosure, when a component is “functionally” connected to another component, it may mean that the component is connected so as to be able to execute a function of the other component. For example, the component may execute a function of the other component by transmitting a control signal to the other component, either directly or via another component.

[0038] The processor (120) may include at least one processor. The processor (120) may include one chip or one chipset. In the present disclosure, the processor (120) may be referred to as a hardware component having an architecture by at least one processing circuit. For example, the processor (120) may be mounted on a substrate (e.g., a printed circuit board) located within the electronic device (10) and may communicate with other components of the electronic device (10) through at least one conductive path formed on the substrate.

[0039] The memory (130) can store instructions. When executed by the processor (120), the instructions can cause the electronic device (10) to perform various operations. For example, the instructions can be individually or collectively executed by at least one processor to cause the electronic device (10) to perform various operations. In various embodiments of the present disclosure, the operation of the electronic device (10) can be referred to as an operation performed by the processor (120) by executing instructions stored in the memory (130). The memory (130) can be referred to as a hardware component for data storage.

[0040] The interface (140) may include at least one hardware component for receiving user input. For example, the interface (140) may include a touch-sensitive circuit for receiving a touch input. For example, the interface (140) may include at least one microphone for receiving a voice input. For example, the interface (140) may include any physical interface (e.g., a knob, a jog shuttle, and / or a button) for receiving a user input.

[0041] The sensor (150) may include at least one sensor for detecting information about the surrounding environment of the electronic device (10). For example, the sensor (150) may include a light sensor, a proximity sensor, an accelerometer, a barometer, a temperature sensor, and / or a distance sensor.

[0042] The display (160) may be configured to display an image in an XR environment. For example, the processor (120) may use the camera (180) to acquire a real-world image in front of the user (e.g., the direction in which the user's face is facing) and display content by overlaying it on the real-world image. In one example, the processor (120) may overlay content on a virtual space and display it. In one example, the display (160) may include a plurality of displays. For example, the display (160) may include a left-eye display and a right-eye display. In one example, the display (160) may include a display that is visible from the outside when worn by a user. The display (160) may include at least one of a see-through display, a flexible display, a rollable display, a foldable display, and / or a rigid display.

[0043] The speaker (170) may be configured to output an audio signal. For example, the speaker (170) may be configured to convert an electrical signal into an acoustic signal and output the converted acoustic signal. The electronic device (10) may include a plurality of speakers. The speaker (170) may be configured to provide, for example, spatial sound.

[0044] The camera (180) may include at least one camera module configured to acquire an image. For example, the processor (120) may use the first camera and the second camera to acquire disparity information about the surrounding environment. The camera (180) may include at least one camera configured to acquire an image of the user's surroundings when the electronic device (10) is worn by the user. The camera (180) may include at least one camera configured to acquire an image of the user (e.g., an image including the user's pupil) when the electronic device (10) is worn by the user.

[0045] The communication circuit (190) may include at least one circuit (e.g., a modem, a radio frequency integrated circuit, and / or a radio frequency processing circuit) configured to support communication between the electronic device (10) and a network (e.g., a wireless network (199)) or another electronic device (e.g., an external device (20)). The communication circuit (190) may support wired communication and / or wireless communication. The communication circuit (190) may support short-range wireless communication and / or long-range wireless communication.

[0046] According to one embodiment, the electronic device (10) may communicate with a network using the communication circuit (190). For example, the electronic device (10) may communicate with an external device (20) (e.g., an external server device) via the network. In one example, the electronic device (10) may connect to a wireless network (199) (e.g., a cellular network and / or a wireless local area network (WLAN)) using the communication circuit (190). The electronic device (10) may connect to the wireless network (199) by transmitting and receiving signals with a station (198) (e.g., an access point, a base station, or a mobile station) using the communication circuit (190). In one example, the wireless network (199) may support computing technology to reduce the delay of the electronic device (10). For example, the wireless network (199) may support edge computing. Through edge computing, the network delay of the electronic device (10) may be reduced.

[0047] In one example, a wireless network (199) may be communicatively connected to an IP network (299) via a GW (gateway, 30). The IP network (299) may be referred to as a network that supports TCP (transmission control protocol) and / or IP (internet protocol).

[0048] An electronic device (10) may transmit data to or receive data from an external device (20), for example, through at least one data session. The at least one data session may be associated with at least one radio bearer of a wireless network (199). In the present disclosure, a data flow may be referred to as a series of data transmitted and received through a data path (e.g., a data session) formed between two devices (e.g., an electronic device (10) and an external device (20)).

[0049] According to one embodiment, the electronic device (10) may be configured to implement a software structure (200). For example, the software structure (200) may be implemented by instructions stored in a memory (130) being executed by a processor (120). Components within the software structure (200) may be referred to as software modules (e.g., applications, programs, and / or threads). For example, the software structure (200) may include an XR application (210), an XR runtime module (220), a scene manager module (230), a medium access function module (240), and / or a communication system access module (290).

[0050] The XR application (210) may include any application configured to provide XR content (e.g., a game, chat, and / or social application). For example, the XR application (210) may be installed in the memory (130) of the electronic device (10) and may receive input through the interface (140).

[0051] The XR runtime module (220) may provide a set of functions that interact with the platform to perform commonly required operations. For example, the XR runtime module (220) may provide a set of functions such as controller state access, peripheral states access, current tracking position acquisition, predicted tracking position acquisition, and / or submission of rendered frames. For example, the XR runtime module (220) may track the user's current location based on input information received from the XR application (210). The XR runtime module (220) may obtain peripheral information of the electronic device (10) from the sensor (150), the speaker (170), and / or the camera (180), and transmit the obtained peripheral information to the scene manager module (230) and / or the XR application (210).

[0052] A scene manager module (230) may include a set of functions that support an application in aligning logical and spatial representations of a multisensorial scene, based on the XR runtime module (220). For example, the scene manager module (230) may update a scene of an XR environment based on a current location predicted by the XR runtime module (220). Based on the updated scene information, the XR runtime module (220) may output a rendered frame of the updated scene through the display (160).

[0053] The medium access function module (240) can enable media data (e.g., input obtained by the XR application (210)) to be communicated via a wireless network (199). The medium access function module (240) can, for example, transmit media data received from the XR application (210) to the wireless network (199) using the communication system access module (290). The communication system access module (290) can control the communication circuit (190) to process packets containing media data so that the packets can be transmitted to an external device (20) via a network (e.g., an IP network (299) and a wireless network (199)).

[0054] With reference to FIG. 2, a software structure (200) associated with XR has been described, but embodiments of the present disclosure are not limited thereto. As described above with reference to FIG. 1, those skilled in the art will appreciate that embodiments of the present disclosure can be applied to any application requiring low latency.

[0055] FIG. 3 illustrates data flow between electronic devices according to one embodiment.

[0056] Referring to FIG. 3, in one example, an electronic device may execute an application that supports an XR environment in which multiple devices participate. For example, each of the first electronic device (10a) and the second electronic device (10b) may include configurations identical or similar to those of the electronic device (10) described above with reference to FIG. 2. In the example of FIG. 3, the first electronic device (10a) may be referred to as a participant in the running application, and the second electronic device (10b) may be referred to as an observer of the running application.

[0057] For example, the application server (20a) may include a server configured to provide an XR environment. The application server (20a) may transmit streaming data (305) to the first electronic device (10a). The application server (20b) may transmit streaming data (305-1) to the second electronic device (10b).

[0058] The first electronic device (10a) can receive streaming data (305) from the application server (20a) and provide the received data through a display (e.g., display (160)). The first electronic device (10a) can transmit control data (310) to the application server (20a). For example, the control data (310) can include data (e.g., controller input, movement data, and / or biometric information) other than video data (e.g., streaming data (305-1)).

[0059] The second electronic device (10b) can receive streaming data (305-1) from the application server (20a) and provide the received data through a display (e.g., display (160)). The second electronic device (10b) can transmit control data (310-1) to the application server (20a). For example, the control data (310-1) can include controller input, movement data, and / or biometric information.

[0060] In one example, there may be multiple participants, including a first electronic device (10a). For example, a geofenced area may be utilized for quality improvement. The geofenced area may be referred to as an area supported by a spatial computing server (20b). The spatial computing server (20b) may be configured to support location registration and updates. The spatial computing server (20b) may support a group discovery protocol for participant identification and matching. For example, the spatial computing server (20b) may transmit spatial data (320) to the application server (20a) and spatial data (325) to the first electronic device (10b). The spatial data (320, 325) may include, for example, mappings and locations within space for each participant. The first electronic device (10a) can continuously or periodically transmit spatial data capture and / or updates (315) to the spatial computing server (20b). The spatial data capture and / or updates (315) can be shared among participants by the spatial computing server (20b).

[0061] As described above with respect to FIG. 3, each electronic device may be associated with at least one data session. The data sessions illustrated in FIG. 3 are exemplary, and embodiments of the present disclosure are not limited thereto. Those skilled in the art will appreciate that the data flow control method described below may be applied to one or more data sessions associated with an electronic device.

[0062] FIG. 4 illustrates a network buffer of an electronic device according to one embodiment.

[0063] Referring to FIGS. 2 and 4, according to one embodiment, the electronic device (10) may transmit and receive data via an IP network (299). For example, the electronic device (10) may transmit and receive signals with a wireless network (199) using a network interface card (NIC) 490 (e.g., a communication circuit (190)). For example, reception data of a signal received using the NIC (490) may be stored in a reception buffer (440) via a driver (480) between the NIC (490) and an operating system. For example, the reception buffer (440) may correspond to a memory area within a memory (130) of the electronic device (10) and / or a physical cache within a chip of the electronic device (10). The reception buffer (440) may be referred to as a buffer of a reception socket. In the example of FIG. 4, the receiving buffer (440) may include buffered data (460) in which the receiving data is stored and free space (fee space, 450).

[0064] Received data in the receive buffer (440) can be transmitted to the socket / TCP / IP / ETHERNET (420). The socket / TCP / IP / ETHERNET (420) can be referred to as layers between the physical layer and the application layer. Data processed through the socket / TCP / IP / ETHERNET (420) can be transmitted to the application layer (410).

[0065] Similarly, when transmitting data, the data to be transmitted can be stored in a transmission buffer (430) and then transmitted to the network via a NIC (490).

[0066] In one example, the electronic device (10) can transmit information of the receiving buffer (440) to the transmitting end. For example, the electronic device (10) can control data flow using the information of the receiving buffer (440). Hereinafter, an example of transmitting information of the receiving buffer (440) will be described with reference to FIG. 5.

[0067] FIG. 5 is a signal flow diagram for data flow control of an electronic device according to one embodiment.

[0068] Referring to FIGS. 2, 4, and 5, according to one embodiment, an electronic device (10) may communicate with a network (599). The network (599) may be referred to as, for example, a wireless network (199), an IP network (299), and / or an external device (299) (e.g., a transmitter). In the example of FIG. 5, the electronic device (10) may communicate with the network (599) via a data session. The data session may support, for example, a specified protocol (e.g., TCP).

[0069] In operation 505, the electronic device (10) may receive first data from the network (599). The first data may have a size of, for example, 2048 bytes and a sequence number of 0.

[0070] In operation 510, the electronic device (10) may transmit an ACK for the first data to the network (599). The ACK may include an acknowledgment number and window size information (e.g., information indicating the size of the receiving window). The acknowledgment number and window size information may be included in the header of the ACK (e.g., a TCP header). The acknowledgment number may indicate the sequence number of the next data of the data received by the electronic device (10) so far.

[0071] For example, the size of the receive buffer (440) of the electronic device (10) may be 4 kilobytes. In this case, the first data of operation 505 may be stored as buffer data (460) of 2 kilobytes in the receive buffer (440). At this time, the size of the free space (450) may be 2 kilobytes. The electronic device (10) may include the size of the free space (450) in the ACK (e.g., 2 kilobytes) as window size information. That is, the electronic device (10) may transmit the size of the remaining buffer as window size information to the network (599). The window size information may be included in the window size information field of the TCP header.

[0072] In operation 515, the electronic device (10) may receive second data from the network (599). The second data may have, for example, a size of 2048 bytes and a sequence number of 2048. The transmitter (e.g., the network (599)) may determine the size of the second data to be transmitted from the ACK of operation 510. For example, the transmitter may set the send window to the smallest value among the transmitter's congestion window, the advertised window (e.g., window size information included in the ACK of operation 510), and the size of the transmission buffer. For example, the transmitter may determine the size of the second data according to the size of the advertised window, which is 2048 bytes.

[0073] The electronic device (10) can buffer the received second data within the reception buffer (440). If the first data is pending within the reception buffer (440), the reception buffer (440) may become full due to the buffering of the second data.

[0074] In operation 520, the electronic device (10) may transmit an ACK for the second data to the network (599). In this case, the window size information in the ACK may indicate that there is no remaining receive buffer (e.g., 0 bytes). The ACK's acknowledgement number may indicate 4096. The network (599) may recognize from the ACK received through operation 520 that the electronic device (10) is currently in a state where it can no longer receive data. In this case, the network (599) may defer the transmission of subsequent data for at least a certain period of time.

[0075] After performing operation 520, the electronic device (10) may transfer a portion (e.g., 1024 bytes) of the buffer data within the receive buffer (440) to the socket / TCP / IP / ETHERNET (420). As some of the data is transferred from the receive buffer (440) to the upper layer, the size of the free space within the receive buffer (440) may be changed to 1024 bytes.

[0076] In operation 525, the electronic device (10) may transmit an ACK to the network (599). As the size of the free space in the receiving buffer (440) increases, the electronic device (10) may set the window size information included in the ACK to a value of 1024 bytes. The network (599) that receives the ACK of operation 525 may recognize that the electronic device (10) is in a state where it can receive subsequent data. In response to receiving the ACK of operation 599, the network (599) may transmit subsequent data of the second data to the electronic device (10).

[0077] As described above with reference to FIG. 5, the electronic device (10) can control data flow by setting window size information. As described below, according to one embodiment, the electronic device (10) can control data flow by setting window size information based on various values. Typically, the electronic device (10) can set the window size information according to the remaining capacity of the receiving buffer (440). In this case, the window size information may be set to be the same as the remaining capacity of the receiving buffer (440). In the following embodiments, the electronic device (10) can set the window size information differently from the remaining capacity of the receiving buffer (440). In the following description, in order to distinguish it from the window size information according to the receiving buffer (440), information that the electronic device (10) transmits to the network (599) (e.g., window size information included in a TCP header) may be referred to as “the size of the receiving window.” The "size of the receiving window" may be the same as the remaining capacity in the receiving buffer (440) of the actual electronic device (10), but in some examples, the "size of the receiving window" may be a different value from the remaining capacity in the receiving buffer (440) of the actual electronic device (10). Hereinafter, the "lastly advertised window" may be referred to as the size information of the window that was most recently transmitted before the size information of the window to be currently transmitted, or the size information of the receiving window of the receiving end that has already been transmitted to the transmitting end and is known. For example, at a point in time before the execution of the operation 525 after the execution of the operation 520, the "lastly advertised window" may mean the size information of the window that was transmitted in the operation 520. Hereinafter, data flow control methods according to an embodiment of the electronic device (10) may be described with reference to FIGS. 6 to 14.

[0078] FIG. 6 illustrates a data session of an electronic device according to one embodiment.

[0079] Referring to FIGS. 2 and 6, according to one embodiment, the electronic device (10) may communicate with the network (599) through a first data session (610). For example, the electronic device (10) may establish a first data session (610) (e.g., a TCP session) by transmitting and receiving signals with the network (599) using the communication circuit (190). In one example, the first data session (610) may be referred to as a data flow between the electronic device (10) and an external device (20). The electronic device (10) may be a device having an XR application installed and configured to provide XR content. The first data session (610) may be a data session for transmitting and receiving data related to the XR application.

[0080] According to one embodiment, the electronic device (10) may apply the data session control method described below with respect to FIGS. 7 to 10 to the first data session (610) if the first data session (610) is a data session of a specified type. For example, the electronic device (10) may determine whether the first data session (610) is a data session of a specified type based on requirements of the first data session (e.g., requirements on a transport layer).

[0081] For example, the first data session (610) may have high latency sensitivity (e.g., low delay tolerance). High latency sensitivity may include, for example, at least one of: a required latency less than a specified value, a priority greater than or equal to a specified value, or a quality of service (QoS) identifier of a specified value. If the first data session (610) has high latency sensitivity, the electronic device (10) may determine that the first data session (610) is a data session of the specified type.

[0082] In one example, the electronic device (10) may determine whether the type of the first data session (610) is a designated type based on a QI (QoS identifier). For example, the electronic device (10) may determine that the first data session (610) is a designated type of data session if the QI value of the radio bearer of the first data session (610) corresponds to a designated value.

[0083] In one example, the electronic device (10) may determine whether the first data session (610) is a designated type of data session based on traffic characteristics associated with the first data session (610). For example, the electronic device (10) may analyze traffic characteristics (e.g., inter-arrival time, RTT, or data packet size) for each data flow. The electronic device (10) may identify a latency sensitivity (e.g., latency requirement) and a minimum throughput (or processing rate) of the first data session (610) based on the characteristics of the data flow. If the identified latency sensitivity is greater than or equal to a designated value, the electronic device (10) may determine that the first data session (610) is a designated type of data session.

[0084] In one example, the electronic device (10) may determine whether the first data session (610) is a designated type of data session based on application properties associated with the first data session (610). For example, the application properties may include traffic requirements of the application and / or a category of the associated data session. The electronic device (10) may obtain information about the traffic requirements for the first data session (610) from the XR runtime module (220). In one example, the XR runtime module (220) may define a category for each data session based on the traffic requirements for each data session. The XR runtime module (220) may transmit the category of the first data session (610) to the application layer. The electronic device (10) may determine that the first data session (610) is a designated type of data session if the category of the first data session (610) transmitted to the application layer corresponds to the designated category.

[0085] With reference to FIG. 6, the type of the first data session (610) has been described, but embodiments of the present disclosure are not limited thereto. In one example, the electronic device (10) may apply the data session control method described below with reference to FIGS. 7 to 10 to the first data session (610), regardless of the type of the first data session (610). In the examples of FIGS. 7 to 10, it may be assumed that the electronic device (10) is communicating with the network (599) via the first data session (610).

[0086] FIG. 7 illustrates a flowchart of a method for controlling a data session of an electronic device according to one embodiment.

[0087] The operations described below with reference to FIG. 7 may be referred to as the operations of the electronic device (10) of FIG. 2. The order of the operations described below with reference to FIG. 7 is merely an example, and embodiments of the present disclosure are not limited thereto. For example, at least some of the operations may be executed differently from the order of FIG. 7, or may be executed substantially simultaneously with other operations of FIG. 7. At least some of the operations described below with reference to FIG. 7 may be omitted.

[0088] Referring to FIGS. 2, 6, and 7, in operation 705, the electronic device (10) may communicate with the network (599) via the first data session (610). For example, the electronic device (10) may establish the first data session (610) with the network (599). The electronic device (10) may establish the first data session (610) by transmitting and receiving signals with the network (599) using the communication circuit (190). Operations 710 and 715 described below may be referred to as operations performed while the first data session (610) is maintained. When the first data session (610) is released, the data session control method of FIG. 7 may be terminated without performing any additional operations.

[0089] In operation 710, if congestion of the network (599) is identified, the electronic device (10) may change the size of the receive window of the first data session (610) from a first value to a second value based on the BDP of the first data session (610). For example, the electronic device (10) may change the size of the receive window of the first data session (610) from the first value to the second value based on the detection of congestion for the network (599). If no congestion is detected, the electronic device (10) may maintain the size of the receive window of the first data session (610) at a value equal to the first value or change it to a value greater than the first value. If no congestion is detected, the electronic device (10) may set the size of the receive window of the first data session (610) according to the remaining size of the receive buffer. The changed second value may be a value based on the bandwidth of the first data session (610). A congestion detection method for a network (599) may be described later with reference to FIG. 8. A method for identifying the second value may be described later with reference to FIG. 10. For example, the first value may be referenced as an existing advertised window.

[0090] In operation 715, the electronic device (10) may transmit information about the size of the reception window of the second value of the changed first data session (610) to the network (599). For example, the electronic device (10) may include information about the size of the reception window of the first data session (610) in a header (e.g., a TCP header). Information about the size of the reception window of the first data session (610) may be included in an ACK for the received data.

[0091] For example, the second value may be a smaller value than the first value. A transmitting end (e.g., network (599)) that receives information about the size of the reception window of the second value of the first data session (610) may recognize that the amount of data that the electronic device (10) can receive is limited. As the amount of data that the electronic device can receive is limited, the transmitting end may reduce the amount of data associated with the first data session (610). For example, the transmitting end may reduce the media bitrate and / or frame rate associated with the first data session (610). As the amount of data associated with the first data session (610) is reduced, the delay of the first data session (610) may be reduced.

[0092] FIG. 8 illustrates a flowchart of a method for determining whether to control a data session of an electronic device according to one embodiment.

[0093] The operations described below with reference to FIG. 8 may be referred to as operations of the electronic device (10) of FIG. 2. The order of the operations described below with reference to FIG. 8 is merely an example, and embodiments of the present disclosure are not limited thereto. For example, at least some of the operations may be performed differently from the order of FIG. 8, or may be performed substantially simultaneously with other operations of FIG. 8. At least some of the operations described below with reference to FIG. 8 may be omitted. The operations described below with reference to FIG. 8 may be performed between operations 705 and 710 of FIG. 7.

[0094] Referring to FIGS. 2, 6, and 8, at operation 805, the electronic device (10) may determine whether congestion is detected for a network (599) (e.g., wireless network (199) of FIG. 2) associated with the first data session (610). The electronic device (10) may identify network congestion based on at least one of an explicit congestion notification (ECN) bit, a congestion window prediction, a round trip time (RTT) prediction, throughput, or retransmission. If network congestion is identified, the electronic device (10) may determine that congestion has been detected for the network (599).

[0095] In one example, the electronic device (10) can detect congestion on the network (599) based on the value of the ECN bit for the first data session (610). The electronic device (10) can detect congestion on the network (599) if the value of the ECN bit is a specified value. The ECN bit can be set, for example, in an IP header. The electronic device (10) can detect network congestion by identifying the value of the ECN bit on the network stack (e.g., socket / TCP / IP / ETHERNET (420) of FIG. 4). For example, the ECN bit can be inserted into the IP header by a network entity as a value indicating congestion when congestion is detected on the network (599). The electronic device (10) can detect congestion on the network (599) using the value of the ECN bit.

[0096] In one example, the electronic device (10) can detect congestion on the network (599) based on a congestion window prediction for the first data session (610). For a TCP session, the electronic device (10) can support dynamic right sizing (DRS). To support DRS, the electronic device (10) can determine the size of the congestion window of the network (599) based on the volume of data received within a round trip time (RTT). For example, the electronic device (10) can identify the size of the congestion window according to a lower bound of the congestion window. The electronic device (10) can determine whether there is congestion by tracking the size of the congestion window. For example, if the size of the congestion window changes (e.g., decreases) by a certain value or more within a specified time interval, it can indicate congestion detection by the network (599).

[0097] In one example, the electronic device (10) can detect congestion on the network (599) based on a round trip time (RTT) prediction for the first data session (610). For a TCP session, the electronic device (10) can predict the RTT based on the volume of data received within the RTT to support DRS. For example, the electronic device (10) can identify the RTT based on an upper bound of the RTT. The electronic device (10) can detect congestion on the network (599) by estimating the RTT value at specified intervals. For example, an increase in the RTT prediction value over a specified number of cycles may indicate an increase in buffering delay on the path of the first data session (610). If the RTT prediction value increases over a specified number of cycles, the electronic device (10) can detect congestion on the network (599).

[0098] In one example, the electronic device (10) can detect network congestion based on the throughput for the first data session (610). The electronic device (10) can detect a delay (e.g., congestion of the network (599)) for the first data session (610) if the actual throughput is less than the minimum throughput for the first data session (610). For example, the actual throughput can be referenced as the amount of data received during a specified time period via the first data session (610). For example, the electronic device (10) can identify the minimum throughput based on the traffic characteristics and / or QI of the first data session (610). For example, the electronic device (10) can analyze the traffic characteristics (e.g., inter-arrival time, RTT, or data packet size) for each data flow and identify the minimum throughput of the first data session (610) based on the characteristics of the data flow. In one example, the electronic device (10) can identify the minimum throughput of the first data session (610) from the 5QI (5G QoS identifier) ​​of the first data session (610). In one example, the electronic device (10) can store information including a mapping relationship between the 5QI and the minimum throughput of the data session. Table 1 shows an example of a 5QI value, and Table 2 shows a mapping relationship between the minimum throughput of the data session and the 5QI value.

[0099] 5QI valueResource TypeDefault Priority LevelPacket DelayBudget (ms)Packet Error orRate5Non-GuaranteedBit Rate1010010 -6 66030010 -6 77010010 -3 88030010 -6 99030010 -6

[0100] Required IndexMinimum Throughput5QI value110 Mbps52100 Mbps63200 Mbps7 and 84500 Mbps9

[0101] In one example, the electronic device (10) may detect congestion in the network (599) based on retransmissions for the first data session (610). For example, the electronic device (10) may determine congestion in the network (599) if the number of retransmissions of packets of the first data session (610) (e.g., the number of retransmissions within a specified time interval) is greater than or equal to a threshold. For example, the electronic device (10) may determine congestion in the network (599) if there are duplicated received packets for the first data session (610) or packets whose reception order and sequence number do not match.

[0102] The electronic device (10) can determine congestion of the network (599) if at least N (e.g., N is a natural number greater than or equal to 1) of the conditions described above are satisfied. If no congestion is detected (e.g., operation 805-NO), the electronic device (10) can continue to monitor whether the network (599) is congested.

[0103] If congestion is detected (e.g., operation 805-YES), at operation 810, the electronic device (10) may determine whether the delay sensitive session priority mode is activated. For example, the delay sensitive session priority mode may be activated or deactivated by the manufacturer or the user. Operation 810 is an additional operation and, in one example, may be omitted from the operations of FIG. 8. Operation 810 may be performed prior to operation 805 or may be performed in parallel with operation 805. If the delay priority mode is deactivated (e.g., operation 810-NO), the electronic device (10) may not apply the delay control method for the first data session (610).

[0104] If the delay sensitive session priority mode is enabled (e.g., operation 810-YES), in operation 815, the electronic device (10) may determine whether the first data session (610) is a TCP session. If the first data session (610) is not a TCP session (e.g., operation 815-NO), the delay control method for the first data session (610) may not be applied. If the first data session (610) is a TCP session (e.g., operation 815-YES), the electronic device (10) may set the size of the receive window according to operation 710 of FIG. 7.

[0105] FIG. 9 illustrates a delay sensitive session priority mode UI of an electronic device according to one embodiment.

[0106] Referring to FIGS. 2 and 9, according to one embodiment, the electronic device (10) may provide a delay-sensitive session priority mode UI (901) through the display (160). The delay-sensitive session priority mode UI (901) may include an interactable graphical object (910) (e.g., a graphical interactor). Based on an input to the graphical object (910), the electronic device (10) may activate or deactivate the delay-sensitive session priority mode. The delay-sensitive session priority mode UI (910) illustrated with respect to FIG. 9 is an example, and embodiments of the present disclosure are not limited thereto. One of ordinary skill in the art will appreciate that any form of UI may be used to activate or deactivate the delay-sensitive session priority mode.

[0107] FIG. 10 illustrates a method for determining a delay control mode of an electronic device according to one embodiment.

[0108] The operations described below with reference to FIG. 10 may be referred to as operations of the electronic device (10) of FIG. 2. The order of the operations described below with reference to FIG. 10 is merely an example, and embodiments of the present disclosure are not limited thereto. For example, at least some of the operations may be performed differently from the order of FIG. 10, or may be performed substantially simultaneously with other operations of FIG. 10. At least some of the operations described below with reference to FIG. 10 may be omitted. The operations described below with reference to FIG. 10 may be performed as operation 710 of FIG. 7 is performed.

[0109] Referring to FIGS. 2, 6, and 10, in operation 1005, the electronic device (10) may set a flow control mode based on preset conditions. For example, the electronic device (10) may select a flow control mode based on whether the preset conditions are satisfied. The electronic device (10) may determine whether the preset conditions are satisfied based on maximum throughput, minimum throughput, and / or latency requirements of the first data session (610).

[0110] In one example, the preset conditions may include preset values. For example, the preset values ​​may be manufacturer settings or application settings associated with the first data session (610). The electronic device (10) may set the flow control mode based on the preset values ​​stored in the memory.

[0111] For example, the electronic device (10) may select a flow control mode by comparing the latency sensitivity of the first data session (610) with preset values ​​(e.g., a first value and a second value). If the latency sensitivity is less than the first value, the electronic device (10) may select the first mode and perform operation 1010. If the latency sensitivity is greater than or equal to the first value and less than the second value, the electronic device (10) may select the second mode and perform operation 1015. If the latency sensitivity is greater than or equal to the second value, the electronic device (10) may select the third mode and perform operation 1020.

[0112] If the maximum reception window set for the electronic device (10) is smaller than the size of the reception window for achieving the maximum throughput of the first data session (610), the electronic device (10) may set the first mode. For example, the electronic device (10) may obtain the maximum throughput of the first data session (610) from the software structure (200) of FIG. 2. The electronic device (10) may obtain the maximum throughput of the first data session (610) through traffic analysis of the first data session (610). The maximum reception window of the electronic device (10) may be a preset value.

[0113] The electronic device (10) may select the second mode if the throughput requirement (e.g., minimum throughput) of the first data session (610) is less than the bandwidth delay product (BDP) of the first data session (610). For example, the electronic device (10) may identify the minimum throughput of the first data session according to the method described above with reference to FIG. 7. For example, the BDP may be a product of the link bandwidth of the first data session (610) and the propagation delay. The BDP may be a value corresponding to a theoretical maximum throughput for the first data session (610). For example, in order to achieve the maximum throughput of the first data session (610), the size of the receive window of the first data session (610) may be set to be at least greater than the BDP.

[0114] The electronic device (10) can identify the propagation delay from the RTT prediction. The electronic device (10) can identify the bandwidth of the first data session (610) from the bottleneck bandwidth of the first data session. The electronic device (10) can identify the maximum capacity or the estimated capacity based on the wireless communication conditions (e.g., radio access technology (RAT), multi-input multi-output (MIMO), career aggregation (CA), modulation rate, channel conditions, and / or cell load) associated with the first data session (610). The electronic device (10) can identify the bottleneck bandwidth from the maximum capacity or the estimated capacity.

[0115] The electronic device (10) may select the third mode based on the latency requirements of the first data session (610). For example, the electronic device (10) may identify the latency requirements (e.g., latency sensitivity) of the first data session (610) based on analysis of QoS and / or data flow characteristics associated with the first data session (610). If the latency requirements of the first data session (610) are not met, the electronic device (10) may select the third mode.

[0116] When the first mode is set, in operation 1010, the electronic device (10) may set the size of the receiving window to the minimum value among the existing advertised window and the session BDP (e.g., the BDP of the first data session (610)). In the first mode, the electronic device (10) may set the size of the receiving window so that the size of the receiving window does not exceed the BDP of the first data session (610). However, when the value of the existing advertised window is smaller than the session BDP, the electronic device (10) may set the size of the receiving window according to the value of the existing advertised window in consideration of the existing network conditions. In the first mode, the electronic device (10) may set the size of the receiving window so that the size of the receiving window does not exceed a size corresponding to the theoretical maximum throughput of the first data session (610).

[0117] For example, the minimum receive window size of the first data session (610) may be 1500 bytes. The maximum receive window size of the electronic device (10) may be set to 8 MB. If the value of the existing advertised window is 7 MB and the value of the BDP is 4 MB, the electronic device (10) in the first mode may set the receive window size to 4 MB.

[0118] When the second mode is set, in operation 1015, the electronic device (10) may set the size of the receive window to the minimum value among the existing advertised window, the session BDP, and the requested receive window. The requested receive window may be referred to as the size of the receive window to satisfy the requested throughput (e.g., maximum throughput) for the first data session (610). For example, the electronic device (10) may identify the requested receive window by multiplying the requested throughput of the first data session (610) by the value of the RTT. The electronic device (10) may identify the requested throughput (e.g., throughput estimated from the type of media) based on a QI value associated with the first data session (610), a data flow analysis of the first data session (610), and / or a type of media (e.g., a codec and / or encoding rate) associated with the first data session (610).

[0119] For example, if the end-to-end RTT is 20 ms and the requested throughput is 720 Mbps, the electronic device (10) in the second mode can calculate the requested receive window as 1.8 MB. The requested receive window can have a size corresponding to the throughput actually requested by the first data session (610). For example, the minimum receive window size of the first data session (610) can be 1500 bytes, and the maximum receive window size of the electronic device (10) can be set to 8 MB. If the value of the existing advertised window is 7 MB, the value of the BDP is 4 MB, and the requested receive window is 1.8 MB, the electronic device (10) in the second mode can set the size of the receive window to 1.8 MB. For example, if the value of the BDP is smaller than the value of the requested receive window, this can mean that the requested throughput cannot be satisfied due to a reason such as a bottleneck. In this case, the electronic device (10) of the second mode can set the size of the receiving window to the value of BDP.

[0120] When the third mode is set, in operation 1020, the electronic device (10) may set the size of the receiving window to the minimum value among the existing advertised window, the session BDP, the requested receiving window, and the minimum advertised window. For example, the size of the minimum receiving window of the first data session (610) may be 1500 bytes, and the size of the maximum receiving window of the electronic device (10) may be set to 8 MB. When the value of the existing advertised window is 7 MB, the value of the BDP is 4 MB, and the requested receiving window is 1.8 MB, the electronic device (10) in the third mode may set the size of the receiving window to 1500 bytes. In one example, when the third mode is set, the electronic device (10) may set the size of the receiving window according to the minimum advertised window regardless of other values.

[0121] The modes illustrated in FIG. 10 are merely examples and embodiments of the present disclosure are not limited thereto. For example, some of the modes illustrated in FIG. 10 may be omitted.

[0122] In FIG. 10, the setting of the first, second, and third modes is illustrated as being performed by a single operation (e.g., operation 1005), but embodiments of the present disclosure are not limited thereto. For example, the electronic device (10) may determine whether a third mode selection condition is satisfied, and if the third mode selection condition is satisfied, may set the third mode. If the third mode selection condition is not satisfied, the electronic device (10) may determine whether a second mode selection condition is satisfied. If the second mode selection condition is satisfied, the electronic device (10) may set the second mode. If the second mode selection condition is not satisfied, the electronic device (10) may determine whether a first mode selection condition is satisfied. If the first mode selection condition is satisfied, the electronic device (10) may set the first mode. In the above example, the judgment order is described in the order of the third mode, the second mode, and the first mode, but a person skilled in the art will understand that the judgment for each mode may be performed in any order.

[0123] According to one embodiment, the electronic device (10) may select the mode of the first data session (610) periodically or dynamically. For example, the electronic device (10) may perform operation 1005 when a network condition (e.g., RTT, bandwidth, and / or QI) associated with the first data session (610) changes by a specified value or more, or when a specified period elapses.

[0124] According to one embodiment, the electronic device (10) may set a control mode further based on a preset policy for the electronic device (10). For example, the electronic device (10) may determine that a selection condition for one control mode is satisfied in operation 1005. The electronic device (10) may determine whether the selected control mode is allowed based on the preset policy. If the selected control mode is not allowed by the preset policy, the electronic device (10) may select a lower priority control mode. For example, the existing control mode may be the first mode, and the selected control mode may be the third mode. In this case, a direct change from the first mode to the third mode may not be allowed by the preset policy. The electronic device (10) may set the second mode instead of the third mode based on the preset policy.

[0125] FIG. 11 illustrates data sessions of an electronic device according to one embodiment.

[0126] Referring to FIGS. 2 and 11 , according to one embodiment, the electronic device (10) may communicate with the network (599) through a plurality of data sessions. For example, the electronic device (10) may communicate through a first data session (1110) and a second data session (1120). For example, the electronic device (10) may establish the first data session (1110) (e.g., a TCP session) and the second data session (1120) by transmitting and receiving signals with the network (599) using the communication circuit (190). In one example, the first data session (1110) and the second data session (1120) may be referred to as data flows between the electronic device (10) and the external device (20). The first data session (1110) and the second data session (1120) may be referred to as data flows associated with one application. In one example, the first data session (1110) and the second data session (1120) may be referenced as data flows associated with different applications.

[0127] According to one embodiment, the electronic device (10) may apply the data session control method described below with respect to FIGS. 11 to 14 to the first data session (1110) when the second data session (1120) is a data session of a specified type. For example, the electronic device (10) may apply the data session control method described below to the first data session (1110) when the second data session (1120) is a data session of a specified type and the first data session (1110) is a session of a specified protocol (e.g., TCP). For example, the electronic device (10) may determine whether the second data session (1120) is a data session of a specified type based on requirements of the second data session (e.g., requirements on a transport layer). For example, the first data session (1110) may be a data session associated with video data (e.g., streaming data) of XR content, and the second data session (1120) may be a data session associated with data other than video data of the XR content. For example, the second data session (1120) may be a data session associated with at least one of spatial data (e.g., spatial data (325) of FIG. 3) or control data (e.g., control data (310) of FIG. 3) of the XR content.

[0128] For example, the second data session (1120) may have high latency sensitivity (e.g., low delay tolerance). High latency sensitivity may include, for example, at least one of a required latency being less than a specified value, a priority being greater than or equal to a specified value, or a quality of service (QoS) identifier being a specified value. In one example, the second data session (1120) may have relatively high latency sensitivity compared to the first data session (1110). The electronic device (10) may determine that the second data session (1120) is a designated type of data session if the second data session (1120) has high latency sensitivity. The electronic device (10) may determine that the second data session (1120) is a designated type of data session if the second data session (1120) has high latency sensitivity compared to the first data session (1110).

[0129] In one example, the electronic device (10) may determine whether the type of the second data session (1120) is a designated type based on a QI (QoS identifier). For example, the electronic device (10) may determine that the second data session (1120) is a designated type of data session if the QI value of the radio bearer of the second data session (1120) corresponds to a designated value.

[0130] In one example, the electronic device (10) may determine whether the second data session (1120) is a designated type of data session based on traffic characteristics associated with the second data session (1120). For example, the electronic device (10) may analyze traffic characteristics (e.g., inter-arrival time, RTT, or data packet size) for each data flow. The electronic device (10) may identify a latency sensitivity (e.g., latency requirement) and a minimum throughput of the second data session (1120) based on the characteristics of the data flow. If the identified latency sensitivity is greater than or equal to a designated value or if the latency sensitivity of the second data session (1120) is higher than that of the first data session (1110), the electronic device (10) may determine that the second data session (1120) is a designated type of data session.

[0131] In one example, the electronic device (10) may determine whether the second data session (1120) is a designated type of data session based on application properties associated with the second data session (1120). For example, the application properties may include traffic requirements of the application and / or a category of the associated data session. The electronic device (10) may obtain information about the traffic requirements for the second data session (1120) from the XR runtime module (220). In one example, the XR runtime module (220) may define a category for each data session based on the traffic requirements for each data session. The XR runtime module (220) may transmit the category of the second data session (1120) to the application layer. The electronic device (10) may determine that the second data session (1120) is a designated type of data session if the category of the second data session (1120) transmitted to the application layer corresponds to the designated category.

[0132] With reference to FIG. 11, the type of the second data session (1120) has been described, but embodiments of the present disclosure are not limited thereto. In one example, the electronic device (10) may apply the data session control method described below with reference to FIGS. 12 to 14 to the first data session (1110), regardless of the type of the second data session (1120). For example, even if the type of the second data session (1120) is not a designated type, the electronic device (10) may apply the data session control method described below to the first data session (1110) if the first data session (1110) is a session of a designated protocol (e.g., TCP). In the examples of FIGS. 11 to 14, it may be assumed that the electronic device (10) is communicating with the network (599) via the first data session (1110) and the second data session (1120).

[0133] FIG. 12 illustrates a flowchart of a method for controlling a data session of an electronic device according to one embodiment.

[0134] The operations described below with reference to FIG. 12 may be referred to as operations of the electronic device (10) of FIG. 2. The order of the operations described below with reference to FIG. 12 is merely an example, and embodiments of the present disclosure are not limited thereto. For example, at least some of the operations may be performed in a different order from that of FIG. 12, or may be performed substantially simultaneously with other operations of FIG. 12. At least some of the operations described below with reference to FIG. 12 may be omitted.

[0135] Referring to FIGS. 2, 11, and 12, in operation 1205, the electronic device (10) may communicate with the network (599) via a first data session (1110) and a second data session (1120). For example, the electronic device (10) may establish the first data session (1110) and the second data session (1120) with the network (599). The electronic device (10) may establish the first data session (1110) and the second data session (1120) by transmitting and receiving signals with the network (599) using the communication circuit (190). Operations 1210 and 1215 described below may be referred to as operations performed while maintaining the first data session (1110) and the second data session (1120). When the first data session (1110) or the second data session (1120) is released, the data session control method of FIG. 12 can be terminated without performing any additional operations.

[0136] In operation 1210, the electronic device (10) can identify latency sensitivities (e.g., delay tolerance) of the first data session (1110) and the second data session. The electronic device (10) can identify latency sensitivities (e.g., delay tolerance) of the first data session (1110) and the second data session based on at least one of QoS, flow characteristics, data types, or application properties. In one example, the electronic device (10) can identify latency sensitivities of the first data session (1110) and the second data session (1120) based on a QoS identifier (QI). In one example, the electronic device (10) can identify latency sensitivities of the first data session (1110) and the second data session (1120) based on flow characteristics (e.g., traffic characteristics per data flow) associated with the first data session (1110) and the second data session (1120). In one example, the electronic device (10) may identify latency sensitivity based on application attributes associated with the first data session (1110) and the second data session (1120). The application attributes may include traffic requirements and / or categories of the applications associated with each data session.

[0137] In operation 1215, the electronic device (10) may reduce the size of the receive window of the first data session (1110) from the first value to the second value based on the BDP of the first data session (1110). For example, if congestion is detected for the network (599) and the latency sensitivity of the second data session (1120) is higher than the latency sensitivity of the first data session (1110), the electronic device (10) may change the size of the receive window of the first data session (1110) from the first value to the second value. If congestion is not detected, the electronic device (10) may maintain the size of the receive window of the first data session (1110) at the same value as the first value or change it to a value greater than the first value. If congestion is not detected, the electronic device (10) may set the size of the receive window of the first data session (1110) according to the remaining size of the receive buffer. The changed second value may be a value based on the bandwidth of the first data session (1110). In operation 1215, the electronic device (10) may reduce the size of the reception window of the first data session (1110) regardless of the size of the reception window of the second data session (1120). A method for detecting congestion in the network (599) may be described later with reference to FIG. 13. A method for identifying the second value may be described later with reference to FIG. 14. For example, the first value may be referenced as an existing advertised window.

[0138] In operation 1220, the electronic device (10) may transmit information about the size of the reception window of the second value of the changed first data session (1110) to the network (599). For example, the electronic device (10) may include information about the size of the reception window associated with the first data session (1110) in a header (e.g., a TCP header). Information about the size of the reception window of the first data session (1110) may be included in an ACK for the reception data of the first data session (1110).

[0139] For example, the second value may be a smaller value than the first value. A transmitting end (e.g., the network (599)) that has received information about the size of the reception window of the first data session (1110) of the second value may recognize that the amount of data associated with the first data session (1110) that the electronic device (10) can receive (e.g., the amount of resources allocated to the network (599) for the first data session (1110)) is limited. As the amount of data that the electronic device (10) can receive is limited, the transmitting end may reduce the amount of data associated with the first data session (1110). For example, the transmitting end may reduce the media bitrate and / or frame rate associated with the first data session (1110). In one example, the first data session (1110) and the second data session (1120) may share the same network resources. As the amount of data associated with the first data session (1110) is reduced, the delay of the second data session (1120) may be reduced. For example, the first data session (1110) and the second data session (1120) may be data sessions associated with the same transmitter (e.g., external device (20)).

[0140] FIG. 13 illustrates a flowchart of a method for determining whether to control a data session of an electronic device according to one embodiment.

[0141] The operations described below with reference to FIG. 13 may be referred to as operations of the electronic device (10) of FIG. 2. The order of the operations described below with reference to FIG. 13 is merely an example, and embodiments of the present disclosure are not limited thereto. For example, at least some of the operations may be performed differently from the order of FIG. 13, or may be performed substantially simultaneously with other operations of FIG. 13. At least some of the operations described below with reference to FIG. 13 may be omitted. The operations described below with reference to FIG. 13 may be performed between operations 1205 and 1210 of FIG. 12.

[0142] Referring to FIGS. 2, 11, and 13, at operation 1305, the electronic device (10) may determine whether congestion is detected for the network (599) associated with the second data session (1120). The electronic device (10) may identify network congestion based on at least one of an explicit congestion notification (ECN) bit, a congestion window prediction, a round trip time (RTT) prediction, throughput, or a retransmission. If network congestion is identified, the electronic device (10) may determine that congestion is detected for the network (599). Unless otherwise stated, the electronic device (10) may identify network congestion according to the method described above with respect to operation 805 of FIG. 8.

[0143] In one example, the electronic device (10) can detect congestion for the network (599) based on the value of the ECN bit for the second data session (1120). The electronic device (10) can detect congestion for the network (599) if the value of the ECN bit is a designated value. In one example, the electronic device (10) can detect congestion for the network (599) based on a congestion window prediction for the second data session (1120). For example, the second data session (1120) may be a data session with higher latency sensitivity than the first data session (1110). In one example, the electronic device (10) can detect congestion for the network (599) based on a round trip time (RTT) prediction for the second data session (1120). In one example, the electronic device (10) can detect network congestion based on the throughput for the second data session (1120). The electronic device (10) can detect a delay (e.g., congestion of the network (599)) for the second data session (1120) if the actual throughput is less than the minimum throughput for the second data session (1120). For example, the electronic device (10) can identify the minimum throughput based on the traffic characteristics and / or QI of the second data session (1120). In one example, the electronic device (10) can identify the minimum throughput of the second data session (1120) from the 5QI of the second data session (1120). In one example, the electronic device (10) can store information (e.g., Tables 1 and 2) including a mapping relationship between the 5QI (5G QoS Identifier) ​​and the minimum throughput of the data session. The electronic device (10) can determine congestion of the network (599) if at least N (e.g., N is a natural number greater than or equal to 1) of the conditions described above are satisfied. If no congestion is detected (e.g., operation 1305-NO), the electronic device (10) can continue to monitor whether the network (599) is congested.

[0144] If congestion is detected (e.g., operation 1305-YES), at operation 1310, the electronic device (10) may determine whether the delay-sensitive session priority mode is activated. For example, the electronic device (10) may perform operation 1310 as described above with respect to operation 810 of FIG. 8. For example, the delay-sensitive session priority mode may be set via the delay-sensitive session priority mode UI described above with respect to FIG. 9.

[0145] If the delay sensitive session priority mode is enabled (e.g., operation 1310-YES), in operation 1315, the electronic device (10) may determine whether the first data session (1110) is a TCP session. If the first data session (1110) is not a TCP session (e.g., operation 1315-NO), the delay control method for the first data session (1110) may not be applied. If the first data session (1110) is a TCP session (e.g., operation 1315-YES), the electronic device (10) may set the size of the receive window according to operation 1210 of FIG. 12.

[0146] FIG. 14 illustrates a method for determining a delay control mode of an electronic device according to one embodiment.

[0147] The operations described below with reference to FIG. 14 may be referred to as operations of the electronic device (10) of FIG. 2. The order of the operations described below with reference to FIG. 14 is merely an example, and embodiments of the present disclosure are not limited thereto. For example, at least some of the operations may be performed differently from the order of FIG. 14, or may be performed substantially simultaneously with other operations of FIG. 14. At least some of the operations described below with reference to FIG. 14 may be omitted. The operations described below with reference to FIG. 14 may be performed as operation 1210 of FIG. 12 is performed.

[0148] Referring to FIGS. 2, 11, and 14, at operation 1405, the electronic device (10) may set a flow control mode based on preset conditions. For example, the electronic device (10) may select a flow control mode based on whether the preset conditions are satisfied. The electronic device (10) may determine whether the preset conditions are satisfied based on the maximum throughput, minimum throughput, and / or latency requirements of the first data session (610).

[0149] In one example, the preset conditions may include preset values. For example, the preset values ​​may be manufacturer settings or application settings associated with the first data session (1110). The electronic device (10) may set the flow control mode based on the preset values ​​stored in the memory.

[0150] If the maximum reception window set for the electronic device (10) is smaller than the size of the reception window for achieving the maximum throughput of the first data session (1110), the electronic device (10) may set the first mode. For example, the electronic device (10) may obtain the maximum throughput of the first data session (1110) from the software structure (200) of FIG. 2. The electronic device (10) may obtain the maximum throughput of the first data session (1110) through traffic analysis of the first data session (1110). The maximum reception window of the electronic device (10) may be a preset value.

[0151] The electronic device (10) may select the second mode if the throughput requirement (e.g., minimum throughput) of the first data session (1110) is less than the Bandwidth Delay Product (BDP) of the first data session (1110). For example, the electronic device (10) may identify the minimum throughput of the first data session (1110) according to the method described above with reference to FIG. 12. For example, the BDP may be a product of the link bandwidth of the first data session (1110) and the propagation delay. The electronic device (10) may identify the propagation delay from the RTT prediction. The electronic device (10) may identify the bandwidth of the first data session (1110) from the bottleneck bandwidth of the first data session (1110). The electronic device (10) can identify a maximum capacity or an estimated capacity based on the wireless communication status associated with the first data session (1110). The electronic device (10) can identify a bottleneck bandwidth from the maximum capacity or the estimated capacity.

[0152] The electronic device (10) may select the third mode based on the latency requirements of the first data session (1110). For example, the electronic device (10) may identify the latency requirements (e.g., latency sensitivity) of the first data session (1110) based on analysis of QoS and / or data flow characteristics associated with the first data session (1110). If the latency requirements of the first data session (1110) are not met, the electronic device (10) may select the third mode.

[0153] When the first mode is set, in operation 1410, the electronic device (10) may set the size of the receiving window to the minimum value among the existing advertised window and the session BDP (e.g., the BDP of the first data session (1110)). For example, the electronic device (10) may set the size of the receiving window of the first data session (1110) according to operation 1010 of FIG. 10.

[0154] When the second mode is set, in operation 1415, the electronic device (10) may set the size of the receiving window to the minimum value among the existing advertised window, the session BDP, and the requested receiving window. The requested receiving window may be referred to as the size of the receiving window to satisfy the requested throughput (e.g., maximum throughput) for the first data session (1110). For example, the electronic device (10) may set the size of the receiving window of the first data session (1110) according to operation 1015 of FIG. 10 .

[0155] When the third mode is set, in operation 1420, the electronic device (10) may set the size of the receiving window to the minimum value among the existing advertised window, the session BDP, the requested receiving window, and the minimum advertised window. For example, the electronic device (10) may set the size of the receiving window of the first data session (1110) according to operation 1020 of FIG. 10. In one example, when the third mode is set, the electronic device (10) may set the size of the receiving window according to the minimum advertised window, regardless of other values.

[0156] The modes illustrated in FIG. 14 are merely examples and embodiments of the present disclosure are not limited thereto. For example, some of the modes illustrated in FIG. 14 may be omitted.

[0157] In FIG. 14, the setting of the first, second, and third modes is illustrated as being performed by a single operation (e.g., operation 1405), but embodiments of the present disclosure are not limited thereto. For example, the electronic device (10) may determine whether a third mode selection condition is satisfied, and if the third mode selection condition is satisfied, may set the third mode. If the third mode selection condition is not satisfied, the electronic device (10) may determine whether a second mode selection condition is satisfied. If the second mode selection condition is satisfied, the electronic device (10) may set the second mode. If the second mode selection condition is not satisfied, the electronic device (10) may determine whether a first mode selection condition is satisfied. If the first mode selection condition is satisfied, the electronic device (10) may set the first mode. In the above example, the judgment order is described in the order of the third mode, the second mode, and the first mode, but a person skilled in the art will understand that the judgment for each mode may be performed in any order.

[0158] According to one embodiment, the electronic device (10) may select the mode of the first data session (1110) periodically or dynamically. For example, the electronic device (10) may perform operation 1405 when a network condition (e.g., RTT, bandwidth, and / or QI) associated with the first data session (1110) changes by a specified value or more, or when a specified period elapses.

[0159] According to one embodiment, the electronic device (10) may set a control mode further based on a preset policy for the electronic device (10). For example, the electronic device (10) may determine that a selection condition for one control mode is satisfied in operation 1405. The electronic device (10) may determine whether the selected control mode is allowed based on the preset policy. If the selected control mode is not allowed by the preset policy, the electronic device (10) may select a lower priority control mode. For example, the existing control mode may be the first mode, and the selected control mode may be the third mode. In this case, a direct change from the first mode to the third mode may not be allowed by the preset policy. The electronic device (10) may set the second mode instead of the third mode based on the preset policy.

[0160] FIG. 15 is a block diagram of an electronic device (1501) within a network environment (1500) according to various embodiments. Referring to FIG. 15, in the network environment (1500), the electronic device (1501) may communicate with the electronic device (1502) via a first network (1598) (e.g., a short-range wireless communication network), or may communicate with at least one of the electronic device (1504) or the server (1508) via a second network (1599) (e.g., a long-range wireless communication network). In one embodiment, the electronic device (1501) may communicate with the electronic device (1504) via the server (1508). According to one embodiment, the electronic device (1501) may include a processor (1520), a memory (1530), an input module (1550), an audio output module (1555), a display module (1560), an audio module (1570), a sensor module (1576), an interface (1577), a connection terminal (1578), a haptic module (1579), a camera module (1580), a power management module (1588), a battery (1589), a communication module (1590), a subscriber identification module (1596), or an antenna module (1597). In some embodiments, the electronic device (1501) may omit at least one of these components (e.g., the connection terminal (1578)), or may have one or more other components added. In some embodiments, some of these components (e.g., sensor module (1576), camera module (1580), or antenna module (1597)) may be integrated into a single component (e.g., display module (1560)).

[0161] The processor (1520) may, for example, execute software (e.g., a program (1540)) to control at least one other component (e.g., a hardware or software component) of the electronic device (1501) connected to the processor (1520) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (1520) may store commands or data received from other components (e.g., a sensor module (1576) or a communication module (1590)) in a volatile memory (1532), process the commands or data stored in the volatile memory (1532), and store result data in a non-volatile memory (1534). According to one embodiment, the processor (1520) may include a main processor (1521) (e.g., a central processing unit or an application processor) or an auxiliary processor (1523) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (1521). For example, when the electronic device (1501) includes the main processor (1521) and the auxiliary processor (1523), the auxiliary processor (1523) may be configured to use less power than the main processor (1521) or to be specialized for a given function. The auxiliary processor (1523) may be implemented separately from the main processor (1521) or as a part thereof.

[0162] The auxiliary processor (1523) may control at least a portion of functions or states associated with at least one component (e.g., the display module (1560), the sensor module (1576), or the communication module (1590)) of the electronic device (1501), for example, on behalf of the main processor (1521) while the main processor (1521) is in an inactive (e.g., sleep) state, or together with the main processor (1521) while the main processor (1521) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (1523) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (1580) or a communication module (1590)). In one embodiment, the auxiliary processor (1523) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, on the electronic device (1501) itself including the artificial intelligence model, or can be performed through a separate server (e.g., server (1508)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, the artificial intelligence model may include a software structure.

[0163] The memory (1530) can store various data used by at least one component (e.g., the processor (1520) or the sensor module (1576)) of the electronic device (1501). The data can include, for example, software (e.g., the program (1540)) and input data or output data for commands related thereto. The memory (1530) can include volatile memory (1532) or non-volatile memory (1534).

[0164] The program (1540) may be stored as software in memory (1530) and may include, for example, an operating system (1542), middleware (1544), or an application (1546).

[0165] The input module (1550) can receive commands or data to be used in a component of the electronic device (1501) (e.g., a processor (1520)) from an external source (e.g., a user) of the electronic device (1501). The input module (1550) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

[0166] The audio output module (1555) can output audio signals to the outside of the electronic device (1501). The audio output module (1555) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.

[0167] The display module (1560) can visually provide information to an external party (e.g., a user) of the electronic device (1501). The display module (1560) may include, for example, a display, a holographic device, or a projector, and a control circuit for controlling the device. In one embodiment, the display module (1560) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.

[0168] The audio module (1570) can convert sound into an electrical signal, or vice versa. According to one embodiment, the audio module (1570) can acquire sound through the input module (1550), output sound through the sound output module (1555), or an external electronic device (e.g., electronic device (1502)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (1501).

[0169] The sensor module (1576) can detect the operating status (e.g., power or temperature) of the electronic device (1501) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (1576) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0170] The interface (1577) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (1501) with an external electronic device (e.g., the electronic device (1502)). In one embodiment, the interface (1577) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

[0171] The connection terminal (1578) may include a connector through which the electronic device (1501) may be physically connected to an external electronic device (e.g., the electronic device (1502)). In one embodiment, the connection terminal (1578) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0172] The haptic module (1579) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. In one embodiment, the haptic module (1579) may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

[0173] The camera module (1580) can capture still images and videos. In one embodiment, the camera module (1580) may include one or more lenses, image sensors, image signal processors, or flashes.

[0174] The power management module (1588) can manage the power supplied to the electronic device (1501). According to one embodiment, the power management module (1588) can be implemented as at least a part of, for example, a power management integrated circuit (PMIC).

[0175] A battery (1589) may power at least one component of the electronic device (1501). In one embodiment, the battery (1589) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0176] The communication module (1590) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (1501) and an external electronic device (e.g., electronic device (1502), electronic device (1504), or server (1508)), and the performance of communication through the established communication channel. The communication module (1590) may operate independently from the processor (1520) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (1590) may include a wireless communication module (1592) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (1594) (e.g., a local area network (LAN) communication module, or a power line communication module). Any of these communication modules may communicate with an external electronic device (1504) via a first network (1598) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (1599) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a local area network or a wide area network)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (1592) may use subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (1596) to verify or authenticate the electronic device (1501) within a communication network such as the first network (1598) or the second network (1599).

[0177] The wireless communication module (1592) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimizing terminal power and connecting multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency communications (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (1592) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (1592) may support various technologies for securing performance in high-frequency bands, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (1592) may support various requirements specified in the electronic device (1501), an external electronic device (e.g., the electronic device (1504)), or a network system (e.g., the second network (1599)). According to one embodiment, the wireless communication module (1592) may support a peak data rate (e.g., 20 Gbps or more) for eMBB implementation, a loss coverage (e.g., 164 dB or less) for mMTC implementation, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC implementation.

[0178] The antenna module (1597) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (1597) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (1597) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (1598) or the second network (1599), may be selected from the plurality of antennas by, for example, the communication module (1590). A signal or power may be transmitted or received between the communication module (1590) and the external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (1597).

[0179] According to various embodiments, the antenna module (1597) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band.

[0180] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).

[0181] According to one embodiment, commands or data may be transmitted or received between the electronic device (1501) and an external electronic device (1504) via a server (1508) connected to a second network (1599). Each of the external electronic devices (1502 or 1504) may be the same or a different type of device as the electronic device (1501). According to one embodiment, all or part of the operations executed in the electronic device (1501) may be executed in one or more of the external electronic devices (1502, 1504, or 1508). For example, when the electronic device (1501) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (1501) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (1501). The electronic device (1501) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (1501) may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (1504) may include an Internet of Things (IoT) device. The server (1508) may be an intelligent server utilizing machine learning and / or a neural network.According to one embodiment, an external electronic device (1504) or server (1508) may be included within the second network (1599). The electronic device (1501) may be applied to intelligent services (e.g., smart homes, smart cities, smart cars, or healthcare) based on 5G communication technology and IoT-related technology.

[0182] Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.

[0183] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

[0184] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0185] Various embodiments of the present document may be implemented as software (e.g., a program (1540)) including one or more instructions stored in a storage medium (e.g., an internal memory (1536) or an external memory (1538)) readable by a machine (e.g., an electronic device (1501)). For example, a processor (e.g., a processor (1520)) of the machine (e.g., an electronic device (1501)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.

[0186] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as included in a computer program product. The computer program product may be traded as a commodity between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.

[0187] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims

1. In an electronic device (10, 1501), Wireless communication circuit (190, 1590); At least one processor (120, 1520); A memory (130, 1530) for storing instructions, wherein when the instructions are executed by an individual processor or a group of processors among the at least one processor, the electronic device: By using the above wireless communication circuit, a data session is established between the electronic device and the network, If congestion of the above network is identified, the size of the reception window of the data session is changed from a first value to a second value based on a bandwidth delay product (BDP) of the data session, An electronic device that transmits information about the second value to the network using the wireless communication circuit.

2. In paragraph 1, An electronic device, wherein the instructions, when executed by an individual processor or a group of processors among the at least one processor, cause the electronic device to identify the second value based on a result of comparing the first value and the BDP.

3. In paragraph 1, When the above instructions are executed by an individual processor or a group of processors among the at least one processor, the electronic device: Identify the requested throughput associated with the above data session and the requested receive window size corresponding to the requested throughput, Identify the second value further based on the first value and the requested receiving window size, An electronic device wherein the second value corresponds to a minimum value among the first value, the BDP, and the requested receive window size.

4. In paragraph 1, The above instructions, when executed by an individual processor or a group of processors among the at least one processor, cause the at least electronic device to: An electronic device configured to identify network congestion based on at least one of the size of a congestion window associated with the data session, a round trip time (RTT), a retransmission rate, or an explicit congestion notification (ECN) bit.

5. In paragraph 1, The above data session is an electronic device that is a TCP (transmission control protocol) session.

6. In paragraph 1, An electronic device wherein said instructions, when executed by an individual processor or a group of processors among said at least one processor, cause said electronic device to include information about said second value in an acknowledgment for data received through said data session.

7. As an electronic device, wireless communication circuit; at least one processor; and Contains memory that stores instructions, When the above instructions are executed by an individual processor or a group of processors among the at least one processor, the electronic device: Using the above wireless communication circuit, a first data session and a second data session are established between the electronic device and the network, Identifying latency sensitivity of the first data session and the second data session based on at least one of quality of service (QoS), flow characteristics, data type, or application properties; If congestion of the network is identified and the latency sensitivity of the second data session is higher than the latency sensitivity of the first data session, the size of the reception window of the first data session is reduced from a first value to a second value based on a bandwidth delay product (BDP) of the first data session, regardless of the size of the reception window of the second data session. An electronic device that transmits information about the second value to the network using the wireless communication circuit.

8. In paragraph 7, An electronic device, wherein the instructions, when executed by an individual processor or a group of processors among the at least one processor, cause the electronic device to identify the second value based on a result of comparing the first value and the BDP.

9. In paragraph 7, When the above instructions are executed by an individual processor or a group of processors among the at least one processor, the electronic device: Identifying a request throughput associated with the first data session and a request receive window size corresponding to the request throughput; Identify the second value further based on the first value and the requested receiving window size, An electronic device wherein the second value corresponds to a minimum value among the first value, the BDP, and the requested receive window size.

10. In paragraph 7, The above instructions, when executed by an individual processor or a group of processors among the at least one processor, cause the at least electronic device to: An electronic device that identifies network congestion based on at least one of a size of a congestion window associated with the second data session, a round trip time (RTT), a retransmission rate, or an explicit congestion notification (ECN) bit.

11. In paragraph 7, An electronic device wherein the first data session is a TCP (transmission control protocol) session.

12. In paragraph 7, An electronic device wherein said instructions, when executed by an individual processor or a group of processors among said at least one processor, cause said electronic device to include information about said second value in an acknowledgment for data received via said first data session.

13. In paragraph 7, An electronic device, wherein the first data session and the second data session are associated with an application configured to provide XR (extended reality) content.

14. In paragraph 13, The above first data session is associated with video data of the XR content, The second data session is an electronic device associated with data other than the video data of the XR content.

15. In paragraph 14, An electronic device wherein the second data session is associated with at least one of spatial data or control data of the XR content.

Citation Information

Patent Citations

  • Terminal in wireless communication system and data transmitting method of the same

    KR101929995B1

  • Method for managing width of window in multi-path TCP

    KR1020140089251A

  • Battery pack

    KR1020240166720A

  • Printed circuit board inclduing coaxial plated through hole and electronic apparatus including same in wiress communication system

    KR102807860B1

  • Downlink congestion control optimization

    US20230300671A1