计网学习笔记 wireless mobile networks

news2024/11/27 18:28:38

无线局域网的组成

无线网络在近些年来一直是个非常流行的东西。现在的移动用户数量已经大大超过了有线用户数量,比例大于5:1。

实现无线网络的挑战性

从有线到无线是网络构建上一个伟大的设想,挑战性主要集中在wirelessmobility两个点上。

这两个是不同的概念!不要混为一谈!两个概念不等价,虽然很紧密。

  • wireless无线:如何使用无线链路进行通信

  • mobility移动性:如何处理改变网络连接点的移动用户,即用户可以随时改变接入节点(mobile的节点链路不一定是无线的,有线网络也有着随时拔线插线的问题,这也是一个移动性问题)

组成无线网络的元素

根据无线网络中所处位置的不同,我们可以将组成元素分为三类:

  • wireless hosts无线终端:

    • 包括笔记本电脑、手机
    • 负责运行应用程序
    • 可以是固定的,亦可以是移动的
  • base station基站:

    • 例子有cell towers, 802.11 AP
    • 一头连到有线网络,一头负责无线终端的中继
    • 家里的AP就相当于一个小基站
    • 中国有铁塔公司,专门负责基站铁塔建造
  • wireless link无线链路:

    • 用来连接移动终端和基站
    • 有很多区别,局域网(WLAN)和广域网(4、5G)
    • 可以通过多跳来中继,不用拉电缆

各种无线标准

因为无线通信受距离影响极大,所以根据距离的不同有不同的无线协议标准。(距离很长很长就进行长波通信,如渔船潜艇;再长就到卫星通信)

两种应用模式

  • 传统的infrastructure mode

    • 使用基站做无线通信
    • 可以随时handoff(快速切换)
  • 新兴的ad-hoc mode

    • 无线自组织网络,不用AP,就直接互联;(p2p连接,无基站)
    • 军用,如舰队,因为使用infrastructure mode要有舰船做通信舰,被打掉通信就无了;还有军用无人机队协同作战也是采用ad-hoc mode。

    下图展示了两种模式在通信中所处单跳和多跳环境时的不同之处:

无线链路因为其无线信号传播的性质,和有线链路有几个不同之处:信号易衰减多路传播自干扰,以及不同源干扰

信号衰减

信号在传输过程中受到的损伤可以分为衰减、噪声和失真几种。在课上主要学习了信号的衰减的量化指标 和 噪声指标相应的的量化关系

无线信号在路径上通过介质传播时,强度会因为反射,衍射,吸收,地形轮廓(城市,农村,植被),湿度等因素不断减弱。这也被称为路径损耗Path loss)。这个损耗的指标用一个叫自由空间损耗FSPL)的值来衡量,它是一个“增益负值”,可以表示信号总发送功率和接收功率之间的比值关系,单位为分贝。

FSPL=PL=10lg(PrecvPtran)=10lg(4πd2λ2)=20lgd+20lgf+32.44FSPL=PL=10lg⁡(PrecvPtran)=10lg⁡(4πd2λ2)=20lg⁡d+20lg⁡f+32.44

可以看看这篇文章,写了有关FSPL的推导:802.11协议精读15:链路模型(基于Free-Space Path Loss)。上图即为自由空间损耗模型。

除了衰减,信号在传输过程中也会受到一定的噪声干扰,噪声是指 在传送和接收之间的某处插入的不希望有的信号。在计网课上并没有详细阐述噪声的类型,但给出了信噪比SNR)和误码率BER)之间的量化关系。

信噪比是表征信号质量的重要指标之一。绝对信号功率是影响信号质量的重要因素,但并不代表信号质量——也就是说并不是绝对信号功率越强,信号质量越好。而 SNR 作为信号功率和噪声功率的比值表示,可以有效预测通信系统中信号的质量,可以说SNR是越高信号质量越好的;同时,噪声叠加会导致解码器解码错误,错误衡量的指标就是 BER 。总的来说,SNR越高,BER则越低。

下图展示了SNR和BER在不同调制编码方式(物理层)下的关系:

