一、MAC地址
MAC地址是用来识别数据链路层中相连的节点。它的长度为48位比特位,也就是6字节。
MAC地址是具有唯一性的,它的唯一性是在网卡硬件生产时就已经制定,所以一个网卡一个MAC地址。这就意味着,一台主机如果有多个网卡,那么就有多个MAC地址。
二、IP地址
-
IP协议有两个版本,一个IPV4,一个IPV6,通常说的IP默认是指IPV4。
-
它主要是用来标记网路中不同主机的地址。
-
对于IPV4来说,IP地址是一个4字节,32位的整数。
*通常IP地址采用点分十进制的字符串来表示IP地址,就比如192.168.1.1,每个位的范围都是【0,255】,每个点区分一个字节。
三、MAC地址和IP地址
IP地址的作用是告诉我们,我们从哪里来,要去的目的地是哪里。相当于一个导向的作用。尤其是目的ip,通常是不会改变的,协助我们进行路由选择。
MAC地址的作用是告诉我们,上次是从哪里来的,下一步要去哪里。
就比如一个例子:就好像唐憎要去西天取经,那么他是从大唐来的,目的地是西天。这就好比是一个IP地址的源IP和目的IP。而他一路上会不断的前进,会经过女儿国,火焰山,狮驼岭。每一步要走的地方都会有所不同,最终是去往西天。这其中的每一步,就是MAC地址,告诉我们下一步要去哪里。而IP地址就是一个导向的作用,协助我们一步步该往哪里走才能到达最终的目的地。
四、本地局域网通信
首先,应用层发送消息你好,传输层进行封装,网络层进行源IP和目的IP封装,数据链路层进行数据帧处理,然后物理层将其再封装,发送到以太网里,以太网找到路由器,进行解包将有效载荷传给上一层的路由器。
而路由器将收到的消息进行解包,剩下的有效载荷就是这部分
然后路由器是属于网络层的,它自然可以看的懂网络层的协议,也就能读懂报头的内容,知道目的IP是谁,这个消息应该发送给谁,
然后路由器将其穿给目的IP的局域网内,也就是令牌环,
然后令牌环进行封装,发送到目的IP对应得网卡,网卡接收消息就会进行报头有效载荷分离,然后一步步传到对方得应用层,对方就能收到消息。
在这个过程中,我们可以发现,即使双方的局域网不同,但依然能够通过路由器将消息发送给对方,这就体现了协议栈的分层结构的强大解耦能力,也就是低耦合,层和层之间不会因为对方的改变而使得自己层也要做出改变,我只关心自己的报头消息,无需关心我的下一层是谁,下一层要做什么,具体下一层的封装是由下一层来决定,我不需要关心。
而同层之间,使用相同的协议,也就相当于用了同一份源代码,自然能够看的懂同一层的发来的消息,而我最初发送时封装的报头,最后必然是我的同层看到我发的报头,这就是高内聚。
这让我们看到了协议栈的设计是如此的巧妙强大。
一个局域网,要通过路由器将数据发送出去,把数据交给路由器的这个过程,不就是一个局域网的通信吗?路由器再将数据发给对方,这不也是一个局域网的通信吗?
所以,路由器它就必须要横跨这两个网络,对于对方自己而言,都只是在自己的局域网里进行通信,同时网络的不同,并没有影响到双方的通信,本质就是IP协议,网络层屏蔽了底层的网络差异,而网络层工作的路由器,正是屏蔽这种差异化的工具!而路由器工作靠的就是IP协议,只需要关心源IP和目的IP,底层网络的封装交给底层网络去进行。
路由的过程,我们就可以抽象的理解成
发送方到达路由器的时候,脱衣服,路由器经过处理,再发给目的IP的网络进行穿衣服。