《TCP/IP详解 卷一》第3章 链路层

目录

3.1 引言

3.2 以太网

3.3 全双工 省点 自动协商 流量控制

3.4 网桥和交换机

3.5 WiFi

3.6 PPP协议

3.6.1 PPP协议流程

3.7 环回

3.8 MTU和路径MTU

3.9 隧道基础

3.9.1 GRE

3.9.2 PPTP

3.9.3 L2TP

3.10 与链路层相关的攻击

3.11 总结


3.1 引言

城域网(Metropolitan Area Network,MAN):ISP有线电视,DSL。

3.2 以太网

MTU值计算不包含以太网头。

两种以太网标准:

        Ethernet II:

                DIX(DEC Inter Xerox)开发的,大多以太网数据包是该标准。

                使用场景:用于较为简单网络环境,如家庭网络、小型网络。

        IEEE 802.3:

                IEEE在Ethernet II基础上修改为IEEE 802.3。

                使用场景:用于更严格的网络环境,如企业网络、数据中心等高可靠性和灵活性场景。

早期10Mb/s以太网,即共享以太网,需检测碰撞CSMA/CD,介质是电缆。

20世纪90年代初,10Mb/s共享电缆被双绞线10BASE-T代替,共享线路被专用星型拓扑代替,即以太网交换机。

有了交换机就不需要CSMA/CD了,而是全双工工作。

链路层分为:

        逻辑链路控制LLC层:

                作用:错误检测和流量控制等功能。

                不同链路层都通用。

        介质访问控制MAC层:

                作用:地址分配、帧封装和解封装。

                不同链路层各自实现。

IEEE802.3以太网是异步的,帧格式如下:

前导:7字节,同步,确定一个帧到达时间。

帧开始符SFD:1字节,恢复时钟

长度/类型:

        值大于1536,表示类型(即网络层协议,常见)

        值不大于1500,表示长度。

Q标签帧:包含802.1p/q,属于信封帧,但信封帧不一定是Q标签帧。

FCS采用CRC算法。

最小以太网帧64B, 其中负荷最小48B。

最大以太网帧1518B, 其中负荷最大1500B=MTU。

千兆交换机可用非标准的巨型帧,高达9000B,但和传统以太网设备不兼容。

802.1Q = VLAN

vconfig命令: 添加或删除虚拟接口,设置802.1p优先级。

vconfig add eth1 2:会生成eth1.2接口。

802.1AX:以前的802.3ad 链路聚合 : 802.1AX定义LACP链路聚合控制协议,交换机,主机均可支持

多个网口绑定聚合,可提高性能和可靠性。

Linux实现:

        modprobe bonding

        ifconfig bond0 10.0.0.111 netmask 255.255.255.128

        ifenslave bond0 eth0 wlan0

ifconfig bond0显示有MASTER标志,而eth0和wlan0有SLAVE标志,bond0默认使用第一个从设备MAC。

加载bonding驱动参数指定了聚合接口发送数据的模式(模式有:循环交付,备份,源目MAC异或选择接口,全复制,负载均衡等)。

LACP:通过LACPDU确定链路成员。

当网络设备间支持LACP协议时,Bonding驱动可以通过LACP协议进行链路聚合。

3.3 全双工 省点 自动协商 流量控制

ethtool工具可查看双工。

802.3u:自动协商,在物理层通过信号发送,不影响数据收发。

ethtool -s eth0 wol umgb

        wol:局域网唤醒功能,可省电。

        umgb含义:

               指明 可触发唤醒的动作:物理层活动p, 单播帧u,组播帧m,广播帧b,ARP a,魔术分组帧g

Linux命令wol 00:08:74:93:c8:3c:

        向MAC为00:08:74:93:c8:3c的设备发送WOL魔术包。唤醒设备。

PAUSE帧:

        一种链路层流量控制,802.3x定义,以太网type=0x8808,目的MAC总是01:80:C2:00:00:01,表明发送方暂停多久再次发送。PAUSE帧是唯一一种使用MAC控制帧的帧类型,有副作用,目前使用少。

3.4 网桥和交换机

IEEE802.1d 生成树协议

Windows可以像Linux一样桥接多个网口。

Linux实现桥接方法:

        brctl addbr br0

        brctl addif br0 eth0

        brctl addif br0 eth1

