数据链路层

1. 以太网

以太网是一种局域网技术,除此之外还有令牌环网、无限LAN

以太网既包含数据链路层的内容,也包含物理层的内容,我们只讨论数据链路层的部分

在IP协议章节中我们谈到,报文经过多重路由器路由,到达目标主机,也就是报文会跨越不同的子网,但前提是,报文至少得先能在局域网中传输,得先能交给路由器才行

同一局域网中的主机能直接通信吗?答案是可以的,在网络基础章节我们仔细说过了,这里就简单回顾一下

同一局域网内的主机能够直接通信,但同一时刻只能有一台主机发送数据,如果同时有多台主机发送数据,则会发生碰撞,一旦发生碰撞,主机就要进行碰撞避免,休眠一段时间再重发报文;整个局域网相当于一个碰撞域,每台主机都要进行碰撞检测和碰撞避免

2. 以太网帧格式

在这里插入图片描述

  1. 如何将报头与有效载荷分离?

    头部固定14字节,尾部固定4字节,直接分离即可

  2. 如何分用?

    类型中会知名上层协议,0800代表IP协议

局域网通信流程:

在这里插入图片描述

如果A要发送报文给E,经过数据链路层封装后,向局域网发送;局域网内的所有主机都收到了该报文,取出报头中的目的地址与自身匹对,发现不是自己,于是将报文丢弃,只有E收到了进行匹对后,发现是自己,解包向上层交付

如果发送的报文长度过长,占用局域网的时间也就越长,其他主机也更有可能在这时发送报文,发生碰撞的概率也就越高,这也是为什么数据链路层要限制IP数据报的最大长度,有MTU的原因,从而需要IP进行分片,TCP进行滑动窗口内数据多次分发

如果同一局域网内的主机数越多,发生碰撞的概率也就越高,这也是为什么你家网络如果连的人过多,会变得卡顿

但有时无法避免同一局域网人数过多的情况,也有相应的缓解方案 ---- 交换机

3. 交换机工作原理

交换机是一种工作在数据链路层的设备,以下图举例,它会有两个接口i0和i1

在这里插入图片描述

如果A要给E发送报文,交换机通过i0接口收到了报文,判断A来自i0侧,便记录下来,将报文发给所有主机,最开始,与平时没有任何区别

局域网内的主机经过多轮通信,交换机知道了所有主机的位置后,此时A要给D发送报文,交换机收到后,判断D在i0侧,于是不会将报文通过i1接口转发出去,C给E发送报文,也不会被转发给i0侧,于是A->D,C->E就在同一时刻完成了通信

交换机的本质是划分碰撞域,由此可以进一步推广,如果再多加几台交换机,就能减少碰撞

4. MTU

MTU,以太网的最大传输单元,通常是1500字节

  • MTU对IP的影响:导致IP可能需要对报文进行分片
  • MTU对UDP的影响:分片之后,丢包概率增加,而UDP不保证可靠性,增加通信失败的可能性
  • MTU对TCP的影响:
    1. 受MTU的影响,TCP数据报不能太长,单个数据报的最大长度称为MSS(Max Segment Size)
    2. 实际上,再TCP三次握手期间,双方会进行MSS协商,告知对方自身支持的MSS,最终会选择较小的值最为最终的MSS
    3. MSS值放在TCP报头中的选项中

MTU与MSS的关系:

在这里插入图片描述

仔细看以太帧报头时,会发现以太帧数据报有个最小字节数,46字节,如果IP层交给以太帧时数据不满46字节,会自动添加无效数据,直到满46字节

由于IP报头中16位报文长度的存在,IP是知道自身报文的长度的,因此,添加再多无效数据也不影响

5. arp协议

arp协议是位于网络层与数据链路层之间的一种协议,它属于数据链路层

在这里插入图片描述

路由器通过路由表,知道了下一站的IP地址,但并不知道对方的MAC地址,也就不能进行MAC帧封装,将报文发送到目标主机

arp就是将IP地址映射成MAC地址的协议

arp 的具体过程

要想知道对方的MAC地址,就要让对方告诉我他的MAC地址,我要给对方发送arp请求,对方要给我arp应答,同时,我也可能收到arp请求,也就是说,任何一台主机都需要能识别出是arp请求还是arp应答的能力

在这里插入图片描述

不知道对方的MAC地址,于是构建ARP应答,源IP、目的IP、源MAC地址、目的MAC地址(不知道,填全F),向下封装,由于是arp向下交付的,MAC帧在封装时类型填0806,发送ARP请求

局域网中的所有主机都收到该请求,MAC帧解包向ARP交付,首先查看是请求还是应答,再查看IP地址,发现IP地址不是自身IP地址,于是丢弃

只有E收到后,发现IP地址是自身IP地址,于是构建ARP应答,发送

A收到后,向ARP交付,首先查看是应答,再查看IP地址,是自己,于是就拿到的对方的MAC地址,往后进行局域网通信

主机会将IP地址与MAC地址的映射关系暂时缓存起来,Windows下使用arp -a可以查看

在这里插入图片描述

但由于IP地址会变动,对方网卡可能会更换,MAC也可能会变动,因此该映射关系会定时清理

arp协议格式

在这里插入图片描述

  • 硬件类型:链路层网络类型,通常是以太网1
  • 协议类型:要转换的地址类型,通常是IP地址0x800
  • 硬件地址长度:MAC地址的长度,6字节
  • 协议地址长度:IP地址长度,4字节
  • op:1为arp请求,2为arp应答

6. arp欺骗

假设两台主机A和B已经得知双方的IP地址与MAC地址的映射关系

这时,来了个中间主机,由于IP报头、MAC帧报头在网络传输中是明文的,M收到A发给B的报文时不直接丢弃,这样就得知双方的IP地址和MAC地址

于是向A大量发送arp应答,源IP填B,源MAC地址填M,虽然A的arp缓存已经标明B主机IP地址与MAC地址的映射关系,但由于大量收到arp应答,会更新arp缓存;同理,B的arp缓存也会更新

于是,M就成为了中间人,A向B发送的数据都会发向M,甚至M可能会伪造数据再发给B

arp欺骗是成为中间人的一种手段

地址的映射关系,但由于大量收到arp应答,会更新arp缓存;同理,B的arp缓存也会更新

于是,M就成为了中间人,A向B发送的数据都会发向M,甚至M可能会伪造数据再发给B

arp欺骗是成为中间人的一种手段

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值