Electronic device and method thereof

KR103021149B1Active Publication Date: 2026-09-18SAMSUNG ELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
KR1020210078108
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-16
Publication Date
2026-09-18
Estimated Expiration
2041-06-16

Smart Images

  • Figure 112021069417677-PAT00009_ABST
    Figure 112021069417677-PAT00009_ABST
Patent Text Reader

Abstract

An electronic device according to various embodiments of the present disclosure includes at least one communication module that supports connection with a plurality of networks including a first network and a second network, and a processor operatively connected to the at least one communication module, wherein the processor checks for a retransmission timeout through the first network and checks whether the checked retransmission timeout is greater than a first threshold value, and if the checked retransmission timeout is greater than the first threshold value, the connection can be changed from the first network to the second network.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] Various embodiments of the present disclosure relate to an electronic device and a method of operating the same, and more specifically, to an electronic device using network communication and a method of operating the same. Background Technology

[0002] Recently, electronic devices can include many features that allow them to be used in conjunction with other devices, in addition to functions that can be used independently. For example, an electronic device may include a messenger function, enabling the sending or receiving of messages to or from another user's electronic device. As another example, a user can install a video streaming application on an electronic device, allowing the device to download and play videos from a server.

[0003] Users may own a single electronic device, but they can also own multiple electronic devices with different uses. As a result, the number of electronic devices that connect with other devices to communicate is increasing exponentially. The problem to be solved

[0004] Delays may occur when an electronic device performs a function utilizing network communication. Users may not be able to determine whether the cause of the delay is a network issue, a problem with the function itself, or an issue resulting from their inexperience. If the electronic device can identify the cause of the delay, it can apply different solutions depending on the cause. means of solving the problem

[0005] An electronic device according to various embodiments of the present disclosure includes at least one communication module that supports connection with a plurality of networks including a first network and a second network, and a processor operatively connected to the at least one communication module, wherein the processor checks for a retransmission timeout through the first network and checks whether the checked retransmission timeout is greater than a first threshold value, and if the checked retransmission timeout is greater than the first threshold value, the connection can be changed from the first network to the second network.

[0006] A method of operation of an electronic device according to various embodiments of the present disclosure may include checking a retransmission timeout through a first network, checking whether the checked retransmission timeout is greater than a first threshold, and if the checked retransmission timeout is greater than the first threshold, changing the connection from the first network to a second network. Effects of the invention

[0007] According to various embodiments of the present disclosure, an electronic device can determine the cause if a delay occurs while performing a function that interacts with a network.

[0008] According to various embodiments of the present disclosure, the electronic device may apply different solutions depending on the cause of the delay, thereby increasing user satisfaction when using the electronic device. Brief explanation of the drawing

[0009] FIG. 1 is a block diagram of an electronic device in a network environment according to various embodiments. Figure 2 is a graph comparing RTO and RTT according to the network connection status of the electronic device. FIGS. 3a and FIGS. 3b are flowcharts of an electronic device determining the cause of a delay according to a first embodiment. Figure 4 shows an example of a user using an electronic device while moving. FIG. 5 shows a change in a variable depending on whether a delay occurs in an electronic device according to the first embodiment. FIG. 6 is a flowchart showing how an electronic device determines the cause of a delay according to a second embodiment. FIG. 7 shows a change in a variable depending on whether a delay occurs in an electronic device according to a second embodiment. FIG. 8 is a flowchart showing how an electronic device determines the cause of the delay according to a third embodiment. FIG. 9 shows a change in a variable depending on whether a delay occurs in an electronic device according to a third embodiment. Specific details for implementing the invention

[0010] FIG. 1 is a block diagram of an electronic device (101) in a network environment (100) according to various embodiments. Referring to FIG. 1, in the network environment (100), the electronic device (101) may communicate with an electronic device (102) through a first network (198) (e.g., a short-range wireless communication network) or may communicate with at least one of an electronic device (104) or a server (108) through a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) through a server (108). According to one embodiment, the electronic device (101) may include a processor (120), memory (130), input module (150), sound output module (155), display module (160), audio module (170), sensor module (176), interface (177), connection terminal (178), haptic module (179), camera module (180), power management module (188), battery (189), communication module (190), subscriber identification module (196), or antenna module (197). In some embodiments, at least one of these components (e.g., connection terminal (178)) may be omitted from the electronic device (101), or one or more other components may be added. In some embodiments, some of these components (e.g., sensor module (176), camera module (180), or antenna module (197)) may be integrated into a single component (e.g., display module (160)).

