【高级架构师】计算机网络基础:第二章 计算机网络体系结构(上)

devtools/2025/2/8 8:06:19/

文章目录

  • 第二章 计算机网络体系结构
    • 2.1 常用的计算机网络体系结构
      • 2.1.1 OSI体系结构
      • 2.1.2 具有五层协议的体系结构
    • 2.2 物理层
      • 2.2.1 物理层的基本概念
      • 2.2.2 传输媒体
    • 2.3 数据链路层
      • 2.3.1 数据链路层概述
      • 2.3.2 封装成帧
      • 2.3.3 透明传输
      • 2.3.4 差错校验
      • 2.3.4 以太网
      • 2.3.5 以太网的MAC层
      • 2.3.6 以太网交换机
      • 2.3.7 虚拟局域网VLAN
      • 2.3.8 华为eNSP VLAN实验
    • 2.4 网络层
      • 2.4.1 网络层概述
      • 2.4.2 IPv4地址概述
      • 2.4.3 IPv4 地址的分类
      • 2.4.4 子网的划分
      • 2.4.5 IP 协议
      • 2.4.6 IP数据报的发送和转发过程
      • 2.4.7 路由表
      • 2.4.8 ARP高速缓存表
      • 2.4.9 特殊IP地址

在这里插入图片描述
个人主页:道友老李
欢迎加入社区:道友老李的学习社区

第二章 计算机网络体系结构

2.1 常用的计算机网络体系结构

2.1.1 OSI体系结构

1、为了使不同体系结构的计算机网络都能够互联,国际标准化组织于1977年成立了专门机构研究该问题,不久他们就提出了一个试图使各种计算机在世界范围内都能够互连成网的标准框架,也就是著名的“开放系统互连参考模型”,简称为OSI,OSI体系结构有时候我们也称之为OSI模型。

2、OSI是一个七层协议的体系结构:从下往上依次是物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。

image.pngj

3、OSI试图达到一种理想境界,即全球计算机网络都遵循这个统一标准,因而全球的计算机将能够很方便地进行互连和交换数据。在20世纪80年代,许多大公司甚至一些国家的政府机构纷纷表示支持OSI。当时看来似乎在不久的将来全世界一定会按照OSI制定的标准来构造自己的计算机网络。

4、然而到了20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来了,但由于基于TCP/IP 的互联网已抢先在全球相当大的范围成功地运行了,而与此同时却几乎找不到有什么厂家生产出符合OSI标准的商用产品。因此人们得出这样的结论:OSI 只获得了一些理论研究的成果,但在市场化方面则事与愿违地失败了。

现今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用OSI标准。

5、OSI失败的原因可归纳为:

  • OSI的专家们缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力;
  • OSI的协议实现起来过分复杂,而且运行效率很低;
  • OSI标准的制定周期太长,因而使得按OSI标准生产的设备无法及时进入市场;
  • OSI的层次划分不太合理,有些功能在多个层次中重复出现。

6、OSI体系结构是法律上的国际标准, TCP/IP体系结构是事实上的国际标准

2.1.2 具有五层协议的体系结构

1、TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题)。

2、OSI的七层协议体系结构概念清楚,理论也比较完整,但是太过于复杂不实用。TCP/IP体系结构不同,但是现在却得到了非常广泛的应用。

3、在学习计算机网络的原理时往往采取折中的办法,即综合OSI和TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。有时为了方便,也可把最底下两层称为网络接口层

image.png

4、下面我们结合互联网的情况,自上而下地,非常简要的介绍一下各层的主要功能。

  • 应用层(application layer)
    • 应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的 HTTP 协议,支持电子邮件的SMTP协议,等等。我们把应用层交互的数据单元称为报文(message)。
  • 运输层(transport layer)
    • 运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务
    • 运输层主要使用以下两种协议:
      • 传输控制协议TCP (Transmission Control Protocol):提供面向连接的、可靠的数据传输服务
      • 用户数据报协议UDP (User Datagram Protocol):提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性)
    • TCP和UDP协议都有固定的格式,数据在经过运输层时会根据所选择的运输协议在应用层传递过来的数据基础上加上对应协议的头部。
  • 网络层(network layer)
    • 主要作用是实现两个网络系统之间的数据透明传送,具体包括路由选择,拥塞控制和网际互连等。
    • 在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,简称为数据报
    • 数据在经过网络层时会加上IP协议的头部
  • 数据链路层(data link layer)
    • 数据链路层常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
  • 物理层(physical layer)
    • 利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
    • 物理层上所传输数据的单位是比特。

image.png

2.2 物理层

2.2.1 物理层的基本概念

1、物理层主要解决在各种传输媒体上传输比特0和1的问题,进而给数据链路层提供透明传输比特流的服务

2、由于传输媒体的种类太多(例如同轴电缆光纤无线电波等),物理连接方式也有很多例如点对点连接广播连接等,因此物理层协议种类也比较多。但是物理层为了解决在各种传输媒体上传输比特0和1的问题,无论是那种物理层协议都需要满足主以下四个任务:

image.png

2.2.2 传输媒体

