前言:最近在做一个远端获取Mac地址的项目,心血来潮又想着把网络方面的知识做一下回顾,这几天在整理一下交换机路由等相关的知识做个总结。加油,大家一起进步。
话不多说,进入正题!!!
IP地址:
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:
网络编号:标识因特网上数以百计的网络。
主机编号:标识同一网络上不同主机(或路由器的各个接口)。
如图,处在同一网络中的各个主机和路由器的IP地址前三个数是相同的,最后一个数字不同。这就是为了标识同一网络中的不同主机。
网络体系图:
IP地址被封装在网络层数据报的首部,而MAC地址被封装在数据链路层数据报的首部。
数据报转发:
数据包转发过程中,假想网络层和数据链路层都是水平传输的,而不考虑其他层。主机H1发送数据包到H2,发送过程中数据包的源IP地址一致是IP1,目的地址一直是IP2,不会随着数据包到达的网络端口不同而变化,而MAC地址就不一样,会随着数据包的传送,MAC地址根据网络端口的不同而发生变化。
在数据包转发的过程中,端口之间互相知道彼此的IP地址,但不知道其对应的MAC地址,而如何根据IP地址获得MAC地址,就是ARP协议所要完成的事情。
例:要给对方写信,除了信件内容外,还需填写信封。
信封中的两个重要信息:收件地址、收件人。
收件地址:这封信要寄到哪里。
收件人:这封信要寄给谁。
同样,在网络世界中,我们要发信息给别人,同样需要知道收件地址和收件人,Mac地址就是收件地址,IP地址就是收件人。
映射到上面的例子,我是一个可以活动的人,可以住在家里,也可以住在公司,如果你要给我写信,首先要知道我现在住在哪里。在网络世界中也是这样,如果把网络比喻为我们生活的城市,那网卡就是城市中的建筑,Mac地址就是这栋建筑的物理地址,而IP地址就是在这些建筑中的人。
与写信不同,在计算机网络中发送信息,我们只需要填写内容和对方的IP地址,操作系统会根据目标IP,自动查询ARP表,获取对方的Mac地址,补齐这封信,从网卡发出。
我们再回过头来看一下这个网络模型。不同类型的电子产品,他们的通讯都是由内部网卡设备进行的,所以我们统一用网卡来表示设备,每张网卡出厂时都写入一个Mac地址,由6个字节构成的,其中前3个数表示的是网络硬件厂商编号,由IEEE与电子工程师协会分配,后三个字节代表的是该制造厂商所制造的网卡的序列号,所以Mac地址是全球唯一的地址,虽然可以通过其他一些手段修改Mac地址,但这不在讨论范围。
我们上面说Mac地址表示了网卡在网络中的确定位置,那这个位置是如何表示和确定的呢?比如我们的计算机a通过网线接入到了交换机的端口1,那这个端口1就是网络中的具体位置(端口号=门牌号),就像我们的门牌号一样,交换机就知道了某个Mac地址在端口1上,从而就把Mac地址与端口进行绑定。
我们的网卡接入网络后如果要通信,需要给他配置另一个地址,即IP地址,IP地址分为两种:
IPV4地址:例192.168.1.1 它是由四位0- 255的数字,用小数点间隔构成。目前IPV4技术可以使用的IP地址最多有42亿多个,看上去像是很难用尽,但由于早起编码和分配上的问题,很多区域的编码实际上被空出或不能使用,随着互联网的快速成长,这42亿个地址最终于2011年2月3日用尽。相应的科研组织已经研究出128位的IPV6技术,其IP地址数量最高可达3.4*1038个。届时,每个人家居中的每件网络设备,甚至地球上的每一粒沙子都可以拥有自己的IP地址。
疑问:那为什么我的电脑接上网线或者手机连接上路由器之后,没有让我配置IP地址也可以正常使用?
这是因为由称之为DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)的协议自动帮我们配置好了,当电脑插上网线或手机连上WiFi,操作系统网络协议栈,会自动向外发送一包DHCP请求,请求为其分配IP地址,路由器获取到DHCP请求后,会为其分配一个IP地址,并通过DHCP回复报文发送回去,操作系统收到DHCP回包后,将其分配的IP地址配置到网卡上。
注意在一个局域网中,IP地址也是唯一的,路由器不会分配重复的IP给不同的设备,当然你也可以手动把DHCP关掉,这样你需要手动来配置一个网卡IP地址,但是你需要保证配置的IP地址不能与此网络中的其他地址重复,这样网卡就配置好了IP地址。
疑问:我们上面提到Mac地址是由操作系统来补齐的,那操作系统是如何知道对方Mac地址的呢?文章来源:https://www.toymoban.com/news/detail-536246.html
实际上,这一步是由ARP协议来完成的,当计算机a想向计算机b发送消息时,操作系统并不会立即发出,他会先发送一包ARP广播报文出去,问一下192.168.1.10的Mac地址是多少,此时网络中的所有设备都收到了这一包请求报文。除了192.168.1.10以外的设备都会丢弃这包请求报文,只有它本身会回复自己的Mac地址是多少,计算机a收到了回复,知道了计算机b的Mac地址,他首先会把计算机b的Mac地址缓存到ARP映射表中,以便下次再使用,然后把这封信补全从网卡发送出去,交换机根据数据包中的目标Mac地址找到了计算机b所在的端口,从此端口发送出去,数据就被计算机b收到了。文章来源地址https://www.toymoban.com/news/detail-536246.html
到了这里,关于通俗易懂---IP与Mac的联系与区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!