数据链路层负责的是相邻两个网络节点之间的数据以帧为单位进行传输。
具体关于数据链路层的介绍,已经在这一篇文章当中提到了。
初识网络:IP、端口、网络协议、TCP-IP五层模型_革凡成圣211的博客-CSDN博客TCP/IP五层协议详解https://blog.csdn.net/weixin_56738054/article/details/128666970?spm=1001.2014.3001.5501
目录
以太网数据帧的格式
以太网帧头
如何查看mac地址
为什么有了IP地址,还需要mac地址
IP地址和mac地址是如何相互配合的
帧头当中的"类型"属性
类型:0800
类型:0806
类型:0835
MTU
以太网数据帧的格式
当数据从网络层传输到数据链路层的时候,数据链路层会进一步对数据进行包装。
会包装上帧头、帧尾。
以太网数据帧=帧头+载荷(完整的IP数据段)+帧尾。
下图来源于《小林coding》
以太网帧头
以太网帧头当中有3个属性,分别是:目的地址、源地址、类型。
其中目的地址和源地址并不是IP地址(网络地址),而是mac地址。
这个mac地址不像IP地址一样是可以动态分配的,而是在网卡出场的时候就已经决定好了的。
如何查看mac地址
打开cmd,输入一行命令:ipconfig /all
可以看到,显示"物理地址"的那一行,就是mac地址。
为什么有了IP地址,还需要mac地址
这其实是一个历史遗留的问题。假设只有一套地址(一套IP或者一套mac),这样也是完全行得通的。
但是由于研发IP地址的科学家和研发mac地址的科学家并不是"一伙人",因此也就产生了不一样体系。
干脆就直接各用各的就ok了,于是就演化成了两套地址体系相互配合的现状
IP地址和mac地址是如何相互配合的
IP地址用来描述整个网络传输过程的起点和终点。也就是一台主机到另外一台主机之间的传输过程;mac就负责相邻的两个网络节点之间的管理。
下面举一个例子,来说明一下:
假如小明想去小红家,那么他需要首先规划路线:
假如他去一次小红家相当于网络通信一次,那么,就可以认为:
源IP:小明家
目的IP:小红家。也就是一次网络通信的起始的网络地址和目标网络地址
而源mac和目的mac就有很大变化了:
如果小明选择了上面的那一条传输路径。那么
当小明经过:小明家-->长沙这一段路径的时候,源mac和目的mac分别是:
源mac:小明家
目的mac:长沙
当小明经过长沙-->武汉这一段路径的时候:
源mac:长沙
目的mac:武汉
接下来的路段,同理......
帧头当中的"类型"属性
类型:0800
普通的以太网数据帧,载荷部分是一个完整的IP数据包。
类型:0806
载荷部分,是一个ARP报文。ARP是一种数据链路层协议。
通过这个协议,让某个,路由器/交换机,能够认识局域网里面的其他设备。
这个协议拥有一个类似于哈希表的结构,来映射IP和mac之间的关系。
类型:0835
载荷部分,是一个RARP报文。 RARP是一种数据链路层协议。
MTU
描述了一个数据链路层的数据帧能够承受的最大长度。
也就是:载荷部分的最大长度就是MTU
对于以太网协议:MTU为1500(字节)
由于数据链路层的MTU的限制,对于IP较大的数据包就要进行分包。
关于怎样分,已经在这一篇文章当中提到了:
【网络原理5】IP协议篇_革凡成圣211的博客-CSDN博客IP数据报https://blog.csdn.net/weixin_56738054/article/details/129045225?spm=1001.2014.3001.5502