热门关键词: 养鸡设备 通用机械 小型番茄酱生产设备 建筑机械设备 求购箱包设备 鸡笼组装设备 ibmr51未知设备
  IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
相关专题
查询/响应类联网设备的三种传输层协议分析
新闻出处:控制工程中文网 发布时间:2007-11-15

  随着查询/响应类应用联网设备的不断增加,以及带宽竞争的加剧,高效实现互动数据交换就显得十分迫切。在臃肿的网络上,响应时间、存储器的使用、可靠性和互动性是选择传输协议时需要考虑的多个重要因素,本文就从这几个方面说明三种不同的传输层协议对上述指标的影响,并说明具备T/TCP功能的联网设备可能是未来的发展趋势。

  目前,连接上网的嵌入式设备的数量和种类都在迅速增加。许多数据通讯应用方面的要求涉及频繁的查询-响应,或者在客户端设备与服务器设备之间小型数据(小到可以放在单一而不拆分的IP包中)的互动数据交换(transaction)类型互换。本文中“客户端”指启动这种信息交换的设备,而“服务器”是指响应该请求的设备。客户同服务器的关系可以是多对一,一对多或者是多对多的关系。

  联网设备通常都采用IP(互联网络协议)作为网络层协议。传输应用中一个至关重要的选择就是传输层协议的应用。本文着重讨论这种选择所面临的若干问题以及注意事项,特别是(但不仅仅是)在嵌入式设备中,要注意存储器、网络带宽、响应时间、可靠性以及互动性等问题。根据这些情况,传输层协议将分别考虑三种可能的选择:UDP、TCP以及T/TCP.

  用于互动数据交换的TCP扩充

  一般来说,传输控制协议(TCP)和用户数据包协议(UDP)是读者比较熟悉的,而用于互动数据交换的TCP扩充协议(T/TCP)还不太为人所知,本段简要介绍有关该协议的概况。

  T/TCP并不是一种新的协议。该协议在1994年就以RFC1644标准的形式给出了定义。在标准版TCP的基础上,通过增加某些新功能来实现互动数据交换应用的优化,从而构成了T/TCP。在T/TCP中使用了所有的标准版TCP的机制及基本结构。T/TCP后向兼容TCP。T/TCP不论是在客户端还是在服务器端,当与一个不支持T/TCP协议的对等设备通讯时,就会自动适配为标准版TCP。

  T/TCP连接中的每一个IP包(TCP术语中称为一个区段)都会用一个32位的连接计数(connection count)来标识,该连接计数对每个连接来说都是唯一的。绝大多数情况下,它能防止旧的区段破坏后续连接。一个称为“CC”的TCP数据头选项可以携带T/TCP连接计数。

  对持续时间较短---小于一个数据段最长寿命(MSL)---的连接来说,CC选项的一个好处就是它可以缩短或者避免出现TCP的TIME_WAIT状态。TIME_WAIT状态提供保护TCP数据流不被破坏的一种机制,这种机制通过复制同一个连接以往数据段的早期副本来实现。TCP连接的一端驻留在TIME_WAIT状态来维持两个MSL---一个MSL通常持续两分钟---的时间间隔,这样可以防止当所有的副本信息段在网络上仍然处于有效期时创建同一连接的新副本。T/TCP的CC选项确保TIME_WAIT状态可以被截短到最多高达一个连接往返时间(RTT)的八倍。更重要的是,同一连接的新副本可以立即创建,也就是说,TIME_WAIT状态可以完全消除。

  T/TCP会维护每一个相互作用的远程主机的协议信息的缓存。这个缓存包括往返时间、最大信息段长度以及堵塞窗口等相关信息。因此,这些信息无需在每一次连接中重新创建,T/TCP连接可以根据这些参数立即运行。

  标准TCP连接总是以一个不携带任何数据信息的三段同步(SYN)序列开始,而以同样不携带任何数据信息的一个三段结束(FIN)序列来中止。SYN与FIN之间的数据段携带需要交换的信息。如果需要发送数据的总量可以整合在单一的数据段中,那么T/TCP就可以将SYN、FIN以及数据功能组合为单个信息段(single segment),所以完整的一个T/TCP连接仅需要三个数据段就可以打开和关闭。

  用于T/TCP的插座API是标准TCP插座API的最小扩充。通过将两个现有的API功能“send to”和“send”进行了扩展,可以确保应用端整合各种要求,从而打开连接、传输数据和关闭连接传输方向以便被单API调用。

  在客户端一方,三区段连接的最小持续时间与一个简单的往返时间为同一数量级。这里,通常假定与往返时间相比,服务器处理请求并且发送响应需要花费的时间很小。

  存储器的使用

  由于生产成本较高,所以嵌入式设备的存储器通常都比较有限,因此进行软件设计时必须牢记这一约束条件。

  标准TCP之所以可靠,一个原因是一旦连接中止,那么启动连接中止的一端(通常是客户端)就会进入TIME_WAIT状态,并且维持这一状态的时间较长,通常为二倍MSL。在这段时间内,不会创建同一连接的新例程。这种机制保护TCP连接免受同一端点之间早期连接中相同端点之间旧的复制信息段的破坏。这样看来,当TIME_WAIT状态时间到期为止,所有这些旧的信息段都将在网络上到期。

  当一个连接维持在TIME_WAIT状态时,TCP就必须为该连接维护一个包括状态信息的控制模块。通常情况下,一个连接的TCP控制模块会占用几百个字节的存储器空间。

  与此同时,如果客户端应用希望管理与同一个服务器之间后续互动数据交换的话,就必须为每一个客户端应用分配一个新的本地TCP端口,并且为该连接的TCP控制模块分配存储器。如果客户端应用运行的硬件平台中存储器空间比较紧张,该TCP层的设计就要考虑让传输容量能够满足一定数量的同时连接需要。一旦连接容量(connection capacity)为TIME_WAIT状态下的连接全部占用,那么只有其中的一个TIME_WAIT状态到期才能创建新的连接。这可能严格制约传输的速率,例如,如果TIME_WAIT状态的持续时间是两分钟,并且客户设备的容量是20个同时连接,那么所能达到的最大传输速率就是每分钟10次互动数据交换。

  由于UDP没有连接状态,因而无需维护连接状态,所以对UDP来说,存储器的大小和使用不成为问题。

  T/TCP的TIME_WAIT具有截短特征(truncation feature),因此应用可以立刻复用上一个连接的本地TCP端口,而无需进行额外的TCP控制模块分配。

  即使应用并不复用同一本地TCP端口,由于T/TCP的TIME_WAIT状态持续时间与标准TCP相比通常都很短,那么,相对来说有限的同时连接容量而导致的互动数据交换速率(transaction rate)的下降就很小。

  网络带宽

  如果位于客户端和服务器之间路径上的网络数据传输量相对它们的容量来说负载很重的话,那么就可能出现因堵塞而导致的信息包丢失,使用具有较小开销的传输层协议就能够使这种风险降到最小。

【1】【2】【3】
关闭】【打印
友情链接:
© 2007 电子设备网 网站地图