网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

什么是ATP(AppleTalk事务协议)?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

ATP指的是AppleTalk事务协议。它属于由苹果公司开发的一系列网络协议中的一部分。这是一种传输层协议,它能够帮助在网络中传输少量数据。这种协议提供了一种无错误且可靠的通信方式,适用于客户端-服务器架构的通信系统。它能够实现传输层的大部分功能,比如数据分段、数据包排序等。

ATP的工作原理类似于客户端-服务器架构。有一个请求方,它向另一个称为“响应方”的端点发送请求。响应方会执行相应的操作,然后返回一个响应。

在ATP中的交易行为:

下图描述了交易是如何发生的:

ATP中的交易行为
  1. 请求方调用了ATP接口。随后,该接口通过ATP驱动程序与响应方的ATP驱动程序建立专用连接。
  2. 在响应方端的驱动程序,会调用相应的应用程序来处理接收到的请求,然后返回相应的响应结果,以便将其发送回请求方。
  3. 为了发送响应,响应方会调用其ATP接口。该接口利用预先建立的连接来将响应发送回请求方。

如前所述,ATP可以被用来发送信息。数据传输的字节数存在限制。请求方和响应方所能传输的数据量都有上限。对于请求方来说,可传输的数据量为578字节;而对于响应方而言,其上限为4624字节。

ATP交易的类型:

ATP交易有两种类型:

  1. 至少一次的交易在ALO交易中,可以保证响应者至少会收到发送给他的所有请求一次。不过,无法确保不会再次向该响应者发送相同的请求。
  2. 恰好一次的事务处理在XO交易中,可以确保响应方会恰好收到所有发送给它的请求一次。这也意味着,响应方已经接收过的某个请求不会再被发送出去。

所使用的交易类型,取决于请求所要求的处理方式。如果多次执行同一个请求可能会导致结果出现不一致的情况,那么就会使用XO交易。而如果多次执行同一个请求不太可能导致问题发生的话,那么就会使用ALO交易。

ATP数据包格式:

一个ATP数据包由ATP头部和数据部分组成。ATP头部的大小为8字节。整个数据包被封装在DDP(数据报传输协议)的数据报中,并以数据链路层帧的形式进行传输。

以下是ATP数据包的结构:

ATP数据包的结构

数据部分遵循ATP头部结构。ATP头部的长度可以高达578字节,或者根据数据包是由请求方还是响应方发送来决定,其长度可达4624字节。

以下是各个字段的详细描述:ATP标题:

控制信息字节:

它用于存储与请求/响应相关的控制信息,比如交易类型、该数据包是否是最后一个接收到的数据包等。控制信息字节中包含了以下信息:

比特编号、描述012345
指定是否使用DDP校验和。
指定该请求是否已经为此次操作分配了事务ID。
指定此请求是否使用了扩展参数块。
指定当前数据包是否应立即被重新传输。
指定这是否是响应的最后一批数据包(即消息的结束)。
该参数用于指定当前请求是采用“恰好一次”的事务模式,还是“至少一次”的事务模式。

位图/序列号:

位图/序列号的大小为8位。 ATP以其在数据传输过程中的可靠性而著称。 这保证了请求方能够收到所有作为对其请求的回应而发送过来的数据包。 为此,它需要跟踪哪些数据包已经被请求方接收到了,而哪些数据包尚未被接收。 ATP采用的方法是将所有作为响应而发送的数据包都赋予序列号,并将最后一个响应数据包标记为“消息结束”的标志(该标记由ATP头部中的控制信息字节的第4位来表示)。 请求方在接收到所有数据包后,会检查它们的序列号以及ATP头部的控制信息字节。然后,它会判断自己是否已经收到了所有的数据包。 如果还没有完成,那么接收端上的ATP驱动程序就会重新发送那些丢失的数据包。

交易ID:

交易ID用于将每个请求与其对应的响应进行关联。该字段的位数为16位。请求者可以在任何时刻发送多个请求。交易ID有助于ATP记录所有已发送的请求,从而确保为每个请求提供的响应是正确的。该字段位于ATP头部的第3个和第4个字节中。

用户数据:

ATP头部最后4个字节并不被ATP本身使用。这些字节被预留出来,供请求方和响应方的应用程序使用。ATP驱动程序支持一些预定义的函数,通过这些函数,用户可以将这些头部的数值设置为自己想要的值。

下表总结了属于ATP头部中的各个字段:

字节数 字段编号 存储的大小(位) 描述123-45-8
控制信息8用于存储与请求/响应相关的控制信息,比如交易类型、该数据包是否是最后一个接收到的数据包等。
交易位图/ATP序列号8它用于确定当前数据包的序列号。如果数据包是作为对某个请求的响应而发送的,那么这个序列号就被称为ATP序列号。如果当前的数据包本身是一个请求,那么这个序列号则代表了应用程序所支持的缓冲区数量,这个数值被称为事务位图。
交易ID16它存储了每个请求的交易ID。响应方会使用这个ID来跟踪所有的请求。
用户数据32携带特定于应用程序的信息,例如校验和等。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料