TCP/IP Protocol, HTTP protocol, socket communication detailed

Source: Internet
Author: User
Tags ack network function

1. TCP connection
TCP (transmission Control Protocol) transmission protocol. TCP is the host-to-host layer of the Transmission Control Protocol, providing a reliable connection service, using three-time handshake confirmation to establish a connection. The bit code is the TCP flag bit, there are 6 kinds of marking: SYN (synchronous set up) ACK (acknowledgement acknowledgment) PSH (push transfer) FIN (finish end) RST (reset reset) URG (Urgent emergency) Sequence number (sequential numbers) acknowledge number (confirmation).

Mobile phone can use the network function is because the bottom of the mobile phone implementation of TCP/IP protocol, you can make the mobile phone terminal through the wireless network to establish a TCP connection. TCP protocol can provide an interface to the upper network, so that the transmission of the upper network data is based on the "No Difference" network. Setting up a TCP connection requires a "three-time handshake":

First handshake: The client sends a SYN packet (SYN=J) to the server and enters the Syn_send state, waiting for the server to confirm;

Second handshake: The server receives the SYN packet, it must confirm the customer's SYN (ACK=J+1), and also send itself a SYN packet (syn=k), that is, the Syn+ack packet, when the server enters the SYN_RECV state;

Third handshake: The client receives the server's Syn+ack packet, sends the acknowledgment packet ack (ACK=K+1) to the server, the packet is sent, the client and the server enter the established state, and the handshake is completed three times. When the handshake is complete, the two hosts start transmitting data.



The data is not included in the packets that are delivered during the handshake, and the client and server formally begin transmitting the data after the three handshake is complete. Ideally, once a TCP connection is established, the TCP connection is maintained until either side of the communication actively closes the connection. When disconnected, both the server and the client can initiate a request to disconnect the TCP connection, and the disconnection process requires a "four handshake" (the process is not fine-grained, that is, the server interacts with the client and finally determines the disconnection).

Example one:
IP 192.168.1.116.3337 > 192.168.1.123.7788:s 3,626,544,836:3,626,544,836
IP 192.168.1.123.7788 > 192.168.1.116.3337:s 1739326486:1739326486 ack 3626544837
IP 192.168.1.116.3337 > 192.168.1.123.7788:ack 1739326487,ack 1

First handshake: 192.168.1.116 sends a bit code syn=1, randomly generates a SEQ number=3626544836 packet to 192.168.1.123,192.168.1.123 by syn= 1 know 192.168.1.116 requirements to establish online;
Second handshake: 192.168.1.123 to confirm the online information after receiving the request, send Ack number=3626544837,syn=1,ack=1 to 192.168.1.116, randomly generate seq=1739326486 packet;
Third handshake: 192.168.1.116 received after checking ACK number is correct, that is, the first time the SEQ Number+1 sent, and the bit code ACK is 1, if correct, 192.168.1.116 will send an ACK again number=1739326487 , Ack=1,192.168.1.123 received after confirmation seq=seq+1,ack=1 the connection was established successfully.

Example two:
The role of TCP is flow control, mainly control the transmission of data flow. The following is an example of browsing the Web page, explaining the process according to its own understanding. (Note: The second ACK is part of the code snippet ACK bit)
PC Browsing Server Page This process does not include domain name queries, but only describes the changes in TCP and HTTP traffic.
The PC has a three-time handshake with the HTTP server to establish the connection.
1.pc:seq=0 ack=0 Syn=1 ack=0 sent to the server to establish a synchronization request.
2.server:seq=0 ack=1 Syn=1 Ack=1 sent to the client to establish a synchronous response.
3.pc:seq=1 ack=1 syn=0 Ack=1 sent to the server, three times handshake completed to establish synchronization information successfully.
4.PC generates an HTTP data message and sends a GET request to the server.
5. The server receives the request and sends a TCP acknowledgment, and then sends the HTTP data message to the client's browser.
6. The client receives HTTP information from the server and then sends a TCP acknowledgement to the server.
7. The client sends Fin+ack to the server, requesting the end of data transfer.
8. The server sends a TCP acknowledgement message to confirm the TCP fin message for the PC
9. The server sends a FIN+ACK message to the client to end the TCP session.
10. The client sends a confirmation message to the server, ending the session.

2. HTTP connection
The HTTP protocol, the Hypertext Transfer Protocol (hypertext Transfer Protocol), is the foundation of Web networking and one of the most commonly used protocols for mobile networking, an application built on the TCP protocol.

The most notable feature of an HTTP connection is that each request sent by the client requires a server loopback response, and the connection is actively released after the request has ended. The process from establishing a connection to closing a connection is called a "one-time connection."

1) in HTTP 1.0, each request from the client requires a separate connection to be established, and the connection is automatically freed after the request is processed.

2) in HTTP 1.1, multiple requests can be processed in a single connection, and multiple requests can overlap, without waiting for a request to end before sending the next request.