[0011] The processor (120) can control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) by executing software (e.g., a program (140)), and can perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (120) can store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in volatile memory (132), process the commands or data stored in volatile memory (132), and store the resulting data in non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) that can operate independently or together with it (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device (101) includes a main processor (121) and an auxiliary processor (123), the auxiliary processor (123) may be configured to use lower power than the main processor (121) or to be specialized for a designated function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as part thereof.

[0012] The auxiliary processor (123) may control at least some of the functions or states associated with at least one component of the electronic device (101) (e.g., display module (160), sensor module (176), or communication module (190)) on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. According to one embodiment, the auxiliary processor (123) (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module (180) or communication module (190)). According to one embodiment, the auxiliary processor (123) (e.g., neural network processing unit) may include a hardware structure specialized for processing an artificial intelligence model. The artificial intelligence model may be generated through machine learning. Such learning may be performed, for example, on the electronic device (101) itself where the artificial intelligence model is executed, or through a separate server (e.g., server (108)). The learning algorithm may 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 may include a plurality of artificial neural network layers.An artificial neural network may be 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 the hardware structure, the artificial intelligence model may include a software structure, either additionally or substantially.

[0013] The memory (130) can store various data used by at least one component of the electronic device (101) (e.g., processor (120) or sensor module (176)). The data may include, for example, input data or output data for software (e.g., program (140)) and related commands. The memory (130) may include volatile memory (132) or non-volatile memory (134).

[0014] The program (140) may be stored as software in memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).

[0015] The input module (150) can receive commands or data to be used for a component of the electronic device (101) (e.g., processor (120)) from outside the electronic device (101) (e.g., user). The input module (150) may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

[0016] The sound output module (155) can output a sound signal to the outside of the electronic device (101). The sound output module (155) may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as multimedia playback or recording playback. The receiver may be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part thereof.

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

[0018] The audio module (170) can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150) or output sound through the sound output module (155) or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphones) connected directly or wirelessly to the electronic device (101).

[0019] The sensor module (176) can detect the operating state of the electronic device (101) (e.g., power or temperature) or the external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (176) may include, for example, a gesture sensor, a gyroscope sensor, a barometric pressure sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0020] The interface (177) may support one or more specified protocols that can be used for the electronic device (101) to be connected directly or wirelessly to an external electronic device (e.g., electronic device (102)). According to one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

[0021] The connection terminal (178) may include a connector through which the electronic device (101) can be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0022] The haptic module (179) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that can be perceived by the user through tactile or kinesthetic senses. According to one embodiment, the haptic module (179) may include, for example, a motor, a piezoelectric element, or an electric stimulation device.

[0023] The camera module (180) can capture still images and video. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.

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

[0025] The battery (189) can supply power to at least one component of the electronic device (101). According to one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0026] The communication module (190) can support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between an electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may include one or more communication processors that operate independently of the processor (120) (e.g., application processor) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., cellular communication module, short-range wireless communication module, or GNSS (global navigation satellite system) communication module) or a wired communication module (194) (e.g., LAN (local area network) communication module, or power line communication module). The corresponding communication module among these communication modules can communicate with an external electronic device (104) through a first network (198) (e.g., a short-range communication network such as Bluetooth, WiFi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network (199) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). 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 (192) can identify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) using subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module (196).

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

[0028] An antenna module (197) can transmit a signal or power to or from an external source (e.g., an external electronic device). According to one embodiment, the antenna module (197) may include an antenna comprising a radiator made of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (197) 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 a first network (198) or a second network (199), may be selected from the plurality of antennas, for example, by a communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module (197).

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

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

