计算机网络网络层进阶:NAT、ARP 与 IP 系列技术全析!!!

devtools/2025/2/3 15:24:30/

一、网络地址转换NAT

私有IP 地址(内网IP):

10.0.0.0~10.255.255.255

172.16.0.0~172.31.255.255

192.168.0.0~192.168.255.255

  • 只允许分配给局域网内部的节点,不允许分配给互联网上的节点
  • 每个局域网内部都可以自行分配这些私有 IP 地址
  • 私有 IP 地址是可复用的,只要求局域网内唯一,不要求全球唯一

全球IP 地址(外网IP):

通常由 ISP 提供,全球唯一

外网 IP 是一个局域网与外界通信时所需使用的 IP 地址

NAT路由器与普通路由器有何区别?

普通路由器:

普通路由器转发 IP 数据报时,不会改变源 IP、目的 IP 地址

普通路由器仅包含网络层及以下的功能

NAT 路由器:

作用: 转发 IP 数据报时,进行内网 IP、外网 IP 的相互转换 NAT 表,记录地址转换关系 < 内网 IP:端口号 外网 IP:端口号>

一个IP 数据报:

① 从内网转发到外网,会更改源 IP 地址、源端口号

② 从外网转发到内网,会更改目的IP 地址、目的端口号

NAT 路由器包含传输层的功能(因为端口号是传输层的概念)

网络层实现了“主机到主机”的通信。网络层在IP 数据报的首部,指明源 IP 地址、目的 IP 地址传输层实现了“端到端”(进程到进程)的通信。

传输层在 TCP(或 UDP)报文段的首部,指明源端口、目的端口

H3 包含:源IP 地址、目的 IP 地址

H4 包含:源端口号、目的端口号

IP 地址 32bit,232≈42 亿,如果每台主机都要消耗一个全球唯一的IP 地址,显然不够用,那要如何解决呢?

可以让一个局域网内部的设备共享全球唯一的IP 地址(外网 IP)

用 NAT路由器改造王五家的网络

二、地址解析协议ARP

ARP:

作用:在一个局域网内部,可以通过 ARP 协议查询到一个IP 地址对应的 MAC 地址

ARP 表(ARP 缓存):

  • 记录(IP 地址 MAC 地址)之间的映射关系
  • 一个数据结构(每台主机、每台路由器都有自己的 ARP 表)
  • 需要定期更新 ARP 表项

实现过程:

①ARP 请求分组

我是谁?我的 IP 地址是 X,我的 MAC 地址是 Y

我想找谁?我想找的这个家伙,IP地址是Z

ARP 请求分组封装进 MAC 帧(帧目的地址=全1,源地址=Y) 广播帧

②ARP 响应分组

你好,我就是你要找的那个靓仔,我的IP地址是Z,我的 MAC 地址是 V

