Terminal device, server device, communication method, and program

The terminal and server devices establish QUIC and TLS over TCP connections to prioritize HTTP/3 for faster communication when supported, addressing the lack of protocol preference in existing systems and ensuring efficient and secure communication.

JP7717496B2Active Publication Date: 2025-08-04SHARP KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2021091858
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-05-31
Publication Date
2025-08-04
Estimated Expiration
2041-05-31

AI Technical Summary

Technical Problem

Existing communication protocols, such as those described in Patent Document 1, do not consider the preference for using a new communication protocol with improved communication speed when a destination device supports it.

Method used

A terminal device and server device are equipped with control units that establish both a QUIC connection for HTTP/3 and a TLS over TCP connection for HTTP/2 in parallel, allowing the device to preferentially use HTTP/3 when the QUIC connection is established, thereby leveraging the faster communication speed of HTTP/3.

Benefits of technology

Enables efficient communication using an appropriate protocol, ensuring faster communication speeds by prioritizing HTTP/3 when supported by the destination device, while maintaining secure communication through parallel connections.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007717496000001
    Figure 0007717496000001
  • Figure 0007717496000002
    Figure 0007717496000002
  • Figure 0007717496000003
    Figure 0007717496000003
Patent Text Reader

Abstract

To provide a terminal device and the like capable of communication using an appropriate communication protocol.SOLUTION: A terminal device includes a control unit and a communication unit that performs HTTP (Hyper Text Transfer Protocol) communication with a communication destination. The control unit starts a process for establishing a first connection for using HTTP / 3 and a second connection for using HTTP / 2, and when the first connection can be established, communicates via the communication unit, using the HTTP / 3.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a terminal device and the like.

Background Art

[0002] Conventionally, various devices have been connected to a network and communicate with each other. Also, some devices appropriately select a communication protocol to be used from a plurality of communication protocols used when communicating. In this case, techniques for efficiently selecting a communication protocol have also been proposed.

[0003] For example, when a destination communication device is specified, it is determined whether to omit the protocol switching process from the first communication protocol to the second communication protocol based on whether the identification information of the destination communication device is registered. If it is determined to omit the switching process, a communication device that transmits a connection start request using the second communication protocol to the destination device has been proposed (see, for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] Here, when a device communicates with another device, there may be a case where either a conventionally used communication protocol or a new communication protocol that improves the conventional communication protocol (for example, a communication protocol with improved communication speed) can be selected. When the destination device supports the new communication protocol, it is desirable for the device performing the communication to preferentially select the new protocol. However, Patent Document 1 does not consider the above-described case.

[0006] In view of the above-described problems, an object of the present disclosure is to provide a terminal device or the like capable of communicating using an appropriate communication protocol.

Means for Solving the Problems

[0007] In order to solve the above-described problems, a terminal device according to the present disclosure includes a control unit and a communication unit that performs HTTP (Hyper Text Transfer Protocol) communication with a communication destination. The control unit starts a process for establishing a first connection for using HTTP / 3 and a second connection for using HTTP / 2. When the first connection can be established, the control unit communicates via the communication unit using HTTP / 3.

[0008] A server device according to the present disclosure includes a control unit and a communication unit that performs HTTP (Hyper Text Transfer Protocol) communication. The communication unit can establish a first connection for using HTTP / 3 and a second connection for using HTTP / 2. When the first connection and the second connection are connections using a public-key cryptosystem, and when key information is acquired from a communication destination via one of the first connection and the second connection, the control unit uses the key information when establishing the other connection with the communication destination.

[0009] A communication method according to the present disclosure is a communication method of a terminal device that performs HTTP (Hyper Text Transfer Protocol) communication, and includes a step of starting a process for establishing a first connection for using HTTP / 3 and a second connection for using HTTP / 2, and a step of the terminal device communicating using HTTP / 3 when the first connection can be established.

[0010] The program according to the present disclosure causes a computer to start a process for establishing a first connection for using HTTP (Hyper Text Transfer Protocol) communication and a second connection for using HTTP / 2 with a computer that performs HTTP communication, and when the first connection can be established, to realize a function of performing communication using the HTTP / 3.

[0011] The terminal device according to the present disclosure includes a control unit and a communication unit. The control unit starts a process for establishing a first connection for using a first communication protocol with a high communication speed and a second connection for using a second communication protocol with a low communication speed via the communication unit, and when the first connection can be established, performs communication using the first communication protocol.

Effect of the Invention

[0012] According to the present disclosure, it is possible to provide a terminal device or the like that can communicate using an appropriate communication protocol.

Brief Description of the Drawings

[0013]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

[0014] Hereinafter, with reference to the drawings, one embodiment for implementing the present disclosure will be described. Note that the following embodiments are examples for explaining the present disclosure, and the technical scope of the invention described in the claims is not limited to the following description.

[0015] [1. First Embodiment] [1.1 Overall Configuration] With reference to FIG. 1, the overall configuration of the system 1 in the present embodiment will be described. As shown in FIG. 1, in the system 1, the terminal device 10 and the server device 20 are communicably connected via the network NW. The network NW may be an external network (WAN (Wide Area Network)) such as the Internet, or an internal network such as a LAN (Local Area Network). Note that in the present embodiment, "being connected" means being in a state of communicating between two devices.

[0016] The terminal device 10 is an information processing device used by a user. The terminal device 10 is constituted by, for example, a computer (information processing device) such as a smartphone, a tablet, or a PC (Personal Computer).

[0017] The server device 20 is an information processing device that provides a predetermined service. The server device 20 is constituted by a computer (information processing device) such as a PC or a server. The server device 20 may be constituted by a plurality of information processing devices, or may be constituted by a virtual server realized on an arbitrary information processing device.

[0018] [1.2 Functional Configuration] [1.2.1 Terminal Device] Referring to FIG. 2, the functional configuration of the terminal device 10 will be described. As shown in FIG. 2, the terminal device 10 includes a control unit 100, a display unit 140, an operation unit 150, a storage unit 160, and a communication unit 190.

[0019] The control unit 100 is a functional unit for controlling the entire terminal device 10. The control unit 100 realizes various functions by reading and executing various programs stored in the storage unit 160, and is constituted by, for example, one or a plurality of arithmetic units (CPUs (Central Processing Unit)).

[0020] The display unit 140 displays various information. The display unit 140 is constituted by, for example, a display device such as an LCD (Liquid crystal display), an organic EL (electro-luminescence) panel, or a micro LED (Light Emitting Diode) display.

[0021] The operation unit 150 receives operations of a user who uses the terminal device 10. The operation unit 150 is configured by an input device such as a touch sensor. The method of detecting an input in the touch sensor may be a general detection method such as a resistive film method, an infrared method, an electromagnetic induction method, or a capacitance method. Note that the terminal device 10 may be equipped with a touch panel in which the display unit 140 and the operation unit 150 are integrally formed.

[0022] The storage unit 160 stores various programs and various data necessary for the operation of the terminal device 10. The storage unit 160 is configured by a storage device such as an SSD (Solid State Drive) which is a semiconductor memory, an HDD (Hard Disk Drive), or the like.

