399 与 OSI over TCP
399 的登记名是 iso-tsap-c2,含义是把 ISO 传输层 Class 2(非控制类)承载到 TCP 上。背景是 RFC 1006:它规定了如何在 TCP 之上提供 ISO 传输服务,使 OSI 的上层协议(FTAM 文件传输、X.400 消息处理、X.500 目录等)可以借 TCP/IP 落地运行。102/tcp 登记名 iso-tsap 是最常用的承载点,399 则针对 Class 2 非控制变体。OSI 体系整体退场后,这类端口主要出现在电力、轨道交通、制造等行业的遗留系统中,新系统已改用 IP 原生协议。
基本信息
| 服务名 | iso-tsap-c2(ISO 8073 Class 2 over TCP) |
|---|---|
| 传输层 | TCP/UDP |
| 背景标准 | RFC 1006(OSI over TCP 承载) |
| 关联端口 | 102/tcp 登记名 iso-tsap,承载更常见 |
| 现状 | OSI 体系退役,遗留行业系统仍在用 |
典型使用场景
- 行业遗留系统排障:电力自动化、轨道交通等场景中确认上层协议栈是否走 RFC 1006 承载
- 协议识别:区分真正的 OSI over TCP 与只是占用相同端口号的 IP 原生应用
- 资产台账:把老协议栈系统的版本、端口与联系人登记清楚
- 安全评估:老协议栈普遍缺少加密与强认证,需要评估隔离措施
- 迁移评估:改造成 IP 原生协议或经协议网关适配的可行性与代价
核查命令
核查命令
ss -lntu | grep -E ':(102|399) ' # 对照 iso-tsap 与本条目端口
getent services iso-tsap-c2 # 名称登记查询
sudo lsof -i :399 # 占用进程
sudo tcpdump -ni eth0 'tcp port 102' -c 20 # 抓包看是否有 TPKT 头(首字节 0x03)
# 有 TPKT/COTP 封装说明上层是 OSI 栈,而不是普通 TCP 应用OSI over TCP 端口对照
| 端口 | 名称 | 场景 |
|---|---|---|
| 102 | iso-tsap | ISO 传输服务常用承载端口 |
| 399 | iso-tsap-c2 | Class 2 非控制变体(本条目) |
| 上层协议 | FTAM / X.400 等 | 逐步迁移到 IP 原生协议 |
| 现代替代 | HTTP/FTPS/自研 IP 协议 | 具备加密与成熟运维工具链 |
判别提示:端口连通不代表上层可用。OSI 栈还需要 TSAP 选择符、应用实体限定符等参数配合,排障时从 RFC 1006 承载层逐级向上确认,而不要直接跳到应用日志。
迁移这类系统不能只换协议栈:OSI 的寻址参数(TSAP、AE 限定符)在 IP 原生协议里没有一一对应物,需要重建地址映射表并做端到端回归,否则会出现部分业务通路可用、部分静默失败的割裂状态。