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 断开连接