Python implements network communication data transmission (basic knowledge (1))
Preface
Basic knowledge learning
1. Synchronous and asynchronous
2. What is socket
3 , Classification of socket sockets
1. Stream format socket SOCK_STREAM
2. Datagram format Socket (SOCK_DGRAM)
4. IP address, MAC address, port address
Conclusion
Preface
I am not a communications and information major, but I have recently come into contact with some knowledge in this area and it feels quite interesting. I just studied it and recorded the learning results here so that more people can learn from it. It would be great if I could get some advice from the boss! ! !
Basic knowledge learning
1. Synchronous and asynchronous
Synchronization means that the entire processing process is executed sequentially. When each process is completed, the results are returned. It is a linear execution method, and the execution process cannot be crossed. It is generally used for procedures with strong process, such as user login, which requires user verification before logging into the system. (The sender sends one and the receiver receives one, which is synchronous.)
Asynchronous means just sending the calling instruction. The caller does not need to wait for the called method to complete execution; instead, it continues to execute the following process. It is a parallel processing method. You do not have to wait for a program to finish executing. You can perform other tasks, such as the page data loading process. There is no need to wait for all data to be obtained before displaying the page. (The sender sends data, and the receiver has a buffer area, which can be accepted according to its own rules. Of course, the sender can also send data according to its own rules. The two are asynchronous)
2. What is socket
## The original meaning of socket is "socket". In the field of computer communication, socket Translated as "socket", it is a convention or a way for computers to communicate with each other. Through the socket convention, network connections are established between computers.
To facilitate understanding, we can compare it to a socket. We can get power supply from the power grid by inserting the plug into the socket. Similarly, in order to transmit data to a remote computer, we need Connect to the Internet, and socket is the tool used to connect to the Internet.
Different from UNIX/Linux, Windows distinguishes between sockets and files. Windows treats sockets as a network connection, so it is necessary to call a program specially designed for sockets. Data transfer functions, input and output functions for ordinary files are invalid.
3. Classification of socket sockets
The two main commonly used ones are stream format sockets (SOCK_STREAM) and data Report format socket (SOCK_DGRAM).
1. The stream format socket SOCK_STREAM
has the following characteristics: The data will not disappear during the transmission process; Data is transmitted in sequence; The sending and receiving of data is asynchronous.
It uses the TCP protocol (The Transmission Control Protocol). The TCP protocol will control your data to arrive in order and without errors. Emphasis on high quality.
2. Datagram format socket (SOCK_DGRAM)
The computer only transmits data and does not Data verification, if data is corrupted in transit, or does not reach the other computer, there is no way to remedy it. In other words, if the data is wrong, it is wrong and cannot be retransmitted. Because datagram sockets do less verification work, their transmission efficiency is higher than that of stream format sockets.
It has the following characteristics: Emphasis on fast transmission rather than transmission order; The transmitted data may be lost or damaged; Limit each transmission The data size; The sending and receiving of data are synchronous. Datagram sockets also use the IP protocol for routing, using the UDP protocol (User Datagram Protocol).
Note: SOCK_DGRAM is not as bad as imagined, data will not be lost frequently, and data errors are only a small probability event.
4. IP address, MAC address, port address
IP address: is the abbreviation of Internet Protocol Address, translated as "Internet Protocol Address". Currently, most software uses IPv4 addresses, but IPv6 is also being accepted, especially in education networks, where it has been widely used. For IPV4, it is unrealistic to have one IP address for one computer, so it is usually one IP address for one LAN. The router will find the location of the other party based on the IP address. The router has a very efficient and intelligent algorithm and will quickly find the target LAN.
MAC address: is the physical address. A LAN address has the MAC addresses of multiple computers. In addition to the The IP address of the other party is attached, and the MAC address of the other party is also attached. When the data packet reaches the LAN, the router/switch will find the corresponding computer based on the MAC address in the data packet
Port address: A computer can provide multiple network services at the same time, such as Web service (website), FTP service (file transfer service), SMTP service (mailbox service), etc., With only the IP address and MAC address, although the computer can receive the data packet correctly, it does not know which network program to hand the data packet to for processing, so the communication fails. In order to distinguish different network programs, the computer will assign a unique port number (Port Number) to each network program. Port is a virtual and logical concept. A port can be understood as a door through which data flows in and out. Each door has a different number, which is the port number. As shown in the picture below:
Supplement: I just looked at the serial port and port ## today #the concept of:The serial port is an I/O communication interface and is a hardware category. It is referred to as the serial port because it uses serial signal communication. The port (referring to the general PC operating system, not counting the microcontroller) is just a 16-bit digital identifier, used to identify different communication processes in network communication. It is defined by the operating system, that is, if there is no operating system There is no concept of port
Conclusion
I have learned a lot about communication recently, I hope Take it out and share it with everyone. This article is just the beginning of the next few articles, making some basic preparations. Next, I will prepare some related knowledgeFinally, I will prepare several examples for everyone refer to! ! ! If you want to know what happened next time, please listen to the breakdown!
The above is the detailed content of Basic knowledge of Python 1: Network communication data transmission. For more information, please follow other related articles on the PHP Chinese website!