当前位置: 首页 > news >正文

【计网】网络层

网络层

  • 4.1 网络层提供的两种服务
    • (一) 面向连接的虚电路服务
    • (二) 无连接的数据报服务
  • 4.2 IPv4
    • 4.2.1 IPv4概述
    • 4.2.2 分类编址的IPv4地址
    • 4.2.3 划分子网的IPv4地址
    • 4.2.4 无分类编址的IPv4地址
    • 4.2.5 IPv4地址的应用规划
      • (一) 定长子网掩码FLSM
      • (二)变长子网掩码VLSM
  • 4.3 IP数据报的发送和转发过程
    • 4.3.1 主机发送IP数据报
    • 4.3.2 路由器转发IP数据报
  • 4.4 静态路由配置和可能出现的路由环路错误
  • 4.5 路由选择协议
    • 4.5.1 路由选择协议概述
      • 4.5.1.1 静态路由和动态路由
      • 4.5.1.2 因特网所采用的路由选择协议的主要特点
      • 4.5.1.3 常见的路由选择协议
      • 4.5.1.4 路由器基本结构
    • 4.5.2 RIP协议
      • 4.5.2.1 RIP基本概念
      • 4.5.2.2 RIP的基本工作过程
      • 4.5.2.3 RIP更新规则
    • 4.5.3 开放最短路径优先OSPF
      • 4.5.3.1 OSPF的概念
      • 4.5.3.2 OSPF的基本工作过程
      • 4.5.3.3 OSPF多点接入
    • 4.5.3 边界网关协议BGP
  • 4.6 IPv4数据报的首部格式
  • 4.7 网际控制报文协议ICMP
  • 4.8 虚拟专用网VPN和网络地址转换NAT
    • 4.8.1 虚拟专用网VPN
    • 4.8.2 网络地址转换NAT

4.1 网络层提供的两种服务

(一) 面向连接的虚电路服务

在这里插入图片描述

  • 可靠通信由网络来保证:这意味着在使用虚电路进行通信时,网络的可靠性是由网络本身来保障的。
  • 必须建立网络层的连接——虚电路VC(Virtual Circuit):在进行通信之前,必须先建立一个虚电路连接。这个连接是在网络层建立的,用于确保数据的可靠传输。
  • 通信双方沿着已建立的虚电路发送分组:一旦虚电路建立起来,通信双方就可以沿着这条虚电路发送数据分组。
  • 目的主机的地址仅在连接建立阶段使用,之后每个分组的头部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号):在虚电路建立的过程中,会使用目的主机的地址来确定路径。但是,一旦虚电路建立完成,后续的数据分组只需要携带虚电路的编号即可,而不需要再携带完整的地址信息。
  • 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错、按序到达、不丢失、不重复):如果在虚电路的基础上再使用可靠的传输协议,那么可以确保数据分组能够无差错、按序到达接收方,并且不会丢失或重复。
  • 通信结束后,需要释放之前所建立的虚电路:当通信完成后,之前建立的虚电路需要被释放,以便其他通信可以使用这些资源。

(二) 无连接的数据报服务

在这里插入图片描述

  • 可靠通信应当由用户主机来保证这意味着网络本身不提供端到端的可靠性保证(如TCP的可靠性机制),而是由用户主机(通常是传输层协议,如TCP)来确保数据的可靠传输。

  • 不需要建立网络层连接 这是数据报网络的特点之一。在数据报网络中,每个分组(数据包)都是独立处理的,不需要在发送数据之前建立连接(如虚电路网络中的连接)。

  • 每个分组可走不同的路径:在数据报网络中,路由器根据当前网络状况为每个分组选择最佳路径。因此,不同的分组可能会通过不同的路径到达目的地。

  • 每个分组的首部必须携带目的主机的完整地址:由于每个分组是独立路由的,因此每个分组的首部必须包含完整的目的地址,以便路由器能够正确转发。

  • 这种通信方式所传送的分组可能误码、丢失、重复和失序:数据报网络不保证分组的可靠性,因此分组可能会在传输过程中出现错误、丢失、重复或失序。

  • 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉

对比方面虚电路服务数据报服务
思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证
连接的建立必须建立网络层连接不需要建立网络层连接
终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址
分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组可走不同的路由
当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序
服务质量保证可以将通信资源提前分配给每一个虚电路,容易实现很难实现

4.2 IPv4

4.2.1 IPv4概述

  • IPv4 地址的定义: IPv4 地址是一个 32 比特 的标识符,用于唯一标识因特网上的每一台主机(或路由器)的每一个接口

  • IPv4 地址的编址方法经历了以下三个主要阶段:① 分类编址(1981 年)划分子网(1985 年)无分类编址(1993 年)

  • 32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用
    在这里插入图片描述

4.2.2 分类编址的IPv4地址

  • IPv4 地址被分为 5 类:A 类、B 类、C 类、D 类和 E 类。
    • 主机号为“全0”的地址是网络地址,不能分配给主机或路由器的各接口
    • 主机号为“全1”的地址是广播地址,不能分配给主机或路由器的各接口

在这里插入图片描述

