TCP面向连接(TCP三次握手),UDP是无连接的,即发送数据之前不需要建立连接。
每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。
TCP有序,UDP无序;消息在传输过程中可能会乱序,后发送的消息可能会先到达,TCP会对其进行重排序,UDP不会。
TCP有流量控制(拥塞控制),UDP没有。流量控制:TCP利用滑动窗口机制在TCP连接上实现对发送方的流量控制, 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。当出现网络抖动时,TCP会自觉降低发送速度,他会努力维护次序,但UDP依然保持速度不变。TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
TCP传输速率慢,由于传输要进行三次握手,以及会进行拥塞控制等。
TCP应用场景:效率要求相对低,但对准确性要求相对高的场景。因为传输中需要对数据确认、重发、排序等操作,相比之下效率没有UDP高。举几个例子:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录。UDP应用场景:效率要求相对高,对准确性要求相对低的场景。举几个例子:QQ聊天、在线视频、网络语音电话(即时通讯,速度要求高,但是出现偶尔断续不是太大问题,并且此处完全不可以使用重发机制)、广播通信(广播、多播)。
TCP UDP 连接 面向连接 无连接 连接方式 点到点 支持一对一,一对多,多对一和多对多 模式 流模式(TCP) 数据报模式(UDP) 头部大小 20字节 8字节 有序性 有序 无序 传输速率控制 流量控制(拥塞控制) 无 可靠性 可靠 不可靠 传输速率 慢 快 占用系统资源 高 低 应用场景 效率要求相对低,但对准确性要求相对高的场景。