#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; char s,d,k;while(1){printf("请输入源地址和目的地址:");scanf("%c%c",&s,&d);printf("\n");for(i=0;i<3;i++){if(arr1[i]==s)m=1;}for(i=0;i<2;i++){if(arr2[i]==s)m=2;}for(i=0;i<3;i++){if(arr3[i]==s)m=3;}switch(m){case 1:{for(i=0;i<k1;i++){if(a[i][0]==s){break;}}if(i==k1) {a[k1][0]=s;a[k1][1]=m;k1++;}//没有记录,在网桥数组中插入源地址for(i=0;i<k1;i++)//查找网桥数组中是否有目的地址{if(a[i][0]==d){n=a[i][1]; break;}}if(i==k1) printf("网桥1中没有目的记录%c,向右转发\n",d);//不含有,转发else{if(m==n){printf("网桥1丢弃\n");t=1;}//含有且在同在网段丢弃elseprintf("不在同一网段,网桥1向右转发\n");//含有不在同一网段转发}if(t!=1) //不在同一网段时{for(i=0;i<k1;i++)if(b[i][0]==s) {break;}if(i==k1) {b[k2][0]=s;b[k2][1]=m;k2++;}//没有记录,在网桥数组中插入源地址for(i=0;i<k1;i++)//查找网桥数组中是否有目的地址{if(b[i][0]==d) {n=b[i][1]; break;}}if(i==k2) printf("网桥2中没有目的记录%c,向右转发\n",d);//不含有,转发else{if(m==n) printf("网桥2丢弃\n");//含有且在同在网段丢弃else printf("不在同一网段,网桥2向右转发\n");//含有不在同一网段转发}}break;}case 2:{//向左转发for(i=0;i<k1;i++)if(a[i][0]==s) {break;}if(i==k1) {a[k1][0]=s;a[k1][1]=m;k1++;}//没有记录,在网桥数组中插入源地址for(i=0;i<k1;i++)//查找网桥数组中是否有目的地址{if(a[i][0]==d) {n=a[i][1]; break;}}if(i==k1) printf("网桥1中没有目的记录%c,向左转发\n",d);//不含有,转发else{if(m==n) printf("网桥1丢弃\n");//含有且在同在网段丢弃else printf("不在同一网段,网桥1向左转发\n");//含有不在同一网段转发}//向右转发for(i=0;i<k2;i++)if(b[i][0]==s) {break;}if(i==k2) {b[k2][0]=s;b[k2][1]=m-1;k2++;}//没有记录,在网桥数组中插入源地址for(i=0;i<k2;i++)//查找网桥数组中是否有目的地址{if(b[i][0]==d) {n=b[i][1]; break;}}if(i==k2) printf("网桥2中没有目的记录%c,向右转发\n",d);//不含有,转发else{if(1==n) printf("网桥2丢弃\n");//含有且在同在网段丢弃else printf("不在同一网段,网桥2向右转发\n");//含有不在同一网段转发}break;}case 3:{for(i=0;i<k2;i++)if(b[i][0]==s) {break;}if(i==k2) {b[k2][0]=s;b[k2][1]=m-1;k2++;}//没有记录,在网桥数组中插入源地址for(i=0;i<k2;i++)//查找网桥数组中是否有目的地址{if(b[i][0]==d) {n=b[i][1]; break;}}if(i==k2) printf("网桥2中没有目的记录,向左转发\n");//不含有,转发else{if(2==n) {printf("网桥2丢弃\n");t=1;}//含有且在同在网段丢弃else printf("不在同一网段,网桥2向左转发\n");//含有不在同一网段转发}if(t!=1)//不在同一网段时{for(i=0;i<k1;i++)if(a[i][0]==s) {break;}if(i==k1) {a[k1][0]=s;a[k1][1]=m-1;k1++;}//木有记录,在网桥数组中插入源地址for(i=0;i<k1;i++)//查找网桥数组中是否有目的地址{if(a[i][0]==d) {n=a[i][1]; break;}}if(i==k1) printf("网桥1中没有目的记录%c,向左转发\n",d);//不含有,转发else{if(2==n) printf("网桥1丢弃\n");//含有且在同在网段丢弃else printf("不在同一网段,网桥1向左转发\n");//含有不在同一网段转发}}break;}default: ;}putchar('\n');printf("网桥1\n");printf("--------\n");for(i=0;i<k1;i++){printf("  %c  ",a[i][0]);printf("%d  ",a[i][1]);putchar('\n');}printf("--------\n");printf("网桥2\n");printf("--------\n");for(i=0;i<k2;i++){printf("  %c  ",b[i][0]);printf("%d  ",b[i][1]);putchar('\n');}printf("-------\n");scanf("%c",&k);}
}