网络类别第一个可指派的网际号最后一个可指派的网际号最大可指派的网际数量每个网络中的最大主机数量不能指派的网际号占总地址空间
A1126126 (2^7 - 2)16777214 (2^24 - 2)0和1271/2 (2(32-1)/232)
B128.0191.25516384 (2^14)65534 (2^16 - 2)1/4 (2(32-2)/232)
C192.0.0223.255.2552097152 (2^(21))254 (2^8 - 2)1/8 (2(32-3)/232)

4.2.3 划分子网的IPv4地址

在这里插入图片描述

  • 为新增加的网络申请新的网络号会带来以下弊端:

    • 需要等待时间和花费更多的费用
    • 会增加其他路由器中路由表记录的数量
    • 浪费原有网络号中剩余的大量IP地址
  • 解决方案:可以从主机号部分借用一部分比特作为子网号

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

    • 子网掩码使用连续的比特1来对应网络号和子网号
    • 子网掩码使用连续的比特0来对应主机号
    • 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址
      在这里插入图片描述
  • 给定一个分类的IP地址和其相应的子网掩码,就可以知道子网划分的细节:

    • 划分出的子网数量
    • 每个子网可分配的IP地址数量
    • 每个子网的网络地址和广播地址
    • 每个子网可分配的最小和最大地址
      在这里插入图片描述
  • 默认的子网掩码是指在未划分子网的情况下使用的子网掩码:

    • A类:255.0.0.0
    • B类:255.255.0.0
    • C类:255.255.255.0
      在这里插入图片描述

4.2.4 无分类编址的IPv4地址

  • 划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
  • 为此,因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv6工作组负责研究新版本IP以彻底解决IP地址耗尽问题。
  • 1993年,IETF发布了无分类域间路由选择CIDR(Classless Inter-Domain Routing)的RFC文档:RFC 1517~1519和1520。
    • CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念
    • CIDR可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增长。

  • CIDR使用“斜线记法”,或称CIDR记法。即在IPv4地址后面加上斜线“/”,在斜线后面写上网络前缀所占的比特数量

  • CIDR实际上是将网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。
    在这里插入图片描述

  • 我们只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的全部细节:

    • 地址块的最小地址
    • 地址块的最大地址
    • 地址块中的地址数量
    • 地址块聚合某类网络(A类、B类或C类)的数量 □ 地址掩码(也可继续称为子网掩码)
      在这里插入图片描述
  • 路由聚合(构造超网)的方法是找共同前缀

    • 网络前缀越长,地址块越小,路由越具体;
    • 若路由器查表转发分组时发现有多条路由可选,则选择网络前缀最长的那条,这称为最长前缀匹配,因为这样的路由更具体。
      在这里插入图片描述

4.2.5 IPv4地址的应用规划

(一) 定长子网掩码FLSM

  • 使用同一个子网掩码来划分子网
  • 子网划分方式不灵活:只能划分出 2 n 2^n 2n个子网(n是从主机号部分借用的用来作为子网号的比特数量)
  • 每个子网所分配的IP地址数量相同,容易造成IP地址浪费。
    在这里插入图片描述

(二)变长子网掩码VLSM

  • 变长的子网掩码VLSM (Variable Length Subnet Mask)使用不同的子网掩码来划分子网
  • 子网划分方式灵活:可以按需分配
  • 每个子网所分配的IP地址数量可以不同,尽可能减少对IP地址的浪费
    在这里插入图片描述

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

4.3.1 主机发送IP数据报

  • 判断目的主机是否与自己在同一个网络
    • 若在同一个网络,则属于直接交付;
    • 若不在同一个网络,则属于间接交付,传输给主机所在网络的默认网关(路由器),由默认网关帮忙转发;
      在这里插入图片描述

4.3.2 路由器转发IP数据报

  • 检查IP数据报首部是否出错
    • 若出错,则直接丢弃该IP数据报并通告源主机;
    • 若没有出错,则进行转发;
  • 根据IP数据报的目的地址在路由表中查找匹配的条目
    • 若找到匹配的条目,则转发给条目中指示的下一跳;
    • 若找不到,则丢弃该IP数据报并通告源主机;
      在这里插入图片描述

4.4 静态路由配置和可能出现的路由环路错误

  • 静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表。

    • 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
    • 一般只在小规模网络中采用。
  • 路由条目的类型

    • 直连网络

    • 静态路由(人工配置)
      在这里插入图片描述

    • 动态路由(路由选择协议)

  • 特殊的静态路由条目

    • 默认路由(目的网络为0.0.0.0,地址掩码为0.0.0.0)
    • 特定主机路由(目的网络为特定主机的IP地址,地址掩码为255.255.255.255)
    • 黑洞路由(下一跳为null0)
  • 使用静态路由配置可能出现以下导致产生路由环路的错误

    • 配置错误
      在这里插入图片描述

    • 聚合了不存在的网络
      在这里插入图片描述
      在这里插入图片描述

    • 网络故障
      0

4.5 路由选择协议

4.5.1 路由选择协议概述

4.5.1.1 静态路由和动态路由

