UDP协议面向无连接
UDP 是不需要和 TCP 一样在发送数据前进行三次握手建立连接的
UDP的不可靠性
UDP 因为没有拥塞控制,一直会以恒定的速度发送数据。即使网络条件不好,也不会对发送速率进行调整。这样实现的弊端就是在网络条件不好的情况下可能会导致丢包
但是优点也很明显,在某些实时性要求高的场景(比如电话会议,直播)就需要使用 UDP 而不是 TCP。
TCP 面向连接,只有确认通信端存在时才会发送数据
1,连接管理(三次握手,四次挥手)
2,高可靠性。通过序列号和确认应答提高
发送端将数据发出去之后会等待接收端的应答,如果确认应答,说明数据已经成功到达,如果在一段时间没有收到确认,发送端就会认为数据已丢失,进行重发。
序列号是按顺序给发送数据的每一个字节标上编号,接收端接收到数据后,查询TCP首部的序列号,然后将下一步应该接收的序号作为确认应答返回给发送端
3,TCP能计算出应该发送的数据包最大长度(MSS)
tcp是在三次握手的时候计算出来最大消息长度,两端主机在建立连接的时候会在TCP首部写入MSS,告诉对方自己的接口能适应的MSS的大小,然后会在两者之间选一个较小的值进行使用
4,tcp有拥塞控制(慢启动算法)
在网络发生拥堵时,如果突然发送一个过大的数据,极有可能导致网络瘫痪,为了防止该问题,在通信一开始会通过一个慢启动的算法对发送的数据量进行控制