ARP 响应分组封装进 MAC 帧((帧目的地址=Y,源地址=V) 单播帧

以太网 MAC 帧

记忆口诀:6 6 2 N 4,收发协数验

IP 数据报是 IPv4 协议定义的数据结构(PDU)

类型=0x0800,表示 MAC 帧数据部分是IPv4的PDU

ARP 分组是 ARP 协议定义的数据结构(PDU)

类型=0x0806,表示 MAC 帧数据部分是 ARP的PDU

训练一:假设 H3 想给 Internet 发送IP 数据报,分析 ARP 工作过程

训练二:基于上一个训练,假设有一个IP 数据报从 Intermet-->H3,分析 ARP 工作过程

训练三:假设 H3 想给 166.1.150.1 发送IP 数据报,分析 ARP 工作过程

三、动态主机配置协议

DHCP 协议的作用:给刚接入网络的主机动态分配IP 地址、配置默认网关、子网掩码

DHCP 使用客户/服务器模型(C/S):

① DHCP 客户:就是新接入网络的主机(希望获得 IP 地址等配置)

② DHCP 服务器:就是负责分配IP 地址的那台主机,管理一系列IP 地址池

在家庭网络中,通常由家庭路由器兼职“DHCP 服务器”在一个大型网络内可以有多台DHCP 服务器

DHCP 是应用层协议,基于 UDP 客户 UDP端口号=68、服务器 UDP 端口号=67

实现过程:

① 客户→服务器:DHCP 发现报文

携带信息:客户主机的 MAC 地址(还可以提出对 IP 地址租用期的要求)

网络层:源IP 地址=0.0.0.0,目的IP 地址=255.255.255.255(广播IP 数据报)

链路层:源 MAC=客户的 MAC 地址,目的 MAC=全 1(广播帧)

② 服务器→客户:DHCP 提供报文

携带信息:给客户分配的IP 地址、租用期、子网掩码、默认网关

网络层:源 IP=DHCP 服务器的 IP 地址,目的 IP=255.255.255.255(广播IP 数据报)

链路层:源 MAC=服务器的 MAC 地址,目的 MAC=客户的 MAC 地址(单播帧)

③ 客户→服务器:DHCP 请求报文

携带信息:客户机确认要使用的IP 地址

网络层:源IP=0.0.0.0,目的IP=255.255.255.255(广播IP 数据报)

链路层: 源 MAC=客户的 MAC 地址,目的 MAC=全 1(广播帧)

④ 服务器→客户:DHCP 确认报文

携带信息:与报文②类似

网络层:源 IP=DHCP 服务器的 IP 地址,目的 IP=255.255.255.255(广播IP 数据报

链路层:源 MAC=服务器的 MAC 地址,目的 MAC=客户的 MAC 地址(单播帧)

四、IPV6

目前广泛使用的IPv4 是在 20 世纪 70 年代设计的,互联网经过几十年的飞速发展,到 2011年2月,IPv4 地址已经耗尽,为了解决“IP地址耗尽”问题,有以下三种措施:

  • 1)采用无类别编址 CIDR,使 IP 地址的分配更加合理。
  • 2)采用网络地址转换(NAT)方法以节省全球 IP 地址:
  • 3)采用具有更大地址空间的新版本的IPv6。

前两种方法只是延长了 IPv4 使用寿命,只有第三种方法能从根本上解决地址耗尽问题

IPV6 数据报格式

基本首部:固定 40B,路由器处不能分片

版本:指明了协议版本,总是 6。

通信量类(优先级):区分数据报的类别和优先级。

流标号(流标签):是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。

下一个首部:标识下一个扩展首部或上层协议首部。

跳数限制:相当于IPv4 的 TTL。

IPV6 的主要特点

  1. 更大的地址空间。这是最重要的。IPv6 将地址从IPv4 的 32 位增大到 128 位,IPv6 的地址空间是 IPv4 的 2128-32=2%倍,从长远来看,这些地址是绝对够用的。
  2. 扩展的地址层次结构。IPv6 因为地址空间很大,所以可以划分为更多的层次。
  3. 灵活的首部格式。IPv6 定义了许多可选的扩展首部,不仅可提供比IPv4 更多的功能,而且能提高路由器的处理效率,这是因为路由器对扩展首部不进行处理
  4. 改进的选项。IPv6 首部长度是固定的,其选项放在有效载荷中,选项是灵活可变的。而 IPv4 所规定的选项是固定不变的,其选项放在首部的可变部分。
  5. 允许协议继续扩充。IPv6 允许不断扩充功能,而IPv4的功能是固定不变的。
  6. 支持即插即用(即自动配置)。因此IPv6 不需要使用 DHCP。
  7. 支持资源的预分配。IPv6 支持实时音/视频等要求保证一定带宽和时延的应用。
  8. IPV6 只有源主机才能分片,是端到端的,不允许类似IPv4 传输路径中的路由分片
  9. IPv6 首部长度是固定的 40B,而 IPv4 首部长度是可变的(必须是 4B 的整数倍)。大了安全性。身份鉴别和保密功能是IPv6 的扩展首部。
  10. 虽然 IPv6 与 IPv4 不兼容,但总体而言它与所有其他的互联网协议兼容,包括 TCP、UDP、ICMP、IGMP 和 DNS 等,只是在少数地方做了必要的修改(大部分是为了处理长地址)。

IPV6 的地址表示形式

一般形式:(冒号十六进制记法)

4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170

压缩形式:

4BF5:0000:0000:0000:BA5F:039A:000A:2176

4BF5:0:0:0:BA5F:39A:A:2176.

零压缩:一连串连续的0可以被一对冒号取代。

FF05:0:0:0:0:0:0:B3

FF05::B3

双冒号表示法在一个地址中仅可出现一次。

IPV6 基本地址分类

地址类型

二进制前缀

未指明地址

00..0(128 位),课记作::/128

环回地址

00...01(128 位),可记为::1/128