1、导引型传输媒体:电磁波被导引沿着固体媒体传播

  • 同轴电缆
    image.png

    • 可以从上图看出同轴电缆的各层都是共圆心的,也就是同轴心的
    • 同轴电缆有两种:
      • 基带同轴电缆:数字传输,过去用于局域网
      • 宽带同轴电缆:模拟传输,目前主要用于有线电视
    • 同轴电缆价格较贵且布线不够灵活和方便,随着集线器的出现,在局域网领域基本上都是采用双绞线作为传输媒体
  • 双绞线

    • 双绞线是最常用的传输媒体,把两根互相绝缘的铜导线放在一起,然后按照一定规则绞合起来就构成了双绞线。
    • 常用的双绞线包含八根铜导线,每两根绞合成一条双绞线,绞合组合如下:
      • 蓝色线和蓝白双色线绞合
      • 橙色线和橙白双色线绞合
      • 绿色线和绿白双色线绞合
      • 棕色先和棕白双色线绞合
    • 绞合的作用:
      • 抵御部分来自外界的电磁干扰
      • 减少相邻导线的电磁干扰
    • 根据有无屏蔽层,双绞线分为:无屏蔽双绞线屏蔽双绞线
      • 无屏蔽image.png
      • 屏蔽双绞线:在双绞线与外层绝缘封套之间有一个金属屏蔽层image.png
    • 常用的绞合线类别、带宽及典型应用image.png
  • 光纤image.png

    • 光纤的优点
      • 通信容量大(25000~30000GHz的带宽)
      • 传输损耗小,远距离传输时更加经济。
      • 抗雷电和电磁干扰性能好。这在大电流脉冲干扰的环境下尤为重要。
      • 无串音干扰,保密性好,不易被窃听。
      • 体积小,重量轻。

2、非导引型传输媒体:非导引型传输媒体是指自由空间

  • 无线电波
  • 微波
  • 红外线
  • 可见光

2.3 数据链路层

2.3.1 数据链路层概述

1、数据链路层在网络体系结构中所处的地位

如下图所示:主机H1给主机H2发送数据,中间要经过三个路由器、电话网、局域网、广域网等多种网络。

image.png

从五层协议原理体系结构的角度来看,主机应该具有体系结构中的各个层次,而路由器只需要具有体系结构中的网络层、数据链路层、物理层。网络中的各个设备通过传输媒体进行互连,主机H1将需要发送的数据逐层封装后通过物理层将构成数据包的各个比特转换为电信号发送到传输媒体,数据包进入到路由器后,从下网上逐层解封到网络层,路由器根据数据包的目的网络地址自身的转发表确定数据包的转发端口,然后从网络层向下逐层封装数据包,最后通过物理层将数据包发送到传输媒体,最后到达主机H2,主机H2在接收到数据包后再逐层解封。

GIF.gif

当我们研究数据链路层时,我们可以只关心数据链路层,而不考虑其他各层。我们可以想象,数据只在数据链路层从左至右沿水平方向传送。从数据链路层来看,主机H1到主机H2 的通信可以看作是在4段不同的链路上的通信所组成的。

GIF2.gif

所谓的链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。要在链路上传输数据,仅有链路还不够,还需要一些通信协议来控制这些数据的传输,如果把实现这些协议的硬件和软件加到链路上就构成了数据链路(Data Link)

在数据链路上传输的数据包,又称为。(数据链路层是以帧作为单位传输和处理的)

image.png

注意:结点就是网络中的一台主机。

数据链路层的协议有很多种,但是有三个基本问题是共同的。这三个基本问题就是:封装成帧、透明传输和差错检测。

2.3.2 封装成帧

封装成帧是指数据链路层给上层交付的协议数据单元添加帧头帧尾使之成为帧。

  • 帧头和帧尾中包含有重要的控制信息image.pngimage.png

  • 帧头和帧尾的作用之一就是帧定界

    • 例如:PPP帧的第一个字节和最后一个字节就是帧定界,通过这两个字节就能够从物理层交付的比特流中提取出一个一个的帧。image.png
  • 并不是每种数据链路层协议的帧都包含有帧定界标志,例如MAC帧在帧头和帧尾中是没有包含帧定界的标志的, 那么接收方是如何从物理层交付的比特流中提取出一个个的以太网帧的呢?

    • 第一步:数据链路层封装好MAC帧,将其交付给物理层
    • 第二步:物理层在MAC帧的前面添加8字节的前导码,前导码的前7个字节前同步码,其作用是使接收方的时钟同步,之后的1个字节为帧开始定界符,表明其后紧跟着的就是MAC帧。image.png

2.3.3 透明传输

1、透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

  • 当数据帧中的数据是帧定界标志时,发送端的数据链路层该如何处理呢?
    • 当物理链路提供的是面向字符的传输服务时(物理链路以字符为单位传输数据)image.png

      数据链路层在交付数据给物理层时,对帧进行扫描,首先扫描到SOH,然后每扫描到一个SOH或者EOT就在前面加转义字符ESC,直至扫描到最后一个EOT,这种方式称之为:字节填充(byte stuffing)字符填充(character stuffing)image.png

      接收端的数据链路层在将数据送往网络层之前删除插入的转义字符

    • 当物理链路提供的是面向比特的传输服务时(物理链路以比特为单位传输数据)image.png在数据发送前采用零比特填充法:对数据进行扫描,每5个连续的比特1后面就插入1个比特0image.png考研真题:image.png

2、为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。

3、考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)

image.png

2.3.4 差错校验

1、实际的通信链路都不是理想的,比特流在传输过程中由于受到各种干扰可能会产生差错: 1可能会变成0,而0也可能变成1。这称为比特差错,或者称为误码

GIF3.gif

2、一段时间内,传输错误的比特占所传输比特总数的比率称为误码率(Bit Error Rate)

3、接收方是如何知道数据在传输的过程中出现差错了呢?使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。

4、在封装好的帧中利用若干个字节表示帧校验序列FCS字段。FCS :Frame Check Sequence(帧校验序列)。FCS字段由一些差错校验算法计算得出,常用的校验算法为:循环冗余校验CRC(Cyclic Redundancy Check)。

5、接收方在接收到数据后计算出一个FCS,然后将计算得出的FCS与接收到的数据帧中的FCS进行比较。

image.png

由于判断FCS是否正确只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。接收方可以通过检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务

2.3.4 以太网

1、以太网概念

  • 以太网是一种计算机局域网技术IEEE(电气与电子工程师协会:Institute of Electrical and Electronics Engineers)组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI和ARCNET。
  • 以太网是一种有线系统,最初使用同轴电缆进行数据传输,后来发展到使用双绞线和光纤并延续至今。image.pngimage.png

