网站运营工作具体做啥,做网站寄生虫需要哪些东西,网页设计尺寸详解,企业服务专员系列文章
第1章 多机多卡运行nccl-tests 和channel获取第2章 多机多卡nccl-tests 对比分析第3章 使用tcpdump抓取rdma数据包 目录 系列文章一、准备工作1. 源码编译tcpdump2. 安装wireshark 二、Tcpdump抓包三、Wireshark分析 一、准备工作
1. 源码编译tcpdump
使用 tcpdump…系列文章
第1章 多机多卡运行nccl-tests 和channel获取第2章 多机多卡nccl-tests 对比分析第3章 使用tcpdump抓取rdma数据包 目录 系列文章一、准备工作1. 源码编译tcpdump2. 安装wireshark 二、Tcpdump抓包三、Wireshark分析 一、准备工作
1. 源码编译tcpdump
使用 tcpdump 需要对源码进行编译才可以抓取 RDMA 网卡数据包 参考tcpdump提供的安装说明https://github.com/the-tcpdump-group/tcpdump/blob/master/INSTALL.md tcpdump依赖于libpcap因此首先需要对 libpcap 进行编译安装:
git clone https://github.com/the-tcpdump-group/libpcap.git
cd libpcap./autogen.sh
./configure
sudo make install对 tcpdump 使用同样的命令编译
git clone https://github.com/the-tcpdump-group/tcpdump.git
cd tcpdump./autogen.sh
./configure
sudo make install查看版本信息
2. 安装wireshark
sudo apt-get update
sudo apt-get install wireshark
二、Tcpdump抓包
使用 tcpdump 抓取 RDMA 数据包-tcpdump需要sudo权限
sudo tcpdump -i mlx5_0 -s 0 -w rdma.pcap
//使用 tcpdump 抓取 mlx5_0 设备数据包并保存在 rdma.pcap 中使用 wireshark 进行数据包分析-i mlx5_0: 指定了要监听的网络接口。mlx5_0代表使用的是Mellanox ConnectX系列适配器的一个InfiniBand或RoCE (RDMA over Converged Ethernet) 接口。 -s 0: 设置抓取数据包时的snaplen抓包长度为0意味着捕获整个数据包的内容不受默认限制。这样可以确保即使是非常长的数据包也能被完整捕获。 -w rdma.pcap: 使用-w选项将捕获的数据保存到名为rdma.pcap的文件中。.pcap是Packet Capture的缩写是一种标准的网络数据包捕获格式可以被多种网络分析工具如Wireshark打开和分析。
接下来可以执行perftest测试 或者使用roce进行分布式训练或者执行nccl-test都会有RoCE报文传输了。
以perftest为例
ib_send_bw是用来测试SEND操作的带宽的程序infiniband_sendbandwidth其中server_ip表示对端的IP对于我的环境来说本节点mlx5_0对应的ip是10.110.0.21另外一个机器mlx5-0对应的是10.110.0.25两台机器的网卡连接交换机。
#server端
ib_send_bw -d mlx5_0#client端 - 10.110.0.21为server ip
ib_send_bw -d mlx5_0 10.110.0.21 执行之后关闭tcpdump即可.
三、Wireshark分析
wieshark 打开 tcpdump 保存的pcap文件即可看到RoCE报文。 其中RRoCE是Routable RoCE的意思即可以被路由的RoCE即RoCE v2。我们随便选中一个条目下面的窗口中我们就可以看到每一层报文的内容了非常清晰 上图从上到下分别是物理层–以太网链路层–IPv4网络层–UDP传输层–IB传输层BTH头和iCRC校验–数据。
由于我自己对RDMA不是很了解只是知道如何查看设备信息以及如何在分布式训练中使用他们。在别的文章评论区看到以下内容感到很受用记录一下 RoCE v2协议栈是包括从物理层到传输层以及在此之上的IB传输层。 RoCEv2的外层报文是基于UDP的它并不具备应答确认与重传机制。假设网络出现了丢包那么发送端需要怎么把被丢弃的报文再发送给接收端呢 RoCEv2协议里面有ack确认机制。重传机制有go back N这个是在UDP上层的IB传输层协议保证的如果是RC会有ACK和Go-Back-N重传