我们日常的大多数网络应用中,属于数据链路层的 MAC 地址,和属于网络层的 IP 地址都在使用,它们之间存在一定的关系。这里主要介绍 IP 地址的作用
1、基本介绍
IP 地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:
网络编号:标识因特网上数以百万计的网络主机编号:标识同一网络上不同主机(或路由器各接口)
例如:

-
给网络
N8上的两台主机个分配了一个IP地址给路由器
R4连接该网络的接口也分配了一个IP地址- 这三个
IP地址的前三个十进制数是相的,也就是网络N8的编号 - 最后一个十进制数各不相同,是网络
N8上各主机和路由器接口的编号 - 换句话说:同一个网络上的各主机和路由器的各接口的
IP地址的网络号部分应该相同,而主机号部分各不相同
- 这三个
-
网络
N9也同理
因特网中不同网络的网络编号必须各不相同
注意:网络上哪部分是主机编号,哪部分是网络编号并不都和本例相同
很显然:MAC 地址不具备区分不同网络的功能,而 IP 地址具备这样的功能
- 如果只是一个单独的网络,不接入因特网,可以只使用
MAC地址(这不是一般用户的应用方式)。 - 如果主机所在的网络要接入因特网,则
IP地址和MAC地址都需要使用。- 只使用
MAC地址则不知道它是哪个网络上的
- 只使用

2、IP 地址和MAC 地址的封装位置

网络层首部中应该封装有源 IP 地址和目的 IP 地址
数据链路层首部中应该封装有源 MAC 地址和目的 MAC 地址
3、数据包转发过程 IP 地址和 MAC 地址的变化情况
为了简单起见,各主机和路由器各接口的 IP 地址和 MAC 地址用比较简单的标识符来表示
- 而并未使用实际的
IP地址和MAC地址
假设主机 H1 要给主机 H2 发送数据包
我们忽略除网络层和数据链路层外的其他各层
- 即:可以想象成各网络层进行水平方向的逻辑通信,各数据链路层进行水平方向的逻辑通信
主机 H1 将数据报转发给路由器 R1
在网络层封装的 IP 数据报首部中
- 源
IP地址应填写主机H1的IP地址IP1 - 目的
IP地址应填写主机H2的IP地址IP2 - 也就是从
IP1发送给IP2
在数据链路层封装的帧首部中
- 源
MAC地址应填写主机H1的MAC地址MAC1 - 目的
MAC地址应填写路由器 R1的MAC地址MAC3(MAC地址就是中间的各站) - 也就是从
MAC1发送给MAC3

路由器 R1 将收到的数据包转发给路由器 R2
在网络层封装的 IP 数据报首部中
- 源
IP地址应填写主机H1的IP地址IP1 - 目的
IP地址应填写主机H2的IP地址IP2 - 也就是从
IP1发送给IP2
在数据链路层封装的帧首部中
- 源
MAC地址应填写主机R1的MAC地址MAC4 - 目的
MAC地址应填写路由器 R2的MAC地址MAC5(MAC地址就是中间的各站) - 也就是从
MAC4发送给MAC5

路由器 R2 将收到的数据包转发给主机 H2
在网络层封装的 IP 数据报首部中
- 源
IP地址应填写主机H1的IP地址IP1 - 目的
IP地址应填写主机H2的IP地址IP2 - 也就是从
IP1发送给IP2
在数据链路层封装的帧首部中
- 源
MAC地址应填写主机R2的MAC地址MAC6 - 目的
MAC地址应填写主机 R2的MAC地址MAC2 - 也就是从
MAC6发送给MAC2

数据包转发过程中 源 I P 地 址 和 目 的 I P 地 址 保 持 不 变 ; \color{red}源 IP 地址和目的 IP 地址保持不变; 源IP地址和目的IP地址保持不变;
数据包转发过程中 源 M A C 地 址 和 目 的 M A C 地 址 逐 个 链 路 ( 或 逐 个 网 络 ) 改 变 。 \color{red}源 MAC 地址和目的 MAC 地址逐个链路(或逐个网络)改变。 源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。

对于本例:主机 H1 ,路由器 R1 和 R2 都存在一个共同的问题
- 知道
IP地址,但不知道其相应的MAC地址

如何通过 IP 地址找出其对应的 MAC 地址(ARP 所要实现的功能)
4、习题


答案 D

![[附源码]Python计算机毕业设计Django大学生心理测评系统](https://img-blog.csdnimg.cn/3c06bc5b377a4ba7b05a8014ca4c97cc.png)

















