STP原理与配置

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 

      为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STPSpanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。

二层交换网络

  •     交换机之间通过多条链路互连时,虽然能够提升网络可靠性,但同时也会带来环路问题。
  • 随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如果交换机之间仅使用一条链路互连,则可能会出现单点故障,导致业务中断。为了解决此类问题,交换机在互连时一般都会使用冗余链路来实现备份。
  • 冗余链路虽然增强了网络的可靠性,但是也会产生环路,而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题。

广播风暴

  • 环路会引起广播风暴。
  • 网络中的主机会收到重复数据帧。
  • 根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。
  • 本例中,主机A向外发送了一个单播帧,假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。SWB接收到此帧后,将其转发到SWASWCSWASWC也会将此帧转发到除了接收此帧的其他所有端口,结果此帧又会被再次转发给SWB这种循环一直持续,于是便产生了广播风暴。交换机性能会因此急速下降,并会导致业务中断。

MAC地址表震荡

  • 环路会引起MAC地址表震荡。
  • 交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。
  • 主机A向外发送一个单播帧,假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。SWB收到此数据帧之后,在MAC地址表中生成一个MAC地址表项,00-01-02-03-04-AA,对应端口为G0/0/3,并将其从G0/0/1G0/0/2端口转发。此例仅以SWBG0/0/1端口转发此帧为例进行说明。
  • SWA接收到此帧后,由于MAC地址表中没有对应此帧目的MAC地址的表项,所以SWA会将此帧从G0/0/2转发出去。
  • SWC接收到此帧后,由于MAC地址表中也没有对应此帧目的MAC地址的表项,所以SWC会将此帧从G0/0/2端口发送回SWB,也会发给主机B
  • SWBG0/0/2接口接收到此数据帧之后,会在MAC地址表中删除原有的相关表项,生成一个新的表项,00-01-02-03-04-AA,对应端口为G0/0/2。此过程会不断重复,从而导致MAC地址表震荡。

STP的作用

  • STP通过阻塞端口来消除环路,并能够实现链路备份的目的。
  • 在以太网中,二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据帧等问题,为解决交换网络中的环路问题,提出了STP
  • STP的主要作用:
  • 1.消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
  • 2.链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。

STP操作

  • STP通过构造一棵树来消除交换网络中的环路。
  • 每个STP网络中,都会存在一个根桥,其他交换机为非根桥。根桥或者根交换机位于整个逻辑树的根部,是STP网络的逻辑中心,非根桥是根桥的下游设备。当现有根桥产生故障时,非根桥之间会交互信息并重新选举根桥,交互的这种信息被称为BPDUBPDU中包含交换机在参加生成树计算时的各种参数信息,后面会有详细介绍。
  • STP中定义了三种端口角色:指定端口,根端口和预备端口。
  • 指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。
  • 根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。
  • 如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。

根桥选举

  • 每一台交换机启动STP后,都认为自己是根桥。
  • STP中根桥的选举依据的是桥IDSTP中的每个交换机都会有一个桥ID(Bridge ID) 。桥ID16位的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是065535,默认值为32768。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。
  • 交换机启动后就自动开始进行生成树收敛计算。默认情况下,所有交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样BPDU报文就可以通过所有端口转发。对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID。如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给邻居交换机。如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID字段,宣告新的根桥。

根端口选举

  • 非根交换机在选举根端口时分别依据该端口的根路径开销、对端BID、对端PID和本端PID
  • 非根交换机在选举根端口时分别依据该端口的根路径开销、对端BIDBridge ID)、对端PIDPort ID)和本端PID
  • 交换机的每个端口都有一个端口开销(Port Cost)参数,此参数表示该端口在STP中的开销值。默认情况下端口的开销和端口的带宽有关,带宽越高,开销越小。从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPCRoot Path Cost,根路径开销),并生成无环树状网络。根桥的根路径开销是0。
  • 一般情况下,企业网络中会存在多厂商的交换设备,华为X7系列交换机支持多种STP的路径开销计算标准,提供最大程度的兼容性。缺省情况下,华为X7系列交换机使用IEEE 802.1t标准来计算路径开销。
  • 运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0240,步长为16,即取值必须为16的整数倍。缺省情况下,端口优先级是128。端口IDPort ID)可以用来确定端口角色。
  • 每个非根桥都要选举一个根端口。根端口是距离根桥最近的端口,这个最近的衡量标准是靠路径开销来判定的,即路径开销最小的端口就是根端口。端口收到一个BPDU报文后,抽取该BPDU报文中根路径开销字段的值,加上该端口本身的端口开销即为本端口路径开销。如果有两个或两个以上的端口计算得到的累计路径开销相同,那么选择收到发送者BID最小的那个端口作为根端口。
  • 如果两个或两个以上的端口连接到同一台交换机上,则选择发送者PID最小的那个端口作为根端口。如果两个或两个以上的端口通过Hub连接到同一台交换机的同一个接口上,则选择本交换机的这些端口中的PID最小的作为根端口。

