三、计算机网络之数据链路层

数据链路层使用的信道

  • 点对点信道:这种信道使用一对一的点对点通信方式
  • 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。

一、使用点对点信道的数据链路层

1.1. 数据链路和帧

  • 链路(link):是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
    • 一条链路只是一条通路的一个组成部分。
  • 数据链路(data link):除了物理线路外,还必须有通信协议来控制这些数据的传输。若把视线这些协议的硬件和软件加到链路上,就构成了数据链路。
    • 现在最常用的方法是使用适配器(即网卡)来视线这些协议的硬件和软件。
    • 一般的适配器都包括了数据链路层和物理层这两层的功能。
  • :数据链路层的分组称为帧,数据链路层传输的是帧。

1.2. 3个基本问题

  • 1.封装成帧
    • **封装成帧(framing)**就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
    • 首部和尾部的一个重要作用就是进行帧定界
    • MTU:数据链路层的帧长,一般数据链路层的帧长是要小于等于MTU的
    • 当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符
    • 控制字符SOH(start Of Header)放在一个帧的最前面,表示帧的首部开始。
    • 控制字符EOT(start Of Transmission)表示帧的结束
  • 2.透明传输
    • 问题:如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地找到帧的边界
    • 解决方法:字节填充(byte stuffing)字符填充(character stuffing)
    • 发送端的数据链路层在数据中出现控制字符SOHEOT的前面插入一个转义字符ESC(其十六进制编码是1B)
    • 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
    • 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
  • 3.差错控制
    • 在传输过程中可能也会产生**比特差错:**1可能会编程0而0也可能变成1
    • 在一段时间内,传输错误地比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
    • 误码率与信噪比有很大的关系,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
    • 循环荣偶遇检测的原理
      • 在数据链路层传送的帧中,广泛使用了循环冗余检测CRC的检错技术。
      • 在发送端,先把数据划分为组。假定每组k个比特。
      • 假设待传送的一组数据M=101001(现在k=6)。我们在M的后面再添加供差错检测用的n位冗余码一起发送。
    • 冗余码计算
      • 用二进制的模2运算进行2^n乘M的运算,这相当于在M后面添加n个0.
      • 得到的(k+n)位的数除以事先选定好的长度为(n+1)位的除数P,得出是Q二余数是R,余数R比除数P少1位,即R是n位。
      • 将余数R作为冗余码拼接在数据M后面发送出去。
    • 冗余码的计算实例
      • 现在k = 6, M= 101001
      • 设n = 3,除数P=1101
      • 被除数是2^M=101001000。
      • 模2运算的结果是:Q=110101,
        • 余数R = 001
      • 把余数R作为冗余码添加在数据M的后面发送出去。发送的数据时:2^M + R
      • 现在的数据:101001001,供(k+n)位
    • 接受端对收到的每一帧进行CRC检测
      • 1.若得到的余数R = 0,则判定这个帧没有差错,就接受(accept)
      • 2.若余数R ≠ 0,则判定这个帧有差错,就丢弃
      • 但这种检测方法并不能确定究竟是哪一个或那几个比特出现了差错。
      • 只要经过严格的挑选,并使用位数足够多的除数P,那么出现检测不到的差错的概率就很小很小
    • 应当注意
      • 仅用循环冗余检测CRC差错检测技术只能做到无差错接受(accept)
      • 无差错接受是指::凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于1的概率任务这些帧在传输过程中没有产生差错
      • 也就是说:凡是接受数据链路层接受的帧都没有阐述差错(由差错的帧就丢弃而不接受)
      • 要做到可靠传输(即发送什么就收到什么)就必须再加上确认和重传机制
      • 应当明确,无比特差错无传输差错是不同的概念
      • 在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输

二、点对点协议PPP

