TCP, HTTP, and SOCKET connection principle 1. TCP connection to a mobile phone can use the networking function because the mobile phone underlying layer implements the TCP/IP protocol, which enables the mobile terminal to establish a TCP connection through a wireless network. The TCP protocol can provide interfaces for upper-layer networks, so that data transmission over the upper-Layer Networks is established on a "non-differentiated" network. To establish a TCP connection, you must go through the "three-way handshake": the first handshake: the client sends the syn Packet (syn = j) to the server and enters the SYN_SEND status, waiting for confirmation from the server. The second handshake: when the server receives the syn packet, it must confirm the customer's SYN (ack = j + 1) and send a SYN Packet (syn = k), that is, the SYN + ACK packet, the server enters the SYN_RECV status;
The third handshake: the client receives the server's SYN + ACK package and sends the ACK (ack = k + 1) Confirmation package to the server. After the package is sent, the client and server enter the ESTABLISHED status, complete three handshakes. The package transmitted during the handshake does not contain data. After the three-way handshake is completed, the client and the server formally start to transmit data. Ideally, once a TCP connection is established, the TCP connection will remain until either of the two parties closes the connection. When a TCP connection is disconnected, both the server and client can initiate a request to disconnect the TCP connection. The disconnection process must go through the "Four handshakes" (the process is not detailed, that is, the server interacts with the client, eventually confirmed to be disconnected) www.2cto.com 2. HTTP connection is the Hypertext Transfer Protocol (Hypertext Transfer Protocol), which is the basis of Web networking and one of the commonly used protocols for mobile phone networking, HTTP is an application built on TCP. The most notable characteristic of HTTP connection is that each request sent by the client requires a server to send a response. After the request ends, the connection is released. The process from establishing a connection to closing a connection is called "One connection ". 1) in HTTP 1.0, each client request requires a separate connection. After processing this request, the connection is automatically released. 2) in HTTP 1.1, multiple requests can be processed in a single connection, and multiple requests can overlap. You do not need to wait for a request to end before sending the next request.
As HTTP actively releases connections after each request ends, HTTP connections are short connections. To keep the client program online, you must continuously initiate connection requests to the server. The common practice is to immediately get no data, and the client also keeps sending a "keep connection" request to the server at a fixed time, the server replies to the client after receiving the request, indicating that the client is "online ". If the server cannot receive a request from the client for a long time, the client is considered to be "offline". If the client cannot receive a response from the server for a long time, the network is considered disconnected. 3. SOCKET principle 3.1 socket concept socket is the cornerstone of communication and the basic operation unit for network communication that supports TCP/IP protocol. It is an abstract representation of the endpoint in the network communication process. It contains five types of information required for network communication: the protocol used for connection, the IP address of the local host, and the protocol port of the local process, the IP address of the remote host and the protocol port of the remote process. When the application layer uses the transport layer for data communication, TCP may encounter concurrent services for multiple application processes at the same time. Multiple TCP connections or multiple application processes may need to transmit data through the same TCP port. To differentiate different application processes and connections, many computer operating systems provide Socket interfaces for applications to interact with TCP/IP protocols. The application layer and the transport layer can use Socket interfaces to distinguish between processes or network connections of different applications to implement concurrent data transmission services. Www.2cto.com
3.2 establish a socket connection to establish a Socket connection requires at least one socket, one running on the client, called ClientSocket, And the other running on the server, called ServerSocket. The connection process between sockets is divided into three steps: server listening, client requests, and connection confirmation. Server listening: the server socket does not locate the specific client socket, but is waiting for connection. It monitors the network in real time and waits for the client connection request from the client: the client socket initiates a connection request. The target to be connected is the server socket. Therefore, the client socket must first describe the socket of the server to be connected, point out the address and port number of the socket on the server, and then submit a connection request to the socket on the server. Connection Confirmation: when the server socket monitors or receives a connection request from the client socket, it responds to the request from the client socket and creates a new thread, send the description of the server socket to the client. Once the client confirms the description, both parties establish a connection. The server socket continues to be in the listening status, and continues to receive connection requests from other client sockets. 4. When creating a SOCKET connection between a Socket connection and a TCP connection, you can specify the transport layer protocol used. The Socket can support different transport layer protocols (TCP or UDP ), when a TCP connection is used, the Socket connection is a TCP connection. Www.2cto.com 5. The Socket connection and HTTP connection are usually TCP connections. Once a Socket connection is established, both parties can send data to each other until the connection is closed. However, in actual network applications, communication between the client and the server often needs to traverse multiple intermediate nodes, such as routers, gateways, and firewalls, by default, most firewalls disable connections that are not active for a long time and cause the Socket connection to be disconnected. Therefore, the network needs to be notified through polling that the connection is active.
The HTTP connection uses the "request-response" method. Not only do you need to establish a connection during the request, but you also need the client to send a request to the server before the server can reply to the data. In many cases, the server needs to actively push data to the client to ensure real-time and synchronous data between the client and the server. If both parties establish a Socket connection, the server can directly transmit data to the client. If both parties establish an HTTP connection, the server must wait until the client sends a request before sending the data back to the client. Therefore, the client periodically sends a connection request to the server, which can not only be kept online, at the same time, it is also "asking" whether the server has new data. If yes, it will send the data to the client. Author lihaiming