指定端口选举

  • 非根交换机在选举指定端口时分别依据根路径开销、BIDPID
  • 未被选举为根端口或指定端口的端口为预备端口,将会被阻塞。
  • 在网段上抑制其他端口(无论是自己的还是其他设备的)发送BPDU报文的端口,就是该网段的指定端口。每个网段都应该有一个指定端口,根桥的所有端口都是指定端口(除非根桥在物理上存在环路)。
  • 指定端口的选举也是首先比较累计路径开销,累计路径开销最小的端口就是指定端口。如果累计路径开销相同,则比较端口所在交换机的桥ID,所在桥ID最小的端口被选举为指定端口。如果通过累计路径开销和所在桥ID选举不出来,则比较端口ID,端口ID最小的被选举为指定端口。
  • 网络收敛后,只有指定端口和根端口可以转发数据。其他端口为预备端口,被阻塞,不能转发数据,只能够从所连网段的指定交换机接收到BPDU报文,并以此来监视链路的状态。

端口状态转换

  • 图中所示为STP的端口状态迁移机制,运行STP协议的设备上端口状态有5种:
  • Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。
  • Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
  • Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
  • Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。
  • Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。

BPDU

  • BPDU包含桥ID、路径开销、端口ID、计时器等参数。
  • 为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU(Bridge Protocol Data Unit)中。
  • BPDU有两种类型:配置BPDUTCN BPDU
  • 配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU
  • TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。
  • 配置BPDU中包含了足够的信息来保证设备完成生成树计算,其中包含的重要信息如下:
  • 根桥ID:由根桥的优先级和MAC地址组成,每个STP网络中有且仅有一个根桥。
  • 根路径开销:到根桥的最短路径开销。
  • 指定桥ID:由指定桥的优先级和MAC地址组成。
  • 指定端口ID:由指定端口的优先级和端口号组成。
  • Message Age:配置BPDU在网络中传播的生存期。
  • Max Age:配置BPDU在设备中能够保存的最大生存期。
  • Hello Time:配置BPDU发送的周期。
  • Forward Delay:端口状态迁移的延时。

计时器

  • 配置BPDU报文每经过一个交换机,Message Age都加1
  • 如果Message Age大于Max Age,非根桥会丢弃该配置BPDU
  • STP协议中包含一些重要的时间参数,这里举例说明如下:
  • Hello Time是指运行STP协议的设备发送配置BPDU的时间间隔,用于检测链路是否存在故障。交换机每隔Hello Time时间会向周围的交换机发送配置BPDU报文,以确认链路是否存在故障。当网络拓扑稳定后,该值只有在根桥上修改才有效。
  • Message Age是从根桥发送到当前交换机接收到BPDU的总时间,包括传输延时等。如果配置BPDU是根桥发出的,则Message Age0。实际实现中,配置BPDU报文每经过一个交换机,Message Age增加1
  • Max Age是指BPDU报文的老化时间,可在根桥上通过命令人为改动这个值。Max Age通过配置BPDU报文的传递,可以保证Max Age在整网中一致。非根桥设备收到配置BPDU报文后,会将报文中的Message AgeMax Age进行比较:如果Message Age小于等于Max Age,则该非根桥设备会继续转发配置BPDU报文。如果Message Age大于Max Age,则该配置BPDU报文将被老化掉。该非根桥设备将直接丢弃该配置BPDU,并认为是网络直径过大,导致了根桥连接失败。

