(5)TCP和UDP协议

TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;电子邮件、文件传输程序。

UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文,尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。

解决TCP端口占用:sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)

解决TCP并发端口占用:socketserver.TCPServer.allow_reuse_address = True

tcp优点:传输完整稳定,不限制数据大小

缺点: 速度慢 (一发一收都需要对方确认)

 

udp:即时通讯类,比较追求速度(再线视频网站,qq,微信)

优点:传输速度快,可以多人同时聊天

缺点:不稳定,有时丢失数据

 

客户端和服务端在建立连接时: 三次握手

客户端和服务端在断开连接时: 四次挥手

SYN 创建连接

ACK 确认响应

FIN 断开连接

 

原文地址:https://www.cnblogs.com/lyj910313/p/10787518.html