Tomcat Android防重复点击 短视频开发 Spring Cloud dom installation dynamic 网络营销推广 cassandra nosql xampp drupal7 河南普通话 ppt视频教程下载 jq点击事件 jquery多个元素绑定同一个事件 jquery删除子元素 python报错 python指数函数 python中for循环的用法 python图形界面开发 python的lambda函数 java删除数组元素 java中tostring 配置java环境 java时间转换 java时间类型 java配置jdk linux系统安装 linux系统安装教程图解 内存修改器 acmecadconverter 俄罗斯方块java代码 din字体下载 网络克隆 说话不算数的经典语句 qq黑客软件 狮子狗打野天赋 骰子表情包 cad多段线线宽设置
当前位置: 首页 > 学习教程  > 编程语言

相伴一生的IP和MAC

2020/12/5 9:49:14 文章标签:

相伴一生的IP和MAC 一、前言 ​ 想必大家对于MAC地址和IP地址并不陌生,但是,当我们提前这两个概念的时候,是不是有一种呼之欲出又不知从何说起的感觉。这种就是我们经常在嘴边说起,但是以前的知识有记忆有点模糊了!这…

相伴一生的IP和MAC

一、前言

​ 想必大家对于MAC地址和IP地址并不陌生,但是,当我们提前这两个概念的时候,是不是有一种呼之欲出又不知从何说起的感觉。这种就是我们经常在嘴边说起,但是以前的知识有记忆有点模糊了!这篇文章主要从IP和MAC地址的概念到一个网络包传输过程进行了解。

​ 我先提出几个问题,希望能带着问题去阅读,可能会事半功倍;

​ 1、IP地址、MAC地址、子网掩码、默认网关是什么?

​ 2、我们请求一个网页的时候,网络包在不同网关之间是怎么传输的?

​ 3、IP地址和MAC地址之间是否有关联?

我们就带着这三个问题去阅读下这篇文章吧。


二、回归本质

我们从第一个问题入手,什么是IP地址、MAC地址、子网掩码、默认网关?

1、IP地址

IP地址概念

互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address),是分配给用户上网使用的网际协议(英语:Internet Protocol, IP)的设备的数字标签。

按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。

IP网络使用32位地址,以点分十进制表示,如192.168.1.12。

IP地址由四段组成,每个字段是一个字节,即4个字节、 每个字节有8位,最大值是255(2^8=256:0~255)。

IP地址的基本格式

IP地址 = 网络地址 + 主机地址 
或
IP地址 = 网络地址 + 子网地址 + 主机地址

网络号: 用于识别主机所在的网络;
主机号: 用于识别该网络中的主机。


IP地址分类

IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。
A、B、C 三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。


A类地址
(1)A类地址第1字节为网络地址,其它3个字节为主机地址。它的第1个字节的第一位固定为0.
(2)A类地址网络号范围:0.0.0.0—127.0.0.0 地址范围0.0.0.0到127.255.255.255
(3)A类地址中的私有地址和保留地址:
① 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。
范围(10.0.0.0—10.255.255.255)
② 127.X.X.X是保留地址,用做循环测试用的。


B类地址
(1) B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。它的第1个字节的前两位固定为10.
(2) B类地址网络号范围:128.0.0.0—191.255.0.0。地址范围128.0.0.0到191.255.255.255。
(3) B类地址的私有地址和保留地址
① 172.16.0.0—172.31.255.255是私有地址
② 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
191.255.255.255是广播地址,不能分配。


C类地址
(1)C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。
(2)C类地址网络号范围:192.0.0.0—223.255.255.0。地址范围 192.0.0.0到223.255.255.255
(3)C类地址中的私有地址:
192.168.X.X是私有地址。(192.168.0.0—192.168.255.255)


D类地址
(1) D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。
(2) D类地址范围:224.0.0.0—239.255.255.255


E类地址
(1) E类地址不分网络地址和主机地址,它的第1个字节的前五位固定为11110。
(2) E类地址范围:240.0.0.0—255.255.255.254


IP地址如果只使用ABCDE类来划分,会造成大量的浪费:一个有500台主机的网络,无法使用C类地址。但如果使用一个B类地址,6万多个主机地址只有500个被使用,造成IP地址的大量浪费。因此,IP地址还支持VLSM技术,可以在ABC类网络的基础上,进一步划分子网。


