链路层
提供的服务
封装成帧
透明传输
帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,就会造成帧的首尾错误判断,此时就需要在传输的时候在数据部分插入转义字符,在接收端去掉转义字符,使用户察觉不到这个变化
链路接入
MAC协议规定帧的传输规则
可靠交付
通过确认和重传纠正帧中数据的差错,跟运输层的可靠性有所不同
差错检测与纠正
由于链路层的实现通常使用硬件,所以检测方法必须使用硬件容易实现的算法,像检验和一般就不会用在链路层而会用在网络层及以上
- 奇偶校验
- 检验和
- 循环冗余检测(CRC)
信道分类
广播信道
一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到
如果所有的节点再同一时间发送数据,就会产生碰撞,解决碰撞的方法有两种,一种是信道复用技术,一种是CSMA/CD协议
点对点通信链路
不会发生碰撞,使用PPP协议
PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议
多路访问链路和协议
如何在广播信道协调每个节点的通信的多路访问问题,是该协议要解决的
信道划分协议
TDM(时分复用)
优点是十分公平,但是时间利用效率不高
FDM(频分复用)
同样公平,但带宽利用效率不高
统计时分复用
由于TDM和FDM即使主机没有数据复用,也会占用固定的资源,于是统计时分复用就不固定每个用户在时分复用帧中的位置,只要有数据就集中起来组成统计时分复用帧然后发送
波分复用
就是对光的频分复用
CDMA(码分多址)
为所有通信用户分配一个码片,当某个用户需要发送数据时,如果要发送1时,就发送这个码片,如果要发送0时,就发送这个码片的反码。
当接收端收一串信号后,可以使用这串信号与发送方码片做一个运算,如果发现结果是0,则表明这串信号是其他用户发送,否则如果是1,代表发送方发送了1,如果是-1.代表发送方发送了0
随机接入协议
每个节点都以全速发送数据,当发生碰撞时,进行重试发送直至无碰撞
时隙ALOHA
当要发送数据时,节点等到下一个时隙发送,如果发生碰撞,随机往后面延迟随机个时隙再重试发送
使用随机的意图是防止各个节点碰撞后又在同一时间重试加剧碰撞,跟Raft协议的竞选超时时间一样
载波侦听多路访问(CSMA)
- 载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待
具有碰撞检测的载波侦听多路访问(CSMA/CD)
- 碰撞检测:如果发送的过程中,监测到其他主机发送了数据,就代表发生了碰撞
总线型以太网使用二进制指数回避,也就是碰撞的越多,等待重试的时间就会越长,在TCP中建立连接时,当握手请求没有响应,也会进行重试,Linux 中 由内核参数 net.ipv4.tcp_syn_retries 控制最多重试几次,每次重试等待时间都会翻倍
轮流协议
轮训协议
由一台主节点不断轮询网络上的其他节点,告知其可以发送的最大数据数量,但如果某个节点有故障,就会卡死
令牌协议
没有主节点,类似于非抢占式调度, 令牌在节点之间传递,拿到令牌的节点就可以发送数据
交换局域网
局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限
- MAC地址
- 链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)
以太网
以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容
早期的以太网是所有计算机连接在同一条总线上,需要自己处理碰撞问题,现代的以太网是一种星型拓扑结构局域网
帧格式
- 类型:上层使用的协议
- 长度在46-1500之间
- FCS:帧检验序列,使用CRC,以太网是无状态服务,当这个检验不通过时,只是会把这帧丢掉,不会发送确认与否定
链路层交换机
- 转发与过滤
- 自学习功能
交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射
刚开始,交换机的交换表是空的,如果连接交换机的一台主机A想要给另外一台主机B发送数据,会先经过交换机,交换机此时发现交换表没有关于主机B的数据,于是就会向所有主机广播这条消息,只有主机B会响应这条消息,其他主机会忽略,此时交换机就得到到主机B的接口,并把它记录到交换表中
交换机毒化:在总线型的网络里,攻击者可以很方便的嗅探到数据,但当有了交换机做隔离,攻击就很难嗅探到了,一种攻击方法是发送大量垃圾数据填满交换机的交换表缓存,这样交换机在收到帧时没有找到响应的映射,就会采取广播的方式广播出去,这样就会被攻击者嗅探到
广播风暴:也就是某个节点大量发送地址为广播地址的帧,交换机会将其转发到所有节点上去,会对网络造成一定的影响
虚拟局域网VLAN
链路虚拟化
- 把一个网络当做链路
数据中心网络
- 负载均衡
- 等级体系结构