数据链路(相邻节点传输数据帧)(计算机网络)
信道:以传输媒介为基础的信号通道。
- 数据链路层信道
- 点对点信道:使用一对一的点对点通信方式
- 广播信道:使用一对多的广播通信方式。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
从数据链路层看,H1到H2的通信可以由四段不同的链路层通信组成:H1→R1,R1→R2,R2→R3,R3→H2。这四段可能采取不同的数据链路层协议。
3.1数据链路层的几个公共问题(针对点对点通信而言,部分分概念对广播通信适用)
- 3.1.1数据链路和帧
- 链路(物理链路):链路是从一个节点到相邻节点的一段物理线路(有线或者无线),而中间没有任何其他的交换节点。
- 数据链路(逻辑链路):把实现某些必要通信协议的硬件和软件加到链路上,就构成了数据链路。【在一条线路上传送数据时,必须有一条物理线路,除此之外,还需要有必要的通信协议控制数据的传输】
- 网络适配器(既有硬件,又有软件):用来实现控制数据传输的协议。一般的适配器包括数据链路层和物理层两层。
- 规程:早期的数据通信协议。
- 帧:点对点信道的数据链路层的协议数据单元
- 数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接受到的帧中的数据取出并上交给网络层。
- 在互联网中,网络层协议数据单元是IP数据报(简称数据报,分组或包)
数据链路层不必考虑物理层如何实现比特传输的细节。
-
简述点对点信道的数据链路层在进行通信时的步骤:
- 节点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
- 节点A把封装好的帧发送给节点B的数据链路层
- 若节点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。
-
“可打印的字符”就是“可以从键盘上输入的字符”。我们使用的标准键盘有47个键可以输入94个字符(包括shift键),加上空格键,一共可以输入95个可打印字符。
-
3.1.2数据链路层的三个问题
-
1、封装成帧(定义帧、封装、解封)
- 封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
- 分组交换的一个重要概念为:所有在互联网上传送的数据都以分组(即IP数据报)为传送单位。
- 数据链路层的数据传输单元=帧首部+ 帧的数据部分+帧尾部
- 首部和尾部作用:①进行帧定界(确定帧的界限);②传递控制信息
- 发送数据时,从帧首部开始发送
- 各种数据链路层协议都对帧首部、帧尾部的格式有明确规定。
- 为了提高传输效率,应当使帧的数据部分长度尽可能大于帧首部和帧尾部。
- MTU:最大传送单元,协议所规定的所能传送的帧的数据部分长度上限。
- ASCII码中,可打印的有95个,不可打印的控制字符有33个。
-
- 2、透明传输
- 当传送的帧是用文本文件组成的帧时(文本文件中的字符都是从键盘上输入的),不管输入什么都可以正常传输,这种传输叫透明传输。
- 当传输字符与控制字符一致时:
- “在数据链路层透明传送数据”:无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。
- 实现数据中含有“SOH/EOT”时的透明传输实现方法:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B,二进制是00011011)。在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。这种方法叫字节填充(byte stuffing)或字符填充(character stuffing)。
如果转义字符也出现在数据当中,那么解决方法仍是在转义字符的前面插入一个转义字符。因此,当接收端收到连续的两个转义字符时,就删除其中前面的一个。
- 3、差错检测
-
比特差错:比特在传输过程中可能会产生差错:1可能变成0,0也可能变成1。
-
误码率:在一段时间内,传输错误的比特占传输比特总数的比率
-
信噪比影响误码率。提高信噪比,可以降低误码率。
-
循环冗余检验(CRC,Cyclic Redundancy Check)—差错检测技术
- CRC运算就是在数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发出去,一共发送(k+n)位。
- 冗余码:模二除法的余数。
- 为了进行检错而添加的冗余码常称为帧检验序列(FCS,Frame Check Sequence)
- CRC≠FCS。CRC是一种检错方法,而FCS是添加在数据后面的冗余码。FCS是添加在数据后面的冗余码,检错方法可以选用CRC,但也可以不用CRC。
- 模二除法
-
- 接收端把接收到的数据以帧为单位进行CRC检验:把收到的每一个帧都除以相同的除数P(模二运算),然后检查得到的余数。如果传输过程无差错,CRC检验后的余数为0。
- 接收端检验:①余数R=0,acc;②R≠0,丢弃(无法判断哪里出错)
- 多项式表示循环冗余检验过程
![image](https://img2024.cnblogs.com/blog/2381996/202402/2381996-20240226084855642-229055344.png)
- 在数据链路层,发送端帧检验序列FCS的生成和接收端的CRC检验都是硬件完成,处理很迅速,因此不会延误数据的传输。
- P77—78老师没讲的部分
3.2 点对点协议PPP——目前的点对点的链路协议
在数据通信质量较差的年代,数据链路层的传输协议为能实现可靠传输的高级数据链路控制HDLC(High-level Data Link Control)
-
用户计算机通过数据链路层的PPP协议接到某个ISP,从而接入到互联网中
-
3.2.1 PPP协议的特点(PPP协议是IETF在1992年制定的)
- 1.PPP协议需要满足的要求
-
简单(首要需求)
IETF在设计网络体系结构时,将复杂部分放在TCP协议中,网际协议IP相对比较简单。
简单的设计使协议不容易出错,提高了互操作性(厂商之间),有利于实现协议标准化。
接收方每收到一个帧,就进行CRC检验。如果CRC检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。
-
封装成帧
规定帧定界符
-
透明性
-
多种网络协议
PPP协议必须能够在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。当点对点链路所连接的是局域网或者路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络协议。
-
多种类型链路
PPP必须能够在多种类型的连路上运行。
PPPoE:P79下方
-
差错检验(error detection)
PPP协议需要在接收端对收到的帧进行检验,如果出错,立即丢掉出错的帧
-
检测连接状态
需要一种及时检测出链路是否处于正常工作状态的机制。
-
最大传输单元
MTU,数据的最大长度,不是帧的总长度,默认值是1500字节。
如果高层协议发送的分组过长并超过MTU的数值,PPP就要丢弃这个帧,并返回差错。
-
网络层地址协商
PPP协议需要提供一种机制,使通信的两个网络层(如两个IP层)的实体能够通过协商知道或者能够配置彼此的网络层地址。
-
数据压缩协商
PPP协议必须提供一种方法来协商使用数据压缩算法。PPP协议不要求将数据压缩算法进行标准化。
-
在TCP/IP协议族中,可靠传输由运输层的TCP协议控制,因此,数据链路层的PPP协议不需要进行纠错,不需要设置序号,不需要进行流量控制。PPP协议只支持点对点的链路通信。PPP协议只支持全双工链路。
- 2、PPP协议的组成
- 一个将IP数据报封装到串行链路的方法。PPP支持同步链路(面向比特)和异步链路(无奇偶校验的8比特数据)。IP数据报在PPP帧中就是其信息部分,长度受MTU影响。
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP(link Control Protocol)。
- 一套网络控制协议NCP(Network Control Protocol)。
- 1.PPP协议需要满足的要求
-
3.2.2 PPP协议的帧格式
-
1、各字段的意义
协议字段:2字节,0x0021——IP数据报;0xC021——LCP;0x8021——网络层控制数据
-
2、字节填充【异步传输,逐个字符传输】
信息部分:①0x7E→(0x7D, 0x7E);②ASCII控制字符(数值小于0x20):一变二,+0x7E
-
3、零比特填充【同步传输,一连串的比特连续传送】
在发送端,只要发现连续五个1,就在后边填入一个0
-
3.2.3 PPP协议的工作状态(感觉不会考,上课没讲过,有时间再看)
https://blog.csdn.net/Alexhcf/article/details/107853652 各层物理设备区分
3.3 使用广播信道的数据链路层
-
3.3.1 局域网的数据链路层
-
1、局域网特点
网络为一个单位所拥有,其地理位置和站点范围有限。
-
2、局域网的优点
①具有广播功能,从一个站点可以很容易访问全网,局域网内资源可以共享
②便于网络的拓展和演化,各个设备的位置不固定
③满足可用性、可靠性和可生存性
-
3、局域网按拓扑结构分类
①星型:中间设备为集线器(双绞线)
②环形
③总线型(同轴电缆)
-
4、让更多用户合理共享信道的方法
(1)划分静态信道【频分复用、时分复用、波分复用和码分复用】。这种划分信道的方法代价较高,不适合局域网使用。
(2)动态媒体接入控制(多点接入):
①随机接入:所有用户可以随时发送信息,但是需要有处理冲突的协议
②受控接入:用户不是随机接入,而是在一定的控制下接入。
-
5、适配器的作用
①计算机与外界局域网的连接是通过网络适配器(网卡,网络接口卡,Network Interface Card)进行的。
②适配器上有处理器【适配器在接收和发送各种帧时,不使用计算机的CPU】和存储器(ROM,RAM)
③适配器和局域网通信:电缆或者双绞线 + 串行;适配器和计算机:IO主线 + 并行
④适配器的一个重要功能:串行数据和并行数据的转换
⑤网络上的数据率和计算机总线上的数据率并不相同,所有需要在适配器上加数据缓冲区
⑥适配器还需要实现以太网协议
⑦当适配器收到错误的帧时,直接丢弃,不通知计算机;当收到正确的帧时,使用中断来通知计算机,并交付给协议栈中的网络层。
⑧当计算机要发送IP数据报时,由协议栈将IP数据报发送给适配器,再由适配器将IP数据报封装成帧并发送给局域网
-
-
3.3.2 CSMA/CD协议
-
1、以太网的无连接工作方式:
①适配器对发送的数据帧不进行编号,也不要求对方发回确认。局域网信道的质量很好,因通信质量不好产生差错的概率很小。以太网提供的服是尽最大努力的交付,即不可靠交付。对有差错帧是否进行重传由高层确定。
②以太网采取随机接入的方式,减少冲突发生的概率。协议是载波监听多点接入/碰撞检测协议(CSMA/CD)
-
2、以太网发送的数据都使用曼彻斯特编码
①能实现同步;②比基带信号的频带宽度增加了一倍
-
3、CSMA/CD协议的要点
①“多点接入”:说明是总线型网络,计算机以多点接入的方式连接在一台计算机上。协议的实质是“载波监听”和“碰撞检测”。
②“载波监听”:边发送边监听。不管是在发送数据之前【如果有其他站正在发送数据,本站就不发送】,还是发送数据中【如果有其他站在发送数据,就暂时中断本站】,每个站都必须不停地检测信道。
③“碰撞检测”:适配器边发送数据边检测信道上的信号电压的变化情况。当两个站同时在总线上发送数据时,总线上的信号电压的变化幅度会增大(相互叠加)。当适配器检测到信号电压变化幅度超过一定的门限值时,就会认为总线上至少有两个站在同时工作,表明产生了碰撞。当产生碰撞的时候,所有正在发送数据的计算机都要终止,过一段时间再去进行发送。
产生“碰撞”【以太网的不确定性】的原因是因为,数据传输存在一定时间差。
④在局域网的分析中,把总线上的单程端到端传播时延记为τ。最迟经过2τ【端到端的往返时延,也叫争用期/碰撞窗口】就可以知道自己发送的数据和其他站发送的数据是否有碰撞。
⑤在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此,使用CSMA/CD协议的以太网的通信方式为半双工通信。
-
⑥碰撞后重传时间——以太网使用截断二进制指数退避算法
(1)基本退避时间为争用期2τ,具体的争用期时间是51.2us。10Mbit/s以太网,在争用期内可以发送512比特,即64字节。
(2)。。。
(3)当重传16次还是不能成功时,就丢弃该帧,并且向最高层报告。
-
适配器每发送一个新的帧,就要执行一次CSMA/CD算法。
-
以太网在发送数据时,如果在争用期内(共发送了64字节)没有发生冲突,那么后续发送的数据就一定不会发生冲突。
-
凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。
-
以太网最大的端到端时延必须小于争用期的一半(即25.6us),这相当于以太网的最大端到端长度约为5km。
-
强化碰撞
①当发现碰撞时,立即停止发送数据,还要再发送32bit或48bit的人为数据,以便让所有用户都知道现在已经发生了碰撞。
-
-
⑦CSMA/CD协议的要点
- 准备发送:适配器从网络层获得了一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。发送之前,必须检测信道。
- 检测信道:如果检测到信道忙,就不停地检测。如果在96比特时间内信道保持空闲,就发送这个帧。
- 网络适配器边发送边监听:①发送成功;②发送失败
-
-
-
3.3.3 使用集线器的星型拓扑
1、10BASE-T:10(10Mbit/s),BASE(基带信号),T(双绞线)
-
通信距离较短,每个站到集线器的距离不超过100m
-
10BASE-T以太网的出现,使以太网的拓扑结构从总线型变成了星型,以太网也在局域网中占据了统治地位,里程碑
-
2、集线器的特点
①集线器所连接的网络工作在物理层
②广播方式工作,总线型(本质上)
③半双工
④共享带宽
⑤广播域和冲突域都是整个网络
-
-
3.3.4 以太网的信道利用率——当时老师没讲,先不看
-
3.3.5 以太网的MAC层
-
1、MAC层的硬件地址
①局域网中,硬件地址 = MAC地址 = 物理地址
②适配器具有过滤功能,当适配器从网络上收到一个MAC帧时,如果是自己是目的地址,就收下,否则就丢弃
-
2、MAC帧的格式
①类型字段:用来标志上一层所使用的协议【当类型字段是0X0080,表示上层使用的是IP数据报】
②数据部分最小长度:46 = 64(最小长度) - 18
③FCS检验的是整个MAC帧,从目的地址到FCS为止的五个字段
④为了接收端迅速实现位同步,从MAC子层向下传送到物理层,还要在前面插入8个字节(由硬件生成)。
- ⑤无效的MAC帧
- 帧的长度不是整数字节
- 用收到的帧检验序列FCS查出有差错
- 收到的帧的数据字段长度不在64~1500之间。
- ⑤无效的MAC帧
-
3.4 扩展的以太网
-
1、(二层)交换机组网的特点:
①工作在物理层、数据链路层
②交换式工作方式(存储查表转发)、广播式
③全双工通信
④独占带宽
⑤广播域是整个网络,碰撞域没有(接口与接口之间没有碰撞域,碰撞域属于自己的一个接口)
-
2、以太网交换机的自学习功能
①目的地址查不到,要向除了源地址接口的其他接口转发。
②自学习:学习源地址和其进入端口号。
查表转发:取目的地址
③超过一定时间,项目就会从交换机中删除
④以太网交换机的自学习功能,使以太网交换机能够即插即用
⑤为了解决兜圈子问题——生成树协议STP(Spanning Tree Protocol)。从一台主机到所有其他主机的路径是无环路的树状结构。
-
3、虚拟局域网
①以太网存在的问题:广播风暴;安全问题(病毒/入侵,采用虚拟VLAN解决);管理困难
②虚拟局域网VALN的定义:虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同特征。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的VLAN属于哪一个计算机。
③虚拟局域网只是给用户提供的一种服务,并不是一种新的局域网
④虚拟局域网允许在以太网的帧格式中插入一个4字节的标识符,成为VLAN标签。
⑤一个VLAN,是一个广播域,不会跨VLAN。
⑥划分VLAN后,数据链路层不同VLAN内的计算机不能进行通信,同一VLAN内计算机可以相互通信。
3.5 高速以太网
-
3.5.1 100BASE-T以太网
1、100BASE-T是在双绞线上传送100Mbit/s 基带信号的星型拓扑以太网,又称为快速以太网。
2、用户只需使用100Mbit/s的适配器和100Mbit/s的集线器或交换机,就可以将10BASE-T转换为100BASE-T,不需要改变网络的拓扑结构。
3、100BASE-T以太网特点:①可在全双工方式下工作且没有冲突;②CSMA/DA协议对其不起作用;③帧格式、最短帧长不变
4、想从细缆以太网升级到快速以太网,必须重新布线。
-
3.5.2 吉比特以太网
-
1、吉比特以太网的标准IEEE802.3的特点:
①允许在1Gbit/s以下全双工和半双工两种方式工作。
②半双工使用CSMA/CD协议,全双工不使用CSMA/CD协议
③与10BASE-T、100BASE-T技术向后兼容
④帧格式和最短帧长不变
-
2、吉比特以太网在半双工方式时——载波延伸+分组突发,全双工不需要
①载波延伸:使最短帧长仍为64字节,同时将争用期增大到512字节。当MAC帧长不足512字节,就补充到512字节。接收端需要删除多余的填充字符。开销较大。
②分组突发:在很多短帧进行发送时,第一个帧使用载波衍射,其他帧可以一个接一个发送,它们之间只需要保留最小的帧间间隔即可。
-
-
3.5.3 10吉比特以太网(10GbE)和更快的以太网
-
1、特点
①帧格式、最短帧长不变
②只工作在全双工方式,不存在争用问题,也不使用CSMA/DA协议。这使得10GbE的传输距离大大提高(不受碰撞检测限制)
2、40GbE、100GbE可用于数据中心,短距离快速传播
-
-
PPPoE是为宽带上网的主机使用的链路层协议。