数据链路层(以太网简介)

一.以太网数据帧结构:

        目的地址,源地址,类型这三个被称为帧头,数据则被称为载荷,CRC则被称为帧尾(校验和)

二.数据帧结构分析

1.目的地址和源地址

 i.地址解释

        这两个地址指的是mac地址,而不是IP地址。二者的区别在于:mac地址是使用6个字节表示的,而IP地址是使用4个字节表示的,空间范围比IP地址大了6倍多。

        mac地址当前仍然可以给每个设备分配唯一一个mac地址,一般一个网卡,在出厂的时候,mac地址就被分配好了,就写死了。

        mac地址,也可以作为设备的身份标识。

ii.地址的使用和表示区别

        mac地址使用在数据链路层,用来表示两个相邻设备之间的数据转发,IP地址使用在网络层,表示整个转发流程,进行路径的规划。

举个例子:
(1).从四川 => 吉林省的白城市安广镇,第一步需要规划路径(网络层)

第一种方案:四川-> 北京 -> 长春 -> 白城 -> 安广;

第二种方案:四川-> 北京 -> 沈阳 -> 白城 -> 安广;

第三种方案:四川 -> 长春 -> 白城 -> 安广;

等等......

(2).选择第一种方案并且执行第二步来解释其中的过程原理

实施方案:

四川 -> 北京时:源IP:四川 目的IP:安广,源mac:四川,目的mac:北京,坐飞机;

北京 -> 长春时:源IP:四川 目的IP:安广,源mac:北京,目的mac:长春,坐高铁;

长春 -> 白城:源IP:四川 目的IP:安广,源mac:长春,目的mac:白城,坐大巴;

白城 ->安广时:源IP:四川 目的IP:安广,源mac:白城,目的mac:安广,坐出租车。

        则达到目的地,这里的过程中不考虑NAT机制,由此也说明了,以太网数据帧里面的mac地址,随着转发的过程,时刻发生改变,每经过一个交换机/路由器都会产生上述的变化。

2.类型

        描述了载荷中数据的类型,其中类型的数据是16进制,ARP和RARP是不传输业务的数据,只给转发功能提供辅助的措施。

i.ARP数据包 

         ARP数据报/ARP协议,可以认为是让当前设备获取到周围设备IP地址和mac地址之间的映射关系。

        IP协议在路由转发的过程时,在这个过程中都是拿着IP地址来进行查路由表的,由此得到的是网络接口(抽象概念),具体的说就是传输给哪个mac地址的设备,这个环节中就涉及到了IP地址转换成mac地址的过程。

        ARP协议就是用来建立上述的映射关系,当前设备接入网络的时候,就会往广播地址发ARP报文,收到ARP请求的设备就会返回ARP响应,响应就会告知自己的IP和mac地址。

3.载荷

        载荷上面数据表示的1500个字节的意思是 :数据链路层数据帧的最大载荷长度为1500字节,相当于 1.5kb,这个数字就被称为MTU。

        MTU和硬件直接相关,不同的硬件设备,对应到了不同的数据链路层协议,对应到了不同的MTU。

        以太网非常的短,并且1.5也非常的小,毕竟TCP/UDP至少都是64kb,此处的MTU的限制,就会对上层协议产生直接的影响,也就是IP协议。

        虽然IP协议能够拆包组包,但实际上,IP协议更多的是应对MTU的限制,当一个IP数据报,达到了1500以上的时候,就会自动拆包了。

上一篇:Redis string类型&&hash类型


下一篇:[Qt] 基于 Qt 的文件选择与图片显示功能实现