2.1. PPP协议的特点

  • 对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)
  • 例如用户使用拨号电话线接入互联网时,用户计算机和ISP进行通信时所使用的的数据链路层协议就是PPP协议。
  • PPP协议在1994年就已经成为互联网的正式标准
  • PPP协议应满足的需求
    • 简单—— 这是首要的要求
    • 封装成帧—— 必须固定特殊的字符作为帧定界符
    • 透明性—— 必须保证数据传输的透明性
    • 多种网络层协议—— 能够在同一条物理链路上同时支持多种网络层协议
    • 多种类型链路—— 能够在多种类型的链路上运行
    • 差错检测—— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧
    • 检测连接状态—— 能够及时自动检测出链路是否处于正常工作状态
    • 最大传送单元—— 必须对每一种类型的点对点链路设置最大传送单元MTU的默认标准值,促进各种实现的互操作性
    • 网络层地址协商—— 必须提供一种机制使通信的两个网络层实体能够通过协商知道后能够配置彼此的网络层地址。
    • 数据压缩协商—— 必须提供一种方法来协商使用数据压缩算法
  • PPP协议不需要的功能
    • 纠错
    • 流量控制
    • 序号
    • 多点线路
    • 半双工或单工链路
  • PPP协议的组成
    • 一个将IP数据报封装到串行链路的方法
    • 链路控制协议LCP(Link Control Protocol)
    • 网络控制协议NCP(Network Control Protocol)

2.2. PPP协议的帧格式

  • PPP帧的首部和尾部分别为4个字段和2个字段
    • 首部
      • 标志字段F = 0x7E (符号0x表示后面的字符是用十六进制表示。十六进制的7E的二进制表示是01111110)(1字节)
      • 地址字段A只置为0XFF。地址字段实际上并不起作用。(1字节)
      • 控制字段C通常置为0x03(1字节)
      • PPP有一个2个字节的协议字段。其值
        • 若为0x0021,则信息字段就是IP数据报
        • 若为0x8021,则信息字段就是网络控制数据
        • 若为0xC021,则信息字段是PPP链路控制数据
        • 若为0xC023,则信息字段是鉴别数据
    • 中间的IP数据报(信息部分),不超过1500字节
    • 尾部
      • FSC两个字节(1字节)
      • 标志字符F = 0x7E(1字节)

2.3. PPP协议的工作状态

  • 透明传输问题
    • 当PPP用在同步传输链路时,协议规定采用硬件来完成比特填充(和HDLC的做法一样)
    • 当PPP用在异步传输时,就使用一种特殊的字符填充法
    • 字符填充
      • 将信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D,0x5E)。
      • 若信息字段中出现一个0x7D的字节,则将其转变为2字节序列(0x7D,0x5D)
      • 若信息字段中出现的ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。

三、使用广播信道的数据链路层

3.1. 局域网的数据链路层

  • 局域网最主要的特点是:
    • 网络为一个单位所拥有
    • 地理范围和站点数目均有限。
  • 局域网具有如下主要优点
    • 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
    • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
    • 提高了系统的可靠性、可用性和残用性
  • 局域网拓扑结构
    • 星形网(目前主要使用的方式)
    • 总线网(已弃用)
    • 环形网(已弃用)
  • 媒体共享技术
    • 静态划分信道
      • 频分复用
      • 时分复用
      • 波分复用
      • 码分复用
    • 动态媒体接入控制(多点接入)
      • 随机接入
      • 受控接入,如多点线路探询(polling),或轮询。
  • 以太网的两个标准
    • DIX Ethernet V2是世界上第一个局域网产品(以太网)的规约
    • IEEE802.3是第一个IEEE的以太网标准
      • IEEE802委员会将局域网的数据链路层拆成两个子层:
        • 逻辑链路控制LLC(Logical Link Control)子层(基本不用)
        • 媒体接入控制MAC(MEdium Access Control)子层
  • 适配器的作用
    • 网络接口板又称为通信适配器(adapter)或网络接口卡NIC(Network Interface Card),或网卡
    • 适配器的重要功能:
      • 进行串行/并行转换
      • 对数据进行缓存
      • 在计算机的操作系统安装设备驱动程序
      • 实现以太网协议。