[0023] A set value information storage area 162 is secured in the storage unit 160. The set value information stored in the terminal device 10 is information indicating setting information (set values) for each communication destination. As shown in FIG. 3, the set value information stored in the terminal device 10 includes a server identifier and setting information.

[0024] The server identifier is information for identifying a device that is a communication destination (for example, the server device 20), and information indicating a communication protocol, a port number, etc. used for communication with the device. The set value information in the case of communicating with the server device 20 includes the following information.

[0025] · The address of the server device 20 The address of the server device 20 is address information for identifying the server device 20, and is, for example, an IP (Internet Protocol) address or a URI (Uniform Resource Identifier).

[0026] · Protocol The protocol is information for identifying a communication protocol (a communication protocol that can be selected by the terminal device 10) that can be used for communication when the terminal device 10 communicates with the server device 20. As the protocol, for example, information such as "h3", which indicates that HTTP / 3 can be selected as the communication protocol, is stored. Information indicating the communication protocol is also referred to as a token.

[0027] · Port The port is information on the port used when communicating with the server device 20. For example, when communicating with the server device 20 and using the Internet Protocol Suite, as port information, a port number and a communication protocol (transport layer network protocol) in the transport layer are stored. The communication protocol in the transport layer is, for example, TCP (Transmission Control Protocol) or UDP (User Datagram Protocol). In this case, information such as "430 / UDP" is stored as the port information.

[0028] Note that the server identifier may store information such as "100.200.100.24:3005 TCP", which combines the IP address indicating the address of the server device 20 and the port information.

[0029] The setting information is information such as the last access time (date and time), information regarding the service provided by the server device 20, the content of the SETTINGS FRAME received from the server device 20, and information indicating whether the exchange of setting values (SETTINGS FRAME) can be skipped. Note that information other than the above-mentioned information may be stored in the setting information. For example, the setting information may store information such as the TLS (Transport Layer Security) session id, TLS session ticket, and TLS session key.

[0030] The communication unit 190 communicates with external devices such as the server device 20 via a LAN (Local Area Network) or a WAN (Wide Area Network). The communication unit 190 is composed of, for example, a NIC (Network Interface Card) used in a wired / wireless LAN or a communication module connectable to an LTE (Long Term Evolution) / LTE-A (LTE-Advanced) / LAA (License-Assisted Access using LTE) / 5G line.

[0031] [1.2.2 Server Device] Referring to FIG. 2, the functional configuration of the server device 20 will be described. As shown in FIG. 2, the server device 20 includes a control unit 200, a storage unit 260, and a communication unit 290.

[0032] The control unit 200 is a functional unit for controlling the entire server device 20. The control unit 200 realizes various functions by reading and executing various programs stored in the storage unit 260, and is composed of, for example, one or more arithmetic units (CPUs), etc.

[0033] The storage unit 260 stores various programs and various data necessary for the operation of the server device 20. The storage unit 260 is composed of, for example, an SSD which is a semiconductor memory or a storage device such as an HDD.

[0034] A setting value information storage area 262 is secured in the memory unit 260. The setting value information stored in the server device 20 is information indicating setting information for each device that is a communication partner (for example, the terminal device 10). The setting value information stored in the server device 20 stores an identifier for identifying the terminal device 10 and the setting information of the terminal device 10 (for example, the content of the SETTINGS FRAME received from the terminal device 10). Note that the identifier of the terminal device 10 stored in the server device 20 stores information used for, for example, the process of TLS session resumption. In this case, as the identifier of the terminal device 10, a TLS session key, a session ticket, and other information that can be used for TLS session resumption are stored.

[0035] The communication unit 290 communicates with the terminal device 10 and other devices. For example, the communication unit 290 is composed of a communication device or communication module such as a NIC used in a wired / wireless LAN, and communicates with external devices via a LAN or WAN.

[0036] Note that the configurations of the above-described devices are examples and may be changed. For example, each device may be configured by a chip (SoC; System-on-a-chip) that integrates a control unit and a communication unit.

[0037] [1.3 Flow of Processing] Next, the processing executed by the terminal device 10 and the server device 20 included in the system 1 will be described. Here, the processing executed by the terminal device 10 is executed by the control unit 100 reading out the program stored in the memory unit 160. Also, the processing executed by the server device 20 is executed by the control unit 200 reading out the program stored in the memory unit 260.

[0038] In the following description, the communication performed between the terminal device 10 and the server device 20 will be described as being the transmission and reception of data such as data transmitted to display a web page on a web browser or the like.

[0039] In the following description, it is assumed that when the terminal device 10 communicates with the server device 20, it can select any one of the communication protocols HTTP / 3, HTTP / 2, and HTTP1.1. Here, HTTP / 3, HTTP / 2, and HTTP1.1 are communication protocols for transferring data transmitted to display a web page on a web browser or the like. HTTP / 3, HTTP / 2, and HTTP1.1 are communication protocols in the application layer of the Internet Protocol Suite. Note that the data transmitted to display a web page on a web browser or the like is, for example, content data such as HTML (HyperText Markup Language) data, image data, CSS (Cascading Style Sheets) data, and script data. Also, it is assumed that the server device 20 can use (host) one or more of the communication protocols HTTP / 3, HTTP / 2, and HTTP1.1.

[0040] Also, in the following description, the server device 20 will be described as the device to which the terminal device 10 communicates.

[0041] [1.3.1 Terminal Device] [1.3.1.1 Main Process] With reference to FIG. 4, the flow of the main process executed by the terminal device 10 will be described. First, the control unit 100 acquires an identifier (step S100). The identifier is information for identifying the server device 20 that is the communication destination. The identifier is, for example, information such as a URI, an IP address, a port (port number or communication protocol in the transport layer), and a Session-ID.

[0042] Next, the control unit 100 determines whether or not the setting value information of the server device 20 serving as the communication destination is stored (step S102). For example, when the setting value information including the server identifier corresponding to the identifier of the server device 20 acquired in step S100 is stored in the setting value information storage area 162, the control unit 100 determines that the setting value information is stored.

[0043] The case where the setting value information is not stored is, for example, when the server device 20 corresponding to the identifier acquired in step S100 is connected for the first time, or when the setting value information is deleted or invalidated. Further, the case where the setting value information is invalidated means that an expiration date is stored in the setting information included in the setting value information, and the expiration date has passed.

[0044] When the control unit 100 determines that the setting value information is not stored, it determines whether the protocol schema is TLS (Transport Layer Security) (step S102; Yes → step S104).

[0045] The protocol schema is information indicating the type of communication, and is, for example, information such as HTTP (Hyper Text Transfer Protocol) or HTTPS (Hypertext Transfer Protocol Secure). The control unit 100 acquires the protocol schema from the information included in the identifier (for example, URI) acquired in step S100. Further, when the acquired protocol schema is a protocol schema indicating that the communication uses the TLS protocol, the control unit 100 determines that the protocol schema is TLS.

