运输层中两个主要的协议,TCP和UDP都能向应用层提供通信服务
1、
TCP协议是面向连接的。也就是说,应用程序在使用 TCP协议之前,必须先建立起一个 TCP连接,之后才能进行通信活动。
UDP协议是无连接的。不需要建立和断开连接,发送端可以在任何时候自由地发送数据,
2、
UDP协议支持一对一、一对多、多对一和多对多的交互通信。
TCP协议仅支持一对一的交互通信。
3、
UDP协议是面向报文的。发送方的 UDP对应用程序交付下来的报文,再添加了首部信息之后就向下交付给 IP层。这就是说,应用层交给 UDP多长的报文,UDP会照原样发送,即一次发送一个报文。可以看出,应用程序必须控制报文的长度。
而 TCP协议是面向字节流的,就是说虽然应用程序交付给 TCP协议的是大小若干数据块,但是 TCP协议把这些数据看成仅仅是一连串无结构的字节流,然后 TCP协议根据当前情况选择性地将字节流分组并发送。
4、
UDP协议只是在 IP服务之上增加了很少的一点功能,因此 UDP和 IP协议一样,都是尽最大努力交付,即不保证可靠交付。
而 TCP则是可靠交付的服务,TCP协议能保证传送的数据无差错、不丢失、不重复、有序到达。