2、以太网的两个标准

  • 1980年9月,DEC公司英特尔(Intel)公司施乐公司联合提出了10 Mbit/s 以太网规约的第一个版本DIX V1(DIX是这三个公司名称的缩写)。
  • 1982年又修改为第二版规约(实际上也就是最后的版本),即DIX Ethernet V2,成为世界上第一个局域网产品的规约。
  • 1983年,IEEE 802委员会的802.3工作组制定了第一个IEEE的以太网标准IEEE 802.3[W-IEEE802.3],数据率为10 Mbit/s。以太网的两个标准 DIX Ethernet V2与IEEE的802.3标准只有很小的差别,因此很多人也常把802.3局域网简称为"以太网"。
  • IEEE 802委员会的介绍(引用自《计算机网络-谢希仁》)image.png
  • IEEE 802.3 定义了以太网的物理层数据链路层的介质访问控制部分,其中物理层由两个组件组成:线缆设备,数据链路层可以分为两部分:逻辑链路控制(LLC)介质访问控制(MAC)image.png
  • 物理层
    • 线缆:以太网的通信线缆由最先的同轴电缆发展到今天的双绞线和光纤。
      • 双绞线两端配有RJ45八针连接器,这种八针连接器用于在半双工和全双工模式下进行数据的发送和接收。image.png
        • 半双工模式:数据一次沿一个方向传输.gif
        • 全双工模式:数据沿两个方向传输,以太网的全双工模式可以通过使用一对双绞线实现.gif
      • 光纤线缆:光纤线缆使用玻璃光纤塑料光纤作为光脉冲的传输通道来传输数据image.png
      • 光纤电缆可以根据实际需求使用不同类型的连接器:SFP连接器、SC连接器image.png
    • 设备:以太网设备由计算机、打印机等具有网络接口卡的设备所组成,常用的以太网设备有路由 器、交换机、网桥,而工作在数据链路层上的设备为交换机、网桥,路由器工作在五层体系结构中的网络层。
  • 数据链路层
    • 逻辑链路控制LLC:为网络层提供统一的接口以便数据在设备间传输。很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC 协议。
    • 介质访问控制MAC:使用分配给网络接口卡的硬件地址来标识特定的计算机或设备接口,通过这种方法来表示数据传输的源地址和目的地址。

2.3.5 以太网的MAC层

1、MAC层的硬件地址

  • MAC地址英语:Media Access Control Address) ,直译为媒体存取控制位址 ,也称为局域网地址 (LAN Address),MAC位址以太网地址 (Ethernet Address)或物理地址 (Physical Address),它是一个用来确认网络设备位置的位址。
  • IEEE 802标准为局域网规定了一种48位(6字节)的全球地址(一般简称为“地址”),这个地址会固化在适配器ROM中。
  • IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)。地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。世界上凡要生产局域网适配器的厂家都必须向IEEE购买由这三个字节构成的这个号(即地址块),这个号的正式名称是组织唯一标识符。
    • 例如,3Com公司生产的适配器的MAC地址的前三个字节是 02-60-8C。地址字段中的后三个字节(即低位24位)则由厂家自行指派,只要保证生产出的适配器没有重复地址即可

  • 一个地址块可以生成2^24个(二百八十多万亿个)不同的地址。这种 48 位地址称为MAC-48,它的通用名称是EUI-48
  • 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
  • 我们可以在DOS窗口输入命令:ipconfig /all , 查看本机网卡的MAC地址。image.png

2、MAC地址的格式

  • MAC地址的表示方法

image.png

  • MAC地址的含义image.png

3、MAC 帧的格式

数据链路层在网络层交付的IP数据包前面加上“目的地址”、“源地址”、“类型”字段,并且在最后加入4字节的FCS字段,组成一个以太网MAC帧,然后再交付给物理层

  • 目的地址:接收主机的MAC地址
  • 源地址:发送主机的MAC地址
  • 类型:类型字段标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。image.png

注意:当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。

4、MAC地址的识别

当多个主机连接到同一个广播信道上,要实现两个主机之间的通信,每个主机发送的帧中包含了目的地址和源地址,广播信道上的每一台主机都能够收到该帧,接收到帧的主机将帧中的目的地址与保存在网络适配器的电可擦除可编程只读存储器EEPROOM中的MAC地址进行比较,如果匹配则接受该帧,否则就丢弃该帧。GIF.gif

根据MAC地址为单播MAC地址还是广播MAC地址还是多播MAC地址,在计算机网络中“发往本站(本主机)的帧”分为三种:单播(unicast)帧(一对一)、广播(broadcast)帧(一对全体)、多播(multicast)帧(一对多)。

  • 单播MAC地址.gif
  • 广播MAC地址MAC.gif
  • 多播MAC地址image.png
  • 随机MAC地址:据斯诺登介绍,美国国家安全局有一套系统通过监视电子设备的MAC地址来跟踪城市中每个人的行动,因此苹果率先在ios系列设备扫描网络时采用随机MAC地址技术,随后Windows10安卓6.0以及内核版本3.18的Linux系统也提供随机MAC地址功能。 目前大多数移动设备都采用了随机MAC地址技术。image.png

2.3.6 以太网交换机

1、以太网交换机的基本功能

  • 以太网交换机是基于以太网传输数据的交换机,以太网交换机通常都有多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连,一般都工作在全双工方式
  • 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信。

image.png

  • 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。

.gif

  • 帧的两种转发方式:
    • 存储转发:交换机在转发之前必须接收整个帧,并进行错误校检,如无错误再将这一帧发往目的地址。帧通过交换机的转发时延随帧长度的不同而变化。
    • 直接交换:采用基于硬件的交叉矩阵(交换机只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部的被接收,也不进行错误校验。由于以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。)
  • 以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动的逐渐建立起来的。

2、以太网交换机自学习和转发帧的流程