多播地址

11111111(8 位),可记为 FF00::/8

本地链路单播地址

1111111010(10 位)。可记为 FE80::/10

全球单播地址

除上述四种外的其他所有 IPv6 地址

1)未指明地址:该地址不能用作目的地址,只能用于还未配置IPv6 地址的主机作为源地址。

2)环回地址:该地址的作用与IPv4 的环回地址相同,但IPv6的环回地址仅此一个

3)多播地址:该地址的作用和 IPv4 的一样。这类地址占IPv6 地址空间的 1/256。

4)本地链路单播地址:该地址的作用类似于IPv4 的私有 IP 地址。

5)全球单播地址:用得最多的地址。

IPv6 全球单播地址采用下图所示的三级结构:

第一级为全球路由选择前缀,占 48 位,用于互联网中的路由选择,相当于v4分类地址中的网络号;

第二级为子网标识符,占16 位,用于各机构构建自己的子网;

第三级为接口标识符,用于指明主机或路由器的单个网络接口,相当于IPv4 分类地址中的主机号。

与IPv4 不同,IPv6 地址的接口标识符有 64 位之多,足以对各种接口的硬件地址直接进行编码。这样,IPv6 就可直接从 128 位地址的最后64 位中直接提取出相应的硬件地址,而不需要使用地址解析协议(ARP)进行地址解析。

IPV6 向 IPV4 过滤的策略

从 IPV4 向 IPv6 过渡只能采用逐步演进的办法,同时还必须使新安装的IPv6 系统能够向后兼容。IPv6 系统必须能够接收和转发IPV4 分组,并且能够为IPv4分组选择路由。

从 IPv4 向 IPv6 过渡可以采用下列两种策略:

① 双协议栈,是指在一台设备上同时装有 IPv4 和 IPv6 两个协议栈,分别配置了一个

IPv4 地址和一个 IPv6 地址,因此这台设备既能和 IPv4 网络通信,又能和 IPv6 网络通信。双协议栈主机在与 IPv6 主机通信时采用IPv6 地址,而在与 IPv4 主机通信时采用IPv4 地址,双协议栈主机使用应用层的域名系统(DNS)获知目的主机采用的是哪种地址。若 DNS 返回的是 IPv4 地址,则双协议的源主机就使用 IPv4 地址。若 DNS 返回的是 IPv6地址,则双协议栈的源主机就使用 IPv6 地址。

② 隧道技术,是指在 IPv6 数据报要进入 IPv4 网络时,把整个 IPv6 数据报封装成 IPv4 数据报的数据部分,使原来的IPv6 数据报就好像在 IPv4 网络的隧道中传输。当 IPv4 数据报离开 IPv4 网络时,再将其数据部分交给主机的 IPv6 协议。

ICMPv6 报文的封装

ICMPv6 报文需要封装成 IPv6 数据报进行发送

若 IPv6 数据报的有效载荷中,包含有扩展首部,在扩展首部之后封装的是 ICMPV6 报文,则在 ICMPV6 报文前面的那个扩展首部中的下一个首部字段的值必须设置为 58,表明该扩展首部后面是ICMPv6 报文

五、IP组播

IP 数据报的三种传输方式:

①单播

单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP 地址作为目的地址。是一种点对点传输方式。

② 广播

广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。

③组播(多播)

多播是让源主机一次发送的单个分组可以抵达用一个组地址标识的若干数目的主机,即一对多的通信。在互联网上进行的多播,称为多播。。

与单播相比,在一对多的通信中,多播可大大节约网络资源。假设视频服务器向 90 台主机传送同样的视频节目,单播与多播的比较如图 4.20 所示。多播时仅发送一份数据,并且只需发送一次,只有在传送路径出现分岔时才将分组复制后继续转发,因此大大减轻了发送者的负担和网络的负载。多播需要路由器的支持才能实现,能够运行多播协议的路由器称为多播路由器。

  • 以用户看视频为例,进一步了解单播、广播和多播三种传输方式
  • 为了能够支持像视频点播和视频会议这样的多媒体应用,网络必须实施某种有效的组播机制。
  • 使用多个单播传送来仿真组播总是可能的,但这会引起主机上大量的处理开销和网络上太多的交通量。
  • 人们所需要的组播机制是让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干目标主机,并被它们正确接收。

组播优点:

组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)。

IP 组播地址

