WO2019146996A1 - Method for network state identification and electronic device therefor - Google Patents
Method for network state identification and electronic device therefor Download PDFInfo
- Publication number
- WO2019146996A1 WO2019146996A1 PCT/KR2019/000900 KR2019000900W WO2019146996A1 WO 2019146996 A1 WO2019146996 A1 WO 2019146996A1 KR 2019000900 W KR2019000900 W KR 2019000900W WO 2019146996 A1 WO2019146996 A1 WO 2019146996A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- state
- processor
- electronic device
- various embodiments
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/14—Reselecting a network or an air interface
- H04W36/144—Reselecting a network or an air interface over a different radio air interface technology
- H04W36/1446—Reselecting a network or an air interface over a different radio air interface technology wherein at least one of the networks is unlicensed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/06—Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
Definitions
- Various embodiments of the present invention are directed to an apparatus and method for network status identification in an electronic device.
- optimal network services can provide a seamless Internet experience for users, regardless of Wi-Fi or cellular network, by selecting the most optimized network for the user to access the Internet.
- TCP transmission control protocol
- Various embodiments of the present invention provide a method and an electronic device for network status identification of an electronic device.
- a method of operating an electronic device includes the steps of: identifying a state of a transport protocol; determining a communication state of the electronic device based on the state of the transmission protocol; And changing the network based on the communication state.
- an electronic device includes a communication module, at least one processor, a memory operably coupled to the at least one processor, , Identify a state of a transport protocol, determine a communication state of the electronic device based on the state of the transmission protocol, and store instructions that cause the network to change based on the communication state.
- the electronic device and its method of operation according to various embodiments can identify network conditions more efficiently than existing methods by identifying network conditions using a transport protocol.
- FIG. 1 shows a block diagram of an electronic device in a network environment in accordance with various embodiments of the present invention.
- FIG. 2A illustrates a block diagram 200 of an electronic device according to various embodiments of the present invention.
- Figure 2B illustrates a block diagram 240 of a wireless communication module, a power management module, and an antenna module of an electronic device according to various embodiments of the present invention.
- Figure 3 shows a flow diagram 300 of an electronic device according to various embodiments of the present invention.
- FIG. 4 illustrates a flow diagram 400 of an electronic device for identifying a transmission protocol state to determine a communication state in accordance with various embodiments of the present invention.
- FIG. 5 illustrates a sequence diagram 500 for transmitting data using a transmission control protocol (TCP) protocol in accordance with various embodiments of the present invention.
- TCP transmission control protocol
- FIG. 6 illustrates an example 600 of an interface of an electronic device displayed in an electronic device when the communication status according to various embodiments of the present invention is in a block state.
- Figure 7A shows a flowchart 710 illustrating a red flag accumulation in accordance with various embodiments of the present invention.
- Figure 7B shows a flowchart 720 illustrating a red flag accumulation in accordance with various embodiments of the present invention.
- Figure 8 illustrates a flowchart 800 for determining a good state in accordance with various embodiments of the present invention.
- Figure 9 illustrates a flowchart 900 for determining a poor state in accordance with various embodiments of the present invention.
- Figure 10 illustrates a flowchart 1000 for determining a blocked state in accordance with various embodiments of the present invention.
- FIG. 11 illustrates a flowchart 1100 for determining a sluggish state in accordance with various embodiments of the present invention.
- FIG. 12 illustrates a flowchart 1200 for identifying a communication state and modifying a network in accordance with various embodiments of the present invention.
- FIG. 13 shows a flow diagram 1300 of an electronic device for monitoring the status of a transport layer protocol in accordance with various embodiments of the present invention.
- FIG. 14 illustrates an example 1400 interface of an electronic device for monitoring the status of a transport layer protocol in accordance with various embodiments of the present invention.
- 15A illustrates an example 1500 of an interface of an electronic device to be displayed on an electronic device when the communication state is in a block state according to various embodiments of the present invention.
- 15B shows an example 1510 of an interface of an electronic device displayed on an electronic device when the communication state is in a good state according to various embodiments of the present invention.
- FIG. 16 illustrates a sequence diagram 1600 illustrating a state change of a transport protocol socket in accordance with various embodiments of the present invention.
- Figure 17 illustrates a flow diagram 1700 of an electronic device that determines a backhaul failure based on at least one of a state of a transport protocol and a count of a transport protocol in accordance with various embodiments of the present invention.
- FIG. 18 shows an example 1800 of an interface of an electronic device that represents a backhaul failure in accordance with various embodiments of the present invention.
- FIG. 19 illustrates a flow diagram 1900 of an electronic device that determines a backhaul failure based on a total count of connection and a connection establishment count in accordance with various embodiments of the present invention.
- Figure 20 shows a graph 2000 illustrating an example of determining a backhaul failure based on a total count of transmission protocols and a connection establishment count in accordance with various embodiments of the present invention.
- 21 shows a flow diagram 2100 of an electronic device for determining a backhaul failure based on a retransmission state of a transmission protocol according to various embodiments of the present invention.
- 22A illustrates a graph 2200 illustrating an example of determining a backhaul failure based on the retransmission state of a transmission protocol in accordance with various embodiments of the present invention.
- Figure 22B shows a sequence diagram 2250 illustrating an example of determining a backhaul failure based on the retransmission state of a transport protocol in accordance with various embodiments of the present invention.
- FIG. 23 shows a flow diagram 2300 of an electronic device for determining a backhaul failure based on a reception error of a transmission protocol according to various embodiments of the present invention.
- 24A illustrates a graph 2400 illustrating an example of determining a backhaul failure based on a reception error of a transmission protocol in accordance with various embodiments of the present invention.
- 24B illustrates a sequence diagram 2450 illustrating an example of determining a backhaul failure based on a reception error of a transmission protocol in accordance with various embodiments of the present invention.
- 25 shows a flow diagram 2500 of an electronic device for indicating a backhaul failure and a network change indicator in accordance with various embodiments of the present invention.
- 26 illustrates an example interface 2600 of an electronic device for indicating a network change indicator in a backhaul failure according to various embodiments of the present invention.
- FIG. 27 illustrates an example interface 2700 of an electronic device that indicates a change to another access point (AP) upon a backhaul failure in accordance with various embodiments of the present invention.
- AP access point
- FIG. 28 illustrates an example of an interface 2800 of an electronic device that optionally presents a network change indicator upon backhaul failure according to various embodiments of the present invention.
- 29 shows a flow diagram 2900 of an electronic device sharing a backhaul failure with other electronic devices in accordance with various embodiments of the present invention.
- 30A illustrates an example 3010 of sharing a backhaul failure with another electronic device connected to the same AP upon a backhaul failure according to various embodiments of the present invention.
- Figure 30B illustrates an example 3020 of sharing a backhaul failure with another electronic device connected to the same AP upon a backhaul failure according to various embodiments of the present invention.
- FIG. 31 shows a flow diagram 3100 of an electronic device that stores and provides information related to backhaul failures in accordance with various embodiments of the present invention.
- FIG. 32 shows a flow diagram 3200 of an electronic device for checking backhaul failures and performing control over backhaul failures in accordance with various embodiments of the present invention.
- FIG 33 shows a flow diagram 330 of an electronic device illustrating an implementation for examining a backhaul condition in accordance with various embodiments of the present invention.
- FIG. 34 illustrates a flow diagram 3400 of an electronic device for obtaining a threshold according to various embodiments of the present invention.
- FIG. 35 shows a flow diagram 3500 of an electronic device for obtaining a received signal strength indication (RSSI) threshold according to various embodiments of the present invention.
- RSSI received signal strength indication
- 36 shows a flow diagram 3600 of an electronic device for checking a new connection establishment state and a time waiting state in accordance with various embodiments of the present invention.
- Figure 37 shows a flow diagram 3700 of an electronic device for inspecting in-segment and out-segment errors in accordance with various embodiments of the present invention.
- 38 shows a flow diagram 3800 of an electronic device for inspecting a retransmission segment in accordance with various embodiments of the present invention.
- Figure 39 shows a flow diagram 3900 of an electronic device for checking the state of a backhaul in accordance with various embodiments of the present invention.
- FIG. 1 is a block diagram of an electronic device 101 in a network environment 100, in accordance with various embodiments.
- an electronic device 101 in a network environment 100 communicates with an electronic device 102 via a first network 198 (e.g., a short-range wireless communication network) (E. G., A < / RTI > remote wireless communication network).
- a first network 198 e.g., a short-range wireless communication network
- the electronic device 101 is capable of communicating with the electronic device 104 through the server 108.
- the electronic device 101 includes a processor 120, a memory 130, an input device 150, an audio output device 155, a display device 160, an audio module 170, a sensor module 176, an interface 177, a haptic module 179, a camera module 180, a power management module 188, a battery 189, a communication module 190, a subscriber identity module 196, ).
- at least one (e.g., display 160 or camera module 180) of these components may be omitted from the electronic device 101, or one or more other components may be added.
- some of these components may be implemented as a single integrated circuit.
- a sensor module 176 e.g., a fingerprint sensor, an iris sensor, or a light sensor
- the display device 160 e.g., a display
- Processor 120 executes at least one other component (e.g., hardware or software component) of electronic device 101 connected to processor 120 by executing software (e.g., program 140) And can perform various data processing or arithmetic operations.
- the processor 120 may provide instructions or data received from other components (e.g., sensor module 176 or communication module 190) Process the instructions or data stored in the volatile memory 132, and store the resulting data in the non-volatile memory 134.
- the processor 120 includes a main processor 121 (e.g., a central processing unit or application processor), and a secondary processor 123 (e.g., a graphics processing unit, an image signal processor , A sensor hub processor, or a communications processor). Additionally or alternatively, the coprocessor 123 may use less power than the main processor 121, or it may be set to be specific to the specified function. The coprocessor 123 may be implemented separately from, or as part of, the main processor 121.
- a main processor 121 e.g., a central processing unit or application processor
- a secondary processor 123 e.g., a graphics processing unit, an image signal processor , A sensor hub processor, or a communications processor.
- the coprocessor 123 may use less power than the main processor 121, or it may be set to be specific to the specified function.
- the coprocessor 123 may be implemented separately from, or as part of, the main processor 121.
- a functionally related other component e.g., camera module 180 or communication module 190
- Memory 130 may store various data used by at least one component (e.g., processor 120 or sensor module 176) of electronic device 101.
- the data may include, for example, input data or output data for software (e.g., program 140) and instructions related thereto.
- the memory 130 may include a volatile memory 132 or a non-volatile memory 134.
- the program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142, middleware 144,
- the input device 150 may receive commands or data to be used for components (e.g., processor 120) of the electronic device 101 from the outside (e.g., a user) of the electronic device 101.
- the input device 150 may include, for example, a microphone, a mouse, or a keyboard.
- the sound output device 155 can output the sound signal to the outside of the electronic device 101.
- the sound output device 155 may include, for example, a speaker or a receiver. Speakers can be used for general purposes, such as multimedia playback or record playback, and receivers can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker, or as part thereof.
- Display device 160 may visually provide information to an external (e.g., user) of electronic device 101.
- Display device 160 may include, for example, a display, a hologram device, or a projector and control circuitry for controlling the device.
- the display device 160 may comprise a touch circuitry configured to sense a touch, or a sensor circuit (e.g., a pressure sensor) configured to measure the force generated by the touch have.
- the audio module 170 may convert the sound into an electrical signal or vice versa. According to one embodiment, the audio module 170 is configured to acquire sound through the input device 150, or to output audio to the audio output device 155, or to an external electronic device (e.g., Electronic device 102) (e.g., a speaker or headphone)).
- an external electronic device e.g., Electronic device 102
- a speaker or headphone e.g., a speaker or headphone
- the sensor module 176 senses the operating state (e.g., power or temperature) of the electronic device 101 or an external environmental condition (e.g., a user state) and generates an electrical signal or data value corresponding to the sensed condition can do.
- the sensor module 176 may be, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, A temperature sensor, a humidity sensor, or an illuminance sensor.
- the interface 177 may support one or more designated protocols that may be used by the electronic device 101 to connect directly or wirelessly with an external electronic device (e.g., the electronic device 102).
- 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.
- HDMI high definition multimedia interface
- USB universal serial bus
- SD card interface Secure Digital Card interface
- audio interface audio interface
- connection terminal 178 may include a connector through which the electronic device 101 may be physically connected to an external electronic device (e.g., the electronic device 102).
- 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).
- the haptic module 179 may convert electrical signals into mechanical stimuli (e.g., vibrations or movements) or electrical stimuli that the user may perceive through tactile or kinesthetic sensations.
- the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
- the camera module 180 can capture a still image and a moving image.
- the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
- the power management module 188 can manage the power supplied to the electronic device 101.
- the power management module 388 may be implemented as at least a portion of, for example, a power management integrated circuit (PMIC).
- PMIC power management integrated circuit
- the battery 189 may supply power to at least one component of the electronic device 101.
- the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
- the communication module 190 may be a direct (e.g., wired) communication channel between the electronic device 101 and an external electronic device (e.g., an electronic device 102, an electronic device 104, or a server 108) Establishment, and communication through the established communication channel.
- Communication module 190 may include one or more communication processors that operate independently of processor 120 (e.g., an application processor) and that support direct (e.g., wired) or wireless communication.
- the communication module 190 may include a wireless communication module 192 (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 194 : A local area network (LAN) communication module, or a power line communication module).
- a corresponding one of these communication modules may be a first network 198 (e.g., a short range communication network such as Bluetooth, WiFi direct or IrDA (infrared data association)) or a second network 199 (e.g. a cellular network, (E.g., a telecommunications network, such as a computer network (e.g., a LAN or WAN)).
- a wireless communication module 192 e.g., a cellular communication module, a short range wireless communication module, or a global navigation satellite system (GNSS) communication module
- a wired communication module 194 e.g., a local area network (LAN) communication module, or a power
- the wireless communication module 192 may be configured to communicate with the subscriber identity module 196 in a communication network such as the first network 198 or the second network 199 using subscriber information (e.g., International Mobile Subscriber Identity (IMSI)
- subscriber information e.g., International Mobile Subscriber Identity (IMSI)
- IMSI International Mobile Subscriber Identity
- the antenna module 197 can transmit signals or power to the outside (e.g., an external electronic device) or receive it from the outside.
- An antenna module may be formed of a conductor or a conductive pattern, and in some embodiments may further include other components (e.g., RFIC) in addition to the conductor or conductive pattern.
- the antenna module 197 may include one or more antennas, from which at least one (e.g., one or more) antennas suitable for a communication scheme used in a communication network, such as the first network 198 or the second network 199, May be selected, for example, by the communication module 190.
- a signal or power may be transmitted or received between the communication module 190 and the external electronic device via the selected at least one antenna.
- At least some of the components are connected to each other via a communication method (e.g., bus, general purpose input and output, SPI, or mobile industry processor interface (MIPI) For example, commands or data).
- a communication method e.g., bus, general purpose input and output, SPI, or mobile industry processor interface (MIPI)
- MIPI mobile industry processor interface
- the command or data may be transmitted or received between the electronic device 101 and the external electronic device 104 via the server 108 connected to the second network 199.
- Each of the electronic devices 102 and 104 may be the same or a different kind of device as the electronic device 101.
- all or a portion of the operations performed on the electronic device 101 may be performed on one or more external devices of the external electronic devices 102, 104, or 108.
- the electronic device 101 may, instead of executing the function or service itself Or in addition, to one or more external electronic devices to perform the function or at least part of the service.
- One or more external electronic devices that have received the request may execute at least a portion of the requested function or service, or an additional function or service associated with the request, and deliver the result of the execution to the electronic device 101.
- the electronic device 101 may process the result as it is or in addition to provide it as at least part of the response to the request.
- cloud computing distributed computing, or client-server computing technology may be used.
- FIG. 2A illustrates a block diagram 200 of an electronic device according to various embodiments of the present invention.
- the electronic device may include all or a portion of the electronic device 101 shown in FIG.
- the electronic device 101 may include one or more processors (e.g., an AP)
- the processor 120 may include a transport protocol state identification unit 210, a communication state determination unit 220, and a network change unit 230.
- the present invention is not limited thereto, and some components may be omitted.
- the transmission protocol state identifying unit 210, the communication state determining unit 220, and the network changing unit 230 may be implemented as separate hardware or software modules outside the processor 120 Lt; / RTI >
- the transport protocol status identifying unit 210 can identify the status of the transport protocol to determine the communication status of the electronic device.
- the transport protocol may comprise a transmission control protocol (TCP).
- TCP provides connection-oriented communication. In connection-oriented communication, communication can be performed after preparation for communication with a communication partner is started before data communication is started. TCP can indicate various socket states during this connection process, and the electronic device can identify dynamically changing TCP socket states.
- the communication state determination unit 220 can determine the communication state of the electronic device based on the identified TCP socket state.
- the communication state may include states such as data transmission and reception signal strength of an electronic device, block by a network firewall, and the like.
- a predefined table may be stored in the memory 130 to determine the communication state according to the TCP socket state.
- the communication state may include a poor state, a good state, a blocked state, and a sluggish state.
- the communication state may mean Internet service quality. For example, if the user can smoothly use an application that requires the Internet, the processor 120 may determine that the Internet service quality is good and determine the communication state to be good. If the user can not use an application that requires the Internet smoothly, the processor 120 may determine that the quality of the internet service is bad and determine that the communication state is insufficient.
- the network changing unit 230 may change the network to which the electronic device is connected based on the determined communication state. For example, when the communication state of the electronic device is in the block state, the WiFi network environment is good but is blocked by the firewall, so that the network change unit 230 can perform the network change from the WiFi to the cellular network. As another example, in some countries, even in a cellular network environment, the right to use certain apps may be blocked by the firewall. Therefore, the network changing unit 230 can notify the user of this block state, and can perform the network change to the Wi-Fi in the cellular network.
- the processor 120 can perform a network change by detecting the state of a socket of a transport layer protocol, since a network quality measure alone can not detect that a particular application is blocked by a firewall.
- the transport layer protocol may include user datagram protocol (UDP) and TCP.
- UDP user datagram protocol
- TCP is a protocol that controls the transmission of information in a network. It allows a series of octets to be exchanged stably, sequentially, and error-free between a local area network, an intranet, a computer connected to the Internet, or a program running on a smart phone.
- the above-described socket may be an endpoint connecting communication between a plurality of entities performing communication.
- the processor 120 may use a socket pattern to detect the communication state of the electronic device.
- the communication state may include a user experience of a user using the electronic device.
- the user experience may include states such as data transmission and reception signal strength of electronic devices, block by network firewall, and the like.
- the processor 120 may identify the state of the TCP socket and determine the state of communication based on the state of the identified TCP socket. After the communication state is determined, the processor 120 may change the network based on the determined communication state. For example, you can change from Wi-Fi to a cellular network.
- the electronic device 101 may include a communication module 190, a processor 120, and a memory 130 operatively coupled to the processor 120.
- the memory 130 when executed, causes the processor 120 to identify the state of the transport protocol, determine the communication state of the electronic device 101 based on the state of the identified transport protocol, Based on the communication state of the device 101.
- the state of the transport protocol may include the state of the TCP socket of the application running in the electronic device 101.
- the communication state of the electronic device 101 may be determined to be at least one of a good state, a poor state, a blocked state, and a sluggish state.
- the instructions stored in the memory 130 of the electronic device 101 cause at least one processor 101 to detect a TCP socket for connection establishment, Identifies whether or not the sum of the transmission data packet and the reception data packet of the application executed in the electronic device 101 is larger than the threshold value and identifies whether or not the TCP socket state is in the connection release waiting state and the time
- the state of the TCP socket is changed from the connection setting request state to the connection setting state and the sum of the transmission data packet and the reception data packet is larger than the threshold value,
- the release standby state and the time standby state are identified, the communication state of the electronic device 101 is determined to be in a good state You can lock it.
- the instructions stored in the memory 130 of the electronic device 101 allow the processor 120 to identify whether the communication state of the electronic device 101 is in a good state and to provide a TCP socket Identifies whether the state of the TCP socket is a connection establishment request state, identifies whether the number of transmission data packets of the application executed in the electronic device 101 is larger than the number of reception data packets, If the TCP socket for connection setting is detected, the connection setting request status is identified, and the number of transmission data packets is larger than the number of received data packets, the communication status of the electronic device 101 is set to the insufficient status Can be determined.
- the block state may include a state in which an application running on the electronic device 101 is blocked by a network firewall.
- the instructions stored in memory 130 of electronic device 101 cause processor 120 to detect a TCP socket for connection establishment and determine whether the state of the TCP socket is a new connection establishment request state Identifies whether or not the sum of the transmission data packet and the reception data packet of the application executed in the electronic device 101 is smaller than a threshold value, a TCP socket for connection establishment is detected, a new connection establishment request state is identified , And when the sum of the transmission data packet and the reception data packet is smaller than the threshold value, the communication state of the electronic device 101 can be determined as the sluggish state.
- the wireless communication module 192 may include an MST communication module 250 or an NFC communication module 260
- the power management module 188 may include a wireless charging module 270.
- the antenna module 297 is connected to the MST antenna 297-1 connected to the MST communication module 250, the NFC antenna 297-3 connected to the NFC communication module 260, and the wireless charging module 270 And a plurality of antennas including a wireless charging antenna 297-5.
- elements overlapping with those in Fig. 1 are omitted or briefly described.
- the MST communication module 250 receives a signal including payment information such as control information or card information from the processor 120 and generates a magnetic signal corresponding to the received signal through the MST antenna 297-1 And then transmit the generated magnetic signal to an external electronic device 102 (e.g., POS device).
- the MST communication module 250 includes a switching module (not shown) including one or more switches connected to the MST antenna 297-1 To change the direction of the voltage or current supplied to the MST antenna 297-1 according to the received signal. The change in the direction of the voltage or current makes it possible to change the direction of the magnetic signal (e.g., magnetic field) transmitted through the MST antenna 297-1 accordingly.
- a magnetic card corresponding to the received signal e.g., card information
- effects e.g, waveforms
- the payment related information and control signals received in the form of the magnetic signals at the electronic device 102 may be transmitted to the external server 108 (e.g., ). ≪ / RTI >
- the NFC communication module 260 acquires a signal containing the payment information such as control information or card information from the processor 120 and transmits the obtained signal to the external electronic device 102 via the NFC antenna 297-3. As shown in FIG. According to one embodiment, the NFC communication module 260 can receive such signals sent from an external electronic device 102 via an NFC antenna 297-3.
- the wireless charging module 270 wirelessly transmits power to an external electronic device 102 (e.g., a mobile phone or a wearable device) via a wireless charging antenna 297-5, or to an external electronic device 102 : Wireless charging device).
- the wireless charging module 270 may support one or more of various wireless charging schemes including, for example, magnetic resonance or magnetic induction.
- some of the MST antenna 297-1, the NFC antenna 297-3, or the wireless charging antenna 297-5 may share at least a portion of the radiating part with each other.
- the radiating portion of the MST antenna 297-1 can be used as the radiating portion of the NFC antenna 297-3 or the wireless charging antenna 297-5, and vice versa.
- the antenna module 297 may be coupled to the wireless communication module 192 (e.g., the MST communication module 250 or the NFC communication module 260) or the power management module 188 (e.g., the wireless charging module 270) (Not shown) configured to selectively connect (e.g., close) or disconnect (e.g., open) at least a portion of the antennas 297-1, 297-3, have.
- the NFC communication module 260 or the wireless charging module 270 may control the switching circuit so that the NFC antenna 297-3 and the wireless charging antenna 297-5 may be temporarily disconnected from the NFC antenna 297-3 and connected to the wireless charging antenna 297-5.
- At least one function of MST communication module 250, NFC communication module 260, or wireless charging module 270 may be controlled by an external processor (e.g., processor 120) .
- the designated functions (e.g., payment functions) of the MST communication module 250 or the NFC communication module 260 may be performed in a trusted execution environment (TEE).
- TEE trusted execution environment
- a trusted execution environment (TEE) may be implemented in the memory 130 for use in performing functions (e.g., financial transactions, or personal information related functions) that require a relatively high level of security, An execution environment in which at least some designated areas are allocated can be formed. In this case, access to the designated area may be limitedly allowed, for example, depending on the subject accessing thereto or the application executing in the trusted execution environment.
- a communication module e.g., communication module 190 of FIG. 1
- at least one processor e.g., processor 120 of FIG. 1 (E.g., memory 130 of FIG. 1) operatively coupled to the at least one processor, and the memory 130, when executed, causes the at least one processor 120 to transmit May identify the state of the transport protocol, determine the communication state of the electronic device 101 based on the state of the transmission protocol, and store instructions to change the network based on the communication state.
- the state of the transport protocol may include a state of a transmission control protocol (TCP) socket of an application executing in the electronic device.
- TCP transmission control protocol
- the communication state may be determined to be at least one of a good state, a poor state, a blocked state, and a sluggish state.
- the instructions cause the at least one processor to detect a TCP socket for connection establishment, identify whether the state of the TCP socket changes from a connection establishment request state to a connection establishment state, Identifying whether a sum of a transmission data packet and a reception data packet of an application executed in an electronic device is larger than a threshold value, identifying whether the state of the TCP socket is a connection release waiting state and a time waiting state, A TCP socket is detected, a state of the TCP socket is changed from a connection setting request state to a connection setting state, a sum of the transmission data packet and the reception data packet is larger than a threshold, and the connection release waiting state and the time waiting state are identified , The communication state is determined to be the good state Can.
- the instructions further cause the at least one processor to identify whether the communication state is in a good state, detect a TCP socket for connection establishment, determine whether the state of the TCP socket is a connection establishment request state And identifies whether or not the number of transmission data packets of an application executed in the electronic device is greater than the number of received data packets, and if the communication state is not a good state and a TCP socket for connection setting is detected , The connection establishment request status is identified, and if the number of transmission data packets is larger than the number of the reception data packets, the communication status can be determined as the shortage status.
- the instructions cause the at least one processor to detect a TCP socket performing retransmission and to determine whether the number of transmit and receive data packets of the application running on the electronic device is less than a threshold Identifies whether the link speed, SNR (signal) and received signal strength indication (RSSI) of the electronic device is greater than a threshold value, discovers a TCP socket performing the retransmission,
- the communication state may be determined as a block state if the number of packets and the number of the received data packets is smaller than a threshold value and the link speed, SNR and RSSI are larger than a threshold value.
- the block state may include a state in which an application running in the electronic device is blocked by a network firewall.
- the instructions cause the at least one processor to detect a TCP socket for connection establishment, to identify whether the state of the TCP socket is a new connection establishment request state, Identifying whether a sum of transmit data packets and receive data packets of the application is less than a threshold, detecting a TCP socket for the connection establishment, identifying the new connection establishment request status, It is possible to determine the communication state to be the slow state.
- the instructions cause the at least one processor to display the communication state on the electronic device and to display a message on the electronic device based on the communication state, can do.
- the instructions cause the at least one processor to acknowledge at least one of a state of the transport protocol and a count of the transport protocol, and determine at least one of a state of the acknowledged transport protocol and a count of the transport protocol And determine a backhaul failure based on the determined backhaul failure and perform control on the backhaul failure based on the determined backhaul failure.
- the instructions cause the at least one processor to verify that the total count of the transport protocol is greater than or equal to a threshold, to ensure that the connection establishment count of the transport protocol is maintained or reduced, And determine the backhaul failure based on the results.
- the instructions cause the at least one processor to verify that the number of transmit data packets and receive data packets of an application executing in the electronic device is less than or equal to a threshold value, To determine the backhaul failure.
- the instructions may cause the at least one processor to determine that a retransmission segment of the transport protocol is above a threshold, and to determine the backhaul failure based on the determined result.
- the instructions may cause the at least one processor to determine that an error has occurred in a received segment of the transport protocol and to determine the backhaul failure based on the determined results.
- the instructions may cause the at least one processor to display information about the backhaul failure and to display an indicator for modifying the network based on the backhaul failure.
- the instructions may cause the at least one processor to identify an external device to send information about the backhaul failure and to transmit information about the backhaul failure to the identified external device .
- Figure 3 shows a flow diagram 300 of an electronic device according to various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- the operating entity of the illustrated flowchart 300 can be understood as an electronic device 101 or a component of an electronic device 101 (e.g., processor 120).
- an electronic device may identify a network state at operation 301.
- the network conditions may include a communication state of the electronic device 101 or a backhaul state.
- the communication state of the electronic device 101 may include a poor state, a good state, a blocked state, and a sluggish state.
- Processor 120 may determine the communication state of electronic device 101 described above by identifying a transport protocol state (i.e., a TCP socket state).
- the backhaul state of the electronic device 101 is configured to communicate with the external communication device on the Internet (eg, Wi-Fi) when the electronic device 101 communicates via an external communication device : A backhaul connection state in which a cloud is connected) or a backhaul connection failure state in which the external communication apparatus and the Internet are not connected.
- the backhaul connection failure state may be referred to as a backhaul failure.
- a display e.g., display 160 of FIG. 1
- the processor 120 may be configured to display the identified backhaul failure status on the display device 160, or automatically display a change to another network, without displaying it, if the identified network condition corresponds to a backhaul failure Can be performed.
- a change to another network due to a backhaul failure may be provided as a user selectable option. For example, if an option is automatically activated by the user indicating that the processor 120 is capable of changing to another network if it identifies a backhaul failure, the processor 120 may send the identified backhaul failure status to the display 160 ), Or can automatically perform a change to another network without displaying it. If the option is disabled, the processor 120 may not automatically perform a change to another network.
- FIGS. 4 to 15B a process and an example of determining a communication state of an electronic device by identifying a transmission protocol state and performing a network change based on the determined communication state are described in FIGS. 4 to 15B, described below.
- FIG. 4 shows a flow diagram of an electronic device according to various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 4 is part of operation 301 of FIG. 3
- operation 405 of FIG. 4 is part of operation 303 of FIG. 3
- the operating entity of the illustrated flowchart 400 is an electronic device 101 or an electronic device (E. G., Processor 120) of processor 101. < / RTI >
- the processor 120 may identify a transport protocol state.
- the processor 120 may identify the TCP socket state.
- the TCP socket state For example, in the case of connection oriented communication directed by TCP, preparations for communication between a client and a server can be performed before data communication is started. In this preliminary preparation, the TCP socket state can change dynamically.
- the TCP socket state may include a connection establishment request (SYN_SENT), a connection establishment (ESTABLISHED), and a connection release (FIN_WAIT).
- the processor 120 may identify that the TCP socket state is changed to the above-described states.
- the general operation of the TCP socket state change can be represented as shown in FIG.
- the processor 120 may determine the communication state based on the identified transport protocol state. For example, the processor 120 may determine the communication state of the electronic device 101 by identifying the TCP socket state. In various embodiments, the communication state may include a poor state, a good state, a blocked state, and a sluggish state. These communication states can be determined by considering not only the state of the TCP socket, but also the received signal strength, link speed, and the like. In this way, the electronic device 101 can detect various communication states that are difficult to distinguish only by physical channel characteristics. For example, when the communication state is in the block state, the physical channel of the network currently in use is excellent, but the communication may not be performed as shown in FIG.
- the processor 120 may change the network based on the communication state. For example, the processor 120 may perform a network change from the Wi-Fi network to the cellular network if the determined communication state is a block state. In various embodiments, the processor 120 can control the display device 160 of the electronic device 101 to display the determined communication state and whether or not the network is changed, before changing the network. In various embodiments, the processor 120 may perform network changes based on user input or on a specific threshold.
- the electronic device 101 can communicate with external electronic devices (e.g., server 108, electronic device 104) in a modified network environment by measuring the communication state and performing the network change, as described above have.
- the processor 120 may identify the state of the transport protocol, determine the communication state of the electronic device 101 based on the state of the identified transport protocol, and perform a network change based on the determined communication state .
- the state of the transport protocol may include the state of the TCP socket of the application running in the electronic device 101.
- the communication state of the electronic device 101 may be determined to be at least one of a good state, a poor state, a blocked state, and a sluggish state.
- FIG. 5 illustrates a sequence diagram for transmitting data using the TCP protocol according to various embodiments of the present invention.
- the electronic device may identify a TCP socket condition to detect a communication condition.
- a TCP connection may be formed through a sequence of a plurality of states.
- the TCP socket state can be changed from the current state to the next state in response to a specific event.
- the server 503 e.g., the server 108 may wait for a TCP connection establishment request from the client 501 (e.g., the electronic device 101) in a LISTEN state 505.
- the client 501 sends a signal (e.g., a syn packet) requesting a connection setting to the server 503 in a state of a connection setting request (SYN_SENT) 407 and sends a connection setting request to the server 503 ).
- a signal e.g., a syn packet
- the client 501 may wait for an acknowledgment (e.g., syn + ack packet) of the server 503 to the connection establishment request.
- the server 503 can maintain the LISTEN state 505 until receiving a signal (e.g., a syn packet) requesting connection establishment from the client 501.
- the server 503 can change the state to the connection setting request reception (SYN_RECEIVED) 509 state.
- the server 503 transmits a signal including an acknowledgment (e.g., syn + ack packet) to the connection setting request to the client 501 in the state of receiving a connection setting request (SYN_RECEIVED) 509, You can wait for an acknowledgment.
- the client 501 can change an acknowledgment (e.g., syn + ack packet) to a connection establishment (ESTABLISHED) 511 state for the connection setting request from the server 503.
- the client 501 may send an acknowledgment (e. G., Ack packet) to the server 503 about the connection establishment in the ESTABLISHED state 511 and the server 503 may send an acknowledgment
- the connection setting state 511 can be obtained.
- the client 501 can open the connection and send and receive data to the server 503.
- the connection establishment state may refer to a normal state in which data may be sent to the client 501 (e.g., electronic device 101).
- the client 501 may transmit a connection release signal (e.g., a fin packet) to the server 503 in the first connection release state (FIN_WAIT_1) 513.
- the client 501 may wait for an acknowledgment of the connection cancellation signal or may wait for an acknowledgment for the connection cancellation request previously transmitted from the server 503.
- connection release wait state (CLOSE_WAIT) 515.
- the server 503 can transmit an acknowledgment (e.g., ack packet) to the client 501 about the connection release signal received from the client 501.
- the client 501 may include a local user.
- a state in which the client 501 waits for an acknowledgment of the connection release signal from the server 503 may be defined as a CLOSING state.
- the client 501 may change to the second connection release state (FIN_WAIT_2) 517 when receiving an acknowledgment for the connection release signal from the server 503.
- the server 503 may send a signal (e.g., a fin packet) indicating the release of the connection of the server 503 to the client 501 and wait for an acknowledgment thereof in the final acknowledgment (LAST_ACK) 519 state .
- the client 501 can be changed to the TIME_WAIT state 521 when receiving a signal indicating a connection release (e.g., a fin packet).
- the client 501 may send an acknowledgment signal (e.g., ack packet) to the server 503 indicating that the server 503 is disconnected, in the state of time wait (TIME_WAIT) 521.
- the client 501 may wait a sufficient time to confirm that the server 503 has received an acknowledgment for the request to disconnect the connection.
- the client 501 may maintain a time wait state for a maximum segment lifetime (e.g., about 1 minute to 4 minutes).
- the server 503 can be changed to the connection end (CLOSED) 523 state when receiving an acknowledgment for the connection release from the client 501.
- CLOSED connection end
- the electronic device may classify the state of the TCP socket described above into a temporary state and a permanent state.
- the electronic device 101 may view the state of a TCP socket that is waiting for an acknowledgment from a remote device (e.g., server 108) as a transient state.
- a connection establishment request 507 state, a first connection release 513 state, a closing state, and a final acknowledgment 519 state may be viewed as a temporary state.
- the electronic device 101 may view the transient state of the TCP socket states in a permanent state. The electronic device 101 can identify the various TCP socket states described above and can determine the communication state based thereon.
- the interface of the electronic device 101 may include a display device 160.
- the message of the SNS application may not be transmitted by the network firewall, even though the Wi-Fi signal quality is good and the status of the backhaul network is good.
- the electronic device 101 may display various message transfer indicators on the display device 160 indicating the message transfer status of the messenger application. For example, in FIG. 6, the first message transmission indicator 604 indicates a normally transmitted message and the second message transmission indicator 606 is not normally transmitted, indicating a pending message.
- the Wi-Fi status indicator 602 indicates that the quality of the Wi-Fi signal is good, so that it may be difficult for the user to grasp the cause of the undelivered message.
- the electronic device 101 may use the TCP socket state to detect such block state.
- the processor 120 may determine that the number of received packets increases as the number of connection setting sockets increases. In one embodiment, the processor 120 may determine the communication state of the electronic device 101 to be in a good state when the TCP socket state is changed. In one embodiment, the processor 120 may determine that the communication state of the electronic device 101 is insufficient if the TCP socket state stuck in a certain state.
- a red flag technique may be used to indicate a particular problem condition that has occurred in the network.
- the electronic device may accumulate a red flag whenever a particular problem condition is detected.
- the electronic device can identify the transport protocol status by analyzing cumulative red flags (CRFs). Red flag accumulation can be defined as shown in FIGS. 7A and 7B.
- FIG. 7A shows a flow diagram illustrating a red flag accumulation in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 7A is a part of operation 401 of FIG. 4, and the operating entity of the illustrated flowchart 710 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- the processor 120 may use an accumulation-red flag scheme to detect problems in the signal in the network.
- the processor 120 may view the red flag as an identifier indicating a problem and accumulate it by recording a red flag each time a problem is encountered. This approach can be expressed in a cumulative red flag fashion.
- the processor 120 may determine whether a new retransmission is detected. For example, the processor 120 can check if a TCP socket undergoing retransmission is detected. The processor 120 may accumulate a red flag when a new retransmission is detected.
- the processor 120 may determine whether a new final acknowledgment is detected. For example, the processor 120 may determine whether a TCP socket state is newly detected in the final acknowledgment state. Processor 120 may accumulate a red flag if a new final acknowledgment is detected.
- the processor 120 may determine whether a new disconnect signal is detected. For example, the processor 120 can check whether or not the TCP socket state is newly detected as a disconnected state. The processor 120 may accumulate a red flag when a new disconnect signal is detected.
- the processor 120 may verify that an acknowledgment for the connection establishment request has not been detected. For example, the processor 120 can determine whether there is no acknowledgment of the server when the TCP socket state is in the connection establishment request state. Processor 120 may accumulate a red flag if an acknowledgment for a connection establishment request is not detected.
- the processor 120 may determine whether a new connection establishment request is detected and a new connection establishment socket is not detected. For example, the processor 120 can check whether a TCP socket state is newly detected as a connection establishment request, and a connection establishment socket is not newly detected. The processor 120 may accumulate a red flag when a new connection establishment request is detected and a new connection setting socket is not detected.
- the processor 120 may accumulate a red flag. According to various embodiments, the processor 120 may determine that a new retransmission is detected, a new final acknowledgment is detected, a new disconnect signal is detected, an acknowledgment for a connection setup request is not detected, Or when a new connection setting request is detected and a new connection setting socket is not detected, at least one condition is satisfied, the red flag can be accumulated. In various embodiments, the results of operations 701 through 709 may not affect each other. For example, at operation 701, if processor 120 detects a new retransmission, it may accumulate a red flag at operation 711, regardless of whether a new final acknowledgment has been detected or a new disconnect signal has been detected. In various embodiments, the processor 120 may perform operations 701 through 709 sequentially, or may perform each operation separately, regardless of the order.
- FIG. 7B shows a flow diagram illustrating a red flag accumulation in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 7A is a part of operation 401 of FIG. 4, and the operating entity of the illustrated flowchart 710 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- the processor 120 may determine if the transmitted packet is greater than the received packet, a new connection configured socket is detected, and the sum of the received and transmitted packets is less than the threshold. If the above condition is met, at operation 723, the processor 120 may accumulate the Red flag.
- the processor 120 may determine that a new de-coupled signal is detected, a new retransmission is detected, and the transmitted packet is below a threshold.
- the threshold may be 10 packets. If a new de-connection signal is detected, a new retransmission is detected, and the transmitted packet is below the threshold, at operation 723, the processor 120 may accumulate the Red flag.
- the processor 120 may determine if the RSSI is below a threshold. For example, the processor 120 may determine if the RSSI is below a certain threshold. Processor 120 may accumulate a red flag at operation 723 if the RSSI is below a certain threshold.
- the processor 120 may determine if the link speed is below a threshold. For example, the processor 120 may determine if the network link speed of the electronic device 101 is below a certain threshold. The processor 120 may accumulate the Red flag at operation 723 if the network link speed is below the threshold.
- the processor 120 may determine if the loss exceeds a threshold. For example, the processor 120 may determine whether the loss in data transmission and reception exceeds a certain threshold. The processor 120 may accumulate the red flag at operation 723 if the loss exceeds the threshold.
- the processor 120 may accumulate a red flag.
- processor 120 may detect a new de-coupling signal when a transmission packet is greater than a received packet, a new connection setting socket is detected, and the sum of received and transmitted packets is less than a threshold, And when the transmission packet is less than the threshold, when the RSSI is less than the threshold, when the link speed is less than the threshold, or when the loss exceeds the threshold, the red flag is accumulated .
- the results of operations 713 through 721 may not affect each other.
- the processor 120 may perform operations 713 through 721 sequentially, or may perform each operation separately, regardless of the order.
- the processor 120 may notify the user that the network state is in an insufficient state, and may change the network based thereon if the red flag is accumulated and exceeds a specified threshold.
- an electronic device can determine the communication state based on the state of a TCP socket.
- the communication state can be determined to be any one of a good state, a short state, a block state, and a sluggish state.
- Figure 8 shows a flow chart for determining a good state in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 8 is a part of operation 403 of FIG. 4, the operating entity of the illustrated flowchart 800 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- the processor 120 may detect a socket for a new connection establishment.
- the processor 120 may newly detect sockets for client and server connection establishment.
- the processor 120 may identify a change in the following TCP socket state. For example, for various reasons, the TCP socket state may be stuck in the aforementioned transient state. Processor 120 may track the state of the TCP socket to escape from this trapped state.
- the processor 120 can determine whether the connection establishment request state has been changed to the connection establishment state. For example, after the processor 120 transmits and receives an acknowledgment to the server, the processor 120 can check whether the TCP socket state of the client has been changed from the connection establishment request state to the connection establishment state. The processor 120 may determine the communication state of the electronic device 101 to be in a good state at operation 709 if the TCP socket state is changed to the connection establishment state.
- the processor 120 may determine if the sum of transmitted and received packets exceeds a threshold. For example, when the TCP socket state is not changed to the connection establishment state, the processor 120 can determine whether the sum of the transmission packet and the reception packet exceeds the threshold. For example, the processor 120 may compare the sum of a transmission data packet that the electronic device 101 transmits to the external device and a reception data packet that the electronic device 101 receives from the external device with a specific threshold value. The processor 120 may determine the communication state of the electronic device 101 to be in a good state if the sum of the transmitted packet and the received packet exceeds a certain threshold.
- the processor 120 may determine whether a new connection release wait state and a new time wait state are detected. For example, when the sum of the transmission packet and the reception packet is smaller than a specific threshold, the processor 120 can check whether a new connection release waiting state and a new time waiting state are detected. For example, the processor 120 can detect a connection release waiting state and a time waiting state when a network is normally connected and a packet can be normally received. The processor 120 may determine the communication state of the electronic device 101 to be in a good state when a new connection release waiting state and a time waiting state are detected. If a new connection release waiting state and a time waiting state are not detected, the processor 120 may again perform an operation of detecting a new connection setting socket.
- the processor 120 may determine the communication state to be in a good state. For example, the processor 120 may determine the communication state of the electronic device 101 to be in a good state when the conditions in the operations 701 to 707 are satisfied, respectively. In various embodiments, the good state may mean that the user does not experience any problems in performing the communication. In various embodiments, processor 120 may determine which TCP socket state is good among a plurality of TCP socket states and update a list of TCP socket states that are in good state to prevent unnecessary retransmission (updated). For example, the processor 120 may update the socket list with the name "goodAreaSYN" if the connection establishment request status is in a good state.
- Processor 120 may update the list of sockets named "goodAreaRetrans” if retransmission occurs in the good state.
- Processor 120 may update the list of sockets named "goodAreaFin” if the first disconnected state is in a good state.
- Processor 120 may update the socket list with the name "goodAreaLastAck” if the final acknowledgment is in a good state.
- Processor 120 may update the list of sockets named "goodAreaClosing" if the closed state is in a good state.
- the processor 120 can determine the communication state of the electronic device 101 as a good state.
- the processor 120 detects a TCP socket for connection establishment, identifies whether the state of the detected TCP socket changes from a connection establishment request state to a connection establishment state, Identifies whether the sum of the transmission data packet and the reception data packet of the executed application is larger than a threshold value, identifies whether the TCP socket state is a connection release waiting state or a time waiting state, detects a TCP socket for connection establishment , When the state of the TCP socket is changed from the connection setting request state to the connection setting state and the sum of the transmission data packet and the reception data packet is larger than the threshold and the connection release waiting state and the time waiting state are identified, Can be determined as a good state.
- Figure 9 shows a flowchart for determining a poor state in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 9 is a part of operation 403 of FIG. 4, and the operating entity of the illustrated flowchart 900 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- the processor 120 of the electronic device 101 can determine whether the communication state is in a good state. For example, the processor 120 can determine whether the communication state of the electronic device 101 is in the good state described above with reference to FIG. 8, before determining whether the communication state is in a state of insufficient.
- the good state may include a case where the sum of the transmission packet and the reception packet is larger than the threshold value.
- the processor 120 may perform the following operations 903 through 909 if the communication state is not in a good state.
- the processor 120 may determine whether a socket for new connection establishment is detected.
- the processor 120 may newly detect a socket for establishing a connection between a client (e.g., electronic device 101) and a server (e.g., server 108).
- the processor 120 may determine the communication state of the electronic device 101 to be in a deficient state when a socket for establishing a connection is newly detected.
- the processor 120 may determine whether a new connection establishment request status is detected. For example, if a socket for a new connection establishment is not detected, the processor 120 can check whether a new connection establishment request status is detected. For example, the processor 120 may determine that the communication state of the electronic device 101 is in a deficient state when a socket for establishing a connection is not newly detected, and a new connection establishment request state is detected.
- the processor 120 may determine whether the difference between the number of transmitted packets and the number of received packets exceeds a threshold value. For example, the processor 120 may determine if the difference between the number of transmitted data packets and the number of received data packets exceeds a certain threshold value, if no new connection establishment request status is detected. For example, if the processor 120 determines that the communication state is not a good state at operation 901, no socket for new connection establishment is detected at operation 903, no new connection establishment request state is detected at operation 905, When the difference between the number of received data packets and the number of received data packets exceeds the threshold value, the communication state of the electronic device 101 can be determined to be in a deficient state.
- the processor 120 may again perform the operation of determining whether the communication state is good.
- Operations 903 to 907 are independent operations, and the processor 120 can perform each operation sequentially, or in any order.
- the processor 120 may determine the communication state to be in a deficient state. For example, when the processor 120 satisfies the conditions in the operations 903 through 907, respectively, the processor 120 can determine the communication status of the electronic device 101 to be in a deficient state through the above-described operations.
- the processor 120 identifies whether the communication state of the electronic device 101 is in a good state, detects a TCP socket for connection establishment, and determines whether the state of the TCP socket is a connection establishment request state And identifies whether or not the number of transmission data packets of the application executed in the electronic device 101 is larger than the number of received data packets. If the communication state of the electronic device 101 is not in the good state, If the socket is detected, the connection establishment request status is identified, and the number of transmission data packets is greater than the number of reception data packets, the communication status of the electronic device 101 can be determined to be in a deficient state.
- Figure 10 shows a flow diagram for determining a blocked state in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 10 is a part of operation 403 of FIG. 4, wherein the operating entity of the illustrated flowchart 1000 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- the processor 120 may detect a socket that performs retransmission. For example, the processor 120 may detect a socket that performs retransmission. In various embodiments, as the number of detected sockets increases, the number of send queues may increase.
- the processor 120 may determine whether the number of transmitted and received packets is less than a threshold. For example, the processor 120 may determine whether the number of transmitted packets and received packets is less than a threshold value during the time that TCP is timeout. The timeout of the TCP allows the electronic device 101 to send data to external electronic devices (e.g., server 108, electronic device 104), then set a timer, And may not be able to receive a response. In one embodiment, the processor 120 may determine whether the number of data packets transmitted and received by the application is less than a threshold, even if the Wi-Fi network environment is good. The processor 120 may perform an operation of detecting a socket that performs retransmission again when the number of transmission packets and received packets is not less than the threshold value.
- the processor 120 may determine whether the link speed, signal to noise ratio (SNR), or RSSI, respectively, exceeds a specified threshold. For example, if the number of transmitted and received packets is less than the threshold, the processor 120 may compare the link speed, SNR, or RSSI to a specified threshold, respectively, to determine if the application exceeds the threshold, even if the application is blocked by the network firewall. have. The processor 120 may perform an operation of detecting a socket that performs retransmission again if the link speed, SNR, or RSSI does not exceed the specified threshold, respectively.
- SNR signal to noise ratio
- the processor 120 may determine the communication state as a block state. For example, the processor 120 may determine the communication state to a block state if the link speed, SNR, or RSSI exceeds a specified threshold and the number of transmitted and received packets is less than a threshold. Operations 1001 to 1005 are independent operations, and the processor 120 can perform each operation sequentially, or in any order. In various embodiments, the block status may be that the relevant application is blocked by the firewall. In various embodiments, the processor 120 may maintain a transmit (e.g., outgoing, send or transmit) data queue in terms of kernel memory usage by the socket.
- a transmit e.g., outgoing, send or transmit
- the wireless connection between the electronic device 101 and a Wi-Fi access point may be considered to be good.
- the processor 120 may determine that a particular application is blocked by a firewall if the application has fewer transmit and receive data packets. Through the operations described above, the processor 120 can determine the communication state of the electronic device 101 as a block state.
- the processor 120 detects a TCP socket that performs retransmission, identifies whether the number of transmit data packets and receive data packets of the application running on the electronic device 101 is less than a threshold, It is possible to identify whether the link speed, SNR (signal) and received signal strength indication (RSSI) of the electronic device 101 are greater than a threshold value, to identify a TCP socket for retransmission, If the number of packets is smaller than the threshold, and the link speed, SNR and RSSI are larger than the threshold value, the communication state of the electronic device 101 can be determined as a block state.
- the block state may include a state in which an application running in the electronic device 101 is blocked by a network firewall.
- Figure 11 shows a flow chart for determining a sluggish state in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- Fig. 11 is part of operation 403 of Fig. 4, and the operating entity of the illustrated flowchart 1100 can be understood as an electronic device 101 or a component of electronic device 101 (e.g., processor 120).
- the processor 120 may detect a socket for a new connection establishment.
- the processor 120 may newly detect a socket for establishing a connection between a client (e.g., electronic device 101) and a server (e.g., server 108).
- the processor 120 may determine whether a new connection establishment request status is detected. For example, when the processor 120 newly detects a socket for establishing a connection, it can check whether or not a new connection establishment request status is detected. If a new connection establishment request status is not detected, the processor 120 may again perform the operation of detecting a socket for new connection establishment.
- processor 120 may determine if the sum of transmitted and received packets is less than a threshold. For example, the processor 120 may determine if the sum of the transmit data packet and the receive data packet is less than a threshold value when a new connection establishment request status is detected. In one embodiment, processor 120 may determine if the sum of transmit and receive packets is less than a threshold during the time that TCP is timed out. If the sum of the transmitted and received packets is not less than a certain threshold, the processor 120 may again detect a socket for new connection establishment. Operations 1101 to 1105 are independent operations, and the processor 120 can perform each operation sequentially, or in any order.
- the processor 120 may determine the communication state to be in a sluggish state. For example, the processor 120 may determine that the communication state of the electronic device 101 is in a sluggish state when a new connection establishment request state is detected and the sum of the transmission packet and the reception packet is less than the threshold. In various embodiments, a stuck state may mean that a particular application is slowing down of data due to WiFi access point policies. Through the operations described above, the processor 120 may determine the communication state of the electronic device to be in a sluggish state.
- the processor 120 detects a TCP socket for connection establishment, identifies whether the state of the TCP socket is a new connection establishment request state, and determines whether the transmission data packet of the application running on the electronic device 101 And when the sum of the transmission data packet and the reception data packet is smaller than the threshold value, the connection establishment request status is identified, The communication state of the electronic device 101 can be determined as a sluggish state.
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- the operating entity of the illustrated flowchart 1200 may be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- the processor 120 may identify the transport protocol state. For example, a pattern of sockets may be identified based on contexts according to radio link characteristics. In various embodiments, the pattern of sockets may be a pattern of TCP socket states.
- the TCP socket state may include connection setup request transmission (SYN_SENT), connection setup (ESTABLISHED), and connection release (FIN_WAIT). The processor 120 may identify that the TCP socket state is changed to the above-described states.
- the processor 120 may detect a wireless connection state.
- the wireless connection state may include at least one of RSSI, link speed, loss, or SNR.
- the processor 120 can detect the communication state using the wireless connection state detected together with the TCP socket state identified above.
- the communication state may include a good state, a short state, a block state, and a sluggish state.
- the processor 120 may determine whether the communication state is in an insufficient state. For example, the processor 120 may indicate a bad Wi-Fi signal quality.
- the TCP socket state pattern may be such that if the new connection release state increases and the number of received packets is small, the new connection establishment request state increases and the number of received packets is small, The state may increase and the number of received packets may be small, the new final acknowledgment state may increase, the number of received packets may be small, or the number of received packets may be small and the number of retransmissions may increase. If the communication state is found to be in an insufficient state, the processor 120 may perform a network change at operation 1211. [
- the processor 120 may determine whether the communication state is block state. For example, the processor 120 can check whether the communication state is in a block state or not, if the communication state is not in an insufficient state.
- the block state may indicate that a particular application is blocked by a network firewall, although the quality of the Wi-Fi signal is good.
- the electronic device 101 may have good RSSI and link speed.
- an application may have TCP sockets with a small number of connection establishment states. These sockets may undergo retransmissions, and the transmitted packets may be trapped in a transmission queue.
- many connection establishment request socket states may not change to the connection establishment state. If the communication state is a block state, at operation 1211, the processor 120 may perform a network change.
- the processor 120 may determine whether the communication state is in a sluggish state. For example, the processor 120 can check whether the communication state is in the non-block state or not, if the communication state is not the block state.
- the electronic device 101 may have good RSSI and link speeds in the wireless network if it is in a low state. In the low state, the socket in the connection setting state increases, but the number of data packets received by the application may be small. In this case, the sockets of the application may not perform retransmission. If not, the processor 120 may again identify the transfer protocol state and, although not shown in the figure, the processor 120 may determine the communication state to be in a good state.
- the new connection establishment socket in the good state, may increase and the number of received packets may be less. If it is in the good state, the new connection release waiting state is increased and the new connection release state may not be displayed. In various embodiments, in the good state, the TCP socket state may be changed from a connection establishment request state to a connection establishment state.
- the processor 120 may perform a network change.
- the processor 120 may perform a network change if the communication state is in a poor state.
- the processor 120 may control the communication module 180 to change the network from the Wi-Fi network to the cellular network.
- the network change is not limited to this, and it is possible to change to various kinds of networks in the current network.
- the processor 120 can identify the TCP socket state, determine the communication state, and perform the network change based on the determined communication state.
- the above-described operations 1205 to 1209 are independent operations, and the processor 120 can perform each operation sequentially, or in any order.
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- the operating entity of the illustrated flowchart 1300 may be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- the processor 120 may monitor the transport protocol status.
- the transport protocol may comprise TCP.
- Processor 120 may analyze the TCP socket state. For example, the processor 120 may identify patterns in which the TCP socket state is changing and may also analyze physical channel characteristics such as the number of transmitted and received packets, RSSI, link rate, or loss, The communication state can be determined.
- the communication state may include a good state, a low state, a block state, and a sluggish state.
- the processor 120 may monitor the TCP socket state described above to determine the communication state of the electronic device 101.
- the processor 120 may indicate the communication status.
- the processor 120 may display on the display device 160 of the electronic device 101 the previously determined communication status.
- the processor 120 may indicate to the display device 160 that there is a problem with the network connection of the application currently operating on the electronic device 101.
- the processor 120 of the electronic device 101 displays a screen including a dialog window 1401-1 in which a user exchanges messages with another user via an application, to the display device 160 Can be controlled.
- the processor 120 transmits and receives messages to and from the external electronic device 102 via an SNS application such as a KakaoTalk, Watts app, Facebook, or Messenger
- the processor 120 transmits the transmitted and received messages to the electronic device 101.
- the interface of the electronic device 101 includes a message dialog window 1403-1 and a pop-up window 1403-3 indicating that the application is experiencing a failure in accessing the Internet
- the processor 120 may control the display device 160 to display a screen including the interface.
- the processor 120 controls to display on the display device 160 of the electronic device 101 that an application is having trouble transmitting and receiving data packets when a particular application is blocked by a network firewall . For example, referring to FIG.
- the processor 120 of the electronic device 101 may generate a pop-up window 1405- < Desc / Clms Page number 8 > indicating whether to change the network from the current network to the cellular network, 1) and an indicator 1405-3 that allows the user to select whether or not to change the network by referring to the contents of the pop-up window on the display device 160.
- the electronic device 101 may display on the display device 160 of the electronic device 101 whether to change the network to the LTE, LTE-A or 5G network in the Wi-Fi network. Thereby, by changing the network, the processor 120 can smoothly operate the application.
- the interface of electronic device 101 may include a pop-up window 1407 indicating that an application is experiencing an Internet access failure on an SSID (service set identifier), and processor 120 may include an interface It is possible to control the display device 160 to display the screen.
- the SSID may represent the wireless network name, and Wi-Fi devices such as a notebook or a smart phone may attempt wireless connection through SSID classification.
- the pop-up window 1409 indicating that the application is experiencing a failure to access the Internet may at least partially overlap the interface of the existing electronic device 101, and the processor 120 may display a screen including the nested interface So that it can be displayed on the display device 160.
- the electronic device 101 may display a pop-up window indicating that the application is having a failure in accessing the Internet, as described above, as well as indicating the communication status and network change determined through monitoring.
- the processor 120 may control to display the communication status on the display device 160 when the current communication status is in the low status, the block status, and the low status, and may include an indication that the user can select the network change It is possible to control the display device 160 to display a pop-up window.
- the processor 120 may control to display the communication status of the electronic device 101 on the display device 160 and may provide information about the network change based on the communication status of the electronic device 101 It is possible to control the display device 101 to display a message including the message.
- the instructions stored in the memory 130 of the electronic device 101 cause the processor 120 to display the communication status of the electronic device 101 on the display device 160, And display a message on the display device 160 including information on the network change.
- the processor 120 may use the socket ID and IP address to identify the TCP socket state.
- a socket ID may include an INODE number
- an IP address may include a source and destination address, a universally unique identifier (UUID).
- UUID universally unique identifier
- the processor 120 may maintain a list of good states to avoid false alarms on communication conditions. This allows the processor 120 to identify that some of the sockets are stuck in a particular state.
- the processor 120 can identify a TCP socket state by generating a TCP socket state list. For example, as shown in Table 1, the processor 120 may generate a TCP socket state list using a socket ID or an IP address.
- the processor 120 can generate a connection setting state list, a connection setting request state list, a retransmission list, and a connection release waiting state list by using a socket ID, A status list, a final acknowledgment status list, a closing status list, and a time waiting status list.
- the processor 120 may generate a connection establishment status list using a socket ID.
- Processor 120 may check the socket for new connection establishment in the previous and current states.
- the processor 120 may generate a connection establishment request status list using a socket ID. For example, when the previous and current communication states are good, the processor 120 can check whether the TCP socket state is a new connection establishment request state or whether there is an acknowledgment to the connection establishment request.
- the processor 120 may generate a retransmission list using a socket ID. For example, the processor 120 can verify that the application is performing a new retransmission if the current communication state is in a good state. In various embodiments, the processor 120 may generate a connection release wait state list using a socket ID. For example, if the current communication state is in a good state, the processor 120 can check whether the TCP socket state is a new connection release standby state.
- the processor 120 may use the IP address to identify the TCP socket state. For example, the processor 120 may generate a new disconnected state list using the IP address. For example, when the current communication state is in a good state, the processor 120 can check whether the TCP socket state is a new connection release state using the IP address. In various embodiments, the processor 120 may use the IP address to generate a final acknowledgment status list. For example, the processor 120 may check if the TCP socket state remains in the final acknowledgment state if the current communication state is in a good state. In various embodiments, the processor 120 may use the IP address to generate a closing state list. For example, the processor 120 can check if the TCP socket state remains in the closed state if the current communication state is in a good state.
- the processor 120 may use the IP address to generate a time waiting status list. For example, the processor 120 may check whether the TCP socket state is a new time-awaiting state in the previous and current state. Through the operations described above, the processor 120 can update the list of TCP socket states when in the good state, using the socket ID or the IP address.
- the processor 120 can identify the state of the transfer protocol of the electronic device 101 using the ID and IP address of the TCP socket. For example, the processor 120 can determine the communication state of the electronic device 101 by identifying the state of the TCP socket corresponding to each MAC address and IP address. For example, as shown in Table 2, the processor 120 can detect the TCP socket state of the electronic device 101 while performing communication via a specific application. For example, the processor 120 can determine the communication state of the electronic device 101 by identifying the state of the TCP socket corresponding to each MAC address and IP address. For example, as shown in Table 2, the processor 120 can detect the TCP socket state of the electronic device 101 while performing communication via a specific application.
- the processor 120 can detect the TCP socket state according to each MAC address and IP address.
- the processor 120 may determine the communication state of the electronic device 101 by identifying the detected TCP socket state.
- the processor 120 may detect the TCP socket state of the electronic device 101 when data transmission / reception through the AAA to EEE application is completed (e.g., when video streaming is completed).
- the processor 120 determines that the communication state of the electronic device 101 is in a good state by identifying that the TCP socket state of the electronic device 101 is a persistent TCP socket state such as a sensing state and a number of connection establishment states .
- the processor 120 may detect the TCP socket state of the electronic device 101 while communicating through a particular application, as shown in Table 3.
- the processor 120 can detect the TCP socket state according to each MAC address and IP address.
- the processor 120 may determine the communication state of the electronic device 101 by identifying the detected TCP socket state.
- the processor 120 can detect the TCP socket state of the electronic device 101 when data transmission / reception through the AAA to GGG application is completed (e.g., when video streaming is completed).
- the processor 120 can determine the communication state of the electronic device 101 to be in a good state by identifying that the TCP socket state of the electronic device 101 has been changed from the plurality of connection setting states to the connection release waiting states.
- the processor 120 may detect the TCP socket state of the electronic device 101 during communication through a particular application, as shown in Table 4.
- the processor 120 can detect the TCP socket state according to each MAC address and IP address.
- the processor 120 may determine the communication state of the electronic device 101 by identifying the detected TCP socket state.
- the processor 120 may detect the TCP socket state of the electronic device 101 when data transmission / reception through the AAA to EEE application is completed (e.g., when message transmission is completed).
- the processor 120 can determine that the communication state of the electronic device 101 is in the block state by identifying that the TCP socket state of the electronic device 101 is only the connection setting state and the first connection release state.
- the processor 120 may detect the TCP socket state of the electronic device 101 while communicating through a particular application, as shown in Table 5.
- the processor 120 can detect the TCP socket state according to each MAC address and IP address.
- the processor 120 may determine the communication state of the electronic device 101 by identifying the detected TCP socket state.
- the processor 120 may detect the TCP socket state of the electronic device 101 when data transmission / reception through the AAA to EEE application is completed. In this case, the processor 120 determines that the communication state of the electronic device 101 is in a short state by identifying that the TCP socket state of the electronic device 101 is a connection setting state, a connection release waiting state, and a first connection release state .
- the processor 120 may detect information including a retransmission counter of the electronic device 101 while communicating through a particular application, as shown in Table 6.
- the processor 120 may detect a local IP address, a remote IP address, a socket status, a transmission queue, a reception queue, a timer, and a retransmission counter for each line number.
- Processor 120 may determine the communication state of the electronic device by identifying the detected transmission queue value and the retransmission counter value. For example, the processor 120 may determine that the first transmission queue value is 0, the second transmission queue value is a non-zero value, and that the line number 2 corresponds to the transport layer.
- Processor 120 may check the retransmission counter value. For example, the processor 120 may identify that the first retransmission counter value is 0, while the second retransmission counter value is a non-zero value. The processor 120 can determine that the communication state of the electronic device 101 is in the block state by identifying that the retransmission counter value is a non-zero value.
- 15A illustrates an example of an interface of an electronic device displayed in an electronic device when the communication status is in a block status according to various embodiments of the present invention.
- the electronic device in the following description may include all or a portion (e.g., processor 120 and display device 160) of the electronic device 101 of FIG.
- the processor 120 may detect that the chat application is blocked by the network firewall by identifying the TCP socket state of the chat application.
- the processor 120 may use the socket ID and IP address to identify the TCP socket state.
- the processor 120 can control the display device 160 to display a first indicator 1501 and a second indicator 1503 indicating that the message transmission is not properly performed when the application is blocked by the network firewall have.
- the processor 120 may identify when the number of connection setting sockets 1505 of the chat application is less than a certain threshold, and when the retransmission count 1507 is not zero. Through this, the processor 120 can view the chat application as blocked by the network firewall and determine the communication state of the electronic device 101 as a block state.
- Figure 15B illustrates an example of an interface of an electronic device displayed on an electronic device when the communication state is in a good state according to various embodiments of the present invention.
- the electronic device in the following description may include all or a portion (e.g., processor 120 and display device 160) of the electronic device 101 of FIG.
- the processor 120 can detect that the chat application is not blocked or delayed by the network firewall by identifying the TCP socket state of the chat application.
- the processor 120 may use the socket ID and IP address to identify the TCP socket state.
- the processor 120 may control the display device 160 to display an indicator 1509 indicating that the message transmission is successful if the application is not blocked or delayed by the network firewall.
- the processor 120 may identify when the number of connection setting sockets 1511 of the chat application is greater than a threshold, and when the number of retransmission counts 1513 is zero. Through this, the processor 120 can determine that the chat application is not blocked by the network firewall and that the message transmission is smooth. That is, the processor 120 can determine the communication state of the electronic device 101 as a good state.
- the electronic device and its method of operation identify a transmission protocol state, i.e., a TCP socket state, and determine, based on the identified TCP socket state, that the communication state of the electronic device 101 is good Can be determined to be one of a state, a shortage state, a block state, and a sluggish state, and an optimal network environment can be provided to the user by changing the network based on the determined communication state.
- a transmission protocol state i.e., a TCP socket state
- Wi-Fi wireless network technology indicates that an electronic device communicates through at least one external communication providing device (e.g., an AP). Apart from the strength of the signal that the electronic device receives from the external communication provision device, there may be a substantial Internet connection.
- the actual Internet connection described above may refer to a connection between an external communication providing device and the Internet (e.g., a cloud), and such a connection may be referred to as a backhaul connection.
- a socket can be used as a unit for performing communication.
- a socket may be an endpoint that connects communications between a plurality of entities performing communication, i.e., start and end.
- the TCP socket method is also used in hypertext transfer protocol (HTTP), file transfer protocol (FTP), and QUIC (quick UDP internet connections).
- HTTP hypertext transfer protocol
- FTP file transfer protocol
- QUIC quick UDP internet connections
- a large number of sockets can be opened and closed to send and receive one communication message (e.g., one emoticon sent via the messenger application).
- the above-described sockets can be formed or destroyed through a certain period (step), respectively, and can exist in a specific state in each step.
- FIG. 16, which will be described later, shows a sequence diagram illustrating a process of changing a socket state when a TCP socket is created and destroyed.
- FIG. 16 illustrates a sequence diagram 1600 illustrating a state change of a transport protocol socket in accordance with various embodiments of the present invention.
- the TCP socket state of a client (e.g., client 501 in FIG. 5) and a server (e.g., server 503 in FIG. 5) may be changed to a different state can be changed.
- the dotted arrow 1601 may indicate a normal transition to the client 501
- the line arrow 1602 indicates a normal translation to the server 503 Quot
- appl "1603 may mean a state change when an application is running”
- recv "1604 may mean a state change when a segment is received, quot
- send "1605 may mean that they are transmitted in the conversion.
- the changing step may start in the CLOSED state 1610.
- the application may be in a passive open state in event 1611 and the TCP socket state may be detected in the connection termination state 1610 (LISTEN) 1612) state.
- the application may be in an active open state, and a signal (e.g., a SYN packet) requesting connection establishment from the client 501 to the server 503 is transmitted, State 1610 to the connection establishment request (SYN_SENT) 1616 state.
- the connection establishment request 1616 state may indicate active opening.
- the server 503 When the server 503 receives a signal (e.g., a SYN packet) requesting a connection setting from the client 501 in the event 1615, the server 503 transmits a connection setting request (SYN_RCVD) The socket state is changed and the server 503 can send an acknowledgment (e.g., SYN, ACK packet) to the client 501 for the connection probe request.
- the server 503 may receive a signal requesting connection establishment from the client 501 and the server 503 may send an acknowledgment for the connection establishment request to the client 501.
- the application may be in a close or timeout state.
- the TCP socket state can be changed from the connection setting request reception state 1614 state to the connection setting state 1618, 503 may not transmit anything to the client 501.
- the client 501 receives the SYN, ACK packet from the server 503, the TCP socket state can be changed from the connection setting request 1616 state to the connection setting 1618 state, The base station 501 can transmit an ACK packet to the server 503.
- the application may be in a blocked state and the client 501 may send a connection release signal (e.g., a FIN packet) to the server 503.
- the application may be in a blocked state and the client 501 may send a disconnect signal to the server 503.
- the TCP socket state can be changed from the connection setting state 1618 to the connection release wait state (CLOSE_WAIT) 1620, and the server 503 The client 501 can transmit an ACK packet.
- the connection release wait 1620 state may refer to a passive close state.
- the client 501 when the client 501 receives the FIN packet from the server 503, the TCP socket state is changed from the first connection release FIN_WAIT_1 1622 state to the CLOSING 1624 state And the client 501 can send an ACK packet to the server 503.
- the application may be in a blocked state and the server 503 may send a FIN packet to the client 501.
- the TCP socket state changes from the first connection release 1622 state to the second connection release (FIN_WAIT_2) 1628 state And the client 501 may not transmit anything to the server 503.
- the client receives a FIN, ACK packet
- the TCP socket state may be changed from the first connection release 1622 state to the TIME_WAIT 1630 state,
- the server 503 can transmit an ACK packet.
- the TCP socket state may be changed from the closing 1624 state to the time waiting 1630 state, The server 503 may not transmit anything.
- the client 501 receives an ACK packet from the server 503, the last acknowledgment (LAST_ACK) 1626 state may be changed to the disconnected state 1610, May not send anything to the server 503.
- LAST_ACK last acknowledgment
- various information about the electronic device 101 can be obtained by using all the steps from generation to extinction at least once in the course of performing TCP communication. For example, by analyzing the count of active sockets among all active sockets, information about the backhaul connection state or connection quality can be obtained.
- the quality of the Wi-Fi channel and the way backhaul connections are checked on a regular basis can be used to determine if there is a Wi-Fi backhaul connection.
- the above-described checking method is not applied flexibly according to the current communication state, but can be used periodically when the number of transmission packets and received packets is small, or when the RSSI is weak, every designated time.
- the backhaul connection confirmation is performed only when the above conditions are satisfied, when the number of transmission packets and reception packets is small due to deterioration of the network conditions and when the user does not use the electronic device and the number of transmission packets and reception packets Small cases may not be distinguished.
- the transmission packet and the reception packet are changed only when the user is actively using the Internet.
- Detecting changes can be difficult.
- the backhaul connection confirmation is performed only when the number of transmission packets and reception packets is small, the transmission quality and the reception quality are good, but it may be difficult to detect the situation where the Internet is not operated due to the backhaul connection problem.
- the quality of the Wi-Fi connection is low, features of the physical link layer can be used to identify the backhaul connection. Even if the transmission / reception quality of the signal is not good, the Internet can operate in the electronic device due to the reflected signal, and even if the signal quality from the communication providing device (e.g. AP) is good, Can occur.
- the communication providing device e.g. AP
- the backhaul connection failure detection can be delayed.
- Various embodiments of the present invention can more quickly detect a backhaul failure using a transport protocol socket (e.g., TCP socket) state count if the electronic device fails to connect to the backhaul.
- the electronic device may provide an interface for change to another AP or cellular communication. Through this, the user experience of performing communication can be improved.
- the electronic device may display the detected backhaul failure status on the display device, or may automatically change to another network without displaying it. In various embodiments, the electronic device may provide the user with an option for network automatic change upon backhaul failure. In various embodiments, the electronic device performs the backhaul connection test only in situations where there is a high probability that there will be a problem with the backhaul, thereby reducing unnecessary operations and enhancing battery efficiency. 17 to 32, which will be described later, explain that the electronic device determines the backhaul failure by checking at least one of the state of the transmission protocol and the count of the transmission protocol, and performs control for the backhaul failure.
- FIG. 17 illustrates a flow diagram 1700 of an electronic device that determines a backhaul failure based on at least one of a state of a transport protocol and a count of a transport protocol in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- 17 is part of operation 301 of FIG. 3, and operation 1705 of FIG. 17 is part of operation 303 of FIG. 3, and the operation subject of the illustrated flowchart 1700 is electronic device 101 or electronic May be understood as a component of the device 101 (e.g., processor 120).
- an electronic device may verify at least one of a state of a transport protocol and a count of a transport protocol at operation 1701.
- the processor 120 may determine a socket count, a retransmission segment or a reception segment of a TCP socket corresponding to a total socket count and connection establishment state of a transport protocol (i.e., TCP).
- the processor 120 may determine, at act 1703, a backhaul failure based on at least one of a status of the identified transport protocol and a count of the transport protocol. In one embodiment, the processor 120 may determine a backhaul failure if the total socket count of the transport protocol is increased but the socket count corresponding to the connection establishment state does not increase. In one embodiment, the processor 120 may determine a backhaul failure if there are insufficient received or transmitted packets and the retransmission segment of the transmission protocol increases. In one embodiment, the processor 120 may determine a backhaul failure if there are insufficient received or transmitted packets and a received segment error in the transport protocol is identified.
- the processor 120 can determine a backhaul failure in the situation where the interface as shown in Fig. 18 is displayed.
- the indicator 1802 indicating the Wi-Fi signal strength on the display (e.g., display 160 of FIG. 1) of the electronic device 101 may indicate that the Wi-Fi signal strength is good . For example, if one or more of the four steps displayed by the indicator 1802 indicating the Wi-Fi signal strength is activated and displayed, the Wi-Fi signal strength can be regarded as good. For example, The indicator 1802 indicating the strength of the Wi-Fi signal can indicate that all the four stages are activated.
- the indicator 1802 indicating the Wi-Fi signal strength indicates good Wi-Fi signal strength, but the indicators 1804 through 1808 indicating a message transmission failure are displayed, Recognizing that there is a problem with the backhaul connection, you can determine the backhaul failure.
- the processor 120 may, at operation 1705, perform control over the backhaul failure based on the determined backhaul failure.
- the processor 120 may display a backhaul failure on the display 160 of the electronic device 101 and display a network change indicator so that the user can change the network.
- the network change indicator may include indicators for changing the network for communication to another AP or cellular network.
- the processor 120 may share information about determined backhaul failures with external electronics in determining a backhaul failure. 19 to 24, which will be described later, show a flow chart of the electronic device 101 for determining a backhaul failure and an example thereof.
- FIG. 19 illustrates a flow diagram 1900 of an electronic device that determines a backhaul failure based on a total count of connection and a connection establishment count in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- 19 is part of operation 1701 of Fig. 17, and operation 1903 of Fig. 19 is part of operation 1703 of Fig. 17, and the operation subject of the illustrated flowchart 1900 is electronic device 101 or electronic device 101 (E. G., Processor 120). ≪ / RTI >
- an electronic device e.g., processor 120 of FIG. 1
- the processor 120 can see that the total number of TCP socket counts is increased, but the socket counts folded into the connection establishment state do not increase.
- the above-described state may indicate a state in which a socket for which a backhaul connection is disconnected from an arbitrary point and a connection set state is decreased, and packets to be transmitted by the application are accumulated.
- the state of the transport protocol is as shown in FIG. The graph 2000 of FIG.
- processor 120 may see that while the polling cycle is in progress, the count of the new connection setup 2006 does not increase and the count of the new connection setup request 2008 increases.
- the count of the new connection establishment request 2008 may be fixed at 0 and may not increase.
- the processor 120 increments the count of the new connection establishment request 2008 from 0 to 2 at the moment the polling cycle 2004 goes from 1 to 2, i.e., the polling cycle 2004 goes from 1 to 2 ,
- the count of the new connection establishment request 2008 is increased from 0 to 3 and the polling cycle 2004 is changed from 7 to 9, that is, at the moment the polling cycle 2004 is shifted from 7 to 9,
- the count of the new connection establishment request 2008 is increased from 0 to 1 at the moment the polling cycle 2004 is shifted from 11 to 12, that is, the polling cycle 2004 is shifted from 11 to 12, It can be seen that the count of the new connection establishment request 2008 increases from 0 to 2 when the polling cycle 2004 is 13 to 15, that is, the polling cycle 2004 is shifted from 13 to 15. Due to an increase in the count of the connection establishment request 2008, the total socket count of the transmission protocol can increase.
- the processor 120 may, at operation 1903, determine a backhaul failure based on the acknowledgment results. For example, as shown in FIG. 20, the processor 120 increases the total number of TCP socket counts by increasing the number of new connection setting request counts, confirms that the socket count of the connection setting state does not increase, It can be determined that a failure has occurred. In one embodiment, the processor 120 may determine a backhaul failure by comparing the difference between the total number of TCP socket counts and the socket count of the connection establishment state to a threshold value.
- the processor 120 may determine that the state in which a response (e.g., syn packet) is not received continues beyond the threshold time, or if the difference between the total number of TCP socket counts and the socket count of the connection establishment state exceeds the threshold A large, backhaul failure can be determined if this condition persists for a critical period of time.
- a response e.g., syn packet
- FIG. 21 shows a flow diagram 2100 of an electronic device for determining a backhaul failure based on a retransmission state of a transmission protocol according to various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- 17 is a part of operation 1701 of Fig. 17, and operation 2103 of Fig. 21 is part of operation 1703 of Fig. 17, and the operation subject of the illustrated flowchart 2100 is electronic device 101 or electronic device 101 (E. G., Processor 120). ≪ / RTI >
- an electronic device e.g., processor 120 of FIG. 1
- the processor 120 can confirm that the number of failed packets increases.
- the state of the transport protocol is as shown in FIG.
- the graph 2200 of FIG. 22A shows a polling cycle 2204 for the horizontal axis and a count 2202 for the vertical axis.
- the processor 120 may determine that the count of the transmission protocol transmission packet 2206 and the transmission protocol reception packet 2208 is low while the count of the transmission protocol retransmission segment 2210 is high have. For example, in FIG. 22A, the processor 120 determines whether the polling cycle 2204 is 4 to 5, that is, the polling cycle 2204 moves from 4 to 5, , The count of the transmission protocol reception packet 2208 is decreased from 2 to 0, and the transmission protocol retransmission segment 2210 is maintained at 1. [ According to the above-described confirmation result, the processor 120 can confirm that the count of the transmission protocol transmission packet 2206 is relatively low while the count of the transmission protocol retransmission segment 2210 is relatively high.
- the processor 120 may, at operation 2103, determine a backhaul failure based on the acknowledgment result. For example, the processor 120 can ascertain the increase in the retransmission segment of the transmission protocol and determine the backhaul failure as time elapses, as in Fig. 22B.
- the client may transmit the data to: (a server 503 of FIG. 5) (2251-1 to 2251-4) (such as client 501 of Figure 5) Server .
- the client 501 fails to transmit the data 3 2251-3 and can retransmit the data 3 (2251-4).
- the server 503 can receive data from the client 501 and send the acknowledgments 2253-1 through 2253-3 to the client 501.
- the count and segment of the TCP socket at T 0 are shown in Table 7 below.
- the total socket count of the TCP socket is 15, the connection setting count is 10, the in-segment error count is 18, the retransmission count is 17, and the transmitted segments are 1000.
- the client 501 fails to transmit data 1 2255-1 to server 503 and may retransmit data 1 2255-2 through 2255-4 .
- the count and segment of the TCP socket in T 1 are shown in Table 8 below.
- the processor 120 can confirm that the retransmission count is increased from 17 to 19 while the time is changed from T 0 to T 1 .
- the processor 120 can confirm that the retransmission count has increased and determine the backhaul failure as described above.
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- 23 is part of operation 1701 of Fig. 17, and operation 2303 of Fig. 23 is part of operation 1703 of Fig. 17, and the operation subject of the illustrated flowchart 2300 is electronic device 101 or electronic device 101 (E. G., Processor 120). ≪ / RTI >
- an electronic device e.g., processor 120 of FIG. 1
- processor 120 can check at operation 2301 the lack of received or transmitted packets and errors in the received segments of the transmitted protocol .
- processor 120 may ascertain an increase in received segment error in a degraded transmission and reception environment.
- the state of the transport protocol is as shown in Figure 24A.
- 24A is a polling cycle 2404
- the ordinate axis is a count 2402.
- the processor 120 may determine that the count of the transmission protocol transmission packet 2406 and the count of the transmission protocol reception packet 2408 are low and that the reception segment error of the transmission protocol 2410 ) Is increased.
- the processor 120 determines if the polling cycle 2404 is 3 to 4, that is, when the polling cycle 2404 is shifting from 3 to 4, the receive segment error 2410 ) Increases from 0 to 2 and the polling cycle 2404 goes from 6 to 7, i.e., at the moment the polling cycle 2404 goes from 6 to 7, the receive segment error 2410 1, and the transmission protocol reception packet 2408 is maintained at 2 while the polling cycle 2404 is from 4 to 7. [ According to the above-described confirmation result, the processor 120 can confirm that the count of the transmission protocol reception packet 2408 is relatively low, but the count of the reception segment error 2410 of the transmission protocol is relatively high.
- the processor 120 may determine, at operation 2303, a backhaul failure based on the acknowledgment result. For example, the processor 120 may determine an increase in the in-segment error of the transmission protocol and determine a backhaul failure as time elapses, as shown in Fig. 24B.
- the server such as server (503 in FIG. 5)
- the data such as client 501 in Fig. 5
- the server 503 fails to transmit the data 2 2451-3 and may retransmit the data 2 (2451-3).
- the client 501 can receive data from the server 503 and send the acknowledgments 2453-1 and 2453-2 to the server 503. [ The count and segment of the TCP socket at T 0 are shown in Table 9 below.
- the server 503 sends data 1 2455-1 to the client 501 and the client 501 sends an acknowledgment 2457-1 Can be transmitted.
- the server 503 tries to transmit data 2 (2455-2 through 2455-3), but the client 501 may fail to receive data 2.
- the count and segment of TCP socket in T 1 are shown in Table 10 below.
- the processor 120 determines that the in-segment error count is increased from 18 to 20, and the received segment is increased from 1000 to 1002, because the client 501 does not receive data from the server 503. [ .
- Processor 120 may determine that the received segment error count has increased and determine a backhaul failure, as described above. 25 to 31 show various control operations that the electronic device 101 performs in order to cope with a backhaul failure when it determines a backhaul failure.
- FIG. 25 shows a flow diagram 2500 of an electronic device for indicating a backhaul failure and a network change indicator in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- Fig. 25 is a part of operation 1705 of Fig. 17, and the operating entity of the illustrated flowchart 2500 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., the processor 120).
- an electronic device e.g., processor 120 of FIG. 1
- the processor 120 may indicate a backhaul failure determined through the status and count of the transfer protocol to a display device (e.g., the display device 160 of FIG. 1) of the electronic device 101.
- an indication of a backhaul failure may include a message indicating that the Internet connection of the electronic device 101 is broken.
- the processor 120 may, at operation 2503, display a network change indicator.
- the processor 120 may display on the display device 160 a message indicating whether the Wi-Fi network is changed to a cellular network and at least one or more indicators that the network can be changed by the user's selection. Examples in which a backhaul failure and a network change indicator are displayed on the display device 160 of the electronic device 101 will be described with reference to Figs. 26 to 28 to be described later.
- 26 illustrates an example interface 2600 of an electronic device for indicating a network change indicator in a backhaul failure according to various embodiments of the present invention.
- the processor 120 may display on the display device 160 an interface 2602 that displays a network change indicator in case of a backhaul failure.
- the interface 2602 includes an indicator 2604 including a message indicating that the Internet connection is disconnected due to a backhaul failure, a notification 2604 indicating whether or not the WiFi network is changed to the cellular network, A first change indicator 2608 in which a network change is not performed through a user's input and a second change indicator 2610 in which a network change is performed through a user's input have.
- the user may switch to the cellular network from the Wi-Fi network after detecting the backhaul failure by selecting and entering the second change indicator 2610.
- FIG. 27 illustrates an example interface 2700 of an electronic device that indicates a change to another access point (AP) upon a backhaul failure in accordance with various embodiments of the present invention.
- AP access point
- the processor 120 may display on the display device 160 an interface 2710 indicating an indicator indicating a change to another AP upon a backhaul failure.
- the interface 2710 may include an indicator 2712 that includes a message indicating that the Internet connection has been lost due to a backhaul failure, an indicator 2714 that includes a message asking whether to connect to another AP because the Wi- A first change indicator 2716 in which the network change is not performed through the input of the user, and a second change indicator 2718 in which the network change is performed through the input of the user.
- the electronic device 101 may guide the user through the user interface to change from the AP currently connected to the user to another AP located nearby.
- the processor 120 may direct the user to change to another AP by displaying the address of the other APs on the interface 2720 in case of a backhaul failure.
- the interface 2720 may include an indicator 2722 indicating an AP change, an indicator 2724 including a message to guide a change to another AP, addresses 2726-1 through 2726-6 of other APs, . ≪ / RTI >
- other APs recommended for the user may include APs with good network quality (e.g., the backhaul network is operating normally). If the user selects one of the addresses 2726-1 through 2726-6 of the other APs on the interface 2720, the processor 120 may attempt to connect to the AP having the corresponding address.
- interface 2720 may also include an indicator (not shown) indicating the address of the external device to which to send information about the backhaul failure.
- the external apparatus to which information on the backhaul failure may be transmitted may include an external apparatus identified in FIG. 29 to be described later.
- FIG. 28 illustrates an example of an interface 2800 of an electronic device that optionally presents a network change indicator upon backhaul failure according to various embodiments of the present invention.
- the processor 120 may optionally generate an operation to automatically change the network when the backhaul fails, and provide the generated information to the user.
- the interface 2802 may include a network automatic change indicator 2804 including a change indicator 2806, a message to guide automatic network change upon occurrence of a backhaul failure.
- the change indicator 2806 is activated through the user's input, if the processor 120 detects a backhaul failure, the network can be automatically changed without displaying a separate notification window. For example, when a backhaul failure occurs, the processor 120 may change from a currently connected WiFi network to a cellular network or to another WiFi network that is frequently used.
- the processor 120 may not automatically perform the network change even if a backhaul failure occurs.
- FIG. 29 shows a flow diagram 2900 of an electronic device sharing a backhaul failure with other electronic devices in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- Fig. 29 is a part of operation 1705 of Fig. 17, and the operating entity of the illustrated flowchart 2900 can be understood as an electronic device 101 or a component of electronic device 101 (e.g., processor 120).
- an electronic device may identify an external device to which to send information about a backhaul failure, at operation 2901.
- the external device may be an AP connected to the electronic device 101, may be devices included in the same network, may be devices registered on a common account basis, or may be irrelevant devices.
- devices registered on a common account basis may be devices belonging to one IoT cloud account.
- the external device that will send information about the backhaul failure may be electronic devices that communicate using a NAN (neighbor awareness network).
- information about an external device to send information about a backhaul failure can be managed in the server. For example, by identifying an external device to which the server will send information about a backhaul failure and sending information (e.g., address) about the external device identified by the electronic device 101, Information about the backhaul failure can be transmitted to the device.
- the processor 120 may send information about a backhaul failure to an identified external device.
- electronic device 101 may send information about a backhaul failure to other devices connected to the same AP, such as example 3010 of Figure 30A.
- the electronic device 101 may detect a backhaul failure and send information about the detected backhaul to the electronic device 3014-1 connected to the AP 3001 connected to the electronic device 101 have.
- an electronic device 3014-1 that has received information about a backhaul failure from the electronic device 101 may share information about backhaul failures with other electronic devices 3014-2 to 3014-6 .
- the electronic device 101 may send information about a backhaul failure to an AP 3001 that is coupled to the electronic device 101, such as the example 3020 of FIG. 30B. For example, after the AP 3001 connected to the electronic device 101 receives information on the backhaul failure, the AP 3001 transmits information about the received backhaul failure to another (3026) to the electronic devices 3024-1 through 3024-4. 30A and 30B, the electronic device 101 may share a backhaul failure with devices connected to the same AP. In one embodiment, the processor 101 may share information about backhaul failures with external electronic devices through a non-connection based information sharing scheme using NAN.
- FIG. 31 shows a flow diagram 3100 of an electronic device that stores and provides information related to backhaul failures in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- Fig. 31 is part of operation 1705 of Fig. 17, and the operating entity of the illustrated flowchart 3100 can be understood as an electronic device 101 or a component of electronic device 101 (e.g., processor 120).
- an electronic device may store information related to a backhaul failure upon occurrence of a backhaul failure, For example, whenever a backhaul failure occurs, the processor 120 generates information (e.g., name, security) related to the AP where the backhaul has occurred, geofence information using the AP, signal quality information Information of the devices existing in the vicinity of the backhaul failure (e.g., device name, signal strength of each device, location information of the device, etc.), and how many times the backhaul failure occurred. In one embodiment, the processor 120 may use stored information to sense locations where backhaul failures frequently occur, APs, and the like.
- information e.g., name, security
- the processor 120 may use stored information to sense locations where backhaul failures frequently occur, APs, and the like.
- the processor 120 may use the information associated with the stored backhaul failure to control the display device.
- the processor 120 may use information associated with stored backhaul failures to detect locations, APs, and the like where backhaul failures frequently occur, : An indicator indicating a warning may be displayed on the display device 160 of Fig. 1), or an AP where a backhaul failure frequently occurs may be displayed in a subordinate order in the connectable AP list.
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- the operating entity of the illustrated flowchart 3200 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- an electronic device e.g., processor 120 of FIG. 1
- the transmission protocol related information may include at least one of a total number of TCP socket counts, a socket count of a connection establishment state, a number of received and transmitted packets, a retransmission segment count of a TCP socket, or a received segment count of a TCP socket . ≪ / RTI >
- the processor 120 may determine whether the connection establishment count of the transport protocol is increased. For example, the processor 120 can check whether the connection setting count indicating the connection setting state among the states of the TCP socket increases with the passage of time. If the connection establishment count of the transport protocol increases, the processor 120 may again perform operations to obtain transport protocol related information. If the connection establishment count of the transport protocol does not increase, the processor 120 may perform operation 3205. [
- the processor 120 may determine whether a received packet or a transmitted packet is good.
- a good received packet or a transmitted packet may indicate that there is no shortage of received or transmitted packets.
- the processor 120 may determine that the received packet or the transmitted packet no longer increases, or that the increasing trend is gentle, over time, and may determine that the received packet or the transmitted packet is insufficient. If the received packet or the transmitted packet is good, that is, if the received packet or the transmitted packet is not insufficient, the processor 120 may perform the operation of acquiring the transfer protocol related information again. If the received packet or the transmitted packet is not good, that is, the received packet or the transmitted packet is insufficient, the processor 120 may perform the operation 3207. [
- the processor 120 may determine whether the total count of the transport protocol is increased. For example, the processor 120 may determine whether the total number of TCP socket counts is increasing based on the acquired transmission protocol related information. In one embodiment, the processor 120 can determine whether the total number of TCP socket counts increases over time. If the total count of the transport protocol increases, the processor 120 may perform an operation 3213, and if the total count of the transport protocol does not increase, the processor 120 may perform an operation 3209. [
- the processor 120 may determine whether the retransmission segment count of the transport protocol is increased. For example, the processor 120 may perform retransmission of failed data if it fails to transmit data to the server (e.g., server 503 of FIG. 5) due to the quality of the degraded transmitted and received packets, The increase of the retransmission segment count of the transmission protocol due to the retransmission performance can be confirmed. If the retransmission segment count of the transport protocol increases, the processor 120 may perform an operation 3213. If the retransmission segment count of the transport protocol does not increase, the processor 120 may perform an operation 3211.
- the server e.g., server 503 of FIG. 5
- the processor 120 may perform an operation 3213. If the retransmission segment count of the transport protocol does not increase, the processor 120 may perform an operation 3211.
- the processor 120 may determine whether the received segment error of the transport protocol is reduced. In one embodiment, the processor 120 may verify that the receive segment error of the transport protocol increases if the data from the server 503 fails to be received due to the quality of the degraded send and receive packets. If the receive segment error of the transport protocol decreases, i. E. The receive segment error of the transport protocol does not increase, the processor 120 may again obtain the transport protocol related information. If the receive segment error of the transport protocol does not decrease, i. E. The receive segment error of the transport protocol increases, the processor 120 may perform an operation 3213.
- the processor 120 may check for a backhaul failure. For example, the processor 120 may check for a backhaul failure and determine a backhaul failure if the total count of the transport protocol is increased but the connection protocol count of the transport protocol does not increase. The processor 120 checks for a lack of a received packet or a transmission packet of the transmission protocol, and when the retransmission segment count of the transmission protocol increases or when an increase in the reception segment error of the transmission protocol is confirmed and the backhaul failure is checked, You can decide.
- the processor 120 may perform control for a backhaul failure. For example, the processor 120 may determine a backhaul failure and provide a network change (e.g., a display change) to the display device of the electronic device 101 Indicator can be displayed. In one embodiment, the processor 120 alerts the user of a backhaul failure by sharing information about the backhaul failure with the identified external device, storing information about the backhaul failure, and displaying information about the stored backhaul failure on the display device can do. 33 to 39, which will be described later, describe a concrete implementation operation of the electronic device 101 for checking the state of the backhaul.
- a network change e.g., a display change
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- the operating entity of the illustrated flowchart 3300 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- an electronic device may obtain thresholds at operation 3301.
- the thresholds may include received signal strength, backhaul connection checking, received segments, and thresholds associated with the transmitting segment.
- the processor 120 may check, at operation 3303, a new connection establishment state or time waiting state. For example, processor 120 may check for an increase in the connection set count of the TCP socket and check for a new connection establishment state. Processor 120 may check for an increase in the time wait state count of the TCP socket and check for a new time wait state.
- the processor 120 may check for an in-segment error at operation 3305. For example, the processor 120 can confirm that a segment error occurs due to poor reception quality due to lack of received packets.
- the processor 120 may check retransmission, at operation 3307. For example, the processor 120 may verify that retransmission occurs due to poor transmission quality due to lack of transmission packets.
- the processor 120 may check the backhaul at operation 3309. [ For example, the processor 120 may check an AP connected to the electronic device 101 and a backhaul indicating that the Internet is connected.
- the processor 120 may update the count at an operation 3311. For example, the processor 120 may set the previous TCP connection setup count to the current TCP connection setup count, the previous time wait count to the time wait count, the previous TCP usage count to the TCP usage count, The count may be updated to the retransmission segment count, the previous in-segment error count may be updated to the in-segment error count, the previous in-segment count may be in in-segment count, and the previous out-segment count may be updated in out-segment count.
- 34 illustrates a flow diagram 3400 of an electronic device for obtaining a threshold according to various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 34 is a part of operation 3301 of FIG. 33, and the operating entity of the illustrated flowchart 3400 may be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- an electronic device may obtain a plurality of thresholds at operation 3401.
- the processor 120 may obtain an RSSI threshold value at operation 3403. For example, processor 120 may obtain a threshold value for RSSI by comparing the current RSSI to a threshold value.
- processor 120 may obtain a plurality of counts at operation 3405.
- the plurality of counts may include a current TCP connection setting count (currTcpEstablishedCount), a retransmission segment count (retransSegCount), an inSegErrorCount, an inSegCount, an outSegCount, a TCP usage count TcpInUseCount), an orphanCount, and a time wait count (timeWaitCount).
- the current TCP connection setup count may indicate the number of TCP connections for which the current state is a connection establishment state.
- the in-segment count may indicate the total number of segments received including the segments received in error.
- This count may include segments received on the current connection established connection.
- the out segment count may comprise the total number of segments transmitted including the currently connected segments. These counts can exclude retransmitted sockets.
- the retransmission segment count may comprise the total number of retransmitted segments. This count may indicate the number of transmitted TCP sockets including one or more previously transmitted sockets.
- the in-segment error count may indicate the total number of segments received in error (e.g., bad TCP checksums).
- the TCP usage count may indicate the total number of TCP sockets, and the hop count may indicate sockets without inodes, except for the time wait state, Sockets can be represented.
- processor 120 may set a count at operation 3407.
- the processor 120 may set the TCP usage count as the difference between the TCP usage count and the odd count, and may set the in-segment count difference diffInSegCount to the difference between the in-segment count and the previous in-segment count
- the difference of the out segment count can be set as the difference between the out segment count and the previous out segment count
- the difference in the in-segment error count can be set to the difference between the in-segment error count and the previous segment error count
- 35 shows a flow diagram 3500 of an electronic device for obtaining a received signal strength indication (RSSI) threshold according to various embodiments of the present invention.
- RSSI received signal strength indication
- each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
- 35 is part of operation 3403 of FIG. 34, and the operating entity of the illustrated flowchart 3500 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- an electronic device e.g., processor 120 of FIG. 1
- processor 120 of FIG. 1 may obtain the current RSSI value at operation 3501.
- processor 120 may check at operation 3503 whether the current RSSI value is equal to or greater than RSSI_LOW_SIGNAL_THRESHOLD. If the current RSSI value is equal to or greater than RSSI_LOW_SIGNAL_THRESHOLD, the processor 120 may perform operation 3505, and if the current RSSI value is not equal to or greater than RSSI_LOW_SIGNAL_THRESHOLD, the processor 120 may perform operation 3507. [
- the processor 120 may set the internet connection counter threshold to THRESHOLD_BACKHAUL_CONNECTIVITY_CHECK_HIGH and the wait cycle threshold to THRESHOLD_WAITING_CHECK_HIGH, at operation 3505.
- processor 120 may verify at operation 3507 that the current RSSI value is greater than RSSI_POOR_SIGNAL_THRESHOLD and less than RSSI_LOW_SIGNAL_THRESHOLD. If the current RSSI value is greater than RSSI_POOR_SIGNAL_THRESHOLD and less than RSSI_LOW_SIGNAL_THRESHOLD, processor 120 may perform operation 3509 and processor 120 may perform operation 3511 if the current RSSI value is not greater than RSSI_POOR_SIGNAL_THRESHOLD and not less than RSSI_LOW_SIGNAL_THRESHOLD.
- the processor 120 may set the Internet connection counter threshold to THRESHOLD_BACKHAUL_CONNECTIVITY_CHECK_LOWH and the wait cycle threshold to THRESHOLD_WAITING_CHECK_LOW, at operation 3509.
- the processor 120 may set the Internet Connection Counter Threshold to THRESHOLD_BACKHAUL_CONNECTIVITY_CHECK_POOR and the Wait Cycle Threshold to THRESHOLD_WAITING_CHECK_POOR, at operation 3511.
- 36 shows a flow diagram 3600 of an electronic device for checking a new connection establishment state and a time waiting state in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 36 is part of operation 3303 of FIG. 33, and the operating entity of the illustrated flowchart 3600 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- an electronic device e.g., processor 120 of FIG. 1
- Processor 120 may perform operation 3607 if the current TCP connection setup count exceeds the previous TCP connection setup count and may perform operation 3603 if the current TCP connection setup count does not exceed the previous TCP connection setup count have.
- processor 120 may, at operation 3603, determine whether the time wait count is greater than the previous time wait count. Processor 120 may perform operation 3609 if the time wait count exceeds the previous time wait count, and may perform operation 3605 if the time wait count does not exceed the previous time wait count.
- processor 120 may check at operation 3605 whether the TCP usage count is greater than the previous TCP usage count. Processor 120 may perform operation 3611 if the TCP usage count exceeds the old TCP usage count and may perform operation 3617 if the TCP usage count does not exceed the previous TCP usage count.
- the processor 120 may set the in-error segment wait cycle to zero and the retransmit segment wait cycle to zero, at operation 3607.
- the processor 120 may determine at operation 3609 whether the wait cycle threshold is greater than THRESHOLD_WAITING_CYCLE_CHECK_POOR. Processor 120 may perform operation 3613 if the wait cycle threshold is greater than THRESHOLD_WAITING_CYCLE_CHECK_POOR and may perform operation 3605 if the wait cycle threshold does not exceed THRESHOLD_WAITING_CYCLE_CHECK_POOR.
- the processor 120 may set the Internet connection counter to a value obtained by subtracting the old TCP usage count from the Internet connection counter and the TCP usage count at operation 3611.
- the processor 120 may set the Internet Connection Counter to 0 and the Internet Connection Wait Cycle to 0, at operation 3613.
- the processor 120 may increase the internet connection counter at an operation 3615.
- processor 120 may, at act 3617, determine whether the Internet connection counter is greater than zero. If the Internet connection counter exceeds zero, the processor 120 may perform an operation 3615 and terminate the step if the Internet connection counter does not exceed zero.
- Figure 37 shows a flow diagram 3700 of an electronic device for inspecting in-segment and out-segment errors in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- 37 is a part of operation 3305 of FIG. 33, the operating entity of the illustrated flowchart 3600 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., processor 120).
- an electronic device e.g., processor 120 of FIG. 1
- processor 120 may determine at operation 3701 whether the difference in the in-segment error count is greater than zero.
- Processor 120 may perform operation 3703 if the difference in the in-segment error count is greater than zero, and may perform operation 3705 if the difference in in-segment error count does not exceed zero.
- processor 120 may determine at operation 3703 if the sum of the difference in segment segment error count and the difference in out segment error count is less than THRESHOLD_TCP_POOR_SEG_RX_TX.
- the processor 120 may perform an operation 3707 if the sum of the difference in the in-segment error count and the difference in the out-segment error count is less than THRESHOLD_TCP_POOR_SEG_RX_TX, and if the sum of the difference in the in-segment error count and the difference in the out-segment error count is THRESHOLD_TCP_POOR_SEG_RX_TX If not, operation 3705 may be performed.
- the processor 120 may determine at operation 3705 whether the in-error segment wait cycle is greater than zero. The processor 120 may perform an operation 3707 if the in-error segment wait cycle exceeds zero and terminate the operation if the in-error segment wait cycle does not exceed zero.
- processor 120 may increase the value of the in-error segment wait cycle at operation 3707.
- FIG. 38 shows a flow diagram 3800 of an electronic device for inspecting a retransmission segment in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- Fig. 38 is a part of operation 3307 of Fig. 33, and the operating entity of the illustrated flowchart 3800 can be understood as an electronic device 101 or a component of the electronic device 101 (e.g., the processor 120).
- the electronic device e.g., processor 120 of FIG. 1
- the electronic device can confirm at operation 3801 that the difference in the retransmission segment count is greater than zero.
- Processor 120 may perform operation 3803 if the difference in the retransmission segment count is greater than zero and perform operation 3805 if the difference in the retransmission segment count is not greater than zero.
- processor 120 may check at operation 3803 whether the difference in segment count is greater than TCP_POOR_SEG_RX. Processor 120 may perform operation 3807 if the difference in the in-segment count is greater than TCP_POOR_SEG_RX, and may perform operation 3805 if the in-segment count difference is not greater than TCP_POOR_SEG_RX.
- processor 120 may determine at operation 3805 whether the retransmission segment wait cycle is greater than zero. The processor 120 may perform an operation 3807 if the retransmission segment wait cycle exceeds zero and terminate the step if the retransmit segment wait cycle does not exceed zero.
- the processor 120 may increase the retransmission segment wait cycle at operation 3807.
- Figure 39 shows a flow diagram 3900 of an electronic device for checking the state of a backhaul in accordance with various embodiments of the present invention.
- each operation may be performed sequentially, but not necessarily sequentially.
- the order of each operation may be changed, and at least two operations may be performed in parallel.
- Fig. 39 is part of operation 3309 of Fig. 33, and the operating entity of the illustrated flowchart 3900 can be understood as an electronic device 101 or a component of electronic device 101 (e.g., processor 120).
- an electronic device e.g., processor 120 of FIG. 1
- the processor 120 may, at act 3903, determine whether the retransmission segment wait cycle exceeds the wait cycle threshold.
- the processor 120 may perform operation 3909 if the retransmission segment wait cycle exceeds the wait cycle threshold and may perform operation 3905 if the retransmit segment wait cycle does not exceed the wait cycle threshold.
- the processor 120 may, at act 3905, determine whether the in-error segment wait cycle exceeds the wait cycle threshold.
- the processor 120 may perform an operation 3909 if the in-error segment wait cycle exceeds the wait-cycle threshold, and perform an operation 3911 if the in-error segment wait cycle does not exceed the wait cycle threshold have.
- processor 120 may, at act 3907, determine whether the internet connection wait cycle exceeds a wait cycle threshold. Processor 120 may perform operation 3909 if the internet connection wait cycle exceeds the wait cycle threshold and may perform operation 3903 if the internet connection wait cycle does not exceed the wait cycle threshold.
- the processor 120 may set the value corresponding to the backhaul to true at operation 3909.
- the processor 120 may check at operation 3911 whether the internet connection wait cycle exceeds THRESHOLD_MAX_WAITING_CYCLE. Processor 120 may perform operation 3909 if the internet connection wait cycle exceeds THRESHOLD_MAX_WAITING_CYCLE and may terminate the step if the internet connection wait cycle does not exceed THRESHOLD_MAX_WAITING_CYCLE.
- the method of operation of an electronic device includes the operations of identifying a state of a transport protocol, 101), and changing the network based on the communication state.
- the state of the transport protocol may include a state of a transmission control protocol (TCP) socket of an application executing in the electronic device.
- TCP transmission control protocol
- the communication state may be determined to be at least one of a good state, a poor state, a blocked state, and a sluggish state.
- the operation of determining the communication state comprises: detecting a TCP socket for connection establishment; identifying whether the state of the TCP socket is changed from a connection establishment request state to a connection establishment state; Identifying whether a sum of a transmit data packet and a receive data packet of an application executing in the electronic device is greater than a threshold; identifying whether the state of the TCP socket is a connection release waiting state and a time waiting state; , A TCP socket for connection setting is detected, the state of the TCP socket is changed from a connection setting request state to a connection setting state, the sum of the transmission data packet and the reception data packet is larger than the threshold, And when the time waiting state is identified, the communication state is determined as the good state It may include the operation.
- the determining of the communication state includes: identifying whether the communication state is in a good state; detecting a TCP socket for connection establishment; determining whether the state of the TCP socket is a connection establishment request Identifying whether the number of transmission data packets in an application executed in the electronic device is greater than the number of received data packets; and determining whether the communication state is not good, And determining that the communication state is the insufficient state if the TCP connection socket is detected and the connection establishment request state is identified and the number of transmission data packets is greater than the number of the reception data packets.
- the determining the communication state comprises: detecting a TCP socket performing retransmission; and determining whether the number of transmit data packets and receive data packets of the application running on the electronic device is less than a threshold Identifying a link speed, an SNR (signal) and a received signal strength indication (RSSI) of the electronic device that are greater than a threshold; and identifying a TCP socket performing the retransmission And determining that the communication state is in a block state if the number of the transmission data packet and the reception data packet is smaller than a threshold value and the link speed, SNR, and RSSI are larger than a threshold value.
- the block state may include a state in which an application running in the electronic device is blocked by a network firewall.
- the determining of the communication state comprises: detecting a TCP socket for connection establishment; identifying whether the state of the TCP socket is a new connection establishment request state; Identifying whether a sum of a transmit data packet and a receive data packet of an executed application is less than a threshold; detecting a TCP socket for establishing the connection; identifying the new connection establishment request status; And if the sum of the received data packets is less than the threshold, determining the communication state to be in the slack state.
- the state of the transport protocol may be identified using the ID and IP address of the TCP socket.
- the method of operation of the electronic device 101 in various embodiments may include displaying the communication state on the electronic device and displaying a message on the electronic device based on the communication state, Operation.
- the method of operation of the electronic device 101 in various embodiments may include at least one of confirming at least one of a state of the transmission protocol and a count of the transmission protocol, and at least one of a state of the identified transmission protocol and a count of the transmission protocol Determining a backhaul failure based on the determined backhaul failure, and performing an operation for controlling the backhaul failure based on the determined backhaul failure.
- the operation of determining a backhaul failure based on at least one of a status of the identified transport protocol and a count of the transport protocol comprises: confirming that the total count of the transport protocol is greater than or equal to a threshold; Confirming that the connection establishment count of the transport protocol is maintained or reduced, and determining the backhaul failure based on the confirmed results.
- the operation of determining a backhaul failure based on at least one of the status of the identified transport protocol and the count of the transport protocol comprises: determining whether a backhaul failure is detected based on at least one of a transmission data packet and a number of received data packets Is less than or equal to a threshold value, and determining the backhaul failure based on the confirmed result.
- the operation of determining a backhaul failure based on at least one of a status of the identified transport protocol and a count of the transport protocol comprises: confirming that a retransmission segment of the transport protocol is above a threshold; And determining the backhaul failure based on the identified result.
- the operation of determining a backhaul failure based on the state of the identified transport protocol and the count of the transport protocol comprises: confirming that an error has occurred in the received segment of the transport protocol; And determining the backhaul failure based on the backhaul failure.
- performing the control for the backhaul failure based on the determined backhaul failure comprises: displaying information about the backhaul failure; and generating an indicator for changing the network based on the backhaul failure And < / RTI >
- performing the control for the backhaul failure based on the determined backhaul failure may include: identifying an external device to which information about the backhaul failure is to be transmitted; And sending information about the failure.
- the electronic device can be various types of devices.
- An electronic device may include, for example, a portable communication device (e.g., a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance.
- a portable communication device e.g., a smart phone
- a computer device e.g., a laptop, a desktop, a tablet, or a portable multimedia device
- portable medical device e.g., a portable medical device
- camera e.g., a camera
- a wearable device e.g., a smart watch
- a home appliance e.g., a smart bracelet
- any (e.g., first) component may be referred to as being “coupled” or “connected” to another (eg, second) component, with or without the term “functionally”
- any (e.g., first) component may be referred to as being “coupled” or “connected” to another (eg, second) component, with or without the term “functionally”
- module may include units implemented in hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic blocks, components, or circuits.
- a module may be an integrally constructed component or a minimum unit of the component or part thereof that performs one or more functions.
- the module may be implemented in the form of an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- the various embodiments of the present document may include 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) (E. G., Program 140). ≪ / RTI >
- a processor e.g., processor 120
- the one or more instructions may include code generated by the compiler or code that may be executed by the interpreter.
- a device-readable storage medium may be provided in the form of a non-transitory storage medium.
- 'non-transient' means that the storage medium is a tangible device and does not include a signal (e.g., electromagnetic waves), which means that data is permanently stored in the storage medium Do not distinguish between cases where they are temporarily stored.
- a method according to various embodiments disclosed herein may be provided in a computer program product.
- a computer program product can be traded between a seller and a buyer as a product.
- 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 via an application store (e.g. PlayStore TM ) For example, smartphones), directly or online (e.g., downloaded or uploaded).
- an application store e.g. PlayStore TM
- smartphones e.g., smartphones
- online e.g., downloaded or uploaded.
- at least a portion of the computer program product may be temporarily stored, or temporarily created, on a storage medium readable by a machine, such as a manufacturer's server, a server of an application store, or a memory of a relay server.
- each component e.g., a module or program of the components described above may include one or more entities.
- one or more of the above-described components or operations may be omitted, or one or more other components or operations may be added.
- a plurality of components e.g., modules or programs
- the integrated component may perform one or more functions of each component of each of the plurality of components in a manner similar or similar to that performed by the corresponding one of the plurality of components prior to the integration .
- operations performed by a module, program, or other component may be performed sequentially, in parallel, repetitively, or heuristically, or one or more of the operations may be performed in a different order, Or one or more other operations may be added.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Telephone Function (AREA)
Abstract
Description
본 발명의 다양한 실시예는 전자 장치에서 네트워크 상태 식별을 위한 장치 및 방법에 관한 것이다.Various embodiments of the present invention are directed to an apparatus and method for network status identification in an electronic device.
최근 스마트폰의 도입과 함께 스마트폰 사용자의 기하급수적인 증가에 대처하기 위해, 사용자에게 최적의 네트워크 서비스를 제공하기 위한 노력이 이루어지고 있다. 예를 들어, 최적의 네트워크 서비스는 Wi-Fi 또는 셀룰러 네트워크에 상관없이, 사용자가 인터넷에 접속하기에 가장 최적화된 네트워크를 선택함으로써, 사용자가 끊김 없이(seamless) 인터넷을 사용하는 환경을 제공할 수 있다. 사용자에게 최적의 네트워크 서비스를 제공하기 위해, 사용자의 네트워크 환경을 측정하고, 사용자가 원활한 네트워크 서비스를 이용할 수 있도록 네트워크를 선택하는 방식들이 논의되고 있다. 예를 들어, 전자 장치는 TCP(transmission control protocol)로 대표되는 전송 계층 프로토콜(transport layer protocol)의 상태를 분석함으로써, 사용자에게 최적의 네트워크 환경을 제공할 수 있다.Recently, in order to cope with the exponential increase of smartphone users with the introduction of smart phones, efforts are being made to provide optimal network services to users. For example, optimal network services can provide a seamless Internet experience for users, regardless of Wi-Fi or cellular network, by selecting the most optimized network for the user to access the Internet. have. In order to provide an optimal network service to a user, methods of measuring a user's network environment and selecting a network so that a user can use smooth network services are being discussed. For example, the electronic device can analyze the state of a transport layer protocol represented by a transmission control protocol (TCP), thereby providing an optimal network environment for a user.
본 발명의 다양한 실시예는 전자 장치의 네트워크 상태 식별을 위한 방법 및 그 전자 장치를 제공한다.Various embodiments of the present invention provide a method and an electronic device for network status identification of an electronic device.
본 발명의 다양한 실시예들에 따르면, 전자 장치의 동작 방법은, 전송 프로토콜(transport protocol)의 상태를 식별하는 동작과, 상기 전송 프로토콜의 상태에 기반하여 전자 장치의 통신 상태를 결정하는 동작과, 상기 통신 상태에 기반하여 네트워크를 변경하는 동작을 포함할 수 있다.According to various embodiments of the present invention, a method of operating an electronic device includes the steps of: identifying a state of a transport protocol; determining a communication state of the electronic device based on the state of the transmission protocol; And changing the network based on the communication state.
본 발명의 다양한 실시예들에 따르면, 전자 장치는, 통신 모듈, 적어도 하나의 프로세서, 상기 적어도 하나의 프로세서와 작동적으로 연결된 메모리를 포함하며, 상기 메모리는, 실행될 때 상기 적어도 하나의 프로세서로 하여금, 전송 프로토콜(transport protocol)의 상태를 식별하고, 상기 전송 프로토콜의 상태에 기반하여 전자 장치의 통신 상태를 결정하고, 상기 통신 상태에 기반하여 네트워크를 변경하도록 하는 인스트럭션들을 저장할 수 있다.According to various embodiments of the present invention, an electronic device includes a communication module, at least one processor, a memory operably coupled to the at least one processor, , Identify a state of a transport protocol, determine a communication state of the electronic device based on the state of the transmission protocol, and store instructions that cause the network to change based on the communication state.
다양한 실시예들에 따른 전자 장치 및 그 동작 방법은, 전송 프로토콜을 이용하여 네트워크 상태를 식별함으로써 기존 방법 보다 효율적으로 네트워크 상태를 식별할 수 있다.The electronic device and its method of operation according to various embodiments can identify network conditions more efficiently than existing methods by identifying network conditions using a transport protocol.
도 1은 본 발명의 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치의 블록도를 도시한다.1 shows a block diagram of an electronic device in a network environment in accordance with various embodiments of the present invention.
도 2a는 본 발명의 다양한 실시예들에 따른 전자 장치의 블록도(200)를 도시한다.2A illustrates a block diagram 200 of an electronic device according to various embodiments of the present invention.
도 2b는 본 발명의 다양한 실시예들에 따른 전자 장치의 무선 통신 모듈, 전력 관리 모듈, 및 안테나 모듈에 대한 블록도(240)를 도시한다.Figure 2B illustrates a block diagram 240 of a wireless communication module, a power management module, and an antenna module of an electronic device according to various embodiments of the present invention.
도 3은 본 발명의 다양한 실시예들에 따른 전자 장치의 흐름도(300)를 도시한다.Figure 3 shows a flow diagram 300 of an electronic device according to various embodiments of the present invention.
도 4는 본 발명의 다양한 실시예들에 따라 전송 프로토콜 상태를 식별하여 통신 상태를 결정하는 전자 장치의 흐름도(400)를 도시한다.FIG. 4 illustrates a flow diagram 400 of an electronic device for identifying a transmission protocol state to determine a communication state in accordance with various embodiments of the present invention.
도 5는 본 발명의 다양한 실시예들에 따른 TCP(transmission control protocol) 프로토콜을 사용하여 데이터를 전송하는 시퀀스 다이어그램(500)을 도시한다.FIG. 5 illustrates a sequence diagram 500 for transmitting data using a transmission control protocol (TCP) protocol in accordance with various embodiments of the present invention.
도 6은 본 발명의 다양한 실시예들에 따른 통신 상태가 블락 상태인 경우 전자 장치에 표시되는 전자 장치의 인터페이스의 예시(600)를 도시한다.6 illustrates an example 600 of an interface of an electronic device displayed in an electronic device when the communication status according to various embodiments of the present invention is in a block state.
도 7a는 본 발명의 다양한 실시예들에 따른 레드 플래그(red flag) 축적을 나타내는 흐름도(710)를 도시한다.Figure 7A shows a
도 7b는 본 발명의 다양한 실시예들에 따른 레드 플래그(red flag) 축적을 나타내는 흐름도(720)를 도시한다.Figure 7B shows a
도 8은 본 발명의 다양한 실시예들에 따른 양호 상태(good state)를 결정하기 위한 흐름도(800)를 도시한다.Figure 8 illustrates a
도 9는 본 발명의 다양한 실시예들에 따른 부족 상태(poor state)를 결정하기 위한 흐름도(900)를 도시한다.Figure 9 illustrates a
도 10은 본 발명의 다양한 실시예들에 따른 블락 상태(blocked state)를 결정하기 위한 흐름도(1000)를 도시한다.Figure 10 illustrates a
도 11은 본 발명의 다양한 실시예들에 따른 부진 상태(sluggish state)를 결정하기 위한 흐름도(1100)를 도시한다.11 illustrates a
도 12는 본 발명의 다양한 실시예들에 따른 통신 상태를 식별 및 네트워크를 변경하기 위한 흐름도(1200)를 도시한다.12 illustrates a
도 13은 본 발명의 다양한 실시예들에 따른 전송 계층 프로토콜의 상태를 모니터링하는 전자 장치의 흐름도(1300)를 도시한다.13 shows a flow diagram 1300 of an electronic device for monitoring the status of a transport layer protocol in accordance with various embodiments of the present invention.
도 14는 본 발명의 다양한 실시예들에 따른 전송 계층 프로토콜의 상태를 모니터링하는 전자 장치의 인터페이스의 예시(1400)를 도시한다. 14 illustrates an example 1400 interface of an electronic device for monitoring the status of a transport layer protocol in accordance with various embodiments of the present invention.
도 15a는 본 발명의 다양한 실시예들에 따른 통신 상태가 블락 상태인 경우 전자 장치에 표시되는 전자 장치의 인터페이스의 예시(1500)를 도시한다.15A illustrates an example 1500 of an interface of an electronic device to be displayed on an electronic device when the communication state is in a block state according to various embodiments of the present invention.
도 15b는 본 발명의 다양한 실시예들에 따른 통신 상태가 양호 상태인 경우 전자 장치에 표시되는 전자 장치의 인터페이스의 예시(1510)를 도시한다.15B shows an example 1510 of an interface of an electronic device displayed on an electronic device when the communication state is in a good state according to various embodiments of the present invention.
도 16은 본 발명의 다양한 실시예들에 따른 전송 프로토콜 소켓의 상태 변경을 나타내는 시퀀스 다이어그램(1600)을 도시한다.FIG. 16 illustrates a sequence diagram 1600 illustrating a state change of a transport protocol socket in accordance with various embodiments of the present invention.
도 17은 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 상태 및 전송 프로토콜의 카운트 중 적어도 하나에 기반하여 백홀 실패를 결정하는 전자 장치의 흐름도(1700)를 도시한다.Figure 17 illustrates a flow diagram 1700 of an electronic device that determines a backhaul failure based on at least one of a state of a transport protocol and a count of a transport protocol in accordance with various embodiments of the present invention.
도 18은 본 발명의 다양한 실시예들에 따른 백홀 실패를 나타내는 전자 장치의 인터페이스의 예시(1800)를 도시한다.18 shows an example 1800 of an interface of an electronic device that represents a backhaul failure in accordance with various embodiments of the present invention.
도 19는 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 총 카운트와 커넥션 설정 카운트에 기반하여 백홀 실패를 결정하는 전자 장치의 흐름도(1900)를 도시한다.19 illustrates a flow diagram 1900 of an electronic device that determines a backhaul failure based on a total count of connection and a connection establishment count in accordance with various embodiments of the present invention.
도 20은 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 총 카운트와 커넥션 설정 카운트에 기반하여 백홀 실패를 결정하는 예시를 나타내는 그래프(2000)를 도시한다.Figure 20 shows a
도 21은 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 재전송 상태에 기반하여 백홀 실패를 결정하는 전자 장치의 흐름도(2100)를 도시한다.21 shows a flow diagram 2100 of an electronic device for determining a backhaul failure based on a retransmission state of a transmission protocol according to various embodiments of the present invention.
도 22a는 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 재전송 상태에 기반하여 백홀 실패를 결정하는 예시를 나타내는 그래프(2200)를 도시한다.22A illustrates a
도 22b는 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 재전송 상태에 기반하여 백홀 실패를 결정하는 예시를 나타내는 시퀀스 다이어그램 (2250)을 도시한다.Figure 22B shows a sequence diagram 2250 illustrating an example of determining a backhaul failure based on the retransmission state of a transport protocol in accordance with various embodiments of the present invention.
도 23은 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 수신 에러에 기반하여 백홀 실패를 결정하는 전자 장치의 흐름도(2300)를 도시한다.23 shows a flow diagram 2300 of an electronic device for determining a backhaul failure based on a reception error of a transmission protocol according to various embodiments of the present invention.
도 24a는 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 수신 에러에 기반하여 백홀 실패를 결정하는 예시를 나타내는 그래프(2400)를 도시한다.24A illustrates a
도 24b는 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 수신 에러에 기반하여 백홀 실패를 결정하는 예시를 나타내는 시퀀스 다이어그램(2450)를 도시한다.24B illustrates a sequence diagram 2450 illustrating an example of determining a backhaul failure based on a reception error of a transmission protocol in accordance with various embodiments of the present invention.
도 25는 본 발명의 다양한 실시예들에 따른 백홀 실패 및 네트워크 변경 지시자를 표시하는 전자 장치의 흐름도(2500)를 도시한다.25 shows a flow diagram 2500 of an electronic device for indicating a backhaul failure and a network change indicator in accordance with various embodiments of the present invention.
도 26은 본 발명의 다양한 실시예들에 따른 백홀 실패 시 네트워크 변경 지시자를 표시하는 전자 장치의 인터페이스의 예시(2600)를 도시한다.26 illustrates an
도 27은 본 발명의 다양한 실시예들에 따른 백홀 실패 시 다른 AP(access point)로의 변경을 표시하는 전자 장치의 인터페이스의 예시(2700)를 도시한다.FIG. 27 illustrates an
도 28은 본 발명의 다양한 실시예들에 따른 백홀 실패 시 네트워크 변경 지시자를 옵션으로 표시하는 전자 장치의 인터페이스의 예시(2800)를 도시한다.28 illustrates an example of an
도 29는 본 발명의 다양한 실시예들에 따른 백홀 실패를 다른 전자 장치들과 공유하는 전자 장치의 흐름도(2900)를 도시한다.29 shows a flow diagram 2900 of an electronic device sharing a backhaul failure with other electronic devices in accordance with various embodiments of the present invention.
도 30a는 본 발명의 다양한 실시예들에 따른 백홀 실패 시 동일한 AP에 연결된 다른 전자 장치와 백홀 실패를 공유하는 예시(3010)를 도시한다.30A illustrates an example 3010 of sharing a backhaul failure with another electronic device connected to the same AP upon a backhaul failure according to various embodiments of the present invention.
도 30b는 본 발명의 다양한 실시예들에 따른 백홀 실패 시 동일한 AP에 연결된 다른 전자 장치와 백홀 실패를 공유하는 예시(3020)를 도시한다.Figure 30B illustrates an example 3020 of sharing a backhaul failure with another electronic device connected to the same AP upon a backhaul failure according to various embodiments of the present invention.
도 31은 본 발명의 다양한 실시예들에 따른 백홀 실패와 관련된 정보를 저장하고, 서비스를 제공하는 전자 장치의 흐름도(3100)를 도시한다.31 shows a flow diagram 3100 of an electronic device that stores and provides information related to backhaul failures in accordance with various embodiments of the present invention.
도 32는 본 발명의 다양한 실시예들에 따른 백홀 실패를 검사 및 백홀 실패에 대한 제어를 수행하기 위한 전자 장치의 흐름도(3200)를 도시한다.32 shows a flow diagram 3200 of an electronic device for checking backhaul failures and performing control over backhaul failures in accordance with various embodiments of the present invention.
도 33은 본 발명의 다양한 실시예들에 따른 백홀 상태를 검사하기 위한 구현 과정을 나타내는 전자 장치의 흐름도(330)를 도시한다.33 shows a flow diagram 330 of an electronic device illustrating an implementation for examining a backhaul condition in accordance with various embodiments of the present invention.
도 34는 본 발명의 다양한 실시예들에 따른 임계값을 획득하기 위한 전자 장치의 흐름도(3400)를 도시한다.34 illustrates a flow diagram 3400 of an electronic device for obtaining a threshold according to various embodiments of the present invention.
도 35는 본 발명의 다양한 실시예들에 따른 RSSI(received signal strength indication) 임계값을 획득하기 위한 전자 장치의 흐름도(3500)를 도시한다.35 shows a flow diagram 3500 of an electronic device for obtaining a received signal strength indication (RSSI) threshold according to various embodiments of the present invention.
도 36은 본 발명의 다양한 실시예들에 따른 새로운 커넥션 설정 상태 및 시간 대기 상태를 검사하기 위한 전자 장치의 흐름도(3600)를 도시한다.36 shows a flow diagram 3600 of an electronic device for checking a new connection establishment state and a time waiting state in accordance with various embodiments of the present invention.
도 37은 본 발명의 다양한 실시예들에 따른 인세그먼트 에러와 아웃세그먼트 에러를 검사하기 위한 전자 장치의 흐름도(3700)를 도시한다.Figure 37 shows a flow diagram 3700 of an electronic device for inspecting in-segment and out-segment errors in accordance with various embodiments of the present invention.
도 38은 본 발명의 다양한 실시예들에 따른 재전송 세그먼트를 검사하기 위한 전자 장치의 흐름도(3800)를 도시한다.38 shows a flow diagram 3800 of an electronic device for inspecting a retransmission segment in accordance with various embodiments of the present invention.
도 39는 본 발명의 다양한 실시예들에 따른 백홀 상태를 검사하기 위한 전자 장치의 흐름도(3900)를 도시한다.Figure 39 shows a flow diagram 3900 of an electronic device for checking the state of a backhaul in accordance with various embodiments of the present invention.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. Hereinafter, various embodiments of the present document will be described with reference to the accompanying drawings.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다1 is a block diagram of an
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)은 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. The coprocessor 123 may be configured to execute on behalf of the
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. Memory 130 may store various data used by at least one component (e.g.,
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142, middleware 144,
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)은, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다. The
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150) 를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)) (예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.The audio module 170 may convert the sound into an electrical signal or vice versa. According to one embodiment, the audio module 170 is configured to acquire sound through the
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The
인터페이스(177)는 전자 장치(101)이 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)은, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal 178 may include a connector through which the
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다. The communication module 190 may be a direct (e.g., wired) communication channel between the
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 안테나 모듈은, 일실시예에 따르면, 도전체 또는 도전성 패턴으로 형성될 수 있고, 어떤 실시예에 따르면, 도전체 또는 도전성 패턴 이외에 추가적으로 다른 부품(예: RFIC)을 더 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 하나 이상의 안테나들을 포함할 수 있고, 이로부터, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다.The
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the components are connected to each other via a communication method (e.g., bus, general purpose input and output, SPI, or mobile industry processor interface (MIPI) For example, commands or data).
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, or 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. According to one embodiment, the command or data may be transmitted or received between the
도 2a는 본 발명의 다양한 실시예들에 따른 전자 장치의 블록도(200)를 도시한다. 예를 들면, 전자 장치는 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 포함할 수 있다.2A illustrates a block diagram 200 of an electronic device according to various embodiments of the present invention. For example, the electronic device may include all or a portion of the
도 2a를 참고하면, 전자 장치(101)는 하나 이상의 프로세서(예: AP)(120)를 포함할 수 있다. 다양한 실시예들에서, 프로세서(120)는 전송 프로토콜 상태 식별부(210), 통신 상태 결정부(220) 및 네트워크 변경부(230)를 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 일부 구성 요소가 생략될 수 있다. 발명의 일 실시예에 따르면, 상기 전송 프로토콜 상태 식별부(210), 통신 상태 결정부(220) 및 네트워크 변경부(230)는 상기 프로세서(120)의 외부에 별도의 하드웨어 또는 소프트웨어로서 구성된 모듈로서 구성될 수 있다.2A, the
전송 프로토콜 상태 식별부(210)는 전자 장치의 통신 상태를 결정하기 위해 전송 프로토콜의 상태를 식별할 수 있다. 본 발명의 다양한 실시예들에서, 전송 프토토콜은 TCP(transmission control protocol)를 포함할 수 있다. TCP는 커넥션(connection) 지향 통신을 제공하고, 커넥션 지향 통신에서는 데이터 통신을 시작하기 전에 먼저 통신 상대와 통신을 시작할 준비를 마친 후, 통신을 수행할 수 있다. TCP는 이러한 커넥션 과정에서 다양한 소켓(socket) 상태를 나타낼 수 있고, 전자 장치는 동적으로 변하는 TCP 소켓 상태를 식별할 수 있다. The transport protocol
다양한 실시예들에서, 통신 상태 결정부(220)는 식별된 TCP 소켓 상태에 기반하여 전자 장치의 통신 상태를 결정할 수 있다. 예를 들어, 통신 상태는 전자 장치의 데이터 송신 및 수신 신호 강도, 네트워크 방화벽에 의한 블락 등의 상태를 포함할 수 있다. 다양한 실시예들에서, TCP 소켓 상태에 따라 통신 상태를 결정하기 위해 미리 정의된 테이블은 메모리(130)에 저장될 수 있다. 다양한 실시예들에서, 통신 상태는 부족 상태(poor state), 양호 상태(good state), 블락 상태(blocked state) 및 부진 상태(sluggish state)를 포함할 수 있다. 다양한 실시예들에서, 통신 상태는 인터넷 서비스 품질을 의미할 수 있다. 예를 들면, 사용자가 인터넷이 필요한 애플리케이션을 원활하게 사용할 수 있는 경우, 프로세서(120)는 인터넷 서비스 품질이 양호한 것으로 판단하고, 통신 상태를 양호 상태로 결정할 수 있다. 사용자가 인터넷이 필요한 애플리케이션을 원활하게 사용할 수 없는 경우, 프로세서(120)는 인터넷 서비스 품질이 나쁜 것으로 판단하고, 통신 상태를 부족 상태로 결정할 수 있다.In various embodiments, the communication
다양한 실시예들에서, 네트워크 변경부(230)는 결정된 통신 상태에 기반하여 전자 장치가 연결된 네트워크를 변경할 수 있다. 예를 들어, 전자 장치의 통신 상태가 블락 상태인 경우, 와이파이 네트워크 환경이 양호하나, 방화벽에 의해 블락된 경우이므로, 네트워크 변경부(230)는 와이파이에서 셀룰러 네트워크로 네트워크 변경을 수행할 수 있다. 다른 예를 들면, 일부 국가에서는 셀룰러 네트워크 환경에서도 특정 앱을 이용할 수 있는 권한이 방화벽에 의해 블락될 수 있다. 그러므로, 네트워크 변경부(230)는 이러한 블락 상태를 사용자에게 통지하고, 셀룰러 네트워크에서 와이파이로 네트워크 변경을 수행할 수 있다.In various embodiments, the
다양한 실시예들에서, 프로세서(120)는 네트워크 품질 측정 만으로는 방화벽에 의해 특정 애플리케이션이 블락되는 것을 검출할 수 없으므로, 전송 계층 프로토콜의 소켓의 상태를 검출함으로써 네트워크 변경을 수행할 수 있다. 예를 들어, 전송 계층 프로토콜은 UDP(user datagram protocol) 및 TCP 등을 포함할 수 있다. 이 중 TCP는 네트워크의 정보 전달을 통제하는 프로토콜로서, 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터 또는 스마트폰에서 실행되는 프로그램 간에 일련의 옥탯을 안정적으로, 순서대로, 에러 없이 교환할 수 있도록 한다. 상술한 소켓은 통신을 수행하는 복수의 엔티티들(entities) 간 통신을 연결하는 종점(endpoint)일 수 있다. 모든 애플리케이션들은 데이터를 송신 및 수신하기 위해 소켓들을 이용하므로, 다른 전자 장치와 상호 작용(interacting)하는 응용 애플리케이션들은 소켓 패턴(socket pattern)을 생성할 수 있다. 본 발명의 다양한 실시예에서, 프로세서(120)는 전자 장치의 통신 상태를 검출하기 위해 소켓 패턴을 이용할 수 있다. 통신 상태는 전자 장치를 사용하는 사용자의 사용자 경험을 포함할 수 있다. 예를 들어, 사용자 경험은 전자 장치의 데이터 송신 및 수신 신호 강도, 네트워크 방화벽에 의한 블락 등의 상태를 포함할 수 있다. 다양한 실시예들에서, 프로세서(120)는 TCP 소켓의 상태를 식별하고, 식별된 TCP 소켓의 상태에 기반하여 통신 상태를 결정할 수 있다. 통신 상태가 결정된 후, 프로세서(120)는 결정된 통신 상태에 기반하여 네트워크를 변경할 수 있다. 예를 들어, 와이파이에서 셀룰러 네트워크로 변경할 수 있다.In various embodiments, the
다양한 실시예들에서, 전자 장치(101)는 통신 모듈(190), 프로세서(120) 및 프로세서(120)와 작동적으로 연결된 메모리(130)를 포함할 수 있다. 메모리(130)는, 실행될 때 프로세서(120)로 하여금, 전송 프로토콜(transport protocol)의 상태를 식별하고, 식별된 전송 프로토콜의 상태에 기반하여 전자 장치(101)의 통신 상태를 결정하고, 결정된 전자 장치(101)의 통신 상태에 기반하여 네트워크를 변경하도록 하는 인스트럭션들을 저장할 수 있다. 일 실시예에서, 전송 프로토콜의 상태는 전자 장치(101)에서 실행되는 애플리케이션의 TCP 소켓의 상태를 포함할 수 있다. 일 실시예에서, 전자 장치(101)의 통신 상태는, 양호(good) 상태, 부족(poor) 상태, 블락(blocked) 상태 및 부진(sluggish) 상태 중 적어도 하나로 결정될 수 있다.In various embodiments, the
일 실시예에서, 전자 장치(101)의 메모리(130)에 저장된 인스트럭션들은, 적어도 하나의 프로세서(101)로 하여금, 커넥션 설정을 위한 TCP 소켓을 검출하고, TCP 소켓의 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되는지 여부를 식별하고, 전자 장치(101)에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 큰지 여부를 식별하고, TCP 소켓의 상태가 커넥션 해제 대기 상태 및 시간 대기 상태인지 여부를 식별하고, 커넥션 설정을 위한 TCP 소켓이 검출되고, TCP 소켓의 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되고, 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 크고, 커넥션 해제 대기 상태 및 시간 대기 상태가 식별 되는 경우, 전자 장치(101)의 통신 상태를 양호 상태로 결정하도록 할 수 있다.In one embodiment, the instructions stored in the memory 130 of the
일 실시예에서, 전자 장치(101)의 메모리(130)에 저장된 인스트럭션들은, 프로세서(120)로 하여금, 전자 장치(101)의 통신 상태가 양호 상태인지 여부를 식별하고, 커넥션 설정을 위한 TCP 소켓을 검출하고, TCP 소켓의 상태가 커넥션 설정 요청 상태인지 여부를 식별하고, 전자 장치(101)에서 실행되는 애플리케이션의 송신 데이터 패킷의 개수가 수신 데이터 패킷의 개수보다 많은지 여부를 식별하고, 통신 상태가 양호 상태가 아니고, 커넥션 설정을 위한 TCP 소켓이 검출되고, 커넥션 설정 요청 상태가 식별되고, 송신 데이터 패킷의 개수가 수신 데이터 패킷의 개수보다 많은 경우, 전자 장치(101)의 통신 상태를 부족 상태로 결정하도록 할 수 있다.The instructions stored in the memory 130 of the
일 실시예에서, 전자 장치(101)의 메모리(130)에 저장된 인스트럭션들은, 프로세서(120)로 하여금, 재전송을 수행하는 TCP 소켓을 검출하고, 전자 장치(101)에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 개수가 임계치보다 작은지 여부를 식별하고, 전자 장치(101)의 링크 속도(link speed), SNR(signal) 및 RSSI(received signal strength indication)가 임계치보다 큰지 여부를 식별하고, 재전송을 수행하는 TCP 소켓이 감출되고, 송신 데이터 패킷 및 수신 데이터 패킷의 개수가 임계치보다 작고, 링크 속도, SNR 및 RSSI가 임계치보다 큰 경우, 전자 장치(101)의 통신 상태를 블락 상태로 결정하도록 할 수 있다. 일 실시예에서, 블락 상태는, 전자 장치(101)에서 실행되는 애플리케이션이 네트워크 방화벽에 의해 블락되는 상태를 포함할 수 있다.In one embodiment, the instructions stored in memory 130 of
일 실시예에서, 전자 장치(101)의 메모리(130)에 저장된 인스트럭션들은, 프로세서(120)로 하여금, 커넥션 설정을 위한 TCP 소켓을 검출하고, TCP 소켓의 상태가 새로운 커넥션 설정 요청 상태인지 여부를 식별하고, 전자 장치(101)에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 작은지 여부를 식별하고, 커넥션 설정을 위한 TCP 소켓이 검출되고, 새로운 커넥션 설정 요청 상태가 식별되고, 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 작은 경우, 전자 장치(101)의 통신 상태를 부진 상태로 결정하도록 할 수 있다.In one embodiment, the instructions stored in memory 130 of
도 2b는, 다양한 실시예들에 따른, 전자 장치(101)의 무선 통신 모듈(192), 전력 관리 모듈(188), 및 안테나 모듈(197)에 대한 블럭도(200)이다. 도 2을 참조하면, 무선 통신 모듈(192)은 MST 통신 모듈(250) 또는 NFC 통신 모듈(260)을 포함하고, 전력 관리 모듈(188)은 무선 충전 모듈(270)을 포함할 수 있다. 이런 경우, 안테나 모듈(297)은 MST 통신 모듈(250)과 연결된 MST 안테나(297-1), NFC 통신 모듈(260)과 연결된 NFC 안테나(297-3), 및 무선 충전 모듈(270)과 연결된 무선 충전 안테나(297-5)을 포함하는 복수의 안테나들을 포함할 수 있다. 설명의 편의를 위해 도 1와 중복되는 구성 요소는 생략 또는 간략히 기재된다.2B is a block diagram 200 of a
MST 통신 모듈(250)은 프로세서(120)로부터 제어 정보, 또는 카드 정보와 같은 결제 정보를 포함한 신호를 수신하고, MST 안테나(297-1)를 통해 상기 수신된 신호에 대응하는 자기 신호를 생성한 후, 상기 생성된 자기 신호를 외부의 전자 장치(102)(예: POS 장치)에 전달할 수 있다. 상기 자기 신호를 생성하기 위하여, 일실시예에 따르면, MST 통신 모듈(250)은 MST 안테나(297-1)에 연결된 하나 이상의 스위치들을 포함하는 스위칭 모듈을 포함하고(미도시), 이 스위칭 모듈을 제어하여 MST 안테나(297-1)에 공급되는 전압 또는 전류의 방향을 상기 수신된 신호에 따라 변경할 수 있다. 상기 전압 또는 전류의 방향의 변경은 MST 안테나(297-1)를 통해 송출되는 자기 신호(예: 자기장)의 방향이 그에 따라 변경하는 것을 가능하게 해 준다. 방향이 변경되는 상태의 자기 신호는, 외부의 전자 장치(102)에서 감지되면, 상기 수신된 신호(예: 카드 정보)에 대응하는 마그네틱 카드가 상기 전자 장치(102)의 카드 리더기에 읽히면서(swiped) 발생하는 자기장과 유사한 효과(예: 파형)를 야기할 수 있다. 일실시예에 따르면, 전자 장치(102)에서 상기 자기 신호의 형태로 수신된 결제 관련 정보 및 제어 신호는, 예를 들면, 네트 워크(199)를 통해 외부의 서버(108)(예: 결제 서버)로 송신될 수 있다.The
NFC 통신 모듈(260)은 프로세서(120)로부터 제어 정보, 또는 카드 정보와 같은 결제 정보를 포함한 신호를 획득하고, 상기 획득된 신호를 NFC 안테나(297-3)를 통해 외부의 전자 장치(102)로 송신할 수 있다. 일실시예에 따르면, NFC 통신 모듈(260)은, NFC 안테나(297-3)을 통하여 외부의 전자 장치(102)로부터 송출된 그런 신호를 수신할 수 있다. The
무선 충전 모듈(270)은 무선 충전 안테나(297-5)를 통해 외부의 전자 장치(102)(예: 휴대폰 또는 웨어러블 디바이스)로 전력을 무선으로 송신하거나, 또는 외부의 전자 장치(102)(예: 무선 충전 장치)로부터 전력을 무선으로 수신할 수 있다. 무선 충전 모듈(270)은, 예를 들면, 자기 공명 방식 또는 자기 유도 방식을 포함하는 다양한 무선 충전 방식 중 하나 이상을 지원할 수 있다. The
일실시예에 따르면, MST 안테나(297-1), NFC 안테나(297-3), 또는 무선 충전 안테나(297-5) 중 일부 안테나들은 방사부의 적어도 일부를 서로 공유할 수 있다. 예를 들면, MST 안테나(297-1)의 방사부는 NFC 안테나(297-3) 또는 무선 충전 안테나(297-5)의 방사부로 사용될 수 있고, 그 반대도 마찬가지이다. 이런 경우, 안테나 모듈(297)은 무선 통신 모듈(192)(예: MST 통신 모듈(250) 또는 NFC 통신 모듈(260)) 또는 전력 관리 모듈(188)(예: 무선 충전 모듈(270))의 제어에 따라 안테나들(297-1, 297-3, 또는 297-3)의 적어도 일부를 선택적으로 연결(예: close) 또는 분리(예: open)하도록 설정된 스위칭 회로(미도시)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 무선 충전 기능을 사용하는 경우, NFC 통신 모듈(260) 또는 무선 충전 모듈(270)은 상기 스위칭 회로를 제어함으로써 NFC 안테나(297-3) 및 무선 충전 안테나(297-5)에 의해 공유된 방사부의 적어도 일부 영역을 일시적으로 NFC 안테나(297-3)와 분리하고 무선 충전 안테나(297-5)와 연결할 수 있다.According to one embodiment, some of the MST antenna 297-1, the NFC antenna 297-3, or the wireless charging antenna 297-5 may share at least a portion of the radiating part with each other. For example, the radiating portion of the MST antenna 297-1 can be used as the radiating portion of the NFC antenna 297-3 or the wireless charging antenna 297-5, and vice versa. In this case, the antenna module 297 may be coupled to the wireless communication module 192 (e.g., the
일실시예에 따르면, MST 통신 모듈(250), NFC 통신 모듈(260), 또는 무선 충전 모듈(270)의 적어도 하나의 기능은 외부의 프로세서(예: 프로세서(120))에 의해 제어될 수 있다. 일실시예에 따르면, MST 통신 모듈(250) 또는 NFC 통신 모듈(260)의 지정된 기능(예: 결제 기능)들은 신뢰된 실행 환경(trusted execution environment, TEE)에서 수행될 수 있다. 다양한 실시예에 따른 신뢰된 실행 환경(TEE)은, 예를 들면, 상대적으로 높은 수준의 보안이 필요한 기능(예: 금융 거래, 또는 개인 정보 관련 기능)을 수행하는데 사용되기 위해 메모리(130)의 적어도 일부 지정된 영역이 할당되는 실행 환경을 형성할 수 있다. 이런 경우, 상기 지정된 영역에 대한 접근은, 예를 들면, 거기에 접근하는 주체 또는 상기 신뢰된 실행 환경에서 실행되는 어플리케이션에 따라 구분하여 제한적으로 허용될 수 있다.According to one embodiment, at least one function of
다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(101))는, 통신 모듈(예: 도 1의 통신 모듈(190)), 적어도 하나의 프로세서(예: 도 1의 프로세서(120)), 상기 적어도 하나의 프로세서와 작동적으로 연결된 메모리(예: 도 1의 메모리(130))를 포함하며, 상기 메모리(130)는, 실행될 때 상기 적어도 하나의 프로세서(120)로 하여금, 전송 프로토콜(transport protocol)의 상태를 식별하고, 상기 전송 프로토콜의 상태에 기반하여 전자 장치(101)의 통신 상태를 결정하고, 상기 통신 상태에 기반하여 네트워크를 변경하도록 하는 인스트럭션들을 저장할 수 있다.1) may include a communication module (e.g., communication module 190 of FIG. 1), at least one processor (e.g.,
다양한 실시예에서, 상기 전송 프로토콜의 상태는 상기 전자 장치에서 실행되는 애플리케이션의 TCP(transmission control protocol) 소켓의 상태를 포함할 수 있다.In various embodiments, the state of the transport protocol may include a state of a transmission control protocol (TCP) socket of an application executing in the electronic device.
다양한 실시예에서, 상기 통신 상태는 양호(good) 상태, 부족(poor) 상태, 블락(blocked) 상태 및 부진(sluggish) 상태 중 적어도 하나로 결정될 수 있다.In various embodiments, the communication state may be determined to be at least one of a good state, a poor state, a blocked state, and a sluggish state.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 커넥션 설정을 위한 TCP 소켓을 검출하고, 상기 TCP 소켓의 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되는지 여부를 식별하고, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 큰지 여부를 식별하고, 상기 TCP 소켓의 상태가 커넥션 해제 대기 상태 및 시간 대기 상태인지 여부를 식별하고, 상기 커넥션 설정을 위한 TCP 소켓이 검출되고, 상기 TCP 소켓의 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되고, 상기 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 크고, 상기 커넥션 해제 대기 상태 및 시간 대기 상태가 식별 되면, 상기 통신 상태를 상기 양호 상태로 결정하도록 할 수 있다.In various embodiments, the instructions cause the at least one processor to detect a TCP socket for connection establishment, identify whether the state of the TCP socket changes from a connection establishment request state to a connection establishment state, Identifying whether a sum of a transmission data packet and a reception data packet of an application executed in an electronic device is larger than a threshold value, identifying whether the state of the TCP socket is a connection release waiting state and a time waiting state, A TCP socket is detected, a state of the TCP socket is changed from a connection setting request state to a connection setting state, a sum of the transmission data packet and the reception data packet is larger than a threshold, and the connection release waiting state and the time waiting state are identified , The communication state is determined to be the good state Can.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 통신 상태가 양호 상태인지 여부를 식별하고, 커넥션 설정을 위한 TCP 소켓을 검출하고, 상기 TCP 소켓의 상태가 커넥션 설정 요청 상태인지 여부를 식별하고, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷의 개수가 수신 데이터 패킷의 개수보다 많은지 여부를 식별하고, 상기 통신 상태가 양호 상태가 아니고, 상기 커넥션 설정을 위한 TCP 소켓이 검출되고, 상기 커넥션 설정 요청 상태가 식별되고, 상기 송신 데이터 패킷의 개수가 상기 수신 데이터 패킷의 개수보다 많으면, 상기 통신 상태를 상기 부족 상태로 결정하도록 할 수 있다.In various embodiments, the instructions further cause the at least one processor to identify whether the communication state is in a good state, detect a TCP socket for connection establishment, determine whether the state of the TCP socket is a connection establishment request state And identifies whether or not the number of transmission data packets of an application executed in the electronic device is greater than the number of received data packets, and if the communication state is not a good state and a TCP socket for connection setting is detected , The connection establishment request status is identified, and if the number of transmission data packets is larger than the number of the reception data packets, the communication status can be determined as the shortage status.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 재전송을 수행하는 TCP 소켓을 검출하고, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 개수가 임계치보다 작은지 여부를 식별하고, 상기 전자 장치의 링크 속도(link speed), SNR(signal) 및 RSSI(received signal strength indication)가 임계치보다 큰지 여부를 식별하고, 상기 재전송을 수행하는 TCP 소켓이 감출되고, 상기 송신 데이터 패킷 및 상기 수신 데이터 패킷의 개수가 임계치보다 작고, 상기 링크 속도, SNR 및 RSSI가 임계치보다 크면, 상기 통신 상태를 블락 상태로 결정하도록 할 수 있다.In various embodiments, the instructions cause the at least one processor to detect a TCP socket performing retransmission and to determine whether the number of transmit and receive data packets of the application running on the electronic device is less than a threshold Identifies whether the link speed, SNR (signal) and received signal strength indication (RSSI) of the electronic device is greater than a threshold value, discovers a TCP socket performing the retransmission, The communication state may be determined as a block state if the number of packets and the number of the received data packets is smaller than a threshold value and the link speed, SNR and RSSI are larger than a threshold value.
다양한 실시예에서, 상기 블락 상태는, 상기 전자 장치에서 실행되는 애플리케이션이 네트워크 방화벽(firewall)에 의해 블락(blocked)되는 상태를 포함할 수 있다.In various embodiments, the block state may include a state in which an application running in the electronic device is blocked by a network firewall.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 커넥션 설정을 위한 TCP 소켓을 검출하고, 상기 TCP 소켓의 상태가 새로운 커넥션 설정 요청 상태인지 여부를 식별하고, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 작은지 여부를 식별하고, 상기 커넥션 설정을 위한 TCP 소켓이 검출되고, 상기 새로운 커넥션 설정 요청 상태가 식별되고, 상기 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 작으면, 상기 통신 상태를 상기 부진 상태로 결정하도록 할 수 있다.In various embodiments, the instructions cause the at least one processor to detect a TCP socket for connection establishment, to identify whether the state of the TCP socket is a new connection establishment request state, Identifying whether a sum of transmit data packets and receive data packets of the application is less than a threshold, detecting a TCP socket for the connection establishment, identifying the new connection establishment request status, It is possible to determine the communication state to be the slow state.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 통신 상태를 상기 전자 장치에 표시하고, 상기 통신 상태에 기반하여 네트워크 변경에 대한 정보를 포함하는 메시지를 상기 전자 장치에 표시하도록 할 수 있다.In various embodiments, the instructions cause the at least one processor to display the communication state on the electronic device and to display a message on the electronic device based on the communication state, can do.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 전송 프로토콜의 상태 및 상기 전송 프로토콜의 카운트 중 적어도 하나를 확인하고, 상기 확인된 전송 프로토콜의 상태 및 상기 전송 프로토콜의 카운트 중 적어도 하나에 기반하여 백홀 실패(backhaul failure)를 결정하고, 상기 결정된 백홀 실패에 기반하여 상기 백홀 실패에 대한 제어를 수행하도록 할 수 있다.In various embodiments, the instructions cause the at least one processor to acknowledge at least one of a state of the transport protocol and a count of the transport protocol, and determine at least one of a state of the acknowledged transport protocol and a count of the transport protocol And determine a backhaul failure based on the determined backhaul failure and perform control on the backhaul failure based on the determined backhaul failure.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 전송 프로토콜의 총 카운트가 임계값 이상인 것을 확인하고, 상기 전송 프로토콜의 커넥션 설정 카운트가 유지 또는 감소되는 것을 확인하고, 상기 확인된 결과들에 기반하여 상기 백홀 실패를 결정하도록 할 수 있다.In various embodiments, the instructions cause the at least one processor to verify that the total count of the transport protocol is greater than or equal to a threshold, to ensure that the connection establishment count of the transport protocol is maintained or reduced, And determine the backhaul failure based on the results.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 개수가 임계값 이하인 것을 확인하고, 상기 확인된 결과에 기반하여 상기 백홀 실패를 결정하도록 할 수 있다.In various embodiments, the instructions cause the at least one processor to verify that the number of transmit data packets and receive data packets of an application executing in the electronic device is less than or equal to a threshold value, To determine the backhaul failure.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 전송 프로토콜의 재전송 세그먼트가 임계값 이상인 것을 확인하고, 상기 확인된 결과에 기반하여 상기 백홀 실패를 결정하도록 할 수 있다.In various embodiments, the instructions may cause the at least one processor to determine that a retransmission segment of the transport protocol is above a threshold, and to determine the backhaul failure based on the determined result.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 전송 프로토콜의 수신 세그먼트의 에러가 발생한 것을 확인하고, 상기 확인된 결과들에 기반하여 상기 백홀 실패를 결정하도록 할 수 있다.In various embodiments, the instructions may cause the at least one processor to determine that an error has occurred in a received segment of the transport protocol and to determine the backhaul failure based on the determined results.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 백홀 실패에 대한 정보를 표시하고, 상기 백홀 실패에 기반하여 네트워크를 변경하기 위한 지시자를 표시하도록 할 수 있다.In various embodiments, the instructions may cause the at least one processor to display information about the backhaul failure and to display an indicator for modifying the network based on the backhaul failure.
다양한 실시예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서로 하여금, 상기 백홀 실패에 대한 정보를 송신할 외부 장치를 식별하고, 상기 식별된 외부 장치로 상기 백홀 실패에 대한 정보를 송신하도록 할 수 있다.In various embodiments, the instructions may cause the at least one processor to identify an external device to send information about the backhaul failure and to transmit information about the backhaul failure to the identified external device .
도 3은 본 발명의 다양한 실시예들에 따른 전자 장치의 흐름도(300)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 예시된 흐름도(300)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 3 shows a flow diagram 300 of an electronic device according to various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. The operating entity of the illustrated
도 3을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 301에서 네트워크 상태를 식별할 수 있다. 일 실시예에서, 네트워크 상태는 전자 장치(101)의 통신 상태 또는 백홀 상태를 포함할 수 있다. 일 실시예에서, 전자 장치(101)의 통신 상태는 부족 상태(poor state), 양호 상태(good state), 블락 상태(blocked state) 및 부진 상태(sluggish state)를 포함할 수 있다. 프로세서(120)는 전송 프로토콜 상태(즉, TCP 소켓 상태)를 식별함으로써 상술한 전자 장치(101)의 통신 상태를 결정할 수 있다. 일 실시예에서, 전자 장치(101)의 백홀 상태는, 전자 장치(101)가 외부 통신 장치(예: AP)를 통해 통신(예: Wi-Fi)하는 경우, 해당 외부 통신 장치와 인터넷(예: 클라우드)이 연결된 백홀 연결(backhaul connection) 상태 또는 해당 외부 통신 장치와 인터넷이 연결되지 않은 백홀 연결 실패(backhaul connection failure) 상태를 포함할 수 있다. 다양한 실시예들에서 백홀 연결 실패 상태는 백홀 실패로 지칭될 수 있다.Referring to FIG. 3, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 303에서, 식별된 네트워크 상태에 기반하여 전자 장치를 제어할 수 있다. 예를 들면, 식별된 네트워크 상태가 상술한 통신 상태 중 하나에 해당하는 경우, 프로세서(120)는 결정된 통신 상태를 전자 장치(101)의 디스플레이(예: 도 1의 표시 장치(160))에 표시할 수 있다. 식별된 네트워크 상태가 백홀 실패에 해당하는 경우, 프로세서(120)는 백홀 실패 상태를 표시 장치(160)에 표시하거나, 사용자가 다른 네트워크(예: 셀룰러 네트워크)로의 변경 여부를 선택할 수 있도록 네트워크 변경 지시자를 표시 장치(160)에 표시할 수 있다. 일 실시예에서, 프로세서(120)는 식별된 네트워크 상태가 백홀 실패에 해당하는 경우, 식별된 백홀 실패 상태를 표시 장치(160)에 표시하거나, 또는 표시하지 아니하고, 자동으로 다른 네트워크로의 변경을 수행할 수 있다. 일 실시예에서, 백홀 실패에 따른 다른 네트워크로의 변경은, 사용자가 선택할 수 있는 옵션으로 제공될 수 있다. 예를 들면, 프로세서(120)가 백홀 실패를 식별하는 경우 자동으로 다른 네트워크로 변경될 수 있음을 나타내는 옵션이 사용자에 의해 활성화되는 경우, 프로세서(120)는 식별된 백홀 실패 상태를 표시 장치(160)에 표시하거나, 또는 표시하지 아니하고, 자동으로 다른 네트워크로의 변경을 수행할 수 있다. 옵션이 비활성화된 경우, 프로세서(120)는 자동으로 다른 네트워크로의 변경을 수행하지 않을 수 있다.According to various embodiments, the
다양한 실시예들에서, 전송 프로토콜 상태를 식별함으로써 전자 장치의 통신 상태를 결정하고, 결정된 통신 상태에 기반하여 네트워크 변경을 수행하는 과정 및 예시가 후술하는 도 4 내지 도 15b에서 설명된다.In various embodiments, a process and an example of determining a communication state of an electronic device by identifying a transmission protocol state and performing a network change based on the determined communication state are described in FIGS. 4 to 15B, described below.
도 4는 본 발명의 다양한 실시예들에 따른 전자 장치의 흐름도를 도시한다. 4 shows a flow diagram of an electronic device according to various embodiments of the present invention.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 4의 동작 401 및 403은 도 3의 동작 301의 일부이고, 도 4의 동작 405는 도 3의 동작 303의 일부로서, 예시된 흐름도(400)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 4 is part of
도 4를 참고하면, 동작 401에서, 프로세서(120)는 전송 프로토콜 상태를 식별할 수 있다. 본 발명의 일 실시예에 따르면, 프로세서(120)는 TCP 소켓 상태를 식별할 수 있다. 예를 들면, TCP가 지향하는 커넥션 지향 통신의 경우, 데이터 통신을 시작하기 전에 먼저 클라이언트(client) 및 서버(server)간 통신을 위한 사전 준비가 수행될 수 있다. 이러한 사전 준비 과정에서, TCP 소켓 상태가 동적으로 변할 수 있다. 예를 들어, TCP 소켓 상태는 커넥션 설정 요청(SYN_SENT), 커넥션 설정(ESTABLISHED) 및 커넥션 해제(FIN_WAIT)등을 포함할 수 있다. 프로세서(120)는 TCP 소켓 상태가 상술한 상태들로 변경되는 것을 식별할 수 있다. TCP 소캣 상태 변화의 일반적인 동작은 도 5와 같이 나타낼 수 있다.4, at
동작 403에서, 프로세서(120)는 식별된 전송 프로토콜 상태에 기반하여 통신 상태를 결정할 수 있다. 예를 들면, 프로세서(120)는 TCP 소켓 상태를 식별함으로써 전자 장치(101)의 통신 상태를 결정할 수 있다. 다양한 실시예들에서, 통신 상태는 부족 상태(poor state), 양호 상태(good state), 블락 상태(blocked state) 및 부진 상태(sluggish state)를 포함할 수 있다. 이러한 통신 상태들은 TCP 소켓 상태뿐만 아니라, 수신 신호 세기, 링크 속도 등을 함께 고려하여 결정될 수 있다. 이를 통해, 전자 장치(101)는 물리적인 채널 특성 만으로는 식별하기 어려운 다양한 통신 상태를 검출할 수 있다. 예를 들어, 통신 상태가 블락 상태인 경우, 현재 사용 중인 네트워크의 물리적 채널은 우수하지만, 도 6와 같이 통신이 수행되지 않는 상태일 수 있다.At
동작 405에서, 프로세서(120)는 통신 상태에 기반하여 네트워크를 변경할 수 있다. 예를 들면, 프로세서(120)는 결정된 통신 상태가 블락 상태일 경우, 와이파이 네트워크에서 셀룰러 네트워크로 네트워크 변경을 수행할 수 있다. 다양한 실시예들에서, 프로세서(120)는 네트워크를 변경하기 전에, 전자 장치(101)의 표시 장치(160)에, 결정된 통신 상태와, 네트워크 변경 여부를 함께 표시하도록 제어할 수 있다. 다양한 실시예들에서, 프로세서(120)는 사용자의 입력에 기반하여, 또는 특정한 임계치를 기준으로 네트워크 변경을 수행할 수 있다. 상술한 바와 같이, 통신 상태를 측정하여 네트워크 변경을 수행함으로써, 전자 장치(101)는 변경된 네트워크 환경에서 외부 전자 장치들(예: 서버(108), 전자 장치(104))과 통신을 수행할 수 있다.At
다양한 실시예들에서 프로세서(120)는 전송 프로토콜의 상태를 식별하고, 식별된 전송 프로토콜의 상태에 기반하여 전자 장치(101)의 통신 상태를 결정하고, 결정된 통신 상태에 기반하여 네트워크 변경을 수행할 수 있다. 일 실시예에서, 전송 프로토콜의 상태는 전자 장치(101)에서 실행되는 애플리케이션의 TCP 소켓의 상태를 포함할 수 있다. 일 실시예에서, 전자 장치(101)의 통신 상태는, 양호(good) 상태, 부족(poor) 상태, 블락(blocked) 상태 및 부진(sluggish) 상태 중 적어도 하나로 결정될 수 있다. In various embodiments, the
도 5는 본 발명의 다양한 실시예들에 따른 TCP 프로토콜을 사용하여 데이터를 전송하는 시퀀스 다이어그램을 도시한다. 다양한 실시예들에서, 전자 장치는 통신 상태를 검출하기 위해 TCP 소켓 상태를 식별할 수 있다. 도 5에 도시된 바와 같이, TCP 커넥션은 다수의 상태들의 시퀀스(sequence)를 통해 형성될 수 있다. TCP 소켓 상태는 특정한 이벤트에 대응하여 현재 상태에서 다음 상태로 변경될 수 있다. 예를 들면, 서버(503)(예: 서버(108))는 감지(LISTEN)(505) 상태에서, 클라이언트(501)(예: 전자 장치(101))의 TCP 커넥션 설정 요청을 기다릴 수 있다. 클라이언트(501)는 커넥션 설정 요청(SYN_SENT)(407) 상태에서, 커넥션 설정을 요청하는 신호(예: syn 패킷)를 서버(503)로 전송하고, 커넥션 설정 요청이 서버(503)에서 매칭(matching)되기를 기다릴 수 있다. 예를 들어, 클라이언트(501)는 커넥션 설정 요청에 대한 서버(503)의 확인 응답(예: syn+ack 패킷)을 기다릴 수 있다. 서버(503)는 클라이언트(501)로부터 커넥션 설정을 요청하는 신호(예: syn 패킷)를 수신하기 전까지 감지(LISTEN)(505) 상태를 유지할 수 있다. 서버(503)는 커넥션 설정을 요청하는 신호를 수신한 경우, 커넥션 설정 요청 수신(SYN_RECEIVED)(509) 상태로 변경할 수 있다. 서버(503)는 커넥션 설정 요청 수신(SYN_RECEIVED)(509) 상태에서, 커넥션 설정 요청에 대한 확인 응답(예: syn+ack 패킷)을 포함하는 신호를 클라이언트(501)로 전송하고, 커넥션 설정에 대한 확인 응답을 기다릴 수 있다. 클라이언트(501)는 서버(503)로부터 커넥션 설정 요청에 대한 확인 응답(예: syn+ack 패킷)을 수신시 커넥션 설정(ESTABLISHED)(511) 상태로 변경할 수 있다. 클라이언트(501)는 커넥션 설정(ESTABLISHED)(511) 상태에서, 커넥션 설정에 대한 확인 응답(예: ack 패킷)을 서버(503)로 전송할 수 있고, 서버(503)는 클라이언트(501)로부터 확인 응답을 수신한 후, 커넥션 설정 상태(511)가 될 수 있다. 커넥션 설정 상태에서 클라이언트(501)는 커넥션을 개방(open)하고, 서버(503)로 데이터를 송신 및 수신할 수 있다. 다양한 실시예들에서, 커넥션 설정 상태는 클라이언트(501)(예: 전자 장치(101))로 데이터가 전송될 수 있는 정상적인(normal) 상태를 의미할 수 있다. 클라이언트(501)는 제1 커넥션 해제 상태(FIN_WAIT_1)(513)에서, 서버(503)로 커넥션 해제 신호(예: fin 패킷)를 전송할 수 있다. 클라이언트(501)는 커넥션 해제 신호 전송 후, 커넥션 해제 신호에 대한 확인 응답을 기다리거나, 서버(503)로부터 이전에 전송한 커넥션 해제 요청에 대해 확인 응답을 기다릴 수 있다. 서버(503)는 커넥션 해제 신호(예: fin 패킷)를 수신할 경우, 커넥션 해제 대기(CLOSE_WAIT)(515) 상태로 변경될 수 있다. 서버(503)는 클라이언트(501)로부터 수신한 커넥션 해제 신호에 대한 확인 응답(예: ack 패킷)을 클라이언트(501)로 전송할 수 있다. 여기서 클라이언트(501)는 로컬(local) 사용자를 포함할 수 있다. 도 5에 도시되지는 않았지만, 클라이언트(501)가 서버(503)로부터 커넥션 해제 신호에 대한 확인 응답을 기다리는 상태를 클로징(CLOSING) 상태로 정의할 수 있다. 클라이언트(501)는 서버(503)로부터 커넥션 해제 신호에 대한 확인 응답을 수신하는 경우 제2 커넥션 해제 상태(FIN_WAIT_2)(517)로 변경될 수 있다. 서버(503)는 최종 확인 응답(LAST_ACK)(519) 상태에서, 클라이언트(501)로 서버(503)의 커넥션 해제를 나타내는 신호(예: fin 패킷)를 전송하고, 이에 대한 확인 응답을 기다릴 수 있다. 클라이언트(501)는 커넥션 해제를 나타내는 신호(예: fin 패킷)를 수신하는 경우 시간 대기(TIME_WAIT)(521) 상태로 변경될 수 있다. 클라이언트(501)는 시간 대기(TIME_WAIT)(521) 상태에서, 서버(503)로 서버(503)의 커넥션 해제를 나타내는 신호에 대한 확인 응답 신호(예: ack 패킷)을 전송할 수 있다. 또한, 클라이언트(501)는 서버(503)가 커넥션 해제에 요청에 대한 확인 응답을 수신하였는지 확인하기 위해 충분한 시간을 대기할 수 있다. 다양한 실시예들에서, 클라이언트(501)는 2MSL(maximum segment lifetime)(예: 약 1분 내지 4분) 동안 시간 대기 상태를 유지할 수 있다. 서버(503)는 클라이언트(501)로부터 커넥션 해제에 대한 확인 응답을 수신하는 경우, 커넥션 종료(CLOSED)(523) 상태로 변경될 수 있다. 커넥션 종료(CLOSED) 상태에서는, 클라이언트와 서버 간 커넥션이 존재하지 않을 수 있다. 다양한 실시예들에서, TCP는 확인 응답을 수반하는 프로토콜이기 때문에, 전자 장치는 상술한 TCP 소켓의 상태를 일시적인(temporary) 상태 및 영구적인(permanent) 상태로 분류할 수 있다. 다양한 실시예들에서, 전자 장치(101)는 원격 장치(예: 서버(108))로부터 확인 응답을 기다리는 TCP 소켓의 상태를 일시적인 상태로 볼 수 있다. 예를 들면, 커넥션 설정 요청(507) 상태, 제1 커넥션 해제(513) 상태, 클로징 상태 및 최종 확인 응답(519) 상태를 일시적인 상태로 볼 수 있다. 다양한 실시예들에서 전자 장치(101)는 일시적인 상태 외의 TCP 소켓 상태들을 영구적인 상태로 볼 수 있다. 전자 장치(101)는 상술한 다양한 TCP 소켓 상태를 식별할 수 있고, 이에 기반하여 통신 상태를 결정할 수 있다.Figure 5 illustrates a sequence diagram for transmitting data using the TCP protocol according to various embodiments of the present invention. In various embodiments, the electronic device may identify a TCP socket condition to detect a communication condition. As shown in FIG. 5, a TCP connection may be formed through a sequence of a plurality of states. The TCP socket state can be changed from the current state to the next state in response to a specific event. For example, the server 503 (e.g., the server 108) may wait for a TCP connection establishment request from the client 501 (e.g., the electronic device 101) in a
도 6은 본 발명의 다양한 실시예들에 따른 통신 상태가 블락 상태인 경우 전자 장치(101)에 표시되는 전자 장치(101)의 인터페이스의 예시를 도시한다. 전자 장치(101)의 인터페이스는 표시 장치(160)을 포함할 수 있다. 도 6을 참고하면, 다양한 실시예들에서, 와이파이 신호 품질이 양호하고, 백홀(backhaul) 네트워크의 상태가 양호한 경우라도, 네트워크 방화벽에 의해 SNS 애플리케이션의 메시지가 전송되지 않을 수 있다. 다양한 실시예들에서, 전자 장치(101)는 메신저 애플리케이션의 메시지 전송 상태를 나타내는 다양한 메시지 전송 지시자를 표시 장치(160)에 표시할 수 있다. 예를 들면, 도 6에서, 제1 메시지 전송 지시자(604)는 정상적으로 전송된 메시지를 나타내고, 제2 메시지 전송 지시자(606)는 정상적으로 전송되지 않고, 대기중인 메시지를 나타낼 수 있다. 와이파이 상태 지시자(602)는 와이파이 신호 품질이 양호함을 나타내므로, 사용자는 메시지 미전송의 원인을 파악하기 어려울 수 있다. 전자 장치(101)는 이러한 블락 상태를 감지하기 위해, TCP 소켓 상태를 이용할 수 있다.6 illustrates an example of the interface of the
일 실시예에서, 프로세서(120)는 커넥션 설정 소켓의 개수가 증가할수록 수신 패킷의 개수가 증가하는 것으로 결정할 수 있다. 일 실시예에서, 프로세서(120)는 TCP 소켓 상태가 변경되는 경우, 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다. 일 실시예에서, 프로세서(120)는 TCP 소켓 상태가 특정 상태에 갇혀있는(stuck) 경우, 전자 장치(101)의 통신 상태를 부족 상태로 결정할 수 있다. In one embodiment, the
다양한 실시예들에서, 네트워크에서 발생한 특정 문제 상태를 나타내기 위해, 레드 플래그(red flag) 기법이 사용될 수 있다. 예를 들면, 전자 장치는 특정 문제 상태가 검출될 때마다, 레드 플래그를 축적할 수 있다. 전자 장치는 축적된 레드 플래그(cumulative red flags, CRF)를 분석함으로써, 전송 프로토콜 상태를 식별할 수 있다. 레드 플래그 축적은 도 7a 및 7b와 같이 정의될 수 있다. In various embodiments, a red flag technique may be used to indicate a particular problem condition that has occurred in the network. For example, the electronic device may accumulate a red flag whenever a particular problem condition is detected. The electronic device can identify the transport protocol status by analyzing cumulative red flags (CRFs). Red flag accumulation can be defined as shown in FIGS. 7A and 7B.
도 7a는 본 발명의 다양한 실시예들에 따른 레드 플래그(red flag) 축적을 나타내는 흐름도를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 7a는 도 4의 동작 401의 일부로서, 예시된 흐름도(710)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 7A shows a flow diagram illustrating a red flag accumulation in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 7A is a part of
다양한 실시예들에서, 프로세서(120)는 네트워크에서 신호의 문제를 검출하기 위해 축적 레드 플래그 방식을 사용할 수 있다. 다양한 실시예들에서, 프로세서(120)는 레드 플래그를 어떠한 문제를 나타내는 식별자로 보고, 문제가 나타날 때마다 레드 플래그를 기록함으로써 축적할 수 있다. 이러한 방식을 축적 레드 플래그(cumulative red flag) 방식으로 나타낼 수 있다.In various embodiments, the
도 7a를 참고하면, 동작 701에서, 프로세서(120)는 새로운 재전송이 검출되는지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 재전송을 겪는 TCP 소켓이 검출되는지 확인할 수 있다. 프로세서(120)는 새로운 재전송이 검출되는 경우, 레드 플래그를 축적할 수 있다.Referring to FIG. 7A, at operation 701, the
동작 703에서, 프로세서(120)는 새로운 최종 확인 응답이 검출되는지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 TCP 소켓 상태가 최종 확인 응답 상태로 새로 검출되는지 여부를 확인할 수 있다. 프로세서(120)는 새로운 최종 확인 응답이 검출되는 경우, 레드 플래그를 축적할 수 있다.At
동작 705에서, 프로세서(120)는 새로운 커넥션 해제 신호가 검출되는지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 TCP 소켓 상태가 커넥션 해제 상태로 새로 검출되는지 여부를 확인할 수 있다. 프로세서(120)는 새로운 커넥션 해제 신호가 검출되는 경우, 레드 플래그를 축적할 수 있다.At
동작 707에서, 프로세서(120)는 커넥션 설정 요청에 대한 확인 응답이 미검출 되었는지 확인할 수 있다. 예를 들면, 프로세서(120)는 TCP 소켓 상태가 커넥션 설정 요청 상태일 때, 이에 대한 서버의 확인 응답이 없었는지 여부를 확인할 수 있다. 프로세서(120)는 커넥션 설정 요청에 대한 확인 응답이 미검출 되는 경우, 레드 플래그를 축적할 수 있다.At
동작 709에서, 프로세서(120)는 새로운 커넥션 설정 요청이 검출되고, 새로운 커넥션 설정 소켓이 미검출 되었는지 확인할 수 있다. 예를 들면, 프로세서(120)는 TCP 소켓 상태가 커넥션 설정 요청으로 새로 검출되고, 커넥션 설정 소켓은 새로 검출되지 않았는지 여부를 확인할 수 있다. 프로세서(120)는 새로운 커넥션 설정 요청이 검출되고, 새로운 커넥션 설정 소켓이 미검출 된 경우, 레드 플래그를 축적할 수 있다.At
동작 711에서, 프로세서(120)는 레드 플래그를 축적할 수 있다. 다양한 실시예들에 따라, 프로세서(120)는 새로운 재전송이 검출된 경우, 새로운 최종 확인 응답이 검출된 경우, 새로운 커넥션 해제 신호가 검출된 경우, 커넥션 설정 요청에 대한 확인 응답이 미검출된 경우, 또는 새로운 커넥션 설정 요청이 검출되고, 새로운 커넥션 설정 소켓이 미검출된 경우 중 적어도 하나의 조건을 만족하는 경우, 레드 플래그를 축적할 수 있다. 다양한 실시예들에서, 동작 701 내지 동작 709의 결과는 서로 영향을 미치지 아니할 수 있다. 예를 들면, 동작 701에서, 프로세서(120)가 새로운 재전송을 검출한 경우, 새로운 최종 확인 응답이 검출되었는지 또는 새로운 커넥션 해제 신호가 검출되었는지 여부와 관계없이 동작 711에서 레드 플래그를 축적할 수 있다. 다양한 실시예들에서, 프로세서(120)는 동작 701 내지 709를 순차적으로 수행할 수 있고, 또는 순서에 상관없이 각 동작을 개별적으로 수행할 수도 있다.At
도 7b는 본 발명의 다양한 실시예들에 따른 레드 플래그(red flag) 축적을 나타내는 흐름도를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 7a는 도 4의 동작 401의 일부로서, 예시된 흐름도(710)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 7B shows a flow diagram illustrating a red flag accumulation in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 7A is a part of
도 7b를 참고하면, 동작 713에서, 프로세서(120)는 송신 패킷이 수신 패킷보다 많고, 새로운 커넥션 설정 소켓이 검출되고, 수신 패킷 및 송신 패킷의 합이 임계치 미만인지 판단할 수 있다. 상기 조건을 만족하는 경우, 동작 723에서, 프로세서(120)는 레드 플래그를 축적할 수 있다.Referring to FIG. 7B, at
동작 715에서, 프로세서(120)는 새로운 커넥션 해제 신호가 검출되고, 새로운 재전송이 검출되고, 송신 패킷이 임계치 미만인지 판단할 수 있다. 예를 들면 임계치는 10 패킷일 수 있다. 새로운 커넥션 해제 신호가 검출되고, 새로운 재전송이 검출되고, 송신 패킷이 임계치 미만인 경우, 동작 723에서, 프로세서(120)는 레드 플래그를 축적할 수 있다.At
동작 717에서, 프로세서(120)는 RSSI가 임계치 미만인지 판단할 수 있다. 예를 들면, 프로세서(120)는 RSSI가 특정 임계치 미만인지 판단할 수 있다. 프로세서(120)는 RSSI가 특정 임계치 미만인 경우, 동작 723에서, 레드 플래그를 축적할 수 있다.At
동작 719에서, 프로세서(120)는 링크 속도가 임계치 미만인지 판단할 수 있다. 예를 들면, 프로세서(120)는 전자 장치(101)의 네트워크 링크 속도가 특정 임계치 미만인지 판단할 수 있다. 프로세서(120)는 네트워크 링크 속도가 임계치 미만인 경우, 동작 723에서, 레드 플래그를 축적할 수 있다.At
동작 721에서, 프로세서(120)는 손실이 임계치를 초과하는지 판단할 수 있다. 예를 들면, 프로세서(120)는 데이터 송신 및 수신 시의 손실이 특정 임계치를 초과하는지 판단할 수 있다. 프로세서(120)은 손실이 임계치를 초과하는 경우, 동작 723에서, 레드 플래그를 축적할 수 있다.At
동작 723에서, 프로세서(120)는 레드 플래그를 축적할 수 있다. 다양한 실시예들에 따라, 프로세서(120)는 송신 패킷이 수신 패킷보다 많고, 새로운 커넥션 설정 소켓이 검출되고, 수신 패킷 및 송신 패킷의 합이 임계치 미만인 경우, 새로운 커넥션 해제 신호가 검출되고, 새로운 재전송이 검출되고, 송신 패킷이 임계치 미만인 경우, RSSI가 임계치 미만인 경우, 링크 속도가 임계치 미만인 경우, 또는 손실(loss)이 임계치를 초과하는 경우 중 적어도 하나의 조건을 만족하는 경우, 레드 플래그를 축적할 수 있다. 다양한 실시예들에서, 동작 713 내지 동작 721의 결과는 서로 영향을 미치지 아니할 수 있다. 예를 들면, 동작 713에서 송신 패킷이 수신 패킷보다 많고, 새로운 커넥션 설정 소켓이 검출되고, 수신 패킷 및 송신 패킷의 합이 임계치 미만인 경우, RSSI가 임계치 미만이거나, 링크 속도가 임계치 미만인지 여부와 관계없이, 동작 723에서 레드 플래그를 축적할 수 있다. 다양한 실시예들에서, 프로세서(120)는 동작 713 내지 721을 순차적으로 수행할 수 있고, 또는 순서에 상관없이 각 동작을 개별적으로 수행할 수도 있다.At operation 723, the
다양한 실시예들에서, 프로세서(120)는 레드 플래그가 축적되어 지정된 임계치를 초과하는 경우, 사용자에게 네트워크 상태가 부족 상태임을 통지하고, 이에 기반하여 네트워크를 변경할 수 있다. In various embodiments, the
도 4 내지 도 7b를 참고하여 설명한 바와 같이, 본 발명의 다양한 실시예들에 따른 전자 장치는 TCP 소켓의 상태에 기반하여 통신 상태를 판단할 수 있다. 일 실시 예에 따라, 통신 상태는 양호 상태, 부족 상태, 블락 상태 및 부진 상태 중 어느 하나로 판단될 수 있다. 이하, 각 통신 상태를 판단하기 위한 보다 상세한 실시 예들이 설명된다.As described with reference to Figures 4 to 7B, an electronic device according to various embodiments of the present invention can determine the communication state based on the state of a TCP socket. According to one embodiment, the communication state can be determined to be any one of a good state, a short state, a block state, and a sluggish state. Hereinafter, more detailed embodiments for determining each communication state will be described.
도 8은 본 발명의 다양한 실시예들에 따른 양호 상태(good state)를 결정하기 위한 흐름도를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 8은 도 4의 동작 403의 일부로서, 예시된 흐름도(800)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 8 shows a flow chart for determining a good state in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 8 is a part of
도 8을 참고하면, 동작 801에서, 프로세서(120)는 새로운 커넥션 설정을 위한 소켓을 검출할 수 있다. 다양한 실시예들에서, 프로세서(120)는 클라이언트 및 서버 간 커넥션 설정을 위한 소켓을 새로 검출할 수 있다. 커넥션 설정을 위한 소켓 검출 후, 프로세서(120)는 뒤따라오는 TCP 소켓 상태의 변화를 식별할 수 있다. 예를 들면, 다양한 이유로 TCP 소켓 상태는 상술한 일시적인 상태에 갇혀(stuck) 있을 수 있다. 프로세서(120)는 이러한 갇힌 상태에서 벗어나기 위해, TCP 소켓 상태를 추적(track)할 수 있다.8, at operation 801, the
동작 803에서, 프로세서(120)는 커넥션 설정 요청 상태가 커넥션 설정 상태로 변경되었는지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 서버와 확인 응답을 송신 및 수신한 후, 클라이언트의 TCP 소켓 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되었는지 여부를 확인할 수 있다. 프로세서(120)는 TCP 소켓 상태가 커넥션 설정 상태로 변경된 경우, 동작 709에서, 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다. At
동작 805에서, 프로세서(120)는 송신 패킷 및 수신 패킷의 합이 임계치를 초과하는지 판단할 수 있다. 예를 들면, TCP 소켓 상태가 커넥션 설정 상태로 변경되지 않는 경우, 프로세서(120)는 송신 패킷 및 수신 패킷의 합이 임계치를 초과하는지 판단할 수 있다. 예를 들면, 프로세서(120)는 전자 장치(101)가 외부 장치로 송신하는 송신 데이터 패킷과, 전자 장치(101)가 외부 장치로부터 수신하는 수신 데이터 패킷의 합을 특정 임계치와 비교할 수 있다. 프로세서(120)는 송신 패킷 및 수신 패킷의 합이 특정 임계치를 초과하는 경우, 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다. At
동작 807에서, 프로세서(120)는 새로운 커넥션 해제 대기 상태 및 새로운 시간 대기 상태가 검출되는지 여부를 확인할 수 있다. 예를 들면, 송신 패킷 및 수신 패킷의 합이 특정 임계치보다 작은 경우, 프로세서(120)는 새로운 커넥션 해제 대기 상태 및 새로운 시간 대기 상태가 검출되는지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 네트워크가 정상적으로 연결되어 패킷을 정상적으로 수신할 수 있는 경우, 커넥션 해제 대기 상태 및 시간 대기 상태를 검출할 수 있다. 프로세서(120)는 새로운 커넥션 해제 대기 상태 및 시간 대기 상태가 검출되는 경우, 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다. 새로운 커넥션 해제 대기 상태 및 시간 대기 상태가 검출되지 않는 경우, 프로세서(120)는 다시 새로운 커넥션 설정 소켓을 검출하는 동작을 수행할 수 있다. At
동작 809에서, 프로세서(120)는 통신 상태를 양호 상태로 결정할 수 있다. 예를 들면, 프로세서(120)는 동작 701 내지 707에서의 조건이 각각 만족되는 경우, 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다. 다양한 실시예들에서, 양호 상태는 사용자가 통신을 수행하는데 어떠한 문제도 겪지 않는 것을 의미할 수 있다. 다양한 실시예들에서, 프로세서(120)는 다수의 TCP 소켓 상태 중에서 어떠한 TCP 소켓 상태가 양호 상태인지 확인하고, 불필요한 재전송이 이루어지지 않도록 하기 위해, 양호 상태인 TCP 소켓 상태의 목록(list)을 갱신(update)할 수 있다. 예를 들면, 프로세서(120)는 커넥션 설정 요청 상태가 양호 상태인 경우, "goodAreaSYN"라는 이름을 갖는 소켓 목록을 갱신할 수 있다. 프로세서(120)는 양호 상태에서 재전송이 이루어지는 경우, "goodAreaRetrans"라는 이름을 갖는 소켓 목록을 갱신할 수 있다. 프로세서(120)는 제1 커넥션 해제 상태가 양호 상태인 경우, "goodAreaFin"라는 이름을 갖는 소켓 목록을 갱신할 수 있다. 프로세서(120)는 최종 확인 응답 사태가 양호 상태인 경우, "goodAreaLastAck"라는 이름을 갖는 소켓 목록을 갱신할 수 있다. 프로세서(120)는 클로징 상태가 양호 상태인 경우, "goodAreaClosing"라는 이름을 갖는 소켓 목록을 갱신할 수 있다. 상술한 동작을 통해, 프로세서(120)는 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다.At
다양한 실시예들에서, 프로세서(120)는 커넥션 설정을 위한 TCP 소켓을 검출하고, 검출된TCP 소켓의 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되는지 여부를 식별하고, 전자 장치(101)에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 큰지 여부를 식별하고, TCP 소켓의 상태가 커넥션 해제 대기 상태 및 시간 대기 상태인지 여부를 식별하고, 커넥션 설정을 위한 TCP 소켓이 검출되고, TCP 소켓의 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되고, 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 크고, 커넥션 해제 대기 상태 및 시간 대기 상태가 식별 되는 경우, 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다.In various embodiments, the
도 9는 본 발명의 다양한 실시예들에 따른 부족 상태(poor state)를 결정하기 위한 흐름도를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 9는 도 4의 동작 403의 일부로서, 예시된 흐름도(900)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 9 shows a flowchart for determining a poor state in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 9 is a part of
도 9를 참고하면, 동작 901에서, 전자 장치(101)의 프로세서(120)는 통신 상태가 양호 상태인지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 통신 상태가 부족 상태인지 여부를 결정하기에 앞서, 전자 장치(101)의 통신 상태가 도 8에서 상술한 양호 상태인지 여부를 확인할 수 있다. 여기서 양호 상태는 송신 패킷 및 수신 패킷의 합이 임계치보다 큰 경우를 포함할 수 있다. 프로세서(120)는 통신 상태가 양호 상태가 아닌 경우, 하기의 동작 903 내지 909를 수행할 수 있다.9, at
동작 903에서, 프로세서(120)는 새로운 커넥션 설정을 위한 소켓이 검출되는지 여부를 확인할 수 있다. 다양한 실시예들에서, 프로세서(120)는 클라이언트(예: 전자 장치(101)) 및 서버(예: 서버(108)) 간 커넥션 설정을 위한 소켓을 새로 검출할 수 있다. 프로세서(120)는 커넥션 설정을 위한 소켓이 새로 검출되는 경우, 전자 장치(101)의 통신 상태를 부족 상태로 결정할 수 있다.At
동작 905에서, 프로세서(120)는 새로운 커넥션 설정 요청 상태가 검출되는지 여부를 확인할 수 있다. 예를 들면, 새로운 커넥션 설정을 위한 소켓이 검출되지 않는 경우, 프로세서(120)는 새로운 커넥션 설정 요청 상태가 검출되는지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 커넥션 설정을 위한 소켓이 새로 검출되지는 않고, 새로운 커넥션 설정 요청 상태가 검출되는 경우, 전자 장치(101)의 통신 상태를 부족 상태로 결정할 수 있다.At
동작 907에서, 프로세서(120)는 송신 패킷의 개수와 수신 패킷의 개수의 차이가 임계값을 초과하는지 판단할 수 있다. 예를 들면, 프로세서(120)는 새로운 커넥션 설정 요청 상태가 검출되지 않는 경우, 송신 데이터 패킷의 개수와 수신 데이터 패킷의 개수의 차이가 임의의 임계값을 초과하는지 판단할 수 있다. 예를 들면, 프로세서(120)는 동작 901에서 통신 상태가 양호 상태가 아니고, 동작 903에서 새로운 커넥션 설정을 위한 소켓이 검출되지 아니하고, 동작 905에서 새로운 커넥션 설정 요청 상태가 검출되지 아니하고, 송신 데이터 패킷의 개수와 수신 데이터 패킷의 개수의 차이가 임계값을 초과하는 경우, 전자 장치(101)의 통신 상태를 부족 상태로 결정할 수 있다. 송신 패킷의 개수와 수신 패킷의 개수의 차이가 임계값을 초과하지 않는 경우, 프로세서(120)는 다시 통신 상태가 양호 상태인지 판단하는 동작을 수행할 수 있다. 동작 903 내지 동작 907는 각각 독립된 동작으로, 프로세서(120)는 각 동작을 순차적으로, 또는 순서에 상관없이 수행할 수 있다. At
동작 909에서, 프로세서(120)는 통신 상태를 부족 상태로 결정할 수 있다. 예를 들면, 프로세서(120)는 동작 903 내지 907에서의 조건이 각각 만족되는 경우, 상술한 동작을 통해, 프로세서(120)는 전자 장치(101)의 통신 상태를 부족 상태로 결정할 수 있다.At
다양한 실시예들에서, 프로세서(120)는 전자 장치(101)의 통신 상태가 양호 상태인지 여부를 식별하고, 커넥션 설정을 위한 TCP 소켓을 검출하고, TCP 소켓의 상태가 커넥션 설정 요청 상태인지 여부를 식별하고, 전자 장치(101)에서 실행되는 애플리케이션의 송신 데이터 패킷의 개수가 수신 데이터 패킷의 개수보다 많은지 여부를 식별하고, 전자 장치(101)의 통신 상태가 양호 상태가 아니고, 커넥션 설정을 위한 TCP 소켓이 검출되고, 커넥션 설정 요청 상태가 식별되고, 송신 데이터 패킷의 개수가 수신 데이터 패킷의 개수보다 많은 경우, 전자 장치(101)의 통신 상태를 부족 상태로 결정할 수 있다.In various embodiments, the
도 10은 본 발명의 다양한 실시예들에 따른 블락 상태(blocked state)를 결정하기 위한 흐름도를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 10은 도 4의 동작 403의 일부로서, 예시된 흐름도(1000)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 10 shows a flow diagram for determining a blocked state in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 10 is a part of
도 10을 참고하면, 동작 1001에서, 프로세서(120)는 재전송을 수행하는 소켓을 검출할 수 있다. 예를 들면, 프로세서(120)는 재전송을 수행하는 소켓을 검출할 수 있다. 다양한 실시예들에서, 검출된 소켓들의 개수가 증가함에 따라, 전송 큐(send queue)의 개수가 증가할 수 있다.Referring to FIG. 10, at
동작 1003에서, 프로세서(120)는 송신 패킷 및 수신 패킷의 개수가 임계치 미만인지 판단할 수 있다. 예를 들면, 프로세서(120)는 TCP가 타임아웃(timeout)되는 시간 동안 송신 패킷 및 수신 패킷의 개수가 임계치 미만인지 판단할 수 있다. TCP의 타임아웃은 전자 장치(101)가 외부 전자 장치들(예: 서버(108), 전자 장치(104))로 데이터를 전송한 후 타이머를 설정하고, 타이머 종료 시까지 외부 전자 장치들로부터 확인 응답을 수신하지 못하는 경우 발생할 수 있다. 일 실시예에서, 프로세서(120)는 와이파이 네트워크 환경이 양호한 경우라도, 애플리케이션이 송신 및 수신하는 데이터 패킷의 개수가 임계치 미만인지 판단할 수 있다. 프로세서(120)는 송신 패킷 및 수신 패킷의 개수가 임계치 미만이 아닌 경우, 다시 재전송을 수행하는 소켓을 검출하는 동작을 수행할 수 있다.At
동작 1005에서, 프로세서(120)는 링크 속도, SNR(signal to noise ratio) 또는 RSSI가 각각 지정된 임계치를 초과하는지 판단할 수 있다. 예를 들면, 송신 및 수신 패킷의 개수가 임계치 미만인 경우, 프로세서(120)는 애플리케이션이 네트워크 방화벽에 의해 블락되더라도, 링크 속도, SNR, 또는 RSSI를 각각 지정된 임계치와 비교하여 임계치를 초과하는지 판단할 수 있다. 프로세서(120)는 링크 속도, SNR 또는 RSSI가 각각 지정된 임계치를 초과하지 않는 경우, 다시 재전송을 수행하는 소켓을 검출하는 동작을 수행할 수 있다.At
동작 1007에서, 프로세서(120)는 통신 상태를 블락 상태로 결정할 수 있다. 예를 들면, 프로세서(120)는 링크 속도, SNR, 또는 RSSI가 각각 지정된 임계치를 초과하고 송신 패킷 및 수신 패킷의 개수가 임계치 미만인 경우, 통신 상태를 블락 상태로 결정할 수 있다. 동작 1001 내지 1005는 각각 독립된 동작으로, 프로세서(120)는 각 동작을 순차적으로, 또는 순서에 상관없이 수행할 수 있다. 다양한 실시예들에서, 블락 상태는 사용자와 관련된(relevant) 애플리케이션이 방화벽에 의해 블락된 상태일 수 있다. 다양한 실시예들에서, 프로세서(120)는 소켓에 의한 커널(kernel)메모리 사용 측면에서, 전송(예: outgoing, send 또는 transmit) 데이터 큐를 유지할 수 있다. 재전송을 겪는 소켓의 개수가 증가함에 따라, 전송 데이터 큐의 크기가 증가하는 경우, 전자 장치(101)와 와이파이 엑세스 포인트(access point, AP)간의 무선 연결 상태는 양호한 것으로 볼 수 있다. 무선 연결 상태는 양호하지만, 애플리케이션의 송신 및 수신 데이터 패킷의 개수가 적은 경우, 프로세서(120)는 특정 애플리케이션이 방화벽에 의해 블락된 것으로 결정할 수 있다. 상술한 동작들을 통해, 프로세서(120)는 전자 장치(101)의 통신 상태를 블락 상태로 결정할 수 있다.At operation 1007, the
다양한 실시예들에서, 프로세서(120)는 재전송을 수행하는 TCP 소켓을 검출하고, 전자 장치(101)에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 개수가 임계치보다 작은지 여부를 식별하고, 전자 장치(101)의 링크 속도(link speed), SNR(signal) 및 RSSI(received signal strength indication)가 임계치보다 큰지 여부를 식별하고, 재전송을 수행하는 TCP 소켓이 감출되고, 송신 데이터 패킷 및 수신 데이터 패킷의 개수가 임계치보다 작고, 링크 속도, SNR 및 RSSI가 임계치보다 큰 경우, 전자 장치(101)의 통신 상태를 블락 상태로 결정할 수 있다. 일 실시예에서, 블락 상태는, 전자 장치(101)에서 실행되는 애플리케이션이 네트워크 방화벽(firewall)에 의해 블락(blocked)되는 상태를 포함할 수 있다.In various embodiments, the
도 11은 본 발명의 다양한 실시예들에 따른 부진 상태(sluggish state)를 결정하기 위한 흐름도를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 11은 도 4의 동작 403의 일부로서, 예시된 흐름도(1100)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 11 shows a flow chart for determining a sluggish state in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Fig. 11 is part of
도 11을 참고하면, 동작 1101에서, 프로세서(120)는 새로운 커넥션 설정을 위한 소켓을 검출할 수 있다. 다양한 실시예들에서, 프로세서(120)는 클라이언트(예: 전자 장치(101)) 및 서버(예: 서버(108)) 간 커넥션 설정을 위한 소켓을 새로 검출할 수 있다. Referring to FIG. 11, at
동작 1103에서, 프로세서(120)는 새로운 커넥션 설정 요청 상태가 검출되는지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 커넥션 설정을 위한 소켓을 새로 검출하는 경우, 새로운 커넥션 설정 요청 상태가 검출되는지 여부를 확인할 수 있다. 새로운 커넥션 설정 요청 상태가 검출되지 않는 경우, 프로세서(120)는 다시 새로운 커넥션 설정을 위한 소켓을 검출하는 동작을 수행할 수 있다.At
동작 1105에서, 프로세서(120)는 송신 패킷 및 수신 패킷의 합이 임계치 미만인지 판단할 수 있다. 예를 들면, 프로세서(120)는 새로운 커넥션 설정 요청 상태가 검출되는 경우, 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치 미만인지 판단할 수 있다. 일 실시예에서, 프로세서(120)는 TCP가 타임아웃되는 시간 동안 송신 패킷 및 수신 패킷의 합이 임계치 미만인지 판단할 수 있다. 송신 패킷 및 수신 패킷의 합이 특정 임계치 미만이 아닌 경우, 프로세서(120)는 다시 새로운 커넥션 설정을 위한 소켓을 검출할 수 있다. 동작 1101 내지 1105는 각각 독립된 동작으로, 프로세서(120)는 각 동작을 순차적으로, 또는 순서에 상관없이 수행할 수 있다.At
동작 1107에서, 프로세서(120)는 통신 상태를 부진 상태로 결정할 수 있다. 예를 들면, 프로세서(120)는 새로운 커넥션 설정 요청 상태가 검출되고, 송신 패킷 및 수신 패킷의 합이 임계치 미만인 경우, 전자 장치(101)의 통신 상태를 부진 상태로 결정할 수 있다. 다양한 실시예들에서, 부진 상태는 특정 애플리케이션이 와이파이 엑세스 포인트의 정책들(policies) 때문에 데이터의 다운 속도가 느린 경우를 의미할 수 있다. 상술한 동작들을 통해, 프로세서(120)는 전자 장치의 통신 상태를 부진 상태로 결정할 수 있다.At operation 1107, the
다양한 실시예들에서, 프로세서(120)는 커넥션 설정을 위한 TCP 소켓을 검출하고, TCP 소켓의 상태가 새로운 커넥션 설정 요청 상태인지 여부를 식별하고, 전자 장치(101)에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 작은지 여부를 식별하고, 커넥션 설정을 위한 TCP 소켓이 검출되고, 새로운 커넥션 설정 요청 상태가 식별되고, 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 작은 경우, 전자 장치(101)의 통신 상태를 부진 상태로 결정할 수 있다.In various embodiments, the
도 12는 본 발명의 다양한 실시예들에 따른 통신 상태를 식별 및 네트워크를 변경하기 위한 흐름도를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 예시된 흐름도(1200)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.12 illustrates a flow diagram for identifying a communication state and changing a network in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. The operating entity of the illustrated
도 12를 참고하면, 동작 1201에서 프로세서(120)는 전송 프로토콜 상태를 식별할 수 있다. 예를 들면, 무선 링크 특성에 따른 컨텍스트(context)에 기반하여 소켓의 패턴을 식별할 수 있다. 다양한 실시예들에서, 소켓의 패턴은 TCP 소켓 상태의 패턴일 수 있다. 예를 들면, TCP 소켓 상태는 커넥션 설정 요청 전송(SYN_SENT), 커넥션 설정(ESTABLISHED) 및 커넥션 해제(FIN_WAIT)등을 포함할 수 있다. 프로세서(120)는 TCP 소켓 상태가 상술한 상태들로 변경되는 것을 식별할 수 있다.Referring to FIG. 12, in operation 1201, the
동작 1203에서, 프로세서(120)는 무선 연결 상태를 검출할 수 있다. 예를 들면, 무선 연결 상태는 RSSI, 링크 속도, 손실 또는 SNR 중 적어도 하나를 포함할 수 있다. 프로세서(120)는 앞서 식별한 TCP 소켓 상태와 함께 검출한 무선 연결 상태를 이용하여 통신 상태를 검출할 수 있다. 예를 들면, 통신 상태는 양호 상태, 부족 상태, 블락 상태 및 부진 상태를 포함할 수 있다.At operation 1203, the
동작 1205에서, 프로세서(120)는 통신 상태가 부족 상태인지 판단할 수 있다. 예를 들면, 프로세서(120)는 와이파이 신호 품질이 나쁜 경우를 나타낼 수 있다. 다양한 실시예들에서, 부족 상태인 경우 TCP 소켓 상태의 패턴은, 새로운 커넥션 해제 상태가 증가하고 수신 패킷의 개수는 적은 경우, 새로운 커넥션 설정 요청 상태는 증가하고 수신 패킷의 개수는 적은 경우, 새로운 클로징 상태는 증가하고 수신 패킷의 개수는 적은 경우, 새로운 최종 확인 응답 상태는 증가하고 수신 패킷의 개수는 적은 경우, 또는 수신 패킷의 개수가 적고 재전송 횟수가 증가하는 경우를 포함할 수 있다. 통신 상태가 부족 상태인 것으로 확인되는 경우, 프로세서(120)는 동작 1211에서, 네트워크 변경을 수행할 수 있다.At
동작 1207에서, 프로세서(120)는 통신 상태가 블락 상태인지 판단할 수 있다. 예를 들면, 프로세서(120)는 통신 상태가 부족 상태가 아닌 경우, 블락 상태인지 여부를 확인할 수 있다. 예를 들면, 블락 상태는 와이파이 신호 품질은 좋지만, 특정 애플리케이션이 네트워크 방화벽에 의해 블락된 경우를 나타낼 수 있다. 다양한 실시예들에서, 블락 상태인 경우, 전자 장치(101)는 양호한 RSSI 및 링크 속도를 가질 수 있다. 블락 상태인 경우, 네트워크 계층 레벨에서, 애플리케이션이 적은 수의 커넥션 설정 상태의 TCP 소켓들을 가질 수 있다. 이러한 소켓들은 재전송을 겪을 수 있고, 송신 패킷들은 전송 큐에 갇혀 있을 수 있다. 다양한 실시예들에서, 블락 상태인 경우, 많은 커넥션 설정 요청 소켓 상태가 커넥션 설정 상태로 바뀌지 않을 수 있다. 통신 상태가 블락 상태인 경우, 동작 1211에서, 프로세서(120)는 네트워크 변경을 수행할 수 있다.At
동작 1209에서, 프로세서(120)는 통신 상태가 부진 상태인지 판단할 수 있다. 예를 들면, 프로세서(120)는 통신 상태가 블락 상태가 아닌 경우, 부진 상태인지 여부를 확인할 수 있다. 다양한 실시예들에서, 부진 상태인 경우, 전자 장치(101)는 무선 네트워크에서 양호한 RSSI 및 링크 속도를 가질 수 있다. 부진 상태인 경우, 커넥션 설정 상태의 소켓은 증가하지만, 애플리케이션에 의해 수신되는 데이터 패킷의 수는 적을 수 있다. 이러한 경우, 애플리케이션의 소켓들은 재전송을 수행하지 않을 수 있다. 부진 상태가 아닌 경우, 프로세서(120)는 다시 전송 프로토콜 상태를 식별할 수 있고, 도면에는 도시되지 않았으나, 프로세서(120)는 통신 상태를 양호 상태로 결정할 수 있다. 다양한 실시예들에서, 양호 상태인 경우, 새로운 커넥션 설정 소켓은 증가하고, 수신 패킷의 개수는 적을 수 있다. 양호 상태인 경우, 새로운 커넥션 해제 대기 상태가 증가하고, 새로운 커넥션 해제 상태는 나타나지 않을 수 있다. 다양한 실시예들에서, 양호 상태인 경우, TCP 소켓 상태는 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경될 수 있다.In
동작 1211의 경우, 프로세서(120)는 네트워크 변경을 수행할 수 있다. 예를 들면, 프로세서(120)는 통신 상태가 부진 상태인 경우, 네트워크 변경을 수행할 수 있다. 예를 들면, 프로세서(120)는 통신 모듈(180)을 제어하여, 와이파이 네트워크에서 셀룰러 네트워크로 네트워크를 변경할 수 있다. 단, 네트워크 변경은 이에 한정되지 않으며, 현재 네트워크에서 다양한 종류의 네트워크로의 변경이 가능하다. 상술한 동작을 통해, 프로세서(120)는 TCP 소켓 상태를 식별하고, 통신 상태를 결정하고, 결정된 통신 상태에 기반하여 네트워크 변경을 수행할 수 있다. 상술한 동작 1205 내지 1209는 각각 독립된 동작으로, 프로세서(120)는 각 동작을 순차적으로, 또는 순서에 상관없이 수행할 수 있다. For operation 1211, the
도 13은 본 발명의 다양한 실시예들에 따른 전송 계층 프로토콜의 상태를 모니터링하는 전자 장치의 흐름도를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 예시된 흐름도(1300)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.13 shows a flow diagram of an electronic device for monitoring the status of a transport layer protocol in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. The operating entity of the illustrated
도 13을 참고하면, 동작 1301에서, 프로세서(120)는 전송 프로토콜 상태를 모니터링 할 수 있다. 다양한 실시예들에서, 전송 프로토콜은 TCP를 포함할 수 있다. 프로세서(120)는 TCP 소켓 상태를 분석할 수 있다. 예를 들면, 프로세서(120)는 TCP 소켓 상태가 변하는 패턴을 식별할 수 있고, 송신 및 수신 패킷의 개수, RSSI, 링크 속도 또는 손실과 같은 물리적인 채널 특성도 함께 분석하여 전자 장치(101)의 통신 상태를 결정할 수 있다. 다양한 실시예들에서, 통신 상태는 양호 상태, 부족 상태, 블락 상태 및 부진 상태를 포함할 수 있다. 프로세서(120)는 상술한 TCP 소켓 상태를 모니터링하여, 전자 장치(101)의 통신 상태를 결정할 수 있다.Referring to FIG. 13, at
동작 1303에서, 프로세서(120)는 통신 상태를 표시할 수 있다. 예를 들면, 프로세서(120)는 전자 장치(101)의 표시 장치(160)에, 앞서 결정된 통신 상태를 표시할 수 있다. 일 실시예에서, 프로세서(120)는 표시 장치(160)에 현재 전자 장치(101)에서 작동하는 애플리케이션의 네트워크 접속에 문제가 있음을 표시할 수 있다. 예를 들어, 도 14를 참고하면, 전자 장치(101)의 프로세서(120)는 사용자가 애플리케이션을 통해 다른 사용자와 메시지를 주고받는 대화창(1401-1)을 포함하는 화면을 표시 장치(160)에 표시하도록 제어할 수 있다. 예를 들면, 프로세서(120)는 카카오톡, 왓츠앱, 페이스북 또는 메신저 등 SNS 애플리케이션을 통해 외부 전자 장치(102)와 메시지를 송신 및 수신하는 경우, 송신 및 수신한 메시지를 전자 장치(101)의 표시 장치(160)에 표시하도록 제어할 수 있다. 상술한 SNS 애플리케이션을 통해 다른 사용자와 메시지를 주고받는 경우, 전자 장치(101)의 인터페이스는 메시지 대화창(1403-1)과, 애플리케이션이 인터넷 접속에 장애를 겪고 있는 것을 나타내는 팝업창(1403-3)을 포함할 수 있고, 프로세서(120)는 인터페이스를 포함하는 화면을 표시 장치(160)에 표시하도록 제어할 수 있다. 일 실시예세서, 프로세서(120)는 특정 애플리케이션이 네트워크 방화벽에 의해 블락되는 경우, 애플리케이션에서 데이터 패킷을 송신 및 수신하는 것에 장애가 있음을 전자 장치(101)의 표시 장치(160)에 표시하도록 제어할 수 있다. 예를 들어, 도 14를 참고하면, 전자 장치(101)의 프로세서(120)는, 애플리케이션이 인터넷 접속에 장애를 겪고 있으므로, 현재 네트워크에서 셀룰러 네트워크로 네트워크를 변경할지 여부를 표시하는 팝업창(1405-1)과 사용자가 팝업창의 내용을 참고하여 네트워크 변경 여부를 선택할 수 있는 지시자(1405-3)를 포함하는 화면을 표시 장치(160)에 표시하도록 제어할 수 있다. 예를 들면, 전자 장치(101)는 와이파이 네트워크에서 LTE, LTE-A 또는 5G 네트워크로 네트워크를 변경할지 여부를 전자 장치(101)의 표시 장치(160)에 표시할 수 있다. 이를 통해, 네트워크를 변경함으로써, 프로세서(120)는 원활하게 애플리케이션을 작동할 수 있다. 일 실시예에서, 전자 장치(101)의 인터페이스는 SSID(service set identifier) 상에서 애플리케이션이 인터넷 접속에 장애를 겪고 있는 것을 나타내는 팝업창(1407)을 포함할 수 있고, 프로세서(120)는 인터페이스를 포함하는 화면을 표시 장치(160)에 표시하도록 제어할 수 있다. SSID는 무선 네트워크 이름을 나타낼 수 있고, 노트북이나 스마트폰 등의 와이파이 기기는 SSID 구분을 통해 무선 연결을 시도할 수 있다. 일 실시예에서, 애플리케이션이 인터넷 접속에 장애를 겪고 있음을 나타내는 팝업창(1409)과 기존 전자 장치(101)의 인터페이스가 적어도 일부 중첩될 수 있고, 프로세서(120)는 중첩된 인터페이스를 포함하는 화면을 표시 장치(160)에 표시하도록 제어할 수 있다. In
다양한 실시예들에서, 전자 장치(101)는 상술한 바와 같이, 애플리케이션이 인터넷 접속에 장애가 있는 것을 나타내는 팝업 창을 표시하는 것 외에, 모니터링을 통해 결정된 통신 상태 및 네트워크 변경 여부를 표시할 수 있다. 예를 들면, 프로세서(120)는 현재 통신 상태가 부족 상태, 블락 상태 및 부진 상태인 경우, 통신 상태를 표시 장치(160)에 표시하도록 제어하고, 사용자가 네트워크 변경을 선택할 수 있는 지시자를 포함하는 팝업창을 표시 장치(160)에 표시하도록 제어할 수 있다.In various embodiments, the
다양한 실시예들에서, 프로세서(120)는 전자 장치(101)의 통신 상태를 표시 장치(160)에 표시하도록 제어할 수 있고, 전자 장치(101)의 통신 상태에 기반하여 네트워크 변경에 대한 정보를 포함하는 메시지를 표시 장치(101)에 표시하도록 제어할 수 있다. 일 실시예에서, 전자 장치(101)의 메모리(130)에 저장된 인스트럭션들은, 프로세서(120)로 하여금, 전자 장치(101)의 통신 상태를 표시 장치(160)에 표시 하고, 통신 상태에 기반하여 네트워크 변경에 대한 정보를 포함하는 메시지를 표시 장치(160)에 표시하도록 할 수 있다.In various embodiments, the
다양한 실시예들에서, 프로세서(120)는 TCP 소켓 상태를 식별하기 위해 소켓 아이디 및 IP 주소를 사용할 수 있다. 예를 들면, 소켓 아이디는 아이노드(INODE) 숫자(number)를 포함할 수 있고, IP 주소는 소스(source) 및 목적지(destination) 주소, UUID(universally unique identifier)를 포함할 수 있다. 다양한 실시예들에서, 프로세서(120)는 통신 상태에 대한 거짓 경보(false alarm)을 피하기 위해, 양호 상태에 대한 리스트를 유지할 수 있다. 이를 통해, 프로세서(120)는 일부 소켓들이 특정 상태에 갇혀있는 것을 식별할 수 있다.In various embodiments, the
다양한 실시예들에서, 프로세서(120)는 TCP 소켓 상태 리스트를 생성함으로써, TCP 소켓 상태를 식별할 수 있다. 예를 들어, <표 1>과 같이, 프로세서(120)는 소켓 아이디 또는 IP 주소를 이용하여 TCP 소켓 상태 리스트를 생성할 수 있다.In various embodiments, the
<표 1>을 참고하면, 프로세서(120)는 소켓 아이디를 이용하여 커넥션 설정 상태 리스트, 커넥션 설정 요청 상태 리스트, 재전송 리스트 및 커넥션 해제 대기 상태 리스트를 생성할 수 있고, IP 주소를 이용하여 커넥션 해제 상태 리스트, 최종 확인 응답 상태 리스트, 클로징 상태 리스트 및 시간 대기 상태 리스트를 생성할 수 있다. 예를 들어, 프로세서(120)는 소켓 아이디를 이용하여 커넥션 설정 상태 리스트를 생성할 수 있다. 프로세서(120)는 이전(previous) 및 현재(current) 상태에서 새로운 커넥션 설정을 위한 소켓을 확인할 수 있다. 다양한 실시예들에서, 프로세서(120)는 소켓 아이디를 이용하여 커넥션 설정 요청 상태 리스트를 생성할 수 있다. 예를 들면, 프로세서(120)는 이전 및 현재 통신 상태가 양호 상태인 경우, TCP 소켓 상태가 새로운 커넥션 설정 요청 상태인지 확인하거나, 커넥션 설정 요청에 대한 확인 응답이 없었는지 확인할 수 있다. 다양한 실시예들에서, 프로세서(120)는 소켓 아이디를 이용하여 재전송 리스트를 생성할 수 있다. 예를 들면, 프로세서(120)는 현재 통신 상태가 양호 상태인 경우, 애플리케이션이 새로운 재전송을 수행하는지 확인할 수 있다. 다양한 실시예들에서, 프로세서(120)는 소켓 아이디를 이용하여 커넥션 해제 대기 상태 리스트를 생성할 수 있다. 예를 들면, 프로세서(120)는 현재 통신 상태가 양호 상태인 경우, TCP 소켓 상태가 새로운 커넥션 해제 대기 상태인지 확인할 수 있다.Referring to Table 1, the
다양한 실시예들에서, 프로세서(120)는 IP 주소를 이용하여 TCP 소켓 상태를 식별할 수 있다. 예를 들어, 프로세서(120)는 IP 주소를 이용하여 새로운 커넥션 해제 상태 리스트를 생성할 수 있다. 예를 들면, 프로세서(120)는 현재 통신 상태가 양호 상태인 경우, IP 주소를 이용하여 TCP 소켓 상태가 새로운 커넥션 해제 상태인지 확인할 수 있다. 다양한 실시예들에서, 프로세서(120)는 IP 주소를 이용하여 최종 확인 응답 상태 리스트를 생성할 수 있다. 예를 들면, 프로세서(120)는 현재 통신 상태가 양호 상태인 경우, TCP 소켓 상태가 최종 확인 응답 상태로 남아있는지 확인할 수 있다. 다양한 실시예들에서, 프로세서(120)는 IP 주소를 이용하여 클로징 상태 리스트를 생성할 수 있다. 예를 들면, 프로세서(120)는 현재 통신 상태가 양호 상태인 경우, TCP 소켓 상태가 클로징 상태로 남아있는지 확인할 수 있다. 다양한 실시예들에서, 프로세서(120)는 IP 주소를 이용하여 시간 대기 상태 리스트를 생성할 수 있다. 예를 들면, 프로세서(120)는 이전 및 현재 상태에서 TCP 소켓 상태가 새로운 시간 대기 상태인지 확인할 수 있다. 상술한 동작들을 통해, 프로세서(120)는 양호 상태일 때의 TCP 소켓 상태의 리스트를 소켓 아이디 또는 IP 주소를 이용하여 갱신할 수 있다.In various embodiments, the
상술한 바와 같이, 프로세서(120)는 전자 장치(101)의 전송 프로토콜의 상태를 TCP 소켓의 아이디 및 IP 주소를 사용하여 식별할 수 있다. 예를 들어, 프로세서(120)는 각 MAC 주소 및 IP 주소에 해당하는 TCP 소켓의 상태를 식별함으로써 전자 장치(101)의 통신 상태를 결정할 수 있다. 예를 들면, <표 2>와 같이 프로세서(120)는 특정 애플리케이션을 통해 통신을 수행하는 동안, 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다. 예를 들어, 프로세서(120)는 각 MAC 주소 및 IP 주소에 해당하는 TCP 소켓의 상태를 식별함으로써 전자 장치(101)의 통신 상태를 결정할 수 있다. 예를 들면, <표 2>와 같이 프로세서(120)는 특정 애플리케이션을 통해 통신을 수행하는 동안, 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다. As described above, the
<표 2>를 참고하면, 프로세서(120)는 각 MAC 주소 및 IP 주소에 따른 TCP 소켓 상태를 검출할 수 있다. 프로세서(120)는 검출된 TCP 소켓 상태를 식별함으로써, 전자 장치(101)의 통신 상태를 결정할 수 있다. 예를 들면, 프로세서(120)는 AAA 내지 EEE 애플리케이션을 통한 데이터 송수신이 완료되는 경우(예: 영상 스트리밍이 완료된 경우), 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다. 이 경우, 프로세서(120)는 전자 장치(101)의 TCP 소켓 상태가 감지 상태와 다수의 커넥션 설정 상태와 같은 영구적인 TCP 소켓 상태인 것을 식별함으로써 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다.Referring to Table 2, the
일 실시예에서, 프로세서(120)는 <표 3>과 같이, 특정 애플리케이션을 통해 통신을 수행하는 동안 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다.In one embodiment, the
<표 3>을 참고하면, 프로세서(120)는 각 MAC 주소 및 IP 주소에 따른 TCP 소켓 상태를 검출할 수 있다. 프로세서(120)는 검출된 TCP 소켓 상태를 식별함으로써 전자 장치(101)의 통신 상태를 결정할 수 있다. 예를 들면, 프로세서(120)는 AAA 내지 GGG 애플리케이션을 통한 데이터 송수신이 완료되는 경우(예: 영상 스트리밍이 완료된 경우), 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다. 이 경우, 프로세서(120)는 전자 장치(101)의 TCP 소켓 상태가 다수의 커넥션 설정 상태에서 커넥션 해제 대기 상태로 변경된 것을 식별함으로써 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다.Referring to Table 3, the
일 실시예에서, 프로세서(120)는 <표 4>와 같이, 특정 애플리케이션을 통해 통신을 수행하는 동안 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다.In one embodiment, the
<표 4>를 참고하면, 프로세서(120)는 각 MAC 주소 및 IP 주소에 따른 TCP 소켓 상태를 검출할 수 있다. 프로세서(120)는 검출된 TCP 소켓 상태를 식별함으로써 전자 장치(101)의 통신 상태를 결정할 수 있다. 예를 들면, 프로세서(120)는 AAA 내지 EEE 애플리케이션을 통한 데이터 송수신이 완료되는 경우(예: 메시지 송수이 완료된 경우), 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다. 이 경우, 프로세서(120)는 전자 장치(101)의 TCP 소켓 상태가 커넥션 설정 상태 및 제1 커넥션 해제 상태만 있는 것을 식별함으로써, 전자 장치(101)의 통신 상태를 블락 상태로 결정할 수 있다.Referring to Table 4, the
일 실시예에서, 프로세서(120)는 <표 5>와 같이, 특정 애플리케이션을 통해 통신을 수행하는 동안 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다.In one embodiment, the
<표 5>를 참고하면, 프로세서(120)는 각 MAC 주소 및 IP 주소에 따른 TCP 소켓 상태를 검출할 수 있다. 프로세서(120)는 검출된 TCP 소켓 상태를 식별함으로써 전자 장치(101)의 통신 상태를 결정할 수 있다. 예를 들면, 프로세서(120)는 AAA 내지 EEE 애플리케이션을 통한 데이터 송수신이 완료되는 경우, 전자 장치(101)의 TCP 소켓 상태를 검출할 수 있다. 이 경우, 프로세서(120)는 전자 장치(101)의 TCP 소켓 상태가 커넥션 설정 상태, 커넥션 해제 대기 상태 및 제1 커넥션 해제 상태인 것을 식별함으로써, 전자 장치(101)의 통신 상태를 부족 상태로 결정할 수 있다.Referring to Table 5, the
일 실시예에서, 프로세서(120)는 <표 6>과 같이, 특정 애플리케이션을 통해 통신을 수행하는 동안 전자 장치(101)의 재전송 카운터를 포함하는 정보를 검출할 수 있다.In one embodiment, the
<표 6>을 참고하면, 프로세서(120)는 각 회선 번호에 대한 로컬 IP 주소, 원격 IP 주소, 소켓 상태, 송신 큐, 수신 큐, 타이머, 및 재전송 카운터를 검출할 수 있다. 프로세서(120)는 검출된 송신 큐 값 및 재전송 카운터 값을 식별함으로써 전자 장치의 통신 상태를 결정할 수 있다. 예를 들면, 프로세서(120)는 제1 송신 큐 값이 0이고, 제2 송신 큐 값이 0이 아닌 값인 것을 식별하고, 회선 번호 2가 전송 계층에 해당하는 것이라고 결정할 수 있다. 프로세서(120)는 재전송 카운터 값을 확인할 수 있다. 예를 들어, 프로세서(120)는 제1 재전송 카운터 값은 0이나, 제2 재전송 카운터 값은 0이 아닌 값인 것을 식별할 수 있다. 프로세서(120)는 재전송 카운터 값이 0이 아닌 값인 것을 식별함으로써, 전자 장치(101)의 통신 상태를 블락 상태로 결정할 수 있다.Referring to Table 6, the
도 15a는 본 발명의 다양한 실시예들에 따른 통신 상태가 블락 상태인 경우 전자 장치에 표시되는 전자 장치의 인터페이스의 예시를 도시한다. 이하 설명에서 전자 장치는 도 1의 전자 장치(101)의 전체 또는 일부(예: 프로세서(120) 및 표시 장치(160))를 포함할 수 있다.15A illustrates an example of an interface of an electronic device displayed in an electronic device when the communication status is in a block status according to various embodiments of the present invention. The electronic device in the following description may include all or a portion (e.g.,
도 15a를 참고하면, 프로세서(120)는 채팅 어플리케이션의 TCP 소켓 상태를 식별함으로써, 채팅 어플리케이션이 네트워크 방화벽에 의해 블락되는 것을 검출할 수 있다. 다양한 실시예들에서 프로세서(120)는 TCP 소켓 상태를 식별하기 위해 소켓 아이디 및 IP 주소를 사용할 수 있다. 프로세서(120)는 애플리케이션이 네트워크 방화벽에 의해 블락되는 경우, 메시지 전송이 제대로 이루어지지 않는 것을 표시하는 제1 지시자(1501) 및 제2 지시자(1503)를 표시 장치(160)에 표시하도록 제어할 수 있다. 예를 들면, 프로세서(120)는 채팅 어플리케이션의 커넥션 설정 소켓의 개수(1505)가 특정 임계치보다 작은 경우, 및 재전송 카운트(1507)가 0이 아닌 경우를 식별할 수 있다. 이를 통해, 프로세서(120)는 채팅 어플리케이션이 네트워크 방화벽에 의해 블락된 것으로 볼 수 있고, 전자 장치(101)의 통신 상태를 블락 상태로 결정할 수 있다.Referring to FIG. 15A, the
도 15b는 본 발명의 다양한 실시예들에 따른 통신 상태가 양호 상태인 경우 전자 장치에 표시되는 전자 장치의 인터페이스의 예시를 도시한다. 이하 설명에서 전자 장치는 도 1의 전자 장치(101)의 전체 또는 일부(예: 프로세서(120) 및 표시 장치(160))를 포함할 수 있다.Figure 15B illustrates an example of an interface of an electronic device displayed on an electronic device when the communication state is in a good state according to various embodiments of the present invention. The electronic device in the following description may include all or a portion (e.g.,
도 15b를 참고하면, 프로세서(120)는 채팅 어플리케이션의 TCP 소켓 상태를 식별함으로써, 채팅 어플리케이션이 네트워크 방화벽에 의해 블락되지 않거나 지연이 없는 것을 검출할 수 있다. 다양한 실시예들에서 프로세서(120)는 TCP 소켓 상태를 식별하기 위해 소켓 아이디 및 IP 주소를 사용할 수 있다. 프로세서(120)는 애플리케이션이 네트워크 방화벽에 의해 블락되지 않거나 지연이 없는 경우, 메시지 전송이 제대로 이루어지는 것을 표시하는 지시자(1509)를 표시 장치(160)에 표시하도록 제어할 수 있다. 예를 들면, 프로세서(120)는 채팅 어플리케이션의 커넥션 설정 소켓의 개수(1511)가 임계치보다 큰 경우, 및 재전송 카운트(1513)의 개수가 0인 경우를 식별할 수 있다. 이를 통해, 프로세서(120)는 채팅 어플리케이션이 네트워크 방화벽에 의해 블락되지 않고, 메시지 전송이 원활하게 이루어지는 것으로 결정할 수 있다. 즉, 프로세서(120)는 전자 장치(101)의 통신 상태를 양호 상태로 결정할 수 있다.Referring to FIG. 15B, the
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치 및 그 동작 방법은, 전송 프로토콜 상태 즉, TCP 소켓 상태를 식별하고, 식별한 TCP 소켓 상태에 기반하여, 전자 장치(101)의 통신 상태를 양호 상태, 부족 상태, 블락 상태 및 부진 상태 중 하나로 결정할 수 있고, 결정된 통신 상태에 기반하여 네트워크를 변경함으로써, 사용자에게 최적의 네트워크 환경을 제공할 수 있다.As described above, the electronic device and its method of operation according to various embodiments identify a transmission protocol state, i.e., a TCP socket state, and determine, based on the identified TCP socket state, that the communication state of the
일반적으로 Wi-Fi 무선 네트워크 기술은 전자 장치가 적어도 하나의 외부 통신 제공 장치(예: AP)를 통하여 통신하는 것을 나타낸다. 전자 장치가 해당 외부 통신 제공 장치로부터 수신하는 신호의 세기와 별개로, 실질적인 인터넷 연결이 존재할 수 있다. 상술한 실질적인 인터넷 연결은 외부 통신 제공 장치와 인터넷(예: 클라우드)간의 연결을 의미할 수 있고, 이러한 연결은 백홀 연결로 지칭될 수 있다.Generally, Wi-Fi wireless network technology indicates that an electronic device communicates through at least one external communication providing device (e.g., an AP). Apart from the strength of the signal that the electronic device receives from the external communication provision device, there may be a substantial Internet connection. The actual Internet connection described above may refer to a connection between an external communication providing device and the Internet (e.g., a cloud), and such a connection may be referred to as a backhaul connection.
Wi-Fi와 같은 무선 네트워크 기술에서는 통신을 수행하기 위한 단위로 소켓을 사용할 수 있다. 대부분의 데이터 송신 수행 시, 소켓은 통신을 수행하는 복수의 엔티티들 간 통신을 연결하는 종점, 즉 시작과 끝일 수 있다. 현재 TCP 소켓 방식은 HTTP(hypertext transfer protocol), FTP(file transfer protocol) 및 QUIC(quick UDP internet connections)에서도 사용되고 있다. 하나의 통신 메시지(예: 메신저 애플리케이션을 통해 전송한 이모티콘 1개)를 송수신하기 위하여, 많은 수의 소켓들이 개방(open)되었다가 해제(close)될 수 있다. 상술한 소켓들은 각각 일정한 주기(단계)를 거쳐 형성 또는 소멸될 수 있고, 각 단계에서 특정한 상태로 존재할 수 있다. 후술하는 도 16은 TCP 소켓이 생성 및 소멸하는 경우 소켓 상태가 변경되는 과정을 나타내는 시퀀스 다이어그램을 도시한다.In a wireless network technology such as Wi-Fi, a socket can be used as a unit for performing communication. In most data transmission implementations, a socket may be an endpoint that connects communications between a plurality of entities performing communication, i.e., start and end. Currently, the TCP socket method is also used in hypertext transfer protocol (HTTP), file transfer protocol (FTP), and QUIC (quick UDP internet connections). A large number of sockets can be opened and closed to send and receive one communication message (e.g., one emoticon sent via the messenger application). The above-described sockets can be formed or destroyed through a certain period (step), respectively, and can exist in a specific state in each step. FIG. 16, which will be described later, shows a sequence diagram illustrating a process of changing a socket state when a TCP socket is created and destroyed.
도 16은 본 발명의 다양한 실시예들에 따른 전송 프로토콜 소켓의 상태 변경을 나타내는 시퀀스 다이어그램(1600)을 도시한다.FIG. 16 illustrates a sequence diagram 1600 illustrating a state change of a transport protocol socket in accordance with various embodiments of the present invention.
도 16을 참고하면, 다양한 실시예들에 따른 클라이언트(예: 도 5의 클라이언트(501)) 및 서버(예: 도 5의 서버(503))의 TCP 소켓 상태가 특정한 이벤트에 대응하여 다른 상태로 변경될 수 있다. 도 16에서, 점선으로 표시된 화살표(1601)는 클라이언트(501)에 대한 정상적인(normal) 변환(transition)을 의미할 수 있고, 선으로 표시된 화살표(1602)는 서버(503)에 대한 정상적인 변환을 의미할 수 있고, "appl"(1603)은 어플리케이션(application)이 동작하는 경우, 상태 변환을 의미할 수 있고, "recv"(1604)는 세그먼트가 수신되는 경우, 상태 변환을 의미할 수 있고, "send"(1605)는 변환 시 전송되는 것을 의미할 수 있다. 16, the TCP socket state of a client (e.g.,
다양한 실시예들에서, 변경 단계는 커넥션 종료(CLOSED)(1610) 상태에서 시작할 수 있다. 이벤트(1611)에서 어플리케이션은 패시브 개방(passive open) 상태가 될 수 있고, 클라이언트(501)에서 서버(503)으로 전송되는 것 없이, TCP 소켓 상태가 커넥션 종료 상태(1610)에서 감지(LISTEN)(1612) 상태로 변경될 수 있다. 이벤트(1613)에서 어플리케이션은 엑티브 개방(active open) 상태가 될 수 있고, 클라이언트(501)에서 서버(503)로 커넥션 설정을 요청하는 신호(예: SYN 패킷)가 전송되어 TCP 소켓 상태가 커넥션 종료 상태(1610)에서 커넥션 설정 요청(SYN_SENT)(1616) 상태로 변경될 수 있다. 커넥션 설정 요청(1616) 상태는 엑티브 개방을 나타낼 수 있다. 이벤트(1615)에서 서버(503)가 클라이언트(501)로부터 커넥션 설정을 요청하는 신호(예: SYN 패킷)를 수신하는 경우 감지(1612) 상태에서 커넥션 설정 요청 수신(SYN_RCVD)(1614) 상태로 TCP 소켓 상태가 변경되고, 서버(503)가 클라이언트(501)로 커넥션 설청 요청에 대한 확인 응답(예: SYN, ACK 패킷)을 송신할 수 있다. 이벤트(1617)에서 서버(503)는 클라이언트(501)로부터 커넥션 설정을 요청하는 신호를 수신할 수 있고, 서버(503)는 클라이언트(501)로 커넥션 설정 요청에 대한 확인 응답을 송신할 수 있다. 이벤트(1619)에서, 어플리케이션은 차단(close) 또는 타임아웃(timeout) 상태가 될 수 있다. 이벤트(1621)에서, 서버(503)가 클라이언트(501)로부터 ACK 패킷을 수신하는 경우, 커넥션 설정 요청 수신(1614) 상태에서 커넥션 설정(1618) 상태로 TCP 소켓 상태가 변경될 수 있고, 서버(503)는 클라이언트(501)로 아무것도 전송하지 않을 수 있다. 이벤트(1623)에서, 클라이언트(501)가 서버(503)로부터 SYN, ACK 패킷을 수신하는 경우, 커넥션 설정 요청(1616) 상태에서 커넥션 설정(1618) 상태로 TCP 소켓 상태가 변경될 수 있고, 클라이언트(501)은 서버(503)으로 ACK 패킷을 송신할 수 있다. 이벤트(1625)에서, 어플리케이션은 차단 상태가 될 수 있고, 클라이언트(501)는 서버(503)로 커넥션 해제 신호(예: FIN 패킷)를 송신할 수 있다. 이벤트(1627)에서, 어플리케이션은 차단 상태가 될 수 있고, 클라이언트(501)는 서버(503)로 커넥션 해제 신호를 송신할 수 있다. 이벤트(1629)에서, 서버(503)가 FIN 패킷을 수신하는 경우, TCP 소켓 상태가 커넥션 설정(1618) 상태에서 커넥션 해제 대기(CLOSE_WAIT)(1620) 상태로 변경될 수 있고, 서버(503)는 클라이언트(501)로 ACK 패킷을 송신할 수 있다. 일 실시예에서, 커넥션 해제 대기(1620) 상태는 수동 차단(passive close) 상태를 의미할 수 있다. 이벤트(1631)에서, 클라이언트(501)가 서버(503)로부터 FIN 패킷을 수신하는 경우, TCP 소켓 상태는 제1 커넥션 해제(FIN_WAIT_1)(1622) 상태에서 클로징(CLOSING)(1624) 상태로 변경될 수 있고, 클라이언트(501)는 서버(503)로 ACK 패킷을 송신할 수 있다. 이벤트(1633)에서, 어플리케이션은 차단 상태가 될 수 있고, 서버(503)는 클라이언트(501)로 FIN 패킷을 송신할 수 있다. 이벤트(1635)에서, 클라이언트(501)가 서버(503)로부터 ACK 패킷을 수신하는 경우, TCP 소켓 상태는 제1 커넥션 해제(1622) 상태에서 제2 커넥션 해제(FIN_WAIT_2)(1628) 상태로 변경될 수 있고, 클라이언트(501)는 서버(503)로 아무것도 전송하지 않을 수 있다. 이벤트(1637)에서, 클라이언트가 FIN, ACK 패킷을 수신하는 경우, TCP 소켓 상태는 제1 커넥션 해제(1622) 상태에서 시간 대기(TIME_WAIT)(1630) 상태로 변경될 수 있고, 클라이언트(501)는 서버(503)로 ACK 패킷을 송신할 수 있다. 이벤트(1639)에서, 클라이언트(501)이 서버(503)로부터 ACK 패킷을 수신하는 경우, TCP 소켓 상태는 클로징(1624) 상태에서 시간 대기(1630) 상태로 변경될 수 있고, 클라이언트(501)는 서버(503)로 아무것도 송신하지 않을 수 있다. 이벤트(1641)에서, 클라이언트(501)가 서버(503)로부터 ACK 패킷을 수신하는 경우, 최종 확인 응답(LAST_ACK)(1626) 상태가 커넥션 해제(1610) 상태로 변경될 수 있고, 클라이언트(501)는 서버(503)로 아무것도 송신하지 않을 수 있다. 상술한 바와 같이 TCP 소켓이 통신을 수행하는 과정에서 생성부터 소멸까지 모든 단계를 적어도 한 번씩은 통과한다는 것을 이용하여 전자 장치(101)에 대한 다양한 정보들이 얻어질 수 있다. 예를 들어, 엑티브 상태인 모든 소켓들 중 엑티브 상태인 소켓들의 카운트를 분석함으로써, 백홀 연결 상태 또는 연결 품질에 대한 정보가 얻어질 수 있다. In various embodiments, the changing step may start in the
일반적으로 Wi-Fi 백홀 연결의 유무를 조사하기 위하여 정기적으로 Wi-Fi 채널의 품질과 백홀 연결을 확인하는 방법이 사용될 수 있다. 상술한 확인 방법은 현재 통신 상태에 따라 유동적으로 적용되는 것이 아니라, 지정된 시간마다, 송신 패킷 및 수신 패킷의 수가 적은 경우, 또는 RSSI가 약한 경우에 정기적으로 사용될 수 있다. 상술한 바와 같은 조건이 만족되는 경우에만 백홀 연결 확인이 수행되는 경우, 네트워크 상황 악화로 인하여 송신 패킷 및 수신 패킷의 수가 적은 경우와, 사용자가 전자 장치를 사용하지 아니하여 송신 패킷 및 수신 패킷의 수가 적은 경우가 구분되지 않을 수 있다. 송신 패킷 및 수신 패킷은 사용자가 능동적으로 인터넷을 사용하고 있는 경우에만 변경되는 것으로서, 백그라운트 트래픽(background traffic)의 경우나, 사용자가 잠시 전자 장치를 사용하지 않는 경우에는 송신 패킷 및 수신 패킷의 변화를 감지하는 것이 어려울 수 있다. 송신 패킷 및 수신 패킷의 수가 적은 경우에만 백홀 연결 확인이 수행되는 경우, 송신 품질 및 수신 품질은 양호하나, 백홀 연결 문제로 인하여 인터넷이 동작하지 않는 상황은 감지되기 어려울 수 있다. Wi-Fi 연결 품질이 낮은 경우, 물리 링크 계층(physical link layer)의 특징들이 백홀 연결 유뮤를 확인하는데 이용될 수 있다. 신호의 송수신 품질이 양호하지 않은 경우에도, 반사 신호로 인하여 전자 장치에서 인터넷이 동작할 수 있고, 통신 제공 장치(예: AP)로부터의 신호 품질이 양호하더라도, 백홀 연결 실패로 인하여 인터넷 연결이 안되는 경우가 발생할 수 있다. 사용자가 Wi-Fi를 제공하는 AP에 가까이 위치해 있는 경우, 즉, 신호의 품질이 양호한 상태에서 백홀 연결에 문제가 생기는 경우, 상술한 백홀 연결을 확인하는 일반적인 방법은, 지정된 시간이 지난 후 백홀 연결 검사를 수행하므로, 백홀 연결 실패 검출이 지연될 수 있다. 본 발명의 다양한 실시예들은 전자 장치가 백홀 연결에 실패하는 경우, 전송 프로토콜 소켓(예: TCP 소켓)상태 카운트를 이용하여 보다 빠르게 백홀 실패를 감지할 수 있다. 다양한 실시예에서, 백홀 실패가 감지되는 경우, 전자 장치는 다른 AP나 셀룰러 통신으로의 변경을 위한 인터페이스를 제공할 수 있다. 이를 통해, 통신을 수행하는 사용자 경험이 향상될 수 있다. 다양한 실시예에서, 백홀 실패가 감지되는 경우, 전자 장치는 감지된 백홀 실패 상태를 표시 장치에 표시하거나, 또는 표시하지 아니하고 자동으로 다른 네트워크로의 변경을 수행할 수 있다. 다양한 실시예들에서, 전자 장치는, 백홀 실패 시 네트워크 자동 변경에 대한 옵션을 사용자에게 제공할 수 있다. 다양한 실시예에서, 전자 장치는 백홀에 문제가 있을 확률이 높은 상황에서만 백홀 연결 검사를 수행하므로, 불필요한 동작이 줄어들어 배터리 효율이 강화될 수 있다. 후술하는 도 17 내지 32는 전자 장치가 전송 프로토콜의 상태 및 전송 프로토콜의 카운트 중 적어도 하나를 확인함으로써 백홀 실패를 결정하고, 백홀 실패에 대한 제어를 수행하는 것을 설명한다.In general, the quality of the Wi-Fi channel and the way backhaul connections are checked on a regular basis can be used to determine if there is a Wi-Fi backhaul connection. The above-described checking method is not applied flexibly according to the current communication state, but can be used periodically when the number of transmission packets and received packets is small, or when the RSSI is weak, every designated time. In the case where the backhaul connection confirmation is performed only when the above conditions are satisfied, when the number of transmission packets and reception packets is small due to deterioration of the network conditions and when the user does not use the electronic device and the number of transmission packets and reception packets Small cases may not be distinguished. The transmission packet and the reception packet are changed only when the user is actively using the Internet. In the case of back-ground traffic or when the user does not use the electronic device for a while, Detecting changes can be difficult. When the backhaul connection confirmation is performed only when the number of transmission packets and reception packets is small, the transmission quality and the reception quality are good, but it may be difficult to detect the situation where the Internet is not operated due to the backhaul connection problem. When the quality of the Wi-Fi connection is low, features of the physical link layer can be used to identify the backhaul connection. Even if the transmission / reception quality of the signal is not good, the Internet can operate in the electronic device due to the reflected signal, and even if the signal quality from the communication providing device (e.g. AP) is good, Can occur. If the user is located close to an AP that provides Wi-Fi, i.e., if the quality of the signal is good and there is a problem with the backhaul connection, then the usual way to verify the backhaul connection described above is to connect the backhaul connection The backhaul connection failure detection can be delayed. Various embodiments of the present invention can more quickly detect a backhaul failure using a transport protocol socket (e.g., TCP socket) state count if the electronic device fails to connect to the backhaul. In various embodiments, when a backhaul failure is detected, the electronic device may provide an interface for change to another AP or cellular communication. Through this, the user experience of performing communication can be improved. In various embodiments, when a backhaul failure is detected, the electronic device may display the detected backhaul failure status on the display device, or may automatically change to another network without displaying it. In various embodiments, the electronic device may provide the user with an option for network automatic change upon backhaul failure. In various embodiments, the electronic device performs the backhaul connection test only in situations where there is a high probability that there will be a problem with the backhaul, thereby reducing unnecessary operations and enhancing battery efficiency. 17 to 32, which will be described later, explain that the electronic device determines the backhaul failure by checking at least one of the state of the transmission protocol and the count of the transmission protocol, and performs control for the backhaul failure.
도 17은 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 상태 및 전송 프로토콜의 카운트 중 적어도 하나에 기반하여 백홀 실패를 결정하는 전자 장치의 흐름도(1700)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 17의 동작 1701 및 동작 1703은 도 3의 동작 301의 일부이고, 도 17의 동작 1705는 도 3의 동작 303의 일부로서, 예시된 흐름도(1700)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 17 illustrates a flow diagram 1700 of an electronic device that determines a backhaul failure based on at least one of a state of a transport protocol and a count of a transport protocol in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 17 is part of
도 17을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 1701에서, 전송 프로토콜의 상태 및 전송 프로토콜의 카운트 중 적어도 하나를 확인할 수 있다. 예를 들면, 프로세서(120)는 전송 프로토콜(즉, TCP)의 총 소켓 카운트 및 커넥션 설정 상태에 해당하는 소켓 카운트, TCP 소켓의 재전송 세그먼트 또는 수신 세그먼트를 확인할 수 있다.17, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 1703에서, 확인된 전송 프로토콜의 상태 및 전송 프로토콜의 카운트 중 적어도 하나에 기반하여 백홀 실패를 결정할 수 있다. 일 실시예에서, 프로세서(120)는 전송 프로토콜의 총 소켓 카운트는 증가하나, 이들 중 커넥션 설정 상태에 해당하는 소켓 카운트는 증가하지 않는 경우, 백홀 실패를 결정할 수 있다. 일 실시예에서, 프로세서(120)는 수신 패킷 또는 송신 패킷이 부족하고, 전송 프로토콜의 재전송 세그먼트가 증가하는 경우, 백홀 실패를 결정할 수 있다. 일 실시예에서, 프로세서(120)는 수신 패킷 또는 송신 패킷이 부족하고, 전송 프로토콜의 수신 세그먼트 에러가 확인되는 경우, 백홀 실패를 결정할 수 있다. 일 실시예에서, 프로세서(120)는 도 18과 같은 인터페이스가 표시되는 상황에서, 백홀 실패를 결정할 수 있다. 일 실시예에서, 전자 장치(101)의 표시 장치(예: 도 1의 표시 장치(160))에 Wi-Fi 신호 세기를 나타내는 지시자(1802)는 Wi-Fi 신호 세기가 양호함을 나타낼 수 있다. 예를 들면, Wi-Fi 신호 세기를 나타내는 지시자(1802)가 표시하는 4단계 중, 하나 이상의 단계가 활성화되어 표시되는 경우, Wi-Fi 신호 세기가 양호한 것으로 볼 수 있다, 예를 들면, 도 18에서 Wi-Fi 신호 세기를 나타내는 지시자(1802)는 4단계 모두 활성화된 것을 표시할 수 있다. 일 실시예에서, Wi-Fi 신호 세기를 나타내는 지시자(1802)가 Wi-Fi 신호 세기가 양호함을 나타내나, 메시지 전송 실패를 나타내는 지시자(1804 내지 1808)가 표시되는 경우, 프로세서(120)는 백홀 연결에 문제가 있음을 인지하고, 백홀 실패를 결정할 수 있다. According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 1705에서, 결정된 백홀 실패에 기반하여 백홀 실패에 대한 제어를 수행할 수 있다. 예를 들면, 프로세서(120)는 전자 장치(101)의 표시 장치(160)에 백홀 실패를 표시하고, 사용자가 네트워크를 변경할 수 있도록 네트워크 변경 지시자를 표시할 수 있다. 다양한 실시예들에서, 네트워크 변경 지시자는 통신을 위한 네트워크를 다른 AP 또는 셀룰러 네트워크로 변경하기 위한 지시자들을 포함할 수 있다. 다양한 실시예들에서, 프로세서(120)는 백홀 실패 결정 시 외부 전자 장치들과 결정된 백홀 실패에 대한 정보를 공유할 수 있다. 후술하는 도 19 내지 24는 백홀 실패를 결정하는 전자 장치(101)의 흐름도 및 이에 대한 예시를 도시한다.According to various embodiments, the
도 19는 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 총 카운트와 커넥션 설정 카운트에 기반하여 백홀 실패를 결정하는 전자 장치의 흐름도(1900)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 19의 동작 1901은 도 17의 동작 1701의 일부이고, 도 19의 동작 1903은 도 17의 동작 1703의 일부로서, 예시된 흐름도(1900)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.19 illustrates a flow diagram 1900 of an electronic device that determines a backhaul failure based on a total count of connection and a connection establishment count in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 19 is part of
도 19를 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 1901에서, 전송 프로토콜의 총 소켓 카운트의 증가와 커넥션 설정 카운트의 유지 또는 감소를 확인할 수 있다. 일 실시예에서, 프로세서(120)는 TCP 소켓 카운트의 총 개수는 증가하나, 이들 중 커넥션 설정 상태로 접어든 소켓 카운트는 증가하지 않는 것을 확인할 수 있다. 예를 들면, 상술한 상태는 임의의 시점부터 백홀 연결이 단절되어 커넥션 설정 상태로 접어든 소켓이 감소하고, 어플리케이션에서 전송하고자 하는 패킷들이 쌓여가는 상태를 의미할 수 있다. 일 실시예에서, 전송 프로토콜의 상태를 나타내면 도 20과 같다. 도 20의 그래프(2000)는 가로 축이 폴링(polling) 사이클(cycle), 세로 축이 TCP 소켓 카운트(2002)이다. 예를 들면, 프로세서(120)는 폴링 사이클이 진행되는 동안, 새로운 커넥션 설정(2006)의 카운트는 증가하지 아니하고, 새로운 커넥션 설정 요청(2008)의 카운트는 증가하는 것을 확인할 수 있다. 예를 들면, 도 20에서, 새로운 커넥션 설정 요청(2008)의 카운트는 0으로 고정되어 증가하지 않을 수 있다. 프로세서(120)는 폴링 사이클(2004)이 1에서 2가 되는 경우, 즉, 폴링 사이클(2004)이 1에서 2로 넘어가는 순간에 새로운 커넥션 설정 요청(2008)의 카운트가 0에서 2로 증가하고, 폴링 사이클(2004)이 7에서 9가 되는 경우, 즉, 폴링 사이클(2004)이 7에서 9로 넘어가는 순간에, 새로운 커넥션 설정 요청(2008)의 카운트가 0에서 3으로 증가하고, 폴링 사이클(2004)이 11에서 12가 되는 경우, 즉, 폴링 사이클(2004)이 11에서 12로 넘어가는 순간에 새로운 커넥션 설정 요청(2008)의 카운트가 0에서 1로 증가하고, 폴링 사이클(2004)이 13에서 15가 되는 경우, 즉, 폴링 사이클(2004)이 13에서 15로 넘어가는 순간에 새로운 커넥션 설정 요청(2008)의 카운트가 0에서 2로 증가하는 것을 확인할 수 있다. 커넥션 설정 요청(2008)의 카운트의 증가로 인하여, 전송 프로토콜의 총 소켓 카운트는 증가할 수 있다. Referring to FIG. 19, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 1903에서, 확인 결과에 기반하여 백홀 실패를 결정할 수 있다. 예를 들면, 프로세서(120)는 상술한 도 20과 같이, 새로운 커넥션 설정 요청 카운트가 증가함으로써 TCP 소켓 카운트의 총 개수는 증가하나, 커넥션 설정 상태의 소켓 카운트가 증가하지 않는 상태를 확인하고, 백홀 실패가 발생한 것으로 결정할 수 있다. 일 실시예에서, 프로세서(120)는 TCP 소켓 카운트의 총 개수와 커넥션 설정 상태의 소켓 카운트의 차이를 임계값과 비교함으로써 백홀 실패를 결정할 수 있다. 예를 들면, 프로세서(120)는 응답(예: syn 패킷)이 수신되지 않는 상태가 임계 시간 이상으로 지속되는 경우 또는, TCP 소켓 카운트의 총 개수와 커넥션 설정 상태의 소켓 카운트의 차이가 임계값보다 크고, 임계 시간 동안 이러한 상태가 지속되는 경우 백홀 실패를 결정할 수 있다.According to various embodiments, the
도 21은 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 재전송 상태에 기반하여 백홀 실패를 결정하는 전자 장치의 흐름도(2100)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 21의 동작 2101은 도 17의 동작 1701의 일부이고, 도 21의 동작 2103은 도 17의 동작 1703의 일부로서, 예시된 흐름도(2100)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.21 shows a flow diagram 2100 of an electronic device for determining a backhaul failure based on a retransmission state of a transmission protocol according to various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 17 is a part of
도 21을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 2101에서, 수신 패킷 또는 송신 패킷의 부족과 전송 프로토콜의 재전송 세그먼트의 증가를 확인할 수 있다. 예를 들면, 프로세서(120)는 수신하려고 하는 패킷 및 송신하려고 하는 패킷의 수가 감소하는 경우, 즉, 악화된 송신 및 수신 환경인 경우, 송신에 실패한 패킷들이 증가한 상태를 확인할 수 있다. 일 실시예에서, 전송 프로토콜의 상태를 나타내면 도 22a와 같다. 도 22a의 그래프(2200)는 가로 축이 폴링 사이클(2204), 세로 축이 카운트(2202)이다. 예를 들면, 프로세서(120)는 폴링 사이클이 진행되는 동안, 전송 프로토콜 송신 패킷(2206)과 전송 프로토콜 수신 패킷(2208)의 카운트는 낮으나, 전송 프로토콜 재전송 세그먼트(2210)의 카운트는 높은 것을 확인할 수 있다. 예를 들면, 도 22a에서, 프로세서(120)는 폴링 사이클(2204)이 4에서 5가 되는 경우, 즉, 폴링 사이클(2204)이 4에서 5로 넘어가는 순간에, 전송 프로토콜 송신 패킷(2206)의 카운트는 4로 유지되고, 전송 프로토콜 수신 패킷(2208)의 카운트는 2에서 0으로 감소하고, 전송 프로토콜 재전송 세그먼트(2210)는 1로 유지되는 것을 확인할 수 있다. 상술한 확인 결과에 따라, 프로세서(120)는 상대적으로 전송 프로토콜 송신 패킷(2206)의 카운트는 낮으나, 전송 프로토콜 재전송 세그먼트(2210)의 카운트는 높은 것을 확인할 수 있다. 21, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 2103에서, 확인 결과에 기반하여 백홀 실패를 결정할 수 있다. 예를 들면, 프로세서(120)는 도 22b와 같이, 시간의 변화에 따라 전송 프로토콜의 재전송 세그먼트의 증가를 확인하고, 백홀 실패를 결정할 수 있다. 예들 들면, 시간 T0 에서, 클라이언트(예: 도 5의 클라이언트(501))는 서버(예: 도 5의 서버(503))로 데이터들(2251-1 내지 2251-4)을 송신할 수 있다. 일 실시예에서, 클라이언트(501)는 이들 중 데이터 3(2251-3)의 송신에 실패하고, 데이터 3을 재전송(2251-4)할 수 있다. 서버(503)는 클라이언트(501)로부터 데이터를 수신하고, 이에 대한 확인 응답들(2253-1 내지 2253-3)을 클라이언트(501)로 송신할 수 있다. T0에서 TCP 소켓의 카운트 및 세그먼트는 하기의 <표 7>과 같다.According to various embodiments, the
<표 7>을 참고하면, TCP 소켓의 총 소켓 카운트는 15, 커넥션 설정 카운트는 10, 인세그먼트 에러(in-segment error) 카운트는 18, 재전송 카운트는 17, 송신된 세그먼트들은 1000이다. 일 실시예에 따르면, 시간 T1에서, 클라이언트(501)는 서버(503)로 데이터 1(2255-1)의 송신에 실패하고, 데이터 1을 재전송(2255-2 내지 2255-4)할 수 있다. T1에서 TCP 소켓의 카운트 및 세그먼트는 하기의 <표 8>과 같다.Referring to Table 7, the total socket count of the TCP socket is 15, the connection setting count is 10, the in-segment error count is 18, the retransmission count is 17, and the transmitted segments are 1000. According to one embodiment, at time T 1 , the
<표 8>을 참고하면, 프로세서(120)는 시간이 T0에서 T1으로 변경되면서, 재전송 카운트가 17에서 19로 증가한 것을 확인할 수 있다. 프로세서(120)는 상술한 결과와 같이 재전송 카운트가 증가한 것을 확인하고, 백홀 실패를 결정할 수 있다.Referring to Table 8, the
도 23은 본 발명의 다양한 실시예들에 따른 전송 프로토콜의 수신 에러에 기반하여 백홀 실패를 결정하는 전자 장치의 흐름도(2300)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 23의 동작 2301은 도 17의 동작 1701의 일부이고, 도 23의 동작 2303은 도 17의 동작 1703의 일부로서, 예시된 흐름도(2300)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.23 shows a flow diagram 2300 of an electronic device for determining a backhaul failure based on a reception error of a transmission protocol according to various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 23 is part of
도 23을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 2301에서, 수신 패킷 또는 송신 패킷의 부족과 전송 프로토콜의 수신 세그먼트의 에러를 확인할 수 있다. 예를 들면, 프로세서(120)는 악화된 송신 및 수신 환경에서, 수신 세그먼트 에러의 증가를 확인할 수 있다. 일 실시예에서, 전송 프로토콜의 상태를 나타내면 도 24a와 같다. 도 24a의 그래프(2400)는 가로 축이 폴링 사이클(2404), 세로 축이 카운트(2402)이다. 예를 들면, 프로세서(120)는 폴링 사이클이 진행되는 동안, 전송 프로토콜 송신 패킷(2406)의 카운트와, 전송 프로토콜 수신 패킷(2408)의 카운트가 낮은 값을 갖고, 전송 프로토콜의 수신 세그먼트 에러(2410)는 증가하는 것을 확인할 수 있다. 예를 들면, 도 24a에서, 프로세서(120)는 폴링 사이클(2404)이 3에서 4가 되는 경우, 즉, 폴링 사이클(2404)이 3에서 4로 넘어가는 순간에 전송 프로토콜의 수신 세그먼트 에러(2410)가 0에서 2로 증가하고, 폴링 사이클(2404)이 6에서 7이 되는 경우, 즉, 폴링 사이클(2404)이 6에서 7로 넘어가는 순간에 전송 프로토콜의 수신 세그먼트 에러(2410)가 0에서 1로 증가하고, 폴링 사이클(2404)이 4에서 7이되는 동안 전송 프로토콜 수신 패킷(2408)은 2로 유지되는 것을 확인할 수 있다. 상술한 확인 결과에 따라, 프로세서(120)는 상대적으로 전송 프로토콜 수신 패킷(2408)의 카운트는 낮으나, 전송 프로토콜의 수신 세그먼트 에러(2410)의 카운트는 높은 것을 확인할 수 있다.23, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 2303에서, 확인 결과에 기반하여 백홀 실패를 결정할 수 있다. 예를 들면, 프로세서(120)는 도 24b와 같이, 시간의 변화에 따라 전송 프로토콜의 인세그먼트 에러의 증가를 확인하고, 백홀 실패를 결정할 수 있다. 예를 들면, 시간 T0에서, 서버(예: 도 5의 서버(503))는 클라이언트(예: 도 5의 클라이언트(501))로 데이터들(2451-1 내지 2451-3)을 송신할 수 있다. 일 실시예에서, 서버(503)는 데이터 2(2451-3)의 송신에 실패하고, 데이터 2를 재전송(2451-3)할 수 있다. 클라이언트(501)는 서버(503)으로부터 데이터들을 수신하고, 이에 대한 확인 응답들(2453-1 및 2453-2)을 서버(503)로 송신할 수 있다. T0에서 TCP 소켓의 카운트 및 세그먼트는 하기의 <표 9>과 같다.According to various embodiments, the
<표 9>를 참고하면, TCP 소켓의 총 소켓 카운트는 15, 커넥션 설정 카운트는 10, 인세그먼트 에러(in-segment error) 카운트는 18, 재전송 카운트는 17, 수신된 세그먼트들은 1000이다. 일 실시예에 따르면, 시간 T1에서, 서버(503)는 클라이언트(501)로 데이터 1(2455-1)을 송신하고, 클라이언트(501)는 서버(503)로 이에 대한 확인 응답(2457-1)을 송신할 수 있다. 일 실시예에서, 서버(503)는 데이터 2의 송신(2455-2 내지 2455-3)을 시도하나, 클라이언트(501)은 데이터 2의 수신에 실패할 수 있다. T1에서 TCP 소켓의 카운트 및 세그먼트는 하기의 <표 10>과 같다.Referring to Table 9, the total socket count of the TCP socket is 15, the connection setting count is 10, the in-segment error count is 18, the retransmission count is 17, and the received segments are 1000. According to one embodiment, at time T 1 , the
<표 10>을 참고하면, 프로세서(120)는 클라이언트(501)가 서버(503)로부터 데이터를 수신하지 못함으로써, 인세그먼트 에러 카운트는 18에서 20으로 증가하고, 수신된 세그먼트는 1000에서 1002로 증가한 것을 확인할 수 있다. 프로세서(120)는 상술한 바와 같이, 수신 세그먼트 에러 카운트가 증가한 것을 확인하고 백홀 실패를 결정할 수 있다. 이하 도 25 내지 31은 전자 장치(101)가 백홀 실패를 결정한 경우, 백홀 실패에 대처하기 위하여 수행하는 다양한 제어 동작들을 도시한다.Referring to Table 10, the
도 25는 본 발명의 다양한 실시예들에 따른 백홀 실패 및 네트워크 변경 지시자를 표시하는 전자 장치의 흐름도(2500)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 25는 도 17의 동작 1705의 일부로서, 예시된 흐름도(2500)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.25 shows a flow diagram 2500 of an electronic device for indicating a backhaul failure and a network change indicator in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Fig. 25 is a part of
도 25를 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 2501에서, 백홀 실패를 표시할 수 있다. 예를 들면, 프로세서(120)는 전자 장치(101)의 표시 장치(예: 도 1의 표시 장치(160))에 전송 프로토콜의 상태 및 카운트를 통해 결정한 백홀 실패를 표시할 수 있다. 다양한 실시예들에서, 백홀 실패의 표시는 전자 장치(101)의 인터넷 연결이 끊어진 것을 나타내는 메시지를 포함할 수 있다.Referring to FIG. 25, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 2503에서, 네트워크 변경 지시자를 표시할 수 있다. 예를 들면, 프로세서(120)는 와이파이 네트워크에서 셀룰러 네트워크로의 변경 여부를 나타내는 메시지와, 사용자가 선택함으로써 네트워크를 변경할 수 있는 적어도 하나 이상의 지시자를 표시 장치(160)에 표시할 수 있다. 후술하는 도 26 내지 28에 따라, 전자 장치(101)의 표시 장치(160)에 백홀 실패 및 네트워크 변경 지시자가 표시되는 예시들이 설명된다.According to various embodiments, the
도 26은 본 발명의 다양한 실시예들에 따른 백홀 실패 시 네트워크 변경 지시자를 표시하는 전자 장치의 인터페이스의 예시(2600)를 도시한다.26 illustrates an
도 26을 참고하면, 프로세서(120)는 백홀 실패 시 네트워크 변경 지시자를 표시하는 인터페이스(2602)를 표시 장치(160)에 표시할 수 있다. 예를 들면, 인터페이스(2602)는, 백홀 실패로 인하여 인터넷 연결이 끊어진 것을 나타내는 메시지를 포함하는 지시자(2604)와, 와이파이 네트워크에서 셀룰러 네트워크로의 변경 여부와, 네트워크 변경으로 인한 과금 등의 주의 사항을 포함하는 지시자(2606)와, 사용자의 입력을 통해 네트워크 변경이 수행되지 않는 제1 변경 지시자(2608)와, 사용자의 입력을 통해 네트워크 변경이 수행되는 제2 변경 지시자(2610)를 포함할 수 있다. 사용자가 제2 변경 지시자(2610)을 선택하여 입력함으로써 백홀 실패 감지 후 와이파이 네트워크에서 셀룰러 네트워크로 스위칭될 수 있다.Referring to FIG. 26, the
도 27은 본 발명의 다양한 실시예들에 따른 백홀 실패 시 다른 AP(access point)로의 변경을 표시하는 전자 장치의 인터페이스의 예시(2700)를 도시한다.FIG. 27 illustrates an
도 27을 참고하면, 프로세서(120)는 백홀 실패 시 다른 AP로의 변경을 나타내는 지시자를 표시하는 인터페이스(2710)를 표시 장치(160)에 표시할 수 있다. 예를 들면, 인터페이스(2710)는, 백홀 실패로 인하여 인터넷 연결이 끊어진 것을 나타내는 메시지를 포함하는 지시자(2712)와, 와이파이 연결이 끊어짐으로써 다른 AP로의 연결 여부를 묻는 메시지를 포함하는 지시자(2714)와, 사용자의 입력을 통해 네트워크 변경이 수행되지 않는 제1 변경 지시자(2716)와, 사용자의 입력을 통해 네트워크 변경이 수행되는 제2 변경 지시자(2718)를 포함할 수 있다. 전자 장치(101)는 사용자에게 현재 연결되어 있는 AP에서 주변에 있는 다른 AP로 변경하여 연결할 것을 사용자 인터페이스를 통해 안내할 수 있다. 일 실시예에서, 프로세서(120)는 백홀 실패 시, 다른 AP들의 주소를 인터페이스(2720)에 표시함으로써 사용자에게 다른 AP로의 변경을 안내할 수 있다. 예를 들면, 인터페이스(2720)는 AP 변경을 나타내는 지시자(2722)와, 다른 AP로의 변경을 안내하는 메시지를 포함하는 지시자(2724)와, 다른 AP들의 주소들(2726-1 내지 2726-6)을 포함할 수 있다. 일 실시예에서, 사용자에게 추천되는 다른 AP들은 네트워크 품질이 우수한(예: 백홀 네트워크가 정상 동작) AP를 포함할 수 있다. 사용자가 인터페이스(2720)상의 다른 AP들의 주소들(2726-1 내지 2726-6) 중 하나의 주소를 선택하는 경우, 프로세서(120)는 해당하는 주소를 갖는 AP와 연결을 시도할 수 있다. 일 실시예에서, 인터페이스(2720)는 백홀 실패에 대한 정보를 송신할 외부 장치의 주소를 표시하는 지시자(미도시)도 포함할 수 있다. 백홀 실패에 대한 정보를 송신할 외부 장치는 후술하는 도 29에서 식별된 외부 장치를 포함할 수 있다. Referring to FIG. 27, the
도 28은 본 발명의 다양한 실시예들에 따른 백홀 실패 시 네트워크 변경 지시자를 옵션으로 표시하는 전자 장치의 인터페이스의 예시(2800)를 도시한다.28 illustrates an example of an
도 28을 참고하면, 프로세서(120)는 백홀 실패 시, 자동으로 네트워크를 변경하는 동작을 옵션으로 생성하여 사용자에게 제공할 수 있다. 일 실시예에서, 인터페이스(2802)는 백홀 실패 발생 시, 자동으로 네트워크를 변경하는 것을 안내하는 메시지와, 변경 지시자(2806)를 포함하는 네트워크 자동 변경 지시자(2804)를 포함할 수 있다. 변경 지시자(2806)가 사용자의 입력을 통해 활성화되는 경우, 프로세서(120)가 백홀 실패를 감지하는 경우, 별도의 알림창을 표시하지 않고, 자동으로 네트워크를 변경할 수 있다. 예를 들면, 프로세서(120)는 백홀 실패 발생 시, 현재 연결되어 있는 와이파이 네트워크에서 셀룰러 네트워크로 변경하거나, 자주 사용하는 다른 와이파이 네트워크로 변경할 수 있다. 변경 지시자(2806)가 비활성화되는 경우, 프로세서(120)는 백홀 실패가 발생하더라도, 자동으로 네트워크 변경을 수행하지 않을 수 있다. 후술하는 29 내지 31은 백홀 실패 시 백홀 실패를 다른 전자 장치들과 공유하거나, 백홀 실패에 따른 서비스를 제공하는 전자 장치(101)의 동작을 도시한다.Referring to FIG. 28, the
도 29는 본 발명의 다양한 실시예들에 따른 백홀 실패를 다른 전자 장치들과 공유하는 전자 장치의 흐름도(2900)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 29는 도 17의 동작 1705의 일부로서, 예시된 흐름도(2900)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.29 shows a flow diagram 2900 of an electronic device sharing a backhaul failure with other electronic devices in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Fig. 29 is a part of
도 29를 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 2901에서, 백홀 실패에 대한 정보를 송신할 외부 장치를 식별할 수 있다. 예를 들면, 외부 장치는 전자 장치(101)와 연결되어 있는 AP일 수 있고, 동일 네트워크 내에 포함된 장치들일 수 있고, 공통 계정 기반으로 등록된 장치들, 또는 전혀 관련성이 없는 장치들일 수도 있다. 일 실시예에서 공통 계정 기반으로 등록된 장치들은 IoT 클라우드 1개 계정에 속한 장치들일 수 있다. 일 실시예에서, 백홀 실패에 대한 정보를 송신할 외부 장치는 NAN(neighbor awareness network)을 이용하여 통신하는 전자 장치들일 수 있다. 일 실시예에서, 백홀 실패에 대한 정보를 송신할 외부 장치에 대한 정보는 서버에서 관리될 수 있다. 예를 들면, 서버가 백홀 실패에 대한 정보를 송신할 외부 장치를 식별하고, 전자 장치(101)로 식별된 외부 장치에 대한 정보(예: 주소)를 송신함으로써, 전자 장치(101)는 해당 외부 장치로 백홀 실패에 대한 정보를 송신할 수 있다.29, an electronic device (e.g.,
다양한 실시예들에 따르면, 동작 2903에서 프로세서(120)는 식별된 외부 장치로 백홀 실패에 대한 정보를 송신할 수 있다. 일 실시예에서, 전자 장치(101)는 도 30a의 예시(3010)과 같이, 동일한 AP와 연결된 다른 장치들로 백홀 실패에 대한 정보를 송신할 수 있다. 예를 들면, 전자 장치(101)는 백홀 실패를 감지하고, 전자 장치(101)와 연결된 AP(3001)와 연결되어 있는 전자 장치(3014-1)로 감지된 백홀 실패에 대한 정보를 송신할 수 있다. 도시되지는 아니하였으나, 전자 장치(101)로부터 백홀 실패에 대한 정보를 수신한 전자 장치(3014-1)는 다른 전자 장치들(3014-2 내지 3014-6)과 백홀 실패에 관한 정보를 공유할 수 있다. 일 실시예에서, 전자 장치(101)는 도 30b의 예시(3020)와 같이, 전자 장치(101)와 연결되어 있는 AP(3001)로 백홀 실패에 관한 정보를 송신할 수 있다. 예를 들면, 전자 장치(101)와 연결되어 있는 AP(3001)가 백홀 실패에 관한 정보를 수신한 후, AP(3001)는 수신한 백홀 실패에 관한 정보를 AP(3001)에 연결되어 있는 다른 전자 장치들(3024-1 내지 3024-4)로 송신(3026)할 수 있다. 도 30a 및 도 30b와 같은 예시를 통해, 전자 장치(101)는 동일한 AP에 연결된 장치들과 백홀 실패를 공유할 수 있다. 일 실시예에서, 프로세서(101)는 NAN을 이용한 비-연결 기반 정보 공유 방식을 통하여 외부 전자 장치와 백홀 실패에 관한 정보를 공유할 수 있다.According to various embodiments, at
도 31은 본 발명의 다양한 실시예들에 따른 백홀 실패와 관련된 정보를 저장하고, 서비스를 제공하는 전자 장치의 흐름도(3100)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 31은 도 17의 동작 1705의 일부로서, 예시된 흐름도(3100)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.31 shows a flow diagram 3100 of an electronic device that stores and provides information related to backhaul failures in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Fig. 31 is part of
도 31을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3101에서, 백홀 실패 발생 시 백홀 실패와 관련된 정보를 저장할 수 있다. 예를 들면, 프로세서(120)는 백홀 실패가 발생하는 경우마다, 백홀 실패가 발생한 AP와 관련된 정보(예: 이름, 보안)와 해당 AP를 사용한 geofence 정보, 신호 품질 정보(예: 신호 세기, 채널 정보 등), 백홀 실패 발생 당시 주변에 존재하는 장치의 정보(예: 장치명, 각 장치의 신호 세기, 장치의 위치 정보 등), 몇 번째로 발생한 백홀 실패인지 등을 저장할 수 있다. 일 실시예에서, 프로세서(120)는 저장된 정보를 이용하여 백홀 실패가 자주 발생하는 위치나, AP등을 감지할 수 있다.31, an electronic device (e.g.,
다양한 실시예들에 따르면, 동작 3103에서 프로세서(120)는 저장된 백홀 실패와 관련된 정보를 이용하여 표시 장치를 제어할 수 있다. 예를 들면, 프로세서(120)는 저장된 백홀 실패와 관련된 정보를 이용하여, 백홀 실패가 자주 발생하는 위치, AP등을 감지하고, 전자 장치(101)가 그러한 위치에 접근하기 전에 미리 표시 장치(예: 도 1의 표시 장치(160))에 경고를 나타내는 지시자를 표시하거나, 백홀 실패가 자주 발생하는 AP를, 연결할 수 있는 AP 목록에서 후순위로 낮추어 표시할 수 있다.According to various embodiments, at
도 32는 본 발명의 다양한 실시예들에 따른 백홀 실패를 검사 및 백홀 실패에 대한 제어를 수행하기 위한 전자 장치의 흐름도(3200)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 예시된 흐름도(3200)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.32 shows a flow diagram 3200 of an electronic device for checking backhaul failures and performing control over backhaul failures in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. The operating entity of the illustrated
도 32를 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3201에서, 전송 프로토콜 관련 정보를 획득할 수 있다. 예를 들면, 전송 프로토콜 관련 정보는 TCP 소켓 카운트의 총 개수, 커넥션 설정 상태의 소켓 카운트, 수신 패킷 및 송신 패킷의 개수, TCP 소켓의 재전송 세그먼트 카운트 또는 TCP 소켓의 수신 세그먼트 카운트에 관한 정보 중 적어도 하나를 포함할 수 있다.32, an electronic device (e.g.,
다양한 실시예들에 따르면, 동작 3203에서, 프로세서(120)는 전송 프로토콜의 커넥션 설정 카운트가 증가하는지 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 시간의 경과에 따라, TCP 소켓의 상태 중 커넥션 설정 상태를 나타내는 커넥션 설정 카운트가 증가하는지 여부를 확인할 수 있다. 전송 프로토콜의 커넥션 설정 카운트가 증가하는 경우, 프로세서(120)는 다시 전송 프로토콜 관련 정보를 획득하는 동작을 수행할 수 있다. 전송 프로토콜의 커넥션 설정 카운트가 증가하지 않는 경우, 프로세서(120)는 동작 3205를 수행할 수 있다.According to various embodiments, at
다양한 실시예들에 따르면, 동작 3205에서, 프로세서(120)는 수신 패킷 또는 송신 패킷이 양호한지 여부를 확인할 수 있다. 다양한 실시예에서, 수신 패킷 또는 송신 패킷이 양호한 것은 수신 패킷 또는 송신 패킷이 부족하지 않는 것을 나타낼 수 있다. 예를 들면, 프로세서(120)는 시간의 경과에 따라, 수신 패킷 또는 송신 패킷이 더 이상 증가하지 아니하거나, 증가 추이가 완만한 것을 확인하고, 이를 수신 패킷 또는 송신 패킷이 부족한 것으로 결정할 수 있다. 수신 패킷 또는 송신 패킷이 양호한 경우, 즉, 수신 패킷 또는 송신 패킷이 부족하지 않는 경우, 프로세서(120)는 다시 전송 프로토콜 관련 정보를 획득하는 동작을 수행할 수 있다. 수신 패킷 또는 송신 패킷이 양호하지 않은 경우, 즉, 수신 패킷 또는 송신 패킷이 부족한 경우, 프로세서(120)는 동작 3207을 수행할 수 있다.According to various embodiments, at
다양한 실시예들에 따르면, 동작 3207에서, 프로세서(120)는 전송 프로토콜의 총 카운트의 증가 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 획득한 전송 프로토콜 관련 정보에 기반하여 TCP 소켓 카운트의 총 개수가 증가하는지 여부를 확인할 수 있다. 일 실시예에서, 프로세서(120)는 시간의 경과에 따라 TCP 소켓 카운트의 총 개수가 증가하는지 여부를 확인할 수 있다. 전송 프로토콜의 총 카운트가 증가하는 경우, 프로세서(120)는 동작 3213을 수행할 수 있고, 전송 프로토콜의 총 카운트가 증가하지 않는 경우, 프로세서(120)는 동작 3209를 수행할 수 있다. According to various embodiments, at
다양한 실시예들에 따르면, 동작 3209에서, 프로세서(120)는 전송 프로토콜의 재전송 세그먼트 카운트의 증가 여부를 확인할 수 있다. 예를 들면, 프로세서(120)는 악화된 송신 및 수신 패킷의 품질로 인하여, 서버(예: 도 5의 서버(503))로의 데이터 전송에 실패하는 경우, 실패한 데이터의 재전송을 수행할 수 있고, 재전송 수행에 따른 전송 프로토콜의 재전송 세그먼트 카운트의 증가를 확인할 수 있다. 전송 프로토콜의 재전송 세그먼트 카운트가 증가하는 경우, 프로세서(120)는 동작 3213을 수행할 수 있다. 전송 프로토콜의 재전송 세그먼트 카운트가 증가하지 않는 경우, 프로세서(120)는 동작 3211을 수행할 수 있다.According to various embodiments, at
다양한 실시예들에 따르면, 동작 3211에서, 프로세서(120)는 전송 프로토콜의 수신 세그먼트 에러의 감소 여부를 확인할 수 있다. 일 실시예에서, 프로세서(120)는 악화된 송신 및 수신 패킷의 품질로 인하여, 서버(503)로부터의 데이터 수신에 실패하는 경우, 전송 프로토콜의 수신 세그먼트 에러가 증가하는 것을 확인할 수 있다. 전송 프로토콜의 수신 세그먼트 에러가 감소하는 경우, 즉, 전송 프로토콜의 수신 세그먼트 에러가 증가하지 않는 경우, 프로세서(120)는 다시 전송 프로토콜 관련 정보를 획득할 수 있다. 전송 프로토콜의 수신 세그먼트 에러가 감소하지 않는 경우, 즉, 전송 프로토콜의 수신 세그먼트 에러가 증가하는 경우, 프로세서(120)는 동작 3213을 수행할 수 있다.According to various embodiments, at
다양한 실시예들에 따르면, 동작 3213에서, 프로세서(120)는 백홀 실패를 검사할 수 있다. 예를 들면, 프로세서(120)는 전송 프로토콜의 총 카운트는 증가하나, 전송 프로토콜의 커넥션 설정 카운트는 증가하지 않는 경우, 백홀 실패 여부를 검사하고, 백홀 실패로 결정할 수 있다. 프로세서(120)는 전송 프로토콜의 수신 패킷 또는 송신 패킷의 부족을 확인하고, 전송 프로토콜의 재전송 세그먼트 카운트가 증가하는 경우 또는 전송 프로토콜의 수신 세그먼트 에러의 증가를 확인하고 백홀 실패를 검사 후, 백홀 실패를 결정할 수 있다.According to various embodiments, at operation 3213, the
다양한 실시예들에 따르면, 동작 3215에서, 프로세서(120)는 백홀 실패에 대한 제어를 수행할 수 있다. 예를 들면, 프로세서(120)는 백홀 실패를 결정하고, 전자 장치(101)의 표시 장치(예: 도 1의 표시 장치(160))에 백홀 실패 및 백홀 실패에 따른 네트워크 변경을 안내하는 네트워크 변경 지시자를 표시할 수 있다. 일 실시예에서, 프로세서(120)는 백홀 실패에 관한 정보를 식별된 외부 장치와 공유하거나, 백홀 실패에 관한 정보를 저장하고, 저장된 백홀 실패 관련 정보를 표시 장치에 표시함으로써 백홀 실패를 사용자에게 경고할 수 있다. 후술하는 도 33 내지 39는 백홀 상태를 검사하기 위한 전자 장치(101)의 구체적인 구현 동작을 설명한다.According to various embodiments, at operation 3215, the
도 33은 본 발명의 다양한 실시예들에 따른 백홀 상태를 검사하기 위한 구현 과정을 나타내는 전자 장치의 흐름도(330)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 예시된 흐름도(3300)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.33 shows a flow diagram 330 of an electronic device illustrating an implementation for examining a backhaul condition in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. The operating entity of the illustrated
도 33을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3301에서, 임계값들을 획득할 수 있다. 예를 들면, 임계값들은 수신 신호 세기, 백홀 연결 검사, 수신 세그먼트, 송신 세그먼트와 관련된 임계값들을 포함할 수 있다. Referring to FIG. 33, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3303에서, 새로운 커넥션 설정 상태 또는 시간 대기 상태를 검사할 수 있다. 예를 들면, 프로세서(120)는 TCP 소켓의 커넥션 설정 카운트의 증가를 확인하고, 새로운 커넥션 설정 상태를 검사할 수 있다. 프로세서(120)는 TCP 소켓의 시간 대기 상태 카운트의 증가를 확인하고, 새로운 시간 대기 상태를 검사할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3305에서, 인세그먼트 에러를 검사할 수 있다. 예를 들면, 프로세서(120)는 수신 패킷의 부족으로 인한 수신 품질 악화로 인하여, 세그먼트 에러가 발생하는 것을 확인할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3307에서, 재전송을 검사할 수 있다. 예를 들면, 프로세서(120)는 송신 패킷의 부족으로 인한 송신 품질 악화로 인하여, 재전송이 발생하는 것을 확인할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3309에서, 백홀을 검사할 수 있다. 예를 들면, 프로세서(120)는 전자 장치(101)와 연결된 AP와, 인터넷이 연결된 상태를 나타내는 것을 나타내는 백홀을 검사할 수 있다. According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3311에서, 카운트를 업데이트할 수 있다. 예를 들면, 프로세서(120)는 이전의 TCP 커넥션 설정 카운트를 현재의 TCP 커넥션 설정 카운트로, 이전의 시간 대기 카운트를 시간 대기 카운트로, 이전의 TCP 사용 카운트를 TCP 사용 카운트로, 이전의 재전송 세그먼트 카운트를 재전송 세그먼트 카운트로, 이전의 인 세그먼트 에러 카운트를 인 세그먼트 에러 카운트로, 이전의 인 세그먼트 카운트를 인 세그먼트 카운트로, 이전의 아웃 세그먼트 카운트를 아웃 세그먼트 카운트로 업데이트할 수 있다.According to various embodiments, the
도 34는 본 발명의 다양한 실시예들에 따른 임계값을 획득하기 위한 전자 장치의 흐름도(3400)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 34는 도 33의 동작 3301의 일부로서, 예시된 흐름도(3400)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.34 illustrates a flow diagram 3400 of an electronic device for obtaining a threshold according to various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 34 is a part of
도 34를 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3401에서, 복수의 임계값들을 획득할 수 있다. 예를 들면, 복수의 임계값들은 RSSI_POOR_SIGNAL_THRESHOLD = -83, RSSI_LOW_SIGNAL_THRESHOLD = -70, THRESHOLD BACKHAUL_CONNECTIVITY_CHECK_HIGH = 5, THRESHOLD BACKHAUL_CONNECTIVITY_CHECK_LOW = 2, THRESHOLD BACKHAUL_CONNECTIVITY_CHECK_POOR = 2, TCP_POOR_SEG_RX = 0, THRESHOLD_TCP_POOR_SEG_RX_TX = 15, THRESHOLD_WAITING_CYCLE_CHECK_HIGH = 5, THRESHOLD_WAITING_CYCLE_CHECK_HIGH = 3, THRESHOLD_WAITING_CYCLE_CHECK_POOR = 2, THRESHOLD_MAX_WAITING_CYCLE = 60을 포함할 수 있다.Referring to Figure 34, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3403에서, RSSI 임계값을 획득할 수 있다. 예를 들면, 프로세서(120)는 현재의 RSSI를 임계값과 비교함으로써, RSSI의 임계값을 획득할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3405에서, 복수 개의 카운트들을 획득할 수 있다. 예를 들면, 복수 개의 카운트들은 현재 TCP 커넥션 설정 카운트(currTcpEstablishedCount), 재전송 세그먼트 카운트(retransSegCount), 인 세그먼트 에러 카운트(inSegErrorCount), 인 세그먼트 카운트(inSegCount), 아웃 세그먼트 카운트(outSegCount), TCP 사용 카운트(TcpInUseCount), 올픈 카운트(orphanCount), 시간 대기 카운트(timeWaitCount)를 포함할 수 있다. 일 실시예에서, 현재 TCP 커넥션 설정 카운트는 현재 상태가 커넥션 설정 상태인 TCP 연결들의 개수를 나타낼 수 있다. 일 실시예에서, 인 세그먼트 카운트는 오류로 수신된 세그먼트들을 포함하여 수신된 세그먼트들의 총 개수를 나타낼 수 있다. 이러한 카운트는 현재 커넥션 설정된 연결에서 수신된 세그먼트들을 포함할 수 있다. 일 실시예에서, 아웃 세그먼트 카운트는 현재 연결된 세그먼트들을 포함하여 송신된 세그먼트들의 총 개수를 포함할 수 있다. 이러한 카운트는 재전송된 소켓들은 제외할 수 있다. 일 실시예에서, 재전송 세그먼트 카운트는 재전송된 세그먼트들의 총 개수를 포함할 수 있다. 이러한 카운트는 이전에 송신된 하나 이상의 소켓들을 포함하여 송신된 TCP 소켓들의 개수를 나타낼 수 있다. 일 실시예에서, 인 세그먼트 에러 카운트는 오류로 수신된 세그먼트들의 총 개수(예: bad TCP checksums)를 나타낼 수 있다. 일 실시예에서, TCP 사용 카운트는 TCP 소켓들의 총 개수를 나타낼 수 있고, 올픈 카운트는 시간 대기 상태를 제외하고 아이노드(inode)가 없는 소켓들을 나타낼 수 있고, 시간 대기 카운트는 시간 대기 상태에서의 소켓들을 나타낼 수 있다.According to various embodiments,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3407에서, 카운트를 설정할 수 있다. 예를 들면, 프로세서(120)는 TCP 사용 카운트를 TCP 사용 카운트와 올픈 카운트의 차이로 설정할 수 있고, 인 세그먼트 카운트의 차이(diffInSegCount)를 인 세그먼트 카운트와 이전의 인 세그먼트 카운트의 차이로 설정할 수 있고, 아웃 세그먼트 카운트의 차이(diffOutSegCount)를 아웃 세그먼트 카운트와 이전 아웃 세그먼트 카운트의 차이로 설정할 수 있고, 인 세그먼트 에러 카운트의 차이(diffInSegErrorCount)를 인 세그먼트 에러 카운트와 이전 인 세그먼트 에러 카운트의 차이로 설정할 수 있고, 재전송 세그먼트 카운트의 차이(diffRetransSegCount)를 재전송 세그먼트 카운트와 이전 재전송 세그먼트 카운트의 차이로 설정할 수 있다.According to various embodiments,
도 35는 본 발명의 다양한 실시예들에 따른 RSSI(received signal strength indication) 임계값을 획득하기 위한 전자 장치의 흐름도(3500)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 35는 도 34의 동작 3403의 일부로서, 예시된 흐름도(3500)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.35 shows a flow diagram 3500 of an electronic device for obtaining a received signal strength indication (RSSI) threshold according to various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 35 is part of
도 35를 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3501에서, 현재 RSSI 값을 획득할 수 있다.35, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3503에서, 현재 RSSI 값이 RSSI_LOW_SIGNAL_THRESHOLD 이상인지 여부를 확인할 수 있다. 현재 RSSI 값이 RSSI_LOW_SIGNAL_THRESHOLD 이상인 경우, 프로세서(120)는 동작 3505를 수행할 수 있고, 현재 RSSI 값이 RSSI_LOW_SIGNAL_THRESHOLD 이상이 아닌 경우, 프로세서(120)는 동작 3507을 수행할 수 있다.According to various embodiments,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3505에서, 인터넷 연결 카운터 임계값을 THRESHOLD_BACKHAUL_CONNECTIVITY_CHECK_HIGH로, 대기 사이클 임계값을 THRESHOLD_WAITING_CHECK_HIGH로 설정할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3507에서, 현재 RSSI 값이 RSSI_POOR_SIGNAL_THRESHOLD 초과, RSSI_LOW_SIGNAL_THRESHOLD 미만인 것을 확인할 수 있다. 현재 RSSI 값이 RSSI_POOR_SIGNAL_THRESHOLD 초과, RSSI_LOW_SIGNAL_THRESHOLD 미만인 경우, 프로세서(120)는 동작 3509를 수행할 수 있고, 현재 RSSI 값이 RSSI_POOR_SIGNAL_THRESHOLD 초과, RSSI_LOW_SIGNAL_THRESHOLD 미만이 아닌 경우, 프로세서(120)는 동작 3511을 수행할 수 있다.According to various embodiments,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3509에서, 인터넷 연결 카운터 임계값을 THRESHOLD_BACKHAUL_CONNECTIVITY_CHECK_LOWH로, 대기 사이클 임계값을 THRESHOLD_WAITING_CHECK_LOW로 설정할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3511에서, 인터넷 연결 카운터 임계값을 THRESHOLD_BACKHAUL_CONNECTIVITY_CHECK_POOR로, 대기 사이클 임계값을 THRESHOLD_WAITING_CHECK_POOR로 설정할 수 있다.According to various embodiments, the
도 36은 본 발명의 다양한 실시예들에 따른 새로운 커넥션 설정 상태 및 시간 대기 상태를 검사하기 위한 전자 장치의 흐름도(3600)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 36은 도 33의 동작 3303의 일부로서, 예시된 흐름도(3600)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.36 shows a flow diagram 3600 of an electronic device for checking a new connection establishment state and a time waiting state in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 36 is part of
도 36을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3601에서, 현재 TCP 커넥션 설정 카운트가 이전 TCP 커넥션 설정 카운트 초과인 것을 확인할 수 있다. 프로세서(120)는 현재 TCP 커넥션 설정 카운트가 이전 TCP 커넥션 설정 카운트 초과하는 경우, 동작 3607을 수행할 수 있고, 현재 TCP 커넥션 설정 카운트가 이전 TCP 커넥션 설정 카운트 초과하지 않는 경우, 동작 3603을 수행할 수 있다.36, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3603에서, 시간 대기 카운트가 이전 시간 대기 카운트 초과인지 여부를 확인할 수 있다. 프로세서(120)는 시간 대기 카운트가 이전 시간 대기 카운트를 초과하는 경우, 동작 3609를 수행할 수 있고, 시간 대기 카운트가 이전 시간 대기 카운트를 초과하지 않는 경우, 동작 3605를 수행할 수 있다. According to various embodiments,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3605에서, TCP 사용 카운트가 이전 TCP 사용카운트 초과인지 여부를 확인할 수 있다. 프로세서(120)는 TCP 사용 카운트가 이전 TCP 사용카운트를 초과하는 경우, 동작 3611을 수행할 수 있고, TCP 사용 카운트가 이전 TCP 사용카운트 초과하지 않는 경우, 동작 3617을 수행할 수 있다.According to various embodiments,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3607에서, 인 에러 세그먼트 대기 사이클은 0으로, 재전송 세그먼트 대기 사이클을 0으로 설정할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3609에서, 대기 사이클 임계값이 THRESHOLD_WAITING_CYCLE_CHECK_POOR 초과인지 여부를 확인할 수 있다. 프로세서(120)는 대기 사이클 임계값이 THRESHOLD_WAITING_CYCLE_CHECK_POOR를 초과하는 경우, 동작 3613을 수행할 수 있고, 대기 사이클 임계값이 THRESHOLD_WAITING_CYCLE_CHECK_POOR를 초과하지 않는 경우, 동작 3605를 수행할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3611에서, 인터넷 연결 카운터를 인터넷 연결 카운터와 TCP 사용 카운트의 합에 이전 TCP 사용 카운트를 뺀 값으로 설정할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3613에서, 인터넷 연결 카운터를 0으로, 인터넷 연결 대기 사이클을 0으로 설정할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3615에서, 인터넷 연결 카운터를 증가시킬 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3617에서, 인터넷 연결 카운터가 0 초과인지 여부를 확인할 수 있다. 인터넷 연결 카운터가 0을 초과하는 경우, 프로세서(120)는 동작 3615를 수행할 수 있고, 인터넷 연결 카운터가 0을 초과하지 않는 경우, 단계를 종료할 수 있다.According to various embodiments,
도 37은 본 발명의 다양한 실시예들에 따른 인세그먼트 에러와 아웃세그먼트 에러를 검사하기 위한 전자 장치의 흐름도(3700)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 37은 도 33의 동작 3305의 일부로서, 예시된 흐름도(3600)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 37 shows a flow diagram 3700 of an electronic device for inspecting in-segment and out-segment errors in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. 37 is a part of
도 37을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3701에서, 인세그먼트 에러 카운트의 차이가 0 초과인지 여부를 확인할 수 있다. 프로세서(120)는 인세그먼트 에러 카운트의 차이가 0 초과인 경우, 동작 3703을 수행할 수 있고, 인세그먼트 에러 카운트의 차이가 0을 초과하지 않는 경우, 동작 3705를 수행할 수 있다.37, an electronic device (e.g.,
다양한 실시 예들에 따르면, 프로세서(120)는 동작 3703에서, 인세그먼트 에러 카운트의 차이와 아웃세그먼트 에러 카운트의 차이의 합이 THRESHOLD_TCP_POOR_SEG_RX_TX 미만인지 여부를 확인할 수 있다. 프로세서(120)는 인세그먼트 에러 카운트의 차이와 아웃세그먼트 에러 카운트의 차이의 합이 THRESHOLD_TCP_POOR_SEG_RX_TX 미만인 경우, 동작 3707을 수행할 수 있고, 인세그먼트 에러 카운트의 차이와 아웃세그먼트 에러 카운트의 차이의 합이 THRESHOLD_TCP_POOR_SEG_RX_TX 미만이 아닌 경우, 동작 3705를 수행할 수 있다. According to various embodiments,
다양한 실시 예들에 따르면, 프로세서(120)는 동작 3705에서, 인 에러 세그먼트 대기 사이클이 0 초과인지 여부를 확인할 수 있다. 프로세서(120)는 인 에러 세그먼트 대기 사이클이 0을 초과하는 경우, 동작 3707을 수행할 수 있고, 인 에러 세그먼트 대기 사이클이 0을 초과하지 않는 경우, 동작을 종료할 수 있다. According to various embodiments, the
다양한 실시 예들에 따르면, 프로세서(120)는 동작 3707에서, 인 에러 세그먼트 대기 사이클의 값을 증가시킬 수 있다.According to various embodiments,
도 38은 본 발명의 다양한 실시예들에 따른 재전송 세그먼트를 검사하기 위한 전자 장치의 흐름도(3800)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 38은 도 33의 동작 3307의 일부로서, 예시된 흐름도(3800)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다. 38 shows a flow diagram 3800 of an electronic device for inspecting a retransmission segment in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Fig. 38 is a part of
도 38을 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3801에서, 재전송 세그먼트 카운트의 차이가 0보다 큰 것을 확인할 수 있다. 프로세서(120)는 재전송 세그먼트 카운트의 차이가 0보다 큰 경우, 동작 3803을 수행할 수 있고, 재전송 세그먼트 카운트의 차이가 0보다 크지 않은 경우, 동작 3805를 수행할 수 있다.38, the electronic device (e.g.,
다양한 실시 예들에 따르면, 프로세서(120)는 동작 3803에서, 인세그먼트 카운트의 차이가 TCP_POOR_SEG_RX보다 큰지 여부를 확인할 수 있다. 프로세서(120)는 인세그먼트 카운트의 차이가 TCP_POOR_SEG_RX보다 큰 경우, 동작 3807을 수행할 수 있고, 인세그먼트 카운트의 차이가 TCP_POOR_SEG_RX보다 크지 않은 경우, 동작 3805를 수행할 수 있다.According to various embodiments,
다양한 실시 예들에 따르면, 프로세서(120)는 동작 3805에서, 재전송 세그먼트 대기 사이클이 0 초과인지 여부를 확인할 수 있다. 프로세서(120)는 재전송 세그먼트 대기 사이클이 0을 초과하는 경우, 동작 3807을 수행할 수 있고, 재전송 세그먼트 대기 사이클이 0을 초과하지 않는 경우, 단계를 종료할 수 있다.According to various embodiments,
다양한 실시 예들에 따르면, 프로세서(120)는 동작 3807에서, 재전송 세그먼트 대기 사이클을 증가시킬 수 있다.According to various embodiments, the
도 39는 본 발명의 다양한 실시예들에 따른 백홀 상태를 검사하기 위한 전자 장치의 흐름도(3900)를 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 39는 도 33의 동작 3309의 일부로서, 예시된 흐름도(3900)의 동작 주체는 전자 장치(101) 또는 전자 장치(101)의 구성요소(예: 프로세서(120))로 이해될 수 있다.Figure 39 shows a flow diagram 3900 of an electronic device for checking the state of a backhaul in accordance with various embodiments of the present invention. In the following embodiments, each operation may be performed sequentially, but not necessarily sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel. Fig. 39 is part of
도 39를 참고하면, 다양한 실시예들에 따른, 전자 장치(예: 도 1의 프로세서(120))는 동작 3901에서, 인터넷 연결 카운터가 인터넷 연결 카운터 임계값을 초과하는지 여부를 확인할 수 있다. 인터넷 연결 카운터가 인터넷 연결 카운터 임계값을 초과하는 경우, 프로세서(120)는 동작 3907을 수행할 수 있고, 인터넷 연결 카운터가 인터넷 연결 카운터 임계값을 초과하지 않는 경우, 프로세서(120)는 동작 3903을 수행할 수 있다.39, an electronic device (e.g.,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3903에서, 재전송 세그먼트 대기 사이클이 대기 사이클 임계값을 초과하는지 여부를 확인할 수 있다. 프로세서(120)는 재전송 세그먼트 대기 사이클이 대기 사이클 임계값을 초과하는 경우, 동작 3909를 수행할 수 있고, 재전송 세그먼트 대기 사이클이 대기 사이클 임계값을 초과하지 않는 경우, 동작 3905를 수행할 수 있다. According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3905에서, 인 에러 세그먼트 대기 사이클이 대기 사이클 임계값을 초과하는지 여부를 확인할 수 있다. 프로세서(120)는 인 에러 세그먼트 대기 사이클이 대기 사이클 임계값을 초과하는 경우, 동작 3909를 수행할 수 있고, 인 에러 세그먼트 대기 사이클이 대기 사이클 임계값을 초과하지 않는 경우, 동작 3911을 수행할 수 있다.According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3907에서, 인터넷 연결 대기 사이클이 대기 사이클 임계값을 초과하는지 여부를 확인할 수 있다. 프로세서(120)는 인터넷 연결 대기 사이클이 대기 사이클 임계값을 초과하는 경우, 동작 3909를 수행할 수 있고, 인터넷 연결 대기 사이클이 대기 사이클 임계값을 초과하지 않는 경우, 동작 3903을 수행할 수 있다. According to various embodiments,
다양한 실시예들에 따르면, 프로세서(120)는 동작 3909에서, 백홀에 해당하는 값을 참(true)로 설정할 수 있다. According to various embodiments, the
다양한 실시예들에 따르면, 프로세서(120)는 동작 3911에서, 인터넷 연결 대기 사이클이 THRESHOLD_MAX_WAITING_CYCLE을 초과하는지 여부를 확인할 수 있다. 프로세서(120)는 인터넷 연결 대기 사이클이 THRESHOLD_MAX_WAITING_CYCLE을 초과하는 경우, 동작 3909를 수행할 수 있고, 인터넷 연결 대기 사이클이 THRESHOLD_MAX_WAITING_CYCLE을 초과하지 않는 경우, 단계를 종료할 수 있다. According to various embodiments, the
다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(101))의 동작 방법은, 전송 프로토콜(transport protocol)의 상태를 식별하는 동작과, 상기 전송 프로토콜의 상태에 기반하여 전자 장치(101)의 통신 상태를 결정하는 동작과, 상기 통신 상태에 기반하여 네트워크를 변경하는 동작을 포함할 수 있다. The method of operation of an electronic device (e.g.,
다양한 실시예들에서, 상기 전송 프로토콜의 상태는, 상기 전자 장치에서 실행되는 애플리케이션의 TCP(transmission control protocol) 소켓의 상태를 포함할 수 있다.In various embodiments, the state of the transport protocol may include a state of a transmission control protocol (TCP) socket of an application executing in the electronic device.
다양한 실시예들에서, 상기 통신 상태는, 양호(good) 상태, 부족(poor) 상태, 블락(blocked) 상태 및 부진(sluggish) 상태 중 적어도 하나로 결정될 수 있다.In various embodiments, the communication state may be determined to be at least one of a good state, a poor state, a blocked state, and a sluggish state.
다양한 실시예들에서, 상기 통신 상태를 결정하는 동작은, 커넥션 설정을 위한 TCP 소켓을 검출하는 동작과, 상기 TCP 소켓의 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되는지 여부를 식별하는 동작과, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 큰지 여부를 식별하는 동작과, 상기 TCP 소켓의 상태가 커넥션 해제 대기 상태 및 시간 대기 상태인지 여부를 식별하는 동작과, 상기 커넥션 설정을 위한 TCP 소켓이 검출되고, 상기 TCP 소켓의 상태가 커넥션 설정 요청 상태에서 커넥션 설정 상태로 변경되고, 상기 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 크고, 상기 커넥션 해제 대기 상태 및 시간 대기 상태가 식별 되면, 상기 통신 상태를 상기 양호 상태로 결정하는 동작을 포함할 수 있다.In various embodiments, the operation of determining the communication state comprises: detecting a TCP socket for connection establishment; identifying whether the state of the TCP socket is changed from a connection establishment request state to a connection establishment state; Identifying whether a sum of a transmit data packet and a receive data packet of an application executing in the electronic device is greater than a threshold; identifying whether the state of the TCP socket is a connection release waiting state and a time waiting state; , A TCP socket for connection setting is detected, the state of the TCP socket is changed from a connection setting request state to a connection setting state, the sum of the transmission data packet and the reception data packet is larger than the threshold, And when the time waiting state is identified, the communication state is determined as the good state It may include the operation.
다양한 실시예들에서, 상기 통신 상태를 결정하는 동작은, 상기 통신 상태가 양호 상태인지 여부를 식별하는 동작과, 커넥션 설정을 위한 TCP 소켓을 검출하는 동작과, 상기 TCP 소켓의 상태가 커넥션 설정 요청 상태인지 여부를 식별하는 동작과, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷의 개수가 수신 데이터 패킷의 개수보다 많은지 여부를 식별하는 동작과, 상기 통신 상태가 양호 상태가 아니고, 상기 커넥션 설정을 위한 TCP 소켓이 검출되고, 상기 커넥션 설정 요청 상태가 식별되고, 상기 송신 데이터 패킷의 개수가 상기 수신 데이터 패킷의 개수보다 많으면, 상기 통신 상태를 상기 부족 상태로 결정하는 동작을 포함할 수 있다.In various embodiments, the determining of the communication state includes: identifying whether the communication state is in a good state; detecting a TCP socket for connection establishment; determining whether the state of the TCP socket is a connection establishment request Identifying whether the number of transmission data packets in an application executed in the electronic device is greater than the number of received data packets; and determining whether the communication state is not good, And determining that the communication state is the insufficient state if the TCP connection socket is detected and the connection establishment request state is identified and the number of transmission data packets is greater than the number of the reception data packets.
다양한 실시예들에서, 상기 통신 상태를 결정하는 동작은, 재전송을 수행하는 TCP 소켓을 검출하는 동작과, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 개수가 임계치보다 작은지 여부를 식별하는 동작과, 상기 전자 장치의 링크 속도(link speed), SNR(signal) 및 RSSI(received signal strength indication)가 임계치보다 큰지 여부를 식별하는 동작과, 상기 재전송을 수행하는 TCP 소켓이 감출되고, 상기 송신 데이터 패킷 및 상기 수신 데이터 패킷의 개수가 임계치보다 작고, 상기 링크 속도, SNR 및 RSSI가 임계치보다 크면, 상기 통신 상태를 블락 상태로 결정하는 동작을 포함할 수 있다.In various embodiments, the determining the communication state comprises: detecting a TCP socket performing retransmission; and determining whether the number of transmit data packets and receive data packets of the application running on the electronic device is less than a threshold Identifying a link speed, an SNR (signal) and a received signal strength indication (RSSI) of the electronic device that are greater than a threshold; and identifying a TCP socket performing the retransmission And determining that the communication state is in a block state if the number of the transmission data packet and the reception data packet is smaller than a threshold value and the link speed, SNR, and RSSI are larger than a threshold value.
다양한 실시예들에서, 상기 블락 상태는, 상기 전자 장치에서 실행되는 애플리케이션이 네트워크 방화벽(firewall)에 의해 블락(blocked)되는 상태를 포함할 수 있다.In various embodiments, the block state may include a state in which an application running in the electronic device is blocked by a network firewall.
다양한 실시예들에서, 상기 통신 상태를 결정하는 동작은, 커넥션 설정을 위한 TCP 소켓을 검출하는 동작과, 상기 TCP 소켓의 상태가 새로운 커넥션 설정 요청 상태인지 여부를 식별하는 동작과, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 작은지 여부를 식별하는 동작과, 상기 커넥션 설정을 위한 TCP 소켓이 검출되고, 상기 새로운 커넥션 설정 요청 상태가 식별되고, 상기 송신 데이터 패킷 및 수신 데이터 패킷의 합이 임계치보다 작으면, 상기 통신 상태를 상기 부진 상태로 결정하는 동작을 포함할 수 있다.In various embodiments, the determining of the communication state comprises: detecting a TCP socket for connection establishment; identifying whether the state of the TCP socket is a new connection establishment request state; Identifying whether a sum of a transmit data packet and a receive data packet of an executed application is less than a threshold; detecting a TCP socket for establishing the connection; identifying the new connection establishment request status; And if the sum of the received data packets is less than the threshold, determining the communication state to be in the slack state.
다양한 실시예들에서, 상기 전송 프로토콜의 상태는 상기 TCP 소켓의 아이디 및 IP 주소를 사용하여 식별될 수 있다. In various embodiments, the state of the transport protocol may be identified using the ID and IP address of the TCP socket.
다양한 실시예들에서 전자 장치(101)의 동작 방법은, 상기 통신 상태를 상기 전자 장치에 표시하는 동작과, 상기 통신 상태에 기반하여 네트워크 변경에 대한 정보를 포함하는 메시지를 상기 전자 장치에 표시하는 동작을 포함할 수 있다.The method of operation of the
다양한 실시예들에서 전자 장치(101)의 동작 방법은, 상기 전송 프로토콜의 상태 및 상기 전송 프로토콜의 카운트 중 적어도 하나를 확인하는 동작과, 상기 확인된 전송 프로토콜의 상태 및 상기 전송 프로토콜의 카운트 중 적어도 하나에 기반하여 백홀 실패(backhaul failure)를 결정하는 동작과, 상기 결정된 백홀 실패에 기반하여 상기 백홀 실패에 대한 제어를 수행하는 동작을 더 포함할 수 있다.The method of operation of the
다양한 실시예들에서, 상기 확인된 전송 프로토콜의 상태 및 상기 전송 프로토콜의 카운트 중 적어도 하나에 기반하여 백홀 실패를 결정하는 동작은, 상기 전송 프로토콜의 총 카운트가 임계값 이상인 것을 확인하는 동작과, 상기 전송 프로토콜의 커넥션 설정 카운트가 유지 또는 감소되는 것을 확인하는 동작과, 상기 확인된 결과들에 기반하여 상기 백홀 실패를 결정하는 동작을 포함할 수 있다.In various embodiments, the operation of determining a backhaul failure based on at least one of a status of the identified transport protocol and a count of the transport protocol comprises: confirming that the total count of the transport protocol is greater than or equal to a threshold; Confirming that the connection establishment count of the transport protocol is maintained or reduced, and determining the backhaul failure based on the confirmed results.
다양한 실시예들에서, 상기 확인된 전송 프로토콜의 상태 및 상기 전송 프로토콜의 카운트 중 적어도 하나에 기반하여 백홀 실패를 결정하는 동작은, 상기 전자 장치에서 실행되는 애플리케이션의 송신 데이터 패킷 및 수신 데이터 패킷의 개수가 임계값 이하인 것을 확인하는 동작과, 상기 확인된 결과에 기반하여 상기 백홀 실패를 결정하는 동작을 포함할 수 있다.In various embodiments, the operation of determining a backhaul failure based on at least one of the status of the identified transport protocol and the count of the transport protocol comprises: determining whether a backhaul failure is detected based on at least one of a transmission data packet and a number of received data packets Is less than or equal to a threshold value, and determining the backhaul failure based on the confirmed result.
다양한 실시예들에서, 상기 확인된 전송 프로토콜의 상태 및 상기 전송 프로토콜의 카운트 중 적어도 하나에 기반하여 백홀 실패를 결정하는 동작은, 상기 전송 프로토콜의 재전송 세그먼트가 임계값 이상인 것을 확인하는 동작과, 상기 확인된 결과에 기반하여 상기 백홀 실패를 결정하는 동작을 포함할 수 있다.In various embodiments, the operation of determining a backhaul failure based on at least one of a status of the identified transport protocol and a count of the transport protocol comprises: confirming that a retransmission segment of the transport protocol is above a threshold; And determining the backhaul failure based on the identified result.
다양한 실시예들에서, 상기 확인된 전송 프로토콜의 상태 및 상기 전송 프로토콜의 카운트에 기반하여 백홀 실패를 결정하는 동작은, 상기 전송 프로토콜의 수신 세그먼트의 에러가 발생한 것을 확인하는 동작과, 상기 확인된 결과에 기반하여 상기 백홀 실패를 결정하는 동작을 포함할 수 있다.In various embodiments, the operation of determining a backhaul failure based on the state of the identified transport protocol and the count of the transport protocol comprises: confirming that an error has occurred in the received segment of the transport protocol; And determining the backhaul failure based on the backhaul failure.
다양한 실시예들에서, 상기 결정된 백홀 실패에 기반하여 상기 백홀 실패에 대한 제어를 수행하는 동작은, 상기 백홀 실패에 대한 정보를 표시하는 동작과, 상기 백홀 실패에 기반하여 네트워크를 변경하기 위한 지시자를 표시하는 동작을 포함할 수 있다.In various embodiments, performing the control for the backhaul failure based on the determined backhaul failure comprises: displaying information about the backhaul failure; and generating an indicator for changing the network based on the backhaul failure And < / RTI >
다양한 실시예들에서, 상기 결정된 백홀 실패에 기반하여 상기 백홀 실패에 대한 제어를 수행하는 동작은, 상기 백홀 실패에 대한 정보를 송신할 외부 장치를 식별하는 동작과, 상기 식별된 외부 장치로 상기 백홀 실패에 대한 정보를 송신하는 동작을 포함할 수 있다.In various embodiments, performing the control for the backhaul failure based on the determined backhaul failure may include: identifying an external device to which information about the backhaul failure is to be transmitted; And sending information about the failure.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.The electronic device according to the various embodiments disclosed herein can be various types of devices. An electronic device may include, for example, a portable communication device (e.g., a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance. The electronic device according to the embodiment of the present document is not limited to the above-described devices.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나","A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.It should be understood that the various embodiments of the present document and the terminology used herein are not intended to limit the technical features described in this document to the specific embodiments, but to include various modifications, equivalents, or alternatives of the embodiments. In the description of the drawings, like 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 dictates otherwise. At least one of 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, , B, or C, "may include any one of the items listed in the corresponding phrase of the phrases, or all possible combinations thereof. Terms such as "first", "second", or "first" or "second" may simply be used to distinguish the component from the other component, Order). It is to be understood that any (e.g., first) component may be referred to as being "coupled" or "connected" to another (eg, second) component, with or without the term "functionally" When mentioned, it means that said component can be connected directly (e. G. By wire) to said another component, wirelessly, or via a third component.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" as used herein may include units implemented in hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic blocks, components, or circuits. A module may be an integrally constructed component or a minimum unit of the component or part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.The various embodiments of the present document may include 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) (E. G., Program 140). ≪ / RTI > For example, a processor (e.g., processor 120) of a device (e.g., electronic device 101) may invoke and execute at least one of the stored one or more instructions from a storage medium. This enables the device to be operated to perform at least one function in accordance with the at least one command being called. The one or more instructions may include code generated by the compiler or code that may be executed by the interpreter. A device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transient' means that the storage medium is a tangible device and does not include a signal (e.g., electromagnetic waves), which means that data is permanently stored in the storage medium Do not distinguish between cases where they are temporarily stored.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, a method according to various embodiments disclosed herein may be provided in a computer program product. A computer program product can be traded between a seller and a buyer as a product. 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 via an application store (e.g. PlayStore TM ) For example, smartphones), directly or online (e.g., downloaded or uploaded). In the case of on-line distribution, at least a portion of the computer program product may be temporarily stored, or temporarily created, on a storage medium readable by a machine, such as a manufacturer's server, a server of an application store, or a memory of a relay server.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (e.g., a module or program) of the components described above may include one or more entities. According to various embodiments, one or more of the above-described components or operations may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., modules or programs) may be integrated into one component. In such a case, the integrated component may perform one or more functions of each component of each of the plurality of components in a manner similar or similar to that performed by the corresponding one of the plurality of components prior to the integration . In accordance with various embodiments, operations performed by a module, program, or other component may be performed sequentially, in parallel, repetitively, or heuristically, or one or more of the operations may be performed in a different order, Or one or more other operations may be added.
Claims (15)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/733,418 US11432214B2 (en) | 2018-01-23 | 2019-01-22 | Method for network state identification and electronic device therefor |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2018-0008282 | 2018-01-23 | ||
| KR20180008282 | 2018-01-23 | ||
| KR10-2018-0092687 | 2018-08-08 | ||
| KR1020180092687A KR102558475B1 (en) | 2018-01-23 | 2018-08-08 | Method for network state identification and electronic device thereof |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019146996A1 true WO2019146996A1 (en) | 2019-08-01 |
Family
ID=67395020
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2019/000900 Ceased WO2019146996A1 (en) | 2018-01-23 | 2019-01-22 | Method for network state identification and electronic device therefor |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2019146996A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113037642A (en) * | 2021-02-25 | 2021-06-25 | 深圳技术大学 | Internet of things data transmission method and transmission system |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6115393A (en) * | 1991-04-12 | 2000-09-05 | Concord Communications, Inc. | Network monitoring |
| US20100002610A1 (en) * | 2008-07-03 | 2010-01-07 | Robert Bowser | Power savings for wireless local area networks |
| US20150092747A1 (en) * | 2004-01-06 | 2015-04-02 | Vasu Networks Corporation | Mobile telephone voip/cellular seamless roaming switching controller |
| US20150215832A1 (en) * | 2014-01-28 | 2015-07-30 | Openet Telecom Ltd. | System and Method for Performing Network Selection |
| US20150280995A1 (en) * | 2010-06-09 | 2015-10-01 | Roke Manor Research Limited | Mobile Device and Method for Switching Communication Sessions Between Alternative Network Resources |
-
2019
- 2019-01-22 WO PCT/KR2019/000900 patent/WO2019146996A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6115393A (en) * | 1991-04-12 | 2000-09-05 | Concord Communications, Inc. | Network monitoring |
| US20150092747A1 (en) * | 2004-01-06 | 2015-04-02 | Vasu Networks Corporation | Mobile telephone voip/cellular seamless roaming switching controller |
| US20100002610A1 (en) * | 2008-07-03 | 2010-01-07 | Robert Bowser | Power savings for wireless local area networks |
| US20150280995A1 (en) * | 2010-06-09 | 2015-10-01 | Roke Manor Research Limited | Mobile Device and Method for Switching Communication Sessions Between Alternative Network Resources |
| US20150215832A1 (en) * | 2014-01-28 | 2015-07-30 | Openet Telecom Ltd. | System and Method for Performing Network Selection |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113037642A (en) * | 2021-02-25 | 2021-06-25 | 深圳技术大学 | Internet of things data transmission method and transmission system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020101282A1 (en) | Electronic device and method for operating access point information by electronic device | |
| WO2020045950A1 (en) | Method, device, and system of selectively using multiple voice data receiving devices for intelligent service | |
| WO2020080776A1 (en) | Electronic device supporting link sharing and method therefor | |
| WO2015126198A1 (en) | Method of operating function and resource of electronic device | |
| WO2020022578A1 (en) | Electronic device using wireless charging to control communication channel, and method for operation of electronic device | |
| WO2013058423A1 (en) | Electronic device and method for operating the electronic device | |
| WO2017003096A1 (en) | Method for establishing connection between devices | |
| WO2021033954A1 (en) | Electronic device for retransmitting data in bluetooth network environment and method thereof | |
| WO2019050349A1 (en) | Electronic device for transmitting and receiving data in wireless communication system and method therefor | |
| WO2021137569A1 (en) | Method for transceiving data in bluetooth network environment and electronic device thereof | |
| WO2019031708A1 (en) | Electronic device and method for processing information associated with driving | |
| WO2019139247A1 (en) | Electronic device for managing embedded subscriber identification module and method for same | |
| WO2019066343A1 (en) | Method and device for communication between electronic devices | |
| WO2021201620A1 (en) | Electronic device for performing edge computing service and method for the same | |
| WO2021033961A1 (en) | Electronic device and method for providing service by electronic device | |
| WO2020032649A1 (en) | Electronic device and communication relaying method thereof | |
| EP3830821A1 (en) | Method, device, and system of selectively using multiple voice data receiving devices for intelligent service | |
| WO2018230933A1 (en) | Method and apparatus for transmitting or receiving data by using bluetooth low energy technology | |
| WO2022055291A1 (en) | Electronic device and method for updating electronic device | |
| WO2020054942A1 (en) | Electronic device for performing authentication by using accessory, and electronic device operating method | |
| WO2017111545A1 (en) | Device and method for transmitting and receiving data on basis of sound signal in wireless communication system | |
| WO2022060046A1 (en) | Edge computing system and handover method for edge computing device | |
| EP3707887A1 (en) | Method of providing notification and electronic device supporting same | |
| WO2020171412A1 (en) | Electronic apparatus and method for controlling the electronic apparatus | |
| WO2019146996A1 (en) | Method for network state identification and electronic device therefor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19744534 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19744534 Country of ref document: EP Kind code of ref document: A1 |