计算机网络 - 链路层
文章目录
一、基本问题
1.1 封装成帧
将网络层传下来的IP数据报分组添加首部和尾部,用于标记帧的开始和结束。
1.2透明传输
帧使用首部和尾部进行定界,如果帧的数据部分含有和首部和尾部相同的部分的内容。那么帧的开始和结束就会被错误的判定。需要数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原原始数据。这个过程透明传输的内容就是转义字符,用户察觉不到换义字符的存在。
1.3差错检测
目前数据链路层广泛使用了循环冗余(CRC)来检测比特差错
二、信道分类
2.1广播通道
一对多通道,一个结点发送的数据能被广播信道上的所有节点接收。
所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫作碰撞)。
主要有两种信道控制方法进行协调,一个是使用信道复用技术,一是使用CSMA/CD 协议。
2.2点对点信道
一对一通信
因为不会发生碰撞,因此也比较简单,使用PPP协议进行控制。
三、信道复用技术
3.1频分复用
频分复用的所有主机在相同时间占用不同的频率带宽资源。
3.2时分复用
时分复用的所有主机在不同的时间占用相同的频率带资源。
使用频分复用和时分复用进行通信,在通信的过程中主机会一直占用一部分信道资源。但是由于计算机数据的突发性质,通信过程没必要一直占用信道资源而不让出给其它用户使用**,因此这两种方式对信道的利用率都不高。**
3.3统计时分复用
是对时分复用的一种改进,不固定每个用户在时分复用帧中的位置,只要有数据就集中起来组成统计时分复用帧然后发送。
3.4波分复用
光的波分复用。由于光的频率很高,因此习惯上用波长而不是频率来表示所使用的的光载波。
3.5码分复用
为每个用户分配m bit的码片正交,对于任意两个码片
为了讨论方便,取m=8,设码片
四、CSMA/CD 协议
CSMA/CD 表示载波监听多点接入 / 碰撞检测。
- 多点接入:说明这是总线形网络,许多主机以多点的方式连接到主线。
- 载波监听:每个主机都必须不停的监听信道。在发送前,如果监听到信道正在使用,就必须等待。
- 碰撞检测:在发送中,如果监听到信道已有其他主机正在发送数据,就表示发生了碰撞,虽然主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能发生碰撞。
记录端到端的传播时延为τ,最先发送的站点最多经过2τ就可以知道发生碰撞,称2τ为争用期。只有经过争用期之后还没有碰撞检测,才能肯定这次发送不会发生碰撞。
当发生站点碰撞时,站点要停止发送 ,等待一段时间再发送。这段时间采用的是截断二进制指数退避算法来来确定。从离散的整数集合中随机取出一个数,记作r,然后取r倍的争用期作为重传时间。
五、PPP 协议
互联网用户通常需连接到某个ISP之后才能接入到互联网,PPP协议是用户计算机和ISP进行通信所使用的数据链路层协议。
六、MAC 地址
MAC地址是链路层地址,长度为6字节(48位),用于唯一标识网络适配器(网卡)。
一台主机拥有多少个网络适配器就拥有多少个MAC地址。例如笔记本电脑普遍存在无线适配器和有线网络适配器,因此就有两个MAC地址。
七、局域网
局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。主要有以太网、令牌环网、FFDI和ATM等局域网技术,目前以太网占领着有线局域网市场。
可以按照网络拓扑结构对局域网进行分类。
八、以太网
以太网是一种星型拓扑结构局域网。早期使用集线器进行连接,集线器是一种物理层设备,作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将能量强度放大,从而扩大网络的传输距离。之后再将这个比特发送到其它接口。如果集线器同时收到两个不同接口的帧,那么就发生碰撞。
目前以太网使用交换机替换了集线器,交换机是一种链路层设备,他不会发生碰撞,能根据MAC地址进行存储转发。
以太网格式:
- 类型:标记上层使用的协议
- 数据:长度在46-1500之间,如果太小则需要填充
- FCS:帧检测序列,使用的CRC检验方法
九、交换机
交换机具有自学学习能力,学习的是交换表的内容,交换表中存储着MAC地址接口的映射。正是这种自学能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表的内容。
下图中,交换机有4个接口,主机A向主机B发送数据时,交换机把主机A到接口1的映射写入到交换表中。为了发送数据帧到B,先查交换表,此时没有主机B的表项。那么主机A就发送广播帧,C、D丢弃该帧。主机B回应该帧向主机A发送数据报,交换机查找交换表得到主机A映射的接口为1,就发送数据帧到接口1,同时交换机添加主机B到接口2的映射。
十、虚拟局域网
虚拟机局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟机局域网中的成员才会收到链路层广播信息。
例如下图(A1,A2,A3,A4)属于一个虚拟局域网,A1发送的广播会被A2、A3、A4收到,而其他站点收不到。