CAT_TP协议-1

发布于:2024-12-08 ⋅ 阅读:(122) ⋅ 点赞:(0)

### 一、概述

**CAT_TP协议**定义了在ETSI TS 102 223基础上,用于卡应用工具包(CAT)的传输协议第二阶段描述。

**主要功能:**

* 提供UICC与远程实体之间的可靠数据传输
    * 全双工通信信道
    * 可靠交付上层数据
    * 检测并丢弃损坏和重复的PDU
    * 按序交付SDU
    * 分段和重组SDU
    * 使用UDP、IP或其他网络实现端到端可靠通信

**协议架构:**

* 基于RDP版本2
* 运行在BIP(独立承载协议)之上

**不涉及内容:**

* API的具体实现
* CAT_TP之上的安全性

### 二、 协议层

**CAT_TP层**由两个实体组成:

1. **分段管理:** 
    * 负责将过长的SDU分割成多个PDU,并在接收端进行重组。
    * 使用SEG位指示分段信息(1表示后续还有分段,0表示最后一个分段或未分段)
2. **传输管理:**
    * 负责CAT_TP连接管理、可靠通信、流控制等。

### 三、连接管理

**1. 连接类型:**

* 面向连接协议,提供全双工通信信道
* 使用源端口、目标端口和网络标识符唯一标识连接

**2. 端口:**

* 16位标识符,用于标识CAT_TP上层进程
    * 1-1023:保留端口,用于被动连接请求
    * 1024-65535:可分配端口,用于主动连接请求

**3. 连接建立:**

* **主动模式:** 
    * CAT_TP客户端发送SYN PDU进入SYN-SENT状态,等待服务器响应(SYN-ACK PDU)。
    * 客户端需要知道服务器端口,自身端口可指定或动态分配。
* **被动模式:** 
    * CAT_TP服务器进入LISTEN状态,监听连接请求。
    * 服务器需指定自身端口,可选指定客户端端口。

**4. 连接状态:**

| 状态        | 描述                                                         |
| ----------- | ------------------------------------------------------------ |
| CLOSED      | 无连接存在                                                   |
| LISTEN      | 服务器等待连接请求                                           |
| SYN-SENT    | 客户端发送SYN PDU,等待SYN-ACK PDU                          |
| SYN-RCVD    | 服务器收到SYN PDU,发送SYN-ACK PDU,等待ACK PDU             |
| OPEN        | 连接建立,双方可进行全双工通信                              |
| CLOSE-WAIT  | 等待一段时间后关闭连接                                       |

**5. 连接关闭:**

* 发起方发送RST PDU进入CLOSE-WAIT状态,等待一段时间后关闭连接。
* 接收方收到RST PDU后进入CLOSE-WAIT状态,等待一段时间后关闭连接。

**6. 半开连接和连接失效检测:**

* 通过发送NUL PDU验证连接状态。
* 无活动连接定义为:没有未确认的PDU、没有待处理PDU、并且一段时间内没有流量。

**7. 版本号管理:**

* SYN/SYN-ACK PDU中包含版本号,用于协商双方支持的协议版本。

### 四、可靠通信

**机制:**

1. **序列号:** 
    * 每个数据PDU都有一个唯一的序列号。
    * 初始序列号在连接建立时选择。
    * SYN PDU始终使用初始序列号。
    * 需要确认的PDU发送后序列号递增1。
2. **校验和:** 
    * 使用16位TCP校验和检测损坏的PDU。
    * 不使用TCP伪头部。
3. **确认:**
    * 使用累积确认和扩展确认。
    * 累积确认用于确认所有序列号小于等于指定值的PDU。
    * 扩展确认用于确认乱序接收的PDU。
4. **超时重传:**
    * 为每个SYN、NUL和数据PDU设置重传定时器。
    * 超时后重传PDU并重启定时器。
    * 达到最大重传次数后关闭连接。

### 五、流控制和窗口管理

**机制:**

* 接收方在ACK PDU中通告当前接收窗口大小(Window Size)。
* 发送方根据接收窗口大小发送PDU。
    * 窗口大小为0时停止发送数据。
    * 接收方资源可用后,通过发送NUL PDU更新窗口大小。

### 六、PDU格式

**1. CAT_TP PDU头部:**

| 字段            | 描述                     |
| --------------- | ------------------------ |
| 第一个字节      | 包含标志位和版本号       |
| 头部长度        | 头部长度(字节)         |
| 源端口          | 16位                     |
| 目标端口        | 16位                     |
| 数据长度        | 数据长度(字节)         |
| 序列号          | 16位                     |
| 确认号          | 16位                     |
| 窗口大小        | 16位                     |
| 校验和          | 16位                     |
| 可变头部区域    | 用于SYN和EACK PDU参数   |
| 保留字段        | 16位                     |

**2. PDU类型:**

| PDU类型 | 描述                           |
| ------- | ------------------------------ |
| SYN     | 建立连接,同步序列号           |
| ACK     | 确认接收                       |
| EACK    | 扩展确认,确认乱序接收         |
| RST     | 重置连接                       |
| NUL     | 探测连接状态                   |

**3. 头部标志位:**