[0046] When the protocol schema is TLS, the control unit 100 executes the first connection process (step S104; Yes → step S106). On the other hand, when the protocol schema is not TLS, the control unit 100 executes the second connection process (step S104; No → step S108). The first connection process and the second connection process will be described later.

[0047] On the other hand, in step S102, when the control unit 100 determines that the set value information is stored, it determines whether information indicating HTTP / 3 is stored in the server identifier included in the set value information as protocol information (step S102; No → step S110). The case where information indicating HTTP / 3 (for example, a token such as "h3") is stored in the server identifier means that the server device 20 serving as the communication destination hosts HTTP / 3 and it is possible to use HTTP / 3 (the first communication protocol) as the communication protocol.

[0048] When information indicating HTTP / 3 is stored in the server identifier, the control unit 100 executes the first reconnection process (step S110; Yes → step S112). On the other hand, when information indicating HTTP / 3 is not stored in the server identifier, the control unit 100 executes the second reconnection process (step S110; No → step S114). The first reconnection process and the second reconnection process will be described later.

[0049] [1.3.1.2 First connection process] The first connection process will be described with reference to FIG. 5. The first connection process is a process for establishing a connection for secure communication between the devices (terminal device 10 and server device 20) that perform communication. First, the control unit 100 starts a process for establishing two connections, a QUIC connection and a TLS over TCP connection (step S200). In the present embodiment, the two connections are described as a QUIC connection and a TLS over TCP connection. Also, in the present embodiment, "connection" refers to a logical communication path for performing communication between two devices (for example, terminal device 10 and server device 20). In the present embodiment, "connection" is also described as "connection".

[0050] A QUIC connection is a connection (the first connection) for using HTTP / 3 (the first communication protocol). In a QUIC connection, QUIC is used as the protocol for establishing the connection and conducting communication in the connection. QUIC is a communication protocol in the transport layer of the Internet Protocol Suite.

[0051] A TLS over TCP connection is a connection (the second connection) for using HTTP / 2 (the second communication protocol) and is a connection for conducting secure communication. In a TLS over TCP connection, TCP for establishing the connection (TCP connection) and TLS for conducting secure communication are used as the protocols for establishing the connection and conducting communication in the connection.

[0052] Note that since a TLS over TCP connection is a secure TCP connection, in this embodiment, the TLS over TCP connection is also referred to as a TCP connection. TCP is a communication protocol in the transport layer of the Internet Protocol Suite.

[0053] Here, HTTP / 2 and HTTP / 3 are communication protocols for conducting HTTP communication. Also, HTTP / 3 is a relatively higher version communication protocol compared to HTTP / 2, and HTTP / 2 is a relatively lower version communication protocol compared to HTTP / 3. HTTP / 3 is a communication protocol that improves the communication method in HTTP / 2.

[0054] The TCP connection, which is a connection for using HTTP / 2, uses TCP for the communication of data (packets). TCP realizes packet sequence control. With packet sequence control, the device that receives the packets can correctly reconstruct the data split into packets. On the other hand, due to packet sequence control, packet retransmission occurs when packet loss occurs, etc. Especially in a poor communication environment such as a wide-area wireless communication environment like mobile, packet jitter and damage occur, resulting in packet retransmission, and as a result, the communication speed may become slow. Note that the retransmission problem in TCP is also called the HoL (Head of Line Blocking) problem. Also, in TCP, when communicating data (segments), a connection is established by performing a three-way handshake with the destination. In this way, TCP guarantees the reliability of communication by executing packet sequence control and the three-way handshake. However, in TCP, in order to achieve highly reliable communication, there may be cases where delays in communication due to the HoL problem and the three-way handshake occur. That is, communication using TCP is slower than communication using UDP.

[0055] Also, in order to perform secure communication in a TCP connection, in addition to establishing the TCP connection, it is necessary to perform processing (for example, TLS handshake, etc.) for performing TLS communication (communication using TLS over the TCP connection). Therefore, in order to realize secure communication using HTTP / 2, it is necessary to execute processing for establishing a connection (TCP connection) and processing for performing TLS communication.

[0056] On the one hand, for a QUIC connection, which is a connection for using HTTP / 3, UDP is used for communication of data (packets). Different from TCP, UDP does not perform packet sequence control. Therefore, in UDP, since packet retransmission due to packet sequence control does not occur, the HoL problem is alleviated. Also, in UDP, the three-way handshake in TCP is not performed. Thus, UDP does not guarantee the reliability of communication compared to TCP. However, since communication is realized with simpler processing by using UDP, the communication speed of communication using UDP is faster than that of communication using TCP. Note that in a QUIC connection, the arrival guarantee of packets, the guarantee of packet order, and connection management are performed by the QUIC protocol.

[0057] Also, the QUIC protocol is integrated with TLS1.3 and can perform processing for secure communication (communication using the TLS protocol) in the process of establishing a connection. Therefore, to realize secure communication using HTTP / 3, only the processing for establishing a connection (QUIC connection) needs to be executed.

[0058] As described above, a QUIC connection, which is a connection using UDP, has different procedures at the time of establishing a connection between devices performing communication compared to a TCP connection using TCP, and the amount of packets transmitted and received at the time of establishing a connection decreases. Furthermore, in a QUIC connection, secure communication is realized only by establishment. Moreover, a QUIC connection can perform communication with the HoL problem alleviated. Therefore, HTTP / 3, which is a communication protocol using a QUIC connection, has a faster communication speed than HTTP / 2 using a TCP connection (HTTP / 2 has a slower communication speed compared to HTTP / 3).

[0059] The control unit 100 starts the processes for establishing two connections, namely a QUIC connection and a TLS over TCP connection, in parallel. For example, the control unit 100 may start the process of establishing a QUIC connection and the process of establishing a TLS over TCP connection almost simultaneously. Note that the control unit 100 may start the process of establishing a TLS over TCP connection after starting the process of establishing a QUIC connection.

[0060] To establish a QUIC connection, the control unit 100 connects to the default port (e.g., 443 / UDP) used when the server device 20 communicates using HTTP / 3. When the connection using QUIC can be established, the control unit 100 determines that the QUIC connection has been established.

[0061] Also, to establish a TLS over TCP connection, the control unit 100 communicates with the server device 20 on the default port (e.g., 443 / TCP) used when communicating using HTTP / 2. When the ALPN (Application-Layer Protocol Negotiation) negotiation of TLS is successful, the control unit 100 determines that the TLS over TCP connection has been established.

[0062] Subsequently, the control unit 100 determines whether the QUIC connection has been established (step S202). For example, the control unit 100 determines that the QUIC connection has been established in the following cases. · When the QUIC connection can be established first · When the TLS over TCP connection can be established and then the QUIC connection can be established within a predetermined time

[0063] The predetermined time may be set in advance or may be settable by the user. Even if the QUIC connection can be established within the predetermined time, the control unit 100 determines that the QUIC connection has been established, so that communication using HTTP / 3 (the first communication protocol) via the QUIC connection can be performed.

[0064] When the QUIC connection can be established, the control unit 100 disconnects the TCP connection (step S202; Yes → step S204).

