TCP:传输控制协议
UDP:用户数据报协议
它俩都是传输层协议,有以下几点区别:
1.连接方式
TCP协议是面向连接的协议,通信双方在传输数据前必须先建立连接,数据传输完毕后还需要释放连接。而UDP是无连接的协议,通信双方之间不需要建立连接,可以直接传输数据。
2.可靠性
TCP是一种可靠的协议,它保证数据传输的可靠性,通过使用序列号、确认应答和重传等机制来保证数据的正确性和完整性(通过“三次握手”和“四次挥手”)。而UDP则是一种不可靠的协议,它不保证数据传输的可靠性,数据包可能会丢失、重复、乱序等。
3.传输效率
由于TCP需要建立连接和进行数据确认等操作,因此它的传输效率较低。而UDP不需要进行连接建立和数据确认等操作,UDP将数据划分为独立的数据报,每个数据报都是独立的单元,传输时采用广播发送,因此它的传输效率相对较高。
4.适用场景
TCP适用于对数据传输可靠性要求较高的场景,如文件传输、电子邮件等。而UDP适用于对数据传输实时性要求较高的场景,如音视频传输、网络游戏等。
5.数据大小限制
TCP对传输的数据大小没有限制,可以传输任意大小的数据。而UDP对传输的数据大小有限制,每个数据包的大小不能超过64KB。
三次握手:
- 客户端向服务器发送SYN(同步)报文,表示客户端请求建立连接。
- 服务器收到SYN报文后,向客户端发送SYN+ACK(同步+确认)报文,表示服务器已收到客户端请求,并同意建立连接。
- 客户端收到SYN+ACK报文后,向服务器发送ACK(确认)报文,表示客户端已收到服务器的响应,并建立连接。
四次挥手:
- 客户端向服务器发送FIN(结束)报文,表示客户端希望关闭连接。
- 服务器收到FIN报文后,向客户端发送ACK报文,表示服务器已收到客户端的请求。
- 服务器向客户端发送FIN报文,表示服务器也希望关闭连接。
- 客户端收到FIN报文后,向服务器发送ACK报文,表示客户端已收到服务器的响应,并关闭连接。