当前位置: 首页 > news >正文

广播网络实验

1 实验内容

1、构建星性拓扑下的广播网络,实现hub各端口的数据广播,验证网络的连通性并测试网络效率

2、构建环形拓扑网络,验证该拓扑下结点广播会产生数据包环路

2 实验流程与结果分析

2.1 实验环境

ubuntu、mininet、xterm、wireshark、iperf

2.2 实验方案与结果分析

2.2.1 星型拓扑网络

一、实验设计与实现

广播网络结构如图所示,利用broadcast_packet函数实现hub数据包广播的逻辑:

利用instance->iface_list链表中保存所有网络端口的信息;

当数据包到达hub某一端口时,先遍历iface_list所有非本端口的其他端口,并将数据包转发出去,该方法伪代码如下:

foreach iface in iface_list:if iface != rx_iface:iface_send_packet(iface, packet, len);

broadcast_packet函数具体实现代码:

void broadcast_packet(iface_info_t *iface, const char *packet, int len)
{// TODO: broadcast packet fprintf(stdout, "TODO: broadcast packet.\n");//遍历当前数据包是否为本端口点接受的数据包,把数据包从非本端口的所有端口转发出去。根据fd标识进行识别//instance中保存所有端口信息iface_info_t *temp_list=NULL;list_for_each_entry(temp_list,&instance->iface_list,list){if(temp_list->fd!=iface->fd){iface_send_packet(temp_list,packet,len);}}
}

二、结果测试与分析

1、实验流程

http://www.lryc.cn/news/523158.html

相关文章:

  • Vscode——SSH连接不上的一种解决办法
  • ChatGPT大模型极简应用开发-目录
  • EI Scopus双检索 | 2025年第四届信息与通信工程国际会议(JCICE 2025)
  • 重学SpringBoot3-Spring Retry实践
  • TiDB 和 MySQL 的关系:这两者到底有什么不同和联系?
  • 【Java】JDK17的下载安装(与JDK1.8相互切换)
  • CSS3 3D 转换介绍
  • Vue3 Element-Plus el-tree 右键菜单组件
  • 鸿蒙学习构建视图的基本语法(二)
  • python-leetcode-存在重复元素 II
  • P6周:VGG-16算法-Pytorch实现人脸识别
  • BeanFactory 是什么?它与 ApplicationContext 有什么区别?
  • 虚幻基础-1:cpu挑选(14600kf)
  • 多种vue前端框架介绍
  • jenkins-node节点配置
  • 计算机网络 (50)两类密码体制
  • 基于SpringBoot+Vue旅游管理系统的设计和实现(源码+文档+部署讲解)
  • 计算机网络-概述
  • Jenkins-基于Role的鉴权机制
  • 计算机网络介质访问控制全攻略:从信道划分到协议详解!!!
  • 5.若依 Configuration ConfigurationProperties 使用
  • 使用docker部署mysql和tomcat服务器发现的问题整理
  • 数据库开发支持服务
  • 通过学习更多样化的生成数据进行更广泛的数据分发来改进实例分割
  • NVIDIA视频编解码
  • GCC支持Objective C的故事?Objective-C?GCC只能编译C语言吗?Objective-C 1.0和2.0有什么区别?
  • 详解深度学习中的Dropout
  • SQL-杂记1
  • Python(十七)excel指定列自动翻译成英文
  • Ubuntu20.04取消root账号自动登录的方法,触觉智能RK3568开发板演示