精华内容
下载资源
问答
  • 那么,今天就由飞畅科技的小编来给大家介绍选购合适的交换机需要考虑哪些因素?一起来看看吧! (一)、工业交换机的可靠性 在复杂的工业环境中,工业以太网交换机的可靠性毫无疑问是最重要的一点,具体如下: ...

    工业以太网交换机是用于连接以太网的设备,应用十分广泛,主要应用于:煤矿安全、轨道交通、工厂自动化、水处理系统、城市安防等。现如今,市场上的工业交换机品牌厂家有很多,如何选购合适的以太网交换机是件令人困扰的事情,因为需要考虑诸多因素,例如工作环境,是否需要冗余,网管和非网管型,未来的维护和扩展性等等。那么,今天就由飞畅科技的小编来给大家介绍下选购合适的交换机需要考虑哪些因素?一起来看看吧!

    (一)、工业交换机的可靠性

    在复杂的工业环境中,工业以太网交换机的可靠性毫无疑问是最重要的一点,具体如下:

    1、环境耐受力:

    工作温度范围、EMC电磁兼容性、安装以及供电方式等。在产品的参数描述中,应当具有关于工作温度范围、电磁兼容性的详细描述,并附有相关准入标准的证明。

    2、外观设计:

    工业以太网交换机设备区别于商用以太网设备,一般都采用更加适合现场机柜安装的紧凑设计与导轨安装方式,最好是选择无风扇设计的交换机产品。

    3、故障自愈:

    为了避免因故障造成不必要的损坏,选择可靠稳定的硬件后,还要注意交换机所能提供的各种冗余方式,以及快速的故障诊断与恢复。

    (二)、工业交换机实时性

    在不同的应用环境中,系统可以忍受的响应时间与抖动大不相同。自动化网络中的数据帧在从一台设备转发至另一台设备的每次过程中都会产生一定延时。因此,选择工业交换机首先需要考虑的是交换机对于数据帧转发过程中的端口时延。

    在标准的工厂自动化控制系统中,系统可以容忍的响应时间不超过10毫秒,为了控制数据帧从系统顶端到底部的累积时延,选择交换机时,应当注意交换机端口时延这一数值的不应当超过10微秒。

    (三)、工业交换机兼容性

    工业以太网交换机以及其他工业以太网的组件都应当是可以使用标准的TCP/IP协议进行通讯的。无论任何情况下,工业以太网交换机设备与商用以太网设备间不应存在任何不兼容问题。对应不同的工业现场总线解决方案,工业以太网设备应当具有相应的能力与其兼容。

    (四)、工业交换机安全性

    由于工业交换机的开放性,在组建自动化网络的过程中,我们不得不考虑到网络安全这一因素。在选用设备的时候,用户应当选择具有VLAN功能的交换机,便于网络的功能划分。通过VLAN划分,我们可以基于功能对网络内的设备进行分组隔离,避免人为的恶意破坏或者误操作。同时用户可以使用交换机中的802.1x功能对需要接入网络的设备进行授权许可,以此来区别合法用户与非法用户。

    好了,以上内容就是飞畅科技关于工业交换机选购注意事项的相关详细介绍,希望能对大家有所帮助!飞畅科技20年专业从事光端机、工业级交换机、光纤收发器、协议转换器等工业通信设备的研发、生产和销售,欢迎前来了解、交流。

    展开全文
  • 算法-约瑟夫问题

    2021-04-11 13:26:40
    在学习了链表结构后,这一节我们需要用链表解决一个稍有改动的“约瑟夫(Josephus problem)”问题: 计算理工学院有N个同学,围成了一个圆圈,每人被顺序地编了一个序号(分别为1,2,3... n1,2,3...n),从编号为...

    1.问题:

    请注意:这一节部分只有count_off函数部分可以修改,要先理解其他部分在做什么后再下手实现count_off函数喔

    在学习了链表结构后,这一节我们需要用链表解决一个稍有改动的“约瑟夫环(Josephus problem)”问题:

    计算理工学院有 N 个同学,围成了一个圆圈,每人被顺序地编了一个序号(分别为 1,2,3... n1,2,3...n),从编号为 K 的人开始报 1,他之后(顺初始数字增长方向计算序号)的人报 2,以此类推,数到某一个数字 M 的人出列。出列同学的下一个人又从 1 开始继续报数,数到某一个数字 M 的人出列。不断重复这一过程,直到所有人都出列为止。

    你需要根据同学人数 N 和给出的 K 和 M 计算出同学的正确出列顺序。

    这一题的main函数已经帮你写好了,同时,已经帮你定义了一个节点的结构体类型、通过circle_create创建了一个循环链表。

    现在请在count_off函数中根据传入的编号为 1 的节点 headhead、学生数 n、起始报数学生编号 k、数到出列的数字 m 实现报数的过程,按照题目要求进行输出。

    输入格式

    测评机会反复运行你的程序。每次程序运行时,输入为一行,包括三个被空格分隔开的符合描述的正整数 N、K 和 M(1<= K<= N<= 10001≤K≤N≤1000,1 <= M <= 20001≤M≤2000)。

    输出格式

    输出为一行,包含 N 个整数,为依次顺序出列的学生编号,由空格分隔开。

    样例输入1

    9 1 1

    样例输出1

    1 2 3 4 5 6 7 8 9

    样例输入2

    8 5 2

    样例输出2

    6 8 2 4 7 3 1 5

    知识点:

    1.指针

    2.链表

    3.动态内存分配 ,动态内存释放

    重点:

        1.需要考虑到头尾相接的问题

        2.需要得到当前人的上一个人的指针(非常重要,我就是没注意到这一点,卡了半小时找问题)

    具体代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    typedef struct node {
        int data;
        struct node *next;
    } Node;
    
    Node *circle_create(int n);
    void count_off(Node *head, int n, int k, int m);
    
    int main() {
        int n, k, m;
        scanf("%d%d%d", &n, &k, &m);
        Node *head = circle_create(n);
        count_off(head, n, k, m);
        return 0;
    }
    
    Node *circle_create(int n) {
        Node *temp, *new_node, *head;
        int i;
    
        // 创建第一个链表节点并加数据
        temp = (Node *) malloc(sizeof(Node));
        head = temp;
        head->data = 1;
    
        // 创建第 2 到第 n 个链表节点并加数据
        for(i = 2; i <= n; i++) {
            new_node = (Node *) malloc(sizeof(Node));
            new_node->data = i;
            temp->next = new_node;
            temp = new_node;
        }
    
        // 最后一个节点指向头部构成循环链表
        temp->next = head;
    
        return head;
    }
    
    void count_off(Node *head, int n, int k, int m) {
        Node *tempk = head;
        Node *lasttemp = head;
        if(tempk->data == k){
            //如果是头部,则循环到最后一个
            for(int j=0;j<n;j++){
                if(j == n-1){
                    break;
                }
                lasttemp = lasttemp->next; 
            }
        }else{
            for(int i=0;i<n;i++){
                if(tempk->data == k-1){
                    lasttemp = tempk;
                    tempk = tempk->next;
                    break;
                }
                tempk = tempk->next;
            }
        }
        Node *temp = tempk;
        for(int i = 0;i<n;i++){
            for(int j = 0;j<m;j++){
                if(j == m-1){
                    printf("%d",temp->data);
                    if(i!=n-1) printf(" ");
                    if(temp == head){
                        tempk = head;
                        lasttemp->next = head->next;
                        head = head->next;
                        temp = head;
                    }   
                    else{
                        tempk=temp;
                        lasttemp->next = temp->next;
                        temp=temp->next;   
                    }
                    free(tempk);
                    tempk = NULL;    
                    break;
                }else{
                    lasttemp = temp;   
                    temp = temp->next;
                }
            }
        }
        return;
    }

     

    展开全文
  •  安装需要注意的是:不能把jdk安装到有空格或中文的文件夹中,建议大家在某个目录创建一个JavaWeb的文件夹,然后把所学的java所有内容(后面会学习到大量的开源及第三方组件技术)都安装到该目录   例如:c:...

    1.JDK的下载与安装:

      www.oracle.com

      安装需要注意的是:不能把jdk安装到有空格或中文的文件夹中,建议大家在某个目录下创建一个JavaWeb的文件夹,然后把所学的java所有内容(后面会学习到大量的开源及第三方组件技术)都安装到该目录下  

      例如:c:\JavaWeb\Java\jdk1.8\...

    2.配置环境变量:

      为什么要配置path环境变量:为了在任何路径下都可以使用(让电脑可以解析该命令)jdk中给我们提供的命令,如java编译命令:javac,java的解释执行命令:java,打包命令jar等

      JAVA_HOME:C\JavaWeb\Java\jdk1.8

      PATH:%JAVA_HOME%\bin;.......

      CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib;

      .代表当前路径

    转载于:https://www.cnblogs.com/MRCH/p/11523690.html

    展开全文
  • 需要特别注意的是MVC模式的精髓在于第三点:Model的更新是通过观察者模式告知View的,具体表现形式可以是Pub/Sub或者是触发Events。而网上很多对于MVC的描述都没有强调这一点。通过观察者模式的好处就是...
  • 动态路由(五)—BGP基本概念前言...1.5.4 建立对等体注意点1.5.5 用回口建立邻居需要注意的点1.5.6关于为什么要用回口建邻居2.BGP模拟实验 前言 BGP理论知识点很多,很杂,看起来很复杂,因此需要耐心来慢慢看。

    前言

    BGP理论知识点很多,很杂,看起来很复杂,因此需要耐下心来慢慢看。

    1.BGP基本概念

    1.1 AS概念

    自治系统,指的是在同一个组织管理下,使用相同策略的设备的集合。
    不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号。IANA负责AS号的分发。
    中国电信163 AS号:4134.
    中国电信CN2 AS号: 4809.
    中国网通AS号:9929.

    在这里插入图片描述

    1.2 BGP路由协议的特点

    1.BGP使用TCP作为其传输层协议(监听端口为179),提高了协议的可靠性。
    2.BGP是外部路由协议,用来在AS之间传输数据,对稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。
    3.BGP的对等体之间必须逻辑上联通,并进行TCP连接。目的端口号是179,本地端口号任意。
    4.BGP对等体和IGP对等体不同,BGP对等体(peer)是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居,只要TCP能够建立连接并不一定需要直连。
    5.BGP本身只负责控制路由,数据转发依然靠静态或IGP路由。
    6.BGP支持无类别域间路由CIDR。
    7.路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
    8.BGP是一种增强的距离矢量路由协议,从设计上避免了环路的发生。
    9.As之间: BGP通过携带AS Path信息标记途经的As,带有本地As号的路由将被丢弃,从而避免了域间产生环路。
    10.AS内部: BGP在As内学到的路由不会再通告给As内的BGP邻居,避免了AS内产生环路
    11.BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
    12.BGP提供了防止路由振荡的机制(路由衰减),有效提高了Internet网络的稳定性。
    13.BGP易于扩展,能够适应网络新的发展(ipv4单/组播、vpv4单/组播)。主要是通过IIv进行扩展。

    1.3 BGP分类:

    BGP按照运行方式分为EBGP (External/Exterior BGP)和IBGP (Internal/Interior BGP)。

    1.3.1 EBGP

    :运行于不同As之间的BGP称为EBGP。为了防止as间产生环路,当BGP设备接收EBcP对等体发送的路由时,会将带有本地As号的路由丢
    弃。

    1.3.2 IBGP

    :运行于同一AS内部的BGP称为IBGP。为了防止.aS内产生环路,BcP设备不将从IBGP对等体学到的路由通告给其他IBcP对等体,并与所
    有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。

    1.4 BGP的路由器号(Router-ID)

    BGP的Router-ID是一个用于标识BGP设备的32位值,通常是IPv地址的形式,在BGP会话建立时发送的open报文中携带。对等体之间建立BcR会话时,每个BGP设备都必须有唯一的Router ID,否则对等体之间不能建立BGP连接。

    BGP的Router-ID在Bc网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。缺省情况下,BGP选择设备上的Loopback接口的
    IPv4地址作为BGP的Router-ID。如果设备上没有配置Loopback接口,系统会选择接口中最大的IPv4地址作为BGP的Router-ID。
    一旦选出Router-ID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的Router-ID。

    1.5BGP工作原理

    BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和9个原则。

    1.5.1BGP的报文:

    BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:
    1)Open报文:用于协商BGP对等体的各项参数,主要包括BGP版本(V4)、AS号等信息,建立BGP对等体连接。
    open是TCP连接建立后发送的第一个报文
    2)Update报文:用于在对等体之间交换路由信息。
    连接建立后,有路由需要发送或者路由变化时,发送Update通告对端可达或者撤销路由信息及路径属性。
    3)Notification报文:用于中断BGP连接。
    当BGP在运行中发现错误时,发送Notification报文通告BGP对端,随后与之相关的邻居关系将被关闭。
    4)Keepalive报文:用于保持BGP连接。(保活)
    定时发送Keepalive报文以保持BGP对等体关系的有效性。
    响应收到的正确的Open报文
    5)Route-refresh报文:用于在改变路由策略后软复位BGP路由表请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力
    的BGP设备会发送和响应此报文。

    1.5.2 BGP状态机:.

    BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、0pen报文已发送(CpenSent) 、0oren报文已
    确认(OpenConfirm)和连接已建立.(Established)。在BG对等体建立的过程中,通常可见的3个状态是: Ide、Active和Established。
    在这里插入图片描述

    1.Idle状态是BGP初始状态。在Idle状态下,BCP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BeR

    2.在Connect状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。
    如果TCP连接成功,那么BGP向对等体发送open报文,并转至OpenSent状态。
    如果TCP连接失败,那么BGP转至Active状态,反复尝试连接。
    如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BcP对等体进行TcP连接,停留在conect状态。

    3.在Active状态下,BGP总是在试图建立TCP连接。
    如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至0penSent状态。
    如果TCP连接失败,那么BGP停留在Active状态。
    如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。
    4.在OpenSent状态下,BcP等待对等体的open报文,并对收到的open报文中的As号、版本号、认证码等进行检查。
    如果收到的open报文正确,那么BGP发送Keepalive报文,并转至openConfirm状态。
    如果发现收到的open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
    5.在openConfirm状态下,BGP等待Keepalive或wotification报文。如果收到Keepalive报文,则转至stablished状态,如果收到lotification报文,则转至Idle状态。
    6.在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。
    如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
    如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
    如果收到Notification报文,那么BGP转至Idle状态。
    如果收到TcP拆链通知,那么BGP断开连接,转至Idle状态。
    Route-refresh报文不会改变BGP状态。

    1.5.3 BGP对等体之间的交互原则:

    1)BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则:
    2)从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体
    3)从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体
    4)当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
    5)路由更新时,BGP设备只发送更新的BGP路由
    6)所有对等体发送的路由,BGP设备都会接收
    7)所有EBGP对等体在传递过程中下一跳改变
    8)所有IBGP对等体在传递过程中下一跳不变
    9)默认EBGP传递时TTL值为1
    10)默认IBGP传递时TTL值为255

    1.5.4 建立对等体注意点

    直连建立对等体需要注意的点
    建立IBGP对等体时要让下一跳可达,处于边界的IBGP对等体需要将下
    跳指向自己,这样才能建立IBGP对等体

    1.5.5 用环回口建立邻居需要注意的点

    需要修改更新源,默认更新源是物理口,需要修改成环回口。建立IBGP对等体时要保障下一跳可达,处于边界的IBGP对等体需要将下一跳
    指向自己,这样才能建立IBGP对等体
    建立BBCP对等体时因为BBGP只能传一跳,因而,在建立.EBGP对等体时,需要修改BBGP多跳的跳数为2以上(自己环回到对端环回是两跳,默
    认一跳)

    1.5.6关于为什么要用环回口建邻居

    原因是环回口稳定,只要路由器启动着,环回口就不DowN,而物理链路可能会受线路或者接口等因素的影响导致对等体关系有问题,因而
    一般BGP建立对等体都是环回口来建

    2.BGP模拟实验

    在这里插入图片描述

    1.先配置各个路由器的接口以及回环网址
    在这里插入图片描述
    2.配置各个AS内的网络协议以及AS外部的BGP协议
    在这里插入图片描述
    在这里插入图片描述

    开始配置BGP协议,我们配置R1所知,R1需要配置两个BGP。
    一个是与AR2相连的IBGP,area 100里的
    一个是与AR3相连的EBGP,area 200里的
    在这里插入图片描述

    R3这里,配置和AS100中R1相连的EBGP
    以及配置AS200内部分别和R4,R5单独相连的IBGP,
    3.再配上静态路由
    在这里插入图片描述

    R4
    在这里插入图片描述
    R5
    在这里插入图片描述
    配完之后,分别在R1上宣告R3的回环网口和在R3上宣告R1的回环网口。

    在这里插入图片描述

    在这里插入图片描述

    最后我们可以输入 dis ip routing-table 来查看

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 算法导论(MIT 6.006 第19讲) 动态规划的核心处理流程是什么? 1: 定义子问题 计算子问题的数量 ...4: 重用子问题结果并记新的结果,或者使用DP的bottom-up方式(需要注意没有) 计算总耗时 5: 解决...
  • 只讲一些自己开发中对MVP模式的体会,和一个Activity多个Fragment场景MVP的应用,和需要注意的问题。注意问题【1】首先第一点,无论是什么模式,你都需要贯彻面向接口化编程的思想 ——–M, V,P三层之间都通过...
  • FRIDA 安卓快速脱壳

    千次阅读 2020-08-24 11:06:24
    脱壳主要解决什么问题:1 针对在渗透测试中,如果遇到数据包被加密,证书被加密,则需要分析源代码,分析加密算法等 2 在红蓝对抗中,搜索一些秘钥信息以及或者遗漏的资产信息 0x01 下载某apk发现有壳 通过上...
  • 多堆栈 多个 OpenStack 环境的轻松身份验证 ... 唯一需要注意的是,某些配置项可能需要重命名以支持所有客户端。 例如,nova 客户端的一堆原始环境变量以“NOVA_”开头。 这些变量在运行 'multinova' 时仍然有效,
  • 该工具旨在保留在用户模式3)。 如果您需要内核模式(0)“ Anti-Anti-Debug”,请参阅 。 从。 ScyllaHide通过插件支持各种调试器: OllyDbg 和 v6(不支持) TitanEngine v2(版本和版本) x64dbg和...
  • poj1094

    2015-09-20 21:08:13
    题目分析:首先将大小关系转化成为拓扑图,在找入度的时候注意:若没有找到入度为0的点说明出现了即出现了矛盾;若找到多个入度为0的点则说明大小关系还不能确定,这时还需要继续找入度为0的点因为可能会找到;...
  • 61. 旋转链表

    2020-12-25 03:07:44
    需要注意的是在什么位置剪开,假如移动k步,k比链表长度小的话,需要从开头向找的是len-k步,假如k比len大,则每多len个长度相当于一步未移动,因此把多的len步排除,最后走的是len - (k-(k/len)*len)步。...
  • 3.NP_四类五类LSA

    2021-02-23 17:03:45
    上述这个拓扑,AR5是获取不到三类LSA信息,需要再AR4和AR2之间配置虚链路,再区域配置,v-link peer邻居的router-id。 注意:不能跨区域建立虚连接,只能依次建立,实现扩展区域0         OSPF区域间如果...
  • Leetcode Gas-station

    2019-02-01 19:48:52
    有n个加油站围成,i点有gas[i]升汽油,i点开到i + 1点需要cost[i]升汽油,求是否有一个点,从这点开始可以绕n个点一周。注意,过程中汽油储备不可以为负。 思路 设现在的开始点为l,一个要到的点为r,如果现在...
  • 线程安全是程序开发中非常需要我们注意的一,当程序存在并发的可能时,如果我们不做特殊的处理,很容易就出现数据不一致的情况。 通常情况,我们可以用加锁的方式来保证线程安全,通过对共享资源 (也就是要读取...
  • 2021-03-15

    2021-03-15 06:18:03
    整了一堆、然后刷两就搞好了,前面那些文档是在配置些什么鬼东西。 现在是OpenGL和GLUT的框架都有了,问题在于GLEW和GLFW,这俩要怎么配置啊?需要用到CMake吗?我是用Brew安装的呀! 要注意的就是,要细心,...
  • 需要注意的是默认图片是加水印的,最好服务器可以支持水 印的组件,否则可能会出错!如果不需要水印请到后台的UP文件夹里的upload.asp进行修改! 本程序是本人独立开发的,当然肯定有很多的不足.如果您使用了程序请保留...
  • 面试题41:一行是什么 面试题42:三筐水果各是什么 面试题43:最后剩下的是谁 第15章 反应能力 面试题1:下水道的井盖 面试题2:30秒答题 面试题3:一分钟答题 面试题4:镜子中的你 面试题5:埃及古币 面试题6:投...
  • C++程序员面试宝典

    热门讨论 2013-04-01 13:36:19
    求职者要想成功应聘,不仅需要扎实的基本功,还需要经受情商和智商的考验。 本书通过380余个面试题,对企业招聘C/C++程序员需要掌握的知识进行了系统、全面的总结,以帮助读者进行充分的面试准备,在激烈的竞争中...
  • srs audio sandbox

    2011-07-24 21:49:45
    通常情况,要达取得环绕立体声效果,除了音源必需是环绕立体声音源外,播放系统也必需要用四个声道才能实现。而早在九十年代,在音响中就已经在芯片级别上实现了虚拟环绕立体声,著名的有二种, SRS 虚拟环绕立体...
  • 一文带你搞懂API网关

    2020-12-28 06:45:32
    Dubbo, 但这里需要注意很多问题,比如参数类型,如果类型搞错了,导致转换出问题,而日志又不够详细的话,问题会很难定位。 服务发现 网关作为流量的入口,负责请求的转发&#...
  • 19、对于开发和测试环境,下列说法正确的是:开发和测试环境必须能反映生产环境 /生产环境同开发和测试环境必须分离/应按照开发和测试计划中设置的标准配置来建立环境 /为了实现对项目的控制,需要注意同步开发和...
  • 面再提示缺少什么dll 文件,都像这样解决就可以了。 二、Qt Creator 编写多窗口程序(原创) 实现功能: 程序开始出现一个对话框,按按钮后便能进入主窗口,如果直 接关闭这个对话框,便不能进入主窗口,整个程序...

空空如也

空空如也

1 2 3 4
收藏数 74
精华内容 29
关键字:

下环需要注意什么