二、物理层和数据链路层

ref:http://www.cyc2018.xyz

物理层

通信方式

根据信息在传输线上的传送方向,分为以下三种通信方式:

  • 单工通信:单向传输
  • 半双工通信:双向交替传输
  • 全双工通信:双向同时传输

带通调制

模拟信号是连续的信号,数字信号是离散的信号。带通调制把数字信号转换为模拟信号。

img

数据链路层

元素:
1
定义:
2

功能:

  1. 为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。(有连接一定有确认)
  2. 链路管理。连接的建立、维持、释放。(面向连接)
  3. 组帧。
  4. 流量控制。发送的快慢。
  5. 差错控制(帧错、位错)

3

基本问题

1. 封装成帧

将网络层传下来的一段数据前后添加首部和尾部,用于标记帧的开始和结束。作用:

  • 帧定界:确定帧的边界。
  • 帧同步:接收方能从接受的二进制比特流中区分帧的开始和结束。

IP数据报的最大传送单元MTU。不同协议不同。MTU只是数据部分,帧长包括首部和尾部。

img

2. 透明传输

在传送比特流中可以传任意比特组合而不引起帧边界的判断错误。也就是帧的控制信息和数据信息没有歧义,出现一样的必须采用方法取消歧义。

通过组帧方法实现。

组帧的方法:

主要用零比特填充法和违规编码法

  • 字符计数法:第一个计算要传的位数。问题:第一个错就全错。
  • 字符填充法:SOH开始,EOT结束。8bits。问题:数据出现定界符前加上转义字符ESC。复杂,不兼容。
  • 零比特填充法:SOH和EOT都是01111110,问题:在发送端的数据部分,每遇到5个1就添一个0 ,接收端每5个1去掉一个0。
  • 违规编码法:曼彻斯特编码。 前高后低是1,前低后高是0,出现高高、低低时就是定界帧的起始和终止。
    1

3. 差错检测

差错是由噪声引起的。

噪声两类:随机热噪声(全局性,提高信噪比),冲击噪声(局部,差错检测)。

差错两类:帧错,位错/比特错(差错控制=检错编码+纠错编码)

链路层为什么需要差错控制:在信息传输过程中,如果出现错误,可以及时将错误的包丢弃,以免继续传送,浪费资源。
1

差错控制:

  • 检错编码:

    • 奇偶校验码:n-1个信息元和1个校验元。如果是奇校验,保证1的个数时奇数,偶校验同理。检错能力50%。
    • 循环冗余码CRC :要传的数据/生成多项式 = 商…余数。最终传的数据:要传的数据+余数(也叫FCS帧检验序列/冗余码)。接收端:接收的数据/生成多项式 = 商…余数,余数是0,则数据没错。
      4
      1
  • 纠错编码:海明码。只能发现双比特错,纠正单比特错。原理:动一发而牵全身
    5
    1
    1
    1
    1
    冗余编码:数据发送时,附加了一定的冗余位,遵循一定规则。

流量控制和可靠传输

1、链路层流量控制和传输层流量控制的区别:

链路层是点对点,相邻节点之间的。接收方收不下,不回复确认。窗口大小在发送过程中是固定的。

传输层是端到端:两个主机之间的。接收端给发送端一个窗口公告。窗口大小在发送过程中不固定的。

2、流量控制协议

  • 停止等待协议:发送窗口和接收窗口都为1。序号可以用1bit表示。有差错情况:
    • 接收端出错或数据帧丢失。超时重传
    • 确认帧丢失。超时重传
    • 确认帧迟到。发送端都丢弃重复确认帧
  • 后退N帧协议GBN:发送窗口最大为2^n - 1,接收窗口1。增加序号范围,增加缓存大小。可以累计确认。
    • 上层调用:上层发送数据时,发送方先检查发送窗口是否已满。若未满,则产生一个帧并将其发送。若已满,发送方将数据返回上层,表示上层窗口已满。(实际实现,发送方可以缓存这些数据,等窗口不满时再发)
    • 累计确认。对于接收方的ACK n,指的是n帧和之前的都收到了。其他帧都会丢弃掉。
    • 超时:若出现丢失和时延过长,发送方重传所有已发送但未收到确认的帧。
    • 窗口的大小w应该满足 1<=w<=2^n - 1,其中n是帧编号需要的比特数。窗口太大,接收方会无法确认新帧和旧帧。
  • 选择重传协议SR:发送窗口N,接收窗口N,N<=2^(n-1)。加大接收窗口,设置接收缓存,缓存乱序到达的帧。
    • 上层调用:和GBN一样。
    • 确认:若收到ACK,假如该帧序号在窗口内,SR发送方标记该帧为已接收。若该帧序号为发送窗口下界(最左的第一个窗口),则窗口前移到最小未确认序号处。若窗口移动了,则发送窗口内所有未发生帧。
    • 超时:每一个帧都有自己的定时器,一次超时事件后,只重传一个帧。
    • 接收策略:接收方对失序的帧会先缓存,并发送该帧确认(收到谁确认谁)。直到最左边的帧都收到后,才将一批帧交付给上层,并滑动窗口。如果收到序号外的帧(小于窗口下界的帧),就返回一个确认。

1

信道分类

1. 广播信道

一对多通信,所有主机共享通信介质。早期的总线以太网、无限局域网。常用于局域网。

所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。

主要有两种控制方法进行协调,一个是使用信道复用技术,一是使用 CSMA/CD 协议。

拓扑结构:总线型、星型(逻辑总线型)。

2. 点对点信道

一对一通信。

因为不会发生碰撞,因此也比较简单,使用 PPP 协议进行控制。常用于广域网。

3. 介质访问控制

采用一定的措施,使得两对节点之间的通信不会互相干扰

1

信道复用技术

  • 频分复用FDM
  • 时分复用TDM
  • 统计时分复用STDM
  • 波分复用WDM
  • 码分复用CDM

CSMA/CD 协议

基本原理是:所有节点都共享网络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送。

CSMA/CD 表示载波监听多点接入 / 碰撞检测。

  • 多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总线上。
  • 载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
  • 碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。

记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, …, (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。

img

PPP 协议

互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。

img

PPP 的帧格式:

  • F 字段为帧的定界符
  • A 和 C 字段暂时没有意义
  • FCS 字段是使用 CRC 的检验序列
  • 信息部分的长度不超过 1500
img

MAC 地址

MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。

一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。

局域网

局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。

主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。

可以按照网络拓扑结构对局域网进行分类:

img

以太网

以太网是一种星型拓扑结构局域网。

早期使用集线器进行连接,集线器是一种物理层设备, 作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞。

目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转发。

以太网帧格式:

  • 类型 :标记上层使用的协议;
  • 数据 :长度在 46-1500 之间,如果太小则需要填充;
  • FCS :帧检验序列,使用的是 CRC 检验方法;

img

交换机

交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。

正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。

下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。

img

虚拟局域网

虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。

例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。

使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。

img

猜你喜欢

转载自blog.csdn.net/qq_35749455/article/details/111874852