刚上电时以太网交换机内部的帧交换表是空的,随着网络中各主机间的通信,通过自学习算法自动的逐渐建立起来帧交换表

如下图所示相互连接的“以太网交换机1”和“以太网交换机2”各自连接了三台主机,构成了一个交换式以太网。为了简单起见各台主机的MAC地址我们用一个大写字母表示,并且假设各台主机知道网络中其他各主机的MAC地址。image.png

下面我们来了解以太网交换机是如何进行自学习和转发帧的:

  • 主机A发送数据给主机B
    • 该帧从交换机1的接口1进入交换机,交换机1首先进行登记工作,将该帧中的源MAC地址A记录到自己的帧交换表中,并且将接口号1与MAC地址A相对应也记录到帧交换表中。以上的登记工作就称之为交换机的自学习。
    • 交换机1对该帧进行转发,该帧中的目的MAC地址是B,在帧交换表中查找MAC地址B,发现找不到就对该帧进行盲目地转发(也成为泛洪),也就说会将该帧在除接口1以外的其他所有接口进行转发。
    • 主机B在接收到该帧后,根据该帧的目的MAC地址B与自己的MAC地址比较,发现相等就说明该帧是发送给自己的,于是主机B接受该帧,主机C则会丢弃该帧。
    • 该帧从交换机1的接口4通过交换机2的接口2进入交换机2,交换机2首先进行登记工作,将该帧中的源MAC地址A记录到自己的帧交换表中,并且将接口号2与MAC地址A相对应也记录到帧交换表中
    • 交换机2对该帧进行转发,该帧中的目的MAC地址是B,在帧交换表中查找MAC地址B,发现找不到就对该帧进行盲目地转发(也成为泛洪),也就说会将该帧在除接口2以外的其他所有接口进行转发。
    • 主机D、E、F丢弃该帧

image.png

注意:在帧交换表中每条记录都有自己的有效时间,到期自动删除。这是因为MAC地址与交换机接口的对应关系并不是永久性的(对应的接口可能会更换计算机)

image.png

3、以太网交换机的生成树协议STP

  • 思考:如何提高以太网的可靠性?假如在网络中有三台交换机A、B、C,他们之间的连接方式如下图所示,假如他们之间的链路出现了故障则会影响各个交换机之间的通信GIF1.gif
  • 添加冗余链路可以提高以太网的可靠性:在交换机B和C之间添加冗余链路。但是冗余链路也会带来负面效应----形成网络环路。image.png
  • 网络环路带来的问题
    • 广播风暴:广播帧在各个交换机之间反复转发,分别按顺时针和逆时针方向同时兜圈。广播风暴会大量消耗网络资源,使得网络无法正常转发其他数据帧。image.png
    • 主机收到反复的广播帧,会大量消耗主机的资源。
    • 交换机的帧交换表震荡:同一个MAC地址的记录在其他错误记录之间反复震荡。image.png
  • 以太网交换机使用生成树协议STP(Spanning Tree Protocol)可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题
    • 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路)。最终生成的树型逻辑拓扑要确保连通整个网络;GIF2.gif
    • 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算
    • GIF3.gif
    • 说明:生成树算法STA需要大家自行了解。

2.3.7 虚拟局域网VLAN

1、广播域

使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。随着交换式以太网规模的扩大,广播域相应扩大,从而形成一个巨大的广播域。image.png

但是巨大的广播域会带来很多的弊端:

  • 广播风暴
  • 难以管理和维护
  • 潜在的安全问题

例如,网络中的某台主机A需要向另外一台主机B发送数据,此时主机A只有主机B的IP地址,但是没有主机B的MAC地址,主机A需要发送ARP(ARP属于体系结构的网络层,在后续的课程中我们会介绍)广播请求来获取主机B的MAC地址,该ARP请求会传遍整个网络,网络中的其他所有主机都能够收到广播。image.png

广播风暴会浪费网络资源和各个主机的CPU资源,但是在实际应用中网络中会频繁出现广播信息,TCP/IP协议栈中的很多协议都会使用广播:

  • 地址解析协议ARP(已知IP地址,找出对应的MAC地址)
  • 动态主机配置协议DHCP(用于自动配置IP地址)

我们可以使用分割广播域的方法对广播域进行隔离

  • 使用路由器隔离广播域:但是路由器的成本较高,局域网中如果全部用路由器隔离广播域不大现实image.png
  • 使用虚拟局域网VLAN

2、虚拟局域网VLAN概述

虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。

假如在网络中有三个局域网,分别叫做局域网1、局域网2、局域网3,我们可以使用一个交换机S4将三个局域网互连成一个更大的局域网。原来每个局域网就成为新的大的局域网中的各个网段。我们可以在S4上将整个局域网划分成两个VLAN:VLAN1和VLAN2,这样两个不同的VLAN之间的广播数据包不会互相传输,当然如果是在同一个VLAN中的主机依然可以进行广播通信。

注意:不是所有的交换机都能够进行VLAN划分,一般需要企业级交换机才可以。

image.png

2.3.8 华为eNSP VLAN实验

下面我们使用华为的eNSP进行VLAN的实验。

1、新建一个拓扑,然后在拓扑中加入两台S5700的交换机LSW1和LSW2,LSW1和LSW2互相连接,并且每台交换机上接入两台PC。

image.png

2、如上图所示:LSW1交换机的 GE 0/0/1和GE 0/0/2接口分别接PC1和PC2, LSW2交换机的 GE 0/0/1和GE 0/0/2接口分别接PC3和PC4,LSW1和LSW2的GE 0/0/3接口互连。

3、对PC1、PC2、PC3、PC4进行如下设置:

  • IP地址分别设置为192.168.1.101, 192.168.1.102, 192.168.1.103, 192.168.1.104
  • 子网掩码全部设置为:255.255.255.0
  • 网关全部设置为:192.168.1.0

4、设置完成以后,将两台交换机和4台PC启动,然后分别在每台PC的命令行使用ping命令查看能够ping同其他PC。

