TCP/IP的运输层
TCP/IP这一层提供了两个主要的协议:传输控制协议(冗P)和用户数据报协议(UDP),另外还有一些别的协议,例如用于传送数字化语音的NTCP/IP的运输层 VP协议。
1.传输控制协议TCP
TCP提供的是一种可靠的数据流服务。当传送受差错干扰的数据,或基础网络故障,或网络负荷太重而使网际基本传输系统(元连接报文递交系统)不能正常工作时,就需要通过其它的协议来保证通信的可靠。TCP就是这样的协议,它对应于OSI模型的运输层,它在IP协议的基础上,提供端到端的面向连接的可靠传输。
TCP采用"带重传的肯定确认"技术来实现传输的可靠性。简单的"带重传的肯定确认"是指与发送方通信的接收者,每接收一次数据,就送回一个确认报文,发送者对每个发出去的报文分组都留一份记录,等到收到确认之后再发出下一个报文分组。发送者发出一个报文分组时,启动一个计时器,若计时器计数完毕,确认还未到达,则发送者重新发送该报文分组。
简单的确认重传严重浪费带宽,TCP还采用一种称之为"滑动窗口"的流量控制机制来提高网络的吞吐量,窗口的范围决定了发送方发送的但未被接收方确认的数据报的数量。每当接收方正确收到一则报文时,窗口便向前滑动,这种机制使网络中未被确认的数据报数量增加,提高了网络的吞吐量。
TCP通信建立在面向连接的基础上,实现了一种"虚电路"的概念。双方通信之前,/IP在先建立一条连接,然后双方就可以在其上发送数据流。这种数据交换方式能提高效率,但事先建立连接和事后拆除连接需要开销。TCP连接的建立采用三次握手的过程,整个过程由发送方请求建立连接、接收方确认、发送方再发送一则关于确认的确认三个过程组成。
2.用户数据报协议mp
用户数据报协议是对IP协议组的扩充,它增加了一种机制,发送方使用这种机制可以区分一台计算机上的多个接收者。每个UDP报文除了包含某用户进程发送的数据外,还有报文目的端口的编号和报文源端口的编号,从而使UDP软件可以把报文递送给正确的接收者,然后接收发出一个应答。由于UDP的这种扩充,使得在两个用户进程之间递送数据报成为可能。
UDP是依靠IP协议来传送报文的,因而它的服务和IP一样是不可靠的。这种服务不用确认、不对报文排序、也不进行流量控制,UDP报文可能会出现丢失、重复、失序等现象。