根桥故障

  • 非根桥会在BPDU老化之后开始根桥的重新选举。
  • 在稳定的STP拓扑里,非根桥会定期收到来自根桥的BPDU报文。如果根桥发生了故障,停止发送BPDU报文,下游交换机就无法收到来自根桥的BPDU报文。如果下游交换机一直收不到BPDU报文,Max Age定时器就会超时(Max Age的默认值为20秒),从而导致已经收到的BPDU报文失效,此时,非根交换机会互相发送配置BPDU报文,重新选举新的根桥。根桥故障会导致50秒左右的恢复时间,恢复时间约等于Max Age加上两倍的Forward Delay收敛时间。

直连链路故障

  • SWB检测到直连链路物理故障后,会将预备端口转换为根端口。
  • SWB新的根端口会在30 秒后恢复到转发状态。
  • 此例中,SWASWB使用了两条链路互连,其中一条是主用链路,另外一条是备份链路。生成树正常收敛之后,如果SWB检测到根端口的链路发生物理故障,则其Alternate端口会迁移到ListeningLearningForwarding状态,经过两倍的Forward Delay后恢复到转发状态。

非直连链路故障

  • 非直连链路故障后,SWC的预备端口恢复到转发状态大约需要50秒。
  • 本例中,SWBSWA之间的链路发生了某种故障(非物理层故障),SWB因此一直收不到来自SWABPDU报文。等待Max Age定时器超时后,SWB会认为根桥SWA不再有效,并认为自己是根桥,于是开始发送自己的BPDU报文给SWC,通知SWC自己作为新的根桥。在此期间,由于SWCAlternate端口再也不能收到包含原根桥IDBPDU报文。其Max Age定时器超时后,SWC会切换Alternate端口为指定端口并且转发来自其根端口的BPDU报文给SWB。所以,Max Age定时器超时后,SWBSWC几乎同时会收到对方发来的BPDU。经过STP重新计算后,SWB放弃宣称自己是根桥并重新确定端口角色。非直连链路故障后,由于需要等待Max Age加上两倍的Forward Delay时间,端口需要大约50秒才能恢复到转发状态。

拓扑改变导致MAC地址表错误

  • 在交换网络中,交换机依赖MAC地址表转发数据帧。缺省情况下,MAC地址表项的老化时间是300秒。如果生成树拓扑发生变化,交换机转发数据的路径也会随着发生改变,此时MAC地址表中未及时老化掉的表项会导致数据转发错误,因此在拓扑发生变化后需要及时更新MAC地址表项。
  • 本例中,SWB中的MAC地址表项定义了通过端口GigabitEthernet 0/0/3可以到达主机A,通过端口GigabitEthernet 0/0/1可以到达主机B。由于SWC的根端口产生故障,导致生成树拓扑重新收敛,在生成树拓扑完成收敛之后,从主机A到主机B的帧仍然不能到达目的地。这是因为MAC地址表项老化时间是300秒,主机A发往主机B的帧到达SWB后,SWB会继续通过端口GigabitEthernet 0/0/1转发该数据帧。

拓扑改变导致MAC地址表变化

  • 拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项。
  • 拓扑变更以及MAC地址表项更新的具体过程如下:
  • SWC感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。
  • SWB收到SWC发来的TCN BPDU报文后,会把配置BPDU报文中的FlagsTCA位设置1,然后发送给SWC,告知SWC停止发送TCN BPDU报文。
  • SWB向根桥转发TCN BPDU报文。
  • SWA把配置BPDU报文中的FlagsTC位设置为1后发送,通知下游设备把MAC地址表项的老化时间由默认的300秒修改为Forward Delay的时间(默认为15秒)。
  • 最多等待15秒之后,SWB中的错误MAC地址表项会被自动清除。此后,SWB就能重新开始MAC表项的学习及转发操作。

STP模式

  • 华为X7系列交换机支持三种生成树协议模式。
  • stp mode { mstp | stp | rstp }命令用来配置交换机的生成树协议模式。缺省情况下,华为X7系列交换机工作在MSTP模式。在使用STP前,STP模式必须重新配置。

配置交换机优先级

  • 基于企业业务对网络的需求,一般建议手动指定网络中配置高、性能好的交换机为根桥。
  • 可以通过配置桥优先级来指定网络中的根桥,以确保企业网络里面的数据流量使用最优路径转发。
  • stp priority priority命令用来配置设备优先级值。priority值为整数,取值范围为061440,步长为4096。缺省情况下,交换设备的优先级取值是32768。另外,可以通过stp root primary命令指定生成树里的根桥。