3.2. CSMA/CD协议

  • 最初的以太网是将许多计算机都连接到一根总线上。
  • 为了通信的简便,以太网采用了两种重要的措施
    • 1.采用灵活的无连接的工作方式
      • 不必先建立连接就可以直接发送数据
      • 对发送的数据帧不进行编号,也不要求对方发回确认
    • 2.以太网发送的数据都**使用曼彻斯特(MAnchester)编码
  • CSMA/CD含义:载波监听多点接入/碰撞检测
    • 多点接入表示许多计算机以多点接入的方式连接在一根总线上
    • 载波监听是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,一面发生碰撞
    • 碰撞检测就是计算机边发送数据边检测信道上的信号电压大小
  • CSMA/CD重要特性:使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)
  • 二进制指数类型退避算法
    • 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能发送数据。
      • 基本退避时间取为争用期2τ
      • 从整数集合[0,1,……,(2^k-1))]中随机地取出一个数,即为r0.重传所需的时延就是r倍的基本退避时间。
      • 参数k按下面的公式计算:
      • K = Min[重传次数,10]
      • 当k<=10,参数k等于重传次数
      • 当重传达16次扔不能成功即丢弃该帧,并向高层报告。
  • 最短有效帧长
    • 如果发生冲突,就一定是在发送的前64字节之内
    • 由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于64字节
    • 以太网规定了最短有效帧长为64字节,凡长度小于64字节的帧都是由于冲突而异常终止的无效帧
  • 强化碰撞
    • 当发送数据的站一旦发现了碰撞时:
      • 立即停止发送数据
      • 再继续发送若干比特的人为干扰信号(jamming signal),以便让所用用户都知道现在已经发生了碰撞。
  • CSMA/CD协议的要点
    • 先听再发
    • 边听边法
    • 冲突停止
    • 延迟重发

3.3. 以太网的信道利用率

  • 多个站在以太网上同时工作就可能会发生碰撞
  • 当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的的信道损失后,以太网总的信道利用率并不能达到100%
  • 要提高以太网的信道利用率,就必须减小τ与T0(TO:发送帧所需要的的时间)之比。
  • 在以太网定义了参数α,他是以太网单程端到端实验τ与帧的发送时间T0之比:
  • α = τ / T0
  • α——>0,表示信道利用率很高
  • α越大,表明争用期所占的比例增大,信道利用率低。
  • 为提高利用率,以太网的参数α的值应当尽可能小些。
  • 对以太网参数α的要求是:
    • 当数据率一定时,以太网的连线的长度受到限制(100m),否则τ的数值会太大
    • 以太网的帧不能太短,否则T0的值会太小,使α的值太大。
  • 信道利用率达到最大值Smax
    • Smax= T0(T0 + τ) = 1/(1+α)

3.4. 以太网的MAC层

  • MAC层的硬件地址
    • 在局域网中,硬件地址又称为物理地址,或MAC地址
    • 48位MAC地址
      • 前24位由IEEE的注册管理机构RA负责向厂家分配,作为组织唯一标识符
      • 后24位由厂家自行指派,称为扩展唯一标识符
  • MAC帧的格式
  • 目的地址:6字节
  • 源地址:6字节
  • 类型:2字节
  • IP数据报:46——1500字节
  • FSC(校验码):4字节

四、扩展的以太网

4.1. 在物理层扩展以太网

  • 使用光纤扩展
  • 使用集线器扩展