[0031] According to one embodiment, commands or data may be transmitted or received between an electronic device (101) and an external electronic device (104) through a server (108) connected to a second network (199). Each of the external electronic devices (102, or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations performed on the electronic device (101) may be performed on one or more of the external electronic devices (102, 104, or 108). For example, if the electronic device (101) needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device (101) may request one or more external electronic devices to perform at least part of the function or service instead of performing the function or service itself or additionally. One or more external electronic devices that receive the above request may execute at least part of the requested function or service, or additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may provide the result as is or additionally processed as at least part of the response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (101) may provide ultra-low latency services using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server using machine learning and / or neural networks. According to one embodiment, the external electronic device (104) or the server (108) may be included within a second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.

[0032] According to various embodiments, an electronic device (e.g., the electronic device (101) of FIG. 1) may include various functions. A user may install necessary applications (or functions) on the electronic device (101) and delete unnecessary applications. Depending on the user, the number and types of applications installed on the electronic device (101) may vary. Applications include applications that operate independently, such as a calculator and a notepad, but there are also applications that operate in connection with other electronic devices via a network, such as games or online markets.

[0033] According to various embodiments, an application (or function) performed on an electronic device (101) may be delayed in operation due to various causes. For example, if the application with delayed operation is an application connected to a network and communicating with another electronic device, the cause of the delay in operation may be a problem with the communication environment, a problem with the application or the counterpart electronic device (e.g., a server), or / and due to the user's inexperienced operation.

[0034] According to various embodiments, the electronic device (101) can set network-related variables before connecting to the network using the communication module (190), and can change the set variables according to the network status.

[0035] According to various embodiments, variables that the electronic device (101) can change depending on the state of the network may include a retransmission timeout (RTO), a congestion window (CWND), a slow start threshold (ssThreshold), and a Quick Ack.

[0036] According to various embodiments, the retransmission timeout (RTO) may be the time that the electronic device (101) must wait to receive an ack for the data (or data segment) it has transmitted. The electronic device (101) may start a timer after transmitting the data. The timer may be set to expire at the retransmission timeout (RTO). If the electronic device (101) does not receive an ack by the timer expires, it may determine that the data transmission failed and retransmit the transmitted data. For example, if the retransmission timeout (RTO) is 1 second, the electronic device (101) may wait for up to 1 second to receive an ack. If the electronic device (101) does not receive an ack during the 1 second waiting period, it may retransmit the data. Since the retransmission timeout (RTO) is the time that the electronic device (101) must wait to receive an ack, it may be a value greater than the round trip time (RTT). According to one embodiment, the electronic device (101) may retransmit data if the transmitted data is lost before arriving at the external electronic device (104) or if it fails to receive the ack transmitted by the external electronic device (104). Alternatively, the electronic device (101) may retransmit data before the ack arrives because it does not know that the ack is received later than the retransmission timeout. According to one embodiment, if the retransmission timeout (RTO) is large, it may mean that a retransmission timeout has occurred.

[0037] According to various embodiments, CWND may be a variable (or value) representing the amount of data that an electronic device (101) transmits to an external electronic device (104) before receiving an ack. The electronic device (101) may reduce CWND if retransmission occurs frequently, and increase CWND if data transmission is successful without retransmission. The electronic device (101) may use CWND to avoid network congestion. The amount of data that can be transmitted over a TCP connection may depend on the CWND set by the electronic device transmitting the data. A small CWND may mean that there is less data that can be transmitted before receiving an ack.

[0038] According to various embodiments, ssThreshold may be an estimate of the operating window size of TCP when there is no loss. ssThreshold may be used to regulate network traffic (or data traffic) by negotiating the amount of data transmitted between electronic devices (101, 104) connected via TCP. ssThreshold may be used to determine whether slow start or congestion prevention algorithms are used to control data transmission by the electronic device (101). At the first data transmission, ssThreshold may be set to a high value and subsequently adjusted. A decrease in ssThreshold may indicate network congestion. Additionally, ssThreshold may be lowered when retransmission occurs.

[0039] According to various embodiments, CWND and ssThreshold can be combined and referred to as Moving Window Size.

[0040] According to various embodiments, Quick Ack can be used to indicate a mode and to initiate a TCP connection. In TCP, electronic devices can be connected in an interactive session where an ack is sent upon receiving data. The electronic device (101) can use the Quick Ack mode to set whether to send the ack immediately after receiving data or to send it later via piggyback. If the electronic device (101) sets the Quick Ack mode to on (e.g., Quick Ack = 1), it can send the ack immediately upon receiving data, and if it sets the Quick Ack mode to off (e.g., Quick Ack = 0), it can send the data containing the ack later without sending the ack immediately even after receiving data. The electronic device (101) and the external electronic device (104) do not need to send and receive the ack separately, thereby reducing the time required for data transmission and reception (or data delay). The electronic device (101) can set the Quick Ack mode to off and increase the CWND to transmit a large amount of data. According to one embodiment, an electronic device (101) (e.g., an operating system of the electronic device (101)) can set the Quick Ack mode to on by default. When the electronic device (101) (e.g., an application of the electronic device (101)) is connected to a counterparty electronic device (e.g., a server) in a non-interactive session, it can set the Quick Ack mode to off and transmit data.

[0041] According to various embodiments, the electronic device (101) can read or set the values ​​of variables using an internal interface (e.g., a socket status command (socket stat command)).

[0042] Figure 2 is a graph comparing RTO and RTT according to the network connection status of the electronic device.

[0043] In Figure 2, RTO and RTT are compared using data of the same size, but RTO is the waiting time to receive an ACK for the data to be sent divided and transmitted at once, and RTT may be the time to receive an ACK for the entire data to be sent.

[0044] According to various embodiments, an electronic device (e.g., the electronic device (101) of FIG. 1) transmits data to an external electronic device (e.g., the external electronic device (104) of FIG. 1) and may retransmit the data if it does not receive an ack within a certain period of time. Here, the certain period of time may be a retransmission timeout (RTO) which serves as a criterion for determining whether retransmission is required.

[0045] According to various embodiments, the retransmission timeout (RTO) may be a time greater than the round trip time (RTT), which is the time when the electronic device (101) transmits data and receives an ack. In FIG. 2, the unit of time representing the retransmission timeout (RTO) is centisecond, and the unit of time representing the RTT is millisecond, so the value of the retransmission timeout (RTO) may be a larger value.

[0046] Referring to FIG. 2, if the value of RTT (210) increases, the value of the retransmission timeout (RTO) (220) may also increase. According to various embodiments, if the network condition is good, the value of the retransmission timeout (RTO) (220) may be less variable. The electronic device (101) can determine the network condition using the threshold value of the retransmission timeout (RTO) (220). For example, the electronic device (101) may determine that the network condition is good if the retransmission timeout is lower than the first threshold value (Th1) (230), and that the network condition is bad if it is higher than the second threshold value (Th2) (240). The electronic device (101) may determine that the network condition is bad if the retransmission timeout is higher than the first threshold value (Th1) (230) but lower than the second threshold value (Th2) (240).

[0047] According to various embodiments, if the retransmission timeout is lower than the first threshold (Th1) (230), the electronic device (101) may continue to use the network currently in use, and if it is higher than the second threshold (Th2) (240), it may determine that the network condition is bad, disconnect the connected network, and attempt to connect to a new network. If the retransmission timeout is higher than the first threshold (Th1) (230) but lower than the second threshold (Th2) (240), the electronic device (101) may wait until the retransmission timeout rises to the second threshold (Th2) (240) or attempt to connect to a new network immediately.

[0048] FIGS. 3a and FIGS. 3b are flowcharts of an electronic device determining the cause of a delay according to a first embodiment.

[0049] According to various embodiments, an electronic device (e.g., electronic device (101) of FIG. 1) can determine, in operation 305, whether the retransmission timeout (RTO) is smaller than a first threshold (Th1) (e.g., 230 of FIG. 2).

[0050] According to various embodiments, in operation 330, the electronic device (101) can determine whether it is in Quick ack mode if the retransmission timeout (RTO) is smaller than the first threshold (Th1). The electronic device (101) can determine that if the retransmission timeout (RTO) is smaller than the first threshold (Th1), no retransmission occurs or that the retransmitted data has been successfully transmitted within a certain time.

[0051] According to various embodiments, in operation 335, the electronic device (101) can determine that the network condition is good if it is in Quick ack mode (Quick ack = 1). The electronic device (101) can determine that the network condition is good and set to transmit a large amount of data if the retransmission timeout (RTO) is smaller than the first threshold (Th1) and it is in Quick ack mode (Quick ack = 1).

[0052] According to various embodiments, in operation 340, the electronic device (101) can check whether the value of CWND or / and ssThreshold is smaller than the third threshold (Th3) if it is not in Quick ack mode (Quick ack = 0).

[0053] According to various embodiments, in operation 345, the electronic device (101) may determine that there is a problem with the application and / or server if the value of CWND or / and ssThreshold is less than a third threshold (Th3). The threshold corresponding to CWND and the threshold corresponding to ssThreshold may be different.

[0054] According to various embodiments, in operation 350, the electronic device (101) may display a notification to the user. For example, the electronic device (101) may display a message such as “No response from server” or “Please run the application again.” The electronic device (101) may receive input from the user and terminate or run the application again. The electronic device (101) may reconnect using a previously connected network.

[0055] According to various embodiments, in operation 355, the electronic device (101) may determine that the network state is good if the value of CWND or / and ssThreshold is greater than the third threshold (Th3). If the value of CWND is large, it may mean that the electronic device (101) can transmit a large amount of data at once, so the electronic device (101) may determine that the network state is good.

[0056] According to various embodiments, in operation 310, the electronic device (101) can determine whether the retransmission timeout (RTO) is smaller than a second threshold (Th2). The second threshold (Th2) (e.g., 240 in FIG. 2) may be a value greater than a first threshold (Th1).

[0057] According to various embodiments, in operation 315, the electronic device (101) may determine that the network is in poor condition if the retransmission timeout (RTO) is smaller than the second threshold (Th2).

[0058] According to various embodiments, in operation 320, the electronic device (101) can measure the quality of the connected network. For example, if the connected network is Wi-Fi, the electronic device (101) can measure the quality of the network based on the ICMP response time of the Wi-Fi AP. As another example, the electronic device (101) can measure the quality of the network based on the response time of a frequently used server.

[0059] According to various embodiments, in operation 325, the electronic device (101) can determine whether the quality of the network measured in the previous operation is lower than a preset standard.

[0060] According to various embodiments, the electronic device (101) can determine whether a fast connection is requested in operation 330 if the measured quality of the network is not lower than a preset standard. The electronic device (101) can determine whether the user's preference is to request a fast connection if it determines that the speed of the network is slow but the quality of the network is not low.

[0061] According to various embodiments, the electronic device (101) may determine in operation 335 that the network condition is bad if the retransmission timeout (RTO) is greater than the second threshold (Th2).

[0062] According to various embodiments, the electronic device (101) can perform operation 335 if it determines that the user's preference is to request a fast connection.

[0063] According to various embodiments, in operation 340, the electronic device (101) may use another network because the condition of the network is poor or bad.

[0064] According to various embodiments, the electronic device (101) can perform operation 340 even if the user's preference does not request a fast connection. The electronic device (101) can perform operation 340 if the measured quality of the network is lower than a set standard.

[0065] In FIGS. 3a and 3b, the electronic device (101) determines the state of the network by distinguishing the retransmission timeout (RTO) into a first threshold and a third threshold, but the state of the network can be determined using a single threshold. For example, the electronic device (101) can determine that the state of the network is good if the retransmission timeout (RTO) is smaller than the threshold, and can determine that the state of the network is bad if the retransmission timeout (RTO) is larger than the threshold.

[0066] Figure 4 shows an example of a user using an electronic device while moving.

[0067] Referring to FIG. 4, the user (410) can use an electronic device (e.g., the electronic device (101) of FIG. 1) to play games or use an internet browser. The electronic device (101) may be connected to an external electronic device (e.g., the external electronic device (104) or server (102) of FIG. 1) via Wi-Fi. The user (410) can use the electronic device (101) while on the move.

[0068] According to various embodiments, as in FIG. 4(a), a user (410) can move from an area (420) with good Wi-Fi connection strength to an area (430) with poor Wi-Fi connection strength. As a result, a delay may occur in the application running on the electronic device (101).

[0069] According to various embodiments, the user (410) can set the available network for each application. For example, the user (410) can set the network for each application considering the charges currently in use. The user (410) can set it to use another network if the network status is poor, such as when determining that a real-time response is required for a game. As another example, the user (410) can set the network considering the characteristics of the application. The user (410) can set it to use another network if the network status is poor, such as when the characteristics of the application require high-reliability, ultra-low-latency communication.

[0070] Referring to Figure 4(b), in the case of a game, if the network condition is poor, a different network is used, and in the case of an internet browser, it may be set so that the network is not changed even if the condition is poor.

[0071] FIG. 5 shows a change in a variable depending on whether a delay occurs in an electronic device according to the first embodiment.

[0072] Referring to FIG. 5(a), an electronic device (e.g., the electronic device (101) of FIG. 1) may have two sockets created at T0. The interface (510) of the first socket may be Wi-Fi, the TCP state (515) may be establish, the Innode (520) may be Inn1, the Retransmission Timeout (RTO) (525) may be c1, the Quick Ack (530) may be 0, the cwnd (535) may be 1, and the ssThreshold (540) may be 5. The interface (510) of the second socket may be Wi-Fi, the TCP state (515) may be establish, the Innode (520) may be Inn2, the Retransmission Timeout (RTO) (525) may be c2, the Quick Ack (530) may be 0, the cwnd (535) may be 1, and the ssThreshold (540) may be 5. If Quick Ack (530) is 0, Quick ack mode may be set to off, and if Quick Ack (530) is 1, Quick ack mode may be set to on. The variables of the first socket and the second socket in T1 may have the same value (or state) as in T0.

[0073] Figures 5(b) and 5(c) show the variables of the first and second sockets depending on whether the delay is resolved at T2.

[0074] Referring to Fig. 5(b), the variables of the first socket and the second socket may have the same value (or state) at T2 as well. The electronic device (101) can determine that a delay has occurred because the variables of the first socket and the second socket are the same at T1 and T2.

[0075] Referring to Fig. 5(c), at T2, only the Quick Ack (545) among the variables of the first socket and the second socket changes its value, so the electronic device (101) can determine that there is no problem with the network. At T2, Quick Ack (545) can be changed to 1. When Quick Ack (545) is changed to 1, the Quick Ack mode may be turned on. The electronic device (101) can set the Quick Ack mode to on, for example, if it wants to check for a quick ack.

[0076] FIG. 6 is a flowchart showing how an electronic device determines the cause of a delay according to a second embodiment.

[0077] According to various embodiments, an electronic device (e.g., the electronic device (101) of FIG. 1) can check in operation 610 whether the state of the socket is SYN. ​​The electronic device (101) can send a SYN message to establish a TCP connection with an external electronic device (e.g., the external electronic device (104) of FIG. 1) using the socket. If the state of the socket is not SYN, the electronic device (101) may not want a TCP connection with the external electronic device (104).

[0078] According to various embodiments, in operation 620, the electronic device (101) can check whether the retransmission timeout (RTO) of the socket is greater than a threshold value when the state of the socket is SYN.

[0079] According to various embodiments, in operation 630, the electronic device (101) can extract the IP address and port number of the socket if the retransmission timeout (RTO) of the socket is greater than a threshold. If the retransmission timeout (RTO) of the socket is less than a threshold, the electronic device (101) can determine that there is no problem by determining that no retransmission occurred.

[0080] According to various embodiments, in operation 640, the electronic device (101) can determine whether to create a socket using another network (e.g., LTE, 5G) by using the IP address and port number of the extracted socket.

[0081] According to various embodiments, in operation 650, the electronic device (101) may use a different network if the creation of a different socket is possible.

[0082] According to various embodiments, in operation 660, the electronic device (101) may determine that it is not a network problem if it is not possible to create another socket.

[0083] FIG. 7 shows a change in a variable depending on whether a delay occurs in an electronic device according to a second embodiment.

[0084] Referring to FIG. 7(a), an electronic device (e.g., the electronic device (101) of FIG. 1) may have two sockets created at T0. The interface (705) of the first socket may be Wi-Fi, the IP address (710) may be xxxx1, the port number (715) may be yyy1, the TCP state (720) may be a connection attempt state (SYN), and the retransmission timeout (RTO) (725) may be c1. The interface (705) of the second socket may be Wi-Fi, the IP address (710) may be xxxx2, the port number (715) may be yyy2, the TCP state (720) may be a connection attempt state (SYN), and the retransmission timeout (RTO) (725) may be c2.

[0085] According to various embodiments, the retransmission timeout (RTO) (730) of the first socket and the second socket at T1 may be changed to c3 and c4. The retransmission timeout (RTO) (730) may be changed when a retransmission occurs.

[0086] Figures 7 (b) and (c) show the variables of the first and second sockets depending on whether the delay is resolved at T2.

[0087] Referring to FIG. 7(b), at T2, the electronic device (101) may attempt to connect using another network, LTE, by using the IP addresses and port numbers of the first socket and the second socket (740). Referring to the TCP status (745) of the first socket, the electronic device (101) may be connected to the LTE network. If the electronic device (101) changes the network and the connection is established, it may determine that there is a problem with the network.

[0088] Referring to Fig. 7(c), at T2, the electronic device (101) may attempt to connect using another network, LTE, by using the IP addresses and port numbers of the first and second sockets. However, the TCP status of the first and second sockets may still be in the state of attempting a connection (SYN). If the electronic device (101) does not establish a connection even after changing the network, it may determine that there is no problem with the network.

[0089] FIG. 8 is a flowchart showing how an electronic device determines the cause of the delay according to a third embodiment.

[0090] According to various embodiments, an electronic device (e.g., the electronic device (101) of FIG. 1) can check, in operation 810, whether the number of data retransmissions of the socket is greater than a threshold (Th1). According to one embodiment, the threshold (Th1) may be 0.

[0091] According to various embodiments, in operation 820, the electronic device (101) can check for a retransmission timeout (RTO) if the number of data retransmissions of the socket is greater than a threshold (Th1).

[0092] According to various embodiments, in operation 830, the electronic device (101) can determine whether the identified retransmission timeout (RTO) is greater than the previously identified retransmission timeout or / and whether the identified retransmission timeout (RTO) is greater than the threshold (Th2).

[0093] According to various embodiments, in operation 840, the electronic device (101) may determine that the network is in poor condition if the checked retransmission timeout (RTO) is greater than the previously checked retransmission timeout or / and the checked retransmission timeout (RTO) is greater than the threshold (Th2).

[0094] According to various embodiments, in operation 850, the electronic device (101) can change the connected network to another network. For example, if the currently connected network is Wi-Fi, the electronic device (101) can disconnect from Wi-Fi and attempt to connect to LTE. Although described herein as an electronic device, this can be performed by a network socket. A network socket can be created by an application running on the electronic device, and one application can create multiple network sockets.

[0095] According to various embodiments, in operation 860, the electronic device (101) may determine that there is no problem with the network if the checked retransmission timeout (RTO) is equal to or smaller than the previously checked retransmission timeout. Alternatively, the electronic device (101) may determine that there is no problem with the network if the checked retransmission timeout (RTO) is less than or equal to the threshold (Th2).

[0096] FIG. 9 shows a change in a variable depending on whether a delay occurs in an electronic device according to a third embodiment.

[0097] Referring to FIG. 9(a), an electronic device (e.g., the electronic device (101) of FIG. 1) may have two sockets created at T0. The interface (905) of the first socket may be Wi-Fi, the IP address (910) may be xxxx1, the port number (915) may be yyy1, the TCP state (920) may be establish, the Innode (925) may be Inn1, the Retransmission Timeout (RTO) (930) may be c1, and the timer (935) may be t1. The interface (905) of the second socket may be Wi-Fi, the IP address (910) may be xxxx2, the port number (915) may be yyy2, the TCP state (920) may be establish, the Innode (925) may be Inn2, the Retransmission Timeout (RTO) (930) may be c2, and the timer (935) may be 0. Here, the timer (935) is set when the electronic device (101) fails to receive an ack from the receiving electronic device (e.g., an external electronic device (104)) that received the data transmitted by the electronic device (101) and must retransmit the data. If the data transmission is unsuccessful, the value of the timer (935) may increase. In the first socket, a retransmission occurs and the timer (935) is set to t1, and in the second socket, a retransmission does not occur and the timer (935) is set to 0.

[0098] Referring to FIG. 9(a), at T1, no retransmission occurs in the second socket, so the set value does not change, but in the first socket, a retransmission timeout continues to occur, so the retransmission timeout (RTO) (940) can be changed to c3 and the timer (945) can be changed to t2. According to various embodiments, c3 may be a value greater than c1, and t2 may be a value greater than t1. According to various embodiments, the first socket may be a socket that supports a game, so a user interface indicating delay may be displayed in the game as in FIG. 9(a).

[0099] Figures 9 (b) and (c) show the variables of the first and second sockets depending on whether the delay is resolved at T2.

[0100] Referring to FIG. 9(b), it may indicate that a retransmission timeout has still occurred in the first socket. In the first socket, the value of the retransmission timeout (RTO) (950) may be changed to c4, and the timer (955) may be changed to t3. The electronic device (101) may change the connection to LTE if it determines that there is a problem with the connection to Wi-Fi.

[0101] Referring to FIG. 9(b), it may indicate that a retransmission timeout has still occurred in the first socket. In the first socket, the value of the retransmission timeout (RTO) (950) may be changed to c4, and the timer (955) may be changed to t3. The electronic device (101) may change the connection to LTE if it determines that there is a problem with the connection to Wi-Fi.

[0102] Referring to Fig. 9 (c), retransmission can be successful in the first socket. In the first socket, the value of the retransmission timeout (RTO) (960) can be changed to c3, and the timer (965) can be changed to 0. The electronic device (101) can determine that there is no problem with the connection to Wi-Fi and can continue to maintain the connection to Wi-Fi.

[0103] In the foregoing, the operation is described as being performed by an electronic device, but it may be an operation performed by a network socket. A network socket may be created by an application running on an electronic device, and a single application may create multiple network sockets.

[0104] An electronic device according to various embodiments of the present disclosure includes at least one communication module that supports connection with a plurality of networks including a first network and a second network, and a processor operatively connected to the at least one communication module, wherein the processor checks for a retransmission timeout through the first network and checks whether the checked retransmission timeout is greater than a first threshold value, and if the checked retransmission timeout is greater than the first threshold value, the connection can be changed from the first network to the second network.

[0105] The processor of an electronic device according to various embodiments of the present disclosure can create a network socket and connect to the first network using the created network socket.

[0106] In an electronic device according to various embodiments of the present disclosure, the network socket may be generated by an application.

[0107] The processor of an electronic device according to various embodiments of the present disclosure checks whether it is in Quick Ack mode if the checked retransmission timeout is smaller than the first threshold, and if it is confirmed not to be in Quick Ack mode, checks whether CWND is smaller than the second threshold, and if CWND is smaller than the second threshold, it can display a notification indicating that a problem has occurred in the function being executed.

[0108] In an electronic device according to various embodiments of the present disclosure, the second threshold value may be a previously identified CWND.

[0109] The processor of an electronic device according to various embodiments of the present disclosure may check whether it is in Quick Ack mode if the confirmed retransmission timeout is smaller than the first threshold, and if it is confirmed not to be in Quick Ack mode, check whether ssThreshold is smaller than the third threshold, and if ssThreshold is smaller than the third threshold, display a notification indicating that a problem has occurred in the function being executed.

[0110] In an electronic device according to various embodiments of the present disclosure, the third threshold may be a previously identified ssThreshold.

[0111] The processor of the electronic device according to various embodiments of the present disclosure may wait for a certain period of time before changing the connection from the first network to the second network, and after waiting for the certain period of time, check whether it is in Quick Ack mode, and if it is not in Quick Ack mode, change the connection from the first network to the second network.

[0112] The processor of the electronic device according to various embodiments of the present disclosure may extract the IP address and port number of the socket that has confirmed the retransmission timeout, check whether it is possible to connect to the second network using the extracted IP address and port number of the socket, and if it is not possible to connect to the second network, display a notification indicating that a problem has occurred in the network.

[0113] The processor of the electronic device according to various embodiments of the present disclosure extracts the IP address and port number of the socket that has confirmed the retransmission timeout, checks whether it is possible to connect to the second network using the extracted IP address and port number of the socket, and if it is not possible to connect to the second network, it may attempt to connect to the third network.

[0114] The processor of an electronic device according to various embodiments of the present disclosure checks the number of retransmissions of a socket that has checked the retransmission timeout before changing the connection from the first network to the second network, checks whether the checked number of retransmissions is greater than a fourth threshold, and if the checked number of retransmissions is greater than the fourth threshold, checks the value of a next attempt timer, and if the checked value of the next attempt timer is greater than a fifth threshold, can change the connection from the first network to the second network.

[0115] In an electronic device according to various embodiments of the present disclosure, the fifth threshold value may be the value of the next attempt timer previously checked.

[0116] A method of operation of an electronic device according to various embodiments of the present disclosure may include checking a retransmission timeout through a first network, checking whether the checked retransmission timeout is greater than a first threshold, and if the checked retransmission timeout is greater than the first threshold, changing the connection from the first network to a second network.

[0117] A method of operation of an electronic device according to various embodiments of the present disclosure may further include the operation of creating a network socket and the operation of connecting to the first network using the created network socket.

[0118] In the method of operation of an electronic device according to various embodiments of the present disclosure, the network socket may be generated by an application.

[0119] A method of operation of an electronic device according to various embodiments of the present disclosure may further include, if the confirmed retransmission timeout is smaller than the first threshold, an operation to check whether it is in Quick Ack mode; if it is confirmed not to be in Quick Ack mode, an operation to check whether CWND is smaller than the second threshold; and if CWND is smaller than the second threshold, an operation to display a notification indicating that a problem has occurred in a function being executed.

[0120] In a method of operation of an electronic device according to various embodiments of the present disclosure, the second threshold value may be a previously identified CWND.

[0121] A method of operation of an electronic device according to various embodiments of the present disclosure may further include: checking whether it is in Quick Ack mode if the confirmed retransmission timeout is smaller than the first threshold; checking whether ssThreshold is smaller than the third threshold if it is confirmed not to be in Quick Ack mode; and displaying a notification indicating that a problem has occurred in a function being executed if ssThreshold is smaller than the third threshold.

[0122] In a method of operation of an electronic device according to various embodiments of the present disclosure, the third threshold value may be a previously identified ssThreshold.

[0123] In a method of operation of an electronic device according to various embodiments of the present disclosure, the operation of changing the connection from the first network to the second network may be an operation of waiting for a certain period of time, an operation of checking whether it is in Quick Ack mode after waiting for the certain period of time, and an operation of changing the connection from the first network to the second network if it is not in Quick Ack mode.

[0124] The electronic device according to the various embodiments disclosed in this document may be of various forms. The electronic device may include, for example, a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a consumer electronics device. The electronic device according to the embodiments of this document is not limited to the devices described above.

[0125] The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of said 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 said items unless the relevant context clearly indicates otherwise. In this document, phrases such as "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" may each include any one of the items listed together in the corresponding phrase, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used simply to distinguish said components from other said components and do not limit said components in any other aspect (e.g., importance or order). Where any (e.g., 1st) component is referred to as “coupled” or “connected” to another (e.g., 2nd) component, with or without the terms “functionally” or “communicationly,” it means that said any component may be connected to said other component directly (e.g., via a wire), wirelessly, or through a third component.

[0126] The term “module” as used in the 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, for example. A module may be a component formed integrally, or a minimum unit of said component or a part thereof 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).