特性静态路由选择动态路由选择
定义人工配置的网络路由、默认路由、特定主机路由、黑洞路由等。路由器通过路由选择协议自动获取路由信息。
配置方式人工手动配置。自动配置,通过路由协议(如OSPF、BGP、RIP等)动态学习。
复杂性简单,配置工作量小。复杂,配置和维护工作量较大。
开销开销小,无需额外的协议和计算资源。开销较大,需要协议运行和计算资源。
适应性不能及时适应网络状态(如流量、拓扑等)的变化。能较好地适应网络状态的变化。
适用场景小规模网络,拓扑结构简单且变化较少的网络。大规模网络,拓扑结构复杂且变化频繁的网络。
优点1. 配置简单,易于管理。
2. 资源消耗低。
1. 自动适应网络变化。
2. 适合复杂网络环境。
缺点1. 无法自动适应网络变化。
2. 不适合大规模网络。
1. 配置复杂。
2. 资源消耗较高。

4.5.1.2 因特网所采用的路由选择协议的主要特点

  • 自适应 :动态路由选择,能较好地适应网络状态的变化

  • 分布式 :路由器之间交换路由信息

  • 分层次 :将整个因特网划分为许多较小的自治系统AS(Autonomous System)

在这里插入图片描述

4.5.1.3 常见的路由选择协议

在这里插入图片描述

4.5.1.4 路由器基本结构

  1. 路由表一般仅包含从目的网络到下一跳的映射

    • 路由表是路由器或三层交换机中用于决定数据包转发路径的关键数据结构。它通常包含目的网络地址(如IP地址前缀)和对应的下一跳地址(即数据包应该发送到的下一个路由器或接口)。路由表的主要功能是提供从源到目的地的路径信息,而不是完整的路径。
  2. 路由表需要对网络拓扑变化的计算最优化

    • 路由表的内容是通过路由协议(如OSPF、BGP、RIP等)动态计算得出的。为了应对网络拓扑的变化(如链路故障或新增路由器),路由协议需要快速收敛并更新路由表。因此,路由表的设计和路由算法的计算需要高效,以确保在网络变化时能够快速更新并保持最优路径。
  3. 转发表是从路由表得出的

    • 转发表(Forwarding Table)是路由器实际用于转发数据包的数据结构。它通常是从路由表中提取的,但可能经过进一步优化以提高转发效率。转发表通常只包含必要的信息,如目的地址、出接口和下一跳地址,以便快速查找和转发数据包。
  4. 转发表的结构应当使查找过程最优化

    • 转发表的查找效率直接影响路由器的转发性能。为了支持高速转发,转发表通常采用高效的数据结构(如哈希表、Trie树或硬件优化的查找表)。这些结构的设计目标是尽量减少查找时间,从而满足高速网络的需求。

在这里插入图片描述

4.5.2 RIP协议

4.5.2.1 RIP基本概念

  • 路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议之一,其相关标准文档为RFC 1058。
  • RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V(Distance-Vector)”。
  • RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离。
    • 路由器到直连网络的距离定义为1
    • 路由器到非直连网络的距离定义为所经过的路由器数加1
    • 允许一条路径最多只能包含15个路由器。“距离”等于16时相当于不可达。因此,RIP只适用于小型互联网。
      在这里插入图片描述
  • RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由。
  • 当到达同一目的网络有多条“距离相等”的路由时,可以进行等价负载均衡
  • RIP包含以下三个要点:
    • 和谁交换信息:仅和相邻路由器交换信息
    • 交换什么信息:自己的路由表
    • 何时交换信息:周期性交换(例如每30秒)
      在这里插入图片描述

4.5.2.2 RIP的基本工作过程

  1. 路由器刚开始工作时,只知道自己到直连网络的距离为1
  2. 每个路由器仅和相邻路由器周期性地交换并更新路由信息
  3. 若干次交换和更新后,每个路由器都知道到达本AS内各网络的最短距离和下一跳地址,称为收敛。
    在这里插入图片描述

4.5.2.3 RIP更新规则

  • 到达目的网络,相同下一跳,最新消息,更新
  • 发现了新的网络,添加
  • 到达目的网络,不同下一跳,新路由优势,更新
  • 到达目的网络,不同下一跳,等价负载均衡
  • 到达目的网络,不同下一跳,新路由劣势,不更新
    在这里插入图片描述

4.5.3 开放最短路径优先OSPF

4.5.3.1 OSPF的概念

  • 开放最短路径优先OSPF(Open Shortest Path First),是为克服RIP的缺点在1989年开发出来的。

    • “开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。
    • 最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF
  • OSPF是基于链路状态的,而不像RIP那样是基于距离向量的。

    • 链路状态是指本路由器都和哪些路由器相邻,以及相应链路的“代价”(cost)。“代价”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定。
      在这里插入图片描述
  • OSPF采用SPF算法计算路由,从算法上保证了不会产生路由环路。

  • OSPF不限制网络规模,更新效率高,收敛速度快。

4.5.3.2 OSPF的基本工作过程