[0065] Subsequently, the control unit 100 establishes a connection using HTTP / 3 as the communication protocol (step S206). That is, the control unit 100 enables communication using HTTP / 3 as the communication protocol. For example, in order to enable communication using HTTP / 3 as the communication protocol, the control unit 100 designates "h3" as a token with ALPN and performs protocol negotiation with the server device 20.

[0066] Subsequently, the control unit 100 obtains the setting information of the server device 20 by exchanging a SETTINGS FRAME with the server device 20 (step S208).

[0067] On the other hand, if the QUIC connection cannot be established in step S202, the control unit 100 disconnects the QUIC connection (step S202; No → step S210). The case where the QUIC connection cannot be established is, for example, when the server device 20 cannot connect to the default port used when performing communication using HTTP / 3, or when the connection process has not been completed even after a predetermined time has elapsed.

[0068] In such a case, when a TLS over TCP connection can be established, the control unit 100 continues communication using the TLS over TCP connection.

[0069] Next, the control unit 100 determines whether an HTTP / 2 connection is possible as a communication protocol, that is, whether communication using HTTP / 2 is possible (step S212). For example, the control unit 100 designates HTTP / 2 (h2) and HTTP / 1.1 (http / 1.1) by ALPN. When HTTP / 2 is selected by the server device 20, the control unit 100 determines that communication using HTTP / 2 is possible. On the other hand, when HTTP / 1.1 is selected by the server device 20, the control unit 100 determines that communication using HTTP / 2 is not possible. At this time, the control unit 100 establishes a connection using the communication protocol selected by the server device 20 and starts communication.

[0070] If the control unit 100 determines in step S212 that communication using HTTP / 2 is possible, it acquires the setting information of the server device 20 by exchanging SETTINGS FRAME with the server device 20 (step S212; Yes → step S214). Note that if the control unit 100 determines in step S212 that communication using HTTP / 2 is not possible, the process in step S214 is omitted (skipped) (step S212; No).

[0071] Also, after executing the process in step S208, after executing the process in step S214 or after omitting the process in step S214, the control unit 100 stores the set value information (step S216). For example, the control unit 100 stores the set value information including the identifier acquired in step S100 as the server identifier and the content of the SETTINGS FRAME acquired from the server device 20 of the communication destination as the setting information in the set value information storage area 162. By doing so, the control unit 100 can store information on the communication protocol and port that can be used for communication with the communication destination device (server device 20) identified by the URI or IP address.

[0072] Note that the control unit 100 executes the following processes in step S216. · When the control unit 100 can connect to both HTTP / 2 and HTTP / 3, it stores both HTTP / 2 and HTTP / 3 as the connectable protocols. · When the control unit 100 is shown from the server device 20 during communication that the same resource can be obtained with another communication protocol / URI in frames and headers (e.g., Alt-Svc header / frame), it stores the indicated information. · When the control unit 100 is shown from the server device 20 that it is possible to skip settings (omission of SETTINGS FRAME exchange), it stores information indicating that setting skipping is possible. Note that the control unit 100 determines that setting skipping is possible when, for example, it receives a specific frame from the server device 20. Note that the control unit 100 may also determine that setting skipping is possible when it receives extended SETTINGS FRAMES (e.g., SETTINGS FRAMES containing specific information) from the server device 20 or when a predetermined process is executed by the server device 20. · When performing TLS communication, the control unit 100 stores information indicating that TLS communication has been performed.

[0073] Through the above-described processing, the control unit 100 can start either communication using HTTP / 3 or communication using HTTP / 2, and can store information on the protocol used for communication with the server device 20. Note that when the control unit 100 fails to establish either a QUIC connection or a TLS over TCP connection, it may end the processing described in FIG. 5 and display an error message on the display unit 140.

[0074] [1.3.1.3 Second Connection Process] The second connection process will be described with reference to FIG. 6. The second connection process is a process for establishing a connection for performing plaintext communication between devices (terminal device 10 and server device 20) that communicate. First, the control unit 100 starts a TCP connection (a connection using TCP as the communication protocol) with the server device 20 and establishes a TCP connection (step S300). As a result, the control unit 100 can establish a TCP connection with the server device 20 and perform plaintext communication using TCP. Also, at this time, the control unit 100 can communicate using HTTP / 1.1 as the communication protocol.

[0075] When the TCP connection is established, the control unit 100 sends a request to upgrade the communication protocol to the server device 20 (step S302). For example, the control unit 100 uses the Switching Protocol to send an Upgrade request to the server device 20.

[0076] Based on the result of the process in step S302, the control unit 100 determines whether it is possible to upgrade the communication protocol from HTTP / 1.1 to HTTP / 2 (whether an HTTP / 2 connection is possible) (step S304). For example, when the control unit 100 receives information indicating that an upgrade to HTTP / 2 is possible from the server device 20, it determines that an HTTP / 2 connection is possible.

[0077] When an HTTP / 2 connection is possible, the control unit 100 establishes an HTTP / 2 clear text connection (communication using HTTP / 2 clear text) with the server device 20 and starts communication (step S304; Yes → step S306). Further, the control unit 100 exchanges SETTINGS FRAME with the server device 20 (step S308).

[0078] On the other hand, when an HTTP / 2 connection is not possible, the control unit 100 establishes an HTTP / 1.1 clear text connection (communication using HTTP / 1.1 clear text) with the server device 20 and starts communication (step S304; No → step S310). In this case, the control unit 100 omits (skips) the process of exchanging SETTINGS FRAME.

[0079] In this way, the control unit 100 can determine whether the communication protocol to be used for communication with the server device 20 is HTTP / 1.1 or HTTP / 2 in step S304. Also, when HTTP / 2 can be used in the communication with the server device 20, the control unit 100 can change the protocol used for communication with the server device 20 from HTTP1.1 to HTTP / 2.

[0080] Subsequently, the control unit 100 stores the set value information (step S312). The process in step S312 is the same as the process in step S216 of FIG. 5.

[0081] [1.3.1.4 First reconnection process] The first reconnection process will be described with reference to FIG. 7. First, the control unit 100 establishes a QUIC connection (step S400). Here, the control unit 100 has determined in step S110 of FIG. 4 that the server device 20 as the communication destination hosts HTTP / 3. Therefore, the control unit 100 only needs to establish a QUIC connection and can omit the process of establishing a TLS over TCP connection. Since the process of establishing a TLS over TCP connection can be omitted, the control unit 100 can efficiently resume communication using HTTP / 3. In this way, when communicating with the server device 20 as the communication destination, if HTTP / 3 (the first protocol) is stored as a communication protocol that can be used for communication with the server device 20, the control unit 100 performs communication using the HTTP / 3.

[0082] Subsequently, the control unit 100 determines whether the setting can be skipped (step S402). For example, the control unit 100 acquires setting value information including a server identifier corresponding to the identifier of the server device 20 acquired in step S100. When information indicating that the setting can be skipped is stored in the acquired setting value information, the control unit 100 determines that the setting can be skipped.