可以看到:

  • 在同一调解方式下,SNR越高,则BER越低;
  • 即使在同一SNR下,随着调解深度增加,BER也会跟着升高。

所以我们要对SNR和BER做出一定的权衡。

  • 同一调解方式下可以通过升高SNR来获取比较好的BER,但是,SNR是不能无限升高的,尽管可以通过增强信号来增加SNR,但过高会导致放出的能量过大,对人体有害。

  • 给定了SNR,可以选择一个调制编码方式(物理层)来选取相对的BER(越先进即越深的调制编码越容易受干扰,因为一个信号中带的bit较多)

  • SNR会根据移动性来变换,动态切换调制编码方式(可以看看拿着手机的时候,自己的网速会跟着自己的移动而变化)

这里有一篇文章值得看一看:无线通信中的SNR、SINAD和SINR

自干扰

无线信号不是按照一个确定的直线方向进行传播的,就像上面所给出的自由空间损耗模型;信号在传播时会接触到不同的表面而产生反射,这些反射会导致信号传播的时差,从而到达目的地时会产生叠加,形成自干扰。如下图:

其它发射源干扰

如果在同一时间有其他设备与你一起共享无线网络频段(如2.4 GHz的信道叠加),就会产生一定的干扰;除此之外,一些无线设备(如蓝牙鼠标、键盘,甚至USB3.0等)也会干扰你的信号。

这篇文章讲了对WIFI网络信号的影响因素:What affects Wi-Fi networks?里面提到了各种各样的发射源干扰。

无线网络特点(Network)