配置路径开销

  • 华为X7系列交换机支持三种路径开销标准,以确保和友商设备保持兼容。缺省情况下,路径开销标准为IEEE 802.1t
  • stp pathcost-standard { dot1d-1998 | dot1t | legacy }命令用来配置指定交换机上路径开销值的标准。
  • 每个端口的路径开销也可以手动指定。此STP路径开销控制方法须谨慎使用,手动指定端口的路径开销可能会生成次优生成树拓扑。
  • stp cost cost命令取决于路径开销计算方法:
  • 使用华为的私有计算方法时,cost取值范围是1200000
  • 使用IEEE 802.1d标准方法时,cost取值范围是165535
  • 使用IEEE 802.1t标准方法时,cost取值范围是1200000000

配置验证

  • display stp命令用来检查当前交换机的STP配置。命令输出中信息介绍如下:
  • CIST Bridge参数标识指定交换机当前桥ID,包含交换机的优先级和MAC地址。
  • Bridge Times参数标识Hello定时器、Forward Delay定时器、Max Age定时器的值。
  • CIST Root/ERPC参数标识根桥ID以及此交换机到根桥的根路径开销。

  • display stp命令显示交换机上所有端口信息;display stp interface interface命令显示交换机上指定端口信息。其他一些信息还包括端口角色、端口状态、以及使用的保护机制等。

本章总结

问:根桥产生故障后,其他交换机会被选举为根桥。那么原来的根桥恢复正常之后,网络又会发生什么变化呢?

答:如果生成树网络里面根桥发生了故障,则其它交换机中优先级最高的交换机会被选举为新的根桥。如果原来根桥再次激活,则网络又会根据BID来重新选举新的根桥。

问:端口开销和根路径开销的区别是什么?

答:根路径开销是到根桥的路径的总开销,而端口开销指的是交换机某个端口的开销。

