传输层协议的TCP与UDP对比(一)
TCP和UDP都是处于网络层之上的传输层协议,向终端用户之间提供透明传输,向上层提供可靠的数据传输服务。即保证网络层数据的传输。
TCP协议与UDP协议区别
什么时候应该使用TCP?
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。
什么时候应该使用UDP?
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。
UDP协议
UDP(User Datagram Protocol,用户数据报协议),是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。
一、UDP协议报头
UDP指用户数据报协议,其报头格式如下:
二、UDP协议特点
1. 面向无连接 UDP协议只是数据报文的搬运工,不会对数据报文进行任何拆分和拼接操作。不需要和 TCP一样在发送数据前进行三次握手建立连接。 发送端:应用层将数据传递给传输层的 UDP 协议,UDP 只会给数据增加一个 UDP 头标识下是 UDP 协议,接着传递给网络层。 接收端:网络层将数据传递给传输层,UDP 只去除 IP 报文头就传递给应用层,不会进行任何拼接操作。
2.支持单播、多播、广播功能 UDP 支持一对一的传输方式,也支持一对多,多对多,多对一的方式,也就是说 UDP 提供了单播,多播,广播的功能。
3.面向报文 发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文。
4.不可靠性 由于UDP协议是面向无连接的,即通讯不需要建立连接,因此UDP协议是不可靠的。其次,接收端接收到的数据并不会进行备份,发送端也不关心接收方是否接收到数据。最后,在网络环境不稳定情况下,UDP 因为没有拥塞控制,一直会以恒定的速度发送数据。即使网络条件不好,也不会对发送速率进行调整。这样实现的弊端就是在网络条件不好的情况下可能会导致丢包,但是优点也很明显,在某些实时性要求高的场景(比如电话会议)就需要使用 UDP 而不是 TCP。
5.头部小,传输数据多 UDP头部小,说明传输更多的数据内容,UDP 头部包含了以下几个数据:
两个十六位的端口号,分别为源端口(可选字段)和目标端口 整个数据报文的长度 整个数据报文的检验和(IPv4 可选 字段),该字段用于发现头部信息和数据中的错误
UDP 的头部开销小,只有八字节,比TCP 的至少二十字节少的多,可以高效传输数据报文。