[0083] If the control unit 100 can skip the setting, it restores the setting value (step S402; Yes → step S404). For example, the control unit 100 reads the setting information stored in the setting value information acquired in step S402, acquires the content of the SETTINGS FRAME, reproduces the state after receiving the SETTINGS FRAME, and then starts communication with the server device 20. In this case, the control unit 100 skips the process of exchanging the SETTINGS FRAME with the server device 20 (step S406).

[0084] If an error occurs when the control unit 100 omits the exchange of the SETTINGS FRAME, it performs an HTTP / 3 reconnection (step S408; Yes → step S410). The case where an error occurs is, for example, when an error is returned from the server device 20 which is the communication destination. In such a case, the control unit 100 performs an HTTP / 3 reconnection by transmitting and receiving information necessary for communicating with the server device 20 using HTTP / 3. At this time, the control unit 100 stores information indicating that the setting cannot be skipped in the setting value information acquired in step S402. Note that the control unit 100 may indicate that the setting cannot be skipped by deleting information indicating that the setting can be skipped from the setting value information.

[0085] Also, the control unit 100 executes the process of exchanging the SETTINGS FRAME with the server device 20 by executing the process of step S208 in FIG. 5.

[0086] On the other hand, when the control unit 100 determines in step S402 that the setting cannot be skipped, it exchanges with the server device 20 the SETTINGS FRAME (step S402; No → step S412). In this case, the control unit 100 performs processing in the case of using HTTP / 3 as the communication protocol by the normal method.

[0087] By the above-described processing, the control unit 100 can start communication using HTTP / 3 as the communication protocol when the exchange of the SETTINGS FRAME is skipped and no error occurs, or when the SETTINGS FRAME is exchanged. Here, at the time of reconnection, since the control unit 100 does not have to execute the process of establishing a TLS over TCP connection, the reconnection to the server device 20 can be efficiently performed.

[0088] Note that when the control unit 100 cannot use HTTP / 3, such as when the establishment of the QUIC connection in step S400 fails, it promptly switches to communication using the communication protocol stored in the setting value information corresponding to the server device 20 of the communication destination.

[0089] [1.3.1.5 Second Reconnection Process] The second reconnection process will be described with reference to FIG. 8. First, the control unit 100 determines whether information indicating that TLS communication has been performed with the server device 20 is stored (step S500). For example, the control unit 100 may obtain the setting value information including the server identifier corresponding to the identifier of the server device 20 obtained in step S100, and determine whether information indicating that TLS communication has been performed is stored in the obtained setting value information.

[0090] When the control unit 100 stores information indicating that TLS communication has been performed, it starts a TLS connection with the server device 20 (step S500; Yes → step S502). In this case, the server device 20 does not host HTTP / 3, and it indicates that communication using the TLS protocol is to be performed. The control unit 100 starts a TCP connection with the server device 20 and executes TLS ALPN negotiation. Thereby, the control unit 100 can establish a TLS over TCP connection with the server device 20.

[0091] On the other hand, when the control unit 100 does not store information indicating that TLS communication has been performed, it starts a TCP connection (plaintext communication) with the server device 20 (step S500; No → step S504). In this case, the server device 20 does not host HTTP / 3, and it does not indicate that communication using the TLS protocol is to be performed. At this time, the control unit 100 does not execute TLS ALPN negotiation. Thereby, the control unit 100 can establish a TCP connection with the server device 20.

[0092] Subsequently, the control unit 100 determines whether information indicating HTTP / 2 is stored in the server identifier included in the setting value information corresponding to the communication destination server device 20 as protocol information (step S506).

[0093] When the control unit 100 stores information indicating HTTP / 2, it transmits a Client Connection Preface to the server device 20 (step S506; Yes → step S508). In this case, since the control unit 100 can detect in advance that HTTP / 2 is to be used as the communication protocol in communication with the server device 20, it can perform communication using HTTP / 2 in direct mode by the process in step S508.

[0094] When an error occurs by transmitting the Client Connection Preface, the control unit 100 determines whether the server device 20 supports the Switching Protocol (step S510; Yes → step S512). The occurrence of an error means, for example, that an error is returned from the server device 20 at the communication destination.

[0095] When the server device 20 supports the Switching Protocol, the control unit 100 executes the process in step S302 of FIG. 6 (step S512; Yes). Note that the control unit 100 stores, in the setting value information, a communication protocol that can be used for communication with the server device 20 according to the result of the communication protocol upgrade process.

[0096] When the server device 20 does not support the Switching Protocol, the control unit 100 disconnects the TLS connection or the TCP connection established in the process in step S502 or step S504 (step S512; No → step S514). Further, the control unit 100 deletes the setting value information corresponding to the server device 20 and executes the process in step S104 of FIG. 4. In this case, the control unit 100 communicates with the server device 20 assuming that the setting value information is not stored.

[0097] When no error occurs in step S510, that is, when the communication of the Client Connection Preface is successful, the control unit 100 determines whether the setting can be skipped (step S510; No → step S516).

[0098] When the control unit 100 can skip the setting, it restores the set value (step S516; Yes → step S518), and skips the process of exchanging the SETTINGS FRAME with the server device 20 (step S520). On the other hand, when the control unit 100 cannot skip the setting, it exchanges the SETTINGS FRAME with the server device 20 (step S516; No → step S524). The processes from step S516 to step S524 are the same as the processes in step S402 to step S406 and step S412 in FIG. 7.

[0099] In addition, when the control unit 100 determines in step S506 that the information indicating HTTP / 2 is not stored in the server identifier included in the set value information as protocol information, it starts an HTTP / 1.1 connection (communication using HTTP / 1.1) (step S506; No → step S526). In this case, since the control unit 100 can detect in advance that HTTP / 1.1 is used as the communication protocol in the communication with the server device 20, it can perform communication using HTTP / 1.1.

[0100] [1.3.2 Server Device] [1.3.2.1 Main Process] Next, referring to FIG. 9, the flow of the main process executed by the server device 20 will be described. The control unit 200 of the server device 20 repeatedly executes the processes shown in FIG. 9. Thereby, it waits for the establishment of a connection from the terminal device 10.

[0101] First, when the control unit 200 detects that the process for establishing a QUIC connection has been started by the terminal device 10, it executes the third connection process (step S600; Yes → step S602).

[0102] On the other hand, when the control unit 200 detects the start of the process for establishing a TCP connection without detecting the start of the process for establishing a QUIC connection, it executes a fourth connection process (step S600; No → step S604; Yes → step S606). The third and fourth connection processes will be described later. If the control unit 200 does not detect the start of the process for establishing a TCP connection, it ends the process shown in FIG. 9 (step S604; No).

[0103] [1.3.2.2 Third Connection Process] The third connection process will be described with reference to FIG. 10. When the control unit 200 detects the start of the establishment of a QUIC connection, it determines whether the Connection ID in the connection matches the Connection ID of the QUIC connection that has not been disconnected (step S700). If the Connection IDs match, the control unit 200 resumes the QUIC connection that matches the Connection ID (step S700; Yes → step S702).

