交换机的端口有三种类型

  • access
  • trunk
  • hybrid

对于交换机的每个端口可以设置pvid,表示该端口的默认tag(不一定等于该端口所属的vlan_id)
交换机的mac地址表只根据源mac地址来学习.
书上说那么多其实用伪代码来描述准确而简单.

class Port:def __init(id,pvid=1,vlan_id=1):self.id=idself.pvid=pvidself.vlan_id=vlan_idself.link_type="access"
class Switcher:def __init():self.ports=[Port(id) for id in range(20)]self.mac_table={}self.interfaces={}#向端口port发送frame数据帧def send(frame,port):if port.link_type=="access":port.write(frame-tag)elif port.link_type=="trunk":if frame.tag.vlan_id==port.pvid:frame-=tagport.write(frame)elif port.link_type=="hybrid":if port.interfaces[frame.tag.vlan_id].isUnTagged:frame-=tagport.write(frame)#在port端口收到frame数据帧def onReceive(frame,port):if not frame.isTagged:frame+=tag(port.pvid)elif frame.tag.vlan_id!=port.vlan_id:delete(frame)returnmac_table[frame.srcMac]=portif mac_table[frame.desMac]==None:for port in self:send(frame,port)elif mac_table[frame.desMac]==port:delete(frame)returnelse:send(frame,mac_table[frame.desMac])

转载于:https://www.cnblogs.com/weiyinfu/p/6081478.html

三层交换机对链路层数据帧的处理相关推荐

  1. 计算机基础(笔记)——计算机网络(链路层)

    链路层 在链路层中,会讨论到两种截然不同类型的链路层信道.第一种类型是广播信道,这种信道用于连接有线局域网.卫星网和混合光纤同轴电缆( Hybrid Fiber Coaxialcable,HFC)接入 ...

  2. 计算机网络:P3.3-数据链路层(下)

    本系列文章为湖南科技大学高军老师的计算机网络微课堂学习笔记,前面的系列文章链接如下: 计算机网络:P1-概述 计算机网络:P2-物理层 计算机网络:P3.1-数据链路层(上) 计算机网络:P3.2-数 ...

  3. 链路层交换机和路由器的区别

    原文:https://blog.csdn.net/liebao_han/article/details/52859814       感谢原文作者- 链路层交换机和路由器作为两种最为常见的联网中继设备 ...

  4. Open×××以及其它IP层×××的完全链路层处理的实现

    如果Open×××也能实现传输模式×××该有多好,如果基于Open×××实现的×××产品能仅仅作为一根昂贵的网线串接在用户网络环境,自动捕获感兴趣流量该有多好:如果它能做到只需要配置一个IP即可工作而 ...

  5. TCP/IP协议:链路层

    1.引言 在TCP/IP协议簇中,链路层的目的有三个: (1)为IP模块 发送和接收IP数据 报 (2)为ARP模块发送ARP请求和接收ARP应答 (3) 为RARP模块发送RARP请求和接收RARP ...

  6. 【计算机网络】数据链路层 : 局域网基本概念 ( 局域网分类 | 拓扑结构 | 局域网特点 | 局域网传输介质 | 介质访问控制方法 | IEEE 802 | 链路层 LLC、MAC 控制子层 )

    文章目录 一. 局域网 二. 局域网 拓扑结构 三. 局域网 传输介质 四. 局域网 介质访问控制方法 五. 局域网 分类 六. IEEE 802 标准 六. 数据链路层 LLC.MAC 子层 一. ...

  7. 链路层的封装方式与IP选路 (二)

    (参考文献)TCP/IP详解,卷1:协议 在TCP/IP协议族中,链路层主要有3个目的: 一.   为它上层的IP模块发送和接收IP数据报 二.   为ARP模块和RARP模块请求和接收ARP应答 三 ...

  8. 链路层 ---《TCP/IP协议》卷一

    第2章 链路层 2.1 引言 链路层主要有三个目的: 为IP模块发送和接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请求和接收RARP应答. 将详细讨论: 以太 ...

  9. 《TCP/IP详解》笔记----第二章 链路层

    第二章 链路层 1.链路层的作用 TCP/IP的四层模型中,处于最下层的是链路层.它的主要作用是:接收和发送IP模块的数据报:为APR模块发送ARP请求和接收APR应答:为RAPR模块发送RAPR请求 ...

最新文章

  1. OpenCV 错误:无法打开摄像头(打开摄像头卡机)
  2. HDFS Federation与HDFS High Availability详解
  3. android 最新消息滚动,Android 滚动操作Scroller类详解
  4. oracle nowday,Java MonthDay now()用法及代码示例
  5. mysql函数移植到oracle,oracle到mysql的迁移,函数部分
  6. Golang 学习资料
  7. Java Servlet技术
  8. Windows Linux Mac 路由添加删除
  9. poj 1125 Floyd简单
  10. 入职填写的工作经历时间虚假,公司以此来辞退我怎么办?
  11. Texmacs中文支持
  12. 腾讯优图发布三款AI硬件,深化To B能力
  13. Linux常用操作命令(乌班图)
  14. uiautomatorviewer 双击闪退问题
  15. 电信smgp3.0短信发送问题
  16. 三维视觉论文阅读:RAFT2020双目光流
  17. 斯坦福AI Lab主任Chris Manning:我的第一次CVPR
  18. 信息发布服务器 鸿合ws-10s,鸿合精品课程全自动录播系统解决方案设计.doc
  19. 20 美元的宜家台灯算力有多强?运行《毁灭战士》操作丝滑,最初竟是受假新闻启发...
  20. 投票页面制作线上投票活动制作网络投票制作关注投票制作

热门文章

  1. python第六篇文件处理类型
  2. WEB-INF目录结构
  3. rs(0)与rs(字段名)的区别
  4. js实现数据流(日志流,报警信息等)滚动展示,并分页(含实现demo)
  5. 源码-0105-Autoresizing
  6. 详谈Hibernate框架关系映射!
  7. [转载]EmitMapper,AutoMapper,NLiteMapper和手工映射性能大比拼
  8. JQuery 基础:4.JQuery对象
  9. 《Spring揭秘》重置版——IoC注入及绑定01
  10. 读书笔记_打开量化投资的黑箱06