一、NAT

1. 含义

      NAT技术(Network Address Translation,网络地址转换)是一种把内部网络(简称为内网)私有IP地址转换为外部网络(简称为外网)公共IP地址的技术,它使得一定范围内的多台主机只利用一个公共IP地址连接到外网,可以在很大程度上缓解了公网IP地址紧缺的问题。

2. 实现方式

    静态转换、动态转换、端口多路复用。

    静态转换:是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的。通过静态配置,把一个固定的私网IP地址和端口关联到一个公网地址和端口,这种方式适用于在NAT网关上把一个知名服务(如HTTP)映射到一个内部主机上。

    动态转换:是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,而是随机的,所有被授权访问Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。

    端口多路复用:是指改变外出数据包的源端口并进行端口转换,即端口地址转换(Port Address Translation,PAT)。采用端口多路复用方式,内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,避免来自Internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

3. 分类

     Full Cone NAT全锥形NAT、Restricted Cone NAT限制锥形NAT、Port Restricted Cone NAT端口限制锥形NAT、Symmetric NAT对称型NAT。

      Full Cone NAT全锥形NAT:内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,任何外部主机只要知道这个(PublicIP:PublicPort)就可以发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

      Restricted Cone NAT限制锥形NAT:内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机IP发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

      Port Restricted Cone NAT端口限制锥形NAT:内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机(IP,Port)发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,Port)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

      Symmetric NAT对称型NAT:内网主机建立一个socket(LocalIP,LocalPort),当用这个socket第一次发数据给外部主机1时,NAT为其映射一个(PublicIP-1,Port-1),以后内网主机发送给外部主机1的所有数据都是用这个(PublicIP-1,Port-1),如果内网主机同时用这个socket给外部主机2发送数据,NAT会为其分配一个(PublicIP-2,Port-2), 以后内网主机发送给外部主机2的所有数据都是用这个(PublicIP-2,Port-2).如果NAT有多于一个公网IP,则PublicIP-1和PublicIP-2可能不同,如果NAT只有一个公网IP,则Port-1和Port-2肯定不同,也就是说一定不能是PublicIP-1等于 PublicIP-2且Port-1等于Port-2。此外,如果任何外部主机想要发送数据给这个内网主机,那么它首先应该收到内网主机发给他的数据,然后才能往回发送,否则即使他知道内网主机的一个(PublicIP,Port)也不能发送数据给内网主机。

1. 类型检测

      前提条件:一个提供两个公网地址(通信地址分别设为:Endpoint1与Endpoint2)的服务器S进行UDP端口数据监听并根据客户的要求给出响应;待检测的用户可以正常进行UDP通信。

步骤1.检测主机是否位于NAT后

      为了检测IP地址是不是公网地址,主机A首先发送任意一个UDP数据包给服务器S(Endpoint1),S收到包之后,用Endpoint1将接收到数据包头的IP地址和端口打成一个UDP反馈包发送给用户A。A在收到反馈包之后,比较自身的Endpoint和反馈包中的Endpoint,如果一样则说明A不位于任何NAT之后,否则,就是位于NAT之后,这里并不能判断NAT的具体属于哪一种类型。

步骤2.检测NAT是否是全锥型

      为了检测所处的NAT是否是全锥型的,主机A向服务器S(Endpoint1)发送UDP数据包后,服务器用Endpoint2将接收到数据包头的IP地址和端口打成一个UDP反馈包发送给用户A。另外,A在发送UDP数据包后,立即开始端口侦听,设定一个等待时间上限,防止无限堵塞(因为接收是一个While循环)。这样进行若干次,如果A每次都没有收到数据包,说明A所处的NAT类型不是全锥型的;相反,在这整个过程中只要收到一次服务的包,就说明A所处的NAT类型是全锥型的。

步骤3. 检测NAT是否是对称型

      为了检测所处的NAT是否是对称型的,主机A向服务器S(Endpoint1)发送UDP数据包,服务器S(Endpoint1)在收到数据包后,用Endpoint1将接收到数据包头的IP地址和端口打成一个UDP反馈包发送给用户A。另外,A在发送数据包后,开始侦听端口并接收数据,设定一个等待时间上限,防止无限堵塞(因为接收是一个While循环)。与此同时,主机A用同一个套接字向服务器S (Endpoint2)发送UDP数据,Endpoint2发送与上面类似的UDP回馈包。在A的整个数据接收过程中,如果收到的服务器反馈数据包中标识自身的IP地址和端口存在不相同的情况,就说明NAT是对称型的,否则就不是。

