数据链路层的重点协议

数据链路层的重点协议

在另一篇介绍 IP 协议的博客中:https://blog.csdn.net/m0_61925333/article/details/126028282?spm=1001.2014.3001.5502

解析了IP协议的header后,可以发现,在首部中并没有存放下一跳,即短期目标的空间

事实上下一跳的IP主要是给数据链路层使用的

以太网

“以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了 一些物理层的内容

除了以太网之外的局域网技术还包括有以太网、令牌环网、无线协议

以太网通过以太帧(Ethernet Frame)来进行数据的封装,封装好之后,将以太帧作为数据包通过物理介质进行真正的传输

以太网帧的格式:

image-20220726172126678

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP
  • 帧末尾是CRC校验码

抓包之后,来看看以太网帧的存储的mac地址

image-20220726152647392

在以太帧的首部中,封装了短期目标的mac地址

同时我们已经知道在数据链路层,是通过mac地址来唯一确定两台主机的,那么数据链路层是怎么把IP地址转换成mac地址的?

先问一个问题,下一跳的IP地址,是否属于当前局域网内(或者是其网络号是否一致)?

答案是肯定的,在数据链路层只能处理同一个LAN内部的主机通信问题,如果下一跳的IP地址不在同一局域网内,那么数据链路层就无法处理了,反过来,想要通过数据链路层完成通信,下一跳的IP地址一定是同一局域网内的

如果说在不同的局域网之间,私有IP可能会重复,但是在同一个局域网之内,私有IP是不能重复的

那么数据链路层就能通过一张ARP表来维护每台主机的IP与mac地址,使其称为唯一对应,这样,数据链路层就能通过将IP地址转换为mac地址,完成短期目标的通信

image-20220726154154890

比如上图中存在3个设备,左右两侧为主机,中间为路由器,左侧IP为192.168.1.9的主机中,算出下一跳的地址为192.168.1.1,然后数据链路层就能根据下一跳的IP地址,算出mac地址为mac2,然后数据传输到mac2,到达中间的路由器;由于中间的路由器连接两个路由器,因此两边各有一个局域网,两者的IP不同,于是根据另一个局域网的IP100.76.0.3/24地址算出下一跳的IP地址是100.76.0.1/24,然后数据链路层有根据这个IP地址得到mac地址mac4,最后完成数据的传输

当所有数据都封装好之后,就是这样的:

image-20220726163827211

ARP协议

通过ARP协议能够知道同一LAN下,其他主机的IP与mac地址之间的映射关系

在本地内部通过一张ARP表来进行维护,类似于Map<IP, MAC>这样的结构

image-20220726155323153

静态地址是自带或者手动配置的

其中这些动态计算出来的mac地址是怎么计算的?

通过ARP(Address Resolution Protocol)协议

可广播一份ARP请求说:我的mac地址是aaa,我想知道xxx IP的mac地址

然后应答一份ARP响应:我是xxx,mac地址是bbb

image-20220726161125688

MTU

MTU全称为 Maximum Transmission Unit - 最大传输单元,MTU是数据链路层对每次能发送数据的大小限制

由于物理层存在硬性限制,因此对应的数据链路层也有一定的大小范围,因此有了MTU

MTU的存在,对其它层也会有一定的影响

  • 对IP层:表现为分片问题
  • TCP协议:MSS受制于MTU
  • UDP协议:有最大报文大小

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值