摘要:定时器是项了不起的发明,如今已有相当多需要人控制时间的工作变得简单了许多,该文主要针对网络中的定时器技术做一简单论述。
关键词:网络;定时器;技术应用
中图分类号:TP393文献标识码:A 文章编号:1009-3044(2011)21-5094-02
在OSI模型中计算机网络被分为7层,从上到下依次是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。TCP/IP参考模型中计算机网络仅具有4层结构,从上到下依次是应用层、传输层、网络层和网络接口层。对于OSI模型,其不足之处在于表示层和会话层几乎是多余的,很少用到;而 TCP/IP将物理层和数据链路层合并在一起组成一个网络接口层,这种方法也是不合理的。因此一种比较合理的层次结构是将计算机网络分为5层,依次为:应用层、传输层、网络层、据链路层和物理层。纵观这5层结构,中间三个层次是运用定时器技术最多的层次,下面我们就依次对它们进行分析。
1 协议中的定时器技术
差错控制流量控制是数据链路层的一个重要功能,首先看一个数据链路层的简单协议——停等协议中的定时器技术。
图1a是正常情况,即数据在传输中没有差错的情况下停等协议的工作情况;图1b发送方的数据帧在到达接收方前丢失的情况。
从图1a可以看出,发送方在发送完一帧数据后必须要等待接收方的确认帧ACK到达后才能发送新的数据帧,因此停等协议是一个简单而低效的协议。图1b中的数据帧在到达接收方前丢失了,在这种情况下如果按照停等协议简单的等待方式,发送方将无限制地等待下去,因为接收方根本就没有收到数据报文,更不用谈发送确认消息了,为了解决这个问题,可以采用定时器技术,即发送方在发送完一帧数据之后马上启动一个定时器,如果在超时间隔内没有收到确认,发送方就会对该帧重传。定时器的超时时间一般设为从发送数据帧到收到确认的平均时间间隔。在此超时定时器的重要作用可以略见一斑。
网络层对定时器也有相关的应用。比如IP数据报,为了解决IP数据报长度和数据链路层TLXLeeOoVynPhNfAGJFbfQ==帧长不匹配的问题(大多情况如此),需要对IP数据报进行分片,IP协议头字段中有三个字段:标识、标志、片偏移就是为此目的而设计的。每个分片在子网中是独立路由的,也就是同一数据报的各个分片到达接收方主机的时间一般是不同地,另外到达接收方的分片前后次序也会发生错乱。不论在什么情况下,目的主机只有等待属于同一个数据报的所有分片全部到达后才能将它们重新排序组装成一个完整的IP数据报交给高层处理。可以设想一种极端的情况:第一个IP分片很快就到达了目的主机,但是最后的一个分片永远不能到达目的主机,因为它已经在子网的传输过程中丢失了,那对于这种情况,如果接收方主机无休止的等待下去,将耗费巨大的主机资源,如果多个数据包都是这样,那就会很快将目的主机的资源耗尽,造成“死锁“,因为在接收到最后的一个分片之前,目的主机需要将该IP数据报的前面收到的所有分片进行存储。很显然,这里也需要一个定时器,也就是说在一个IP数据报的第一个分片到达目的主机后,目的主机就启动一个定时器,在定时最大间隔内,如果数据报的最后一个分片如果还没到达,目的主机就将此IP数据报的所有分片丢弃,并向源主机发送超时报文,这个超时报文是利用ICMP消息发送的。
2 定时器技术工作情况
对于TCP/IP网络来说,传输层有两个协议:TCP和UDP,其中UCP是无连接的不可靠的协议,TCP是面向连接的可靠的协议,TCP实现了报文段的有序、无重复、无差错和无丢失的可靠传输。众所周知TCP是建立在不可靠的IP协议的基础上,而TCP之所以能够提供无差错的数据传输,是因为它采用了一些关键技术,其中之一就是定时器技术。分局不同的运用场合,传输层的定时器主要有4类:重传定时器、坚持定时器、保持定时器和时间等待定时器。
图3给出了三种运用重传定时器的情况。
图3a和图3b分别是是报文段受损和报文丢失的情况,这两种情况最终都导致发送方在超时时间间隔内不能收到来自接收方的确认报文,因此发送端在超时时间间隔后将自动重传该报文段。图3c是来自接收方的确认报文丢失的情况,这个时候发送方会根据累计确认的原则来决定是否需要重传报文,比如发送方在发送了报文段1后,如果在超时间隔t1out内一直没有收到对报文段1的确认,但是却受到了对报文段2的确认,则发送方就可以忽略报文段1的确认丢失,认为报文段1是正确到达接收方的。
坚持定时器是在流量控制时设立,用于避免收发双方进程死锁。保持定时器是为了避免客户和服务器之间没有数据传输的情况下,连接还一直处于打开状态的问题。具体做法是服务器收到来自客户端的数据后马上将定时器复位,如果定时器超时期间再没收到客户信息,再按照一定的规则来中止和客户端的连接,这样作的好处就是可以及时释放不用的连接,提高网络资源的利用率。时间等待定时器也是一个专门的定时器,在TCP连接释放期间采用。当接收方同意释放连接请求消息时启动定时器,如果在超时时间没有收到对方的确认就会再次重传同意释放连接的报文。
以上是计算机网络的相关层次的定时器技术,另外某些具体的硬件设备也常采用定时器技术,比如交换机为了维护一张高效而有用的地址表要利用定时器技术对地址表进行定期的刷新,同时也可以充分利用硬件资源;路由器为了充分利用资源和提高路由查找速度也要对路由表进行维护,通常也要采用定时器技术。另外在应用层为了提高资源利用率和提高系统的安全性也可以采用定时器技术。
3 结束语
总之,网络中的定时器技术无处不在,是提高整个系统的可靠性和有效性的关键技术,在其他很多领域中都可以借鉴。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文