资源下载地址:https://download.csdn.net/download/sheziqiong/86764136
资源下载地址:https://download.csdn.net/download/sheziqiong/86764136
基于广播网络实验内容
实验内容
1、实现节点广播的 broadcast_packet 函数
2、验证广播网络能够正常运行
- 从一个端节点 ping 另一个端节点
3、验证广播网络的效率
在 three_nodes_bw.py 进行 iperf 测量
两种场景:
H1: iperf client; H2, H3: servers (h1 同时向 h2 和 h3 测量)
H1: iperf server; H2, H3: clients (h2 和 h3 同时向 h1 测量)
自己动手构建环形拓扑,验证该拓扑下节点广播会产生数据包环路
设计思路及结果验证
实现节点广播
设计思路
本实验需要在已有代码框架的基础上实现 main.c 中的 broadcast_packet 函数。
注意到,如要实现广播网路,则非接受节点若收到数据包,需要将数据包从其他端口转发出去。因此,该函数的伪代码如下:
foreach iface in iface_list:
if iface != rx_iface:
iface_send_packet(iface, packet, len);
(注:iface_list 保存所有端口的信息)
在该实验中,该函数的具体实现如下:
void broadcast_packet(iface_info_t *iface, const char *packet, int len)
{
// TODO: broadcast packet
fprintf(stdout, "TODO: broadcast packet here.\n");
iface_info_t * iface_entry = NULL;
list_for_each_entry(iface_entry, &instance->iface_list, list) {
if (iface_entry -> fd != iface -> fd) {
iface_send_packet(iface_entry, packet, len);
}
}
}
其中,instance_iface 保存所有端口的信息,iface_list 中的表项利用 fd 来进行区分。
结果验证
利用 three_nodes_bw.py 拓扑文件打开 Mininet,互相 ping 三个节点使之能通,测试结果如下:
h1 节点 ping h2 节点和 h3 节点:

上图中 10.0.0.2 和 10.0.0.3 分别表示 h2 和 h3 节点。如图,h1 节点可以 ping 通 h2 节点和 h3 节点。
h2 节点 ping h1 节点和 h3 节点:

上图中 10.0.0.1 和 10.0.0.3 分别表示 h1 和 h3 节点。如图,h2 节点可以 ping 通 h1 节点和 h3 节点。
h3 节点 ping h1 节点和 h2 节点:

上图中 10.0.0.1 和 10.0.0.2 分别表示 h1 和 h2 节点。如图,h3 节点可以 ping 通 h1 节点和 h2 节点。
进行 iperf 测试,验证广播网络的链路利用效率,测试结果如下:
h1: iperf client; h2,h3: iperf servers:

上图中 h1 节点同时向 h2 节点和 h3 节点测量,可以看出 h1 节点时向 h2 节点和 h3 节点的发送带宽分别为 2.92Mbps 和 3.89Mbps。h2 节点和 h3 节点的接收带宽分别为 2.89Mbps 和 3.88Mbps。
而在拓扑文件中,h1 -> b1 的带宽为 20Mbps,b1 -> h2 的带宽为 10Mbps,b1 -> h3 的带宽为 10Mbps。因此带宽的利用率为 34.05%。
h1: iperf server; h2,h3: iperf client:

上图中 h2 节点和 h3 节点同时向 h1 节点测量,可以看出 h1 节点时接收 h2 节点和 h3 节点的接收带宽分别为 4.14Mbps 和 3.76Mbps。h2 节点和 h3 节点的发送带宽分别为 4.31Mbps 和 3.82Mbps。
同样的,在拓扑文件中,h1 -> b1 的带宽为 20Mbps,b1 -> h2 的带宽为 10Mbps,b1 -> h3 的带宽为 10Mbps。因此带宽的利用率为 39.5%。
构建环形拓扑网络
结果验证
通过 h1# ping -c 1 10.0.0.2 指令,抓包看到一个数据包不断被转发,测试结果如下图:
h1 显示结果:

h2 利用 wireshark 抓包结果:


由上图可知,数据包在该环形拓扑中被不断转发。
资源下载地址:https://download.csdn.net/download/sheziqiong/86764136
资源下载地址:https://download.csdn.net/download/sheziqiong/86764136