TCP和UDP的区别
- TCP
- Transmission Controller Protocol是传输控制协议
- 提供的是面向连接、可靠的字节流服务。
- UDP
- User Data Protocol是用户数据协议
- 是一个简单的面向数据包的运输层协议。
-
区别1 是否连接
-
TCP:连接
- 客户端和服务器交换数据之前,需要在双方之前建立一个TCP连接之后才能传输数据。
- 一个TCP连接需要经过三次对话才能建立起来,这三次对话的目的是使数据包的发送和接收同步。
-
UDP:不连接
-
-
区别2 是否可靠
-
TCP:可靠
- 建立了连接,TCP提供数据超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据从一端传到另一端。
-
UDP:不可靠
- 未建立连接,只是把应用程序传给IP层的数据包发送出去,也不能保证是否能到达目的地,且没有超时重发等机制。
-
-
区别3 应用场合
-
TCP:传输大量数据,对可靠性较高要求
-
UDP:传输商量数据,可靠性不高的要求
-
-
区别2 传输速度
-
TCP:较慢
-
UDP:很快
-
总结
- TCP:传输控制协议,客户端和服务器传输数据前要建立连接,此连接需要经过三次对话建立,由于建立了连接,提供数据超时重发,丢弃重复数据等数据,因此适合传输大量数据,但传输速度比较慢。
- UDP:用户数据协议,不必建立连接,客户端和服务器之间直接将IP层的数据包发送出去,不能保证数据是否成功到达目的地,也没有超时重发等机制,但传输速度很快,适合小数据,可靠要求不高的数据传输。
补充:TCP的三次握手
- 第一次握手:客户端发送syn包到服务器,进入SYN_SEND状态,等待服务器确认;
- 第二次握手:服务器收到syn包,确认客户的syn,自己也发送一个syn包,此时服务器进入SYN_RECV状态;
- 第三次握手: 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED状态,弯沉给第三次握手
注意:
- 三次握手完成,才开始正式传输数据
- TCP一旦连接,在通信双发任何一方主动关闭之,连接会一直保持下去。
- 断开连接时,服务器和客户端都可以主动发起断开TCP连接的请求,断开过程需要经过第四次握手,服务器和客户端交互,最终确定断开。
网友评论