UDP及TCP通信对比讲解
概述
TCP是面向连接的协议,也就是说在通信发送数据前,必须和对方建立连接。以数据流的模式传播、传输过程中不会有数据丢失,速率上比UDP要慢不少,适用于对数据准确性要求高,速度可以相对慢的场景,如发送或接收邮件、打电话、微信消息传输等等。
UDP面向无连接的协议,传输数据前不需要进行连接。以数据报的模式传播,传输过程中可能会丢包。适用于效率要求相对高,对准确性要求相对低的场景,如视频会议、QQ文件传输、微信语音聊天等等。
特征比较表格如下:
特点 | TCP | UDP |
---|---|---|
连接性 | 面向连接 | 面向无连接 |
可靠性 | 可靠 | 不可靠 |
传输效率 | 慢 | 快 |
传输模式 | 数据流 | 数据报 |
服务器客户即通信过程
TCP通信
服务器
1.创建socket套接字;
2.绑定套接字到IP和端口
3.监听(Listen),将套接字设置为监听模式;
4.接收连接(accept);
5.发送、接收数据;
6.关闭socket套接字。
客户机
1.创建socket套接字;
2.向服务器发送连接请求;
3.发送、接收数据;
4.关闭socket套接字。
TCP通信示意图如下所示:
UDP通信
udp通信的服务器和客户机两边的步骤完全一样,没有区别。也没必要去区分服务器与客户机。
1.创建socket套接字;
2.绑定套接字到IP和端口;
3.发送、接收;
4.关闭socket套接字;
UDP通信示意图如下所示: