Linux网络基础-5

本文介绍了链路层协议的关键概念,包括MAC地址、以太网协议格式和ARP协议的工作原理。讨论了ARP如何用于获取硬件地址,以及ARP欺骗作为一种网络攻击手段。此外,还提到了MTU在以太网中的作用,以及它对TCP和UDP传输的影响。
摘要由CSDN通过智能技术生成

在上一篇博客中我们对网络层的典型协议--IP进行了介绍,那么本篇博客作为网络方面的最后一片博客,我们对网络中最后内容--链路层协议进行讲解。

目录

1.链路层协议

1.1MAC地址

1.1.1类型

1.1.2作用

1.2以太网协议

1.2.1协议格式

1.2.2ARP协议

1.2.3获取指定硬件地址

1.2.4MTU

1.链路层协议

链路层是负责相邻设备之间的数据传输,在网络层中的IP地址描述的是数据从一台主机到另一台主机,是数据收发的起点和终点。但是在数据传输过程中并不是由起点直接传达到终点,这中间过程中需要经历层层转发才可以,链路层便是为这一部分内容服务的。

1.1MAC地址

MAC地址是网卡的物理硬件地址,是网卡出山时所设定的固定地址。它是为上述转发过程中所经过的中间设备进行标识,通过MAC地址,我们可以很好的清楚数据传输过程所经过的中间转发设备。

1.1.1类型

MAC地址的数据类型是:uint8_t mac[6],是一个无符号的48位数字。

1.1.2作用

MAC地址的作用也正是设计它的初衷,即作为相邻设备之间的标识。

1.2以太网协议

1.2.1协议格式

其中,6字节对端&6字节源端MAC地址:用于描述通信相邻的两个硬件设备;2字节协议类型:所封装的报文data所使用的协议类型;4字节位校验和:进行差错校验。

1.2.2ARP协议

ARP协议是介于链路层和网络层之间的协议,既包含了MAC地址也包含了IP地址。

笔者引用《TCP-IP详解》一书中的结构说明,在上图中进行展示。

其中,2字节硬件类型:描述链路层网络协议--以太网;2字节协议类型:要进行地址转换的地址类型;1字节硬件地址长度:存储硬件地址长度;1字节协议地址长度:存储转换使用的协议地址长度; 2字节op:1--标识ARP请求,2--标识ARP应答。

6字节源端MAC地址,4字节源端IP地址,6字节对端MAC地址,4字节对端IP地址。

1.2.3获取指定硬件地址

  1. 当前主机封装一个ARP请求,在请求中填充源端MAC地址和IP地址,并将以太网帧中头中的目标MAC地址填充为:0XFFFFFFFFFFFF -- 广播地址;
  2. 将ARP请求广播给所有相邻设备;
  3. 收到ARP请求的主机,对数据帧进行解析,如果目标IP地址匹配则填充自己的MAC地址和IP地址进行相应,如果不匹配则直接丢弃;
  4. 当前主机收到相应之后,便知道了指定设备的MAC地址;
  5. 当前主机将MAC-IP映射关系缓存起来,并保存一段时间(非永久)。

了解完如何过去指定硬件地址的操作内容之后,我们可以来简单讲解一种网络攻击--ARP欺骗攻击,也叫做局域网攻击。

它的攻击方式便是:恶意主机伪造IP地址不断的给网关设备发送ARP响应,告知网关自己是子网中的某个主机;与此同时,该恶意主机还会给子网中的其他主机不断发送ARP响应,告知其他主机自己是网关设备。

于是这两种角色的设备会被不断得到的ARP响应覆盖掉自己原有的ARP映射表,普通主机认为恶意主机是网关设备,将数据发送给恶意主机;网关设备认为恶意主机是指定设备,将响应发送给恶意主机。这样,该恶意主机便达成了网络攻击的目的--窃取数据。

1.2.4MTU

以太网中的链路层对数据帧长度存在一个限制,其最大值的默认值是1500字节,链路层将这个特性称作MTU,即最大传输单元。

顺便罗列出几种常见的最大传输单元(MTU):

接下来我们来看一看MTU的存在对传输层协议的影响:

对于TCP协议,我们在三次握手建立连接阶段便会协商MSS(根据MTU计算得到的传输最大数据),然后在后续的数据传输过程中,每次从缓冲区中取出合适大小的数据进行头部封装后传输。TCP在传输层会自动将数据进行分段,因此不会在网络层出现数据分片。

对于UDP协议,并不存在协商MSS(无连接),只要传输的数据大小最大小于64k-8就可以传输,但是有可能会因为网络层传输中,因为数据大小大于MTU而导致数据分片。但是,数据分片之后的重组是有可能失败的(分片越多,越容易失败),重组失败便会导致数据重传,传输效率低下。因此,我们在使用UDP进行数据传输过程中,可以在应用层的程序中设计MSS,即在传输时便将数据分割完成,尽量减少数据在网络层的分片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值