Because HTTP is actively releasing the connection after each request ends, the HTTP connection is a "short connection", which requires constant connection requests to the server to maintain the client program's online status. As a general practice, there is no need to obtain any data immediately, and the client will keep a "keep-connected" request to the server at regular intervals, and the server responds to the client after receiving the request, indicating that the client is "online". If the server can not receive the client's request for a long time, it is considered that the client "offline", if the client cannot receive a reply from the server for a long time, it is considered that the network has been disconnected.


3. Socket principle

3.1 Socket (socket) Concept

Socket (socket) is the cornerstone of communication and is the basic operating unit of network communication supporting TCP/IP protocol. It is an abstract representation of the endpoint in the network communication process and contains five kinds of information that must be used for network communication: the protocol that the connection uses, the IP address of the local host, 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 communicates data through the transport layer, TCP encounters a problem that provides concurrent services for multiple application processes at the same time. Multiple TCP connections or multiple application processes may require data to be transmitted over the same TCP protocol port. To differentiate between different application processes and connections, many computer operating systems provide a socket (socket) interface for applications interacting with the TCP/IP protocol. The application layer can communicate with the transport layer through the socket interface, differentiate the communication from different application processes or network connections, and realize the concurrent service of data transmission.


3.2 Establishing a socket connection
Establishing a socket connection requires at least one pair of sockets, one running on the client, called Clientsocket, and the other running on the server side, called ServerSocket.

The connection between sockets is divided into three steps: Server listening, client request, connection acknowledgement.

Server monitoring: Server-side sockets do not locate specific client sockets, but are waiting for the status of the connection, real-time monitoring network status, waiting for the client connection request.

Client request: Refers to the client's socket to make a connection request, to connect to the target is the server-side socket. To do this, the client's socket must first describe the socket of the server it is connecting to, indicate the address and port number of the server-side socket, and then make a connection request to the server-side socket.

Connection confirmation: When a server-side socket hears or receives a connection request from a client socket, it responds to a client socket request, establishes a new thread, sends a description of the server-side socket to the client, and once the client confirms the description, the two sides formally establish the connection. While the server-side socket continues to be in the listening state, it continues to receive connection requests from other client sockets.


4. Socket connection and TCP connection

When you create a socket connection, you can specify the transport layer protocol used, which can support different transport layer protocols (TCP or UDP), which is a TCP connection when a connection is made using the TCP protocol.


5. Socket connection and HTTP connection

Since the socket connection is usually a TCP connection, once the socket connection is established, the communication parties can start sending data content to each other until the two sides are disconnected. However, in real network applications, the client-to-server communication often needs to traverse multiple intermediary nodes, such as routers, gateways, firewalls, and so on, most firewalls will turn off long inactive connections and cause the Socket connection to be disconnected, so it needs to be polled to tell the network that the connection is active. The HTTP connection uses a "request-response" approach, not only to establish a connection at the time of the request, but also to be able to reply to the server after the client has made a request to the server.

In many cases, the server side is required to proactively push data to the client, keeping the client and server data in real time and in sync. At this time, if the two sides established a socket connection, the server can directly transfer data to the client;if the two sides establish an HTTP connection, the server needs to wait until the client sends a request to send the data back to the client, so the client periodically sends a connection request to the server, not only to remain online, but also to "ask" the server if there is new data, and if so, pass the data to the client.

6. IP protocol

IP is an abbreviation for English Internet Protocol (the protocol of interconnection between networks), which is called "Network Association", which is the protocol designed for communication between computer networks. In the Internet, it is a set of rules that enable all computer networks connected to the Internet to communicate with each other, providing for the rules that computers should observe when communicating on the Internet. Computer systems produced by any manufacturer can be interconnected with the Internet as long as they comply with the IP protocol. IP addresses are unique and can be divided into 5 categories depending on the nature of the user. In addition, IP also has access to protection, intellectual property, pointer registers and other meanings.

IP is how to achieve network interconnection devices, such as Ethernet, packet switching network, they can not communicate with each other, the main reason for not interoperability is because the basic unit of the data they transmit (technically referred to as "frame") format is different. IP protocol is actually a set of software, programs composed of protocol software, it has a variety of different "frames" unified into the "IP packet" format, which is one of the most important features of the Internet, so that all kinds of computers can be interoperable on the Internet, that is, "open" characteristics.

Another important aspect of the IP protocol is the provision of a unique address for every computer and other device on the internet, called an "IP address." With this unique address, it is ensured that users can choose their own objects from tens of thousands of computers efficiently and conveniently when they operate on a computer connected to the network. Now the telecommunications network is merging with IP network, IP-based new technology is a popular technology, such as IP network transmission of voice technology (ie, VoIP) is very popular, other such as IP Overatm, IPOVERSDH, IP over WDM, and so on, are the focus of IP technology research.

TCP/IP Protocol, HTTP protocol, socket communication detailed

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.