OSPF相邻路由器之间通过交互问候(Hello)分组,建立和维护邻居关系。

  • Hello分组封装在IP数据报中,发往组播地址224.0.0.5;
  • 发送周期为10秒
  • 40秒未收到来自邻居路由器的Hello分组,则认为该邻居路由器不可达。

在这里插入图片描述
使用OSPF的每个路由器都会产生链路状态通告LSA(Link State Advertisement)。LSA中包含以下内容:

  • 直连网络的链路状态信息
  • 邻居路由器的链路状态信息

LSA被封装在链路状态更新分组LSU中,采用洪泛法发送。

在这里插入图片描述
使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA。
通过各路由器洪泛发送封装有自己LSA的LSU分组,各路由器的LSDB最终将达到一致。

在这里插入图片描述
使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各自到达其他各路由器的最短路径,即构建各自的路由表。
在这里插入图片描述

OSPF有以下五种分组类型
□ 类型1,问候(Hello)分组 :用来发现和维护邻居路由器的可达性。
□ 类型2,数据库描述(Database Description)分组 :向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
□ 类型3,链路状态请求(Link State Request)分组 :向邻居路由器请求发送某些链路状态项目的详细信息。
□ 类型4,链路状态更新(Link State Update)分组 :路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态。
□ 类型5,链路状态确认(Link State Acknowledgment)分组 :这是对链路状态更新分组的确认分组。
在这里插入图片描述

4.5.3.3 OSPF多点接入

OSPF在多点接入网络中路由器邻居关系的建立

  • 选举指定路由器DR(designated router)和备用的指定路由器BDR(backup designated router)
  • 所有的非DR/BDR只与DR/BDR建立邻居关系
  • 非DR/BDR之间通过DR/BDR交换信息

在这里插入图片描述

  • 为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)
    在这里插入图片描述

4.5.3 边界网关协议BGP

  • 外部网关协议EGP(例如边界网关协议BGP)

    • 在不同自治系统内,度量路由的“代价”(距离,带宽,费用等)可能不同。因此,对于自治系统之间的路由选择,使用“代价”作为度量来寻找最佳路由是不行的。
      在这里插入图片描述
    • 自治系统之间的路由选择必须考虑相关策略(政治,经济,安全等)
    • BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
      在这里插入图片描述
  • 在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”
    不同自治系统的BGP发言人要交换路由信息,首先必须建立TCP连接,端口号为179

    • 在此TCP连接上交换BGP报文以建立BGP会话
    • 利用BGP会话交换路由信息(例如,增加新的路由,或撤销过时的路由,以及报告出错的情况等)
    • 使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)
  • BGP发言人除了运行BGP外,还必须运行自己所在自治系统所使用的内部网关协议IGP,例如OSPF或RIP。

  • BGP发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统)

  • 当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信
    息中找出到达各自治系统的较好的路由。也就是构造出树形结构、不存在回路的自治系统连通图。
    在这里插入图片描述

4.6 IPv4数据报的首部格式

在这里插入图片描述

■ 版本 占4比特,表示IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。
■ 首部长度 占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。
最小十进制取值为5,表示IP数据报首部只有20字节固定部分;
最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分。
■ 可选字段 长度从1个字节到40个字节不等。用来支持排错、测量及安全等措施。
可选字段增加了IP数据报的功能,但这也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。
■ 填充字段 确保首部长度为4字节的整数倍。使用全0进行填充。
■ 区分服务 占8比特,用来获得更好的服务。1998年,因特网工程任务组IETF把这个字段改名为区分服务。利用该字段的不同数值可提供不同等级的服务质量。只有在使用区分服务时,该字段才起作用。一般情况下都不使用该字段。
■ 总长度 占16比特,表示IP数据报的总长度(首部+数据载荷)。最大取值为十六进制的65535,以字节为单位。
■ 标识 占16比特,属于同一个数据报的各片数据报应该具有相同的标识。IP软件维持一个计数器,每产生一个数据报,计数器值加1,并将此值赋给标识字段。
■ 标志 占3比特,各比特含义如下:DF位:1表示不允许分片;0表示允许分片;MF位:1表示“后面还有分片”;0表示“这是最后一个分片”;保留位:必须为0。
■ 片偏移 占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位。片偏移以8个字节为单位。
■ 生存时间TTL 占8比特,表示IP数据报的生存时间。
最初以秒为单位,最大生存周期为255秒;路由器转发IP数据报时,将IP数据报首部中的该字段的值减去IP数据报在本路由器上所耗费的时间,若不为0就转发,否则就丢弃。现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为0就转发,否则就丢弃。
IP数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段(生存时间、标志、片偏移等)的取值可能发生变化。
■ 协议 占8比特,指明IPv4数据报的数据部分是何种协议数据单元。常用的一些协议和相应的协议字段值如下。
■ 首部检验和 占16比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。由于IP层本身并不提供可靠传输的服务,并且计算首部检验和是一项耗时的操作,因此在IPv6中,路由器不再计算首部检验和,从而更快地转发IP数据报。
■ 源IP地址和目的IP地址 各占32比特,用来填写发送该IP数据报的源主机的IP地址和接收该IP数据报的目的主机的IP地址。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.7 网际控制报文协议ICMP

  • 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)。

  • 主机或路由器使用ICMP来发送差错报告报文询问报文

  • ICMP报文被封装在IP数据报中发送

  • ICMP差错报告报文共有以下五种:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 以下情况不应发送ICMP差错报告报文:

    • 对ICMP差错报告报文不再发送ICMP差错报告报文
    • 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
    • 口对具有多播地址的数据报都不发送ICMP差错报告报文
    • 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
  • 常用的ICMP询问报文有以下两种

    • 回送请求和回答
      ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。
      收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
      这种询问报文用来测试目的站是否可达及了解其有关状态
    • 时间戳请求和回答
      ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。
      在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从
      1900年1月1日起到当前时刻一共有多少秒。
      这种询问报文用来进行时钟同步和测量时间
      在这里插入图片描述
      在这里插入图片描述

