计算机网络基础---数据链路层
数据链路层知识梳理
在数据链路层传输的数据单位为:帧
链路和数据链路
链路:一条点到点的物理线路。
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。
若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。(用网卡来实现这些协议的硬件和软件)
数据发送的模型
数据链路层主要使用的通道:
广播讯道:
一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到。
所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。
主要有两种控制方法进行协调,一个是使用信道复用技术,一是使用 CSMA/CD 协议。
点对点传播:
一对一通信。
因为不会发生碰撞,因此也比较简单,使用 PPP 协议进行控制。
数据链路层传输的是帧:
数据链路层的三个基本问题:封装成帧,透明传输,差错检测
封装成帧
就是在一段数据的前后添加首部和尾部,就构成了一个帧,确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界。 (分片)
MTU:最大传输单元,不能超过1500字节
为什么加一个头部和尾部:
如果在接收端,只收到首部或者尾部,没有全都收到,就会将这个不完整的帧丢弃,重新接受
透明传输
透明表示一个实际存在的事物看起来好像不存在一样。
帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。
需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。
在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
在传输过程中,我们用一般传输的是ASCII,其中有打印字符和非打印字符,
我们用非打印字符作为帧定界符:代码SOH(Start Of Header)作为帧开始定界符,代码EOT(End Of Transmission)作为帧结束定界符。
如果我们传输的文本中也含有帧定界符的话, 为了防止错误就要加上转义字符,ESC作为转义字符。
差错检测
目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1,这就叫做比特差错。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的差错检验技术
降低误码率(BER,Bit Error Rate),广泛使用循环冗余检测(CRC,Cyclic Redundancy Check)
PPP协议
互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
PPP 的帧格式:
- F 字段为帧的定界符
- A 和 C 字段暂时没有意义
- FCS 字段是使用 CRC 的检验序列
- 信息部分的长度不超过 1500
PPP的帧格式分为首部和尾部,分别为四个字段和两个字段。
首部的F(flag)表示帧定界,如果连续出现两个表示为空帧。
A和C目前无意义。然后是协议字段。表示后面的ip数据报存放的是什么信息数据。
信息部分长度不能超过1500字节
尾部的FCS占2个字节表示使用CRC的帧检验序列。
MAC地址
MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。
一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。
mac帧格式:
前两个字段为6字节的目的地址和源地址字段,第三个字段是2字节的类型字段,表示数据段的是什么信息。
第四个字段是46--1500字节的数据字段(46字节=64字节减去18字节的首部和尾部),第五个字段是4个字节的帧检验序列。
局域网:
局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。
主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。
可以按照网络拓扑结构对局域网进行分类
以太网
以太网是一种星型拓扑结构局域网。
早期使用集线器进行连接,集线器是一种物理层设备, 作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞。
目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转发。
以太网帧格式:
- 类型 :标记上层使用的协议;
- 数据 :长度在 46-1500 之间,如果太小则需要填充;
- FCS :帧检验序列,使用的是 CRC 检验方法;
- 前同步码 :只是为了计算 FCS 临时加入的,计算结束之后会丢弃。
虚拟局域网
虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。
使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。