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及TCP通信对比讲解

UDP通信

udp通信的服务器和客户机两边的步骤完全一样,没有区别。也没必要去区分服务器与客户机。
1.创建socket套接字;
2.绑定套接字到IP和端口;
3.发送、接收;
4.关闭socket套接字;
UDP通信示意图如下所示:
UDP及TCP通信对比讲解