image.png

5、配置交换机LSW1,构建vlan2和vlan3

  • 进入命令行输入 system-view命令进入系统试图
  • 输入 display vlan 查看交换机中的vlanimage.png
  • 通过命令行,创建vlan2image.png
  • 通过命令行,创建vlan3image.png
  • 输入命令 display vlan 查看交换机中的vlan,发现有三个vlan
  • image.png
  • 将0/0/1和0/0/2端口设置为access类型:通过access端口的数据包都是不带VLAN tag的,且只属于一个VLAN,在access端口进方向,交换机接收到数据包后,先判断是否带VLAN tag,有则丢弃数据包,没有则打上该端口已配置的VLAN tag,在access端口出方向,交换机将打了与端口相同VLAN tag的数据包转发出去,并且去掉VLAN tag变成普通数据包,一般连接计算机
    • 输入命令 dis cur 查看端口名称,注意:按回车键可以显示更多信息,按 ctrl + c可以退出该命令image.png
    • 设置access类型,并且将端口分配给不同的VLANSnipaste_20211209_145831.png
    • 因为GE 0/0/1端口接PC1,并且GE 0/0/1端口分配给了vlan2,所以PC1就在vlan 2中了,同理,PC3在vlan3中,此时如果我们在PC1的命令行中ping PC2是不能ping通了,因为他们已经不在同一个局域网中了。image.png
  • 将0/0/3端口设置为trunk类型:端口可以承载多个VLAN,通过trunk端口的数据包都必须带上VLAN tag,在trunk端口进方向,交换机接收到数据包后,先判断是否带VLAN tag,没有则丢弃数据包,有则按照对应VLAN进行转发,在trunk端口出方向,交换机将带VLAN tag的数据包原封不动转发出去,没有带VLAN tag数据包不会从trunk端口转发出去,一般用来接其他交换机image.png
  • 设置完交换机LSW1后,用同样的方法设置交换机LSW2,同样的将0/0/1端口分配给vlan2,将0/0/2端口分配给vlan3,0/0/3端口设置为trunk模式。
  • 设置完成以后,PC1和PC3属于vlan2, PC2和PC4属于vlan3image.png
  • 我们可以在PC1和PC2上使用ping命令验证
    • PC1 ping命令image.png
    • PC2 ping 命令image.png

2.4 网络层

2.4.1 网络层概述

网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输

image.png

要实现网络层任务,需要解决以下主要问题:

  • 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)
    • TCP/IP协议体系结构的网际层提供的是无连接的、不可靠的数据包服务
    • ATM、帧中继和X.25的网络层提供的是面向连接的、可靠的虚电路服务GIF4.gif
  • 网络层寻址问题

image.png

  • 路由选择问题:路由器根据路由表选择下一跳

image.png

因特网(Internet)是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈。由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。本章节我们通过学习TCP/IP协议栈的网际层来学习网络层的理论知识和实践技术。

image.png

2.4.2 IPv4地址概述

1、在因特网中,为了实现计算机之间的相互通信,通常需要为每台计算机分配一个IP地址。在互联网的发展过程中主要有两个版本的互联网协议,分别是IPv4(Internet Protocol version 4)和 IPv6(Internet Protocol version 6)。

image.png

注意:在本课程中我们不对IPv4和IPv6的协议内容进行对比,只对比IPv4的IP地址和IPv6的IP地址。

2、IPv4 的IP地址就是给因特网(Internet)上的每一台主机(或路由器))的每一个接口分配一个在全世界范围内是唯一的32比特的标识符,地址总数为2^32个。

3、IPv6 的 IP地址采用128比特地址长度,地址总数为2^128个。

4、IP地址由因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)进行分配。我国用户可向亚太网络信息中心APNIC(Asia Pacific Network Information Center)申请IP地址,需要缴费

5、因为当下互联网中的绝大多数设备采用的是IPv4的IP地址,所以本课程我们只学习IPv4的IP地址的相关知识。

6、由于32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用,例如:192.168.1.100

image.png

7、八位无符号二进制整数转十进制:二进制表示中从右至左分别表示低比特位和高比特位。

image.png

image.png

8、十进制正整数转8位无符号二进制数的方法:

  • 方法1:除2取余法,直到最后商为0
  • image.png
  • 方法2:凑值法(必须熟记8位二进制数各位的权值128 64 32 16 8 4 2 1)image.png

2.4.3 IPv4 地址的分类

1、IPv4 的IP地址由网络号(指定主机所属的网络)和 主机号(指定被寻址的子网中的某个节点)组成,IP地址可以分为A、B、C、D、E五类。

image.png

2、注意事项:

image.png

3、各类IP地址的细节

  • A类地址
    • A类地址的取值范围:image.png
    • A类地址可指派的网络数量:因为网络号占8个bit,并且最高位固定为0,网络号有2^7=128中组合,但是因为最小网络号0和最大网络号127不能指派,所以最终A类IP地址能够指派的网络数量为:image.png
    • A类地址每个网络中可以分配的地址数量:因为主机号站24个bit,主机号有2^24种组合,因为全0的网络号和全1的广播地址不能指派,所以需要减2image.png
  • B类地址
    • B类地址的取值范围:image.png
    • B类地址可指派的网络数量:因为网络号占16个bit,并且最高位固定为10,网络号有2^(16-2)种组合image.png
    • B类地址每个网络中可以分配的地址数量:因为主机号站16个bit,主机号有2^16种组合,因为全0的网络号和全1的广播地址不能指派,所以需要减2image.png
  • C类地址
    • C类地址的取值范围image.png
    • C类地址可指派的网络数量:因为网络号占24个bit,并且最高位固定为110,网络号有2^(24-3)image.png
    • C类地址每个网络中可以分配的地址数量:因为主机号站8个bit,主机号有2^8种组合,因为全0的网络号和全1的广播地址不能指派,所以需要减2image.png
  • D类、E类地址image.png
  • 练习1