4.8 虚拟专用网VPN和网络地址转换NAT

4.8.1 虚拟专用网VPN

  • 利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。
  • 同一机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网VPN。
  • VPN要保证传输数据的安全性,会将原始的内部数据报进行加密,然后再将其封装成为在因特网上发送到的外部数据报。
  • 有时一个机构的VPN需要有某些外部机构(通常是合作伙伴)参加进来。这样的VPN就称为外联网VPN。
  • 在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的VPN软件,在员工的PC和公司的主机之间建立VPN隧道,即可访问专用网络中的资源。这种VPN称为远程接入VPN。

在这里插入图片描述

4.8.2 网络地址转换NAT

  • 由于IP地址的紧缺,一个机构能够申请到的IP地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址。
  • 虽然因特网采用了充分编址方式来减缓IP地址空间耗尽的速度,但由于因特网用户数目的激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临耗尽的危险仍然没有被解除。
  • 1994年提出了一种网络地址转换NAT的方法再次缓解了IP地址空间耗尽的问题。
  • NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
  • 由于绝大多数的网络应用都是使用运输层协议TCP或UDP来传送数据,因此可以利用运输层的端口号和IP地址一起进行转换。这样,用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信。这种将端口号和IP地址一起进行转换的技术叫作网络地址与端口号转换NAPT(Network Address and Port Translation)。
  • 对于一些P2P网络应用,需要外网主机主动与内网主机进行通信,在通过NAT时会遇到问题,需要网络应用自己使用一些特殊的NAT穿越技术来解决。
  • 由于NAT对外网屏蔽了内网主机的网络地址,能为内网的主机提供一定的安全保护。
    在这里插入图片描述
    在这里插入图片描述

相关文章:

【计网】网络层

