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

交换机控制软件的实现步骤猜测

一、主要目的

    提出对交换机软件控制逻辑的猜测。

 

二、交换机控制软件的组成

  (一)背景

      1、交换机有很多的RJ45水晶头端口。

      2、每个端口支持同时发送和接收字节数据。

      3、每个端口接收的数据需要查表后才能转发给目标端口。

 

  (二)端口状态扫描线程

        负责扫描每个端口的状态,如果连接了双绞线,就开启对应的发送线程,接收线程;如果断开连接,就通知线程关闭。

 

  主要逻辑:

// 循环每个端口

for(int k = 0; k < len; k++){

     // 如果端口是建立了连接,并且没有启动接收和发送线程

      if(ports[k]是连通的  &&  ports[k]没有启动收发线程){

           // 启动对应端口的发送线程

           start_send_thread(ports[k]);

 

           // 启动对应端口的接收线程     

           start_recv_thread(ports[k]);

 

       } else if(ports[k]是断开的  &&  ports[k]启动了收发线程){

            // 停止对应端口的发送线程

           stop_send_thread(ports[k]);

 

           // 停止对应端口的接收线程     

           stop_recv_thread(ports[k]);

        }

}

 

  (三)每个端口的接收线程

        接收端口的数据包,获得目标RJ45端口号,发给目标端口号的数据发送队列里。

while(退出为假){

      // 阻塞接收当前端口的字节数据

 

      // 获取数据包中的目标MAC地址

 

      // 通过查表,获取对应的水晶头端口号

      if(端口号存在){

           // 获得目标端口对应的发送线程的队列

 

          // 把数据包入队到目标端口发送线程的发送队列里

       } else {

           // 丢弃该数据包

       }

}

 

  (四)每个端口的发送线程

        从发送队列里出队数据包,发给和端口相连的设备。

while(退出为假){

      // 阻塞出队一个数据包

      Data data = queue.deQueue();

 

     // 通过双绞线发给相连的设备(另一台交换机、路由器、电脑主机)

     pin.send(data);

}

     

 

三、总结

    1、全双工通信需要占用2根线路(发送和接收各自一根),需要开启两个线程。

 

    2、多个线程执行同一个方法的时候要添加排他锁。

 

    3、发现通信状态发生改变,只能是不断定时循环判断。

 

相关文章:

  • 安装教程整理 docker linux 虚拟机
  • Podman 1panel中容器管理docker替换为Podman
  • Linux shell 进度条
  • Nerf较真系列
  • Mybatis3 批量执行操作
  • 豆包API的部署和实战|基于 Selenium 的抖音自动化评论系统开发实践
  • 算法题刷题方法记录(蓝桥杯、Leetcode)
  • 算法练习(链表)
  • linux——计算机内存详解通俗理解
  • 文本数据处理——最佳文本切分策略
  • 【开源免费】基于SpringBoot+Vue.JS电商应用系统(JAVA毕业设计)
  • 编程题《牛牛的链表删除》的python可以用非链表的方式
  • 射频前端模块(FEM)中的功率放大器(PA):关键作用与优化方法
  • 掌阅iReader全球首款 7 英寸 Carta 1300 墨水屏阅读器即将发布
  • 【TI MSPM0】GPIO学习
  • 五大基础算法——递归算法
  • AI软件栈:推理框架(二)-Llama CPP1
  • 软件需求分类、需求获取(高软46)
  • 【专栏预告】《VR 360°全景视频开发:从GoPro到Unity VR眼镜应用实战》
  • 量化交易学习笔记02:双均线策略
  • 苏州一直升机坠落致1死4伤,事故调查正展开
  • 印尼巴厘岛多地停电,疑似海底电缆发生故障
  • 2024年境内酒店住宿行业指标同比下滑:酒店行业传统增长模式面临挑战
  • 旭辉控股集团:去年收入477.89亿元,长远计划逐步向轻资产业务模式转型
  • 从“长绳系日”特展看韩天衡求艺之路
  • 来上海喝云南咖啡!上海国际咖啡文化节助力咖啡产业破圈出海