步骤4. 检测NAT是限制锥型的还是端口限制锥型

     最后,为了检测所处的NAT是限制锥型的还是端口限制锥型的,主机A向服务S的Endpoint1发送UDP数据包,服务器用与Endpoint1相同的IP地址和不同的端号将带有A的Public Endpoint的UDP反馈包发送给A。另外,A在发送数据包后,立即侦听端口和并进行数据接收,设定一个等待时间上限,防止无限堵塞(因为接收是一个While循环)。重复若干次。如过在整个过程中,用户A收到S发来的数据包,就说明NAT是限制型的;否则就说明NAT是端口限制型的。

 

二、打洞

      NAT技术虽然在一定程度上解决了IPv4地址短缺的问题,在构建防火墙、保证网络安全方面都发挥了一定的作用,却破坏了端到端的网络通信。NAT阻碍主机进行P2P通信的主要原因是NAT不允许外网主机主动访问内网主机,因为NAT设备上没有相关转发表项,要在NAT网络环境中进行有效的P2P通信,就必须寻找相应的解决方案——NAT穿越打洞。

      下面分各种NAT场景(如图2)来说明UDP打洞的过程。

 

 

     假设现在有A和B通信双方,同时为了便于描述打洞过程,假定图2中的NAT类型均为Full Cone NAT:

   (a)A和B都处于公网下,无需打洞,A和B可直接P2P直连。

   (b)A处于公网,B在内网。若A去连B,由于B没有向A发送过数据,A的数据包会被B的NAT1丢弃,所以即使A知道了B通过NAT1转换后的地址和端口,也是无法连接成功的。但是由于A在公网下,所以反过来B可以连接A,P2P通信成功。
(c)A和B都处于内网,分属不同的内网,它们彼此的内网地址在外网中是没有路由的,所以发往各自内网地址的UDP数据包会发送到错误的主机或者根本不存在的主机上。由于双方都不知道对方的公网IP和端口,就会无从下手,所以要在A和B之间架设一台服务器S来为它们牵线,而且S是处在公网,以保证A和B都能连接到S。A和B登录时都首先连接S,S就会知道A和B经过NAT后的IP和端口,当A想要连接B时,就向S发出请求,S会把B经过NAT后的IP和端口告诉A,同时S向B发送A经过NAT后的IP和端口,并要求B发送数据给A,B发送数据到达A时会被A的NAT抛弃,但是B的NAT会有B发送数据到A的记录,这时A再向B发送数据时就会被B的NAT放行,因为B曾经向A的外网IP和端口发送过数据。A向B的外网地址发送消息的过程就是“打洞”的过程,一旦A与B都向对方的外网地址发送了数据包,就打开了A与B之间的“洞”,一旦应用程序确认已经可以通过往对方的外网地址发送数据包的方式让数据包到达NAT后面的目的应用程序,程序会自动停止继续发送用于“打洞”的数据包,转而开始真正的P2P数据传输。这个过程可借助于网上的一个形象比喻来理解(见图3)。

 

   (d)NAT1和NAT2是由ISP(Internet Service Provider)提供的NAT设备,提供将多个用户节点映射到有限的几个公网IP的服务。NAT3作为NAT1的内网节点将把用户的家庭网络或内部网络接入NAT1的内网,然后用户的内部网络就可以经由NAT1访问公网了(NAT4同理)。从这种拓扑结构上来看,只有服务器S与NAT1、NAT2是真正拥有公网可路由IP地址的设备,而NAT3和NAT 4所使用的公网IP地址,实际上是由ISP服务提供商设定的(相对于NAT1和NAT2而言)内网地址(这个由ISP提供的内网地址相对于NAT1和NAT2被称之为“伪”公网地址)。现在假定A和B希望通过UDP“打洞”完成P2P直连。最优化的路由策略是A向B的“伪公网”IP上发送数据包。由于从服务器S的角度只能观察到真正的公网地址,也就是NAT3、NAT4分别通过NAT1、NAT2转换的外网地址,非常不幸的是A与B是无法通过服务器S知道这些“伪”公网的地址,而且即使客户端A和B通过某种手段可以得到NAT3和NAT4的“伪”公网地址,我们仍然不建议采用上述的“最优化”的打洞方式,这是因为这些地址是由ISP服务提供商提供的,或许会存在与客户端本身所在的内网地址重复的可能性,这样就会导致打洞数据包无法发出的问题。因此客户端别无选择,只能使用由服务器S观察到的A,B的公网地址进行“打洞”操作,打洞过程与(c)类似。

   (e)A和B位于同一个NAT设备后面,并且处于同一局域网中,发出的数据包不需要路由,可进行速度较快的常规P2P通信。另外,A和B发往对方公网地址的UDP数据包不一定会被对方收到,这取决于当前的NAT设备是否支持不同端口之间的UDP数据包传输(即Hairpin转换),就算支持,应用程序也应该优先选择上述常规的P2P直连,否则势必会造成数据包无谓地经过NAT设备,这是一种对资源的浪费。

  (f)由于A和B不在一个内网中,所以相对于(e)而言,就不能不经过NAT让A和B直接相连,这样情况下就需要NAT1支持Hairpin转换,虽然目前也有很多NAT设备不支持类似这样的“Hairpin转换”,但是已经有越来越多的NAT设备商开始加入对该转换的支持中来。同理(g)(h)。