[0104] On the other hand, when the Connection IDs do not match (step S700; No), the control unit 200 determines that it has received a connection for establishing a new QUIC connection. In this case, the control unit 200 determines whether it is possible to skip the settings between itself and the terminal device 10, which is the communication partner for establishing the QUIC connection (step S704). If it is possible to skip the settings, the control unit 200 restores the set value (step S704; Yes → step S706) and skips the process of exchanging SETTINGS FRAME with the terminal device 10 (step S708). For example, the control unit 200 reads the set value information corresponding to the terminal device 10, which is the communication partner, from the set value information storage area 262, and acquires the information of the SETTINGS FRAME received from the terminal device 10, which is stored in the read set value information. Then, after reproducing the state after receiving the information of the acquired SETTINGS FRAME, the control unit 200 starts communication with the terminal device 10.

[0105] On the other hand, when it is not possible to skip the settings, the control unit 200 exchanges SETTINGS FRAME with the terminal device 10 (step S704; No → step S710).

[0106] Next, the control unit 200 determines whether it is hosting HTTP / 2 or HTTP1.1 (step S712). If the control unit 200 is hosting either one or both of HTTP / 2 and HTTP1.1, it performs the Alt-Svc setting (step S712; Yes → step S714). The Alt-Svc setting is a setting for the server device 20 to indicate to the terminal device 10 the origin, protocol, etc. that it is hosting. For example, the control unit 200 makes a setting to include in the Alt-Svc header a token indicating the communication protocol it is hosting ("h2", "h2c", "http1.1", etc.) and port information, or makes a setting to send an Alt-Svc frame. Note that if the control unit 200 is not hosting either HTTP / 2 or HTTP1.1, the process in step S714 is omitted (skipped) (step S712; No). Also, in step S714, the control unit 200 may execute a process for indicating to the terminal device 10 the origin (origin server) and settings related to the server configuration.

[0107] Next, the control unit 200 sends an HTTP response (HTTP 200 OK) to the terminal device 10 (step S716). Here, if the process in step S714 is being executed by the control unit 200, data with the Alt-Svc header set or an Alt-Svc frame is sent in the header of the HTTP response. When such an HTTP response is received by the terminal device 10, the terminal device 10 can detect that the server device 20 is hosting HTTP / 2 or HTTP1.1.

[0108] Also, the control unit 200 stores the set value information (step S718). For example, the control unit 200 stores, in the set value information storage area 262, set value information including the identifier of the terminal device 10 that is the communication partner and including the content of the SETTINGS FRAME obtained from the terminal device 10 as set information.

[0109] [1.3.2.3 Fourth Connection Process] The fourth connection process will be described with reference to FIG. 11. The control unit 200 determines whether it has received a Client Connection Preface from the terminal device 10 (step S800).

[0110] When the control unit 200 has received a Client Connection Preface, it determines whether it is possible to skip the settings with the terminal device 10, which is the communication partner (step S800; Yes → step S802). If it is possible to skip the settings, the set value is restored (step S802; Yes → step S804), and the process of exchanging the SETTINGS FRAME with the terminal device 10 is skipped (step S806). On the other hand, when the control unit 200 determines that it is not possible to skip the settings, it exchanges the SETTINGS FRAME with the terminal device 10 (step S802; No → step S808). The processes from step S802 to step S808 are the same as the processes from step S704 to step S710 in FIG. 10.

[0111] On the other hand, when the control unit 200 has not received a Client Connection Preface, it determines whether it has received a protocol upgrade request from the terminal device 10 (step S800; No → step S810).

[0112] When the control unit 200 has received a protocol upgrade request, when performing a protocol upgrade with the terminal device 10 by ALPN, it performs negotiation by ALPN (step S812; Yes → step S814). On the other hand, when not performing a protocol upgrade by ALPN, it performs a protocol upgrade by Switching Protocol (step S812; No → step S816).

[0113] Furthermore, the control unit 200 exchanges the SETTINGS FRAME with the terminal device 10 (step S818).

[0114] Note that when the control unit 200 does not receive a protocol upgrade request in step S810, it communicates with the terminal device 10 using HTTP1.1 as the communication protocol (step S810; No → step S820).

[0115] Subsequently, when the control unit 200 hosts HTTP / 3, it includes in the Alt-Svc header a token (such as "h3") indicating the hosted communication protocol and port information (step S822; Yes → step S824). Note that when the control unit 200 does not host HTTP / 3, the process in step S714 is omitted (skipped) (step S822; No).

[0116] Subsequently, the control unit 200 sends an HTTP response (HTTP 200 OK) to the terminal device 10 (step S826). Here, when the process in step S824 is executed by the control unit 200, data with the Alt-Svc header set or an Alt-Svc frame is sent in the header of the HTTP response. When such an HTTP response is received by the terminal device 10, the terminal device 10 can detect that the server device 20 hosts HTTP / 3.

[0117] Also, the control unit 200 stores the set value information (step S828). Note that the processes from step S820 to step S826 are the same as the processes from step S712 to step S718 in FIG. 10.

[0118] [1.4 Operation Example] With reference to FIGS. 12 and 13, the operations of the terminal device 10 and the server device 20 in this embodiment will be described. FIG. 12 is a diagram showing a sequence of processes when the terminal device 10 communicates with the server device 20 using the TLS protocol. Note that the process shown in FIG. 12 is executed when the terminal device 10 does not store the set value information corresponding to the server device 20 that is the communication destination.

[0119] First, the terminal device 10 starts processing to establish a QUIC connection and a TCP connection. Specifically, the terminal device 10 and the server device 20 execute a QUIC handshake (S1000), a three-way handshake over TCP (S1002), and a TLS handshake (S1004) in parallel. Note that since a TLS handshake is also performed in the QUIC handshake of S1000, the establishment of the QUIC connection can reduce the RTT (Round-Trip Time) compared to the establishment of a TLS over TCP connection.

[0120] When the connection for using HTTP / 3 is completed (for example, when the connection on the HTTP / 3 side is established first), the terminal device 10 and the server device 20 disconnect the TLS connection by sending a TLS Alert (close_notify) (S1006) and disconnect the TCP connection by sending a FIN packet (S1008). Through these processes, the TCP connection is disconnected. On the other hand, the terminal device 10 and the server device 20 exchange SETTINGS FRAMEs using HTTP / 3 as the communication protocol (S1010), and further, the terminal device 10 and the server device 20 transmit and receive data (application data) using HTTP / 3 (S1012). The processes in S1006 and S1008 and the processes in S1010 and S1012 are executed in parallel.

[0121] On the other hand, when the connection for using HTTP / 2 is completed (for example, when the connection on the HTTP / 2 side is established first), the terminal device 10 sends CONNECTION_CLOSE to the server device 20 using a HANDSHAKE packet or an Initial packet (S1014) to disconnect the QUIC connection. In this case, the terminal device 10 and the server device 20 communicate using HTTP / 1.1 or HTTP / 2 as the communication protocol.

