链路层(传输介质)
传输介质传输的是信号,物理层传输的是信息。
- 导向性传输介质:固体媒介,比如双绞线/同轴电缆/铜线/光缆
- 非导向性传输介质:自由空间,比如无线电波/微波/红外线/激光
物理层
传输对象:比特流
设备:中继器/集线器
中继器:对失真的信号再生和还原(抹平失真),只有两个端口
放大器:对信号放大(拉开差异)
集线器:多口的放大器
数据链路层
传输对象:数据帧
在网络层的数据报基础上加上帧首部和帧尾部作为界限
作用:透明传输、差错控制、流量控制、介质访问控制
差错控制包括无比特差错+无传输差错
透明传输
透明传输即发送出去的是什么,接收到的还是什么。必须保证物理层拿到有用信息不会被当成帧定界的比特流,所以要将可能产生误会的信息处理后再给物理层。
- 字符计数法:在帧首部写明有用信息的字符数
- 字符填充法:在有用信息中的“结束符”之前加一个转义的字符,表示这不是真正的结束符
- 零比特填充法:以连续的5个1作为帧尾部结束符,就将有用信息里面每四个1后面加一个0,保证有用信息中不出现结束符
- 违规编码法:用正常编码不会出现的信号作为标记,比如用曼彻斯特编码时,用高-高
无比特差错(检错/纠错编码)
- 奇偶校验码(只能检错)
- 循环冗余码(只能检错)
传输:目的码
1001011011,规定生成多项式是10011(5位),得到的余数(传输码÷生成多项式)为1110(4位),最后传输码目的码+余数。
检验:将收到的传输码+余数除以生成多项式,余数为0说明没有比特出错,否则出错,但无法定位到是哪一位。
- 海明码(可以纠错)
只能纠正一位的差错,但是可以检查错两位差错
发送:纠错码是1、2、4、8...位,将剩下在3、5、6、7、9、10...位的目的码写成二进制,根据异或算出纠错码。
检验:纠错码异或对应的目的码,如果是0没有出错,否则拼接可得出错的位数。
无帧差错+流量控制
滑动窗口机制
- 停止-等待协议(发送窗口为1,接收窗口为1)
1-ACK1-0-ACK0-1-ACK1。一个发送周期内只发送一帧。
收到确认帧才发送下一帧;大于超时计时器还没有收到ACK就重传。
超时计时器(发送周期)会比数据往返传播时延RTT大一点,因为还有传输时延。
信道利用率=有效信息传输时延/(有效信息传输时延+2*传播时延+ACK传输时延)
- 后退n帧协议(发送窗口大一1,接收窗口为1)
0-1-2-3-ACK3-0-1-2-3-ACK0-ACK2-3-ACK3-0-1-2-3,一个发送周期内发送多帧
累计确认,发送ACK2说明已经接收了0、1、2
最大的发送窗口是2^N-1(用3位编码,最大窗口数是7,即从0到6) - 选择重传协议(发送窗口大于1,接收窗口大于1)
0-1-2-3-ACK0-ACK2-4-5-1(假设窗口大小是5)
逐一确认,只重传出错的帧
接收窗口一般等于发送窗口=2^(N-1)
介质访问控制
有多个节点同一时间段内使用同一个链路(广播式链路),用一定的措施,使得每两个节点之间的通信不会互相干扰
静态划分信道
- 频分多路复用:FDM
每一对通信节点之间用一个特定的频带
- 时分多路复用:TDM
轮流给每一对通信节点分配时间片
- 波分多路复用:WDM
实际还是频分多路复用,但介质是光
- 码分多路复用:CDM
动态划分信道
- ALOHA协议
发送之前不监听,冲突了再重发。
碰撞检测:没有收到确认帧就认为是发生了冲突,因为接收方收到干扰的信息不会发送确认帧
- CSMA协议
发送之前检查信道,信道空闲时再发送数据
- CSMA/CD协议
发送之前检查信道,发送时监听信道检测碰撞。
碰撞检测:收到干扰的信息,如果有碰撞,最多2倍传播时延一定会收到
最小帧长:为了能在碰撞检测到的时候停止数据的发送,必须要让数据传输时延大于最大碰撞检测时间
- CSMA/CA协议
发送之前检查信道,并且预约信道避免碰撞.
关于可靠传输:
可靠传输需要无比特差错+无帧差错(不重复,不丢失) 即检错编码和滑动窗口的作用.
但实际上使用的数据链路层并不能做到可靠传输.早年间网络不发达,会出现丢包问题,但现在这种问题很少见,也就不在数据链路层处理帧的差错问题了.滑动窗口机制不在数据链路层被使用,而是传输层.即可靠传输需要传输层来保证
协议格式
局域网中(LAN)
MAC地址:数据链路层以MAC地址为传播的标识,又称硬件地址/物理地址
是一个写在计算机硬件上的唯一的48位二进制地址(02-60-8c-e4-b1-21)
- 有线局域网(以太网)MAC帧(IEEE 802.3协议):在MAC帧头中加入(目的地址+源地址+IP数据报类型)
- 无线局域网MAC帧(IEEE 802.11协议):在MAC帧头加入(生存周期+目的站+发送站+目的人+发送人)
广域网中(WAN)
- PPP协议和HDLC协议
设备:网桥/交换机
网络/网段/冲突域/广播域
冲突域:一个时间点下,一个冲突与内只能有一台设备发送数据
广播域:一个广播域发送的广播数据帧广播域内的设备都能收到
一个冲突域是一个网段,一个广播域是一个网络
一个路由器下面有多个广播域(一个交换机下面是一个广播域)
一个交换机下面有多个冲突域(一个集线器下面是一个冲突域)
网桥
根据MAC帧的目的地址,决定将帧是否转发,以及转发到哪一个端口
交换机
多端口的网桥
** 直通式**交换机:检查完6B的的目的地址就立刻转发,
存储转发式交换机:缓存完整个帧再转发