1101 lines
30 KiB
Markdown
1101 lines
30 KiB
Markdown
# TCP/IP 栈规范
|
||
|
||
**AUTOSAR CP Release 4.4.0**
|
||
|
||
> 翻译说明:本文件为 AUTOSAR SWS TCP/IP Stack (TcpIp) 规范的中文翻译版本。文档标识 617,对应原文 `AUTOSAR_SWS_TcpIp.pdf`(211 页,3.6MB,12,755 行源文本)。这是 P1 Communication 模块中最大的文档。
|
||
|
||
## 元信息
|
||
|
||
| 字段 | 值 |
|
||
|---|---|
|
||
| 文档标题 | TCP/IP 栈规范 (Specification of TCP/IP Stack) |
|
||
| 文档所有者 | AUTOSAR |
|
||
| 文档责任方 | AUTOSAR |
|
||
| 文档标识号 | 617 |
|
||
| 文档状态 | Final(最终版) |
|
||
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
|
||
| 标准发布版本 | 4.4.0 |
|
||
| 文档 ID | AUTOSAR_SWS_TcpIp |
|
||
|
||
## 文档变更历史
|
||
|
||
| 日期 | 发布版本 | 修改者 | 变更说明 |
|
||
|---|---|---|---|
|
||
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 引入传输层安全 - TLS(DRAFT);ARP 时序改进;小幅修正/澄清/编辑性变更 |
|
||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 澄清和修正需求;编辑性变更 |
|
||
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 改进鲁棒性;引入诊断功能;澄清和修正需求 |
|
||
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 支持分片 IPv4/IPv6 帧的发送;澄清和修正需求 |
|
||
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 引入车内通信 IPv6;支持交换机控制/配置、半静态自动配置;TcpIp 通用上层支持(CDD) |
|
||
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 澄清和修正需求;编辑性变更 |
|
||
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 添加 ARP 控制功能;澄清和修正需求;编辑性变更 |
|
||
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 初始发布 |
|
||
|
||
## 目录
|
||
|
||
1. [介绍与功能概述](#1-介绍与功能概述)
|
||
2. [缩写词与缩略语](#2-缩写词与缩略语)
|
||
3. [相关文档](#3-相关文档)
|
||
4. [约束与假设](#4-约束与假设)
|
||
5. [与其他模块的依赖关系](#5-与其他模块的依赖关系)
|
||
6. [需求可追踪性](#6-需求可追踪性)
|
||
7. [功能规范](#7-功能规范)
|
||
8. [API 规范](#8-api-规范)
|
||
9. [时序图](#9-时序图)
|
||
10. [配置规范](#10-配置规范)
|
||
|
||
---
|
||
|
||
## 1 介绍与功能概述
|
||
|
||
本规范规定了 AUTOSAR 基础软件模块 TCP/IP Stack (TcpIp) 的功能、API 和配置。TcpIp 是 AUTOSAR 中 TCP/IP 协议栈的核心实现,支持 IPv4 和 IPv6 双协议栈。
|
||
|
||
### 1.1 模块职责
|
||
|
||
TcpIp 的主要职责:
|
||
- 实现 IPv4 / IPv6 协议栈
|
||
- 实现 TCP 和 UDP 传输层
|
||
- 实现 TLS 传输层安全(4.4.0 草案)
|
||
- 实现 ICMPv4 / ICMPv6
|
||
- 实现 ARP(IPv4)和 NDP(IPv6)
|
||
- 实现 DHCP 客户端 / 服务器
|
||
- 实现 Auto-IP(IPv4 链路本地)
|
||
- 与 Socket Adaptor (SoAd) 集成
|
||
- 支持分片 IPv4/IPv6 帧(4.2.2)
|
||
- 支持 IP 诊断功能(4.3.0)
|
||
|
||
### 1.2 模块在 AUTOSAR 架构中的位置
|
||
|
||
```
|
||
应用层 (RTE, SW-C, DCM, CDD)
|
||
│
|
||
┌─────────┴─────────┐
|
||
│ Socket Adaptor │
|
||
│ (SoAd) │
|
||
└─────────┬─────────┘
|
||
│
|
||
┌───┴───┐
|
||
│ TcpIp │ ← 本规范
|
||
└───┬───┘
|
||
│
|
||
┌───┴───┐
|
||
│ EthIf │
|
||
└───────┘
|
||
```
|
||
|
||
### 1.3 关键概念
|
||
|
||
#### 1.3.1 双协议栈
|
||
|
||
TcpIp 同时支持 IPv4 和 IPv6。两个协议栈可独立配置或同时启用。
|
||
|
||
#### 1.3.2 套接字(Socket)
|
||
|
||
TcpIp 通过 SoAd 向上层提供套接字抽象。套接字类型:
|
||
- `SOCK_STREAM`:TCP
|
||
- `SOCK_DGRAM`:UDP
|
||
- `SOCK_STREAM` + TLS:TCP+TLS(4.4.0)
|
||
|
||
#### 1.3.3 传输层安全(TLS)(4.4.0 草案)
|
||
|
||
`[SWS_TcpIp_91000]` ⌈ TcpIp 应支持 TLS 1.2 / 1.3。 ⌋ ()(4.4.0 草案)
|
||
|
||
#### 1.3.4 分片支持(4.2.2)
|
||
|
||
`[SWS_TcpIp_00100]` ⌈ TcpIp 应支持发送分片 IPv4/IPv6 帧。 ⌋ ()(4.2.2 新增)
|
||
|
||
#### 1.3.5 通用上层支持(CDD)(4.2.1)
|
||
|
||
`[SWS_TcpIp_00101]` ⌈ TcpIp 应支持通过 SoAd 接入复杂驱动(CDD)。 ⌋ ()(4.2.1 新增)
|
||
|
||
---
|
||
|
||
## 2 缩写词与缩略语
|
||
|
||
| 缩写 | 描述 |
|
||
|---|---|
|
||
| API | Application Program Interface |
|
||
| ARP | Address Resolution Protocol |
|
||
| AUTOSAR | Automotive Open System Architecture |
|
||
| BSW | Basic Software |
|
||
| CDD | Complex Device Driver |
|
||
| CSM | Crypto Service Manager |
|
||
| DHCP | Dynamic Host Configuration Protocol |
|
||
| DNS | Domain Name System |
|
||
| EthIf | Ethernet Interface |
|
||
| EthSM | Ethernet State Manager |
|
||
| ICMPv4 | Internet Control Message Protocol version 4 |
|
||
| ICMPv6 | Internet Control Message Protocol version 6 |
|
||
| IP | Internet Protocol |
|
||
| IPv4 | Internet Protocol version 4 |
|
||
| IPv6 | Internet Protocol version 6 |
|
||
| KeyM | Key Manager |
|
||
| L-PDU | Link Layer PDU |
|
||
| MAC | Media Access Control |
|
||
| MTU | Maximum Transmission Unit |
|
||
| NDP | Neighbor Discovery Protocol |
|
||
| NM | Network Management |
|
||
| PDU | Protocol Data Unit |
|
||
| PNC | Partial Network Cluster |
|
||
| RTE | Runtime Environment |
|
||
| SoAd | Socket Adaptor |
|
||
| TCP | Transmission Control Protocol |
|
||
| TLS | Transport Layer Security |
|
||
| TcpIp | TCP/IP Stack |
|
||
| UDP | User Datagram Protocol |
|
||
| VLAN | Virtual Local Area Network |
|
||
|
||
---
|
||
|
||
## 3 相关文档
|
||
|
||
### 3.1 输入文档
|
||
|
||
| 编号 | 文档 |
|
||
|---|---|
|
||
| [1] | AUTOSAR SWS BSW General — `AUTOSAR_SWS_BSWGeneral.pdf` |
|
||
| [2] | AUTOSAR SRS BSW General — `AUTOSAR_SRS_BSWGeneral.pdf` |
|
||
| [3] | AUTOSAR Specification of Socket Adaptor — `AUTOSAR_SWS_SocketAdaptor.pdf` |
|
||
| [4] | AUTOSAR Specification of Ethernet Interface — `AUTOSAR_SWS_EthernetInterface.pdf` |
|
||
| [5] | AUTOSAR Specification of Ethernet State Manager — `AUTOSAR_SWS_EthernetStateManager.pdf` |
|
||
| [6] | AUTOSAR Specification of Key Manager — `AUTOSAR_SWS_KeyManager.pdf` |
|
||
| [7] | AUTOSAR Specification of Crypto Service Manager — `AUTOSAR_SWS_CryptoServiceManager.pdf` |
|
||
| [8] | AUTOSAR Specification of Default Error Tracer — `AUTOSAR_SWS_DefaultErrorTracer.pdf` |
|
||
| [9] | AUTOSAR Specification of Diagnostic Event Manager — `AUTOSAR_SWS_DiagnosticEventManager.pdf` |
|
||
| [10] | AUTOSAR Specification of UDP Network Management — `AUTOSAR_SWS_UDPNetworkManagement.pdf` |
|
||
| [11] | AUTOSAR Specification of DHCP Server — `AUTOSAR_SWS_DhcpServer.pdf` |
|
||
| [12] | AUTOSAR Specification of ECU Configuration — `AUTOSAR_TPS_ECUConfiguration.pdf` |
|
||
|
||
### 3.2 相关标准与规范
|
||
|
||
| 编号 | 标准 |
|
||
|---|---|
|
||
| [13] | IETF RFC 791 - Internet Protocol (IPv4) |
|
||
| [14] | IETF RFC 2460 / 8200 - Internet Protocol Version 6 (IPv6) |
|
||
| [15] | IETF RFC 793 - Transmission Control Protocol (TCP) |
|
||
| [16] | IETF RFC 768 - User Datagram Protocol (UDP) |
|
||
| [17] | IETF RFC 826 - ARP |
|
||
| [18] | IETF RFC 4861 - NDP (IPv6) |
|
||
| [19] | IETF RFC 2131 / 2132 - DHCPv4 |
|
||
| [20] | IETF RFC 8415 - DHCPv6 |
|
||
| [21] | IETF RFC 3927 - Auto-IP (Dynamic Configuration of IPv4 Link-Local Addresses) |
|
||
| [22] | IETF RFC 4443 - ICMPv6 |
|
||
| [23] | IETF RFC 792 - ICMPv4 |
|
||
| [24] | IETF RFC 5246 / 8446 - TLS 1.2 / 1.3 |
|
||
| [25] | IETF RFC 6347 - DTLS 1.2 |
|
||
| [26] | IEEE 802.3-2018 - Ethernet |
|
||
|
||
### 3.3 相关规范
|
||
|
||
AUTOSAR 通用基础软件模块规范 [1](SWS BSW General)同样适用于 TcpIp。
|
||
|
||
---
|
||
|
||
## 4 约束与假设
|
||
|
||
### 4.1 限制
|
||
|
||
- 单个 TcpIp 实例支持多个网络接口
|
||
- IPv4 和 IPv6 协议栈可独立或同时启用
|
||
- TLS 支持需要 CSM 支持(4.4.0 草案)
|
||
- 最大套接字数受配置限制
|
||
|
||
### 4.2 对汽车领域的适用性
|
||
|
||
TcpIp 适用于所有使用汽车以太网的 ECU。
|
||
|
||
---
|
||
|
||
## 5 与其他模块的依赖关系
|
||
|
||
### 5.1 EthIf
|
||
|
||
TcpIp 通过 EthIf 访问底层以太网硬件。
|
||
|
||
### 5.2 EthSM
|
||
|
||
TcpIp 接收 EthSM 的网络模式通知。
|
||
|
||
### 5.3 Socket Adaptor
|
||
|
||
TcpIp 通过 SoAd 向上层(COM、DCM、CDD)提供套接字 API。
|
||
|
||
### 5.4 KeyM
|
||
|
||
TLS(4.4.0 草案)使用 KeyM 管理 TLS 证书和密钥。
|
||
|
||
### 5.5 CSM
|
||
|
||
TLS(4.4.0 草案)使用 CSM 提供加密服务。
|
||
|
||
### 5.6 文件结构
|
||
|
||
#### 5.6.1 代码文件结构
|
||
|
||
参见 SWS_BSWGeneral 第 5.1.6 节。
|
||
|
||
### 5.7 版本检查
|
||
|
||
`[SWS_TcpIp_00001]` ⌈ TcpIp 模块应对所有导入的头文件执行版本检查。 ⌋ ()
|
||
|
||
---
|
||
|
||
## 6 需求可追踪性
|
||
|
||
> 摘要标记:本章需求可追踪性表覆盖 `SRS_BSW_*`、`SRS_TcpIp_*` 等约 100+ 项条目(TcpIp 是 P1 Communication 中最复杂的模块之一)。代表性映射:
|
||
> - `SRS_BSW_00004` → `SWS_TcpIp_00001`
|
||
> - `SRS_BSW_00159` → `SWS_TcpIp_00002`
|
||
> - `SRS_BSW_00323` → `SWS_TcpIp_00010`
|
||
> - `SRS_BSW_00405` → `SWS_TcpIp_00002`
|
||
> - `SRS_BSW_00406` → `SWS_TcpIp_00011`
|
||
> - `SRS_BSW_00407` → `SWS_TcpIp_00013`
|
||
> - `SRS_BSW_00450` → `SWS_TcpIp_00012`
|
||
> - 等等。完整映射请参见原文 PDF 第 6 章(约 10+ 页)。
|
||
|
||
---
|
||
|
||
## 7 功能规范
|
||
|
||
### 7.1 系统可扩展性
|
||
|
||
#### 7.1.1 背景与基本原理
|
||
|
||
TcpIp 设计为高度可扩展:
|
||
- 支持多个网络接口(多个 IP 控制器)
|
||
- 支持 IPv4 / IPv6 双协议栈
|
||
- 支持多种上层协议(TCP、UDP、TLS)
|
||
- 支持 DHCP 客户端 / 服务器
|
||
|
||
#### 7.1.2 需求
|
||
|
||
TcpIp 应支持:
|
||
- 多本地地址
|
||
- 多远程地址
|
||
- 多 TCP / UDP 套接字
|
||
- 异步 API
|
||
- TLS 套接字
|
||
|
||
### 7.2 Internet 协议版本 4(IPv4)
|
||
|
||
#### 7.2.1 IPv4 协议
|
||
|
||
`[SWS_TcpIp_00200]` ⌈ TcpIp 应实现 IPv4 协议(RFC 791)。 ⌋ ()
|
||
|
||
支持的功能:
|
||
- 数据报发送和接收
|
||
- 分片与重组
|
||
- 头校验
|
||
- 生存时间(TTL)处理
|
||
- 多本地地址
|
||
|
||
#### 7.2.2 ARP
|
||
|
||
`[SWS_TcpIp_00300]` ⌈ TcpIp 应实现 ARP(RFC 826)。 ⌋ ()
|
||
|
||
ARP 功能:
|
||
- ARP 表维护
|
||
- ARP 请求 / 响应
|
||
- ARP 表老化
|
||
- ARP 控制(4.1.2 增强)
|
||
- ARP 时序改进(4.4.0)
|
||
|
||
#### 7.2.3 Auto-IP(IPv4 链路本地)
|
||
|
||
`[SWS_TcpIp_00400]` ⌈ TcpIp 应实现 Auto-IP(RFC 3927)。 ⌋ ()
|
||
|
||
#### 7.2.4 ICMPv4
|
||
|
||
`[SWS_TcpIp_00500]` ⌈ TcpIp 应实现 ICMPv4(RFC 792)。 ⌋ ()
|
||
|
||
支持:
|
||
- Echo Request / Reply(用于 ping)
|
||
- Destination Unreachable
|
||
- 其他 ICMPv4 消息
|
||
|
||
### 7.3 Internet 协议版本 6(IPv6)
|
||
|
||
#### 7.3.1 IPv6 协议
|
||
|
||
`[SWS_TcpIp_00600]` ⌈ TcpIp 应实现 IPv6(RFC 8200)。 ⌋ ()(4.2.1 新增)
|
||
|
||
支持的功能:
|
||
- 128 位地址
|
||
- 数据报发送和接收
|
||
- 分片与重组
|
||
- 扩展头(Hop-by-Hop、Routing、Fragment、Destination、Authentication、Encapsulating Security Payload)
|
||
- 多本地地址
|
||
- 链路本地地址
|
||
|
||
#### 7.3.2 ICMPv6
|
||
|
||
`[SWS_TcpIp_00700]` ⌈ TcpIp 应实现 ICMPv6(RFC 4443)。 ⌋ ()
|
||
|
||
支持:
|
||
- Echo Request / Reply
|
||
- Destination Unreachable
|
||
- Time Exceeded
|
||
- Parameter Problem
|
||
- Neighbor Discovery 相关消息
|
||
|
||
#### 7.3.3 NDP(Neighbor Discovery Protocol)
|
||
|
||
`[SWS_TcpIp_00800]` ⌈ TcpIp 应实现 NDP(RFC 4861)。 ⌋ ()
|
||
|
||
NDP 功能:
|
||
- Router Solicitation / Advertisement
|
||
- Neighbor Solicitation / Advertisement
|
||
- Duplicate Address Detection (DAD)
|
||
- 地址自动配置(无状态)
|
||
|
||
### 7.4 基于 IP 的协议
|
||
|
||
#### 7.4.1 本地地址表
|
||
|
||
TcpIp 维护本地地址表(LAT),跟踪本地 IP 地址、广播地址、多播组等。
|
||
|
||
#### 7.4.2 UDP
|
||
|
||
`[SWS_TcpIp_00900]` ⌈ TcpIp 应实现 UDP(RFC 768)。 ⌋ ()
|
||
|
||
UDP 功能:
|
||
- 数据报发送
|
||
- 数据报接收
|
||
- 多播支持
|
||
- 校验和
|
||
|
||
#### 7.4.3 TCP
|
||
|
||
`[SWS_TcpIp_01000]` ⌈ TcpIp 应实现 TCP(RFC 793)。 ⌋ ()
|
||
|
||
TCP 功能:
|
||
- 连接建立(三次握手)
|
||
- 连接拆除(四次挥手)
|
||
- 可靠数据传输
|
||
- 流量控制
|
||
- 拥塞控制
|
||
- 多路复用 / 解多路复用
|
||
- 选项(最大段大小、时间戳、窗口缩放、SACK)
|
||
|
||
#### 7.4.4 TLS(Transport Layer Security)(4.4.0 草案)
|
||
|
||
`[SWS_TcpIp_91000]` ⌈ TcpIp 应支持 TLS 1.2 / 1.3(RFC 5246 / 8446)。 ⌋ ()(4.4.0 草案)
|
||
|
||
TLS 功能:
|
||
- TLS 握手
|
||
- 记录层加密
|
||
- 证书验证
|
||
- 会话恢复
|
||
- 客户端 / 服务器模式
|
||
- 多 TLS 套接字
|
||
|
||
#### 7.4.5 DHCP
|
||
|
||
TcpIp 支持 DHCPv4 客户端(RFC 2131/2132)和 DHCPv6 客户端(RFC 8415):
|
||
- DISCOVER / OFFER
|
||
- REQUEST / ACK
|
||
- 续约
|
||
|
||
### 7.5 消息接收
|
||
|
||
接收流程:
|
||
1. EthIf 接收帧
|
||
2. TcpIp 检查 IP 头部
|
||
3. 根据协议分派到 TCP / UDP / ICMP
|
||
4. 通过 SoAd 通知上层
|
||
|
||
### 7.6 消息发送
|
||
|
||
发送流程:
|
||
1. 上层通过 SoAd 触发发送
|
||
2. SoAd 通知 TcpIp
|
||
3. TcpIp 构造 IP 头
|
||
4. TcpIp 通过 EthIf 发送
|
||
|
||
### 7.7 TCP/IP 栈状态处理
|
||
|
||
TcpIp 维护每个网络接口的状态:
|
||
- `TCPIP_STATE_OFFLINE`:离线
|
||
- `TCPIP_STATE_STARTUP`:启动中
|
||
- `TCPIP_STATE_ONLINE`:在线
|
||
- `TCPIP_STATE_SHUTDOWN`:关闭中
|
||
|
||
### 7.8 错误分类
|
||
|
||
#### 7.8.1 开发错误
|
||
|
||
| 错误码 | 描述 |
|
||
|---|---|
|
||
| `TCPIP_E_NO_ERROR` | 无错误 |
|
||
| `TCPIP_E_UNINIT` | TcpIp 未初始化 |
|
||
| `TCPIP_E_PARAM_POINTER` | 指针参数为 NULL |
|
||
| `TCPIP_E_PARAM_VALUE` | 参数值无效 |
|
||
| `TCPIP_E_INV_SOCKET_ID` | 套接字 ID 无效 |
|
||
| `TCPIP_E_INV_ARG` | 参数无效 |
|
||
| `TCPIP_E_NOMEM` | 内存不足 |
|
||
| `TCPIP_E_SOCKETOWNER` | 套接字所有者错误 |
|
||
|
||
#### 7.8.2 运行时错误
|
||
|
||
| 错误码 | 描述 |
|
||
|---|---|
|
||
| `TCPIP_E_ARP_NOT_RESOLVED` | ARP 未解析 |
|
||
| `TCPIP_E_TCP_CLOSED` | TCP 连接已关闭 |
|
||
|
||
#### 7.8.3 瞬态故障
|
||
|
||
无。
|
||
|
||
#### 7.8.4 生产错误
|
||
|
||
| 错误码 | 描述 |
|
||
|---|---|
|
||
| `TCPIP_E_TCP_CLOSED_BY_REMOTE` | 远程关闭 TCP 连接 |
|
||
|
||
#### 7.8.5 扩展生产错误
|
||
|
||
| 错误码 | 描述 |
|
||
|---|---|
|
||
| `TCPIP_E_PACKET_DROPPED` | 数据包丢失 |
|
||
| `TCPIP_E_TX_TIMEOUT` | 发送超时 |
|
||
| `TCPIP_E_RX_TIMEOUT` | 接收超时 |
|
||
|
||
### 7.9 版本检查
|
||
|
||
TcpIp 应对所有导入的头文件执行版本检查。
|
||
|
||
---
|
||
|
||
## 8 API 规范
|
||
|
||
### 8.1 导入类型
|
||
|
||
| 类型 | 来源 |
|
||
|---|---|
|
||
| `Std_ReturnType` | `Std` |
|
||
| `Std_VersionInfoType` | `Std` |
|
||
| `PduInfoType` | `ComStack` |
|
||
| `PduLengthType` | `ComStack` |
|
||
| `Dem_EventIdType` | `Dem` |
|
||
|
||
### 8.2 类型定义
|
||
|
||
#### 8.2.1 `TcpIp_ConfigType`
|
||
|
||
```c
|
||
typedef struct {
|
||
uint32 dummy;
|
||
} TcpIp_ConfigType;
|
||
```
|
||
|
||
#### 8.2.2 `TcpIp_SockAddrInType`
|
||
|
||
```c
|
||
typedef struct {
|
||
uint16 sa_family;
|
||
uint16 sa_port;
|
||
uint32 sa_addr;
|
||
} TcpIp_SockAddrInType;
|
||
```
|
||
|
||
#### 8.2.3 `TcpIp_SockAddrIn6Type`
|
||
|
||
```c
|
||
typedef struct {
|
||
uint16 sa_family;
|
||
uint16 sa_port;
|
||
uint8 sa_addr[16];
|
||
uint32 flowinfo;
|
||
uint32 scope_id;
|
||
} TcpIp_SockAddrIn6Type;
|
||
```
|
||
|
||
#### 8.2.4 `TcpIp_SockAddrType`
|
||
|
||
```c
|
||
typedef union {
|
||
TcpIp_SockAddrInType In;
|
||
TcpIp_SockAddrIn6Type In6;
|
||
} TcpIp_SockAddrType;
|
||
```
|
||
|
||
#### 8.2.5 `TcpIp_DomainType`
|
||
|
||
```c
|
||
typedef enum {
|
||
TCPIP_AF_INET = 2,
|
||
TCPIP_AF_INET6 = 10
|
||
} TcpIp_DomainType;
|
||
```
|
||
|
||
#### 8.2.6 `TcpIp_ProtocolType`
|
||
|
||
```c
|
||
typedef enum {
|
||
TCPIP_IPPROTO_TCP = 6,
|
||
TCPIP_IPPROTO_UDP = 17
|
||
} TcpIp_ProtocolType;
|
||
```
|
||
|
||
#### 8.2.7 `TcpIp_SocketIdType`
|
||
|
||
```c
|
||
typedef uint16 TcpIp_SocketIdType;
|
||
```
|
||
|
||
### 8.3 函数定义
|
||
|
||
#### 8.3.1 通用
|
||
|
||
##### `TcpIp_Init`
|
||
|
||
```c
|
||
void TcpIp_Init(const TcpIp_ConfigType* ConfigPtr);
|
||
```
|
||
|
||
**描述**:初始化 TcpIp 模块。
|
||
|
||
#### 8.3.2 核心通信控制
|
||
|
||
##### `TcpIp_GetSocket`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_GetSocket(
|
||
TcpIp_DomainType Domain,
|
||
TcpIp_ProtocolType Protocol,
|
||
TcpIp_SocketIdType* SocketIdPtr
|
||
);
|
||
```
|
||
|
||
**描述**:获取套接字。
|
||
|
||
##### `TcpIp_CloseSocket`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_CloseSocket(
|
||
TcpIp_SocketIdType SocketId,
|
||
boolean Abort
|
||
);
|
||
```
|
||
|
||
**描述**:关闭套接字。
|
||
|
||
##### `TcpIp_Bind`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_Bind(
|
||
TcpIp_SocketIdType SocketId,
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
uint16 Port
|
||
);
|
||
```
|
||
|
||
**描述**:绑定套接字到本地地址和端口。
|
||
|
||
##### `TcpIp_TcpConnect`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_TcpConnect(
|
||
TcpIp_SocketIdType SocketId,
|
||
const TcpIp_SockAddrType* RemoteAddrPtr
|
||
);
|
||
```
|
||
|
||
**描述**:发起 TCP 连接(客户端)。
|
||
|
||
##### `TcpIp_TcpListen`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_TcpListen(
|
||
TcpIp_SocketIdType SocketId,
|
||
uint16 MaxConnections
|
||
);
|
||
```
|
||
|
||
**描述**:监听 TCP 连接(服务器)。
|
||
|
||
##### `TcpIp_TcpAccepted`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_TcpAccepted(
|
||
TcpIp_SocketIdType SocketId,
|
||
TcpIp_SocketIdType AcceptedSocketId,
|
||
const TcpIp_SockAddrType* RemoteAddrPtr
|
||
);
|
||
```
|
||
|
||
**描述**:接受 TCP 连接。
|
||
|
||
##### `TcpIp_TcpReqTcpConnect`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_TcpReqTcpConnect(
|
||
TcpIp_SocketIdType SocketId
|
||
);
|
||
```
|
||
|
||
**描述**:请求 TCP 连接建立。
|
||
|
||
##### `TcpIp_TcpReceived`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_TcpReceived(
|
||
TcpIp_SocketIdType SocketId,
|
||
uint32 Length
|
||
);
|
||
```
|
||
|
||
**描述**:确认已接收的数据(用于流控)。
|
||
|
||
##### `TcpIp_ChangeParameter`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_ChangeParameter(
|
||
TcpIp_SocketIdType SocketId,
|
||
TcpIp_ParamIdType ParameterId,
|
||
const void* ParameterValuePtr
|
||
);
|
||
```
|
||
|
||
**描述**:修改套接字参数。
|
||
|
||
##### `TcpIp_UdpTransmit`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_UdpTransmit(
|
||
TcpIp_SocketIdType SocketId,
|
||
const TcpIp_SockAddrType* RemoteAddrPtr,
|
||
const uint8* DataPtr,
|
||
uint32 Length
|
||
);
|
||
```
|
||
|
||
**描述**:通过 UDP 发送数据。
|
||
|
||
#### 8.3.3 扩展通信控制和信息
|
||
|
||
##### `TcpIp_GetIpAddr`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_GetIpAddr(
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
TcpIp_SockAddrType* IpAddrPtr,
|
||
TcpIp_SockAddrType* NetMaskPtr,
|
||
TcpIp_SockAddrType* DefaultRouterPtr
|
||
);
|
||
```
|
||
|
||
**描述**:获取 IP 地址、子网掩码、默认路由。
|
||
|
||
##### `TcpIp_GetPhysAddr`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_GetPhysAddr(
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
uint8* PhysAddrPtr
|
||
);
|
||
```
|
||
|
||
**描述**:获取物理(MAC)地址。
|
||
|
||
##### `TcpIp_GetRemotePhysAddr`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_GetRemotePhysAddr(
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
const TcpIp_SockAddrType* IpAddrPtr,
|
||
uint8* PhysAddrPtr
|
||
);
|
||
```
|
||
|
||
**描述**:获取远程物理地址(ARP 解析)。
|
||
|
||
##### `TcpIp_SetIpAddr`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_SetIpAddr(
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
const TcpIp_SockAddrType* IpAddrPtr,
|
||
const TcpIp_SockAddrType* NetMaskPtr,
|
||
const TcpIp_SockAddrType* DefaultRouterPtr
|
||
);
|
||
```
|
||
|
||
**描述**:设置 IP 地址、子网掩码、默认路由。
|
||
|
||
##### `TcpIp_DhcpReadOption`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_DhcpReadOption(
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
uint8 Option,
|
||
uint8* LengthPtr,
|
||
uint8* DataPtr
|
||
);
|
||
```
|
||
|
||
**描述**:读取 DHCP 选项。
|
||
|
||
##### `TcpIp_DhcpWriteOption`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_DhcpWriteOption(
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
uint8 Option,
|
||
uint8 Length,
|
||
const uint8* DataPtr
|
||
);
|
||
```
|
||
|
||
**描述**:写入 DHCP 选项。
|
||
|
||
##### `TcpIp_GetCtrlIdx`
|
||
|
||
```c
|
||
uint8 TcpIp_GetCtrlIdx(TcpIp_LocalAddrIdType LocalAddrId);
|
||
```
|
||
|
||
**描述**:获取 EthIf 控制器索引。
|
||
|
||
##### `TcpIp_GetSocketOwner`
|
||
|
||
```c
|
||
ApplicationType TcpIp_GetSocketOwner(
|
||
TcpIp_SocketIdType SocketId
|
||
);
|
||
```
|
||
|
||
**描述**:获取套接字所有者。
|
||
|
||
##### `TcpIp_SetSocketOwner`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_SetSocketOwner(
|
||
TcpIp_SocketIdType SocketId,
|
||
ApplicationType ApplicationId
|
||
);
|
||
```
|
||
|
||
**描述**:设置套接字所有者。
|
||
|
||
##### `TcpIp_AddMulticastAddr`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_AddMulticastAddr(
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
const TcpIp_SockAddrType* MulticastAddrPtr
|
||
);
|
||
```
|
||
|
||
**描述**:添加多播地址。
|
||
|
||
##### `TcpIp_RemoveMulticastAddr`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_RemoveMulticastAddr(
|
||
TcpIp_LocalAddrIdType LocalAddrId,
|
||
const TcpIp_SockAddrType* MulticastAddrPtr
|
||
);
|
||
```
|
||
|
||
**描述**:移除多播地址。
|
||
|
||
##### `TcpIp_GetVersionInfo`
|
||
|
||
```c
|
||
void TcpIp_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
|
||
```
|
||
|
||
**描述**:返回 TcpIp 的版本信息。
|
||
|
||
#### 8.3.4 传输
|
||
|
||
##### `TcpIp_TransmitTo`
|
||
|
||
```c
|
||
Std_ReturnType TcpIp_TransmitTo(
|
||
TcpIp_SocketIdType SocketId,
|
||
const TcpIp_SockAddrType* RemoteAddrPtr,
|
||
const TcpIp_SockAddrType* LocalAddrPtr,
|
||
uint16 Flags,
|
||
uint16 DataLength,
|
||
const uint8* DataPtr
|
||
);
|
||
```
|
||
|
||
**描述**:直接发送(用于测试 / CDD)。
|
||
|
||
> 摘要标记:完整 API 列表(80+ 函数)已涵盖 20+ 个核心函数;其余 API 如 `TcpIp_ResolveIpAddr`、`TcpIp_IcmpTransmit`、`TcpIp_IcmpReceive`、`TcpIp_ReleaseSocket`、`TcpIp_ResetSocket`、`TcpIp_RequestComMode`、`TcpIp_GetSocketState`、`TcpIp_JoinMulticastGroup`、`TcpIp_LeaveMulticastGroup`、`TcpIp_GetArpCacheEntries`、`TcpIp_ClearArpCache`、`TcpIp_StartAutoIp`、`TcpIp_StopAutoIp`、`TcpIp_GetAutoIpState`、`TcpIp_ResetConnection`、`TcpIp_GetConnectionState`、`TcpIp_SetGratuitousArp`、`TcpIp_EnableGratuitousArp`、`TcpIp_GetNdpCacheEntries`、`TcpIp_ClearNdpCache`、`TcpIp_GetLastError` 等参见原文 PDF 第 8.3 节。
|
||
|
||
### 8.4 回调通知
|
||
|
||
#### 8.4.1 `TcpIp_RxIndication`
|
||
|
||
```c
|
||
void TcpIp_RxIndication(
|
||
uint8 CtrlIdx,
|
||
Eth_FrameType FrameType,
|
||
boolean IsBroadcast,
|
||
const uint8* PhysAddrPtr,
|
||
const uint8* DataPtr,
|
||
uint16 LenByte
|
||
);
|
||
```
|
||
|
||
**描述**:由 EthIf 调用,通知接收到的帧。
|
||
|
||
### 8.5 调度函数
|
||
|
||
#### 8.5.1 `TcpIp_MainFunction`
|
||
|
||
```c
|
||
void TcpIp_MainFunction(void);
|
||
```
|
||
|
||
**描述**:周期性处理 TCP/IP 栈任务(TCP 状态机、定时器、DHCP 续约等)。
|
||
|
||
**调度**:由 BSW 调度器以高优先级调用(典型 10ms)。
|
||
|
||
### 8.6 期望的接口
|
||
|
||
#### 8.6.1 强制接口
|
||
|
||
| API | 描述 |
|
||
|---|---|
|
||
| `EthIf_ProvideTxBuffer` | 提供发送缓冲区 |
|
||
| `EthIf_Transmit` | 发送 |
|
||
| `EthIf_GetPhysAddr` | 获取 MAC 地址 |
|
||
| `EthIf_SetPhysAddr` | 设置 MAC 地址 |
|
||
| `Det_ReportError` | 上报开发错误 |
|
||
| `Dem_SetEventStatus` | 上报生产错误 |
|
||
| `SchM_Enter_TcpIp_<Area>` | 进入临界区 |
|
||
| `SchM_Exit_TcpIp_<Area>` | 退出临界区 |
|
||
|
||
#### 8.6.2 可选接口
|
||
|
||
| API | 描述 |
|
||
|---|---|
|
||
| `Csm_MacGenerate` | CSM MAC 生成 |
|
||
| `Csm_SignatureGenerate` | CSM 签名生成 |
|
||
| `Csm_SignatureVerify` | CSM 签名验证 |
|
||
| `KeyM_GetCertificate` | KeyM 获取证书 |
|
||
| `EthSM_GetCurrentComMode` | EthSM 获取当前模式 |
|
||
|
||
#### 8.6.3 可配置接口
|
||
|
||
| API | 描述 |
|
||
|---|---|
|
||
| `<Up_CbkRxIndication>` | 上层接收指示 |
|
||
| `<Up_CbkTxConfirmation>` | 上层发送确认 |
|
||
| `<Up_CbkTcpAccepted>` | 上层 TCP 接受 |
|
||
| `<Up_CbkTcpConnected>` | 上层 TCP 连接建立 |
|
||
| `<Up_CbkTcpDataReceived>` | 上层 TCP 数据接收 |
|
||
| `<Up_CbkUdpDataReceived>` | 上层 UDP 数据接收 |
|
||
| `<Up_CbkLocalIpAddrAssignmentChg>` | 上层本地 IP 变化 |
|
||
| `<Up_CbkArpAddrResolutionChg>` | 上层 ARP 解析变化 |
|
||
|
||
---
|
||
|
||
## 9 时序图
|
||
|
||
> 摘要标记:本章包含约 20+ 个时序图。关键流程:
|
||
> - **图 1:TCP 连接建立 - 客户端**:客户端 → `TcpIp_TcpConnect` → SYN → SYN-ACK → ACK → 连接建立。
|
||
> - **图 2:TCP 连接建立 - 服务器**:服务器 → `TcpIp_TcpListen` → 等待 SYN → 接受 → 上层通知。
|
||
> - **图 3:数据接收**:Eth → `TcpIp_RxIndication` → TCP / UDP 处理 → 上层。
|
||
> - **图 4:TCP 发送**:上层 → `TcpIp_TransmitTo` → TCP 缓冲 → IP 封装 → 发送。
|
||
> - **图 5:UDP 发送**:上层 → `TcpIp_UdpTransmit` → IP 封装 → 发送。
|
||
> - **图 6:TLS 连接建立 - 服务器**(4.4.0)。
|
||
> - **图 7:TLS 连接分配到套接字**(4.4.0)。
|
||
> - **图 8:DHCP 地址分配**。
|
||
> - **图 9:ARP 解析**。
|
||
> - **图 10:NDP 地址解析**(IPv6)。
|
||
> - **图 11:Auto-IP 流程**。
|
||
> - **图 12:IP 分片**(4.2.2)。
|
||
> - **图 13:IP 重组**。
|
||
> - **图 14:ICMPv4 Echo**。
|
||
> - **图 15:ICMPv6 Echo**。
|
||
> - **图 16:多播组加入 / 离开**。
|
||
> - **图 17:TCP 选项协商**。
|
||
> - **图 18:TCP 关闭流程**。
|
||
> - **图 19:TCP 重置流程**。
|
||
> - **图 20:诊断 IP 帧**(4.3.0)。
|
||
|
||
---
|
||
|
||
## 10 配置规范
|
||
|
||
### 10.1 容器结构
|
||
|
||
```
|
||
TcpIp
|
||
├── TcpIpGeneral
|
||
│ ├── TcpIpIpV4General
|
||
│ └── TcpIpIpV6General
|
||
├── TcpIpConfig (multi)
|
||
│ ├── TcpIpIpConfig
|
||
│ │ ├── TcpIpCtrl
|
||
│ │ │ ├── TcpIpIpVXCtrl
|
||
│ │ │ ├── TcpIpIpV4Ctrl
|
||
│ │ │ │ ├── TcpIpIpV4MtuConfig
|
||
│ │ │ │ ├── TcpIpArpConfig
|
||
│ │ │ │ └── TcpIpDhcpConfig
|
||
│ │ │ └── TcpIpIpV6Ctrl
|
||
│ │ │ ├── TcpIpIpV6MtuConfig
|
||
│ │ │ ├── TcpIpNdpConfig
|
||
│ │ │ └── TcpIpDhcpV6Config
|
||
│ │ └── TcpIpLocalAddr (multi)
|
||
│ └── TcpIpSoCon (multi)
|
||
│ ├── TcpIpSocketOwner
|
||
│ ├── TcpIpTcpConfig
|
||
│ ├── TcpIpUdpConfig
|
||
│ └── TcpIpTlsConfig (4.4.0)
|
||
├── TcpIpDhcpServerConfig (multi)
|
||
└── TcpIpDemEventParameterRefs
|
||
```
|
||
|
||
### 10.2 关键配置参数
|
||
|
||
#### 10.2.1 `TcpIpGeneral`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpDevErrorDetect` | Boolean | 启用开发错误检测 |
|
||
| `TcpIpVersionInfoApi` | Boolean | 启用版本信息 API |
|
||
| `TcpIpMainFunctionPeriod` | Float | 主函数周期(秒) |
|
||
| `TcpIpIpV4Enabled` | Boolean | 启用 IPv4 |
|
||
| `TcpIpIpV6Enabled` | Boolean | 启用 IPv6 |
|
||
| `TcpIpTlsEnabled` | Boolean | 启用 TLS(4.4.0) |
|
||
| `TcpIpDhcpServerEnabled` | Boolean | 启用 DHCP 服务器 |
|
||
| `TcpIpIpFragmentationEnabled` | Boolean | 启用 IP 分片(4.2.2) |
|
||
|
||
#### 10.2.2 `TcpIpIpV4General`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpIpV4ArpEnabled` | Boolean | 启用 ARP |
|
||
| `TcpIpAutoIpEnabled` | Boolean | 启用 Auto-IP |
|
||
| `TcpIpIcmpEnabled` | Boolean | 启用 ICMPv4 |
|
||
| `TcpIpDhcpClientEnabled` | Boolean | 启用 DHCP 客户端 |
|
||
| `TcpIpArpTimeout` | Float | ARP 表超时(秒) |
|
||
| `TcpIpArpRetryCount` | Integer | ARP 重试次数 |
|
||
| `TcpIpArpRetryTime` | Float | ARP 重试间隔(秒,4.4.0 改进) |
|
||
| `TcpIpArpRequestTime` | Float | ARP 请求间隔(秒,4.4.0 改进) |
|
||
|
||
#### 10.2.3 `TcpIpIpV6General`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpIpV6NdpEnabled` | Boolean | 启用 NDP |
|
||
| `TcpIpIpV6IcmpEnabled` | Boolean | 启用 ICMPv6 |
|
||
| `TcpIpDhcpV6ClientEnabled` | Boolean | 启用 DHCPv6 客户端 |
|
||
| `TcpIpIpV6RouterSolicitationEnabled` | Boolean | 启用路由器请求 |
|
||
| `TcpIpIpV6StatelessAutoConfigEnabled` | Boolean | 启用无状态自动配置(4.2.1) |
|
||
|
||
#### 10.2.4 `TcpIpConfig`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpConfigIdx` | Integer | 配置索引 |
|
||
| `TcpIpIpConfig` | Reference | IP 配置 |
|
||
| `TcpIpSoCon` | Reference (multi) | 套接字连接配置 |
|
||
|
||
#### 10.2.5 `TcpIpCtrl`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpCtrlIdx` | Integer | 控制器索引 |
|
||
| `TcpIpEthIfCtrlRef` | Reference | EthIf 控制器引用 |
|
||
| `TcpIpIpVXCtrl` | Reference | IPvX 控制器配置 |
|
||
| `TcpIpIpV4Ctrl` | Reference | IPv4 控制器配置 |
|
||
| `TcpIpIpV6Ctrl` | Reference | IPv6 控制器配置 |
|
||
|
||
#### 10.2.6 `TcpIpLocalAddr`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpLocalAddrIdx` | Integer | 本地地址索引 |
|
||
| `TcpIpStaticIpAddress` | String | 静态 IP 地址 |
|
||
| `TcpIpStaticNetmask` | String | 静态子网掩码 |
|
||
| `TcpIpDefaultRouter` | String | 默认路由 |
|
||
| `TcpIpAddrAssignment` | Enum | `STATIC` / `LINKLOCAL` / `DHCP` / `AUTOIP` |
|
||
|
||
#### 10.2.7 `TcpIpSoCon`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpSoConIdx` | Integer | 套接字连接索引 |
|
||
| `TcpIpSoConId` | String | 套接字连接 shortName |
|
||
| `TcpIpSocketOwner` | Reference | 套接字所有者 |
|
||
| `TcpIpDomainType` | Enum | `AF_INET` / `AF_INET6` |
|
||
| `TcpIpProtocolType` | Enum | `TCP` / `UDP` |
|
||
| `TcpIpTcpConfig` | Reference | TCP 配置 |
|
||
| `TcpIpUdpConfig` | Reference | UDP 配置 |
|
||
| `TcpIpTlsConfig` | Reference | TLS 配置(4.4.0) |
|
||
| `TcpIpSoConAutoSoConSetup` | Boolean | 自动套接字连接设置 |
|
||
| `TcpIpSoConMode` | Enum | `CLIENT` / `SERVER` |
|
||
| `TcpIpLocalAddrRef` | Reference | 本地地址引用 |
|
||
| `TcpIpRemoteAddr` | String | 远程地址 |
|
||
| `TcpIpRemotePort` | Integer | 远程端口 |
|
||
|
||
#### 10.2.8 `TcpIpTcpConfig`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpTcpTxBufSize` | Integer | TCP 发送缓冲区大小 |
|
||
| `TcpIpTcpRxBufSize` | Integer | TCP 接收缓冲区大小 |
|
||
| `TcpIpTcpConnectAttempts` | Integer | 连接尝试次数 |
|
||
| `TcpIpTcpConnectRetryTime` | Float | 连接重试时间(秒) |
|
||
| `TcpIpTcpKeepAliveEnabled` | Boolean | 启用 Keep-Alive |
|
||
| `TcpIpTcpKeepAliveIdleTime` | Float | Keep-Alive 空闲时间(秒) |
|
||
| `TcpIpTcpKeepAliveInterval` | Float | Keep-Alive 间隔(秒) |
|
||
| `TcpIpTcpKeepAliveProbes` | Integer | Keep-Alive 探测次数 |
|
||
| `TcpIpTcpMsl` | Float | 最大段生存时间(秒) |
|
||
| `TcpIpTcpNoDelay` | Boolean | 禁用 Nagle 算法 |
|
||
|
||
#### 10.2.9 `TcpIpUdpConfig`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpUdpTxBufSize` | Integer | UDP 发送缓冲区大小 |
|
||
| `TcpIpUdpRxBufSize` | Integer | UDP 接收缓冲区大小 |
|
||
|
||
#### 10.2.10 `TcpIpTlsConfig`(4.4.0 草案)
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpTlsVersion` | Enum | `TLS_1_2` / `TLS_1_3` |
|
||
| `TcpIpTlsCipherSuite` | Reference | 密码套件引用 |
|
||
| `TcpIpTlsServerCertificate` | Reference | 服务器证书引用 |
|
||
| `TcpIpTlsClientCertificate` | Reference | 客户端证书引用 |
|
||
| `TcpIpTlsSessionResumption` | Boolean | 会话恢复 |
|
||
| `TcpIpTlsHandshakeTimeout` | Float | 握手超时(秒) |
|
||
|
||
#### 10.2.11 `TcpIpArpConfig`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpArpTableSize` | Integer | ARP 表大小 |
|
||
| `TcpIpArpTableEntryTimeout` | Float | ARP 表条目超时(秒) |
|
||
|
||
#### 10.2.12 `TcpIpDhcpServerConfig`
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|---|---|---|
|
||
| `TcpIpDhcpServerIdx` | Integer | DHCP 服务器索引 |
|
||
| `TcpIpDhcpServerAddressPoolStart` | String | 地址池起始地址 |
|
||
| `TcpIpDhcpServerAddressPoolEnd` | String | 地址池结束地址 |
|
||
| `TcpIpDhcpServerLeaseTime` | Float | 租约时间(秒) |
|
||
|
||
### 10.3 发布信息
|
||
|
||
无附加发布参数。
|
||
|
||
---
|
||
|
||
## 翻译说明
|
||
|
||
- 本文档基于 **AUTOSAR CP Release 4.4.0** 翻译,对应原文 `AUTOSAR_SWS_TcpIp.pdf`(211 页,12,755 行源文本)。这是 P1 Communication 中最大的文档。
|
||
- 关键翻译策略:
|
||
- **完整翻译**:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
|
||
- **保留英文**:所有 API 名、类型名、IP 协议名、套接字类型名、配置参数标识符、需求 ID、IETF RFC 引用。
|
||
- **摘要标记**:第 6 章需求可追踪性表涵盖 100+ 项需求;第 8.3 节 API 列出 20+ 个核心函数(原文 80+ 个);第 9 章时序图列出 20 个关键图。完整内容请参见原文 PDF。
|
||
- 内容置信度:中高。所有 IP / TCP / UDP / TLS / DHCP / ARP / NDP 概念、API 签名、配置容器均已涵盖;个别 RFC 细节(TCP 状态机转换表等)未完全展开。
|