把目光从无线链路放到无线网络上,无线网络也有一些总体的特点:

  • 传播媒介是broadcast的:任何在邻近的接收端都能收到信号,以及对发送端造成干扰;

  • 半双工:即不能同时收发信号;尽管在近些年来研究发现全双工是可以实现的,但是在商业成本上过高。可以看看这篇回答:为什么有线网络可以全双工,而无线网络只能半双工呢?

  • 发送端发送的信号并不总是以接收端接收到为结束;

  • 产生的问题:多址接入问题,隐藏终端问题(Hidden terminal problem

WiFi--IEEE 802.11 WLAN

WiFi我们平时常常挂在嘴边,但它和802.11协议簇有什么关系呢?简单来说,IEEE 802.11是无线局域网的实现标准,Wi-Fi是对IEEE 802.11标准的产品实现,IEEE 802.11的标准并不等同于Wi-Fi。

Wi-Fi是Wi-Fi联盟的商标。Wi-Fi联盟是一个为了推动IEEE 802.11标准的商业组织,其主要目的是在全球范围内发展基于IEEE 802.11标准的无线局域网技术。IEEE 802.11提出的标准较为理论化,在实际生产中,各个厂家对于Wi-Fi产品的实现不尽相同,Wi-Fi联盟很好地解决了符合IEEE 802.11标准的各Wi-Fi产品生产和设备兼容问题。

也就是说,IEEE 802.11侧重无线局域网理论层面,包括物理层、MAC层相关技术标准制定;Wi-Fi联盟侧重产品层面,对符合IEEE 802.11标准要求的产品制定规范以达到设备兼容的目的。

IEEE802.11 WLAN的组成结构

组成元素对应的术语如下:

  • Station(STA): device with IEEE 802.11 conformant MAC and physical layer
  • Access Point (AP): Provides access to the distribution system via the wireless medium
  • Basic Service Set (BSS):A single cell coordinated by one access point (base station)
  • Extended Service Set (ESS):Multiple BSSs interconnected by Distribution System (DS)
    • DS can be a switch, wired network, or wireless network
    • An ESS appears as a single logical LAN
    • Portals (routers) provide access to Internet
  • Distribution System (DS): A system used to interconnect a set of BSSs and integrated LANs to create an ESS

PS:IBSS为 Independent Basic Service Set,可以说是在ad-hoc mode下的BSS。WDS为wireless distribution system。

Host连接到WLAN的过程

我们以802.11b协议为标准来做一个简单的举例。

  1. 802.11b的频段在2.4GHz-2.485GHz 之间,共划分为了11个信道,AP管理员可以选择一个干扰比较少的信道来提升通信效率;
  2. 需要进行无线通信的host必须与AP进行连接,在连接前host会扫描信道,侦听包含AP名称(SSID)和 MAC的信标帧(beacon frame)(即扫描有啥WIFI可以连接);
  3. host选择一个AP进行连接,连接可能需要经过认证(authentication );
  4. host将通常使用 DHCP 来获取 AP 子网中的 IP 地址。

来看看其中的一些过程以及产生的问题:

Host侦听SSID和建立连接

Host的侦听过程发生在host将无线信号接入到已经扫描到的channels的过程中,过程可以分为passive和active两类:

Passive Scanning(左图):AP们会不断地往周围发出信标帧,间隔为100ms;Host扫描(本地网卡在每一个信道上进行轮换扫描)接收到后,发出一个选择AP的request帧,AP们收到request帧后,被选择的对应AP返回一个response帧给Host,连接建立;

Active Scanning(右图):首先Host会在不同的channel上周期性广播一个probe-request帧(这个帧有两种格式,见链接),然后等待AP们收到该帧后返回的probe-response帧(带着各个的SSID);Host接收到后,发出一个选择AP的request帧,AP们收到request帧后,被选择的对应AP返回一个response帧给Host,连接建立;

这两篇blog给出了详细的阐述:802.11中的主动扫描与被动扫描,wifi的主动扫描和被动扫描

还有一个好回答!能学到东西:有关WIFI中的扫描SSID的问题?

多址接入产生的问题

如图,多址接入会产生隐藏终端、信号衰减、暴露终端等问题。其中比较重要的是隐藏终端hidden terminal问题。

什么是 hidden terminal problem?这里有太长不看的锻炼英语能力的阐释:The Hidden Terminal Problem;用我们的话来说,就是存在两个或以上的STA,这些STA在距离上离得非常远(超出彼此传输范围),谁也不知道谁的存在,但他们却要同时向接收端(AP)发送数据,就像上图A和C被一座大山挡着了一样。

这个问题会让A和C在发送的时候都会认为当前信道空闲,导致数据在B处产生了collision。

那么该如何解决呢?采用了 IEEE 802.11 RTS/CTS 协议!

  1. A要发送数据了!先往B发送一个RTS(Request to Send )帧;
  2. RTS帧在传播出去的过程中,起到了通知A附近的STA“我在发送,勿扰”的作用;
  3. B接收到了RTS,给A返回一个CTS(Clear to Send)帧;
  4. CTS帧在传播出去的过程中,起到了通知B附近的STA“我要接收数据了,勿扰”的作用(尤其是C,让它不要再往B发送数据,表示信道繁忙);
  5. A发送数据,B接收到后返回ACK,传输完成。

PS:RTS/CTS exchange is a required function, but can be disabled.

隐藏终端是由于监听到的信道空闲而不是真的空闲,故引发冲突。而暴露终端是由于监听到的信道忙而不是真的忙,故其可以传输而不传输。

还是继续来一篇好文章,深入解释:802.11协议精读5:隐藏终端和暴露终端

802.11协议结构

PS:最下面一层是物理层即编码方式的选择。

帧间间隙

在详细阐述两种802.11MAC类型以及对应的协议机制前,我们先来引入关于帧间间隙的概念:

在802.11使用的CSMA/CA协议中,发一个帧之前,都需要 "等待" 一个相应的帧间间隔,比如发送数据之前至少要等待DIFS时间,发送ACK之前需要等待SIFS时间。这种机制可以有效地避免传输冲突。而不同类型的traffic需要不同的优先级,我们可以根据优先级来分配帧间间隙,那么有哪些帧间间隙?对应各类优先级?

  • SIFS (Short Inter_Frame_Space):短帧间间隙,发送ACK,、LLC(链路层控制)的控制信息数据包、轮询回应、CTS……时使用,基本都为控制信号;
  • PIFS(point coordination function IFS):点协调帧间间隙,被中心控制器使用(中心节点),发送轮询信息时使用;
  • DIFS(Distributed coordination function IFS):分布式帧间间隙,用于所有普通异步通信信息(就是最普通的发信息啦)

两种MAC类型

无线的MAC主要有两类:PCFDCF(也就是两个MAC子层)。其中DCF是指分布式协调功能,分布式控制,用于传输异步数据;PCF是指点协调功能,集中式控制,用于发送实时数据,优先级仅次于控制帧。

下面是IEEE给出的DCF和PCF定义:

IEEE 802.11 defines two MAC sub-layers:

  1. Distributed Coordination Function (DCF) – DCF uses CSMA/CA as access method as wireless LAN can't implement CSMA/CD. It only offers asynchronous service.
  2. Point Coordination Function (PCF) – PCF is implemented on top of DCF and mostly used for time-service transmission. It uses a centralized, contention-free polling access method. It offers both asynchronous and time-bounded service.

Both DCF and PCF are 802.11 medium access types that are the mechanisms for the implementation of CSMA/CA in WLAN.

在当前的802.11协议中,除了初始定义的DCF和PCF工作模式外,在802.11e中还定义了EDCA,HCCA(DCF被扩展为EDCA模式,PCF模式被扩展为HCCA模式)。

PCF和DCF和两种无线应用模式的关系(DCF and PCF in Wifi-networks):PCF只在infrastructure module中使用,因为PCF需要一个站点作为point coordinator.

DCF 分布式协调MAC

DCF使用CSMA/CA机制进行数据传输。在DCF模式下存在两种子模式:Basic模式与RTS/CTS模式。其中Basic模式就是CSMA/CA机制的使用模式,而RTS/CTS模式在前文我们以有所讲解。

CSMA/CA机制

由于无线信道只有一个冲突域的特性,所以需要设置一种随机接入机制,以避免多个节点同时访问网络所带来的冲突问题,在WiFi协议中,该随机接入机制即是CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)。

