模拟实现透明网桥的自学习与过滤功能

实验目的:


模拟实现透明网桥的自学习与过滤功能
实验内容:

  • 初始化
  • 建立网络结构
  • 实现网桥 B1 和 B2 的自学习算法
  • 按特定时序输入测试数据,验证过滤功能的有效性
  • 算法结束输出网桥 B1 和 B2 的转发表。

看了实验内容之后,重新温习了书中网桥自学习的知识点。梳理网桥自学习算法的流程。试验中用于网桥测试其学习和过滤功能的网络结构如下:
这里写图片描述

分为几种情况:


① 当 A 向 B 发送帧时,网桥 B1 会先按源地址 A 查找转发表。如果在网桥 B1 中没有 A 的地址,于是会把 A 和收到此帧的借口 1 写入转发表。接着再按目的地址 B 查找转发表,转发表中没有 B 的地址,就会把 B 用另一个接口 2 转发出去。网桥 B2 收到这个发过来的帧。
② 对于网桥 B2 按同样的方式处理收到的帧。网桥 2 的转发表中没有 A 的地址,因此会在转发表中写入地址 A 和接口 1. 网桥 B2 的转发表中没有 B 的地址,因此网桥 2 通过接口 4 发送此帧。
③ B 向 A 发送帧 网桥 B1 会从其接口 1 收到该帧。同理,网桥 B1 的转发表中没有 B, 则会把源地址 B 和接口 1 写入转发表。而对于目的地址 A,网桥 B1 的转发表中存在 A,转发接口也是 1,网桥 B1 会把次帧丢弃。
实现
实验采用 C 语言实现,采用二维数组来表示网桥的转发表。
代码实现如下:

#include<stdio.h>  
void main()  
{  
    char arr1[3]={
  'A','B','C'};  
    char arr2[2]={
  'D','E'};  
    char arr3[3]={
  'F','G','H'};  
    int a[][2]={
  0,0,0,0,0,0,0,0,0,0,0,0};  
    int b[][2]={
  0,0,0,0,0,0,0,0,0,0,0,0};  
    int i,j,m,n,k1 = 0,k2 = 0,t=0;   
    char s,d,k;       
    while(1)  
    {  
        printf("请输入源地址和目的地址:");  
        scanf("%c%c",&s,&d);  
        printf("\n");  
        
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值