1.网络七层模型及主要协议
2.TCP的“三次握手”和四次挥手
三次握手
Step1:首先客户端向服务器端发送一段TCP报文;
Step 2:服务器端接收到来自客户端的TCP报文之后,结束LISTEN阶段,并返回一段TCP报文;
Step 3:客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的,结束SYN-SENT阶段,并返回最后一段TCP报文。
此后客户端和服务器端进行正常的数据传输。
四次挥手
Step 1:首先客户端想要释放连接,向服务器端发送一段TCP报文;
Step 2:服务器端接收到从客户端发出的TCP报文之后,确认了客户端想要释放连接,随后服务器端结束ESTABLISHED阶段,进入CLOSE-WAIT阶段(半关闭状态)并返回一段TCP报文;
Step 3:服务器端自从发出ACK确认报文之后,经过CLOSED-WAIT阶段,做好了释放服务器端到客户端方向上的连接准备,再次向客户端发出一段TCP报文;
Step 4:客户端收到从服务器端发出的TCP报文,确认了服务器端已做好释放连接的准备,结束FIN-WAIT-2阶段,进入TIME-WAIT阶段,并向服务器端发送一段报文。
服务器端收到从客户端发出的TCP报文之后结束LAST-ACK阶段,进入CLOSED阶段。由此正式确认关闭服务器端到客户端方向上的连接。
3.socket
socket(简称 套接字)是进程间通信的一种方式,它与其它进程间通信的一个主要不同是:socket 可以实现不同机器间的进程通信。
下面是简单的Case,帮助理解。
客户端
from socket import socket, AF_INET, SOCK_STREAM
##表示创建一个客户端的socket
client = socket(AF_INET, SOCK_STREAM) ##SOCK_STREAM --表示TCP; SOCK_DGRAM--表示UDP;
##定义一个连接的目标
con_address = (\'IP地址\',端口号)
##告诉客户端要连接的服务器的地址和端口号
client.connect(con_address)
##发送data
client.send(\'python学习笔记\'.encode(\'utf-8\'))
##关闭
socket.close()
来源:https://www.cnblogs.com/xuliuzai/p/15506254.html
图文来源于网络,如有侵权请联系删除。