考点二:传输层的两种服务
物理层、数据链路层、网络层提供的都是不可靠的服务。为了实现可靠的服务,传输层必须能够提供可靠服务的协议(不然,整个网络都是不可靠的,估计没人敢用)。但是面对不同应用的特点,有的应用需要可靠地传输协议,有的应用需要高效率,因此传输层提供了两种不同的传输协议,如图5-4所示。TCP/IP协议簇在IP层之上使用两个协议:一个是面向连接的传输控制协议(TCP);另一个是无连接的用户数据报协议(UDP)。当采用UDP时,传输层向上提供的是一条不可靠的逻辑信道。
图5-4 传输层协议栈结构
面向连接的服务在通信过程中包括连接建立、连接管理和连接释放3个阶段。在通信双方进行通信之前,必须先建立连接,在通信过程中,整个连接一直被管理;当通信结束后,则应该释放这个连接。其中,TCP提供面向连接的服务,在传送数据之前必须先建立连接。TCP只能提供一对一的服务,不提供一对多、多对一或多对多的服务,由于TCP提供面向连接的可靠的传输服务,因此不可避免地增加了许多开销,如确认、流量控制、计时器及连接管理等。这不仅使协议数据单元的头部增大很多,还要占用许多的处理机资源。因此,TCP主要适用于可靠性很重要的场合,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程登录(TELNET)、SMTP和POP3等。
而无连接的服务,两个实体之间的通信不需要事先建立好连接,直接将信息发送到“网络”中,并提供一种尽力而为的发送服务。其中,UDP是一个无连接的、非可靠的传输层协议,在传送数据之前不需要先建立连接,它在IP之上仅提供两个服务:端口和对数据的校验。远程主机的传输层收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式,使用UDP的应用主要包括简单文件传输协议(TFTP)、域名服务系统(DNS)和路由信息协议(RIP)等。
注意:传输层的UDP用户数据报与网络层的IP数据报有很大区别。IP分组要经过路由器进行转发,但UDP用户数据报是在传输层的端到端抽象的逻辑信道中传送。