| 标志位 | 描述                           |
| ------ | ------------------------------ |
| SYN    | 建立连接,同步序列号           |
| ACK    | 确认接收                       |
| EACK   | 扩展确认                       |
| RST    | 重置连接                       |
| NUL    | 空PDU                          |
| SEG    | 分段标志                       |

### 七、  BIP实现

**1. 数据传输:**

* 一个CAT_TP PDU对应一个BIP SDU。
* 使用SEND DATA/RECEIVE DATA命令传输PDU。

**2. 定时器:**

* 需考虑定时器精度。
* 需设置确认和重传定时器。

### 八、  其他信息

**附录A** 提供了连接建立、PDU丢失、乱序接收、长延迟路径通信等场景示例。

**附录B**  定义了CAT_TP与上层应用的接口,包括OPEN、SEND、RECEIVE、CLOSE和STATUS等操作。

**附录C**  记录了协议版本变更历史。

### 九、  结论

该文档详细描述了CAT_TP协议的核心功能、连接管理、可靠通信机制、PDU格式以及在BIP上的实现方式,为UICC与远程实体之间可靠数据传输提供了规范。

##  ETSI TS 102 127 V12.0.0 (2018-08)  定义部分笔记

### 1.  独立承载协议 (BIP)

**定义:** 

BIP是一种机制,终端设备(TE)通过该机制为通用集成电路卡(UICC)提供对终端和网络支持的数据承载者的访问。

**作用:** 

*  使UICC能够利用终端和网络支持的各种数据承载者进行通信,而无需依赖特定类型的物理连接。

### 2.  CAT_TP客户端

**定义:** 

在连接阶段发起与CAT_TP服务器建立CAT_TP链接的实体。

**位置:** 

*  位于UICC或远程实体上。

### 3.  CAT_TP实体

**定义:** 

能够打开CAT_TP链接、交换CAT_TP协议数据单元(PDU)并关闭CAT_TP链接的实体。

### 4.  CAT_TP链接

**定义:** 

CAT_TP实体之间用于交换CAT_TP PDU的逻辑连接。

### 5.  CAT_TP端口

**定义:** 

16位标识符,用于标识CAT_TP上层进程。

### 6.  CAT_TP服务器

**定义:** 

在连接阶段接收来自CAT_TP客户端的CAT_TP链接建立请求的实体。

**位置:** 

*  位于UICC或远程实体上。

### 7.  CAT_TP服务数据单元 (SDU)

**定义:** 

在OSI参考模型中,指在同级(N+1)层实体之间传输的信息单元,其身份在传输过程中保持不变,并且不被支持它的(N)层实体解释。

**说明:** 

*  在CAT_TP协议中,(N)层即CAT_TP层。

### 8.  下层

**定义:** 

在(N)层中,下层是指位于其下方的(N-1)层。

**说明:** 

*  对于CAT_TP协议,下层可能是物理层。

### 9.  物理连接

**定义:** 

由UICC和TE之间的BIP信道以及TE和远程实体之间的特定承载者链路组成。

### 10.  上层

**定义:** 

在(N)层中,上层是指位于其上方的(N+1)层。

**说明:** 

*  对于CAT_TP协议,上层可能是应用层。


**总结:**

这些定义描述了CAT_TP协议中涉及的关键实体、连接、端口以及与OSI模型的关系,为理解协议的工作原理和功能提供了基础。

## CAT_TP协议功能描述笔记

**CAT_TP协议**是一种传输协议,旨在为UICC(通用集成电路卡)与远程实体之间提供可靠的数据传输。

**主要参与者:**

* UICC
* TE(终端设备)
* 远程实体

**CAT_TP协议功能:**

1. **全双工通信通道:**
    * CAT_TP在每个传输连接的两个端口之间提供全双工通信通道,允许双向同时传输数据。

2. **可靠数据传输:**
    * CAT_TP可靠地交付所有上层数据。
    * 如果发生任何传输故障,CAT_TP会向上层报告错误。

3. **PDU损坏和重复检测:**
    * CAT_TP尝试检测并丢弃所有损坏和重复的PDU(协议数据单元),以确保数据的完整性和唯一性。

4. **按序交付SDU:**
    * CAT_TP提供SDU(服务数据单元)的按序交付。
    * 乱序交付SDU的功能有待进一步研究(FFS)。

5. **SDU分段和重组:**
    * 在发送端,CAT_TP将大型SDU分割成较小的PDU进行传输。
    * 在接收端,CAT_TP将接收到的分段PDU重新组装成原始的SDU。

**传输机制:**

* CAT_TP通过使用UDP、IP或其他网络,在UICC和远程实体之间实现端到端的可靠数据通信。
    *  这意味着CAT_TP可以在不同的网络环境下运行,并利用底层协议提供的传输服务。


**总结:**

CAT_TP协议的主要目标是为UICC与远程实体之间的数据传输提供可靠性和完整性保障。它通过全双工通信、错误检测、按序交付和分段传输等机制,确保数据能够准确无误地从发送端传递到接收端,即使在不可靠的网络环境下也能保持数据传输的可靠性。


网站公告

今日签到

点亮在社区的每一天
去签到