第三章:数据链路层
文章目录
一、点对点信道的数据链路层
数据链路层使用的信道主要类型
点对点信道:这种信道使用一对一的点对点通信方式(广域网PPP协议)
广播信道:使用一对多的广播信道方式,过程复杂,广播信道连接的主机很多,因此使用专用的共享信道来协调这些主机的数据发送(局域网CSMA/CD)
数据链路层的简单模型
1、数据链路和帧
1、链路:是一条点到点的物理线路段,中间没有任何其他的交换节点。一条链路只是一条通路的一个组成部分。
2、数据链路:在物理线路的基础上,添加通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的
3、帧:在网络层,给数据包增加了接收端和发送端的IP地址。在数据链路层里,增加了帧头帧尾,MAC地址和校验值。
2、三个基本功能
封装成帧
分装成帧:当数据在数据链路层时,给一段数据的前后分别添加帧头和帧尾,构成一个帧,确定帧的界限。数据从链路层到网络层或者物理层时会去掉帧头和帧尾。每个帧都有最大的传输单元(MTU)。帧的头开始时都用SOH表示,帧尾结束时都用EOT表示。
透明传输
当传输的帧是用文本文件组成的帧(文本文件中的帧都是从键盘上输入),其数据显然不会出现像SOH或EOT这样的帧定界符,可见从键盘不管输入则样的数据都可以放在这样的帧中传输,因此称为透明传输。
透明传输出现的问题?
但是非ASCII文本文件时(如二进制代码的计算机程序或图像等),此时可能会有相同与帧首和帧尾的码
解决方案:
用字节填充法解决透明传输问题。发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制数1B,二进制00011011)。
字节填充或字符填充——接收端的数据链路层在数据送往网络层之前插入转义字符。如果转义字符也出现在数据之中,那么应该在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除前面的那个。
差错检验
传输过程中可能会产生比特差错:0变成1,1变成0,在一段时间内,传输错误的比特率占所传输比特总数的比率称为误码率BER,误码率是由信噪比所引起的。为了保证数据传输的可靠性,在计算机网络传输数据时,采用各种差错检验措施。
1、奇偶校验:在发送的数据后再添加的一位奇偶校验码,其中1的个数为奇数就叫奇校验,偶校验就是1的个数为偶数。如果传输过程当中出现奇个数1变成0或0变成1就可以检测到错码。但是如果有偶数位误码就检测不到了。(不使用)
2.循环冗余检验CRC:
现在链路层大多使用循环冗余检错码。
计算方法:商上面1为够除0表示不够除,无特殊意义。不进位加法。
https://www.bilibili.com/video/BV1c4411d7jb?p=23
缺点
不能确定出错的bit的是哪一位;CRC只能做到无差错接受(只接受真确的数据,抛弃错误数据);当出现数据错误时我们会 检错重传来纠正传输中的差错或者会丢弃错误的帧,这取决于数据链路层向上层提供可靠服务还是不可靠传输。
3、海明码
https://blog.csdn.net/Yonggie/article/details/83186280
3、点对点协议
1、PPP协议是数据链路层协议使用最多的链路层协议。例如用户使用ADSL拨号上网。
2、PPP协议应该满足
封装成帧;透明性;多种网络层协议;多种类型链路;差错检验;检测连接状态;最大传送单元;网络层地址协商;
多种链路:pppoE是ppp协议适应多链路的典型例子,为宽带上网的主机实现的链路协议,这个协议把ppp帧封装在以太网帧中,让用户可以使用ADSL上网。
3、PPP协议不需要满足
纠错;流量控制;序号;多点链接;半双工或单工连接。
4、PPP协议的组成部分
数据链路层协议 :将一个IP数据报封装到串行链路的方法。
使用LCP(链路控制协议) :建立并维护数据链路连接,可以实现身份验证和欠费管理。
网络控制协议(NCP) :允许在点到点连接上使用多种网络层协议。
5、PPP协议的帧格式
标志字段F = 0x7E
地址字段A = 0xFF,它并不起作用
控制字段C = 0x03
PPP协议是面向字节的,所以所有的PPP帧的长度都是整数字节。
6、透明传输
当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采用一些措施防止这样的字段出现信息字段。通常采用字节填充和零比特传输。
7、字节填充(异步传输:逐个字符传输)
此时,信息部分是以字节为单位的。
将信息字段中出现的每个0x7E字节转变成为2字节序列(0x7D,0x5E);
将信息字段中出现的每个0x7D字节转变成为2字节序列(0x7D,0x5D);
将信息字段中出现的每个ASCII码控制字符(小于0x20字符),在前面加入一个0x7D
8、零比特填充(同步传输:一连串的比特连续传输)
PPP协议在SONET/SDH链路时采用同步传输来实现透明传输。在发送端,只要发现有5个连续的1,则填充一个0。在接受端如果出现连续的5个连续的1,就把后面的0删除。
9、PPP协议不使用序号和确认机制的原因
在数据链路层出现错误的概率不大时,使用较简单的PPP协议较为合理,在Internet环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的;
帧检验序列FCS字段可以保证无差错接受。
10、PPP协议的工作状态
当用户拨号接入ISP(网络运营商)时,路由器的调制解调器对拨号进行确认,建立物理连接;
PC机箱路由器发送一些列的LCP(链路控制协议)分组(封装成多个PPP帧);
这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP(网络控制协议)给新接入的PC机分配一个临时的IP地址,使PC机成为Internet上的一个主机;通信完毕后,NCP释放网络层连接,收回原来分配出去的IP地址;接着,LCP释放数据链路层连接;
二、广播信道
特别强调局域网技术跨域了数据链路层和物理层,由于局域网中数据链层丰富,因此把局域网放在数据链路层。
局域网拓扑
局域网传输媒体划分
如何让用户合理的使用共享通信媒体资源,在技术上通长采用静态划分和动态划分。
静态划分信道(小型网络):
频分复用;时分复用;波分复用;码分复用;这种划分方法代价太高,不适合局域网。
动态媒体接入控制(多点接入):
随机接入(主要是以太网)
受控接入,如多点线路探询(polling),轮询(不使用了)。
以太网
以太网是局域网当中典型的代表,以太网之前的拓扑结构都是总线型,这样连接既简单又可靠,此时总线上没有其他设备。总线上每一个主机都能检测到B发送的数据。但是只有D的地址和数据帧首部写入的地址一致,所以只有D接收。其余计算机都能检测到这不是发送给他们的数据帧,所以就丢弃这个数据帧。这是一种具有广播特性的总线上实现了一对一通信。但是这种方式不安全。
适配器
适配器俗称为网卡,适配器当中通常装有处理器和储存器,适配器和局域网之间通信通过双绞线或者电缆以串行方式通信,而和计算机之间通信是通过主板上面上的I/O总线以并行的方式进行。
以太网
CSMA/CD协议:
1、CSMA/CD(带冲突检测的载波监听/碰撞检测):
以太网采用传输协议,其有两个特点:1、无连接传输方式,适配器对发送的数据不进行编号,不需要对放发回确认,即以太网进行最大努力交付,是不可靠传输。对有错帧的是否重传由上层决定。但是以太网并不知道这是重传帧,而是当作新帧来传输,又因为总线型传输介质只能在同一时间传输一台计算机的信号,所以采用载波侦听多点接入/碰撞检测。2、采用曼彻斯特编码格式。
2、csma/cd特点:
多点接入:许多计算机以多点接入的方式连接在一根总线上。
载波监听:每一个站在发送数据之前都先要用电子技术检测一下总线时候有其它计算机在发送数据信号,如果有则不发送数据,以免发生碰撞;
碰撞检测:边发送监听,即适配器在发送数据边检查信道上的信号电压的变化,以便判断自己的发送数据时其他的站是否也在发送数据,当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大,当一个站检测到信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞;
3、 CSMA/CD缺点
CSMA/CD协议的以太网在一个站不可能同时发送和接收数据,不能进行全双工通信而只能进行双向交替通信(半双工);
碰撞前:每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能;这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
在发生碰撞时:总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息;
检测到碰撞后:每一个正在发送数据的站,一旦发现总线上出现了碰撞,就立即停止发送,避免浪费网络资源,等待一个随机的时间后再次发送
4、 传播时延对载波监听的影响
即在任何一个2t时间内,都有可能存在碰撞,这段时间称为争用期,在争用期期间最先发送数据帧的站,在发送数据帧后至多经过时间2t(2倍的端到端往返时延)就可知道发送的数据帧是否发生了碰撞,经过争用期这段时间还没有检测到碰撞,就可以肯定不会发生碰撞;
5、 以太网的争用期:
以太网的端到端往返时延2t称为争用期,或碰撞窗口,通常取51.2微秒为争用期的长度;如果网线过长,会导致争用期时间的增加,这也是为什么网线一般不超过100m;
对于10Mb/s的以太网,在争用期可以发送512bit,也就是64 byte;
以太网在发送数据的时候,若前64字节没有冲突,后续也不会发生冲突;
最短有效帧长,如果发生冲突,一定是前64字节,由于一旦发生冲突就立刻停止,所以已发送的数据一定小64字节;
以太网规定了最短有效帧长为64字节,凡事小于字节的帧一定是因为冲突而异常终止的无效帧。
6、 二进制指数类型退避算法
为了解决争用期问题,以太网采用了二进制指数类型退避算法,发送碰撞的站在停止发送数据后,要推迟一个随机事件才能发送数据。
确定基本退避时间,一般是争用期2t;
定义参数k = min(重传次数,10);
从整数集合{0,1,…,2^k-1}中随机取出一个数,记为r,重传所需的时延就是r倍的基本退避时间;
当重传达16次时仍不能成功时就丢弃该帧,并向高层报告
以太网(曼彻斯特编码)
DIX Ethernet V2和IEEE 802.3 的两个标准差别很小。
以太网 是满足DIX Ethernet V2标准的局域网。
以太网与数据链路层的2个子层
为了使数据链路层更好的适应多种局域网标准,802委员会把局域网拆分为:
逻辑链路控制LLC子层(已经被淘汰)
媒体接入控制MAC子层。
与接入到传输媒体有关的内容都放在MAC子层上,而LLC子层与传输媒体无关。
以太网提供的服务
以太网提供服务是不可靠的交付,即最大努力的交付;
当接收站收到的有差错的数据帧时就丢弃此帧,其它什么也不做,差错的纠正由高层来处理;
如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新帧发送。
以太网的星型拓扑结构
物理上是星型,逻辑上是总线型。
为了降低成本,最初由粗的同轴电缆变成细的同轴电缆最后变成无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收;在星形的中心增加了一种可靠性高的设备,为集线器(hub)。
以太网的信道利用率
争用期长度为2t;帧长为L bit,数据发送旅为C b/s,帧的发送时间为L/C = T0 秒。
一个帧从开始发送,经可能发生的碰撞后,将再次重传多次,直到发送成功且信道转为空闲(即再经过t使得信道上没有信号在传播)时为止,是发送一帧所需的平均时间。
定义a = t / T0,是单程端到端时延t与帧发送时间T0的比值。a越小,说明碰撞检测越快,信道利用率高。
当数据率(网速)一定时,以太网的连线长度受到限制,否则t会太长;
以太网的帧长不能太短,否则T0太小,使a太大。
最大利用率s=1/1+a
MAC层
MAC层的硬件地址(MAC地址)
硬件地址 = 物理地址 = MAC地址
MAC地址前3个字节(3*8=24位)是厂家分配的地址字段,后3个字节(24位)是厂家自定义,称为扩展标识符;一个地址块可以产生2^24个地址,这种48位地址称为MAC-48,通用名为EUI-48,这就是MAC地址;MAC地址实际上是每一个站的名字或标识符
Mac帧的格式
6 + 6 + 2 + 46 + 4 =64 byte,这就是为什么IP数据报的最短长度为46字节。
前8个字节的作用是实现比特同步,第一个字段共7个字节,称为前同步码,作用是实现快速MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息是MAC帧。
适配器检查MAC地址
适配器从网络上每收到一个MAC帧就要用硬件检查MAC帧中的MAC地址:
如果是发往本站的帧就收下,然后进行其它处理;否则丢弃。
发往本站的帧包括:
单播帧:一对一
广播帧:一对全体
多播帧:一对多
无效的MAC帧
帧的长度不是整数个字节;
用收到的帧检验序列FCS查出有错误;
数据字段的长度不在46-1518字节内;
对于检查出来的无效MAC帧简单的丢弃。
帧间最小间隔为9.6微秒。相当于96bit的发送时间。一个站在检测到总线空闲时,还需要等待9.6微秒后才能再次发送数据,这样做是为了使刚刚收到的数据帧的站接收缓存来得及清理,做好接收下一帧的准备。
二层设备
集线器
使用电子元件模拟实际电缆线,因此整个系统向传统以太网一样运行
在逻辑上的总线型,使用CSMA/CD协议
多接口转发器,工作在物理层。
由于集线器使用了大规模集成电路芯片,所以可靠性更高;
交换机
随着网桥的接口的增加, 后来网桥和集线器合并了,计算机可以直接和交换机连接,这就是交换机。
交换机就是网桥和集线器的合并升级版,能全双工,安全通信。端口带宽独享;
特点:安全;基于MAC地址转发;通过学习构建MAC地址表。
扩展以太网
距离的扩展
主机使用光纤和一对光纤调制解调器连接到集线器。
数量的扩展
集线器集联:使网络中计算机增加,变成一个大的冲突域,会造成效率降低。
数据链路层扩展
使用网桥
网桥工作在数据链路层,他根据MAC帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是现检查此帧的目的MAC地址,然后再确定将该帧转发到对应的接口
透明网桥(transparent )
透明指局域网上的站点不知道所发送的帧将经过几个网桥,因为网桥对于各站点是看不见的。
透明网桥是一种即插即用的设备,标准是IEEE 802.1D。
透明网桥使用了生成树算法。避免产生转发的帧在网络中不停的转圈。
快速以太网
100Base-T以太网
速率在100Mb/s以上的以太网称为高速以太网。
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议。
以太网中3种常见的传输介质
100Base-TX:使用2对UTP 5类线或屏蔽双绞线STP。
100Base-FX:使用2对光纤。
100Base-T4:使用4对UTP 3类线或5类线。
100BASE-TX、100BASE-TX支持全双工模式。当100Mbps端口工作在全双工模式下端口带宽为200Mbps。
100BAST-TX中:100表示传输速率为100Mbit/s,BAST表示采用基带传输;T表示介质,2对5类UTP,当为F时表示光纤。
可以实现全双工通信(注意,如果交换机上某一路连接着集线器(半双工),则这一路不能实现全双工)而无冲突,此时不使用CSMA/CD协议。
MAC帧格式不变,仍是802.3 标准。
最短帧长度不变,但是一个网段的最大电缆长度减少到100m。
帧间间隔从9.6微秒缩小到0.96微秒。
吉比特Gbit以太网
允许在1 Gb/s下全双工或半双工工作方式。
使用802.3标准的帧格式。
在半双工下使用CSMA/CD协议。
与10Base-T和100Base-T技术向后兼容。
当吉比特以太网在全双工方式时,不用载波延伸和分组冲突。
1000Base-X以太网的物理层(基于光纤通道):
1000Base-SX:SX表示短波长,传输距离上275m或550m。
1000Base-LX:LX表示长波长,传输距离上550m或5000m。
10Gbit/s以太网
MAC帧格式不变,仍是802.3 标准。
使用光纤而不是铜线。
只能工作在全双工方式,没有争用问题。
它的出现使工作范围从局域网扩大到城域网和广域网,实现了端到端的以太网传输。
优点是:技术成熟;互操作性好;广域网中使用以太网便宜;统一的帧格式
以太网的发展
传输距离:光纤》同轴电缆》双绞线
oc(光学载波):是一个有很多确定水平的SONET光纤网络中的一组信号宽带,他通常表示为OC-c,其中n是一个倍数因子,表示基带速率51.84Mbit/s.
10mb/s到10gmb/s 发展说明计算机网络
可拓展性;
灵活性(多种传输媒体,全/半双工,共享/交换);
易于安装;
稳健性好。