[0127] Various embodiments of the present document may be implemented as software (e.g., program (140)) comprising one or more instructions stored in a storage medium (e.g., internal memory (136) or external memory (138)) readable by a machine (e.g., electronic device (101)). For example, a processor (e.g., processor (120)) of the machine (e.g., electronic device (101)) may call at least one of the one or more instructions stored in the storage medium and execute it. This enables the machine to be operated 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 that can be executed by an interpreter. The storage medium readable by the machine may be provided in the form of a non-transitory storage medium. Here, 'non-temporary' simply means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily.

[0128] According to one embodiment, the method according to the various embodiments disclosed herein may be provided by being included in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)) or an application store (e.g., Play Store). TM It can be distributed online (e.g., downloaded or uploaded) through ) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily created on a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.

[0129] According to various embodiments, each component (e.g., module or program) of the components described above may include a singular or multiple entities, and some of the multiple entities may be separated and placed in other components. According to various embodiments, one or more of the components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Generally or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the multiple components in the same or similar manner as those performed by the corresponding component among the multiple components prior to integration. According to various embodiments, operations performed by the module, program, or other components 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

Claim 1 An electronic device comprising: at least one communication module that supports connection with a plurality of networks including a first network and a second network; and a processor operatively connected to the at least one communication module, wherein the processor checks a setting value of a retransmission timeout through the first network, checks whether the checked setting value of the retransmission timeout is greater than a first threshold value, and if the checked setting value of the retransmission timeout is greater than or equal to the first threshold value, changes the connection from the first network to the second network, and if the checked setting value of the retransmission timeout is less than the first threshold value, checks whether the TCP Ack transmission mode of the electronic device is a Quick Ack mode, and if the TCP Ack transmission mode of the electronic device is not a Quick Ack mode, checks whether a setting value of a parameter for congestion control of the electronic device is less than a second threshold value, and if the setting value of the parameter for congestion control of the electronic device is less than the second threshold value, displays a notification related to a function being executed by the electronic device. Claim 2 An electronic device according to claim 1, wherein the processor creates a network socket and connects to the first network using the created network socket. Claim 3 In paragraph 2, the network socket is an electronic device created by an application running on the electronic device. Claim 4 In claim 1, the parameter for congestion control is an electronic device including a congestion window (CWND). Claim 5 In claim 1, the parameter for congestion control is an electronic device including ssThreshold(slow start threshold). Claim 6 An electronic device according to claim 1, wherein the processor waits for a certain period of time before changing the connection from the first network to the second network, checks whether it is in Quick Ack mode after waiting for the certain period of time, and if it is not in Quick Ack mode, changes the connection from the first network to the second network. Claim 7 An electronic device according to claim 1, wherein the processor extracts the IP address and port number of a socket that has checked the setting value of the retransmission timeout, checks whether it is possible to connect to the second network using the extracted IP address and port number of the socket, and if it is not possible to connect to the second network, displays a notification indicating that a problem has occurred in the network. Claim 8 An electronic device according to claim 1, wherein the processor extracts the IP address and port number of a socket that has checked the setting value of the retransmission timeout, checks whether it is possible to connect to the second network using the extracted IP address and port number of the socket, and attempts to connect to the third network if it is not possible to connect to the second network. Claim 9 An electronic device according to claim 1, wherein the processor checks the number of retransmissions of a socket that has checked the setting value of the retransmission timeout before changing the connection from the first network to the second network, checks whether the checked number of retransmissions is greater than a fourth threshold, and if the checked number of retransmissions is greater than the fourth threshold, checks the value of a next attempt timer, and if the checked value of a next attempt timer is greater than a fifth threshold which is the value of a next attempt timer checked before checking the value of a next attempt timer, the processor changes the connection from the first network to the second network. Claim 10 A method of operation of an electronic device comprising: an operation of checking a setting value of a retransmission timeout through a first network; an operation of checking whether the checked setting value of the retransmission timeout is greater than a first threshold value; an operation of changing the connection from the first network to a second network if the checked setting value of the retransmission timeout is greater than or equal to the first threshold value; an operation of checking whether the TCP Ack transmission mode of the electronic device is a Quick Ack mode if the checked setting value of the retransmission timeout is less than the first threshold value; an operation of checking whether the setting value of a parameter for congestion control of the electronic device is less than a second threshold value if the TCP Ack transmission mode of the electronic device is not a Quick Ack mode; and an operation of displaying a notification related to a function being executed by the electronic device if the setting value of the parameter for congestion control of the electronic device is less than the second threshold value. Claim 11 delete Claim 12 delete Claim 13 delete Claim 14 delete Claim 15 delete Claim 16 delete Claim 17 delete Claim 18 delete Claim 19 delete Claim 20 delete

Citation Information

Patent Citations

  • Electronic Device for Selecting Network

    KR1020180070963A

  • Wireless communication system which improves reliability and throughut of communication and retransmission timeout determining method used for the same

    US20040165543A1