brctl showmacs br0 查看网桥的MAC地址表,信息包括: port no MAC aging timer,该表老化时间默认5分钟

生成树协议(Spanning Tree Protocol,STP):通过禁止或阻塞一些交换机端口,创建一个无环路的网络拓扑。

STP端口状态:阻塞,侦听,学习,转发,禁用。

根端口:指向根网桥的端口。

指定端口:处于转发的端口,与根路径成本最小的端口

备用端口:不处于转发,路径成本更高。

备份端口:接管失效的指定端口。

STP被快速生成树协议RSTP代替,收敛速度更快。

BPDU= Bridge PDU,BPDU固定组播目的MAC:01:80:C2:00:00:00

STP相关命令:

        brctl stp br0 on

        brctl showstp br0        可查看br0桥的bridge id

如上图bridge id = 优先级.MAC=标识符

如上图bridge id格式是:优先级.MAC,bridge id是桥设备的标识符。

STP工作流程:

        1. 选择根桥:根桥是网络中转点,所有数据包都通过根桥转发。交换机比较彼此bridge id,最终选择最小bridge id的交换机为根桥。

        2. 计算最短路径:一旦根桥被选定,每个交换机都计算到根桥的最短路径,这通常是通过比较各个端口收到的BPDU的路径代价完成的。路径代价根据链路带宽计算的,带宽低的链路具有较高路径代价。

        3. 选择设计端口(Designated Port):交换机选择连接着最短路径的端口作为设计端口,这些端口用于将数据包发送到根桥。

        4. 禁用冗余路径:每个交换机中,除了根据最短路径选择的设计端口外,其他端口都会被禁用或阻塞。从而避免网络中的环路。

        5. 监测拓扑变化: STP监测链路故障或拓扑结构改变。当拓扑变化时,重新计算路径。

        6. 收敛: STP确保网络在收敛时间内从一个拓扑状态转换到另一个拓扑状态,以确保网络拓扑稳定可靠。

RSTP(Rapid STP):监视每个端口状态,在故障时主动发送一个拓扑变化通知。端口状态由5个减少为3个 (丢弃,学习,转发)

MSTP(Multi-STP):多生成树,为每个VLAN生成一个树。

3.5 WiFi

Infrastructure Mode:

        即基础设施模式。

        Infrastructure Mode中,所有无线客户端都连接到一个或多个AP上,而AP则连接到有线网络上。

        BSS(基本服务集) = AP+STAs。

        AP间通过有线分布式服务DS形成ESS(拓展服务集)。

Ad hoc(自组织模式)

        无AP无DS,而是P2P,是mesh前身。

        IBSS(Independent Basic Service Set,独立基本服务集)= Ad hoc网络 + STA。

     

SSID:服务集标识符

ESSID:拓展服务集标识符

WiFi共有三种802.11 帧类型:

        1. 管理帧:

                Beacon,Probe Request/Response,Association Request/Response,

                Reassociation,Disassociation,Authentication

        2. 控制帧

                RTS(Request to Send)帧:

                CTS(Clear to Send)帧: RTS帧的响应

                Block ACK、ACK

                PS-Poll:设备唤醒时,可发送PS-Poll帧以获取待接收数据

        3. 数据帧

iwlist wlan0 scan:用于扫描周围WiFi。

iwconfig wlan0 rts 250:当要发送数据帧长度大于250B时,设备将使用RTS/CTS机制来发送数据。

数据帧可分片或聚合。

通过设置很高的分片阈值,从而不使用分片。

iwconfig wlan0 frag 1500:设置分片阈值。

802.11n 帧聚合: A-MSDU A-MPDU

A-MSDU A-MPDU区别如图所示:

省电模式:PSM

APSD(Automatic Power Save Delivery):旨在延长无线设备的电池寿命。

        传统Wi-Fi中,设备空闲时仍需保持与AP的连接以接收任何传入数据。这种持续的连接会导致设备电池消耗较快。

        APSD允许无线设备在不需要时进入低功耗模式。

APSD实现:

        TIM:AP周期向STA发送Traffic Indication Map(TIM),其中包含是否有待传数据的通知。设备收到TIM后,决定是否进入低功耗模式。

        Trigger帧: 当AP有数据要发送给设备时,先发送一个Trigger帧,通知设备有数据待接收。设备在收到Trigger帧后,退出低功耗模式并与AP建立连接,以接收数据。

