[TOC]
### **一、链路层协议**
数据链路层有有线局域网、无线局域网,他们有不同的链路层协议。有线局域网最常见的协议标准为以太网2(Ethernet II),它的数据包被称为帧(Frame),以太网帧的格式如下:

* 类型:上层协议,最常见的为IP协议
* FCS:CRC循环冗余较验码,用来判断接收到的帧是否正确
### **二、交换机**
##### **2.1 交换机的转发原理**
交换机维护着一个转发表,记录着目的MAC地址与端口(Port)的映射关系。比如:
| 目的MAC地址 | 端口 |
| --- | --- | --- |
| 00-00-00-11-11-11 | 01 |
| 00-00-00-11-11-22 | 02 |
当一个数据帧到达时,交换机检查数据帧的目的MAC地址,并且在转发表中进行匹配,这里要分三种情况:
* 单播
如果在转发表中找到了目的MAC地址的记录,则把数据帧从目的MAC地址对应的端口发送出去
* 泛洪(flood)
如果在转发表中没有找到目的MAC地址的记录,则把数据帧从所有的端口发送出去(接收端口除外)
* 广播
如果目的地址是 ff-ff-ff-ff-ff-ff(即全为1),则无需查找转发表,把数据帧从所有的端口发送出去(接收端口除外)
##### **2.2 转发表的更新**
转发表一般是自动更新。当一个数据帧从交换机的某个端口03进入后,交换机就会检查这个数据帧的源MAC地址(比如为 00-00-00-11-11-33),然后在转发表中添加一条记录,并初始化生存时间
| 目的MAC地址 | 端口 | TTL |
| --- | --- | --- |
| 00-00-00-11-11-11 | 01 | 60 |
| 00-00-00-11-11-22 | 02 | 60 |
| 00-00-00-11-11-33 | 03 | 60 |
每一条记录都有生存时间,当超过生存时间后,该记录就会被删掉(静态添加的记录没有生存时间)。
### **参考**
* https://mp.weixin.qq.com/s/vyyFHSL2aWgSr3APXL8x6g
* https://time.geekbang.org/column/article/8094
- 应用层
- HTTP
- Cookie
- Session
- HTTP报文格式
- HTTP的Header字段
- HTTPS
- 简介
- 原理
- RSA加密与解密
- 证书签名与验证
- TLS双向认证
- openssl命令汇总
- DNS
- DNS的记录类型
- DNS的报文格式
- FAQ
- 传输层
- TCP
- CloseWait
- 网络层
- IPv6
- 链路层
- 链接层基础知识
- VLAN
- Linux网络收发包
- 网卡收包
- 网卡发包
- 收发包FAQ
- LVS
- 安装-DR模式
- 基本原理
- Ipvsadm命令
- Netfilter
- Netfilter简介
- 注册钩子函数
- Netfilter中数据包流向
- Iptables的数据结构
- 连接跟踪
- 初识连接跟踪
- 连接跟踪详解
- 连接跟踪数据结构
- 数据包与连接的状态
- NAT
- IPVS
- KubeProxy的IPVS模式
- Linux虚拟网络设备
- 虚拟网络设备简介
- Tap
- VethPair
- Vlan
- Vxlan
- Flannel的VXLAN原理
- Openstack的VXLAN原理
- VXLAN总结
- Bridge
- 给容器设置主机网段IP
- Macvlan
- Ipvlan
- IPIP
- IPIP使用介绍
- IPIP源码分析
- Limdiag网络
- 详细设计
- kubeovn
- IP命令
- Calico
- Calico常见问题
- ARP无响应
- 其他