原文地址:https://blog.csdn.net/yy123cisco/article/details/134979751

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Online Tours & Travels Management System pay.php sql injectionLine 16 of pay.php invokes a SQL query built using unvalidated input. This call could allow an attacker to modify the statement’s meaning or to execute arbitrary SQL commands.SQL
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在windwos系统搭建typecho博客+cpolar内网穿透工具将博客发布到公共网络环境,实现远程也可以访问和操作。_windows搭建typecho
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代语法,让php更加的优雅的与html生活在一起 -->请放心, 最终生成的,或者说用户最终看到的,仍然是一个html文档, php代码中的内容不会被泄漏的。-- 将php与html代码混编的时候,大括号很容易造成配对错误,最好杜绝它 -->php标签内部代码由php.exe解释, php标签之外的代码原样输出,仍由web服务器解析。-- 所以php的流程控制语句, 都提供了替代语法,用冒号代替大括号 -->php echo '百变鹏仔'?_利用php将静态页面修改为动态页面
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔记博文内容涉及 Linux network namespace 认知以及彼此通信Demo,实际中的应用理解不足小伙伴帮忙指正不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树。_linux network namespace 多端通信 模式认知
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了一个逻辑二层(L2)网络,该网络封装在跨 Kubernetes 集群节点的现有三层(L3)网络拓扑上。使用此模型,可以为容器提供一个隔离的 L2 网络,而无需分发路由。封装网络带来了少量的处理开销以及由于覆盖封装生成 IP header 造成的 IP 包大小增加。封装信息由 Kubernetes worker 之间的 UDP 端口分发,交换如何访问 MAC 地址的网络控制平面信息。此类网络模型中常用的封装是 VXLAN、Internet 协议安全性 (IPSec) 和 IP-in-IP。_k8s网络组件对比
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安全时,我们正在讨论的是保护我们的在线空间,这是我们所有人的共享责任。网络安全涉及保护我们的信息,防止被未经授权的人访问、披露、破坏或修改。
文章浏览阅读1.3w次,点赞3次,收藏7次。尽管您可以通过 ping 命令解析出网站的 IP 地址,但是可能在浏览器中访问时仍然遇到问题,这可能是因为浏览器使用的 DNS 解析结果不同于 ping 命令使用的解析结果。可能是因为您的网络或设备上设置了防火墙,阻止了对特定网站的访问。有些国家或组织可能会对特定的域名进行屏蔽,从而阻止访问相关网站。如果您的网络使用代理服务器进行访问控制,可能会由于代理服务器的配置问题导致无法访问某些网站。即使您的网络和设备一切正常,目标网站本身可能也存在问题,例如服务器故障、维护或过载,导致无法访问。_能ping通打不开网页
文章浏览阅读839次,点赞22次,收藏19次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读2.1k次,点赞31次,收藏22次。基于微信小程序奶茶点餐外卖系统设计与实现(PHP后台+Mysql)可行性分析毕设源代码毕业设计,数据安全和系统稳定性以及团队能力和资源配备方面都具备较好的条件。因此,该项目的可行性较高。:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;微信小程序作为一种快捷、方便的移动应用形式,成为很多用户点餐外卖的首选。项目的界面和功能都可以定制,包安装运行!项目配有对应开发文档、开题报告、任务书、PPT、论文模版等。
文章浏览阅读1.8k次,点赞52次,收藏38次。本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。Lucky+Baby母婴用品网站使用 Dreamweaver、HBuilder代码编辑器、Apache服务器等开发工具,完成了系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、商品搜索功能、生成订单和查看我的订单功能、在线付款功能功能的实现过程。
文章浏览阅读1.5k次,点赞45次,收藏40次。本设计主要实现集人性化、高效率、便捷等优点于一身的人事信息管理系统,完成首页、系统用户、通知公告、部门信息、员工薪资、考勤签到、员工请假、招聘信息、应聘信息等功能模块。
文章浏览阅读1k次。该错误通常出现在数据库读取结果集数据时,比如当我们写好SQL语句从数据库读取数据时,本身应该返回结果集,再给结果集中读取数据。解决思路:这种错误一般是因为echo后面输出了一个数组导致的,或者是数组作为字符串进行拼接运算时导致的。该错误直译为:警告:mysqli_fetch_assoc函数期望参数1是mysqli的结果集,但是给了一个布尔值。这种错误是PHP解析器在解析时遇到了语法错误,直译为:解析错误:语法错误,意料之外的...该错误直译为:提示:未定义的索引:username。_array to string conversion in
文章浏览阅读2.7w次。解决http请求报错context deadline exceeded (Client.Timeout exceeded while awaiting headers)_context deadline exceeded (client.timeout exceeded while awaiting headers)
文章浏览阅读1.3k次,点赞26次,收藏24次。复杂网络是一种由大量相互连接的元素(节点或顶点)组成的网络结构,这些连接通常是非常复杂和动态的。这些网络可以在各种领域中发现,包括社交网络、生物学系统、信息技术和交通系统等。_代理建模
文章浏览阅读2.6k次,点赞76次,收藏71次。epoll详解,事件模型,ET/LT模式,并通过三个示例进行代码实现。
文章浏览阅读3.3k次。罗拉ROLA-IP是一家来自纽约的代理IP提供商,由李嘉诚先生投资建设,韩国人工智能、自动驾驶、虚拟现实方面的领军企业World IT Show投资入股,由美国纽约大学IT管理教授团队研究开发,进入中国市场6年多,全世界设有多个分子公司。接下来,我们要检查代理和防火墙的设置,因为在绝大多数情况下,它们是导致这个错误的原因,尤其是当用户使用免费代理时。对网站的访问受阻实际上是一个非常常见的错误,它既可能是由于物理原因(硬件问题)造成的,也可能是由于软件错误引起的。检查代理设置,并确保其正确配置。_无法访问此网站,检查代理服务器和防火墙
文章浏览阅读1.1k次,点赞14次,收藏20次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。_php洗车服务预约管理系统php源码
文章浏览阅读1.1k次。桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。同时,对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。
文章浏览阅读936次,点赞22次,收藏17次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读822次,点赞15次,收藏14次。在整个设计过程中,要确定可能的具体解决方案,以实现每一个小的最终目标,对于每一个小目标,我们首先必须了解一些相关的需求分析信息。除了以上作品下面是2023-2024年最新100套计算机专业原创的毕业设计源码+数据库,是近期作品,如果你的题目刚好在下面可以文末领取java源码参考。springboot基于springboot的在线考试系统。springboot基于springboot的商城购物系统。springboot基于微信小程序的智慧校园设计与实现。springboot基于用户的协同过滤算法的话题推荐。