几种WiFi MAC(媒体访问控制)协议:

        PCF(点协调功能):使用少

        DCF(分布式协调功能):强制实现

        HCF(混合协调功能):PCF和DCF的混合形式

DCF:

        采用CSMA/CA,发送数据前,检测信道是否占用,若空闲则发送,否则随机等待一段时间再尝试发送。 是Wi-Fi中最常见的访问机制,适用于大多数无线局域网环境。

PCF:

        通过由AP控制发送帧的机会,允许AP一定程度上优先访问无线介质,从而提供了一定QoS。

HCF:

        允许AP在需要时通过PCF来控制媒体访问,同时仍然允许STA使用DCF来进行分布式访问。

分布式帧间间隔(Distributed Inter-Frame Space,DIFS):

        WiFi用于碰撞检测的时间间隔,实现CSMA/CA(冲突避免)。

NAV网络分配向量计数器:NAV用于指示设备必须等待的时间间隔,

        作用:避免冲突,隐藏节点问题。

CCA:检测信道是否空闲。

NAV:指示设备在接收到帧后的等待时间间隔。

DIFS:是两个数据帧之间必须等待的时间间隔。

WiFi三种加密方式:

        WEP(RC4加密算法)

        WPA(TKIP协议:RC4加密算法+更长IV+MIC哈希完整性保护)

        WAP2(AES加密算法+CCMP完整性保护)

1. WEP工作原理:

        初始化向量(IV): 设备生成随机初始化向量(IV)。IV是一个短随机数,通常与WEP密钥一起使用。

        加密过程: 发送方使用WEP密钥和IV加密传输数据。数据先被分割成固定大小数据包,然后对每个数据包应用加密算法(通常是RC4),加密数据。

        解密过程: 接收方使用相同WEP密钥和IV来解密数据包。

        

        WEP为什么不安全?

                同一AP,所有STA使用相同的密钥加解密数据。

                密钥短。

                IV生成不是真正随机生成。

                没有数据完整性保护机制。

2. WPA(Wi-Fi Protected Access)

        取代WEP,提供更强大加密和认证机制。

        使用TKIP(Temporal Key Integrity Protocol,临时密钥完整性协议)对数据加密。

        WPA支持动态密钥更新。

        WPA通过使用MIC(Message Integrity Code,消息完整性代码),进行完整性保护,防止数据被篡改。

        

        TKIP:

                从预共享密钥(PSK)中派生出一个临时密钥,来加密数据。

                依然使用RC4流密码算法,但使用更长的初始化向量(IV),以及对密钥进行更多次混合和扩展。

                引入MIC进行完整性保护。

                定期更换密钥、动态密钥生成和密钥混合等。

3. WPA2

        WPA2加密套件是AES-CCMP,这表示数据加密使用AES对称加密算法,完整性保护则使用CCMP协议。

        使用4-Way Handshake协议进行密钥交换和管理

        CCMP是一种数据加密和完整性保护的协议,它基于AES算法。

PSK:计算生成的密钥,用于加密数据。

        AP会将PSK密钥分发给STA。

       EAPOL:用于在WiFi中传输EAP消息的协议,从而进行用户认证和密钥协商。

802.1X:提供了认证框架,用于在网络接入时对用户进行身份验证和授权。

在WiFi中,802.1X通常与EAP协议结合使用,以提供认证和密钥管理功能。

802.11s:mesh

3.6 PPP协议

PPP最初设计用于替代SLIP,可封装多协议如TCP/IP、IPX等。

PPP:点对点协议,在串行链路上传输IP报文,被DSL ISP部署。

PPP协议组成:

        LCP,PAP/CHAP,NCP

PPP无需处理链路共享资源竞争问题,即无需CSMA/CD等。

LCP:基于HDLC报文格式(是位级别帧,即使用位填充)

HDLC:高级链路控制,一种数据链路层协议

PPP即可是同步,也可是异步,具体取决于物理介质和传输方式。

        同步链路:

                基于时钟信号传输数据

                使用传输介质为同轴电缆、光纤等。传输速率通常较高。

        异步链路:

                基于起始位和停止位的异步传输。

                使用传输介质为电话线、RS-232串口等,数据传输速率通常较低。

                位填充:

                        若帧中出现0x7E,则用两个0x7D5E替换。

                        若帧中出现0x7D,则接收方用0x7D5D替换。

