Bootstrap

Linux网络:数据链路层 | 以太网帧 | MAC地址 | MTU | ARP协议 | DNS | ICMP协议 | NAT技术


全文约 5388 字,预计阅读时长: 15分钟


“数据链路层” 和 “网络层”

  • 网络层:提供数据转发依据。让我们找到目标主机。
  • 数据链路层:负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。
    • Mac解决相邻主机的通信问题,将数据帧交付给它的下一跳设备,相邻的主机一定属于同一个网段。

认识以太网

“以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式, 传输速率等;

  • 例如以太网中的网线必须使用双绞线;传输速率有10M, 100M, 1000M等;
  • 以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN等。
    • Linux之所以能移植到手机,是将内核的以太网协议模组换成无线电相关的。

以太网帧格式

在这里插入图片描述

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP;
  • 帧末尾是CRC校验码。校验数据有没有出错。
    • TCP数据段、IP数据包、MAC数据帧;有各自的校验码,层层过滤。某一层出错了,就不许在往上传了。

MAC帧如何解包分用

固定长度的定长报头。2字节的帧协议类型字段。


认识MAC地址

MAC英语:Media Access Control Address,直译为媒体存取控制位址,也称为局域网地址(LANAddress),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address)。

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

MAC地址和IP地址

  • IP地址描述的是路途总体的 起点 和 终点;
  • MAC地址描述的是路途上的每一个区间的起点和终点。

局域网中存在数据碰撞,每台主机会进行碰撞检测,实行碰撞避免算法。一台主机发送的数据,每台主机都收到了,检测到不是给自己便选择丢弃。对网卡设置,启用混杂模式和抓包工具,可以实现对特定主机的mac帧不丢弃,进行监听。

局域网可以看作是一个临界资源,每台主机的碰撞检测则是主机间的“互斥”功能;同时又碰撞避免算法,实现了主机间的“同步”功能。交换机划分碰撞域,提交网络传输效率。

在这里插入图片描述


;