二、webrtc打洞框架

 

      Peer与STUN服务器交互采用的是STUN协议,STUN服务器返回Peer的公网地址,地址形式为[IP:port]。

      L和R都获取到了自己的局域网地址和公网地址后通过信令服务发送给对方,然后彼此都有了对方的地址。

      RFC5245定义这些地址为candidate,按照局域网 > 外网 > TURN地址的优先级顺序为candidates排序后进行打洞测试。

      打洞过程就是双方不停地往彼此的端口发包,既能收到对方发的包,也能收到自己发出去的回包,就说明打洞成功。失败的话,就通过TURN服务器进行转发。

注:以上部分描述和图挑选自网上资料与论文。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 最短路dijkstra模板

    typedef long long LL; const LL INF = 0x3f3f3f3f; LL cost[2010][2010]; //两个之间没有边,值为INF,这个操作是在输入边之前完成 LL d[2010]; //d[i]表示从源点到第i点的最短距离 bool used[2010]; //判断下标为i的点是否使用 LL V,E;//V为点的个数,E为边的个数 void dijk…...

    2024/4/11 19:25:13
  2. 医院绩效考核病案首页上报系统,智能上报轻松无忧

    2020年6⽉24⽇,国家卫⽣健康委办公厅发布《关于启动 2020 年度⼆级和三级公⽴医院绩效考核有关工作的通知》(国卫办医函〔2020〕500 号,以下简称《通知》),通知要求各有关医院应当按照《卫生部关于修订病案首页的通知》(卫医政发〔2011〕84 号)、《国家卫⽣计⽣委办公厅…...

    2024/4/13 19:59:02
  3. 8.20小记

    百度一面 -------- 后端开发1.什么是sql注入?如何防范?SQL注入本质上是一种用户输入式攻击,是程序没有对用户输入充分验证留下的漏洞。SQL注入能够成功的根本在于,程序没有对用户输入进行有效的验证。那么解决思路就很简单了,要么彻底验证用户的输入再将其并入SQL语句;要…...

    2024/5/6 0:47:09
  4. 用原生js书写购物车的逻辑和功能

    1,购物车的主体内容布局尽量用表格的布局模式 2,判断用户是否登录 代码如下,可以根据自己头部的布局来具体修改// 判断用户是否登录 var username = getCookie("username"); //如果登录成功就执行这段代码 if(username){var vip = $(`<a href=javascript:;>…...

    2024/4/22 13:38:40
  5. 以高端牌乘风破浪的飞鹤,究竟是“实力派”还是“偶像派”?

    (图片来源于网络)文 | 易不二来源 | 螳螂财经(ID:TanglangFin)国内卖得最好的奶粉是什么品牌?相信不少家有“四脚吞金兽”的父母,都能给从美素佳儿、雅培、美赞臣、飞鹤、爱他美等等品牌里,给出自己认为的答案。其中,飞鹤这个品牌,即使是还没有生育的年轻人,也应该看…...

    2024/4/19 13:11:24
  6. Python2.x和3.x的主要区别

    1. 版本说明Python 3.0在设计的时候没有考虑向较早版本相容。Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。除非为了使用旧的Python2.x项目代码或只支持2.x的第三方库,否则不推荐使用2.x…...

    2024/5/7 13:57:23
  7. MySQL中的级联删除与更新策略on delete restrict on update restrict

    MySQL中的级联删除与更新策略on delete restrict on update restrict在MySQL中,当我们执行级联删除与级联更新时,可能会执行On Delete Restrict和On Update Restrict语句,这两个语句中都可以有Restrict,No Action, Cascade,Set Null属性,我简单总结一下这些属性的含义。比…...

    2024/5/5 4:40:46
  8. 面试总结(JavaGuide)

    DispathcherServletHashMap的底层实现 JDK1.8之前底层的实现是数组+链表 结合一起使用,也就是散列表 拉链法:创建一个链表数组,数组中每一格就是一个链表。 若遇到哈希冲突,则将冲突的值写入到链表中即可。(数组+链表)jdk1.8之后使用==(数组+红黑树)==如何选用集合主要根据…...

    2024/5/6 9:00:37
  9. 红米K30体验

    旧手机定位很成问题,在野外精度几十米,实在受不了。其他原因,在市区掉线,厂家不产手机了,有点卡了。趁机以旧换新,换了个红米K30。不是至尊版,为什么?因为至尊版显然是在耍猴。新手机体验如何?优点如流畅等不说,咱说说主要感受体验:内存8G。上个手机是6G,这次买所有…...

    2024/4/25 21:30:40
  10. 学习打卡8.6-8.10

    微分方程建模 引例 导弹追踪问题概述如何建立方程总结: 专业知识 ⼗ 套⽤现有模型(可以适当改进) 求解析解 解析解 : 给出解的具体表达式 。 matlab函数注意:例题1.2.3.4.求数值解matlab函数含义注意事项例题 例1 dy = y - 2*x 自变量为x,范围为[0,2], 初始值y(0)=3 ; 因…...

    2024/5/7 16:08:36
  11. 机器学习笔记(14)—工作流程

    本文主要介绍机器学习的流程以及K折验证方法和ROC曲线评价方法。 1.流程 1.1定义问题 首先你要确定,你需要解决的问题。确定输入数据的类型,明确需要预测的分类(二分类、多分类、标量回归、向量回归、聚类等等)。明确输入输出之后确定目标函数。在开发出模型之前,这些都只…...

    2024/4/9 19:14:16
  12. 面试复习(查漏补缺)

    数据库系统原理 索引索引是帮助MySQL高效获取数据的排序好的数据结构建立的索引是存储在本地磁盘中的索引结构二叉树 红黑树 Hash表 B—Tree二叉树某些场景下二叉树有弊端,所以Mysql使用的是B+ 树来做索引当索引为以下的情况时建立索引并不会加速查询速度HashMap在JDK1.8之后将…...

    2024/4/25 18:25:44
  13. Android databinding 原理浅析

    通过一个demo来分析下 databinding的原理通过此文章,希望能明白以下问题 :1.dataBinding 是如何将生成的 impl 实现类返回给我们的?2.当视图有变化时(通过 EditText 输入),为什么 跟其绑定的 bean 的属性会改变?3.当设置了 bean 类的某个属性时,为什么跟其绑定的视图会…...

    2024/4/20 11:33:29
  14. CentOS7搭建NTP授时服务

    一、简介NTP(Network Time Protocol)时间服务器,可用于服务器之间的时间同步,使时间保持一致,对于一些对时间一致性要求高的服务(集群)很适用。在这里,主要是针对无网络的情况下,要求服务器之间时间一致。 二、NTP 主机规划 服务端 node2:192.168.71.12 客户端 node3:…...

    2024/4/12 17:15:53
  15. RealsenseD415/D435深度相机常用资料汇总

    Intel的RealsenseD400系列是2018年初推出的新款深度相机,包括RealsenseD415和D435系列,这两款相机具有小巧的外形,适用于近距离深度图像采集,具有较高的图像分辨率和采样帧率,适合做多种深度信息相关的应用开发,但是由于出来的较新,网上使用资料不如kinect系列丰富,主要…...

    2024/5/5 15:14:10
  16. 测试全流程图解

    前言 对于测试流程,大部分做测试的同学都能说个七七八八,但是对于一些细节,可能还是一知半解的,以下是对测试全流程整理的一个图谱,应该可以给大家带来一些帮助,如有不妥的地方,烦请指正。图谱...

    2024/5/1 5:41:01
  17. Logstash7.0日志收集器简介及部署

    Logstash7.0日志收集器简介及部署 Logstash介绍 Logstash是一个具有实时管道功能的开源数据收集引擎。Logstash可以动态地将来自不同的数据源的数据统一起来,并将数据标准化到你所选择的目的地(存储库)中。为各种高级下游分析和可视化用例清理和民主化所有数据。Logstash工作…...

    2024/5/1 22:49:31
  18. 巨头卡位新房赛道,与贝壳、易居相比,房多多的底牌是什么?

    房子是每个家庭绕不开的话题,近日,国内房地产交易服务赛道更是在资本的助推下风起云涌,备受关注。北京时间8月13日,贝壳找房赴美上市。上市当天股价上涨超87.2%,市值突破400亿美元。查看贝壳找房股价走势图,上市几天股价也有经历一些波动,截至目前,其市值仍高居400亿美…...

    2024/4/20 7:30:40
  19. 数据中台(一)什么是数据中台

    本文从数据中台的定义、核心能力、优点出发阐述企业数据中台建设的意义与必要性。一、数据中台定义数据中台是一套可持续“让企业的数据用起来”的机制,一种战略选择和组织形式,是依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑,构建一套持续不断把数据…...

    2024/5/5 5:03:01
  20. 08 旅游线路详情功能实现

    一 页面展示二 整体逻辑三 后端代码实现RouteServlet RouteService RouteDao、RouteImgDao、SellerDaoRouteServlet代码实现 /*** 根据id查询一个旅游线路的详细信息* @param request* @param response* @throws ServletException* @throws IOException*/public void findOne(H…...

    2024/5/5 12:45:49

最新文章

  1. 做私域,朋友圈到底该怎么发?

    说到做私域&#xff0c;很多人都会问&#xff1a;朋友圈该怎么发&#xff1f;相信大家的朋友圈早已经被各种广告攻占了&#xff0c;很多也都被大家屏蔽了。但如果要做私域&#xff0c;单纯发广告是行不通的&#xff0c;可是现在依然有很多人&#xff0c;认为做私域就是狂发朋友…...

    2024/5/7 18:58:01
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. ROS2高效学习第十章 -- ros2 高级组件之大型项目中的 launch 其二

    ros2 高级组件之大型项目中的 launch 1 前言和资料2 正文2.1 启动 turtlesim&#xff0c;生成一个 turtle &#xff0c;设置背景色2.2 使用 event handler 重写上节的样例2.3 turtle_tf_mimic_rviz_launch 样例 3 总结 1 前言和资料 早在ROS2高效学习第四章 – ros2 topic 编程…...

    2024/5/7 4:57:36
  4. Topaz Video AI for Mac v5.0.0激活版 视频画质增强软件

    Topaz Video AI for Mac是一款功能强大的视频处理软件&#xff0c;专为Mac用户设计&#xff0c;旨在通过人工智能技术为视频编辑和增强提供卓越的功能。这款软件利用先进的算法和深度学习技术&#xff0c;能够自动识别和分析视频中的各个元素&#xff0c;并进行智能修复和增强&…...

    2024/5/5 8:52:36
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/6 18:23:10
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/6 18:40:38
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/6 23:37:19
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/7 14:19:30
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/7 0:32:52
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/7 16:57:02
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/7 14:58:59
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/7 1:54:46
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/6 20:04:22
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/7 0:32:51
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/7 16:05:05
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/7 16:04:58
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/6 19:38:16
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/7 16:05:05
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/7 0:32:49
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/6 21:25:34
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/7 11:08:22
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/7 7:26:29
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/7 0:32:47
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/7 17:09:45
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57