标志:0x7E,帧开始,结束。

地址:0xFF,哪个站处理。

控制:0x03,帧序列和重传行为。

协议:

        LCP (可配置BCP桥接控制协议)

        PAP,CHAP

        NCP

地址和控制字段在PPP是常数,可通过ACFC压缩选项来省略。

协议字段可通过PFC (协议字段压缩)选项协商,压缩为1字节。

LCP操作

        标识:序列号,递增。

        代码:配置请求,配置ACK,配置NACK,配置REJECT,终止ACK,回送请求,回送应答,协议REJECT,代码REJECT。

        长度:小于链路MRU。

广域网数据链路层的协议HDLC,已被PPP取代,PPP可同步传输也可异步传输,而HDLC只能用在同步网上。

LCP协商哪些参数:

        MRU最大接收单元:默认1500B。

        认证方式: PAP还是CHAP。

        协商magic:用于检测环路。如有相同则有环路。

        异步控制字符映射选项:哪些控制字符需要被转义。

        链路质量报告LQR:报告频率,报告内容,报告方式(PPP扩展字段或独立的LCP消息)。

PPPMux:多协议载荷的聚合帧。

以太帧中没有认证字段,使用以太网方式无法接入互联网,所以以太网和PPP结合,形成PPPoE。

多WAN链路可提高网络带宽、冗余备份,负载均衡。

常见多WAN链路聚合方式:

        1. LACP(Link Aggregation Control Protocol):将多个物理连接聚合成一个逻辑连接。在交换机和路由器上使用。

        2. MLPPP(Multilink Point-to-Point Protocol):聚合多个PPP物理链路。通常PPPoE上使用

        3. SD-WAN:可集中管理多个WAN链路,并根据实时网络状况动态调整分流策略。

        4. Policy-Based Routing:策略路由实现多WAN链路分流。

MP:多链路PPP,通过LACP协议将多个PPP链路聚合成一条链路。

        典型方法:PPP分组轮流在各个成员链路上传输。

        复杂方法: 带宽分配协议,带宽分配控制协议,可以基于源IP、目标IP、协议等策略路由实现流量分流和负载均衡。

压缩控制协议CCP:

        PPP较慢,分为:modem硬件压缩,协议头部压缩。

        MPPE:微软点对点加密。

两种PPP认证:

        PAP:1. 客户端发送用户名和密码明文。2. 服务器与存储匹配,判断是否认证成功。

        CHAP:1. 服务器发送随机挑战字符串。2. 客户端加密挑战字符串,发送回服务器。3. 服务器解密并比较。

        EAP认证框架

网络控制协议NCP

        IPv4

        IPv6

头部压缩

        TCP/UDP头压缩

        IP头压缩

        鲁棒性头部压缩ROHC:减小IP和UDP/TCP协议头大小。使用场景:VoIP,移动通信,拥塞网络。

MPPE:微软点对点加密,用来加密PPP,已有更安全的加密协议替代MPPE。

MPPC:微软点对点压缩

3.6.1 PPP协议流程

PPP分为三部分:

        LCP:约定封装格式,MTU协商,认证方式、压缩算法,链路监测和维护(LCP Echo-Request)等。

        认证:非强制部分(PAP或CHAP)

        NCP:IP分配

LCP报文分为三类:

        建立和配置链路:(Configure-Request, Configure-Ack,Configure-Nak,Configure-Reject)

        终止链路:(Terminate-Request,Terminate-Ack)

        管理和维护链路:(Code-Reject,Protocol-Reject,Echo-Request,Echo-Reply,Discard-Request)

LCP报文包含code字段,表明LCP报文类型。

3.7 环回

作用:检测协议栈是否正常工作。

IP4:127.0.0.1/8

IPv6:::1/128

3.8 MTU和路径MTU

以太网有效负荷最大字节为1500=MTU,IP数据报大于MTU则分片。

路径MTU: PMTU,整条网络路径最小MTU,当路径中链路故障,路由器故障,路径MTU可能改变。

PMTUD:路径MTU发现。

PMTUD实现方法:

        ICMP探测:当收到报文大于MTU且IP头设置禁止分片,则发送ICMP分片必须禁止的错误消息,通知发送方报文不超过某个特定值。发送端据此逐渐降低包大小,直到找到适合PMTU。

        TCP MSS选项:TCP握手时通过TCP的MSS 选项告知对端其所支持的最大TCP段大小。