image.pngimage.png

  • 练习2

image.png

2.4.4 子网的划分

1、我们先来看一道笔试题:用一根网线直接相连的两台主机的IP地址分别为192.168.1.100、192.168.2.100,子网掩码都为 255.255.255.0,请问使用什么方法可以让这两台主机能够进行正常的数据通信?

答案:将两台主机的子网掩码设置为255.255.0.0

2、子网掩码

  • 子网掩码(subnet mask)是一个32位地址,又叫网络掩码、地址掩码,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码将某个IP地址划分成网络地址和主机地址两部分
  • 左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与IP地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数。image.png
  • 子网掩码的两个功能:
    • 屏蔽IP地址的一部分以区别网络标识和主机标识
    • 将一个大的IP网络划分为若干小的子网络
  • 子网掩码的工作流程:将32位的子网掩码与IP地址进行二进制形式的按位逻辑“与”运算,得到该IPv4地址所在的网络地址image.pngimage.png

3、子网的划分

子网掩码是在IPv4地址资源紧缺的背景下为了解决lP地址分配而产生的虚拟lP技术,通过子网掩码将A、B、C三类地址划分为若干子网,从而显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的局面。另一方面,在企业内网中为了更好地管理网络,网管人员也利用子网掩码的作用,人为地将一个较大的企业内部网络划分为更多个小规模的子网,再利用三层交换机的路由功能实现子网互联,从而有效解决了网络广播风暴和网络病毒等诸多网络管理方面的问题。image.png

32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号。

下面我们举例说明划分子网的细节:已知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.128对其进行子网划分,请给出划分细节。

解析流程:

  • 从IP地址坐起第一个十进制为218,所以该IP地址为C类地址,C类地址的子网掩码默认为:255.255.255.0,而此时给出的子网掩码为255.255.255.128,则说明子网掩码向主机号借用了一个bit作为子网号

image.png

  • 因为子网掩码向主机号借用了一个bit作为子网号,所以可划分出来的子网数量为2^1 = 2 个。每个子网可分配的地址数量为:2^(8-1) - 2 = 126个。因为主机号的最高位被子网掩码借用了,主机号只有7位了,所以最多可分配2^(8-1)=128个地址,但是还需要去掉主机号为全0的网络地址和主机号为全1的广播地址所以还需要减2。image.png
  • 详细的子网划分

image.png

4、练习题:我们通过一道考研真题对子网的划分方法进行巩固

image.png

5、子网掩码的CIDR斜线记法

格式:IP地址/n

说明:n表示子网掩码所使用的bit数,表示子网掩码中网络号的长度,通过n的个数确定子网的主机数=2^(32-n)-2

例1:192.168.1.100/24,其子网掩码表示为255.255.255.0

例2:172.16.198.12/20,其子网掩码表示为255.255.240.0

2.4.5 IP 协议

1、用户数据在网络层(网际层)中使用IP协议进行封装,然后交付给数据链路层。IP协议提供不可靠无连接数据报传输服务。

2、使用IP协议封装的数据我们称之为IP数据报

3、IP数据报的首部:IP数据报的首部由20个字节组成,IP数据报的首部常以32个比特为单位进行描述,下图中的每一行都由32个比特(也就是4个字节)构成,每个小格子称为字段或者域。image.png

image.png

  • 版本:占4比特,表示IP协议的版本
  • 首部长度:占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。最小十进制取值为5,表示lP数据报首部只有20字节固定部分,最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分
  • 区分服务:8比特,一般不使用
  • 总长度:占16比特,表示IP数据报的总长度(首部+数据载荷)。最大取值为十进制的65535,以字节为单位(实际使用中不会传输这么长的IP数据报)。
  • 标识、标志、片偏移:这三个字段共同用于IP数据报分片,以太网中数据链路层规定MTU的值为1500字节,如果某个IP数据报总长度超过MTU,需要将原IP数据报分片成多个小的数据报,再将每个小的数据报封装成帧。image.png
    • 标识:占16比特,属于同一个数据报的各分片数据报应该具有相同的标识。IP软件维持一个计数器,每产生一个数据报,计数器值加1,并将此值赋给标识字段。
    • 标志:占3比特,各比特含义如下:
      • DF位:1表示不允许分片,0表示允许分片
      • MF位:1表示“后面还有分片”,0表示“这是最后一个分片”
      • 保留位:必须为0
    • 片偏移:占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位,片偏移以8个字节为单位。
    • IP数据报分片举例image.png
  • 生存时间:占8比特,最初以秒为单位,最大生存周期为255秒。路由器转发IP数据报时将IP数据报首部中的该字段的值减去IP数据报在本路由器上所耗费的时间,若不为0就转发,否则就丢弃。现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为0就转发,否则就丢弃。
    • TTL作用可以防止IP数据报再网络中永久兜圈image.png
  • 协议:占8比特,指明IPv4数据报的数据部分是何种协议数据单元。常用的一些协议和相应的协议字段值如下。image.png
  • 首部检验和:占16比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。IP数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段(生存时间、标志片偏移等)的取值可能发生变化。
  • 源IP地址:占32比特,表示发送主机的IP地址。
  • 目的IP地址:占32比特,表示目的主机的IP地址。

2.4.6 IP数据报的发送和转发过程

IP数据报的发送和转发过程包含两部分:主机发送IP数据报路由器转发数据报

假设在网络中由一台路由器连接了两个局域网,每个局域网的网络地址、子网掩码,以及每台主机的IP地址分配如下图所示:

image.png

请同学们思考:为什么左边网络的网络地址是:192.168.0.0,右边网络的网络地址是192.168.0.128?

image.png

同一个网络中的主机是可以直接通信的, 这叫做直接交付,而不同网络中间的主机是不能直接通信的,需要通过路由器进行中转,这属于间接交付。那源主机是如何判断目的主机和自己是否在同一个网络中呢?

