基于广播网络实验内容

发布于:2022-12-12 ⋅ 阅读:(289) ⋅ 点赞:(0)

资源下载地址: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.210.0.0.3 分别表示 h2h3 节点。如图,h1 节点可以 pingh2 节点和 h3 节点。

h2 节点 ping h1 节点和 h3 节点:

在这里插入图片描述

上图中 10.0.0.110.0.0.3 分别表示 h1h3 节点。如图,h2 节点可以 pingh1 节点和 h3 节点。

h3 节点 ping h1 节点和 h2 节点:

在这里插入图片描述

上图中 10.0.0.110.0.0.2 分别表示 h1h2 节点。如图,h3 节点可以 pingh1 节点和 h2 节点。

进行 iperf 测试,验证广播网络的链路利用效率,测试结果如下:
h1: iperf client; h2,h3: iperf servers

在这里插入图片描述

上图中 h1 节点同时向 h2 节点和 h3 节点测量,可以看出 h1 节点时向 h2 节点和 h3 节点的发送带宽分别为 2.92Mbps3.89Mbpsh2 节点和 h3 节点的接收带宽分别为 2.89Mbps3.88Mbps

而在拓扑文件中,h1 -> b1 的带宽为 20Mbpsb1 -> h2 的带宽为 10Mbps,b1 -> h3 的带宽为 10Mbps。因此带宽的利用率为 34.05%

h1: iperf server; h2,h3: iperf client:

在这里插入图片描述

上图中 h2 节点和 h3 节点同时向 h1 节点测量,可以看出 h1 节点时接收 h2 节点和 h3 节点的接收带宽分别为 4.14Mbps3.76Mbpsh2 节点和 h3 节点的发送带宽分别为 4.31Mbps3.82Mbps

同样的,在拓扑文件中,h1 -> b1 的带宽为 20Mbpsb1 -> 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

本文含有隐藏内容,请 开通VIP 后查看

网站公告


今日签到

点亮在社区的每一天
去签到