TOS


由于Internet本身不具备为特定应用程序或用户优化路径的直接知识,因此IP协议提供了一种工具。高层协议可利用该工具向Internet层传送关于如何折衷处理特定数据包的提示。此工具即为“服务类型”工具,简称“TOS工具”。

 

TOS工具是IP数据报头的服务类型八位组(Type of Service octet)的功能之一。服务类型八位组包括三个字段。前3个位(0、1、2)是第一个字段,标记为“优先”,用于表示数据报的重要性或优先级。第二个字段标记为“TOS”,表示网络在吞吐量、延迟、可靠性和成本之间如何进行折衷。最后一个字段标记为“MBZ”(意为“必须为零”),目前不使用。数据报的原发者将此字段设置为零(除非Internet协议试验 的参与者可能使用该位)。路由器和数据报的收件人都将忽略此字段的值。此字段会被复制到碎片上。

 

TOS字段的规范

 

TOS字段值的语义(以二进制数字表示):


      1000 最小延迟
       0100 最大吞吐量
       0010 最大可靠性
       0001 最小货币成本
       0000 正常服务


              
TOS字段中使用的值视为“TOS值”,IP数据包的TOS字段中的值视为“请求的TOS”。TOS字段值0000是“默认TOS”。因为此规范将TOS值重新定义为整数而不是位组,所以计算两个TOS值的逻辑或不再有意义。例如,为请求的TOS为1110的数据包选择低延迟路径的路由器将发生严重错误,这是因为该路由器会发现以前设置了“延迟位”。

尽管没有定义上述五个值之外的值的语义,它们也完全可能是合法的TOS值,主机和路由器一定不会以任何方式排除它们的使用。只有默认TOS是个特殊情况。主机或路由器需要区分TOS值之间的任何差别

例如,将TOS字段设置为1000(最小延迟)并不能保证数据报采用的路径具有用户想像的“低”延迟。网络将根据它的关于路径延迟的信息(往往是不 完全的)尝试选择可用的最低延迟路径。网络不会简单地丢弃数据报,因为它相信可用路径的延迟“太高”(实际上,通过创造性地使用路由规格,网络管理器可以覆盖这种行为,但我们很不赞成这样做:设置TOS字段旨在服务可用时提供较好的服务,而不是为了在其不可用时拒绝服务)。

 

在路由中使用TOS字段

主机和路由器在选择将数据报传送到目的地的适当路径时都应该考虑数据报的TOS字段的值。本部分将讨论执行此操作的机制。

数据包的TOS值是否实际影响它在特定路由域中采用的路径,是路由域的网络管理器做出的选择。在很多路由域中,路径的性质都非常相似,以至于路由器没有理由根据数据报中的TOS字段选择另外的路径。
在这样的路由域中,网络管理器可能选择仅通过定义默认(0000) TOS的路由 来限制路由数据库和路由协议更新的大小。


无论主机还是路由器都不需要TOS在本地路由域中是否影响路由的明确知识。

 

内在限制

 

所有内在限制中最重要的是,严格地说,TOS工具只是一个顾问机制。它不是请求服务保证的相应机制。原因有两个:

 

  • 在决定如何处理和路由数据包时,并非所有网络都考虑TOS字段的值。在某种程度上说,这是一个过渡问题:有时(可能是很长一段时间),有些网络将使用提早此规范的日期的装备。很多网络甚至长期不能按TOS字段的值提供较好的服务。例如,由互连LAN的同类集合组成的网络的最佳路径可能与TOS值完全相同。在这样的网络中,要求路由器和路由协议在转发数据包时完成考虑TOS字段值所需的额外工作一点意义也没有。
  • TOS机制不够强大,不能使应用程序量化它需要的服务级别。例如,应用程序可能使用TOS字段请求网络选择最大化吞吐量的网络,但是无法使用该机制表示它需要每秒钟多少特定的千字节或兆字节数。因为网络不知道应用程序需要什么,所以它无力决定放弃请求最大吞吐量的数据包,理由是不存在可用的“高吞吐量”路径。

 

 

TCP标志


 

 

TCP标志有6个 - URP(紧急指针)标志、ACK(确认)标志、PSH(进栈)标志、RST(重置)标志、SYN(同步)标志和FIN(完成)标志。

 

 

紧急指针标志将传入的数据标识为“紧急”。标识的段将被分配给高优先级并立即处理,无需等到处理完所有排队的数据。ACK标志可用于确认数据包的成功接收 - 可以确认收到的每个数据包,也可以确认每次收到的第n个数据包。 进栈标志可用于为数据分配所需优先级,或者在源点处理或者在目的地处理。在使用进栈标志时,需要注意处理正确的数据段。还要在连接的两端设置适当的优先级。

 

当有不针对当前连接的段到达时,可设置重置标志(RST)。例如,如果远程系统要将数据包发送到主机以建立连接,但主机不支持该服务,则主机可拒绝该请求,然后设置RST标志,表明主机已重置该连接。

 

 

                  SYN

主机1 ---------------------> 主机2

               SYN、ACK

主机1 <--------------------- 主机2

                   ACK

主机1 ----------------------> 主机2

 

连接已建立

 

 

                

 

TCP标志选项中的第五个标志 - SYN标志是TCP通信中的高频使用的标志 - 如上所述,在两个主机之间建立典型的3方握手时,首先发送SYN标志。主机1需要将TCP用作协议建立与主机2的联系。在3方握手期间,传递2个SYN标志。连接建立后,在两个主机之间传输数据时,还将发送和接收更多的SYN标志。

 

 

第六个即最后一个标志是FIN标志,在连接中交换最后的数据包时,它将出现。当主机发送FIN标志关闭连接时,它可以继续接收数据,直到远程主机也关闭连接时为止。典型的断开连接如下所示。TCP是全双工连接,因此存在双向的数据流。

  

              FIN、ACK

主机1 --------------------> 主机2

                 ACK

主机1 <-------------------- 主机2

              FIN、ACK

主机1 ----------------------> 主机2

                 ACK

主机1 ---------------------> 主机2

 

            数据传输

          

 

         

数据传输完成后,主机1将带有FIN、ACK标志组的数据包发送到主机2。通过这一动作,主机1既完成了对上一个数据流的确认,同时又启动了结束此连接的TCP关闭动作。此后,主机1的应用程序不再接收数据,连接将关闭。同时,主机2回发确认以响应主机1的结束连接请求。完成后,主机2发送它自己的FIN、ACK标志结束连接。最后,主机1确认主机2早先的请求,这样,连接就关闭了。

 

TCP和蠕虫

 

蠕虫源通常不连接整个网络,只是偶然随机尝试打开单个主机连接。可以通过使用TCP标志和ICMP跟踪应对蠕虫。攻击者尝试在没有使用的目标IP地址打开TCP时,他就设置了TCP SYN标志。如果连接成功,则存在累积的TCP标志SYN和ACK;如果连接没有成功,则仅存在带有SYN标志的流。根据网络和源之外每个源IP地址的不成功连接计数,即可跟踪攻击者 - 具有最多连接尝试次数的那个。如果攻击者使用UDP协议连接整个网络,则会生成非常多的ICMP消息。

 

 

 

 

 


版权所有© 2007-2008 AdventNet, Inc.保留所有权利。