多播数据报的源地址是源主机的 IP 地址,目的地址是IP 多播地址。IP 多播地址就是 IPV4中的 D 类地址。

D 类地址的前四位是 1110,因此D类地址范围 224.0.0.0~239.255.255.255,每个D类IP 地址标志一个多播组,一台主机可以随时加入或离开一个多播组。

多播数据报和一般的 IP 数据报的区别是,前者使用 D 类IP 地址作为目的地址,并且首部中的协议字段值是 2,表明使用IGMP 协议。

需要注意的是:

  • 多播数据报也是“尽最大努力交付”,不提供可靠交付
  • 多播地址只能用于目的地址,而不能用于源地址。
  • 对多播数据报不产生 ICMP 差错报文。

IP 多播可以分为两种:

① 只在本局域网上进行硬件多播:

② 在互联网的范围内进行多播。

目前大部分主机都是通过局域网接入互联网的。因此,在互联网上进行多播的最后阶段,还是要把多播数据报在局域网上用硬件多播交付给多播组的所有成员

多播机制仅应用于 UDP,它能将报文同时发送给多个接收者。

而 TCP 是一个面向连接的协议,它意味着分别运行在两台主机的进程之间存在一条连接,因此会一对一地发送。

硬件组播

因为局域网支持硬件多播,所以只要把 IP 多播地址映射成多播 MAC 地址,即可将 IP 多播数据报封装在局域网的 MAC 帧中,而 MAC 帧首部的目的 MAC 地址字段就设置为由 IP 多播地址映射成的多播 MAC 地址。这样,就很方便地利用硬件多播实现了局域网内的多播。

IANA 拥有的以太网多播地址的范围是从 01-00-5E-00-00-00到 01-00-5E-7F-FF-FF。在这些地址中,只有 23 位可用作多播。这只能和 D类IP 地址中的 23 位有--对应关系。D类IP地址可分配的有 28 位,可见在这 28 位中前 5 位无法映射到多播 MAC 地址。

例如,IP 多播地址 224.128.64.32(即 E0-80-40-20)和另一个多播地址 224.0.6432(即

E0-00-40-20)转换成以太网的硬件多播地址都是01-00-5E-00-40-20。

因为多播 IP 地址与以太网 MAC 地址的映射关系不是唯一的,所以收到多播数据报的主机,还要在IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

IGMP 协议与组播路由选择协议

网际组管理协议-IGMP

IGMP 协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组

ICMP 和 IGMP 都使用 IP 数据报传递报文。

IGMP 工作的两个阶段

① 当某台主机加入新的多播组时,该主机应向多播组的多播地址发送一个IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,还要利用多播路由选择协议把这种组成员关系转发给互联网上的其他多播路由器。

② 组成员关系是动态的。本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否仍继续是组的成员。只要对某个组有一台主机响应,多播路由器就认为这个组是活跃的。但一个组在经过几次探询后仍然没有一台主机响应,多播路由器就认为本网络上的主机都已离开了这个组,因此就不再把这个组的成员关系转发给其他的多播路由器。

组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。

组播路由选择协议:

多播路由选择实际上就是要找出以源主机为根结点的多播转发树,其中每个分组在每条链路上只传送一次(即在多播转发树上的路由器不会收到重复的多播数据报)。不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。

组播路由选择选择协议常用的三种路由算法

①基于链路状态的路由选择

②基于距离-向量的路由选择协议

③无关的组播(稀疏/密集)

六、移动IP

什么是移动 IP?

  • 支持移动性的因特网体系结构与协议共称为移动IP,它是为了满足移动结点(计算机、服务、网段等)在移动中保持其连接性而设计的。
  • 更确切地说,移动 IP 技术是指移动结点以固定的网络IP 地址实现跨越不同网段的漫游功能,并保证基于网络IP 的网络权限在漫游过程中不发生任何改变。
  • 移动 IP 的目标是把分组自动地投递给移动结点。一个移动结点是把其连接点从一个网络或子网改变到另一个网络或子网的主机。
  • 使用移动IP,一个移动结点可以在不改变其IP 地址的情况下改变其驻留位置。

移动 IP 相关术语

“移动 IP 技术”概念:移动节点以固定的网络IP 地址,实现跨越不同网段的漫游功能,并能保证基于网络IP 的网络权限在漫游过程中不发生任何改变;

移动节点:具有永久IP 地址的移动设备;如笔记本电脑,手机;

