题目描述

以太网交换机实质上就是一个多端口的网桥。网桥工作在数据链路层,根据MAC帧的目的地址对收到的帧进行转发或过滤。
当网桥收到一个帧时,并不是向所有的端口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的MAC地址表,然后确定将该帧转发到哪一个端口,或把它丢弃(即过滤)。
以太网交换机转发帧的步骤:
先查找交换机的MAC地址表中与收到帧的目的地址有无相匹配的项目。
如没有,则向所有其他端口(进入的端口除外)转发;
如有,则按MAC地址表中给出的端口进行转发(若MAC地址表中给出的端口就是该帧进入交换机的端口,则应丢弃这个帧)。
现假设有一个24端口的以太网交换机,你的任务是编写程序对收到的MAC帧进行处理。

输入描述

输入的第一行为两个正整数M、N(M、N<=24),分别表示交换机的MAC地址表有M行,有N个MAC帧进入交换机。
然后就是M行的MAC地址表,每行包括(MAC地址  对应的端口号  时间),相互之间以空格分隔,其中MAC地址用十六进制表示。
最后N行,每行表示进入交换机的MAC帧相关的信息,包括(目的MAC地址  源MAC地址  进入的端口号  进入的时间),相互之间以空格分隔,其中MAC地址用十六进制表示。

输出描述

对于每行输入,输出以太网交换机处理帧的结果。
输出(目的MAC地址  外出端口号),其中目的MAC地址占18位,左对齐,具体格式详见样例输出。
如果是向所有端口转发,端口号输出ALL;如果是过滤了,端口号输出NONE。

输入样例

5 3
0001.c7ea.e078 20 172
0009.7c7c.c95e 13 163
0009.7ced.ddc6 5 122
0050.0fc3.7770 10 135
00e0.8fb2.7a69 11 142
0001.c7ea.e078 0001.646a.1e5c 12 4568
0001.422b.486b 0009.7ced.ddc6 5 5888
ffff.ffff.ffff 00e0.8fb2.7a69 11 7600

输出样例

0001.c7ea.e078    20
0001.422b.486b    ALL
ffff.ffff.ffff    ALL

AC代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;struct poin
{char add[20];int id;int time;
}a[25];struct point
{char da[20];char aa[20];int id;int time;
}b[25];int isInclude(poin s[],int num,char t[20])
{for(int i=0;i<num;i++){if(strcmp(s[i].add,t)==0){return i;}}return -1;
}int main()
{int m,n;scanf("%d %d",&m,&n);for(int i=0;i<m;i++) scanf("%s%d%d",a[i].add,&a[i].id,&a[i].time);for(int i=0;i<n;i++) scanf("%s%s%d%d",b[i].da,b[i].aa,&b[i].id,&b[i].time);for(int i=0;i<n;i++){if(isInclude(a,m,b[i].da)!=-1){int numi=isInclude(a,m,b[i].da);if(b[i].id==a[numi].id) printf("%-18sNONE\n",b[i].da);else printf("%-18s%d\n",b[i].da,a[numi].id);}else{printf("%-18sALL\n",b[i].da);}}return 0;
}