image.png

主机C将自己的IP地址与子网掩码进行按位与操作得到主机C的网络地址:192.168.0.0,然后将目的主机的IP地址与自己的子网掩码进行按位与操作得到目的网络地址:192.168.0.128,发现两个网路并不相等,说明主机C和主机F不在同一个网络中,不能进行直接交付,主机C将数据发送给路由器R,由路由器R再转发给主机F,这样就实现了主机F和主机F之间的数据通信(间接交付)。

image.png

但是问题又来了:主机C又是如何知道要将数据发送给路由器R呢?我们需要将路由器的接口地址192.168.0.126作为主机C的默认网关,这样当主机C发现目的地址与自己不在同一网络中时则将数据发送给设置好的默认网关(路由器)。因此我们可以将左边网络中所有主机的默认网关填写为192.168.0.126,将右边网络所有主机的默认网关填写为192.168.0.254。

image.png

那么路由器又是如何对数据进行转发的呢?假设主机A需要将数据发送给主机D,因为主机A与主机D不在同一个网络,所以主机A将数据发送给路由器R,路由器会进行如下操作:

  • 首先检查lP数据报首部是否出错:若出错,则直接丢弃该lP数据报并通告源主机,若没有出错,则进行转发
  • 然后根据IP数据报的目的地址在路由表中查找匹配的条目:若找到匹配的条目,则转发给条目中指示的下一跳若找不到,则丢弃该IP数据报并通告源主机

image.png

2.4.7 路由表

1、什么是路由?

路由就是报文从源端到目的端的路径。当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中最佳路由进行转发。

image.png

2、什么是路由表?

在计算机网络中,路由表(routing table)是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库路由表存储着指向特定网络地址的路径路由表建立的主要目标是为了实现路由协议和静态路由选择。路由表就相当于一张地图告诉数据报该如何去往目的地。

路由器会根据路由表进行数据包的转发:

image.png

在ubuntu系统下我们可以使用route -n 命令查看系统的路由表:

image.png

在windows下可以使用 route print 命令查看系统的路由表:

image.png

我们发现ubuntu和windows系统的路由表中都有一条特殊的路由:目标地址为全网地址0.0.0.0 ,子网掩码为0.0.0.0,对应下一跳的地址为网关地址。那么这条路由的作用是什么呢?

我们先了解一下,计算机或者路由器是如何将一条数据通过网络发送出去的。首先将目的IP地址与自己的子网掩码进行按位与运算得到目的主机的主机号,然后拿该主机号与路由表中的路由进行匹配,如果匹配到了则将数据转发给指定的下一跳,如果没有匹配到,则转发给目标地址为0.0.0.0所对应的下一跳。

因此目标地址为0.0.0.0所对应的那条路由的作用就是:这条路由就是我们所说的默认路由,是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。

注意1:当我们发现主机(尤其是一些嵌入式或者物联网的设备)不能够上网或者不能ping通外网的时候,假如检查了IP地址、DNS等设置都没问题后依然不能解决,我们可以查看系统的路由表中是否没有添加默认路由。

注意2:不同的路由器查看路由表的命令不一样

思科路由器查看路由表命令为:show ip route

华为路由器查看路由表命令为:display ip routing-table

3、路由表的类型

路由表可以分为:静态路由和动态路由。

  • 动态路由:动态路由是指动态路由协议(如RIP)自动建立路由,并且能够根据实际情况的变化适时地进行调整。
    • 动态路由之所以能根据网络的情况自动计算路由、选择转发路径,是由于当网络发生变化时,路由器之间彼此交换的路由信息会告知对方网络的这种变化,通过信息扩散使所有路由器都能得知网络变化。
    • 路由器根据某种路由算法(不同的动态路由协议算法不同)把收集到的路由信息加工成路由表,供路由器在转发IP报文时查阅
    • 常见的动态路由协议有:RIP、OSPF、IS-IS、BGP、IGRP/EIGRP
  • 静态路由:由网络管理员手动配置的路由。
    • Linux系统静态路由操作:
      • 添加路由:route -n add -net 目标地址/子网掩码位数 gw 下一跳,例如:route -n add -net 192.168.1.0/24 192.168.33.2
      • 添加默认路由:route add default gw IP
      • 删除路由:route delete -net 目标地址/子网掩码位数,例如:route delete -net 192.168.1.0/24
      • 注意:参数-net 表示操作某个网段,如果操作的数具体某台主机的地址则使用-host选项
    • 路由器静态路由操作:
      • 添加路由:ip route 目标地址 子网掩码 下一跳地址,例如:ip route 192.168.3.0 255.255.255.0 192.168.1.1
      • 删除路由:no ip route 目标地址 子网掩码 下一跳地址

4、路由表实验

下面我们使用思科的模拟器Cisco Packet Tracer进行路由表的实验

1)首先我们先搭建基础的网络,如下图所示:image.png

2)在此次实验中我们通过设置三个路由器的路由表实现主机PC0与主机PC1之间的通信

3)分别设置主机PC0与主机PC1的ip地址

image.pngimage.png

4)分别设置三台路由器的IP地址

image.pngimage.png

image.pngimage.pngimage.png

image.png

5)分别为三个路由器设置静态路由

image.png

image.png

image.png

image.png

6)在PC0尝试ping PC1

image.png

2.4.8 ARP高速缓存表

1、地址解析协议ARP

  • 通过前面的学习,我们知道:如果网络中的主机需要互相通信,那么源主机必须要知道目的主机的IP地址和MAC地址,因为在数据链路层封装的MAC帧中需要封装目的地址和源地址。当已知目的主机的IP地址时,可以通过ARP协议获得目的主机的MAC地址
  • ARP请求报文封装在MAC帧中,目的地址为FF-FF-FF-FF,并且以广播的形式发送的。image.png
  • ARP协议工作流程image.png