归属代理:又称为本地代理;移动节点永久 IP地址所在网络称为归属网络,在该网络中,代表移动节点执行移动管理功能的实体叫做归属代理;

外部代理:又称为外地代理:在外部网络中,帮助移动节点完成移动管理功能的实体,称为外部代理;

永久地址:又称为归属地址/主地址;移动站点在归属网络中的原始地址

转交地址:又称为辅助地址;移动站点在外部网络中使用的临时地址;

移动 IP 通信过程:

A 刚进入外部网络:

  1. 获得外部代理的转交地址(外部代理广播报文)。
  2. 移动节点通过外部代理发送注册报文给归属代理(包含永久地址&转交地址)。
  3. 归属代理接收请求,并将移动节点的永久地址和转交地址绑定(以后到达该归属代理的数据报且要发往移动节点的数据报将被封装并以隧道方式发给转交地址),并返回一注册响应报文。
  4. 外部代理接收注册响应,并转发给移动节节点。

A 移动到了下一个网络:

  1. 在新外部代理登记注册一个转交地址。
  2. 新外部代理给本地代理发送新的转交地址
  3. 按照代理方式进行通信

A 回到了归属网络:

  1. A 向本地代理注销转交地址。
  2. 按原始方式通信。

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

相关文章

oracle: 多表查询之联合查询[交集intersect, 并集union,差集minus]

把多个查询结果上下合并, 即, 通过操作符将多个 SELECT 语句的结果集合并为一个结果集。虽然联合查询通常用于从多个表中检索数据&#xff0c;但它也可以用于从同一个表中检索不同的数据集。 联合查询: 交集,并集,差集 默认的排序规则通常是基于查询结果集中的列的自然顺序。…

Games202Lecture 6 Real-time Environment Mapping

RTRT RTRT&#xff08;real time ray tracing): path tracingdenoising PRT PRT (Precomputed radiance transfer):离线预计算&#xff0c;运行时快速内积。 预计算&#xff08;Offline Precomputation&#xff09;&#xff1a; 传输函数&#xff08;Transfer Function&…

129.求根节点到叶节点数字之和(遍历思想)

Problem: 129.求根节点到叶节点数字之和 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的先序遍历) 直接利用二叉树的先序遍历&#xff0c;将遍历过程中的节点值先利用字符串拼接起来遇到根节点时再转为数字并累加起来&#xff0c;在归的过程中&#xf…

AtCoder Beginner Contest 391(ABCDE)

A - Lucky Direction 翻译&#xff1a; 给你一个字符串 D&#xff0c;代表八个方向&#xff08;北、东、西、南、东北、西北、东南、西南&#xff09;之一。方向与其代表字符串之间的对应关系如下。 北&#xff1a; N东&#xff1a; E西&#xff1a; W南&#xff1a; S东…

WordPress使用(1)

1. 概述 WordPress是一个开源博客框架&#xff0c;配合不同主题&#xff0c;可以有多种展现方式&#xff0c;博客、企业官网、CMS系统等&#xff0c;都可以很好的实现。 官网&#xff1a;博客工具、发布平台和内容管理系统 – WordPress.org China 简体中文&#xff0c;这里可…

物业管理软件引领社区智能化转型提升服务效率与居民生活质量

内容概要 物业管理软件的出现&#xff0c;标志着社区管理方式的一场革命&#xff0c;它不仅仅是一个工具&#xff0c;更是推动智能化转型的关键助力。通过高效的管理功能&#xff0c;物业管理软件在优化服务流程的同时&#xff0c;也提升了居民的生活质量和社区的整体发展活力…

python 语音识别

目录 一、语音识别 二、代码实践 2.1 使用vosk三方库 2.2 使用SpeechRecognition 2.3 使用Whisper 一、语音识别 今天识别了别人做的这个app,觉得虽然是个日记app 但是用来学英语也挺好的,能进行语音识别,然后矫正语法,自己说的时候 ,实在不知道怎么说可以先乱说,然…

K8S集群部署--亲测好用

最近在自学K8S&#xff0c;花了三天最后终于成功部署一套K8S Cluster集群&#xff08;masternode1node2&#xff09; 在这里先分享一下具体的步骤&#xff0c;后续再更新其他的内容&#xff1a;例如部署期间遇到的问题及其解决办法。 部署步骤是英文写的&#xff0c;最近想练…