TCP协议

TCP

TCP简介:
TCP协议,传输控制协议(Transmission Control Protocol)是一种面向连接的,可靠的,基于字节流的传输层通信协议,由IETF的RFC793定义.

TCP协议三次握手:
TCP通信需要经过创建连接,数据传送,终止连接三个步骤.

TCP特点:
1.面向连接: 通信需要双方先建立连接.完成数据交换后,双方必须断开次链接,释放资源.连接是一对一的

2.可靠传输:
    1)TCP采用发送应答机制.
    2)超时重传
    3)错误校验
    4)流量控制和阻塞管理

3.效率低

TCP与UDP的不通点:
面向连接(确认有创建三方交握,连接已创建才作传输)
有序数据传输
重发丢失的数据包
舍弃重复的数据包
无差错的数据传输
阻塞/流量控制

UDP通信模型:
在通信之前,不需要建立相关的连接,只需要发送数据即可,类似于”写信”“.

TCP通信模型:
在通信之前一定要先建立相关的连接,才能发送数据,类似”打电话”.

TCP客户端构建流程:
创建socket:
tcp_client_socket = socket(AF_INET, SOCK_STREAM)
链接服务器:
tcp_client_socket.connect((server_ip, server_port))
发送数据(编码格式):
tcp_client_socket.send(send_data.encode(“编码格式”))
接收数据(接受最大字节):
recvData = tcp_client_socket.recv(1024)
关闭socket:
tcp_client_socket.close()

TCP服务器构建流程:
创建socket:
tcp_server_socket = socket(AF_INET, SOCK_STREAM)
绑定本地信息:
tcp_server_socket.bind(“IP(默认本地为空)”, port)
将socket设置为被动(最大连接数)(该方法不会阻塞):
tcp_server_socket.listen(128)
新客户端连接服务器,创建一个新的socket接收这个客户端服务(该方法会阻塞):
client_socket, clientAddr = tcp_server_socket.accept() # accept()监听到连接,返回一个元组
接收对方发送的数据:
recv_data = client_socket.recv(1024).decode(“解码格式”) # 接收1024个字节
发送数据到客户端(编码):
client_socket.send(“thank you !”.encode(‘编码格式’))
关闭客户端socket(该方法会解recv阻塞,接收长度为0):
client_socket.close()
关闭服务器socket:
tcp_server_socket.close()

TCP断链接四次挥手:
不接受 不发送
不发送 不接受

TCP短连接:
1.client向server发起连接请求
2.server接到请求,双方建立连接
3.client向server发送消息
4.server回应client
5.一次读写完成,此时双方任何一个都可以发起close操作(一般client发起close操作)

TCP长连接:
1.client向server发起连接
2.server接到请求,双方建立连接
3.client向server发送消息
4.server回应client
5.一次读写完成,连接不关闭
6.后续读写操作
7.长时间操作之后client发起关闭请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值