CSMA/CA和以太网中使用的CSMA/CD都是基于CSMA机制,但在细节方面有着许多的不同。CSMA/CA主要是要“避免”冲突的出现。来看一个时序图:

可以看到两个STA的竞争信道的步骤为:

  1. 如果当前信道idle,先等待DIFS;
  2. 然后进行backoff过程,backoff采用的是BEB机制;
  3. backoff数值减至0而expired后,STA2发送数据帧;
  4. STA2成功发完数据,AP校验完确定接收后,等待SIFS向STA2发送ACK;
  5. STA2接收到ACK,传输完成,开始下一次DIFS;这时STA1的backoff值是继承上次没减完的值,这是为了保证公平性。

如果没有收到ACK,则如图:总共等待EIFS时间后重新开始信道竞争。(EIFS=SIFS+ACK+DIFS时间

PS:当一个站要发送数据帧时,仅在下面的情况下才不使用退避算法:检测到信道是空闲的,并且这个数据帧是它想发送的第一个数据帧。除此以外的所有情况,都必须使用退避算法。

PCF 点协调MAC

在PCF中,必须要有一个coordinator来保证无竞争媒介接入。在802.11中,coordinators须为AP,所以PCF只能在infrastructure mode中使用(但不是全程使用,由于PCF是以DCF作为基础扩展的,所以 infrastructure mode中往往是PCF和DCF交替提供服务);当PCF使用起来的时候,媒介上的时间段被划分为contention-free周期(PCF控制访问)和contention周期(DCF控制访问)。

PCF的过程如下:

  1. 无线网络配置好由coordinator控制的具有time-sensitive的多个STA;
  2. coordinator“抓住”媒介,“锁住”全部的异步通信量,以轮询方式对STAs进行轮询;
  3. 收到轮询时,STA可以等待SIFS后进行data响应;
  4. 如果coordinator收到响应,就再等待PIFS后发出下一个轮询;
  5. 如果在预期的周转时间内没有收到响应,coordinator将发出下一个轮询;
  6. 重复步骤直到当前周期结束,开始下一周期;

PS:新的标准中PCF已经被废弃。

802.11MAC的逻辑图如下:

结合文章802.11协议精读2:DCF与CSMA/CA和802.11协议精读4:PCF工作模式来看,还有一个问题的回答802.11协议中为什么DCF比PCF应用更广泛?,能很好地理解。

802.11帧结构的特别地方

PS:对802.11帧各个字段的详细阐述:IEEE 802.11 Mac Frame

看到这个帧结构时是不是会觉得莫名奇怪?先撇开其它不谈,为什么802.11帧会有四个地址?

课上给出了一定的解释:

image-20230401172455655

课上说,前三个地址使得无线帧可以“转换”成有线帧,即从802.11转换到802.3。

那dest的地址字段不用填了?明明在802.3的LAN中就只有两个地址字段(src和dest)……而802.3中的bridge和switch对host来说是透明的,也不见得要填它们的MAC啊……虽然第三讲中有“当主机想要向外网通信时,需要用寻找的MAC是第一跳路由器的MAC”,但对于WLAN来说,还是讲得不清不楚啊!自己动手,丰衣足食!

在stackexchange上找到了同样有疑惑的老哥:Four layer-2 addresses in 802.11 frame header,回答里面提到,当802.11设备向接收设备发送数据时,这些设备中的一个(或两个)可能不是流量的实际源或目的地。面对这种情景我们可以构建四个地址,这是一点准备工作;

  • Transmitter Address (TA)
  • Receiver Address (RA)
  • Source Address (SA)
  • Destination Address (DA)

查阅帧结构发现:

四个地址字段和frame control字段中的DS位有关:

  • Address 1 to 4 – These are 6 bytes long fields which contain standard IEEE 802 MAC addresses (48 bit each). The meaning of each address depends on the DS bits in the frame control field.

DS位又和分布式系统有关……

  • To DS: It is a 1 bit long field which when set indicates that destination frame is for DS(distribution system).
  • From DS: It is a 1 bit long field which when set indicates frame coming from DS.

蝙蝠书给出了一个对应不同功能填写地址字段的表:

FunctionToDSFromDSAddress 1 (receiver)Address 2 (transmitter)Address 3Address 4
IBSS00DASABSSIDNot used
To AP (infra.)10BSSIDSADANot used
From AP (infra.)01DABSSIDSANot used
WDS (bridge)11RATADASA

可以说,在802.11中,transmitter并不一定就是帧的creator,同样,receiver并不一定就是最终解包的processor。根据功能的不同,地址字段的填写也不同。课上的情况其实就是二和三行的情况,Address3填写的是路由器的MAC地址,这一点和“当主机想要向外网通信时,需要用寻找的MAC是第一跳路由器的MAC”是相同的。(下图为二三行分别对应情形)

保持移动性

host可以保持在不同的BSS之间移动过程中IP不变;这个过程需要网络层的 Mobile IP 协议(RFC3344)来实现,在这里先不展开阐述(因为这课是自底向上……);

而在链路层中,移动性的实现需要交换机来协助完成:交换机需要记住host是在哪个AP!记忆行为就通过交换机的自学习机制来实现。

802.11中的高级功能

802.11中有一些为适应无线网络的特点而做出来的功能,如rate adaptationpower management

Rate adaptation

Rate adaptation允许在无线网络中以不同的速率进行传输,传输的速率取决于所处的网络条件。在无线网络中,信号强度是有强有弱的,rate adaptation技术的出现可以让传输速率根据信号强度而跟随变动。信号强时采用高速调制方式,弱时则相反。

在IEEE上的有关 rate adaptation 的算法论文综述:Rate adaptation algorithms for IEEE 802.11 networks: A survey and comparison

Power management

power management 指在不工作时关闭电源或将系统切换到低电源状态的功能。在WLAN中(infrastructure mode),基本思想是AP缓存下行数据,并周期性向对应的节点其广播缓存区情况,从而节点可以知道自己是否被数据缓存了。在休眠结束后,被缓存数据的节点就会进行数据请求,反之就继续休眠。广播缓存区情况内容包含在信标帧中,AP的周期性广播也是广播信标帧。

蜂窝网络

在前面我们知道了一台host是如何接入WiFi的,但大多数WiFi的覆盖范围只有10~100m左右,当我们在户外的时候无法访问WiFi时,该如何接入无线Internet呢?

我们可以将蜂窝电话扩展到蜂窝网络,使它既支持语音电话,又能支持无线Internet接入。下面我们简要介绍一下。

蜂窝网络的组成

接入方式

多个移动设备接入基站时,无线射频的划分有两种方式:组合FDMA/TDMA, 以及CDMA。2G就是采用了组合FDMA/TDMA的对空接口,下面是自顶向上的阐述:

2G(voice)网络结构

3G (voice+data)网络结构

4G和5G就不是一张两张图能够概括的了...还有很长的路要走!

最后来一个移动通信的演化图^^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Express 框架的基本操作

目录 1、应用生成器 2、基本路由 2.1、在跟路由下配置 GET请求,返回对应相应内容。 2.2、在跟路由下配置 POST请求,返回对应相应内容。 2.3、在跟路由下配置 PUT请求,返回对应相应内容。 2.4、在根路由下配置DELETE请求,返回对…

【剑指offer】学习计划day4

目录 一. 前言 二.数组中重复的数字 a.题目 b.题解分析 c.AC代码 三.在排序数组中查找数字 I a.题目 b.题解分析 c.AC代码 四.0~n-1中缺失的数字 a.题目 b.题解分析 c.AC代码 一. 前言 本系列是针对Leetcode中剑指offer学习计划的记录与思路讲解。详情查看以下…

学习系统编程No.32【线程互斥实战】

引言: 北京时间:2023/7/19/15:22,昨天更新完博客,和舍友下了一会棋,快乐就是这么简单,哈哈哈!总体来说,摆烂程度得到一定的改善,想要达到以前的水准,需要一定…

分布式 - 消息队列Kafka:Kafka分区常见问题总结

文章目录 01. Kafka 的分区是什么?02. Kafka 为什么需要分区?03. Kafka 分区有什么作用?03. Kafka 为什么使用分区的概念而不是直接使用多个主题呢?04. Kafka 分区的数量有什么限制?05. Kafka 分区的副本有什么作用&am…

[内网渗透]XXE-vulnhub

文章目录 [内网渗透]XXE-vulnhub环境安装信息收集解题步骤总结 [内网渗透]XXE-vulnhub 环境安装 首先在 vulnhub 下载文件: 将其解压为ovf格式: 使用vmware打开,新建一个虚拟机,然后开机,环境就搭好了 信息收集 由于…

【仿写spring】一、通过反射读取带有@RequestMapping与@Controller注解的类并模拟请求路径调用方法

目录 简介思路实践一、自定义注解RequestMapping,Controller二、路径转全限定名方法三、扫描文件夹四、通过反射来寻找有RequestMapping以及Controller的类五、获取对象实例六、通过invoke调用方法 文件结构以及测试结果1、文件结构2、TestController3、测试结果 简…

uniapp 条件编译失败,跑不起来

因为这行代码整个uniapp都跑不起来&#xff0c;谁懂救命。再说uniapp的异常提示也太反人类了<!-- <image :src"require(/ baseListItem.url)" /> -->

Linux进程控制(三)---进程替换+简易shell的实现

目录 execl() execv() execlp() execvp() 如何利用execl执行自己写的C/C可执行程序&#xff1f; 如何利用makefile同时编译两个文件 execle() execvpe() 简单shell的编写 什么是进程替换&#xff1f; 我们之前fork之后&#xff0c;是父子进程各自执行代码的一部分&am…

【人工智能】大模型平台新贵——文心千帆

个人主页&#xff1a;【&#x1f60a;个人主页】 &#x1f31e;热爱编程&#xff0c;热爱生活&#x1f31e; 文章目录 前言大模型平台文心千帆发布会推理能力模型微调 作用 前言 在不久的之前我们曾讨论过在ChatGPT爆火的大环境下&#xff0c;百度推出的“中国版ChatGPT”—文…

深度神经网络基础——深度学习神经网络基础 Tensorflow在深度学习的应用

目录 一、二、Tesnsflow入门 & 环境配置 & 认识Tensorflow三、线程与队列与IO操作神经网络基础知识1.简单神经网络2.卷积神经网络卷积层新的激活函数-Relu池化层(Pooling)计算 案例&#xff1a;Mnist手写数字图片识别卷积网络案例 一、二、Tesnsflow入门 & 环境配置…

IDEA无法链接代理The driver has not received any packets from the server.

问题如下: 1、本地部署Proxifier,且设置全局代理,截图如下 代理工具 2、通过Navicat 工具连接该远程数据库,连接正常,截图如下 3、通过IDEA或者Eclipse连接(通过代理),抛连接失败(数据库地址绝对无误),如果把数据库地址改成本地的mysql地址,可以正常连接(不用通过代理)…

mac使用mvn下载node-sass 会Binary download failed, trying source

m1 上使用nvm 以下node的版本可以直接下载&#xff08;Binary download&#xff0c;而不是 trying source&#xff09;而不用切换mac cpu架构 zhiwenwenzhiwenwendeMBP cockpit % nvm install 14.15.5 Downloading and installing node v14.15.5... Downloading https://node…

二十五章:TransUNet:Transformer为医学图像分割提供强大的编码器

0.摘要 医学图像分割是发展医疗系统的重要先决条件&#xff0c;特别是对于疾病诊断和治疗计划。在各种医学图像分割任务中&#xff0c;U型架构&#xff0c;也称为U-Net&#xff0c;已成为事实上的标准&#xff0c;并取得了巨大的成功。然而&#xff0c;由于卷积操作的固有局部性…

Zabbix监控linux主机(agent端)

目录 一、Linux-clinet操作&#xff08;agent&#xff09; 二、源码安装zabbix 三、Zabbix添加linux主机 为agent.zabbix.com添加模板 等待一会 查看效果如下 一、Linux-clinet操作&#xff08;agent&#xff09; [rootlocalhost ~]# ifconfig ens33[rootlocalhost ~]# vim…

免费的游戏图标素材库分享

游戏图标设计在游戏UI中占有非常重要的地位。例如&#xff0c;当我们看到一个游戏的启动图标时&#xff0c;很容易区分它是哪个游戏。设计游戏图标不仅是一个图形&#xff0c;也是一个标志。 本文将通过各种游戏图标设计素材分享游戏图标的类别和设计游戏图标的思考。 1. 游戏…

程序员基础知识—IP地址

文章目录 一、什么是IP地址二、IP地址的分类三、子网掩码 一、什么是IP地址 IP地址就像我们需要打电话时的电话号码一样&#xff0c;它用来标识网络中的一台主机&#xff0c;每台主机至少有一个IP地址&#xff0c;而且这个IP地址是全网唯一的。IP地址由网路号和主机号两部分组…

vue 3.0 如何加载图片

.logo { background: url(~/assets/images/logo.svg) no-repeat center center/contain; width: 117px; height: 24px; margin: 0 20px; } <a class"logo" href"#"></a> 比较实用的书写方式

小程序制作教程

步骤一&#xff1a;规划和设计 在开始制作微信小程序之前&#xff0c;首先需要规划和设计您的小程序。确定您想要提供的服务或功能&#xff0c;并考虑用户体验和界面设计。绘制草图和构思完整的页面布局&#xff0c;这将使您更好地理解小程序结构和功能。 步骤二&#xff1a;…

Arrays.asList

文章目录 摘要详解我们再去看看 java.util.ArrayList 为什么可变的呢&#xff1f;Arrays.asList()和 Collections.singletonList()额外&#xff1a;Collections.singletonList() 摘要 先总结要点&#xff0c;接下来详细讲解 返回由指定数组支持的长度不可变的列表&#xff0c…

题目3 文件包含(保姆级教程)

url&#xff1a;http://192.168.154.253:83 #打开http://XXX:81/&#xff0c;XXX为靶机的ip地址 审题 1、打开题目看到有一个提示&#xff0c;此题目需要通过利用存在的文件包含漏洞&#xff0c;尝试获取webshell&#xff0c;最后从根目录下key.php文件中获得flag 2、开始答题…