Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

面向连接的传输协议(COTP,ISO 8073)

这是 IsoProtocolFamily 的连接传输协议。

由于如今大多数读者会更熟悉 TCP,下面将通过比较这两种协议来解释 COTP,因为它们都用于通过网络可靠地传输用户数据。

基于数据包与基于流:COTP 将数据包从一个用户传输到另一个用户,因此接收方会获得与发送方传输时完全相同的数据边界。TCP 向接收方传输连续的数据流,因此 TCP 之上的协议通常必须自行添加此类边界(有关这种协议,请参见 TPKT 协议)。

TSAP 与端口:为了在两台主机之间复用多个会话,COTP 使用 TSAP,TSAP 是可变长度的二进制 blob(通常会使用有意义的字符串)。这些 TSAP 在连接建立阶段进行匹配,并在数据传输时由 2 字节的(destination/source)reference 替代。TCP 则使用端口来实现这一点。一个显著差异是 TSAP 是单例的——如果某个 TSAP 用于一个连接,则它不能被另一个连接使用。XXX - 需要澄清。单个 TSAP(Transport Service Access Point)可以被多个连接使用。

历史

在大多数应用中,该协议已经被 TCP 取代。以前使用 COTP 的应用现在通常会在 TCP 之上使用 TPKT 协议。

协议依赖

  • CLNP:COTP 使用 CLNP 作为其底层网络协议。

示例流量

Wireshark

COTP dissector 功能完整。

首选项设置

  • Reassemble segmented COTP datagrams:XXX - 在此处添加信息
  • Display TSAPs as string or bytes:TSAP 可以是任意二进制数据。应用程序通常会选择文本表示,因此默认设置“As strings if printable”在许多情况下可能是个好主意。

示例捕获文件

COTP_Example.pcapng.gz

S7comm 使用 COTP。S7comm captures

显示过滤器

COTP 显示过滤器字段的完整列表可在显示过滤器参考中找到

仅显示基于 COTP 的流量:

 cotp

仅显示基于 COTP 的流量,但排除 COTP Data(cotp.type == 0x06)和 Acknowledge(cotp.type == 0x0f)TPDU。这样你将只看到连接建立或加急数据等特殊数据包:

 cotp && !(cotp.type == 0x06 || cotp.type == 0x0f)

捕获过滤器

捕获时不能直接过滤 COTP 协议。XXX - 添加有关捕获长度小于 1450?字节的信息,或者更好的仅捕获 COTP 的方法。COTP 使用众所周知的端口 102,因此通常可以使用以下捕获过滤器捕获 COTP/TPKT 数据

Port 102

外部链接

  • ISO 8072 transport service specification 不能免费下载

  • ISO 8073 transport protocol specification 可作为 RFC905 获取

讨论

导入自 https://wiki.wireshark.org/COTP ,时间为 2020-08-11 23:12:23 UTC

原始页面图片

COTP_Example
COTP_Example

相关 Wireshark Wiki 页面

网络分析技术档案