[0122] Here, when it is determined by the terminal device 10 that communication using HTTP / 2 via ALPN is possible, the terminal device 10 and the server device 20 perform transmission and reception of the Connection Preface (S1016) and exchange of the SETTINGS FRAME (S1018). Further, the terminal device 10 and the server device 20 perform transmission and reception of data (application data) using HTTP / 2 (S1020).

[0123] When it is determined by the terminal device 10 that communication using HTTP / 2 via ALPN is not possible, the terminal device 10 and the server device 20 perform transmission and reception of data (application data) using HTTP / 1.1 (S1022).

[0124] In this way, the control unit 100 enables the terminal device 10 to select any one of the communication protocols HTTP / 3, HTTP / 2, and HTTP1.1 and communicate with the server device 20 when communicating with the server device 20. Also, at this time, the control unit 100 stores the set value information including the communication protocol selected by the terminal device 10 and the information notified and included in the Alt-Svc header of the HTTP response received from the server device 20 (S1024).

[0125] FIG. 13 is a diagram showing a sequence of processes when the terminal device 10 stores set value information corresponding to the destination server device 20 and communicates with the server device 20 using HTTP / 3 as the communication protocol.

[0126] First, the terminal device 10 and the server device 20 execute a QUIC handshake (S2000). Subsequently, when both the terminal device 10 and the server device 20 can omit the exchange of the SETTINGS FRAME, the terminal device 10 transmits an empty SETTINGS FRAME (a SETTINGS FRAME not including specific data) to the server device 20 (S2002). Also, the server device 20 transmits an empty SETTINGS FRAME to the terminal device 10 (S2004).

[0127] By transmitting an empty SETTINGS FRAME, the terminal device 10 and the server device 20 can determine that there is no change in the content (setting value) of the SETTINGS FRAME. When the terminal device 10 or the server device 20 receives an empty SETTINGS FRAME from the communication partner, it restores the content of the SETTINGS FRAME based on the information stored in the setting value information corresponding to the communication partner.

[0128] In addition, when there is a change in the setting value, a SETTINGS FRAME including the changed content may be transmitted. In this case, the device that receives a SETTINGS FRAME including predetermined content preferentially uses the content received as the setting value.

[0129] On the other hand, when the exchange of the SETTINGS FRAME between the terminal device 10 and the server device 20 cannot be omitted, the terminal device 10 transmits a SETTINGS FRAME including data indicating the setting value to the server device 20 (S2006). Further, the server device 20 transmits a SETTINGS FRAME including data indicating the setting value to the terminal device 10 (S2008).

[0130] When an error occurs when the exchange of the SETTINGS FRAME is omitted (skipped), predetermined information is transmitted from the server device 20 to the terminal device 10. For example, when the server device 20 selects Graceful shutdown, a GOWAY FRAME is transmitted from the server device 20 to the terminal device 10 (S2010). Then, CONNECTION_CLOSE is transmitted from the server device 20 to the terminal device 10 (S2012). When a forced shutdown is selected by the server device 20, CONNECTION_CLOSE is transmitted from the server device 20 to the terminal device 10 without transmitting a GOWAY FRAME. Thus, when the connection is disconnected by the server device 20, the terminal device 10 executes the processes in S1000 and S1010 shown in FIG. 12 to perform a reconnection process to the server device 20 in order to perform communication using HTTP / 3.

[0131] When no error occurs when the exchange of the SETTINGS FRAME is omitted (skipped), the terminal device 10 and the server device 20 perform transmission and reception of data (application data) using HTTP / 3 (S2014).

[0132] As described above, the terminal device in the present embodiment can efficiently and preferentially select HTTP / 3 from HTTP / 3 (the first communication protocol) with a high communication speed and HTTP / 2 (the second communication protocol) with a low communication speed as follows. (1) When a connection (QUIC connection) for using HTTP / 3 can be established, the terminal device uses HTTP / 3 as the communication protocol. (2) When information (setting value information) indicating the use of HTTP / 3 for communication with the destination server device is stored, the terminal device uses HTTP / 3.

[0133] Therefore, even when three types of communication protocols such as HTTP / 1.1, HTTP / 2, and HTTP / 3 can be selected, the terminal device can efficiently select HTTP / 3 as the communication protocol used in communication with other devices such as the server device. As a result, the terminal device can shorten the time required until communication starts. In addition, since the terminal device preferentially selects and uses a communication protocol that uses a fast communication connection such as a QUIC connection, it can communicate with the destination device at high speed and suppress a decrease in communication speed.

[0134] [2. Second Embodiment] Next, the second embodiment will be described. The second embodiment is an embodiment in which the communication protocol preferentially selected is changed according to the terminal device.

[0135] Communication using HTTP / 3 has a faster communication speed than communication using HTTP / 2 because the communication speed is less likely to decrease even when packet loss occurs. However, in the case of a wired connection, since the possibility of packet loss is small, the communication speed is unlikely to decrease significantly even with communication using HTTP / 2.

[0136] To cope with such a situation, the control unit 100 switches the communication protocol preferentially selected according to the communication environment of the terminal device 10 and the order of connection establishment. Specifically, the control unit 100 executes the following processing in step S202. (1) When the TLS over TCP connection is established first and the terminal device 10 is a wired connection, the control unit 100 selects HTTP / 2 as the communication protocol. Thereby, the control unit 100 communicates with the server device 20 using HTTP / 2. (2) Except for the case described above, the control unit 100 selects HTTP / 3 as the communication protocol. Thereby, the control unit 100 communicates with the server device 20 using HTTP / 3.

[0137] Note that when the terminal device 10 is in a wired connection, it means that the communication unit 190 performs communication by wired connection, and the terminal device 10 is connected to a communication device such as a router by a transmission medium such as a LAN cable. For example, when the terminal device 10 is a desktop PC and is connected to other communication devices by a LAN cable or the like, HTTP / 2 is preferentially selected as the communication protocol. On the other hand, when the terminal device 10 is a laptop PC or a mobile PC and is connected to other communication devices by wireless connection, HTTP / 3 is preferentially selected as the communication protocol.

[0138] In this way, when the control unit 100 satisfies a predetermined condition such that the TLS over TCP connection is established first and the communication environment is a wired connection, the control unit 100 preferentially selects HTTP / 2 without waiting until the connection by the QUIC connection is established. As a result, the terminal device 10 can omit the process for communicating using HTTP / 3, and thus can shorten the time until starting communication with the server device 20.

[0139] Note that the conditions for preferentially selecting HTTP / 2 may be conditions other than the above-described conditions.

[0140] Also, in step S216, the control unit 100 stores information indicating that it is possible to use HTTP / 3 for communication with the server device 20, which is the communication destination. Therefore, when the control unit 100 communicates with the server device 20 again, it can use HTTP / 3 as the communication protocol.

[0141] In this way, according to the present embodiment, it is possible to switch the communication protocol to be preferentially selected according to the communication environment of the terminal device and the order of establishing the connection.

[0142] [3. Third Embodiment] The third embodiment will be described. The third embodiment is an embodiment in which key information is shared among communication protocols that use TLS for key exchange using a symmetric key cryptosystem.