3.9 隧道基础

只能高层携带低层或同等层数据:

        IPv6携带IPv4

        UDP携带以太网

        IPv6携带以太网

        IPv4携带以太网

GRE (取代IP in IP)

PPTP (微软)

L2TP (常结合IPsec)

ip命令可以配置任意合理的隧道组合。

报文源IP地址在网络中默认不会更改,但NAT,代理服务器,负载均衡器等例外。

3.9.1 GRE

GRE报文格式:

C: 是否存在校验和

K: 是否存在密钥

S: 是否存在序列号

GRE解决的问题:

        跨Internet的私网互通:私网中使用的是私有地址,而在Internet传输的报文须使用公网地址。

        跨Internet的异种网络互通:IP与IPX网络无法通信。

使用场景:

        ISP间,企业总部和分部之间。通常没有必要IPsec加密,没有客户端服务器,类似对等。

封装格式:

        以太网 IP头 GRE头 IP头 IP报文

3.9.2 PPTP

使用场景:

        用户和ISP,用户与企业总部间,需要加密(MPPE)。

PPTP头部如下:

R: Recur回溯。

PPTP实现需要:pppd进程,pptpd进程。

3.9.3 L2TP

L2TP (常结合IPsec)更安全。

3.10 与链路层相关的攻击

3.11 总结

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

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

相关文章

132 Linux 系统编程9 ,IO操作,lseek 函数,truncate函数,查看文件的表示形式

一 lseek 函数 函数说明:此函数用于文件偏移 Linux中可使用系统函数lseek来修改文件偏移量(读写位置) 每个打开的文件都记录着当前读写位置,打开文件时读写位置是0,表示文件开头,通常读写多少个字节就会将读写位置往后移多少个字…

ai数字仿真辩论主持人提升用户体验

Ai虚拟主持人是元宇宙和AI人工智能技术在播音主持行业的重要应用,AI虚拟主持人能极大提升新闻资讯内容的精准度,改变单一的播报形式。 首先,AI虚拟主持人极大地提升了节目的制作效率和灵活性。传统主持人需要花费大量时间进行彩排和录制&…

Jmeter之内置函数__property和__P的区别

1. __property函数 作用 读取 Jmeter 属性 语法格式 ${__property(key,var,default)} 参数讲解 小栗子 ${__property(key)} 读取 key 属性如果找不到 key 属性,则返回 key(属性名) ${__property(key,,default)} 读取 key 属性如果找不到 k…

Python:函数

目录 前言: 一、函数的定义 二、函数的调用 三、函数的分类 四、全局变量和局部变量 五、函数的参数 5.1 位置参数 5.2 默认值参数 5.3 可变参数 5.4 关键字参数 5.5 命名关键字参数 5.6 参数的组合 六、函数的递归 前言: 函数就是一个过程…

ETL:数据转换与集成的关键过程

ETL:数据转换与集成的关键过程 在现代数据驱动的世界中,有效地管理和处理数据对于企业的成功至关重要。ETL(提取、转换、加载)是一种关键的数据处理过程,有助于将数据从源系统提取、清洗、转换并加载到目标系统中&…

学习JAVA的第二天(基础)

目录 基本概念 关键字 class关键字 字面量 练习 变量 定义格式 变量使用 数据类型 基本数据类型 标识符 命名规则 键盘录入 1.导包 2.创建对象 3.接受数据 运算符 算术运算符 练习 隐式转换(自动类型提升) 强制转换 自增自减运算符 …

【网络编程】okhttp源码解析

文章目录 配置清单框架结构解析 配置清单 首先了解一下okHttp的配置清单&#xff1a; Dispatcher dispatcher &#xff1a;调度器&#xff0c;⽤于调度后台发起的⽹络请求&#xff0c;有后台总请求数和单主机总请求数的控制。List<Protocol> protocols &#xff1a;⽀持…

PostgreSQL 实体化视图的使用

上周的教程中&#xff0c;通过 DVD Rental Database 示例&#xff0c;让我们了解了在 PostgreSQL 中创建实体化视图的过程。正如我们所了解的&#xff0c;PostgreSQL 实体化视图提供了一种强大的机制&#xff0c;通过预计算和存储查询结果集为物理表来提高查询性能。接下来的内…