以太网交换机转发数据帧相关推荐

  1. 交换机转发数据帧的3种方式

    直通转发(Cut-Through ) 交换机接收到目的地址即开始转发过程,交换机不检测错误,直接转发数据帧. 优点:由于不需要存储,延迟非常小.交换非常快 缺点:因为数据包内容并没有被以太网交换机保存 ...

  2. 以太网交换机转发原理简介

    一,以太网帧格式的分类: 1,802.3定义的帧格式 2,Ehernet 2定义的帧格式 各字段说明 1,目的MAC:占6字节,表示该帧的接收者(目的地),目的MAC可以是单播MAC,组播MAC,广播 ...

  3. 交换机MAC地址学习和转发数据帧的原理

    1 :交换机 MAC 地址学习   在交换机初始化的,也就是刚启动的时候,交换机的MAC地址表是没有任何MAC地址和端口的映射条目的   当PCA要想和PCC,PCB,PCD进行通信时,当该二层数据帧 ...

  4. 以太网交换机的两种转发方式

    1.直通转发(cut-through switching ) 直通方式的以太网交换机可以理解为在各端口间是纵横交叉的线路矩阵电话交换机.它在输入端口检测到一个数据帧时,检查帧的首部,获取该帧的目的Ma ...

  5. 工业以太网交换机的三种转发方式

    交换(switching)是按照通信两端传输信息的要求,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术的统称.根据工作位置的不同,可以分为广域网交换机和局域网交换机.广域网的 ...

  6. 3.9、以太网交换机自学习和转发帧的流程

    3.9.以太网交换机自学习和转发帧的流程 1.以太网交换机工作在数据链路层(也包括物理层) 说明:目前市场上也有包含网络层部分功能的交换机,称为三层交换机 2.以太网交换机收到帧后,在帧交换表中查找的 ...

  7. 计算机网络—— 3.9以太网交换机自学习和转发帧的流程

    3.9以太网交换机自学习和转发帧的流程 以太网交换机工作在数据链路层(也包括物理层) 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧. 以太网是一种即插即 ...

  8. 交换机对数据帧的转发和过滤

    大家好呀,我是请假君,今天又来和大家一起学习数通了,今天要分享的知识是交换机对数据帧的转发和过滤. 一.单播帧的转发: 交换机根据MAC地址表项进行数据帧转发. 上图中,PCA发出数据帧,其目的地址是 ...

  9. 为什么以太网的最小数据帧长度为64字节?

    为什么以太网的最小数据帧长度为64字节? CSMA/CD冲突避免的方法:先听后发.边听边发.随机延迟后重发.一旦发生冲突,必须让每台主机都能检测到.关于最小发送间隙和最小帧长的规定也是为了避免冲突. ...

最新文章

  1. Ponemon:2018年度数据泄露成本分析报告
  2. python编程100例头条-python 简单爬取今日头条热点新闻(一)
  3. 《棋牌游戏服务器》玩法服务器架构
  4. nginx服务器绑定域名和设置根目录的方法
  5. 台湾国立大学郭彦甫Matlab教程笔记(8)文件读写
  6. Docker技术实践——中级篇
  7. Spring IOC注入Map接口小技巧
  8. ubuntu16.04 安装caffe以及python接口
  9. 苹果系统怎么降低版本_海信电视系统版本太低怎么升级?
  10. rn项目 假如cocoapods_React Native 如何集成到原生IOS项目中?
  11. Mysql更新数据库数据sql_一条更新SQL在MySQL数据库中是如何执行的
  12. 【Java从0到架构师】SSM 整合(XML、纯注解)
  13. 前端获取div里面的标签_「HTML」什么是 HTML 中的 div 标签
  14. 使用Idea部署SSM项目后,访问路径为url:8080/项目名_war_exploded的解决方案
  15. HTML编程怎么设置字体,html怎么设置字体
  16. html中js怎么实现页面跳转页面,JavaScript实现页面跳转的几种常用方式
  17. 如何隐藏电脑中的文件或文件夹?
  18. mysql 在线语法检查工具,符合多个数据库的在线SQL语法检查器
  19. python学习-进阶
  20. Jupyter 远程连接服务器

热门文章

  1. Windows编程---句柄
  2. arduino单片机经典程序
  3. 第八期 RT3052F芯片分析 《路由器就是开发板》
  4. 网约车大战丨一战成就滴滴,二战围剿滴滴
  5. 担心手机电池寿命,专家给出正确充电方式
  6. 23.border-radius圆角边框介绍
  7. 2017,EuroGP,Geometric Semantic Crossover with an Angle-Aware Mating Scheme in GP for SR
  8. Python科学计算基础篇
  9. 开发问题记录 4个 (微信无法获取头像和昵称)
  10. 因员工调薪引发内部矛盾上热搜,茶颜悦色到底怎么了?