网络层 4.1 网络层提供的两种服务(一) 面向连接的虚电路服务(二) 无连接的数据报服务 4.2 IPv44.2.1 IPv4概述4.2.2 分类编址的IPv4地址4.2.3 划分子网的IPv4地址4.2.4 无分类编址的IPv4地址4.2.5 IPv4地址的应用规划(…...

稳定性保障-前端

前端稳定性保障是确保应用在各种环境下都能 高效、稳定、无错误 运行的策略和方法。可以从 监控、测试、容灾、优化 等方面进行保障。 📌 1. 监控 & 报警 实时监控 线上情况,及时发现问题。 ✅ 1.1 前端错误监控 • Sentry、Fundebug&#xff1a…...

批量给 Word 中的所有图片添加水印

如果要给一个 Word 文档加水印,很多小伙伴都能轻松的完成,因为使用 Office 就能轻松的操作,并且也有很多第三方的工具可以帮我们实现。那假如需要给 Word 中的每一张图片都添加上水印,那有什么比较好的方法实现呢?今天…...

jQuery UI 简介

jQuery UI 简介 引言 随着互联网技术的飞速发展,前端开发已经成为网站和应用程序建设的重要组成部分。jQuery UI 是一个基于 jQuery 的用户界面库,它为开发者提供了丰富的交互组件和视觉效果,使得创建具有吸引力和互动性的网页变得更加简单。本文将为您详细介绍 jQuery UI…...

`label` 标签的 `for` 属性详解

一、基本概念 label 标签的 for 属性用于将标签与表单控件(如 input、select 等)绑定,其值需与目标元素的 id 完全匹配。这种关联允许用户点击标签时触发控件交互(如聚焦输入框或切换复选框),提升操作便捷…...

ArcGIS操作:10 投影坐标系转地理坐标系

应用情景:在计算shp面质心坐标的时,由于需要的坐标是经纬度,所以需要将投影坐标系转化为地理坐标系 1、打开工具箱 2、右侧:数据管理工具 → 投影和变换 → 要素 → 投影 3、选择投影的数据、输出路径、地理坐标系,点…...

【单片机通信技术】串口通信的几种方式与比较,详细解释SPI通信

一、介绍 串口通信是一种通过串行接口逐位传输数据的通信方式,广泛应用于嵌入式系统、工业控制、传感器网络等领域。 二、以下是几种常见的串口通信方式及其对比: 1.UART(Universal Asynchronous Receiver/Transmitter) 特点&am…...

DeepSeek开源Day5:3FSsmallpond技术详解

2 月 24 日,DeepSeek 启动 “开源周”,第四个开源的代码库为 3FS&smallpond(又是一下发布了两个)。 3FS(Fire-Flyer File System)是 DeepSeek 内部开发的一款高性能分布式文件系统,旨在为 A…...

常见的限流算法有哪些

计数器算法 原理:在固定的时间窗口内,对请求进行计数,当请求数量达到设定的阈值时,就开始限流,拒绝多余的请求。例如,设定 1 分钟的时间窗口内允许最多 100 个请求,那么在这 1 分钟内每来一个请…...

Android 低功率蓝牙之BluetoothGattCallback回调方法详解

BluetoothGattCallback 是 Android 中用于处理蓝牙低功耗(BLE)设备通信的核心回调类。它负责处理与 BLE 设备的连接、服务发现、数据读写等操作的结果。以下是对 BluetoothGattCallback 的详细解析: 1. onConnectionStateChange 触发时机&am…...

socket.io协议内容详解

Socket.IO 是一个基于事件的实时通信库,支持双向通信。它并非单一协议,而是结合了 Engine.IO 传输层和 Socket.IO 应用层协议的复合体系。以下是其协议核心内容的详细解析: 1. 协议分层 Engine.IO:负责底层传输(如 WebSocket、HTTP 长轮询),处理连接稳定性、心跳和断线重…...

在Oracle中编写雪花算法升学雪花ID

雪花算法的定义不详细说了哈,直接给出代码! --雪花配置 --DROP TABLE SNOWFLAKE_CONFIG; CREATE TABLE SNOWFLAKE_CONFIG ( DATA_CENTER_ID NUMBER(5) NOT NULL, WORKER_ID NUMBER(5) NOT NULL, LAST_TIMESTAMP NUMBER(20) NOT NULL, SEQUENCE NUMBE…...

我们来学nginx -- 优化下游响应速度

优化下游响应速度 题记启用 Gzip 压缩优化缓冲区设置设置超时时间 题记 专家给出的配置文件真是…,信息量有点大啊! nginx:我只想作为一个简单的代理专家爸爸:都是为了你好! 这样,先从有关响应速度的角度&…...

SELECT ... FOR UPDATE 加锁后,其他线程能读取数据吗

在执行 SELECT * FROM table WHERE ... FOR UPDATE 语句时,MySQL 会对查询结果集中的行加 排他锁(X锁)。这种锁的行为会影响其他事务对这些行的读写操作。以下是具体的影响: 1. 加锁后的效果 当前事务: 对查询结果集中…...

【论文阅读】多模态——LSeg

文献基本信息 标题:Language-Driven Semantic Segmentation作者:Boyi Li、Kilian Q. Weinberger、Serge Belongie、Vladlen Koltun、Ren Ranftl单位:Cornell University、University of Copenhagen、Apple、Intel Labs会议/期刊:…...

GBT32960 协议编解码器的设计与实现

GBT32960 协议编解码器的设计与实现 引言 在车联网领域,GBT32960 是一个重要的国家标准协议,用于新能源汽车与监控平台之间的数据交互。本文将详细介绍如何使用 Rust 实现一个高效可靠的 GBT32960 协议编解码器。 整体架构 编解码器的核心由三个主要组…...

Tomcat之 配置https协议即SSL证书

太难了,Tomcat7服务器配置Https协议的SSL证书,半天没搞定啊 切换,Tomcat8 分分钟 参考 https://blog.csdn.net/u014553029/article/details/86672342 https://blog.csdn.net/qq_37138756/article/details/103516627 https://blog.csdn.net/r…...

如何将飞书多维表格与DeepSeek R1结合使用:效率提升的完美搭档

将飞书的多维表格与DeepSeek R1结合使用,就像为你的数据管理和分析之旅装上一台涡轮增压器。两者的合作,不仅仅在速度上让人耳目一新,更是将智能化分析带入了日常的工作场景。以下是它们如何相辅相成并改变我们工作方式的一些分享。 --- 在…...

JPA编程,去重查询ES索引中的字段,对已有数据的去重过滤,而非全部字典数据

一、背景 课程管理界面,查询前,需要把查询元数据给出。 学科列表、学段列表和分类列表,我们把它定义为查询元数据。 一般的业务需求是: 系统维护好多个字典,比如学科、学段等等,相当于属性库。 但是&…...

Kubermetes 部署mysql pod

步骤 1: 创建 PersistentVolume 和 PersistentVolumeClaim 首先为 MySQL 创建一个 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 来确保数据的持久性。 mysql-pv.yaml: apiVersion: v1 kind: PersistentVolume metadata:name: mysql-pv-volume spec:cap…...

自定义wordpress三级导航菜单代码

首先,在你的主题functions.php文件中,添加以下代码以注册一个新的菜单位置: function mytheme_register_menus() {register_nav_menus(array(primary-menu > __(Primary Menu, mytheme))); } add_action(init, mytheme_register_menus); …...

剑指 Offer II 060. 出现频率最高的 k 个数字

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20060.%20%E5%87%BA%E7%8E%B0%E9%A2%91%E7%8E%87%E6%9C%80%E9%AB%98%E7%9A%84%20k%20%E4%B8%AA%E6%95%B0%E5%AD%97/README.md 剑指 Offer II 060. 出现频率最高的…...

SQL Server数据库中用存储过程来取顺序号

SQL Server数据库中用存储过程来取顺序号 表sys_number,字段name字符,表示前缀,value数字,一个一个递增 存储过程代码: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[usp_GetSysid]name varchar(5…...

JS—组成:2分钟掌握什么是ECMAScript操作,什么是DOM操作,什么是BOM操作

个人博客:haichenyi.com。感谢关注 1. 目录 1–目录2–组成3–内置对象 2. 组成 一直都在说JS,JS,到底啥是JS有了解过吗?JS由哪几部分组成的呢? 定义: JavaScript是一种轻量级、解释型或即时编译型的编程语…...

如何使用 Ollama 的 API 来生成聊天

如何使用 Ollama 的 API 来生成聊天 简介 生成聊天 生成聊天的示例 加载模型 卸载模型 简介 Ollama 提供了一个 RESTful API,允许开发者通过 HTTP 请求与 Ollama 服务进行交互。这个 API 覆盖了所有 Ollama 的核心功能,包括模型管理、运行和监控。本…...

Jenkins学习笔记

文章目录 一、Jenkins简介二、Jenkins的安装1. 安装前准备2. 安装Jenkins3. 启动Jenkins 三、Jenkins的配置1. 初始配置2. 全局工具配置3. 插件安装 四、Jenkins的使用1. 创建新任务2. 配置任务3. 触发构建4. 查看构建结果 五、Jenkins的高级功能1. 分布式构建2. 流水线&#x…...

公开笔记:自然语言处理(NLP)中文文本预处理主流方法

在自然语言处理(NLP)领域,将中文文本转化为数字的主流方法主要集中在预训练语言模型和子词编码技术上。这些方法能够更好地捕捉语义信息,并且在各种NLP任务中表现出色。以下是目前主流的文本编码方法: 1. 基于预训练语…...

第5章 使用OSSEC进行监控(网络安全防御实战--蓝军武器库)

网络安全防御实战--蓝军武器库是2020年出版的,已经过去3年时间了,最近利用闲暇时间,抓紧吸收,总的来说,第5章开始进入主机安全(HIDS)领域了,2022年的时候有幸做过终端安全一段时间&a…...

计算机毕业设计SpringBoot+Vue.js电商平台(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

【音视频】ffplay简单过滤器

一、ffplay简单过滤器 视频旋转:借助transpose滤镜 ffplay -i 1.mp4 -vf transpose1这里选择不同的数字是不同的方向: 视频翻转:借助hflip/vflip实现水平和垂直翻转: 水平翻转 ffplay 1.mp4 -vf hflip垂直翻转 ffplay 1.mp4 …...

大白话html第十一章

大白话html第十一章 在网页开发的第十一章,会涉及到很多前沿且复杂的技术和概念,主要聚焦于性能极致优化、前沿交互技术以及与人工智能的融合等方面。 1. 极致性能优化 概念 这就好比给一辆赛车进行全方位的精细调校,让它跑得又快又稳。在…...

基于websocket搭建聊天室

基于websocket搭建聊天室 1.后端配置 1.依赖一个web一个websocket <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.spr…...

Metal学习笔记十一:贴图和材质

在上一章中&#xff0c;您设置了一个简单的 Phong 光照模型。近年来&#xff0c;研究人员在基于物理的渲染 &#xff08;PBR&#xff09; 方面取得了长足的进步。PBR 尝试准确表示真实世界的着色&#xff0c;真实世界中离开表面的光量小于表面接收的光量。在现实世界中&#xf…...

STM32-USART串口数据包

一&#xff1a;HEX数据包发送 1.为了收发数据包&#xff0c;先定义两个缓存区的数组 &#xff0c;这4个数据只存储发送或者接收的载荷数据&#xff0c;包头和包尾不存 uint8_t Serial_TxPacket[4]; uint8_t Serial_RxPacket[4]; uint8_t Serial_RxFlag;//接收一个数据包就置F…...

【LeetCode 热题 100】438. 找到字符串中所有字母异位词 | python 【中等】

继续学&#xff01;嗨起来&#xff01;&#xff01;&#xff01;&#xff08;正确率已经下30%了&#xff0c;我在干什么&#xff09; 题目&#xff1a; 438. 找到字符串中所有字母异位词 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的子串&#xff0c;返回这些子串的…...

Ollama+Deepseek-R1+AnythingLLM本地个人知识库搭建

一、OllamaDeepseek-R1AnythingLLM本地个人知识库搭建 在搭建强大的本地个人知识库以及提升开发效率的技术体系中&#xff0c;Ollama、DeepSeek-R1 和 AnythingLLM 扮演着举足轻重的角色。Ollama 作为模型运行与管理工具&#xff0c;是整个技术架构中的关键枢纽&#xff0c;负…...

决策树(Decision Tree)基础知识

目录 一、回忆1、*机器学习的三要素&#xff1a;1&#xff09;*函数族2&#xff09;*目标函数2.1&#xff09;*模型的其他复杂度参数 3&#xff09;*优化算法 2、*前处理/后处理1&#xff09;前处理&#xff1a;特征工程2&#xff09;后处理&#xff1a;模型选择和模型评估 3、…...

跨域-告别CORS烦恼

跨域-告别CORS烦恼 文章目录 跨域-告别CORS烦恼[toc]1-参考网址2-思路整理1-核心问题2-个人思考3-脑洞打开4-个人思考-修正版1-个人思考2-脑洞打开 3-知识整理1-什么是跨域一、同源策略简介什么是源什么是同源是否是同源的判断哪些操作不受同源策略限制跨域如何跨域 二、CORS 简…...

浅论数据库聚合:合理使用LambdaQueryWrapper和XML

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数据库聚合替代内存计算&#xff08;关键优化&#xff09;二、批量处理优化四、区域特殊处理解耦五、防御性编程增强 前言 技术认知点&#xff1a;使用 XM…...

css实现元素垂直居中显示的7种方式

文章目录 * [【一】知道居中元素的宽高](https://blog.csdn.net/weixin_41305441/article/details/89886846#_1) [absolute 负margin](https://blog.csdn.net/weixin_41305441/article/details/89886846#absolute__margin_2) [absolute margin auto](https://blog.csdn.net…...

Nerf流程

一.数据处理&#xff1a; 在输入数据时&#xff0c;并没有给出相机的内参与外参&#xff0c;需要在数据处理得出相机的内外惨数&#xff0c;作者使用COLMAP得到相机参数后&#xff0c;转成NeRF可以读取的格式即可以用于模型训练。 旋转矩阵的第一列到第三列分别表示了相机坐标系…...

Spring Cloud Alibaba学习 5- Seata入门使用

Spring Cloud Alibaba学习 5- Seata入门使用 Seata是Spring Cloud Alibaba中用于分布式事务管理的解决方案 一. Seata的基本概念 1. Seata的三大角色 1> TC (Transaction Coordinator) - 事务协调者 维护全局和分支事务的状态&#xff0c;驱动全局事务提交或回滚。TC作…...

Select 下拉菜单选项分组

使用<select>元素创建下拉菜单&#xff0c;并使用 <optgroup> 元素对选项进行分组。<optgroup> 元素允许你将相关的 <option> 元素分组在一起&#xff0c;并为每个分组添加一个标签。 <form action"#" method"post"><la…...

【无人机与无人车协同避障】

无人机与无人车协同避障的关键在于点云数据的采集、传输、解析及实时应用&#xff0c;以下是技术实现的分步解析&#xff1a; 1. 点云数据采集&#xff08;无人机端&#xff09; 传感器选择&#xff1a; LiDAR&#xff1a;通过激光雷达获取高精度3D点云&#xff08;精度达厘米…...

AI视频领域的DeepSeek—阿里万相2.1图生视频

让我们一同深入探索万相 2.1 &#xff0c;本文不仅介绍其文生图和文生视频的使用秘籍&#xff0c;还将手把手教你如何利用它实现图生视频。 如下为生成的视频效果&#xff08;我录制的GIF动图&#xff09; 如下为输入的图片 目录 1.阿里巴巴全面开源旗下视频生成模型万相2.1模…...

飞机大战lua迷你世界脚本

-- 迷你世界飞机大战 v1.2 -- 星空露珠工作室制作 -- 最后更新&#xff1a;2024年1月 ----------------------------- -- 迷你世界API适配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…...

Android15请求动态申请存储权限完整示例

效果: 1.修改AndroidManifest.xml增加如下内容: <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-perm...

Java 导出大数据到 Excel 表格

背景 之前的项目一直是用XSSFWorkbook来做 Excel 导出&#xff0c;在遇到大数据导出时&#xff0c;经常会遇到 OOM。在 Apache Poi 3.8 之后的版本提供的 SXSSFWorkbook 可以优雅的解决这个问题。 原理 SXSSFWorkbook 被称为流式 API&#xff0c;主要是因为它采用了流式写入…...

GCC RISCV 后端 -- GCC Passes 注释

在前面文章提到&#xff0c;当GCC 前端完成对C源代码解析完成后&#xff0c;就会使用 处理过程&#xff08;Passes&#xff09;机制&#xff0c;通过一系列的处理过程&#xff0c;将 GENERIC IR 表示的C程序 转步转换成 目标机器的汇编语言。过程描述如下图所示&#xff1a; 此…...

稚晖君级硬核:智元公司开源机器人通信框架AimRT入驻GitCode平台

在科技的浪潮中&#xff0c;机器人技术正以前所未有的速度发展。它们不再只是科幻小说中的概念&#xff0c;而是逐渐融入到我们的日常生活中&#xff0c;从工厂的自动化生产线到家庭的智能助手&#xff0c;机器人的身影无处不在。然而&#xff0c;随着机器人应用的日益复杂&…...