透明网桥的自学习算法相关推荐

  1. CSAPP:网桥的自学习算法

    网桥 网桥(Bridge)像一个聪明的中继器.中继器从一个网络电缆里接收信号, 放大它们,将其送入下一个电缆.相比较而言,网桥对从关卡上传下来的信息更敏锐一些.网桥是一种对帧进行转发的技术,根据MAC ...

  2. 计算机网络透明网桥的算法,网基课程设计曼切斯特编码模拟透明网桥自习域转发帧算法模拟IP分片模拟.doc...

    网基课程设计曼切斯特编码模拟透明网桥自习域转发帧算法模拟IP分片模拟 计算机网络基础 课 程 设 计 报 告 学号: 姓名: 班级: 题号:01.06.07 题目:曼切斯特编码模拟.透明网桥自学习域转 ...

  3. LAN交换机自学习算法

    LAN交换机自学习算法 提示 第二层交完全忽略帧的数据部分协议,仅根据第二层以太网的MAC地址做出转发决策. MAC地址表有时又被称作内容可编址内存(CAM)表 检查源MAC地址 如果源MAC地址不存 ...

  4. 配置透明网桥实现QinQ传输案例

    拓扑图 规格 对于V200R008C20及更低版本,只有AR100&AR120&AR150&AR160&AR200系列支持该示例. 对于V200R008C30及更高版本 ...

  5. 以太网交换机的自学习算法

    题目描述 以太网交换机是一种即插即用的设备,其内部的帧交换表(又称为MAC地址表)是通过自学习算法自动地逐渐建立起来的. 自学习算法: 交换机收到一个帧之后,查找MAC地址表中与收到帧的源地址有无相匹 ...

  6. 【计算机网络实验】以太网交换机的自学习算法

    题目描述: 以太网交换机是一种即插即用的设备,其内部的帧交换表(又称为MAC地址表)是通过自学习算法自动地逐渐建立起来的. 自学习算法: 交换机收到一个帧之后,查找MAC地址表中与收到帧的源地址有无相 ...

  7. [计算机网络笔记07] 交换机的自学习算法

    1.交换机的转发原理 2.交换机的自学习算法 (1)A到B 帧由主机A出发到接口1,交换机在帧交换表中登记,之后查询目的MAC地址,找不到,于是从其他接口转发出去,最后通过3接口找到主机B.其他的主机 ...

  8. Python3 透明网桥算法

    import time#定义网桥1 b1 = {}port_list1 = [1, 2]#主机列表 L1 = ['a','b','c']L2 = ['d','e']L = [L1,L2]def get ...

  9. QQ透明皮肤:多层算法 一键适配各种背景

    那些流连过的风景,那个长存于心的人,那些一心向往的美好,或是那句曾让人恍然的话语.动人的画面,我们不止想要印在脑海,更希望它们跃然屏幕.当QQ变为生活的一部分,特别的皮肤也可以是记忆的指针,希望的灯塔 ...

  10. QQ透明皮肤:多层算法,一键适配各种背景

    那些流连过的风景,那个长存于心的人,那些一心向往的美好,或是那句曾让人恍然的话语.动人的画面,我们不止想要印在脑海,更希望它们跃然屏幕.当QQ变为生活的一部分,特别的皮肤也可以是记忆的指针,希望的灯塔 ...

最新文章

  1. centos mysql5.7主从同步配置_centos7搭建mysql5.7主从同步
  2. 一个典型的SAP Commerce extension目录结构
  3. 单元格格式_单元格格式的用法你知道吗~~
  4. 这篇文献总结了常见的中式英语写法,来看看有没有中枪?
  5. Android Studio eclipse 调试技巧
  6. 中的live_2016知乎Live精选汇编——简历类
  7. 山西省职业技能鉴定计算机操作员(中级工)理论知识试卷,山西省职业技能鉴定统一试卷 中级...
  8. FoneDog Toolkit for Android如何从Android恢复丢失的文件
  9. Java编程:将五子棋棋盘内容用稀疏矩阵存储至磁盘,并从中重新读取内容——稀疏数组和算法
  10. P2P技术体系结构与分类
  11. 创新创业技术路线怎么写_项目申请中的技术路线该怎么写啊
  12. 提高淘宝店铺动态评分的四大技巧
  13. Oracle 中数据类型变更无效 ---ora-22858:数据类型的变更无效 for clod
  14. matlab 三角函数 积化和差,三角函数积化和差与和差化积公式
  15. 用matlab进行频域分析,用matlab进行信号与系统的时频域分析
  16. 用Postman查询RPC常用方法
  17. stm32f0 大小端_STM32F0中文资料.pdf
  18. 怎样制作FL Studio步进音序器中的节奏
  19. 数字图像处理-车牌定位
  20. 【ASSIC】ASSIC码概念+字母ASSIC码+利用ASSIC实现大小写转换

热门文章

  1. Biaofun讲解短视频营销对于2021年的大势所趋
  2. 张张催人泪下 图说“工人阶级”的心酸谋生路
  3. 苹果CMS自动定时采集教程
  4. 一个小时学会画网络拓扑图(附标准素材)
  5. 【最强实习生】20场Android面试斩获大厂offer,来看看我都会些什么
  6. 计算机一点桌面显示删除,电脑开机后任意点击桌面图标后不停出现删除文件窗口?...
  7. 普京任命卡德罗夫为车臣总统
  8. 标量、矩阵对向量求导
  9. java操作word的方法(总结)
  10. java验证用户名和密码_java验证用户名和密码详解