网络基础(三):数据链路层

一、数据链路层的概念

用于两个设备(同一种数据链路节点)之间进行传递。

二、认识以太网

2.1 认识MAC地址

  1. MAC地址用来识别数据链路层中相连的节点;
  2. 长度为48位, 及6个字节。一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  3. 在网卡出厂时就确定了, 不能修改。MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的MAC地址, 可能会冲突; 也有些网卡支持用户配置MAC地址)

2.2 以太网帧格式

在这里插入图片描述
目的地址:目的MAC地址
源地址:源MAC地址
类型:指的是上层使用什么协议
数据:有效载荷,如果当前数据不到46字节,则需要补0,使得属于长度满足[46,1500]的范围
CRC校验:判断数据的完整性

2.3 认识MTU

MTU相当于发快递时对包裹尺寸的限制,这个限制是不同的数据链路对应的物理层, 产生的限制。

  1. 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
  2. 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);
  3. 不同的数据链路层标准的MTU是不同的。

2.3.1 MTU对IP协议的影响

由于数据链路层MTU的限制, 对于较大的IP数据包要进行分包。

  1. 将较大的IP包分成多个小包, 并给每个小包打上标签;
  2. 每个小包IP协议头的16位标识(id) 都是相同的;
  3. 每个小包的IP协议头的3位标志字段中, 第2位置为0, 表示允许分片, 第3位来表示结束标记(当前是否是最后一个小包, 是的话置为1, 否则置为0);
  4. 到达对端时再将这些小包, 会按顺序重组, 拼装到一起返回给传输层;
  5. 一旦这些小包中任意一个小包丢失, 接收端的重组就会失败。但是IP层不会负责重新传输数据。

2.3.2 MTU对UDP协议的影响

  1. 一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就会在网络层分成多个IP数据报;
  2. 多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败.。那么这就意味着, 如果UDP数据报在网络层被分片, 整个数据被丢失的概率就大大增加了。

2.3.3 MTU对于TCP协议的影响

  1. TCP的一个数据报也不能无限大, 还是受制于MTU. TCP的单个数据报的最大消息长度, 称为MSS(Max Segment Size);
  2. TCP在建立连接的过程中, 通信双方会进行MSS协商;
  3. 最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU);
  4. 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值;
  5. 然后双方得知对方的MSS值之后, 选择较小的作为最终MSS;
  6. MSS的值就是在TCP首部的40字节变长选项中(kind=2)

如果MSS+tcp_h+ip_t <= MTU,则当IP协议拿到TCP数据包的时候,不需要分片传输。
在这里插入图片描述
使用ifconfig命令,即可查看ip地址,mac地址和MTU。

三、ARP协议

ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议。

3.1 ARP协议的作用

ARP协议建立了主机IP地址和MAC地址的映射关系。

  1. 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
  2. 数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
  3. 因此在通讯前必须获得目的主机的硬件地址。

3.2 ARP协议的工作流程

在这里插入图片描述

3.3 ARP数据报的格式

在这里插入图片描述
ARP数据报=以太网首部+28字节ARP请求/应答

以太网目的地址:0xFFFFFFFFFFFF,表示说给当前子网当中的所有机器广播
以太网源地址:ARP请求/应答发出去机器的MAC地址
帧类型:ARP协议
硬件类型:指的是当前的网络类型,一般都是以太网
协议类型:ipv4协议
硬件地址长度:MAC地址长度
协议地址长度:ipv4的ip地址长度
op(option):1表示ARP请求,2表示ARP应答
发送端以太网地址发送端IP地址目的以太网地址目的IP地址不再解释

3.4 ARP缓存表

保存ip和MAC地址的映射关系;用arp -a命令查看在这里插入图片描述
arp缓存表当中的每一项都是有老化时间的(时效),而老化时间是20min,一旦超过20min就重新获取。

猜你喜欢

转载自blog.csdn.net/zhao_leilei/article/details/112132316