2、ARP高速缓存表

ARP高速缓存(ARP cache),由最近的ARP项组成的一张临时表,表中记录了主机IP地址和MAC地址的对应关系

image.png

注意:ARP报文只能在发送主机所在的广播域中被使用!image.png

3、ARP欺骗

ARP 欺骗是一种以 ARP 地址解析协议为基础的一种网络攻击方式。

ARP欺骗的原理:利用ARP协议没有安全认证机制,攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。

ARP欺骗分为两种:

  • 主机型欺骗:攻击者向其他主机发送ARP响应包,攻击者在响应包中填入网关的IP地址和自己MAC地址,这样主机A应该发送给网关的数据包会被网关转发给主机B
  • 网关型欺骗:攻击者向网关发送ARP响应包,攻击者在响应包中填入被攻击主机的IP地址和自己MAC地址,这样网关接收到互联网中发给主机A的数据时也会转发给主机B

image.png

ARP欺骗的危害:

  • 信息安全收到威胁
  • 网络延迟增加
  • 网络通信中断

ARP欺骗防范方法:

  • 安装补丁
  • 静态绑定:网内的主机与网关做IP和MAC绑定
  • 使用ARP防火墙
  • 不要点开通讯工具中的一些可疑链接、图片、文件等。

2.4.9 特殊IP地址

1、127.0.0.1

回环地址,该地址还有 一个别名叫 “localhost”,无论是哪个程序,一旦使用该地址发送数据,协议软件会立即返回,不进行任何网络传输,除非出错,包含该网络号的分组是不能够出现 在任何网络上的。

2、10.*.*.*,172.16.*.*――172.31.*.*,192.168.*.*

上面三个网段是私有地址,可以用于自己组网使用,这些地址主要用于企业内部网络中,但不能够在Internet网上使用,Internet网没有这些地址 的路由,而使用这三个网段的计算机要上网必须要通过网络地址转换(NAT),将私有地址翻译成公用合法的IP地址。

3、255.255.255.255

受限制的广播地址,对本机来说,这个地址指本网段内(同一个广播域)的所有主机,该地址用于主机配置过程中IP数据包的目的地址,这时主机可能还不知道它 所在网络的网络掩码,甚至连它的IP地址也还不知道。在任何情况下,路由器都会禁止转发目的地址为受限的广播地址的数据包,这样的数据包仅会出现在本地网络中。

4、224.0.0.0—239.255.255.255

组播地址

5、169.254.*.*

如果你的主机使用了DHCP功能自动获得一个ip地址,那么当你的DHCP服务器发生故障或响应时间太长而超出系统规定的一个时间,windows系统会为你分配这样一个地址。如果你发现你的主机ip地址是个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。

6、114.114.114.114

中国电信DNS

7、8.8.8.8

谷歌DNS


http://www.ppmy.cn/devtools/157049.html

相关文章

StarSpider 星蛛 爬虫 Java框架 可以实现 lazy爬取 实现 HTML 文件的编译,子标签缓存等操作

StarSpider 星蛛 爬虫 Java框架 开源技术栏 StarSpider 能够实现 针对 HTML XSS SQL 数学表达式等杂乱数据的 爬取 解析 提取 需求! 目录 文章目录 StarSpider 星蛛 爬虫 Java框架目录介绍如何获取?maven配置 架构是什么样的?结果对象的类…

MATLAB | 基于Theil-Sen斜率和Mann-Kendall检验的栅格数据趋势分析

最近看到一些博主分享关于 SenMK 检验的代码,对于新手来说可能有点复杂。我们编写了一段 MATLAB 代码,能够一次性解决这些问题,简化操作流程。我们还准备了几个关于趋势检验的空间分布图,供大家参考。 一、Sens Slope和Mann-Kenda…

【STM32系列】利用MATLAB配合ARM-DSP库设计IIR数字滤波器(保姆级教程)

ps.源码放在最后面 设计FIR数字滤波器可以看这里:利用MATLAB配合ARM-DSP库设计FIR数字滤波器(保姆级教程) 设计IIR滤波器 MATLAB配置 设计步骤 首先在命令行窗口输入"filterDesigner",接着就会跳出以下界面&#xf…

【论文投稿】Python 网络爬虫:探秘网页数据抓取的奇妙世界

目录 前言 一、Python—— 网络爬虫的绝佳拍档 二、网络爬虫基础:揭开神秘面纱 (一)工作原理:步步为营的数据狩猎 (二)分类:各显神通的爬虫家族 三、Python 网络爬虫核心库深度剖析 &…

Spring 中的设计模式

控制反转(IoC)和依赖注入(DI) IoC(Inversion of Control,控制反转) 是 Spring 中一个非常非常重要的概念,它不是什么技术,而是一种解耦的设计思想。IoC 的主要目的是借助于“第三方”(Spring 中的 IoC 容器) 实现具有依赖关系的对象之间的解耦(IOC 容器…

Maven 构建命令详解

1. Maven 构建命令概述 Maven 是 Java 生态中最流行的构建工具之一,它提供了一套标准化的构建命令,使得开发者可以轻松管理项目的编译、测试、打包、安装和部署等任务。 本篇文章将深入解析 Maven 中最常用的构建命令,包括: mv…

基于SpringBoot养老院平台系统功能实现五

一、前言介绍: 1.1 项目摘要 随着全球人口老龄化的不断加剧,养老服务需求日益增长。特别是在中国,随着经济的快速发展和人民生活水平的提高,老年人口数量不断增加,对养老服务的质量和效率提出了更高的要求。传统的养…

VIVADO生成DCP和EDF指南

VIVADO生成DCP和EDF 文章目录 VIVADO生成DCP和EDF前言一、DCP封装二、EDF封装 前言 详细步骤就不贴图了,网上一大堆 在Vivado中,常用的三种封装形式有三种: ● IP ● edif ● dcp 在下文之前,先看几个概念 out_of_context&…