计算机网络-数据链路层

网络层

一、数据链路

数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

计算机网络-数据链路层_第1张图片
数据链路层传输的是帧

封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。

首部和尾部的一个重要作用就是进行帧定界。

SOH 装在帧中的数据部分 EOT

如上的结构,通过插入转义字符 ESC,(十六进制 : 1B

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate),误码率与信噪比有很大的关系。

为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施,在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。

在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
循环冗余检验 CRC 和帧检验序列 FCS并不等同。
CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。

二、PPP(点对点协议)

三个组成部分:

  • 一个将 IP 数据报封装到串行链路的方法。
  • 链路控制协议 LCP (Link Control Protocol)。
  • 网络控制协议 NCP (Network Control Protocol)。

PPP 协议用在 SONET/SDH 链路时,是使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。

在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除

计算机网络-数据链路层_第2张图片
用户到 ISP 的链路使用 PPP 协议
  • 标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
  • 地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
  • 控制字段 C 通常置为 0x03
  • PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
计算机网络-数据链路层_第3张图片
PPP 协议的帧格式

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

为了使数据链路层能更好地适应多种局域网标准,802 委员会就将局域网的数据链路层拆成两个子层:
逻辑链路控制 LLC (Logical Link Control)子层
媒体接入控制 MAC (Medium Access Control)子层。
与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的

计算机网络-数据链路层_第4张图片

CSMA/CD 协议
采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。 
以太网对发送的数据帧不进行编号,也不要求对方发回确认。
这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。 
  • 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
  • 当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
  • 如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
曼彻斯特(Manchester)编码

CSMA/CD 表示 Carrier Sense Multiple Access with Collision Detection(载波监听多点接入碰撞检测)

使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)

  • “多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
  • “载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
  • “碰撞检测”就是计算机边发送数据 边检测信道上的 信号电压大小。(冲突检测)每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
计算机网络-数据链路层_第5张图片
传播时延对载波监听的影响
  • 最先发送数据帧的站,在发送数据帧后至多经过时间 2t (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
  • 以太网的端到端往返时延 2t 称为争用期,或碰撞窗口
  • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
计算机网络-数据链路层_第6张图片
image.png
以太网取 51.2us 为争用期的长度。
对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节。
以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。   

以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。

计算机网络-数据链路层_第7张图片
image.png

IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)。地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。一个地址块可以生成224个不同的地址。这种 48 位地址称为 MAC-48,它的通用名称是EUI-48。“MAC地址”实际上就是适配器地址或适配器标识符EUI-48。

适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC帧 中的 MAC 地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。

“发往本站的帧”包括以下三种帧:

  • 单播(unicast)帧(一对一)
  • 广播(broadcast)帧(一对全体)
  • 多播(multicast)帧(一对多)
无效的MAC帧
  • 数据字段的长度与长度字段的值不一致;
  • 帧的长度不是整数个字节;
  • 用收到的帧检验序列 FCS 查出有差错;
  • 数据字段的长度不在 46 ~ 1500 字节之间。
  • 有效的 MAC 帧长度为 64 ~ 1518 字节之间。
  • 对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。
  • 帧间最小间隔为 9.6 us,相当于 96 bit 的发送时间。
  • 一个站在检测到总线开始空闲后,还要等待 9.6 us 才能再次发送数据。
  • 这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
计算机网络-数据链路层_第8张图片
image.png

在数据链路层扩展局域网是使用网桥。网桥工作在数据链路层,它根据 MAC 帧 的目的地址对收到的帧进行转发。

网桥使各网段成为隔离开的碰撞域

计算机网络-数据链路层_第9张图片
image.png
计算机网络-数据链路层_第10张图片
image.png
计算机网络-数据链路层_第11张图片
image.png

透明网桥使用了生成树算法 避免产生转发的帧在网络中不断地兜圈子.

交换机

计算机网络-数据链路层_第12张图片
image.png
  • 以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式
  • 交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据。
  • 以太网交换机由于使用了专用的交换结构芯片,其交换速率就较高。
优点:
  • 对于普通 10 Mb/s 的共享式以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总带宽(10 Mb/s)的 N 分之一。
  • 使用以太网交换机时,虽然在每个接口到主机的带宽还是 10 Mb/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 N 对接口的交换机的总容量为 N*10 Mb/s。这正是交换机的最大优点。

利用以太网交换机可以很方便地�实现虚拟局域网 ,虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。

计算机网络-数据链路层_第13张图片
image.png

虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息(即“广播风暴”)而引起性能恶化

计算机网络-数据链路层_第14张图片
image.png

10 吉比特以太网只工作在全双工方式,因此没有争用问题,也不使用 CSMA/CD 协议

你可能感兴趣的:(计算机网络-数据链路层)