【问题标题】:iSCSI data transport packet overheadiSCSI 数据传输数据包开销
【发布时间】:2012-06-26 16:26:06
【问题描述】:

这个问题确实与iSCSI Packet Header 重叠,但我希望得到一个比为我的更具体问题提供的更具体的答案。

问题:iSCSI 和 SCSI 在传输数据以读取或写入时引入了多少开销?

我知道这是在数据输入和数据输出传输数据包中完成的,并且我知道 TCP/IP 和以太网会产生开销,但是 iSCSI/SCSI 需要哪些额外开销?我知道 SCSI 协议数据单元 (PDU) 是通过某种算法打包到 TCP 数据报中的,但我不确定该算法。

我意识到发起者和目标之间需要进行完整的对话,我将忽略那部分。所以,我只想知道读或写命令后发送的数据包。

【问题讨论】:

  • 对于 ISCSI,BHS 需要 48 个字节,对于 SCSI,它的 CDB 包含在 BHS 中,其数据在数据段中。 data seg 的长度是不确定的,它是在会话建立时由 ini 和 tgt 协商的。

标签: networking tcp packets iscsi scsi


【解决方案1】:

这是我通过查看 iSCSI RFC 3720。

协议数据单元(PDU - iSCSI“数据包”)具有以下元素:

  1. 基本头段 - 48 字节
  2. 附加标头段 - 可选 - 0 字节(假设不需要)
  3. 标题摘要 - 4 个字节(可选,但需要这个)
  4. 数据段 - 8192 字节(最大接收数据长度由发起方和目标方协商,默认为 8192,因此将使用它)
  5. 数据摘要 - 4 个字节(可选,但需要这个)

所以,我发现传输 8192 字节的实际数据需要 56 字节的开销。

【讨论】:

  • 请注意,它并不总是 8192 字节 - 它取决于协商的 MaxRecvDataSegmentSize;如果双方协商为 128kB,那么假设发起方实际上正在执行大量读取或写入,那么每个 128kB 事务的开销将是 48 字节。
【解决方案2】:

以下是正确的。但是对于写入(如果未启用即时数据),目标需要额外的字节来发送另一个称为 R2T 的 PDU,它是 48 个字节。摘要很少使用,因为大多数 iSCSI 连接都是本地连接,并且 TCP/IP 具有 CRC。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 2012-07-04
    • 2017-11-24
    相关资源
    最近更新 更多