[0143] A QUIC connection, which is a connection (first connection) for using HTTP / 3 (the first communication protocol), utilizes the TLS protocol when establishing the connection. Therefore, when the QUIC connection is established, key information (information on the public key of the communication destination) is exchanged between the terminal device 10 and the server device 20.

[0144] On the other hand, a TLS over TCP connection, which is a connection (second connection) for using HTTP / 2 (the second communication protocol), also utilizes the TLS protocol when establishing the connection. Therefore, when the TLS over TCP connection is established, key information (information on the public key of the communication destination) is exchanged between the terminal device 10 and the server device 20.

[0145] Here, the terminal device 10 and the server device 20 store the key information received from the device that becomes the communication partner when establishing one of the first connection or the second connection, and use the stored key information when establishing the other connection with the device. More specifically, the terminal device 10 and the server device 20 share key information between protocols (between QUIC / UDP-TCP) that utilize the same version of TLS of TLS 1.3 or higher. Thereby, when switching the communication protocol to be used between HTTP / 2 and HTTP / 3, the terminal device 10 and the server device 20 can omit the processing for the exchange (e.g., TLS handshake) for encrypting the connection (encrypted connection).

[0146] As described above, according to this embodiment, the terminal device and the server device can omit the processing for encrypting the connection, and can shorten the time required until starting the communication.

[0147] [4. Modification Example] The present invention is not limited to the above-described embodiments, and various modifications are possible. That is, embodiments obtained by appropriately combining technical means modified within the scope not departing from the gist of the present invention are also included in the technical scope of the present invention. For example, in the above-described embodiments, the communication performed between the terminal device and the server device was described as the transmission and reception of data such as data transmitted to display a web page on a web browser or the like, but other communications may be used. That is, when data is transmitted and received between the terminal device and the server device using any of the communication protocols of HTTP / 3, HTTP / 2, and HTTP1.1, after making necessary modifications to the processing described in each embodiment, it can be applied to the transmission and reception of the data. In the above description, for the case of performing HTTP communication, the relatively higher version communication protocol was described as HTTP / 3, and the relatively lower version communication protocol was described as HTTP / 2. However, when a newer version of the HTTP communication protocol is developed, the present disclosure may be applied by using the new version of the HTTP communication protocol as the higher communication protocol and the existing HTTP communication protocol as the lower communication protocol.

[0148] In addition, although there are parts described separately for convenience of explanation in the above-described embodiments, it goes without saying that they may be combined and executed within the technically possible range. For example, the second embodiment and the third embodiment may be combined. In this case, the terminal device can realize switching the communication protocol to be preferentially selected and sharing key information.

[0149] Also, the programs operating in each device in the embodiments are programs (programs that function a computer) that control a CPU or the like so as to realize the functions of the above-described embodiments. And the information handled by these devices is temporarily stored in a temporary storage device (for example, RAM) during its processing, and then stored in a storage device such as various ROMs (Read Only Memory) and HDDs, and read out by the CPU as needed for modification and writing.

[0150] Here, as the recording medium for storing the program, it may be any of a semiconductor medium (for example, ROM, non-volatile memory card, etc.), an optical recording medium or a magneto-optical recording medium (for example, DVD (Digital Versatile Disc), MO (Magneto Optical Disc), MD (Mini Disc), CD (Compact Disc), BD (Blu-ray (registered trademark) Disk), etc.), a magnetic recording medium (for example, magnetic tape, flexible disk, etc.). Also, by executing the loaded program, not only the functions of the above-described embodiments are realized, but also the functions of the present invention may be realized by processing in cooperation with an operating system or other application programs based on the instructions of the program.

[0151] In addition, when distributing to the market, the program can be stored in a portable recording medium for distribution, or transferred to a server computer connected via a network such as the Internet. In this case, the storage device of the server computer is of course also included in the present invention.

Explanation of Reference Numerals

[0152] 1 System 10 Terminal Device 100 Control Unit 140 Display Unit 150 Operation Unit 160 Storage Unit 162 Set Value Information Storage Area 190 Communication Unit 20 Server Device 260 Storage Unit 262 Set Value Information Storage Area 290 Communication Unit

Claims

1. A terminal device comprising a control unit and a communication unit that performs HTTP (Hyper Text Transfer Protocol) communication with a communication destination, wherein the control unit first starts a process for establishing both a first connection for using HTTP / 3 and a second connection for using HTTP / 2 when establishing a connection, and when the first connection can be established, performs communication via the communication unit using HTTP / 3.

2. The terminal device according to claim 1, further comprising a storage unit that stores a communication protocol that can be used for communication with the communication destination, wherein when performing communication with the communication destination, if the storage unit stores HTTP / 3 as the communication protocol that can be used for communication with the communication destination, the control unit performs communication with the communication destination using HTTP / 3.

3. The terminal device according to claim 1 or 2, wherein when both the first connection and the second connection can be established, if the second connection is established first and the communication unit performs communication via a wired connection, the control unit performs communication with the communication destination using HTTP / 2, and otherwise, the control unit performs communication with the communication destination using HTTP / 3.

4. The terminal device according to any one of claims 1 to 3, wherein when the first connection and the second connection use a public key cryptosystem, if key information is obtained from the communication destination via one of the first connection and the second connection, when establishing the other connection with the communication destination, the key information is used.

5. A terminal device comprising a control unit and a communication unit that performs HTTP (Hyper Text Transfer Protocol) communication, wherein the communication unit first establishes both a first connection for using HTTP / 3 and a second connection for using HTTP / 2 when establishing a connection based on a request to establish a connection from the terminal device, and when the first connection between the terminal device and the communication unit can be established, the communication unit performs communication via the communication unit using HTTP / 3, wherein the control unit ​ ​ When the first connection and the second connection are connections using a public key cryptosystem, if key information is obtained from a communication destination via one of the first connection or the second connection, when establishing the other connection with the communication destination, the key information is used. Server device characterized by the above. **Claim 6** A communication method for a terminal device that performs HTTP (Hyper Text Transfer Protocol) communication, comprising: First, starting a process for establishing both a first connection for using HTTP / 3 and a second connection for using HTTP / 2 when establishing a connection; When the first connection is successfully established, the terminal device performs communication using HTTP / 3; Communication method characterized by including the above. **Claim 7** In a computer, In a computer that performs HTTP (Hyper Text Transfer Protocol) communication, First, having a function to start a process for establishing both a first connection for using HTTP / 3 and a second connection for using HTTP / 2 when establishing a connection; When the first connection is successfully established, having a function to perform communication using HTTP / 3; Program characterized by realizing the above. **Claim 8** Comprising a control unit and a communication unit, The control unit: First, via the communication unit, starts a process for establishing both a first connection for using a first communication protocol with a high communication speed and a second connection for using a second communication protocol with a low communication speed when establishing a connection; When the first connection is successfully established, performs communication using the first communication protocol; Terminal device characterized by the above.

Citation Information

Patent Citations

  • Communication device, communication system, information processing method, and program

    JP2016072684A