服务类型字段用来表示所希望的服务质量,这是由构成Internet的网络进行服务选择时所提供的一组抽象而笼统的参数。该服务类型是
路由器用来为特定网络、下一跳的网络和为网间数据选择路由的下一个路由器选择实际的传输参数。
原理
服务类型字段用3
比特指明优先顺序(precendence),用3比特指明标志位D、T和R,还有2比特未用。优先顺序指出IP报文的优先级,取值从0~7,0为最低优先级,7为最高优先级。D、T、R三位表示IP报文希望达到的传输效果,其中D(Delay)表示低延迟,T(Throughput)表示高吞吐率,R(Reliability)表示高可靠性。需要注意的是,服务类型字段的值只是用户的要求,对网络并不具有强制性,路由器在进行路由选择时只把它们作为参考。如果路由器知道有若干条路径可达到目的节点,则可以选择一条最能满足用户要求的路径。假设路由器知道有两条路径可以到达目的地,一条是低速但价格低廉的租用线路,一条是高速但价格昂贵的卫星线路,则对于D标志位置1的远程登录用户可选用租用线路,而对于T标志位置1的文件传输用户可选用卫星线路,ToS字段主要用于
因特网区分服务。
分类
根据服务具体实现形式的不同,服务可以分为两种类型,即:面向连接的服务和无连接的服务。这是由于上层对下层服务质量的不同要求而产生的。
面向连接服务
连接即是两个不同系统中的对等实体为实现
数据通信而进行的一次合作。以电话系统为例,要与某个人通话,需先拿起电话,拨号,谈话,然后挂断。面向连接的服务要求在两个实体进行实质性的数据交换之前,必须首先在彼此之间建立连接,在数据交换中维持这个连接,当
数据交换结束后,终止这个连接。
面向连接服务具有连接建立、数据传送和连接释放3个阶段。
建立连接阶段,在有关
服务原语以及
协议数据单元中,必须指明发送端用户和接收端用户的完整地址。数据传送阶段,可以使用一个比完整地址的长度短得多的连接
标识符,来表示上述的连接关系。
由于在面向连接服务的各个阶段,以及在传送数据时都是按顺序进行的,其特性与电路交换有许多相似之处。因此在
网络层中又称面向连接服务为
虚电路服务。“虚”表示两个服务用户在通信过程中好像自始至终占用一条端到端的完整物理电路(实际上只是一条逻辑通路)。这种面向连接服务适合于在一定期间内向同一目的地连续发送较多
报文的情况。若两个用户之间经常需要进行频繁通信,则可建立永久
虚电路。
无连接服务
无连接服务的特性之一是:两个
实体之间的通信不需要事先建立好一个连接。这样它下一层的有关资源就不必为其预留,而是在数据传输时进行动态分配。
无连接服务的另一特征是:两个进行通信的实体不需同时处于激活状态。当发送端实体正在进行数据发送时,必须是活跃的。但此时接收端的实体并不一定是活跃的。只有当接收端实体正在进行数据接收时,它才是必须活跃的。
无连接服务的优点是灵活方便,并比较迅速,但它不能防止报文的丢失、重复或失序。
由于采用无连接服务时,每个报文都必须提供完整的接收端用户的地址,增大了开销。因此这种服务比较适合于传送少量零星报文。
服务类型扩展
BACnet应用层服务主要是基于“读/写”模式,这种模式虽然具有非常简洁的访问接口,但有时过于简单,访问效率低下。随着应用的发展,为了提高访问效率和增强灵活性,就必须对现有的服务类型进行扩展。
根据应用层服务扩展方式可以将应用服务扩展分为两类扩展:第一类扩展是利用标准服务提供的专用扩展,第二类扩展是定义新的标准服务。
根据应用层服务报文编码,定义服务类型的BACnetCOnfimedServiceChoice枚举变量和BACnetUncon“rmedServiceChoice枚举变量是不允许用户扩展的,因而用户不能定义新的应用服务类型来扩展应用服务,只能利用ConfirmedPrivatenansfer和ConfirmedPrivatenansfer标准服务类型提供的扩展功能进行应用服务扩展。前者用于证实服务的扩展,后者用于非证实服务的扩展。这两个服务提供的扩展方式完全相同,均将扩展所需的VendOr_ID(厂商标识号),service Number(服务号)和service Parameters(服务参数)三个参数作为用户数据进行编码。其中service Number为无符号整型数据,这个参数可以作为专用扩展服务的类型编码。
为了使具有实用性的扩展服务具有普遍性,提高服务的效率,就必须进行第二类扩展,即扩展应用服务的类型并使其标准化。扩展应用服务的类型也非常容易,只是按标准应用服务构造一个新的服务类型,并将其作为标准内容即可。
BACnet标准至今也扩展了多种应用层服务类型,如ReadRange,LifeSafetyOperation,SubscribeCOVProperty服务等。