4.2. 在数据链路层扩展以太网

  • 扩展以太网更常用的方法是在数据链路层进行
  • 早期使用网桥,现在使用以太网交换机。
  • 网桥
    • 工作在数据链路层。他根据MAC帧的目的地址对收到的帧进行转发和过滤。
    • 当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或把他丢弃
  • 交换机交换机集线器常称为以太网交换机(switch)或第二层交换机,强调这种交换机工作在数据链路层
    • 以太网交换机实质上就是一个多接口的网桥(通常都有十几个或更多的接口)。
    • 每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式
    • 以太网交换机具有并行性(能同时联通多对接口,使多对主机能同时通信)
    • 相互通信的主机都是独占传输媒体,无碰撞地传输数据
    • 以太网交换机的接口有存储器,能在输出端口繁忙时把到来的帧进行缓存。
    • 以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。
    • 以太网交换机使用了专门的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
  • 以太网交换机的优点
    • 用户独享带宽,增加了总容量
    • 从共享总线以太网转到交换机以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动。
    • 以太网交换机一般都具有多种速率的接口,方便了各种不同的用户
  • 以太网交换机的交换方式
    • 存储转发方式
      • 把这个数据帧先缓存后再进行处理。
    • 直通(cut-through)方式
      • 接受数据帧的同时就立即按数据帧的目的MAC地址决定该帧的转发接口,因而提高了帧的转发速度。
      • 缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站
  • 以太网交换机的自学习功能
    • 以太网交换机运行自学习算法自动维护交换表
    • 开始时,以太网交换机里面的交换表是空的。
    • 按照自学习算法处理收到的帧和建立交换表
      • A先向B发送一帧,从接口1进入交换机。
      • 交换机收到帧后,先查找交换表,没有查到应从哪个接口转发这个帧
      • 交换机把这个帧的源地址A和接口1写入交换表中,并向除接口1以外的所有接口广播这个帧
      • C和D将丢弃这个帧,因为目的地址不对。只B才收下这个目的地址正确的帧。这也称为过滤。
      • 从新写入交换表(A,1)可以看出,以后不管从哪一个接口收到帧,只要其目的地址是A,就应当把收到的帧从接口1发送出去。
      • B通过接口3向A发送一帧。
      • 交换机查找交换表,发现交换表中的MAC地址有A。表明要发送给A的帧(即目的地址为A的帧)应从接口1转发。于是就把这个帧传送到接口1转发给A。显然,现在已经没有必要再广播收到的帧。
      • 交换表这时新增加的项目(B,3),表明今后如有发送给B的帧,就应当从接口3转发出去。
      • 经过一段时间后,只要主机C和D也向其他主机发送帧,以太网交换机的交换表就回吧转发到C或D应当经过的接口号(2或4)写入到交换表中。
      • 考虑到可能有时要在交换机的接口更换主机,或者主机要更换网络适配器,这就需要更改交换表中的项目,为此在交换表中的每个项目都设有一定的有效时间过期的项目就自动被删除
  • 交换机自学习和转发帧的步骤
    • 1.交换机收到一帧后先进行自学习。查找交换表中与收到帧的源地址有无相匹配的项目
      • 如果没有,就在交换表中增加一个项目(源地址、进入的接口、有效时间)
      • 如果有,则把原有的项目进行更新(接入的接口或有效时间)
    • 2.转发帧。查找交换表中与收到帧的目的地址有无相匹配的项目
      • 如果没有,则向所有其他接口(进入的接口除外)转发。
      • 如果有,则按交换表中给出的接口进行转发。
      • 若交换表中给出的接口就是该帧进入交换机的接口,则应丢弃这个帧(因为这时不需要经过交换机进行转发)
  • 交换机使用了生成树协议
    • IEEE 802.1D标准制定了一个生成树协议STP(Span宁 Tree Prtocol)
    • 其要点是:不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而笑出了兜圈子现象。

4.3.虚拟局域网

  • 利用以太网交换机可以很放标地实现虚拟局域网VLAN(Virtual LAN)
  • 虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个VLAN
  • 虚拟局域网其实只是局域网给用户提供的一种服务,而不是一种新型局域网。
  • 由于虚拟局域网是用户和网络资源的逻辑组合,因此可按照需要将有关设备和资源非常方便地重新组合,使用户从不同的服务器或数据库中存取所需的资源。

五、高速以太网

5.1.100BASE-T以太网

  • 速率达到或超过100Mbit/s的以太网称为告诉以太网
  • 100BASE-T在双绞线上传送100Mbit/s系带信号的星型拓扑以太网,人使用IEEE802.3的CSMA/CD协议。

5.2.吉比特以太网

  • 允许在1Gbit/s下全双工和半双工两种方式工作。
  • 使用IEEE802.3协议规定的帧格式
  • 在半双工下使用CSMA/CD协议,全双工方式不适用CSMA/CD协议
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值