Channel Access Protocal——EPICS Base-3.16版CA协议 - 命令(TCP和UDP)

参考文献:

1. 官方CA协议说明 https://epics.anl.gov/base/R3-16/1-docs/CAproto/index.html#_commands_tcp_and_udp(本翻译的原文)

 

以下命令作为UDP数据报或TCP消息发送。 一些消息也在虚拟电路(TCP连接)的上下文中使用。

 

CA_PROTO_VERSION

Command

CA_PROTO_VERSION

ID

0 (0x00)

Description转换客户端和服务器协议版本以及所需的电路优先级。 必须是客户端和服务器在建立新TCP(虚电路)连接时发送的第一条消息。 它也作为UDP搜索消息中的第一条消息发送。

请求

表1. CA_PROTO_VERSION请求的头部

FieldValueDescription

Command

0

CA_PROTO_VERSION的命令标识

Payload size(负载大小)

0

必须是0

Priority

期望的优先级数字

虚拟电路的优先级

Version

版本号

次版本号,仅在TCP发送时使用

Reserved

0

必须是0

Reserved

0

必须是0

表2. CA_PROTO_VERSION请求的兼容性

VersionComment

CA_V411(4.11版)及其更高版本

创建虚拟电路后,服务器会立即发送应答

低于CA_V411(4.11版)的版本

消息不包括次版本号(始终为0),并且被解释为不携带数据的echo命令。 在CA_PROTO_CREATE_CHAN之后立即执行版本转换

 优先级表示服务器的调度优先级,可以通过抢占式调度OS中的电路专用线程的调度优先级来实现。

 由于缓存错误,4.11版以下的CA协议中,RSRV在连接时没有立即发送CA_PROTO_VERSION,而是在一些其他响应触发缓冲区刷新时发送CA_PROTO_VERSION。

响应

表3. CA_PROTO_VERSION响应的头部

FieldValueDescription

Command

0

CA_PROTO_VERSION的命令标识符

Reserved(预留)

0

必须为0

Priority(优先级)

0

必须为0

Version

Version number

次版本号。只有在TCP发送时使用

Reserved(预留)

0

必须为0

Reserved(预留)

0

必须为0

 表4. CA_PROTO_VERSION响应的兼容性

 
VersionComment
CA_V411(4.11版)及其更高版本

服务器不会响应请求,但会在虚拟电路建立后立即发送请求

低于CA_V411(4.11版)的版本

消息不包括此版本号(总是为0)

 

CA_PROTO_SEARCH

Command

CA_PROTO_SEARCH

ID

6 (0x06)

Description

搜索所给通道的名字。TCP或UDP发送时

 请求 

表5. CA_PROTO_SEARCH请求的头部

FieldValueDescription

Command

6

CA_PROTO_SEARCH的命令标识符

Payload Size

>= 0

通道名称的填充大小

Reply

响应标志位

Search Reply Flag, 表明是否应该返回失败的搜索响应

Version

版本号

客户端协议的次版本号

SearchID

 

客户端分配搜索标识符

SearchID

 

客户端分配搜索标识符

表6. CA_PROTO_SEARCH请求的有效负载

NameTypeValueDescription

通道名称

STRING

 

搜索的通道名称

 

下面的内容就不翻译了,好理解的。

Comments

  • Sent as a UDP datagram.

  • It is illegal to specify DO_REPLY flag whenever the message is sending as UDP datagram, regardless of whether broadcast or multicast is used.

  • SearchID will be allocated by the client before this message is sent.

  • SearchID field value is duplicated.

  • Reply flag will be generally DONT_REPLY when searching using broadcast and DO_REPLY when searching using unicast. When DO_REPLY is set, server will send a CA_PROTO_NOT_FOUND message indicating it does not have the requested channel.

8.2.2. Response

Table 9. Header
FieldValueDescription

Command

6

Command identifier for CA_PROTO_SEARCH.

Payload Size

8

Payload size is constant.

Data Type

Port number

TCP Port number of server that responded.

Data Count

0

Must be 0.

SID or IP

0xffffffff

Temporary SID (deprecated) or server IP address.

SearchID

 

Client allocated Search identifer.

Table 10. Payload
NameTypeValueDescription

Server protocol version

UINT16

 

Server protocol version.

Comments

  • Received as UDP datagram.

  • Search ID field value (CID) is copied from the request.

  • Before CA_V411 the SID/IP field will always have the value of 0xffffffff and the server IP address is assumed to be the senders IP.

  • Starting with CA_V411 the server’s IP address is encoded in the SID/IP field if it differs from the sender’s IP, or 0xffffffff if it is the same.

  • The port number included in the header is the TCP port of the server. Two servers on the same host can share a UDP port number, but not a TCP port number. Therefore, the port the client needs to connect to in that situation may not be the same as expected if this field in the response is not used.

8.3. CA_PROTO_NOT_FOUND

Command

CA_PROTO_NOT_FOUND

ID

14 (0x0E)

Description

Indicates that a channel with requested name does not exist. Sent in response to CA_PROTO_SEARCH, but only when its DO_REPLY flag was set. Sent over UDP.

8.3.1. Response

Table 11. Header
FieldValueDescription

Command

14

Command identifier for CA_PROTO_NOT_FOUND.

Reserved

0

Must be 0.

Reply Flag

DO_REPLY

Same reply flag as in request: always DO_REPLY.

Version

Same as request

Client minor protocol version number.

SearchID

 

Client allocated Search identifer.

SearchID

 

Client allocated Search identifer.

Comments

  • Contents of the header are identical to the request.

  • SearchID fields are diplicated.

  • Original request payload is not returned with the response.

8.4. CA_PROTO_ECHO

Command

CA_PROTO_ECHO

ID

23 (0x17)

Description

Connection verify used by CA_V43. Sent over TCP.

8.4.1. Request

Table 12. Header
FieldValueDescription

Command

23

Command identifier for CA_PROTO_ECHO.

Reserved

0

Must be 0.

Reserved

0

Must be 0.

Reserved

0

Must be 0.

Reserved

0

Must be 0.

Reserved

0

Must be 0.

8.4.2. Response

Table 13. Header
FieldValueDescription

Command

23

Command identifier for CA_PROTO_ECHO.

Reserved

0

Must be 0.

Reserved

0

Must be 0.

Reserved

0

Must be 0.

Reserved

0

Must be 0.

Reserved

0

Must be 0.

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值