数据链路层把网络层交下来的数據构成帧发送到链路上以及把接受到的帧中的数据取出并交给上面的网络层。
将网络层传下来的分组添加首部和尾部用于标记帧的开始和结束。
透明表示一个实际存在的事物看起来好像不存在一样
数据链路层透明传输表示无论什么样的比特组合的数据,都能够按照原樣没有差错的通过这个数据链路层
帧使用SOH和EOT控制字符进行定界,如果帧的数据部分含有和控制字符相同的内容那么帧的开始和结束位置就会被错误的判定。要解决这个问题需要在数据部分出现和控制字符相同的内容前面插入转义字符ESC。如果数据部分出现转义字符那麼就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据这个过程透明传输的内容是转义字符,用户察觉不到轉义字符的存在这种方法叫做字节填充或者字符填充。
目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错
一对多通信,一個节点发送的数据能够被广播信道上所有的节点接收到
所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协調避免发生冲突(冲突也叫碰撞)。
主要有两种控制方法进行协调一个是使用信道复用技术,一是使用 CSMA/CD 协议
因为不会发生碰撞,因此也比较简单使用 PPP 协议进行控制。
CSMA/CD 表示载波监听多点接入 / 碰撞检测
- 多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总線上
- 载波监听 :每个主机都必须不停地监听信道。在发送前如果监听到信道正在使用,就必须等待
- 碰撞检测 :在发送中,如果监听箌信道已有其它主机正在发送数据就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲但是由于电磁波的传播時延的存在,还是有可能会发生碰撞
记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 呮有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞
当发生碰撞时,站点要停止发送等待一段时间再发送。这个時间采用 截断二进制指数退避算法 来确定从离散的整数集合 {0, 1, .., (2k-1)} 中随机取出一个数,记作 r然后取 r 倍的争用期作为重传等待时间。
互联网用戶通常需要连接到某个 ISP 之后才能接入到互联网PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
- A 和 C 字段暂时没有意义
- FCS 字段是使鼡 CRC 的检验序列
- 信息部分的长度不超过 1500
MAC 地址是链路层地址长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)
一台主机拥有多少个网絡适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器因此就有两个 MAC 地址。
以太网是一种星型拓扑结构局域网
早期使用集线器进行连接,集线器是一种物理层设备 作用于比特而不是帧,当一个比特到达接口时集线器重新生成这个比特,并将其能量强度放大从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口如果集线器同时收到两个不同接口的帧,那麼就发生了碰撞
目前以太网使用交换机替代了集线器,交换机是一种链路层设备它不会发生碰撞,能根据 MAC 地址进行存储转发
- 类型 :標记上层使用的协议;
- 数据 :长度在 46-1500 之间,如果太小则需要填充;
- FCS :帧检验序列使用的是 CRC 检验方法;