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

可靠传输上的直接数据放置(iWARP-DDP)

Direct Data Placement 协议提供信息,用于将传入数据直接放置到上层协议的接收缓冲区中,而不经过中间缓冲区。

历史

该协议于 2007 年 10 月在 RFC 5041 中定义。

协议依赖

  • TCP:通常,iWARP-MPA 使用 TCP 之上的 iWARP-MPA 作为其传输协议。

  • SCTP:iWARP-DDP 也可以运行在 SCTP 之上

示例流量

Frame 10 (106 bytes on wire, 106 bytes captured) Arrival Time: Mar 26, 2008 18:13:03.752539000 [Time delta from previous captured frame: 0.000043000 seconds] [Time delta from previous displayed frame: 0.000043000 seconds] [Time since reference or first frame: 0.000355000 seconds] Frame Number: 10 Frame Length: 106 bytes Capture Length: 106 bytes [Frame is marked: False] [Protocols in frame: eth:ip:tcp:iwarp_mpa:iwarp_ddp_rdmap:data] [Coloring Rule Name: TCP] [Coloring Rule String: tcp]Ethernet II, Src: Ibm_8d:3c:cd (00:11:25:8d:3c:cd), Dst: Ibm_8d:3b:73 (00:11:25:8d:3b:73) Destination: Ibm_8d:3b:73 (00:11:25:8d:3b:73) Source: Ibm_8d:3c:cd (00:11:25:8d:3c:cd) Type: IP (0x0800)Internet Protocol, Src: 10.0.0.19 (10.0.0.19), Dst: 10.0.0.18 (10.0.0.18) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) Total Length: 92 Identification: 0xbc5d (48221) Flags: 0x04 (Don't Fragment) Fragment offset: 0 Time to live: 64 Protocol: TCP (0x06) Header checksum: 0x6a1a [correct] Source: 10.0.0.19 (10.0.0.19) Destination: 10.0.0.18 (10.0.0.18)Transmission Control Protocol, Src Port: 35959 (35959), Dst Port: 4210 (4210), Seq: 28, Ack: 69, Len: 40 Source port: 35959 (35959) Destination port: 4210 (4210) Sequence number: 28 (relative sequence number) [Next sequence number: 68 (relative sequence number)] Acknowledgement number: 69 (relative ack number) Header length: 32 bytes Flags: 0x18 (PSH, ACK) Window size: 5888 (scaled) Checksum: 0x1ae1 [correct] Options: (12 bytes)iWARP Marker Protocol data unit Aligned framing FPDU ULPDU length: 34 bytes CRC: 0x00000000iWARP Direct Data Placement and Remote Direct Memory Access Protocol DDP header DDP control field 0... .... = Tagged flag: False .1.. .... = Last flag: True ..00 00.. = Reserved: 0x00 .... ..01 = DDP protocol version: 1 Reserved for use by the ULP: 4300000000 Untagged buffer model Queue number: 0 Message sequence number: 1 Message offset: 0 RDMAP headerData (16 bytes)0000 00 04 00 00 01 00 00 00 00 b0 05 08 00 00 00 00 ................ Data: 000400000100000000B0050800000000

Wireshark

iWARP-DDP dissector 已完全可用。由于 iWARP-RDMAP 和 iWARP-DDP 的 header 存在重叠,并且实践中几乎从未见到没有上层 RDMAP 的 iWARP-DDP,因此我们构建了一个组合 dissector,将两个协议一起实现为 iwarp_ddp_rdmap。我们在最近的 Sharkfest 上与 Guy Harris 讨论了这一点。

我们假定它运行在 iWARP-MPA 之上。由于实践中未使用 SCTP,因此尚未实现 SCTP 支持。若要支持 SCTP,需要添加以下内容:

#define DDP_SEGMENT_CHUNK_ID 16#define DDP_STREAM_SESSION_CONTROL_ID 17static intdissect_ddp_segment_chunk(...){ /* dissection code for DDP segment chunk carried within SCTP */}static intdissect_ddp_stream_session_ctrl(...){ /* dissection code for DDP stream control carried within SCTP */}voidproto_reg_handoff_iwarp_ddp_rdmap(voi){ dissector_handle_t seg_chunk_handle; dissector_handle_t str_ses_ctrl_handle; seg_chunk_handle = create_dissector_handle(dissect_ddp_segment_chunk, proto_iwarp_ddp_rdmap); str_ses_ctrl_handle = create_dissector_handle(dissect_ddp_stream_session_ctrl, proto_iwarp_ddp_rdmap); dissector_add("sctp.ppi", DDP_SEGMENT_CHUNK_ID, seg_chunk_handle); dissector_add("sctp.ppi", DDP_STREAM_SESSION_CONTROL_ID, str_ses_ctrl_handle);}

首选项设置

无首选项设置。

示例捕获文件

  • SampleCaptures/iwarp_send_recv.tar.gz

  • SampleCaptures/iwarp_rdma.tar.gz

显示过滤器

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

仅显示基于 iWARP-DDP 的流量:

 iwarp_ddp_rdmap

捕获过滤器

抓包时无法直接过滤 iWARP-DDP 协议。不过,如果您知道所使用的 TCP 端口(见上文),可以按该端口进行过滤。

外部链接

  • RFC 5041Direct Data Placement over Reliable Transports

讨论

Imported from https://wiki.wireshark.org/iWARP-DDP on 2020-08-11 23:15:34 UTC

相关 Wireshark Wiki 页面

网络分析技术档案