leetcode刷题日志-98.验证二叉搜索树

思路&#xff1a;根据二叉搜索树的性质&#xff0c;中序遍历满足升序。那么我们就可以使用中序dfs&#xff0c;并且记录每个节点的前一个节点的值&#xff0c;如果前一个节点值比后一个大&#xff0c;返回false。 class Solution {Integer pre null; //记录前序节点boolean …

2.23数据结构

单向循环链表 创建单向循环链表&#xff0c;创建节点 &#xff0c;头插&#xff0c;按位置插入&#xff0c;输出&#xff0c;尾删&#xff0c;按位置删除功能 //main.c #include "loop_list.h" int main() {loop_p Hcreate_head();insert_head(H,12);insert_head(…

3分钟看懂设计模式02:观察者模式

一、什么是观察者模式 观察者模式又叫做发布-订阅模式或者源-监视器模式。 结合它的各种别名大概就可以明白这种模式是做什么的。 其实就是观察与被观察&#xff0c;一个对象&#xff08;被观察者&#xff09;的状态改变会被通知到观察者&#xff0c;并根据通知产生各自的不…

VTK通过线段裁剪

线段拆分网格 void retrustMesh(vtkSmartPointer<vtkPolyData> polydata, vtkSmartPointer<vtkPoints> intermediatePoint) {vtkSmartPointer<vtkPoints> srcPoints polydata->GetPoints();int pointSize intermediatePoint->GetNumberOfPoints();/…

【动态规划】【状态压缩】LCP04 覆盖

作者推荐 【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子 本文涉及知识点 动态规划汇总 LCP04 覆盖 你有一块棋盘&#xff0c;棋盘上有一些格子已经坏掉了。你还有无穷块大小为1 * 2的多米诺骨牌&#xff0c;你想把这些骨牌不重叠地覆盖在完好的格子上&#xff0…

maven3旧版本的下载地址(含新版本)

因为现有的3.8版本与IDEA不兼容&#xff0c;我需要下载3.6版本&#xff0c;但是官网的位置非常隐蔽&#xff0c;找了很多资料才看到。故记录一下。 第一步 进入网址&#xff0c;选择需要的版本 Index of /dist/maven/maven-3 第二步 选择binaries 第三步 选择zip文件下载就可…

【Java程序设计】【C00285】基于Springboot的游戏分享网站(有论文)

基于Springboot的游戏分享网站&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的游戏分享网站 本系统分为系统功能模块、管理员功能模块以及用户功能模块。 系统功能模块&#xff1a;在网站首页可以查看首页、游戏…

uniapp-提现功能(demo)

页面布局 提现页面 有一个输入框 一个提现按钮 一段提现全部的文字 首先用v-model 和data内的数据双向绑定 输入框逻辑分析 输入框的逻辑 为了符合日常输出 所以要对输入框加一些条件限制 因为是提现 所以对输入的字符做筛选,只允许出现小数点和数字 这里用正则实现的 小数点…

IDEA生成Java Doc帮助文档

使用场景 使用IDEA&#xff08;本次使用2020.3版&#xff09;将自己写的常用的工具类打成jar包&#xff0c;安装到maven本地仓库&#xff0c;最后生成对应的doc参考文档。 操作流程 方法一 选中项目 右键 show in Explor&#xff0c;如下图&#xff1a; 选中地址栏 cmd 输入…

无公网IP情况下如何远程查看本地群晖NAS存储的文件资源

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

Java的编程之旅27——继承

1.继承的简介 继承是面向对象编程中的一个重要概念&#xff0c;指的是一个类可以继承另一个类的属性和方法。被继承的类称为父类或基类&#xff0c;继承这个父类的类称为子类或派生类。 通过继承&#xff0c;子类可以继承父类的属性和方法&#xff0c;使得子类具有相似的行为…

掌握BeautifulSoup4:爬虫解析器的基础与实战【第91篇—BeautifulSoup4】

掌握BeautifulSoup4&#xff1a;爬虫解析器的基础与实战 网络上的信息浩如烟海&#xff0c;而爬虫技术正是帮助我们从中获取有用信息的重要工具。在爬虫过程中&#xff0c;解析HTML页面是一个关键步骤&#xff0c;而BeautifulSoup4正是一款功能强大的解析器&#xff0c;能够轻…