• [整体安全] HiCert安全日报 - 2022-01-21
     News -1.BHunt恶意软件针对加密货币钱包攻击https://www.bleepingcomputer.com/news/security/new-bhunt-malware-targets-your-crypto-wallets-and-passwords/2.以色列警方被曝利用 Pegasus 间谍软件秘密监视境内公民https://www.cnbeta.com/articles/tech/1227647.htm3.黑客组织 Earth Lusca 以全球实体为目标,以获得经济利益https://securityaffairs.co/wordpress/126868/hacking/earth-lusca-campaigns.html4.时尚巨头 Moncler 确认在遭受勒索软件攻击后出现数据泄露https://www.bleepingcomputer.com/news/security/fashion-giant-moncler-confirms-data-breach-after-ransomware-attack/5.Parasol Group 确认网络攻击是其网络中断的“根本原因”https://www.theregister.com/2022/01/17/umbrella_company_parasol_group_confirms/6.俄罗斯声称已经捣毁知名勒索软件团伙REvilhttps://securityaffairs.co/wordpress/126729/cyber-crime/fsb-dismantled-revil-ransomware-gang.html7.欧盟针对一家“虚拟”电力公司进行了网络攻击演习https://securityaffairs.co/wordpress/126792/security/eu-simulation-cyber-attack.html
  • [行业资讯] 不用电池的物联网
    物联网,Internet of Things(IoT),借助传感器与软件,把实体对象连接互联网,来收集、分析、运算、传送信息,增加实体对象的运作功能。 这些可连网的「物」,从工业到生活越来越多,IBM最早预估2015年就会有一兆个物件连网,最近的具体估算是2018年有220亿个对象连网,近年的软硬件多设计连网功能,预估2025年会增加到380亿,而2030年会成长到500亿个连网物件。   数量增大,问题渐渐凸显,因为越来越多的无线连网对象,所用能源都是电池,电池有寿命需要人工更换,尤其在工业上,许多传感器受制于电池而降低功能,例如减少数据传送延长电池寿命,或受电池大小或重量的限制减低功能,最怕是正当重要运作,电池突然减弱,更不用说长期使用电池对身体健康有害,对环境造成污染。 2017年京都超大型集体电路会议,有人提出工业用无线网络电池寿命达十年的论文,可见早有人预见电池问题。 看起来物联网的问题不在「网」,而在「物」,也就是物的能源。生活上小的电器换个电池不是一回事,在工业上却是大事,有时候更换的成本大于电池,如果一个工厂连网对象的数量很多,更换电池可能疲于奔命。 有人用IBM一兆件连网物、一兆个电池,做有趣的比喻,就算电池有十年寿命,那每天也要更换2亿7千万个电池,如果电池寿命没有十年、仅有两年,那全球每个人每隔五天,就要去什么地方帮忙换个电池。 两位MIT的同学,Ben Calhoun与Dave Wentzloff,现在分别是美国维吉尼亚与密西根大学的教授,也是Everactive公司的创办人,他们的专长是超低功耗电路(Ultra Low Power Circuits)的研究,认为物联网的扩大只有一种方式,就是不用电池,改以超低功耗的电路设计,与超低功耗的无线网络。 这样与互联网衔接,不但耗电量小,而且能自动从周遭环境,如室内阳光、热能变化、无线电波、振动等取得能源,成为自带动能的设备。 这个设备首先用在蒸气祛水器(Steam Trap)的监视,蒸气虽然是很久的技术,但工业上仍多处用来制造能源,祛水器排除蒸气管路的冷凝水,使管路中的蒸气顺畅运作,如果故障,不但浪费能源,严重时导致停机,甚至有爆炸的危险。这些祛水器有的深埋地下、有的安装高层楼,维护极为不易。 两位教授的超低功耗无线网络传感器,吸引了制造祛水器的Armstrong公司,合作发展物联网的蒸气祛水监视器,就在去年为一座工厂安装了1,200个物联网祛水监视器,为厂家节省了250万美元的能源费,也减少34,000吨CO2的排放,等于7,000辆汽车从路上消失一年,也同时免于6,000万加仑(2亿2,700万公升)的水流失。 不用电池,不仅省事,也是让大家快乐的一件事,当RFID出现用在很多卡片上,对着门一晃,门就开了,感觉进入了先进的数字时代。 手机已经成为我们身体的另一个器官,让我们成为人机同体的未来人,却要让我们忍受不停的充电,不知超低功耗的组件能不能放进手机,在电力不足时还能维持基本运作,这当然是外行话。不过消费电子、特别是连网的穿戴精品,像是项链、耳环、手表,应是另一市场。 尽管如此,两位教授现在更关切疫后的经济复苏,疫情使人力减少,在重新评估新的营运之际,更需要对不容易取得信息的异地实时掌控。 Calhoun教授说,我们相信未来所有的环境与资产,都会被妥善的监控,提供足够的信息给计算机运算,让世界更有效率、更安全,让生活更美好。而我们Everactive公司,要成为这一愿景的一员,不需电池的技术,正朝着这一方向进展。
  • [技术干货] 【转载】应用魔方 AppCube 告警监控大屏应用开发开发实践 丨【玩转应用魔方】
    原文链接:https://bbs.huaweicloud.com/blogs/308960转载自:华为云社区文章作者:花溪当用户需要开发业务大屏页面,使用可视化大屏进行项目运营管理、业务监控、风险预警时,则需创建业务大屏应用来进行大屏页面的开发。本章节以开发告警监控大屏应用为例,介绍典型的大屏开发流程。告警监控大屏应用场景:产品经理、运营人员需要使用大屏来查看综合指标-全国范围的告警监控。大屏页面构想如下图所示。组件说明组件说明文本文本组件,用于展示标题,例如告警监控大屏、各区域未处理告警处理情况基本柱图分状态进行告警处理情况统计,状态分:待派单、已派单、处理中、已关闭基本折线图统计告警处理平均时长地图分地区统计告警数量基本饼图分类型统计告警数量基本折线图统计告警数量趋势1.配置数据来源并制造告警数据。该大屏页面地图、基本柱图、基本折线图、基本饼图、数据标记柱图组件显示的数据来自于后台接口,您需要在该开发页面配置所有组件用到的桥接器,配置前,需要获取所有组件调用后台的自定义接口URL。获取应用包“AppExample.zip”,在开发环境首页单击“管理”,选择“应用管理 > 软件包管理 > 软件包安装”,单击“新建”,将应用包拖入进去安装。安装后,返回到首页单击“告警服务Mock应用”,您可进入该应用查看到告警对象、脚本、服务编排和自定义接口的详细信息。        进入Appcube  https://console.huaweicloud.com/appcube/?locale=zh-cn&region=cn-north-4#/home点击进入开发环境 在开发环境首页单击“管理”选择“应用管理 > 软件包管理 > 软件包安装”单击“新建”,将应用包拖入进去安装。等待安装完成安装后,返回到首页单击“告警服务Mock应用”,您可进入该应用查看到告警对象、脚本、服务编排和自定义接口的详细信息。选择运行版本运行mock应用中“Logic > Data”文件夹下的“hab_bachCreate”脚本,不用输入入参,用于批量制造告警数据。在mock应用开发界面,可以看到所有后台逻辑(脚本、服务编排)、对象和自定义接口的详细信息。在Logic文件夹下可查看到后台接口(服务编排、脚本)的定义在Model文件夹下可查看到模型对象告警对象“hab__INF_WARN__CST”的字段信息在App视图下左下角单击“服务”,可查看到自定义接口的详细信息。其中URL用于配置在页面组件的桥接器数据源中。页面组件中桥接器数据源配置说明如下所示。组件桥接器自定义接口URL功能说明基本柱图柱状图和折线图数据桥接器/service/hab__mock/1.0.1/WarnAmountPerStatus分状态进行告警处理情况统计,状态分:待派单、已派单、处理中、已关闭。基本折线图柱状图和折线图数据桥接器/service/hab__mock/1.0.1/WarnCostPerDay统计告警处理平均时长。地图“覆盖物数据”区域下的“地图覆盖物数据桥接器”桥接器/service/hab__mock/1.0.1/WarnAmountPerRegion分地区统计告警数量接口。基本饼图饼图数据桥接器/service/hab__mock/1.0.1/WarnAmountPerType分类型告警数量统计接口。基本折线图柱状图和折线图数据桥接器/service/hab__mock/1.0.1/WarnAmountPerDay统计告警数量趋势。2.告警监控大屏应用开发。开发大屏页面 进入Appcube  https://console.huaweicloud.com/appcube/?locale=zh-cn&region=cn-north-4#/home在AppCube服务控制台,单击“进入开发环境”。登录AppCube开发环境,在首页“项目”页签下单击“业务大屏”,即可进入“DMAX AI数据可视化大屏”界面。大屏地址https://appcube.cn-north-4.huaweicloud.com/studio/index.html#/DMAX在“DMAX AI数据可视化大屏”界面,单击“新建项目”。输入项目标签和名称为“Alarm”,单击“新建”。单击左上“目录”后的“+”,选择“新建页面”。单击“AI”,选择“手绘图”。使用AI识别功能前,您需要提前配置存储。拖拽上传本地待识别的手绘图,下载”Picture.zip”,解压后获取手绘图单击“确认选择”显示“AI引擎处理中”,等待片刻。系统处理完后,可看到自动生成的可视化页面。不用校正AI结果,单击“确认”。输入页面标题“告警监控大屏”,单击“新建”。在弹出的提示框“在锁定页面告警监控大屏前,所有页面将会自动更新至最新版本。”,单击“确认”。即可进入页面开发界面。设置背景图片。在右侧“页面设置”中,勾选“背景图片”,单击“查看全部”,根据个人喜好选择背景图片单击“返回屏幕属性”配置文本组件,设置“告警监控大屏”标题。选中左上角文本组件“文本标题”,单击鼠标右键选择“高级设置”,设置文本内容为“告警监控大屏”,选择设置的文本内容,出现配置弹窗,配置文本颜色为“#F2EFEB”。配置标题对齐方式,并设置字体大小,单击“确定”。配置基本柱图组件样式,配置数据源。选择基本柱图组件,在页面右侧选择“数据”页签,配置桥接器。桥接器参数说明参数说明数据源类型该组件在页面呈现数据的来源类型。取值如下:桥接器预置:通过桥接器动态调用后台的接口来获取后台数据展示在页面上。报表:将系统中已建立的报表数据进行展示。静态数据:获取静态自定义数据展示在页面上。Excel文件:从Excel文件中获取数据。选择该类型时,您需要先下载模板,填入数据后上传模板。请确保上传的文件是基于下载的模板修改的或者格式和它相同。单击刷新按钮会重置成预置数据。请选择“桥接器预置”。桥接器实例调用的桥接器名称,从下拉框选择系统提供的预置桥接器“柱状图和折线图数据桥接器”。系统预置的桥接器可在App开发界面左侧列表单击,选择“高级页面 > 桥接器”,在“全局”页签进行查找并下载查看桥接器包中内容。桥接器包中文件解压后,一般包含三个文件:定义整个桥接器逻辑方法的js文件、定义桥接器对象模型的js文件和元数据描述json文件。当预置桥接器不满足需求时,可自定义桥接器,具体开发方法请参考自定义并上传桥接器。桥接器数据类型桥接器的数据源类型,支持“静态数据”和“AppCube API”。请选择“AppCube API”。URL若“桥接器数据类型”为“AppCube API”,该参数才会显示。请配置为自定义接口URL“/service/hab__mock/1.0.1/WarnAmountPerStatus”,检查与前提条件中安装mock应用后的公共接口URL保持一致。注意:在拷贝复制参数取值样例时,请检查复制出来的数据是否准确,不能有多余空格。共享数据是否共享数据。若“桥接器数据类型”为“AppCube API”,该参数才会显示,勾选表示某项目里多个组件调用一个公共的请求(请求路径与入参均一致才视为同一公共请求)而访问同一个接口的数据,避免多次调接口。不用勾选。刷新周期每隔多少秒调用一次后台接口,默认配置为“0”,表示只调用一次。若“数据源类型”为“桥接器预置”,该参数才会显示。配置为“30”。选择基本柱图组件,单击鼠标右键选择“高级设置”,对柱状图进行样式配置。依次设置好其他几个图表图形即可设置完成后点击发布预览就可以看到做好的大屏了预览免费版不提供运行环境,请参考购买商用租户,直接购买专业版或专享版后,再进行打包发布操作,并在运行环境安装该应用。应用魔方 AppCube 智慧烟感行业应用开发实践完成
  • [整体安全] HiCert安全日报 - 2022-01-20
    - News -1.2022年网络安全发展趋势及十大威胁预测https://mp.weixin.qq.com/s?__biz=MzI1OTA1MzQzNA==&mid=2651240452&idx=1&sn=b080d5124641a22eb877cd4110dd2f882.地缘政治引爆网络战!乌克兰多个政府系统又遭数据擦除“恐怖”袭击https://mp.weixin.qq.com/s?__biz=MzkyMzAwMDEyNg==&mid=2247524317&idx=3&sn=531d268af8a4bcda5dd2b1cf010dc7d53.抢币行动:朝鲜黑客全球大肆盗窃加密货币https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2651991614&idx=2&sn=ecd12e18efd64533747720332a118f1e4.任天堂向用户发出警告,警惕虚假网站的Switch折扣https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2651991614&idx=3&sn=c320cad44dcb4c0712f833334d3050995.勒索软件即服务是否过时了?https://mp.weixin.qq.com/s?__biz=MjM5Njc3NjM4MA==&mid=2651109956&idx=1&sn=664f265e5c0b6e42f8d2df7480b3b8366.战云密布:欧盟举行大规模网络演习测试协作机制https://mp.weixin.qq.com/s?__biz=MzI4NDY2MDMwMw==&mid=2247501011&idx=3&sn=d5e310d67e53029b9fd758e987665f477.2027 年零信任安全市场规模将达到 644 亿美元https://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651159395&idx=3&sn=ba6b92939ebbc7c43d19745d1a33c99a8.2021年度数字货币反洗钱暨DeFi行业安全报告https://mp.weixin.qq.com/s?__biz=MzU3MTU2NTU1MA==&mid=2247486346&idx=1&sn=19ea2d55e28685e4272ebe99cc184ed89.美国正在审查阿里巴巴云计算部门的国家安全风险https://mp.weixin.qq.com/s?__biz=MzI1OTExNDY1NQ==&mid=2651589113&idx=2&sn=4b2c0f48d8cbe24066f602d0aa86fc12- APT -1.2021年度中国周边APT组织活动观察与发现https://mp.weixin.qq.com/s?__biz=MjM5Njc3NjM4MA==&mid=2651109956&idx=2&sn=89eba39228f4a960843044ea287570e2
  • [经验交流] AN成熟度等级标准在实际评估项目中的应用问题
    TM Forum自动驾驶网络白皮书3.0 定义了如下自动驾驶网络等级,以指导网络和服务的自动化和智能化,评估自动驾驶网络服务的价值和优势,并指导运营商和厂商的智能升级:L0 – 人工运维:系统提供辅助监控能力,即所有动态任务都需要人工执行。L1 - 辅助运维:系统根据预先配置,执行特定的重复性子任务,以提高执行效率。L2 - 部分自动驾驶网络:系统在特定外部环境中,根据预定义的规则/策略,面向特定单元使能自动化闭环运维。L3 - 条件自动驾驶网络:在L2的基础上,系统可以实时感知环境变化,并在特定网络领域中进行自优化和自调整,以适应外部环境。L4 - 高度自动驾驶网络:在L3的基础上,系统可在更复杂的跨多网络领域环境中,实现业务和客户体验驱动网络的预测式或主动式的闭环管理,从而进行分析并做出决策。L5 - 完全自动驾驶网络:这个等级是电信网络演进的终极目标,系统具备面向多业务、多领域、全生命周期的全场景闭环自治能力。 中移动自动驾驶白皮书2021中,基于TM Forum自动驾驶网络分级框架[5]的指导原则,结合网络运维管理评估实际需求,从 指导IT系统实现角度,定义如下分级代际特征:级别0:线下人工实现;级别1:人工实现,线上记录; 级别2:自动实现,程序固化专家规则; 级别3:自动实现,规则与功能解耦,可按需灵活配置; 级别4:自动实现,规则结合AI,可持续学习、快速迭代; 级别5:自动实现,规则顺应变化自动迭代 这些评估等级标准、分级代际特征并非数字量化的描述,不同的人对标准的理解程度不一样,在实际的评估项目中,不同的人针对同一评估对象,评估出的等级可能会各不相同。这个问题怎么破?
  • [交流吐槽] 网络协议栈源码分析
    此网络协议栈源码分析是基于linux 1.2.13版本的内核源码进行分析的;在分析此代码的过程中,同时深入阅读了linux网络驱动和TCP-IP详解,先理解整体的网络概念和内核网络模块代码齐头并进,梳理出了如下的代码调用流程。如下的代码流程是从内核网络模块初始化,到插口层如何调用到内核的处理过程,针对流程和主要的数据体进行分析展示:start_kernel        sock_init          proto_init                  inet_proto_initstatic struct proto_ops inet_proto_ops = {        AF_INET,        inet_create,        inet_dup,        inet_release,        inet_bind,        inet_connect,        inet_socketpair,        inet_accept,        inet_getname,        inet_read,        inet_write,        inet_select,        inet_ioctl,        inet_listen,        inet_send,        inet_recv,        inet_sendto,        inet_recvfrom,        inet_shutdown,        inet_setsockopt,        inet_getsockopt,        inet_fcntl,};                        sock_register(inet_proto_ops.family, &inet_proto_ops);                              pops = ops; //pops指向inet_proto_ops结构体                                   pops->family = family;                        tcp_prot.sock_array                        udp_prot.sock_array                        raw_prot.sock_array                        tcp_prot.inuse = 0;                        tcp_prot.highestinuse = 0;                        udp_prot.inuse = 0;                        udp_prot.highestinuse = 0;                        raw_prot.inuse = 0;                        raw_prot.highestinuse = 0;                        inet_add_protocol(p);                              inet_protos[hash] = prot;                        arp_init();                        ip_init();          dev_init                  ethif_probe                        ne_probe(dev)                              ne_probe1(dev, base_addr);                                    request_irq (dev->irq, ei_interrupt, 0, wordlength==2 ? "ne2000":"ne1000");                                          ei_receive(dev);                                                ei_block_input(dev, pkt_len, (char *) skb->data,current_offset + sizeof(rx_frame));                                                netif_rx(skb);                                                      mark_bh(NET_BH);                                    ethdev_init(dev);                                          dev->hard_start_xmit = &ei_start_xmit;                                          dev->get_stats      = get_stats;                                          dev->hard_header        = eth_header;                                   dev->rebuild_header = eth_rebuild_header;                            dev->type_trans = eth_type_trans;                                   dev->type               = ARPHRD_ETHER;                            dev->hard_header_len = ETH_HLEN;                            dev->mtu                = 1500; /* eth_mtu */                            dev->addr_len   = ETH_ALEN;                                     /* New-style flags. */                            dev->flags              = IFF_BROADCAST|IFF_MULTICAST;                            dev->family             = AF_INET;                            dev->pa_addr    = 0;                            dev->pa_brdaddr = 0;                            dev->pa_mask    = 0;                            dev->pa_alen    = sizeof(unsigned long);                                   ei_status.reset_8390 = &ne_reset_8390;                                ei_status.block_input = &ne_block_input;                                ei_status.block_output = &ne_block_output;            bh_base[NET_BH].routine= net_bh;            enable_bh(NET_BH);net_bh      dev_transmit      //ptype_base->func = ip_rcv      pt_prev->func(skb, skb->dev, pt_prev);            ip_rcv(skb, skb->dev, pt_prev);                  ip_fw_chk                  ip_forward(skb, dev, is_frag);                  ip_acct_cnt(iph,dev, ip_acct_chain);                  ip_defrag(iph,skb,dev);//处理分片数据包                        ip_find                        ip_create(skb, iph, dev)                             ipqueue//IP fragment queue     全局队列                        ip_frag_create(offset, end, skb, ptr);                        ip_done(qp) //检测分片包是否接收完成                        ip_glue(qp); //将分片的数据包组装起来                raw_rcv //原始套接字                  ipprot->handler //网络层向传输层传输数据包                     tcp_rcv                     udp_rcv                          ip_chk_addr(daddr);                             udp_check(uh, len, saddr, daddr)                             udp_deliver(sk,uh,skb,dev, saddr, daddr, len);                                   sock_queue_rcv_skb(sk,skb).  //将数据包挂接到sk变量表示的套接字的接收队列中                                    //将数据包插入到接收队列尾部,并通知可能等待读取数据被置于睡眠的进程进行数据包的读取 sk->data_ready = def_callback2                                         //def_callback2(sk,skb->len);                                    sk->data_ready(sk,skb->len);  //Now tell the user we may have some data.                               release_sock(sk);                                         sk->prot->icv                     icmp_rcv      dev_transmitsys_socketcall      sock_socket            ops = pops;            sock = sock_alloc();                  inode = get_empty_inode(); //申请一个文件节点                  sock = &inode->u.socket_i;            sock->type = type;            sock->ops = ops;            sock->ops->create(sock, protocol)                  inet_create(sock, protocol)                        sk = (struct sock *) kmalloc(sizeof(*sk), GFP_KERNEL);           sk->num = 0;              sk->reuse = 0;           switch(sock->type)             case SOCK_STREAM:                     case SOCK_SEQPACKET:                                   protocol = IPPROTO_TCP;                 sk->no_check = TCP_NO_CHECK;                                  prot = &tcp_prot;             case SOCK_DGRAM:                protocol = IPPROTO_UDP;                sk->no_check = UDP_NO_CHECK;                prot=&udp_prot;             case SOCK_RAW:                Sk->reuse = 1;                sk->no_check = 0;                prot=&raw_prot;                sk->num = protocol;             case SOCK_PACKET:                Sk->reuse = 1;                sk->no_check = 0;                prot=&packet_prot;                sk->num = protocol;              sk->socket = sock;           sk->nonagle = 1;           sk->nonagle = 0;           sk->type = sock->type;                 sk->stamp.tv_sec=0;           sk->protocol = protocol;           sk->wmem_alloc = 0;           sk->rmem_alloc = 0;           sk->sndbuf = SK_WMEM_MAX;           sk->rcvbuf = SK_RMEM_MAX;           sk->pair = NULL;           sk->opt = NULL;           sk->write_seq = 0;           sk->acked_seq = 0;           sk->copied_seq = 0;           sk->fin_seq = 0;           sk->urg_seq = 0;           sk->urg_data = 0;           sk->proc = 0;           sk->rtt = 0;                            /*TCP_WRITE_TIME << 3;*/           sk->rto = TCP_TIMEOUT_INIT;             /*TCP_WRITE_TIME*/           sk->mdev = 0;           sk->backoff = 0;           sk->packets_out = 0;           sk->cong_window = 1; /* start with only sending one packet at a time. */           sk->cong_count = 0;           sk->ssthresh = 0;           sk->max_window = 0;               sk->urginline = 0;           sk->intr = 0;           sk->linger = 0;           sk->destroy = 0;           sk->priority = 1;           sk->shutdown = 0;           sk->keepopen = 0;           sk->zapped = 0;           sk->done = 0;           sk->ack_backlog = 0;           sk->window = 0;           sk->bytes_rcv = 0;           sk->state = TCP_CLOSE;           sk->dead = 0;           sk->ack_timed = 0;           sk->partial = NULL;           sk->user_mss = 0;           sk->debug = 0;                        sk->max_unacked = 2048;           sk->max_ack_backlog = 0;           sk->inuse = 0;           sk->delay_acks = 0;           skb_queue_head_init(&sk->write_queue);           skb_queue_head_init(&sk->receive_queue);           sk->mtu = 576;           sk->prot = prot;           sk->sleep = sock->wait;           sk->daddr = 0;           sk->saddr = 0 /* ip_my_addr() */;           sk->err = 0;           sk->next = NULL;           sk->pair = NULL;           sk->send_tail = NULL;           sk->send_head = NULL;           sk->timeout = 0;           sk->broadcast = 0;           sk->localroute = 0;           init_timer(&sk->timer);           init_timer(&sk->retransmit_timer);           sk->timer.data = (unsigned long)sk;           sk->timer.function = &net_timer;                     sk->timer.expires = 10;             add_timer(&sk->timer);           skb_queue_head_init(&sk->back_log);           sk->blog = 0;           sock->data =(void *) sk;           sk->dummy_th.doff = sizeof(sk->dummy_th)/4;           sk->dummy_th.res1=0;           sk->dummy_th.res2=0;           sk->dummy_th.res2=0;           sk->dummy_th.urg_ptr = 0;           sk->dummy_th.fin = 0;           sk->dummy_th.syn = 0;           sk->dummy_th.rst = 0;           sk->dummy_th.psh = 0;           sk->dummy_th.ack = 0;           sk->dummy_th.urg = 0;           sk->dummy_th.dest = 0;           sk->ip_tos=0;           sk->ip_ttl=64;           sk->ip_mc_loop=1;           sk->ip_mc_ttl=1;           *sk->ip_mc_name=0;           sk->ip_mc_list=NULL;           sk->state_change = def_callback1;           sk->data_ready = def_callback2;                     wake_up_interruptible(sk->sleep);             sock_wake_async(sk->socket, 1);           sk->write_space = def_callback3;           sk->error_report = def_callback1;                        //Add a socket into the socket tables by number.          put_sock(sk->num, sk);          sk->dummy_th.source = ntohs(sk->num);           err = sk->prot->init(sk);            fd = get_fd(SOCK_INODE(sock); //fd = get_fd(sock->node);                  file = get_empty_filp();           static struct file_operations socket_file_ops = {        sock_lseek,        sock_read,        sock_write,        sock_readdir,        sock_select,        sock_ioctl,        NULL,                   /* mmap */        NULL,                   /* no special open code... */        sock_close,        NULL,                   /* no fsync */        sock_fasync};             file->f_op = &socket_file_ops;        file->f_mode = 3;        file->f_flags = O_RDWR;        file->f_count = 1;        file->f_inode = inode;        inode->i_count++;        file->f_pos = 0;recvfrom      sys_socketcall            sock_recvfrom                  inet_recvfrom                        udp_recvfrom                             skb_recv_datagram                                   interruptible_sleep_on(sk->sleep);  //阻塞进程进入睡眠                               skb_copy_datagram(skb,sizeof(struct udphdr),to,copied);                               skb_free_datagram(skb);sendto      sys_socketcall            sock_sendto                  udp_sendto(sk, &sin, from, len, flags);                        udp_send(sk, &sin, from, len, flags);                             //ip_queue_xmit(sk, dev, skb, 1);                             sk->prot->queue_xmit(sk, dev, skb, 1);  //queue_xmit = ip_queue_xmit                                   ip_fw_chk                                   ip_loopback(dev,skb);                                         ip_queue_xmit(NULL, dev, newskb, 1);                                   dev_queue_xmit(skb, dev, SOPRI_NORMAL)                                   //ei_start_xmit(skb, dev)                                   dev->hard_start_xmit(skb, dev)  //dev->hard_start_xmit = &ei_start_xmit;                                   ei_start_xmit(skb, dev)read      sock_read            inet_read                  sk->prot->read //udp_read                        udp_read                             udp_recvfrom
  • [问题求助] Tensorflow网络脚本训练(ModelArts)output中没有输出
    【功能模块】【操作步骤&问题现象】1、我在看老师上课视频,边看边动手,但是最终老师的有输出,我的没有输出,我所看的课程是图一所示,链接如下2、昇腾CANN训练营-模型营第二讲——Tensorflow网络脚本训练(ModelArts)_哔哩哔哩_bilibili3、在obs中的结果截图,老师的结果如图二所示,我的结果为图三4、老师的有输出,我的没有输出,我在想是因为数据集的问题吗,我没有老师所用的数据集5、我在pycharm中的运行结果如图四所示【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [交流分享] 5G网络的普及和服务器会产生怎样的联系呢?
    在通信领域里面5G可谓是这几年来最热门的词汇,关于5G的争论也从未停止过。有人觉得5G名过于实,对现实生活根本起不到什么作用,觉得跟自己没什么关系。也有人觉得5G是我们提升国际地位的一大步棋,有很重要的战略意义…那么5G和服务器有什么关系呢?下面简单分析下。计算场景的拓展有望带来新的服务器需求增量服务器,作为计算的基础资源,其解决的核心问题就是数据的处理、存储和计算。随着联网数据的增加,计算场景的复杂,对服务器的需求量和需 求点也将发生变化。未来几年计算场景的变化,将是边缘计算的崛起,以及这种计算场景对服务器需求的变化:对边缘服务器的需求。云计算的崛 起直接拉动了服务器的新一轮的需求增长。我们认为,5G带动的边缘计算 产生的数据计算和存储量,有望指数级别的增长,这或将进一步推动服务器的增长。边缘计算与云计算的不同5G带动的边缘计算场景使得通信网络更加去中心化,需要在网络边缘部署小规模或者便携式数据中心,进行终端请求的本地化处理,以满足 URLLC和 MIoT的超低延时需求5G的三大应用场景决定了大量的5G业务不是由核心网后端的云平台来处理,而是由处于网络边缘的本地数据中心来处 理。因此,5G的发展将会推动边缘数据中心的发展,大量部署在网络边缘 的小规模或者便携式数据中心将不断涌现。边缘计算需要什么样的服务器?5G推动的边缘计算与云计算在计算架构、算力分配、应用场景、外部环境 等方面存在一定程度的不同。这些差异导致对服务器的需求特性也将发生 变化。我们认为,5G对服务器需求点的变化,主要包括以下几个方面:1) 异构计算的需求:边缘计算场景下数据更加多样化,包括文本、语音、图 像、视频等,异构计算需求增加。2)部署运维的需求:边缘计算需要对异 构服务器进行统一的运维管理接口,以及业务自动化部署。3)环境匹配的需求:边缘服务器部署的环境相对比较复杂,空间、温度、承载、电源系 统等方面都存在较大的差异。边缘计算对服务器的需求量有多大? 关于服务器需求量的预测,我们也只能是从定性分析的角度来给出大概量级。我们可以的得出以下判断:1)未来5G带动的边缘计算有望使得网络 流量的增加幅度或将至少在一个数量级(10 倍)以上。2)数据量的增加 有望推动对数据处理和存储等计算资源需求的增加,对其需求的增加幅度 或将与数据量增加的幅度保持线性或者非线性(指数级)增长。3)对计算资源需求的背后,是服务器存储等基础设施的支撑我们认为,对服务 器的需求或将与数据量的增加,保持线性或者非线性的增长。风险提示:边缘计算对服务器需求低于预期的风险,技术进程低于预期。
  • [行业资讯] 云物联网平台:18个考虑因素
    通常,云物联网平台在安全功能、协议、数据格式、数据分析和可视化能力,以及所提供的应用环境方面进行比较。有很多云物联网平台,它们可能拥有全套功能,但可能仍然无法胜任客户任务需求。一个物联网云平台可能拥有最重要的功能,但可能还有其他因素使其不太适合客户需要。 最近的一项研究发现了在考虑平台时需要考虑的18个因素,这些因素可以成为组织选择云物联网平台的通用方法。虽然组织可能仍然需要对自己的需求进行初步分析,并深入了解关键平台功能,但这些发现可以作为评估和选择的起点。 稳定性 尽管目前市场上有数百个平台,但其中许多平台可能存在问题。它们甚至可能无法向最终用户提供服务。这是买家最关心的问题。研究中约 93% 的受访者认为平台稳定性是一个非常重要的因素。 可扩展性和灵活性 随着部署开始随着时间推移而扩展,云物联网平台必须能够无缝适应不断增长的物联网设备群和更大数量的物联网数据。因此,您需要一个能够与业务一起成长并在各个开发阶段为其提供支持的平台。同样,技术的灵活性也不应该成为问题。 定价模式和商业案例 由于各种原因,这可能是一个区别因素。例如,一些平台供应商以较低的成本让您起步,并在初始阶段后提高定价。其他平台价格低廉,但功能有限,一旦您需要升级到功能齐全的平台,您最终将需要支付更多。 安全 设计安全已经成为物联网平台世界的标准。这可能包括各种项目,如设备到云网络安全、应用程序身份验证、包括身份验证和证书在内的云和设备安全以及数据加密等。 上市时间 一些平台供应商会给客户提供支持包,以帮助其产品开发并缩短上市时间。其他平台还提供内部专业知识,全程帮助客户。因此,请了解平台提供商如何在售后环境中帮助用户。 数据所有权 提取和处理物联网数据伴随着数据所有权的问题。根据管辖国家/地区的不同,您有各种不同的法律解释、规则和规定。在选择云物联网平台之前,查看对物联网平台提供商具有约束力的数据权利和数据保护法规可能会有所帮助。 数据分析和可视化 并非所有云物联网平台都有内置的数据分析和可视化工具。因此,在选择供应商时,请寻找能够为您提供提取、聚合和分析数据的能力,同时提供数据可视化工具或集成的平台提供商。 与现有基础设施兼容 物联网设备可与许多不同的基础设施协同工作,物联网平台越来越独立于硬件。尽管如此,组织仍需要确保他们选择的物联网平台适用于老一代技术。平台应最终与现有基础设施兼容。 协议支持 组织应该瞄准一个能够支持各种协议及新协议并使其能够轻松升级这些协议的物联网平台。 互操作性 在选择平台之前必须了解所选物联网平台是否能够与其他(开源)环境集成。 冗余和灾难恢复 由于错误总是会发生,组织应确保其物联网平台提供专用基础设施,以在不可预见事件期间保护数据和其他资产的完整性。这可能包括定期数据备份和故障转移配置等。 吸引人的界面 易于使用的界面对于组织范围内的物联网平台采用至关重要,因为该平台将由包括技术和非技术在内的各种人员使用。所有服务和功能都应该易于访问和直观。 应用环境 具有云 IDE 或可集成物联网开发环境的物联网平台正变得越来越流行,因为它们显著加快了物联网部署。在选择平台时,组织应该考虑所提供的应用程序开发环境、通用接口等。 平台迁移 随着公司的成长并开始扩大规模,或者随着技术需求的变化,给定的云物联网平台可能不再能够响应公司的需求。因此,组织可能不得不迁移到另一个供应商。因此,应考虑平台迁移的可能性,以便潜在迁移到其他物联网平台。 混合云 对于一些组织来说,混合云是一个不太重要的要求。但在公司需要在本地处理敏感数据或任务关键流程,而将不太关键的操作留给云物联网平台管理的情况下,混合云可能变得很重要。 带宽 物联网平台需要低延迟和高带宽。它们需要能够有效地传输设备数据,并促进物联网生态系统内各个层和组件之间的通信。 边缘智能与控制 边缘计算被认为是物联网的未来。同样,云物联网平台正在向物联网网络边缘转移。因此,除了云计算之外,平台提供商开始将边缘功能整合到他们的物联网产品中,并扩展到整个物联网基础设施。云物联网平台不再仅仅是一种云服务,而是越来越面向分布式边缘智能。为了促进在物联网边缘本地处理数据的连网设备的工作,这些平台需要能够支持新的拓扑结构并结合边缘功能。 经验 拥有成功的前期部署历史和在预期应用领域内经验丰富的坚实团队通常是一个好选择。(编译iothome)
  • [公告] 华为数通网络设备开放社区上线
    请访问这里进入社区。对华为数通设备集成过程中有任何疑问和需要的帮助请在讨论区发帖,我们会有专家团队支持。
  • [行业资讯] 2021年全球物联网支出将增长 24%,主要是对物联网软件和物联网安全的投资
    重要见解2020 年企业物联网 (IoT) 的整体支出增长 12.1%,达到 1289 亿美元。亚太地区(APAC)增长最快(17.0%),其次是北美(14.9%)和欧洲(9.7%)。2021 年企业物联网支出预计将在 2021 年增长 24.0%。2021 年以后,预计物联网支出将以每年 26.7% 的速度增长。为什么重要?随着 COVID-19 的消退,技术市场将在 2021 年重新加速。物联网仍然是一个高速增长的市场,在整个技术堆栈中都有机会。根据整个企业物联网市场的最新报告,2020 年企业物联网解决方案的支出增长了 12.1%,达到 1289 亿美元。COVID-19 大流行对物联网市场的不同领域产生了截然不同的影响。例如,2020 年物联网硬件支出增长 5.4%,而物联网云/基础设施服务支出同期增长 34.7%。由于旅行停滞和资本支出预算被冻结,许多硬件安装被推迟。与此同时,软件工具,尤其是那些可以应对大流行的软件工具(例如,基于物联网的远程资产监控)和那些分配给运营支出的软件工具,看到的负面影响较小,在极少数情况下甚至是大流行导致的促进。中国通过迅速果断的行动成功地限制了大流行的影响。因此,企业物联网支出增长了 23.5%,几乎是全球平均水平的两倍。尽管大流行对物联网预算持续产生负面影响,但物联网分析预计 2021 年物联网支出将增长 24.0%,到 2021 年底整体市场将达到 1598 亿美元。许多人预测的后 COVID-19 数字化推动力已经可以感受到,物联网分析团队认为,越来越多地使用数字技术将导致物联网支出的复合年增长率 (CAGR) 为 26.7% 2022 年至 2025 年之间。与此同时,正如去年报告的那样,全球物联网连接数量预计将达到 310 亿,是十年前的十倍。细分视图由于低油价,石油和天然气行业的物联网支出在 2020 年受到重创,降幅远超全球平均水平。另一方面,在电子商务和网上购物热潮的推动下,仓储公司的物联网支出在 2020 年增长了 22.3%。相比之下,汽车行业的物联网支出则喜忧参半。2020 年中国汽车制造商的物联网支出增长了近 20%,而欧洲和南美的增长速度低于平均水平。2021 年物联网支出前景显示,制药、金属和能源领域是增长最快的领域之一。区域视图欧洲物联网企业解决方案的支出在 2020 年增长了 9.7%,而北美和亚太地区分别增长了 14.9% 和 17%。区域差异可以通过大流行和相关企业支出行为的演变来解释。对 COVID-19 爆发的立即和强烈反应帮助亚太地区迅速反弹。例如,中国的企业物联网市场在 2020 年增长了 23.5%。2021 年物联网支出展望:2021 年,对数字化的持续推动预计将导致世界所有主要地区的增长更快,亚太地区领先,其次是北美和欧洲。技术的观点2020 年,公司在物联网安全方面的支出增加了 40.3%。备受瞩目的安全攻击激增导致公司增加在网络和物联网安全领域的支出。媒体中可见的物联网网络安全事件,例如2019 年末亚马逊 Ring 相机遭到黑客攻击,导致人们越来越意识到需要更好地保护物联网设备。相应地,最近的一项调查发现,在大流行期间,绝大多数信息技术专业人员在员工中实施了更强的网络卫生,并计划在 COVID-19 之后继续优先考虑该主题。其他支出显着增加的领域包括用于物联网部署和物联网软件应用程序的云基础设施。物联网软件应用的增长预计将在未来几年加速。例如,在短短的几年中,预测性维护已经移动从一个不确定的,独立的利基应用到投资回报(ROI)的应用程序,提供可衡量的价值给用户一个快速增长的,高回报。IoT Analytics 预计,在未来几年内,具有非常强大 ROI 配置文件的 IoT 应用程序将以高于市场平均水平的速度增长。2020 年物联网硬件支出的增长速度低于 2020 年物联网软件支出的增长。 2020 年,公司在计算机、网关、传感器、芯片组和其他硬件上的支出增加了 5.4%,作为其物联网解决方案的一部分。同一时间段内,在特定市场子集(例如蜂窝物联网模块)上的支出下降了 8%。2021 年值得关注的一个领域是在物联网芯片组(物联网硬件的一部分)上的支出。预测 2021 年将出现强劲增长;然而,持续的供应问题可能意味着即使到年底也无法满足需求。
  • [开发资源] 告警回调接口无法获取告警结果解决方法
    通过xshell登录1800管理后台,登录用户名默认为admin,密码通常需要设置新密码,登录后输入su切root,输入root密码,如果忘记密码可以登录portal,重置密码。切root登录成功后执行如下命令1、cd /opt/log/ivs_imgu/run/,切换到日志目录2、tail -f *.log | grep sendRequest,在触发告警的情况下查询日志中sendRequest,如果1800推送告警失败会返回下图中错误如果没有触发上图中错误信息,可以查看一下log.xml中是否开启了debug日志,具体命令如下sed -i "s#<DebugLogSwitch>.*#<DebugLogSwitch>True</DebugLogSwitch>#g" /home/ivs_imgu/config/log.xmltail -f /opt/log/ivs_imgu/debug/*.log | grep sendRequest判断1800推送日志失败后,首先考虑是否网络异常,网络异常可以先看一下1800和客户端的连接情况,执行下述命令。ssh -v -p port username@ip这样的网络就是通的这样的网络就不通确认网络不同后可以先了解用户使用的1800版本,了解用户组网关系,配置好组网,组网配置可以参考产品文档,配置NAT映射如果网络映射配置好以后还无法解决,那么要看一下用户侧网卡配置,防火墙配置
  • [行业资讯] 10个新兴的物联网职业机会
    不可否认,我们的世界充斥着各种连网设备,从智能手机和智能手环到智能家电不等。将设备与传感器、软件和其他技术相集成,可以让它们相互通信,并让使用它们的人实现各种目的。 物联网 (IoT) 是一个复杂且有时模棱两可的话题。然而,对于那些有兴趣为这个不断发展的工作领域做出贡献的人来说,这里有无数的机会。一些将从物联网技术中受益的行业包括农业、制造业、医疗保健和消费电子产品等。 如果您有兴趣为这一工作领域做出贡献,那么以下是物联网世界中一些值得探索的新兴职业机会。 1、数据分析师 因为有大量关于物联网设备的数据,所以需要有人对这些数据集进行分类并解读它们。数据分析师非常受欢迎,全球各地的企业都在寻找能够处理数据的专业人士。 从数据中得出结论,并使用基于统计的语言(如R和SAS)的个人对企业来说将是宝贵的资产。那些有兴趣成为数据分析师的人可以通过了解 Python 和 Panda 使自己更具价值。 2、物联网/软件开发人员 没有物联网开发人员,就没有物联网。开发人员设计允许连网设备正常运行的应用程序。物联网和软件开发在日常工作中严重依赖应用编程接口(API)。 无论是 Java 还是 C++,必须要有扎实的计算机学科背景。随着越来越多的公司将 NetSuite 集成到他们的运营中,雇佣管理员来管理软件将变得更加有必要。随着 NetSuite 管理员的薪水在过去四年中增长了6.2%,这个角色变得越来越前途光明。 3、网络安全专业人员 试图保护物联网设备免受恶意网络攻击和潜在黑客的攻击是一项挑战,但正是出于这个原因,企业聘请了网络安全专业人员。随着越来越多的设备成为我们互联世界的一部分,网络安全攻击的风险将成倍增加。 安全是所有行业企业面临的一个重要问题,因此有必要聘请网络安全专家来帮助减轻网络安全威胁。 网络安全专业人员必须不断研究和评估潜在威胁,以确保设备正常运行。 4、3D打印工程师 将 3D 打印与物联网技术相结合,可以使智能设备更高效。 3D 打印作为一个行业在过去几年得到了发展,而且没有放缓的迹象。随着物联网和3D打印应用的出现,对工程师的需求将越来越高。工程师将能够利用3D打印技术开发和创建新的物联网设备。 3D打印工程师将帮助各个行业提高运营效率,特别是在制造业和消费电子行业。 5、电网现代化工程师 我们传统的电网运营已经过时,目前正在努力使电网现代化,以提高性能。在向先进电网过渡期间,具有物联网技术背景的能源市场专业人士将备受追捧。作为电网现代化工程师,使用最新的物联网技术来帮助实现电网现代化是必要的。 6、测试工程师 一旦物联网产品被开发出来,就必须测试它们的功能并确保它们以应有的方式工作。作为一名测试工程师,需要具备物联网流程方面的知识,以验证其是否处于正常工作状态。 工程师将负责测试新物联网设备的可用性、安全性、连接性、兼容性和整体性能。由于物联网设备的数量和规模不断增长,工程师将在其开发中发挥关键作用。 7、可穿戴技术开发人员 到2022年,可穿戴设备的数量预计将增长到10亿以上,开发人员将帮助实现这一预期。小型传感器正变得越来越普遍,这意味着可穿戴设备的增加将需要一支劳动力来支持其发展。 设计既实用又时尚的可穿戴设备是开发人员应该面对的挑战。然而,对于那些对物联网技术感兴趣的人来说,这可能是一个相当有回报的职业。 8、云计算专家 有证据表明,物联网技术的发展也需要对传统云计算软件进行改进。现在云计算面临的一个问题是延迟。 由于物联网技术可以跨设备无缝通信,因此它是解决当前谷歌、微软和亚马逊等主要科技公司面临的延迟挑战的可行解决方案。 9、物联网解决方案工程师 随着越来越多的物联网技术被应用到业务中,为客户提供解决方案将是必不可少的。如果企业对其物联网选项感到不知所措,物联网解决方案工程师可以介入,以评估他们的需求,并为他们的日常问题提供可行的解决方案。 由于物联网技术为企业带来了如此多的价值,因此找到合适的解决方案将是实施的重要一步。在寻求成为物联网解决方案工程师时,能够与他人合作将是一项至关重要的技能。 10、物联网架构师 最后但同样重要的是物联网架构师。 物联网架构师负责规划、开发和部署物联网解决方案。为物联网技术创建一个可持续且合适的架构在未来将是至关重要的。其中物联网架构师需要兼具商业敏锐度、技术专长和交付技能。 由于物联网技术的快速发展,未来将会出现更多新的职业机会。(编译iothome)
  • [其他] 基因组数据自动建模工具-AutoGenome-SHAP的模型解释
    基于SHAP的模型解释模型的可解释性是很重要的,每个机器学习应用和系统都离不开的理解和模型解释,尤其是针对复杂行业的人工智能系统。模型可解释性能够指导模型改进,帮助业务人员理解模型做决定的依据,以评估模型的好坏。对于开发人员而言,只有充分了解模型的可解释性,才能更有效地优化和选择模型。SHAP是重要的模型可解释工具之一,它采用合作博弈的贡献和收益分配来量化每个特征对模型所作出的贡献。给定深度学习模型,SHAP可以计算每个特征对整体预测的边际贡献,即SHAP值,由此对每个特征的重要性进行可视化排序。基因组数据自动建模工具-AutoGenome为了使生物医疗的研究工作者更方便地使用先进的深度神经网络结构,AutoGenome,集成了超参自动搜索,神经网络结构搜索和自动模型解释器的功能。1,AutoGenome架构AutoGenome是能够帮助科研工作者在基因组学数据上实现端到端的深度学习网络搜索,训练,评估,预测和解释的工具包。对于监督学习任务,用户提供基因矩阵数据作为输入,并且提供JSON配置文件。然后AutoGenome会根据文件设置的搜索空间,自动搜索出最佳的RFCN-MLP,RFCN-ResNet,RFCN-DenseNet和RRFCN网络。AutoGenome可根据最优网络评估模型的效果,也可以通过计算SHAP值对特征重要性进行可视化。对于非监督学习任务,AutoGenome可以根据所输入的数据和搜索空间的设定,选出最优的Res-VAE模型,并能方便地到潜变量矩阵和重构矩阵。2,AutoGenome使用方法在开发过程方面,AutoGenome对于人工智能的初学者非常友好,只需5行代码即可快速完成端到端的基因组数据建模,准确性评估和模型解释。AutoGenome可以直接返回最优的人工智能模型,以及模型分类的混淆矩阵和模型可解释性的图谱。同时,AutoGenome已经被证明在多项任务的性能上都达到了业界最优,自动生成的模型可解释性图谱可以直接用于生物标志物的发现或着论文发表。AutoGenome在华为云ModelArts一站式人工智能开发管理平台上可以免费使用,ModelArts,创建Notebook开发环境,在ModelArts Exampl中的EIHealth labs界面即可看到免费提供的AutoGenome案例,可通过ModelArts强化学习进行风格多样化的模型训练,利用自动化,风格权重配比等技术,能够自动化地获取得多种风格游戏。
  • [技术干货] 物联网通讯协议里面WIFI、蓝牙、ZigBee都有哪些优劣势
    虽说目前物联网处于发展阶段,但是目前已经有越来越多的智能终端设备慢慢走进不少家庭,扮演者我们生活中的智能小帮手。今天我们就来一起聊聊智能家居中通常会用到的一些连接方式还有各个设备之间互联互通的通讯协议,以及它们之间的优劣势。  首先讲讲WiFi这个通讯协议,也就是无线局域网,它的优点呢就是传输速率快,设备响应及时。缺点的话就是同时在线设备不多,多了就容易掉线,一般在十几二十个设备的样子,功耗也是比较大的,一般都需要给设备供电。像现在国内手机厂商小米的大多数生态链产品都是采用WiFi连接通讯。  蓝牙连接方式其优点在于功耗较低,传输速率也比较快。缺点就是传输距离比较短,一般在5-10米,设备间也是点对点之间的通讯传输,所以更多的会用在智能穿戴设备上,像智能手环蓝牙耳机等等。  ZigBee通讯协议呢算是目前市面上家用智能终端中使用最多的通讯协议。其优点在于功耗低,设备之间互联互通,单一设备掉线其他设备之间互不影响,通过网关作为一个中间站来收发终端之间传输过来的信息,各个设备之间组成蜂窝网,可连接节点最多可达300多个,一般家庭场景完全可以满足,所以也深受各大集成商,智能智造厂商的青睐。
总条数:3239 到第
上滑加载中