2、子网掩码

子网掩码的概念

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

子网掩码不能单独存在,它必须结合IP地址一起使用。

子网掩码作用

子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。

对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

  • 通过子网掩码,就可以判断两个IP在不在一个局域网内部。
  • 子网掩码可以看出有多少位是网络号,有多少位是主机号

3、默认网关

网关概念

网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关也可以提供过滤和安全功能。

默认网关

一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。

在这里插入图片描述


4、MAC地址

MAC地址

MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部;

MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。

每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。


三、网关传递网络包

试想这么一个场景:我们去访问淘宝首页,一般步骤应该是打包好数据包(包含IP、端口、MAC地址),但是淘宝的服务器可能在华东某个地方,那我们是怎么去访问到他的服务器呢?这就需要我们强大的网络系统+网关,通过网关不断的转发,最终到达淘宝的服务器~

那么问题来了?网关之间是怎么转发信息的?MAC地址是否改变?

我们先来看张图吧:
在这里插入图片描述

这个图差不多很清楚的讲述了从PC1到PC2 之间传输的过程。


我们用文字去表达下,从一个源主机到目的主机的过程:

比如:

主机A发送数据包PA,IP地址IP_A,MAC地址为MAC_A;

主机B发送数据包PB,IP地址IP_B,MAC地址为MAC_B;

主机A访问主机B的时候,首先会对比是否是同一子网,如果是,检查ARP表,有B的MAC就直接发送,没有就发送ARP请求.如果否,发送到默认网关C,此时源IP是IP_A,源MAC地址为MAC_A,目的IP为IP_B,目的MAC为MAC_C;网关C收到包之后,发送到下一个网关D,此时源IP是IP_A,源MAC地址为MAC_C,目的IP为IP_B,目的MAC为MAC_D;以此类推,最终到底目标主机B;


这里我们带入第二个问题,就是:

1.电脑访问互联网网页服务器域名时,进行DNS解析得到IP地址;

2.如果是内网,也就是从局域网发送到外网,我们需要进行NAT地址转换,这里IP地址会变掉(特殊点)

3.数据包会在网关直接传输,传输过程中MAC地址会变掉;

4.数据包到底最终的IP地址处,进行解包,业务处理;

这其实就是路由协议的一个过程,一般内网使用OSPF协议,外网使用BGP协议;


四、IP地址和MAC地址

这两者之间的关系其实可以使用两个问题来解决

问题:有了IP地址,可以没有MAC地址吗?

这个问题和“有了MAC地址,可以没有IP地址吗”这两个问题本质是一样的;

我们先看一个场景:

快递概念

北京发送上海快递,北京就是源IP,上海是目的IP,中间中转站就是网关;

其实通过这篇文章的好几个案例,我们知道的,在传输过程中,我们是不知道目标MAC地址的(最终IP所在的机器),所以我们如果没有IP地址,网关是没办法找到最终的MAC地址所在的机器的;换句话说,如果只有IP地址,没有MAC地址,也同样是没有办法在网关之间进行传递数据包的,因为不知道下一个网关在哪~


这是一条来源网络的回答:

a.信息传递时候,需要知道的其实是两个地址:终点地址、下一跳的地址。IP地址本质上是终点地址,它在跳过路由器的时候不会改变,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。这就是为什么还要用MAC地址的原因之一,它起到了记录下一跳的信息的作用。
b.网络体系结构的分层模型:用MAC地址和IP地址两个地址,用于分别表示物理地址和逻辑地址是有好处的。这样分层可以使网络层与数据链路层的协议更灵活地替换。
c.历史原因:早期的以太网只有集线器,没有交换机,所以发出去的包能被以太网内的所有机器监听到,因此要附带上MAC地址,每个机器只需要接受与自己MAC地址相匹配的包。


C地址和IP地址两个地址,用于分别表示物理地址和逻辑地址是有好处的。这样分层可以使网络层与数据链路层的协议更灵活地替换。
c.历史原因:早期的以太网只有集线器,没有交换机,所以发出去的包能被以太网内的所有机器监听到,因此要附带上MAC地址,每个机器只需要接受与自己MAC地址相匹配的包。


在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_450086.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?