0%

划分子网和构造超网

划分子网

分类IP地址存在的问题

  • IP地址设计初衷:希望网络部分能唯一明确确定一个物理网络
  • 早期的、分类的IP地址设计不够合理
    • IP地址的利用率低
      • 一个A类网络可包含的主机数:\(2^{24}– 2= 16,777,214\)
      • 一个B类网络可包含的主机数:\(2^{16} – 2= 65534\)
      • 一个C类网络可包含的主机数:\(2^8 – 2= 254\)
    • 无法根据网络规模灵活选择网络地址
      • 4个结点的网络使用一个完整的C类地址,浪费252个IP地址
      • 1个10BaseT以太网最大结点数1024,得用一个B类地址,浪费6万多个IP地址
    • 分配的是网络号而不是40亿个独立的IP地址,耗尽的速度快
      • 126个 \((2^7 – 2)\)A类网络号分配完,就用尽了一半的IP地址,20亿
      • 16,383个\((2^{14} – 1)\)B类网络号分配完,就用尽了1/4的IP地址,10亿
    • 网络号和主机号位数固定,导致网络规模不可调,造成分配的不合理
    • 每个物理网络分配一个网络号使得路由表过大
      • 为每一个网络号增加一条目
      • 大转发表增加路由器开销,增大路由查找延迟,减低路由器性能
    • 使用不灵活
      • 同一组织在不同地方开通新的物理网络,需要申请新的网络地址
      • 不易于扩展、管理

基本思路

  • 二级的IP地址变成为三级:IP地址中又增加一个“子网号字段”
    • 从主机号借用若干个位作为子网号 subnet-id,不改变原来的网络号net-id
    • IP地址 = 网络号 + 子网号 + 主机号
  • 实现多个物理网络共享一个网络号
    • 减少分配网络号总数
    • 路由聚合 (aggregation)
  • 子网应当离得很近,从因特网其余部分看来,它们是一个单一网络,仅一个网络号
    • 划分子网纯属一个机构内部的事情,对外仍表现为未划分子网的网络
    • IP 数据报从其它网络到子网内某主机的路由
      • 仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器
      • 然后,此路由器再按目的网络号 net-id 和子网号 subnet-id 找到目的子网
      • 最后将 IP 数据报直接交付目的主机
  • 子网掩码
    • 子网的网络地址 = 三级IP地址 AND 子网掩码
    • 默认子网掩码:为便于路由器处理,未划分子网的网络也使用子网掩码 (即默认子网掩码)
      • A类地址:255.0.0.0(8位网络号)
      • B类地址:255.255.0.0(16位网络号)
      • C类地址:255.255.255.0(24位网络号)
  • 划分子网的借位原则
    • RFC950规定子网号不能为全1和全0,因此至少借2位
    • 最多借位数(至少留2位主机号)
      • A类地址:22位
      • B类地址:14位
      • C类地址:6位
  • 路由器FIB表的变化
    • 在不划分子网的两级 IP 地址下
      • 可从 IP 地址得出网络地址
    • 在划分子网的情况下
      • 从 IP 地址不能唯一地得出网络地址来,网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息
      • 在FIB表中添加子网掩码

划分子网情况下路由器转发分组的算法

  1. 从数据报的首部提取目的主机的 IP 地址 D
  2. 本结点的各个网络的子网掩码与D逐位相与,看是否与相应的网络地址匹配:匹配,则将分组直接交付;否则是间接交付,执行 3
  3. 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 4
  4. 对路由表中的每一行的子网掩码和 D 逐位相与,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行 5
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 6
  6. 报告转发分组出错(ICMP,目的不可达)

例子

image-20231028200243639
  1. 主机H1检查目标地址 128.30.33.138是否连接在本网络上
    • 是,则直接交付
    • 否,交由路由器R1处理
  2. 将目的地址与自己的子网掩码逐位相与
    • 128.30.33.128 AND 255.255.255.128 = 128.30.33.128
    • 128.30.33.128 不在 128.30.33.0 子网中,因此交由路由器 R1处理
  3. 路由器R1查询跳转表
    • 发现目标地址128.30.33.128 下一跳为接口1,直接交付

子网划分的特点

  • 本质上,允许将一些类别的地址在多个子网内分拆
  • 实现多个物理网络共用一个网络地址
    • 减少地址空间的浪费
  • 互联网络不同部分看到不同的路由,远端只看到单一网络
    • 实现路由聚合
  • 子网划分在一个(逻辑)网络内部进行
    • 便于组织内部网络扩展与管理

构造超网

地址空间的效率和可扩展性问题

某公司网络由4064台主机构成

  • 方案一:申请一个B类地址?
    • 一个B类地址空间可容纳65534个主机,使用率仅4064/65534 = 6.2%
    • 子网划分?依然未解决地址浪费问题
  • 方案二:分配16个C类地址?
    • 保证了地址利用率
    • 路由器超量存储
      • 若一个站点分配了16个C类网络号,则每个主干路由器需要增加16条记录才能将分组传送到该站点,尽管路径是相同的
    • 如果16个C类地址连续分配
      • 所有地址的高20位是相同的
      • 将20位作为网络号,路由表中仅需要一个路由表项

无分类域间路由 CIDR

  • 无分类域间路由 CIDR (Classless Inter-Domain Routing)
    • 打破地址分类的严格界线,网络号为可变长---更有效地分配 IPv4 地址空间
    • 仅仅使用转发表中的一条记录来指示如何到达多个不同网络 ---- 路由聚合
  • 从(使用子网掩码)三级编址 又回到了无分类的两级编址
    • IP地址 = 网络前缀(network prefix) + 主机号
      • 使用各种长度的network-prefix来代替分类地址中的网络号和子网号
    • 使用“斜线记法”(slash notation),又称为CIDR记法
      • 即在 IP 地址后面加上一个斜线“/”,写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)
    • 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”

CIDR地址块

  • 193.14.32.0/20 表示的地址块共有 212 个地址
    • 网络前缀20位,主机号 12 位
    • 地址块范围:193.14.32.0 ~ 193.14.47.255

路由聚合,构成超网

  • 路由聚合

    • CIDR 地址块可以表示很多地址,这种地址的聚合称为路由聚合

    • 使得路由表中的一个条目可以表示很多个(例如上千个)原来传统分类地址的路由

  • 构成超网(supernetting)

    • 如:前缀长度1315的CIDR地址块可能包含了多个B类或C类地址;前缀长度1723 位的 CIDR 地址块都包含了多个 C 类地址
      • 这些地址合起来就构成了超网
    • 网络前缀越短,其地址块所包含的地址数就越多;而在三级结构的IP地址中,划分子网是使网络前缀变长
      • 超网是将多个网络聚合:使属于一个自治系统(AS)多个网络地址映射到一个地址
      • 子网是将一个(逻辑)网络拆分:使多个物理网络共享一个网络地址

最长前缀匹配

  • 使用 CIDR ,在查找路由表时可能会得到不止一个匹配结果
  • 解决方案:最长前缀匹配(longest-prefix matching)
    • 又称为最长匹配或最佳匹配
    • 从匹配结果中选择具有最长网络前缀的路由
      • 网络前缀越长,其地址块就越小,因而路由就越具体(more specific)

最长前缀匹配的路由查找效率

  • 最简单的查找算法:对所有可能的前缀进行循环查找
    • 对于目的地址D,对每个可能的前缀长度M (1~32, 32为特定主机路由 )
      • 提取D中的前M位,与路由表中的网络号匹配
      • 最坏情况32次
    • 提高路由查找效率
      • 线速100Gb/s,分组平均长度2000bits
        • 路由器处理能力应达到5000万分组/秒(50Mpps)
      • 通过良好的数据结构、快速查找算法

网络协议IP

IP概述

IP 设计思路

  • 向上提供最基本的、简单的、灵活的数据报传输服务
    • 无连接
      • 网络发送分组时不需要先在源和目的结点间建立连接
      • 每一个分组(IP 数据报) 独立发送,不进行编号,与其前后的分组无关
    • 尽最大努力交付 (best-effort delivery)
      • 网络层不提供服务质量的承诺
      • 传送的分组可能出错、丢失、重复和乱序,也不保证分组传送的时限
      • 如果主机 (即端系统) 中的进程之间的通信需要可靠传输,由主机中的传输层负责 (包括差错处理、流量控制等),与网络结点(路由器)无关
    • 优点
      • 中间转发设备功能简单,成本低
      • 协议设计简单,适应性强,扩展性强
  • 可能的实现方法
    • IP 数据报服务 : H1 发送给 H2 的分组可能沿着不同路径传送
    • 虚电路(Virtual Circuit) : H1 发送给 H2 的所有分组都沿着同一条虚电路传送
      • 可能的网络层技术,曾与IP竞争
      • 面向连接的通信方式,源于电信网络的电路交换思想
      • 建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源
      • 网络保障可靠传输

互联网络

  • 互联网络 (internetwork or internet)
    • 提供各种主机--主机之间分组传输服务的、互连的网络的集合
  • Internet--因特网,互联网
    • 专用名词,互联网络实例
  • 网络
    • 前边讨论过的直连网络或交换网络
    • 如以太网、WiFi、4G/5G网络等
  • 子网
    • 所讨论网络中的一部分网络

互联节点

  • 路由器/网关 (Router/Gateway)
  • IP的关键
    • 建立可扩展的异构互连机制
    • 在所有结点(主机和路由器)上运行

网络层功能

  • 通过逐跳的分组转发实现源、目的结点间的数据传输,基于两种重要的网络层功能实现
    • 转发(动作、局部)
      • 分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当的输出链路
    • 路由选择(决策、全局)
      • 分组从源结点(发送方)流向接收方(目的结点)时,网络层必须决定这些分组所采用的路由或路径,计算这些路径的算法称为路由选择算法(routing algorithm)

IP及相关协议

  • 网际协议 IP
    • TCP/IP 体系中两个最主要的协议之一
    • 编址规则、数据包格式、分组处理规则
  • 与之配套使用的协议
    • 路由选择协议
      • 路径选择
    • 地址解析协议 ARP (Address Resolution Protocol)
      • 实现IP地址与硬件地址的映射
    • 网际控制报文协议 ICMP (Internet Control Message Protocol)
      • 网络控制与诊断
    • 网际组管理协议 IGMP (Internet Group Management Protocol)
      • IP多播
image-20231028144750094

分类的IP地址

IP地址及其表示方法

  • IP地址 (IPv4) (位置/身份 合二为一)
    • 全球唯一的,32位,结点标识符
      • 32位地址空间,理论上可提供约40亿个主机地址
    • 由因特网名字与号码指派公司ICANN (Internet Corporation for Assigned Names and Numbers)进行分配
  • 表示方法
    • 每8位转化成10进制数,并在相邻两个数之间点分方便阅读

IP地址的编址方法

  • 分类的 IP 地址
    • 最基本的编址方法,相应的标准协议于1981年制定
  • 子网划分
    • 对基本编址方法的改进,其标准于 1985 年制定
  • 构成超网
    • 无类编址方法,其标准于1993 年提出

IP地址的分类

  • 层次结构:IP地址 = 网络号+主机号
    • 网络号(net-id):指出结点 (主机或路由器)连在哪个网络上
    • 所有连到同一网络上的结点,其IP地址的网络地址部分相同
    • 网络号由ICANN分配
  • 主机号(host-id):指出结点在网络内的标识
    • 主机号由网络管理员分配

IP地址的详细分类

  • A类、B类、C类地址为单播地址 (Unicast)
    • A 类地址:网络号为1 字节,第1位“0”;主机号3字节
    • B类地址:网络号为2 字节,前2位“10”;主机号2字节
    • C 类地址:网络号为3 字节,前3位“110”;主机号1字节
  • D类为组播地址 (Multicast)
  • E类为保留地址以备特殊用途 (Reversed)
image-20231028150632352
网络类别 最大网络数 第一个可用的网络号 最后一个可用的网络号 每个网络中最大的主机数 在整个IP地址空间的比率
A类 126
\((2^7 – 2)\)
1.
(00000001. )
126.
(01111110. )
16,777,214
$(2^{24} – 2) $
50%
$ (2{31}/2{32})$
B类 16,383
$ (2^{14} – 1)$
128.1.
(10000000.00000001. )
191.255.
(10111111.11111111. )
65,534
$ (2^{16} – 2) $
25%
$ (2{30}/2{32})$
C类 2,097,151
$ (2^{21} – 1) \(| 192.0.1. <br>(110000000.00000000.00000001.) | 223.255.255. <br>(11011111.11111111.11111111.) | 254 <br>\) (2^8 – 2)$
12.5%
$ (2{29}/2{32})$
  • 私有地址(局域网地址)
网络类别 地址范围 所含网络数
A类 10.0.0.0 ~ 10.255.255.255
(00001010.00000000.00000000.00000000 ~ 00001010.11111111. 11111111. 11111111)
1
B类 172.16.0.0 ~ 172.31.255.255
(10101100.00010000.00000000.00000000 ~ 10101100.00011111.11111111.11111111)
16
\((2^4)\)
C类 192.168.0.0 ~ 192.168.255.255
(11000000.10101000.00000000.00000000 ~ 11000000.10101000.11111111.11111111)
256
\((2^8)\)

IP地址的重要特点

  1. 特点一:IP 地址为两级的层次结构
    • 方便IP地址管理
      • IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配
    • 减小路由表存储空间
      • 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少
  2. 特点二:IP 地址实际标识的是一个结点和一条链路的接口
    • 当一个结点 (主机或路由器) 同时连接到两个网络上时,必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的
      • 这种主机称为多归属主机(multihomed host)
    • 路由器至少应当有两个不同的 IP 地址
      • 因为其至少应同时连接到两个网络 ,才能将 IP 数据包从一个网络转发到另一个网络
  3. 特点三:同一个网络上的结点的IP 地址的网络号必须一样
    • 用中继器或网桥连接起来的若干个局域网仍为一个网络,具有同样的网络号 net-id
  4. 特点四:所有分配到网络号 net-id 的网络都是平等的
    • 无论范围很小的局域网,还是可能覆盖很大地理范围的广域网

IP地址与硬件地址的区别

image-20231028152757372

IP分组转发

  • 路由器将转发信息存储在转发表中
    • Forwarding Information Base, FIB
    • FIB表中存储的是网络号与下一跳地址的映射关系
      • 若按目的主机号来制作路由表,则所得出的路由表就会过于庞大
      • 比如:4个 B 类网络通过3个路由器连接在一起,尽管每个网络上可能有上万个主机,按主机所在的网络地址来制作路由表,每个路由器中的路由表只需包含 4 个条目
  • 查找路由表,根据目的网络地址确定下一跳路由器
    • IP 数据包最终可以到达目的主机所在的目的网络 (可能通过多次间接交付)
    • 分组到达目的网络后,最后一个路由器才试图根据目的主机号host-id,将数据包向目的主机进行直接交付
  • 特定主机路由
    • 这种路由是为特定的目的主机指明一个路由
    • 采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由
  • 默认路由(default route)
    • 当某地址在路由表中找不到匹配的地址时,采用此出口
    • 对仅有一个网卡的主机,其缺省路由就是与网卡相连的那个路由器
    • 默认路由可减少路由表所占用的空间和搜索路由表所用的时间,在一个网络只有很少的对外连接时是很有用的
    • 如果一个主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,在这种情况下使用默认路由是非常合适

分组转发规则

  1. 从数据包的首部提取目的主机的 IP 地址 D, 得到目的网络地址为 N
  2. 若N是与此路由器直接相连的某个网络地址 (N与自己某接口的网络地址相同),则把数据包直接交付目的主机 D;否则是间接交付,执行 3
  3. 若FIB表中有目的地址为 D 的特定主机路由,则把数据包传送给路由表中所指明的下一跳路由器;否则,执行 4
  4. 若FIB表中有到达网络 N 的路由,则把数据包传送给路由表指明的下一跳路由器;否则,执行 5
  5. 若FIB表中有一个默认路由,则把数据包送给路由表中所指明的默认路由器;否则,执行 6
  6. 报告转发分组出错(ICMP,目的不可达)

IP地址与硬件地址映射 -- 地址解析协议ARP

主机或路由器的物理接口硬件在转发数据时,只能理解特定网络的编址方案(硬件地址,如 MAC地址 )

  • 地址解析:IP地址硬件地址
    • IP数据报在逐跳转发过程中,每一个结点需要根据本次传输的目的结点IP找到对应的目的结点的硬件地址(仅仅是本跳传输的直接接收结点)
    • 随后,网络适配器把IP数据包封装在目的地址为该硬件地址的帧中,发往本次传输的目的结点(可能是最终目的地,也可能是到达最终目的地的中间路由器 )

可能方法

  • 直接对应:将结点的硬件地址编码到IP地址的主机部分
    • 例如:硬件地址为00100001 01010001,对应IP地址为 128.96.33.81
    • 限制:重复问题;主机号浪费;空间不匹配
    • C类网络中不超过8比特,以太网的硬件地址 48 比特
  • 每个结点保留一张对照表:IP地址 \(\to\) 硬件地址
    • 地址解析协议 (Address Resolution Protocol, ARP)

地址解析协议 (Address Resolution Protocol, ARP)

ARP:根据目标主机的IP地址,查询其硬件地址

  • 每个三层结点中都有一个ARP高速缓存(ARP Cache)
    • 存储结点所在局域网内各结点的 IP 地址到其硬件地址的映射表
  • 结点A向局域网内另一结点B发送IP报文
    • 在其 ARP Cache 中查看有无B的 IP 地址,有则查出其对应的硬件地址,将此硬件地址写入 MAC 帧,通过局域网将该 MAC 帧发往此硬件地址
    • 否则,A向局域网内广播ARP请求,询问B的IP地址对应的硬件地址
      • B收到该请求后,单播回复自己的硬件地址
      • A和B都会将对方地址的映射关系写入ARP Cache

需要注意的问题

  • ARP 实现同一局域网内结点IP 地址和硬件地址的映射
    • 若目的结点和源结点不在同一局域网内
    • 通过 ARP 找到本局域网内某路由器的硬件地址,把分组发送给该路由器,该路由器把分组转发给下一个网络
  • IP地址到硬件地址的解析自动进行
    • 主机用户感知不到地址解析过程
  • APR缓存中的条目有生命期
    • 超时会被删除,一般每15分钟一次
  • ARP 分组不是IP 协议的一部分,不包括IP头
    • ARP分组直接放在以太网帧的数据部分
    • 以太网中将ARP请求和响应分组定义为0x0806 以太类型

IP报文格式

  • 一个 IP 数据包由首部(header)和数据(data)两部分组成
    • header的前面部分固定长度,20 字节;后面是可选字段,长度可变
    • 分组格式几乎都设计成32 bits对齐,以简化软件对它们的处理
image-20231028183105978
  • Version:版本,4bits,例如目前的IP协议版本号为4

  • HLen:首部长度,4bits,可表示的最大数值是 15 个单位(1个单位为 4 字节)

    • 即首部最长60字节,最小为5,即20个字节(仅包含首部的固定部分)
  • TOS:区分服务,8 位,用来获得更好的服务

    • 在旧标准中叫做服务类型,但实际上一直未被使用过,1998 年这个字段改名为区分服务
    • 只有在使用区分服务(DiffServ)时,这个字段才起作用,一般情况下不使用
  • Length:总长度,16 位,指首部和数据之和的长度,单位为字节

    • 数据包的最大长度为 65535 字节
    • 总长度必须不超过最大传送单元 MTU
  • Identification标识、Flag标志、Offset片偏移:三个字段共32 位,用于IP数据包分片

  • TTL:生存时间(Time To Live),8 位,数据报在网络中可通过的路由器跳数

    • 引入原因:数据分组单独寻径,从源到目的的延迟是随机变化的,可能路由器出错导致分组在网上无休止传输
    • 理论最大值255,实际值一般不超过64;发送结点设置该值,分组每经过一个路由器时,将其值减1,TTL=0 时丢弃该包
  • Protocol:协议,8 位,指出此数据报携带的数据是上层哪一个协议发来的

    • ICMP IGMP IP TCP EGP IGP UDP IPv6 OSPF
      1 2 4 6 7 9 17 41 89
  • Checksum:首部校验和,16 位

  • 只检验数据包的首部不检验数据部分

  • 源、目的地址:各32位,传输中始终保持不变

  • Options:可变长,从 1 个字节到 40 个字节不等

    • 每种选项的第一字节为标识符,标识该选项的类型;若该选项的值是变长的,则还有一个字节表示长度,之后是该选项的值
    • 主要用于测试和控制,为了增加 IP 数据包的功能,但同时也使得 IP 数据包的首部长度可变,增加了每一个路由器处理数据包的开销

IP 分片-- 连接异构网络

不同 (异构) 网络拥有各自不同的最大传输单元长度(MTU)

协议 MTU(字节)
超级通道(Hyperchannel) 65536
令牌环(16Mbps) 17194
令牌环(4Mbps) 4464
FDDI 4352
以太网 1500
X.25 576
PPP 532

IP 分片(Fragmentation)

  • 分片
    • 当分组经历网络的MTU比分组长度小,路由器把该分组分成小的数据块(称为分片,fragment)后放进物理帧
    • 每片的长度必须为8的倍数,最后一个可任意小
    • 每个分段都含一个IP数据报头
      • 除报头中的长度(Length) 、标志(Flag) 、片偏移(Offset)、校验和(Checksum)字段,其它字段与原始IP 数据报头相同
  • 重组
    • 分片的反过程,所有分片数据包到达目的主机后,目的主机负责还原原始IP报文

IP头部有关分片的三个字段

  • 标识(Identification)
    • 一个计数器,用来产生IP数据报的标识号
    • IP协议每发送一个数据报则该项加1,作为下一数据报的标识符
    • 形成的数据报分片具有与原始数据报相同的源、目的地址和标识号
    • 16 位,保证重复使用一个分组标识符时,具有该标识符的上一分组的所有分段已从网上消失
  • 标志 (Flag)
    • 3 位,目前仅低2bit有用(未用 | DF | MF)
    • MF (More Fragment):
      • 置1表示后面“还有分片”;
      • 置0表示最后一个分片(没有分片也置0)
    • DF (Don‘t Fragment):
      • 置0才允许分片
  • 片偏移(Offset)
    • 13 位,指明分片在分组中的位置,采用8字节为偏移单位,分片必须是8字节的倍数
      • 因为Length是16bit,而offset是13bit

IP分片的缺点

  • 不能充分利用网络资源
    • 网络转发代价与包数目相关,与大小无关
  • 端到端性能很差
    • 当一个分片丢失时,接收端会丢弃同一报文的其他分片
  • 可被利用来生成DoS攻击
    • 攻击者向目标主机发送小片的流,没有一个片的Offset是0,重组数据时崩溃
  • 解决方案
    • 一般避免分段,使用路径MTU发现机制,IPv6废止了分片
      • 在数据传输过程中探测沿途网络的最小MTU,然后发方发送足够小的分组,使其能够在沿途不必分段

交换网络

交换网络的由来

直连网络的可扩展性

  • 直连网络本质上是一种广播网络,共享链路,可扩展性很差
    • 结点数量、覆盖范围、性能受限
  • 解决办法
    • 分割网络,引入交换技术
      • 交换,是允许互联链路以形成更大规模网络的机制
    • 广播 \(\to\) 单播,更强的扩展性
      • 通过交换机的互联,扩展结点数量、覆盖范围、性能

交换网络

  • 设计目标
    • 数据只朝向目的节点方向传送 (转发, Forward),引入交换结点
    • 转发规则是网络自己学习生成的,不需要外界参与
  • 交换网络的三个主要部分
    • 数据帧转发
    • 学习结点位置
    • 生成树协议

网桥及数据帧转发

网桥

  • 在数据链路层扩展局域网
    • 解决共享介质的分组转发问题,扩展LAN的物理范围
  • 工作方式
    • 过滤(filtering)
      • 根据帧的目的地址决定一个帧应该转发到某个端口还是丢弃
      • 目的结点处于接收端口所连接的网段,丢弃
    • 转发(forwarding)
      • 根据帧的目的地址决定该将其导向哪个接口,将帧发送出去
    • 基于转发表/转发数据库(FDB)实现
  • 网桥使各网段成为隔离开的碰撞域
    • 连接异质链路
      • 互连不同物理层、不同速率的局域网
    • 消除碰撞、增加网络带宽
      • 单个网段100Mbps,一个网桥能传输100n Mbsp (n为网桥端口数)

数据帧转发

  • 转发表/转发数据库(Forwarding DataBase, FDB)
    • 存储目的MAC地址到(出)端口的映射关系
  • 对每个数据帧,在FDB中查找目的MAC地址对应的端口号
    • 若存在对应端口号,且与接收端口一致,丢弃(避免数据环路)
    • 若存在对应端口号,且不同于接收端口,从该端口将数据转发(单播)
    • 如果FDB中不存在对应条目,将该数据包从所有端口转发 (广播)

学习结点位置

每收一个新的数据帧,记录其源MAC地址和输入端口,将该映射关系写入FDB表

生成树协议

  • 网络中存在冗余链路(提升网络健壮性等)
    • 网络拓扑由树状结构变成图状结构
    • 数据转发过程中,形成环路
  • 解决办法
    • 为网络中每对源目的节点分配唯一确定的一条路径
    • 这些路径构成了一棵树 (生成树,Spanning Tree)
      • 覆盖所有顶点的无环子图

生成树算法

  • 选择一个网桥作生成树的根
    • 如选一个最小序号的网桥
    • 根网桥总在它所有端口上转发分组
  • 其它结点确定根端口
    • 每个网桥计算到根的最短路径,并记下路径经过它的哪个端口,将这个端口作为到根的优先路径
  • 为每个局域网选指派网桥
    • 指派网桥负责向根网桥转发帧(网桥之间通过算法确定)
  • 网桥彼此之间交换配置消息,包括三部分内容
    • 本网桥认定的根网桥的标识符
    • 从本网桥到根网桥的距离,以跳数来衡量
    • 正在发送信息的网桥的标识符

具体逻辑

  1. 初始时,每个网桥都认为自己是根,从每个端口发出配置信息

    • B3 (B3, 0, B3 )

    • B5 (B5, 0, B5 )

  2. 每个网桥收到配置消息时,确定是否优于自己的消息

    • 是,则保留,跳数加1,转发(向消息接收端口以外的其它所有端口)
    • 否则,丢弃
  3. 优于

    • 根的标识符更小
    • 根相同,但有更小的距离 (跳数)
    • 根相同,跳数相同,发送者有更小的标识符

网桥端口状态

  • Forwarding
  • Blocking
    • 由生成树算法阻断它,网中某个网桥有问题时,可以自动打开,重新开始生成树算法
      • 某网桥故障时,下游网桥将不能接收到配置消息,在等待一指定时间后,它们重新宣布自己是根,根据生成树算法选出新的根和指派网桥
  • Disabled
    • 软件上关掉

多接口网桥——以太网交换机

  • 以太网交换机(switch)
    • 1990 年问世,可明显地提高局域网的性能
    • 通常都有十几个接口,实质上是一个多接口的网桥
    • 工作在数据链路层,常称为二层交换机
    • 每个接口都直接与主机相连,并且一般都工作在全双工方式,主机独占带宽
    • 能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据
    • 使用专用的交换结构芯片,其交换速率较高

网桥的局限性

  • 规模不能太大 (一般十几个LAN)
    • 生成树算法是线性扩展的,没有为扩展局域网提供分层结构
    • 网桥转发所有广播帧,容易造成广播风暴(广播在LAN较小时实用)
  • 动态管理网络:限制广播范围、虚拟工作组、数据隔离…..
    • 虚拟局域网 (Virtual Lan, VLAN)

虚拟局域网 (Virtual Lan, VLAN)

  • VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组

    • 这些网段具有某些共同的需求
    • 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN
  • VLAN只是局域网给用户提供的一种服务,而并不是一种新型局域网

  • 在以太网的帧格式中插入VLAN 标记(tag)

    • 一个 4 字节的标识符,指明发送该帧的工作站属于哪一个VLAN
image-20231028143331826

总结

  • 连接方式
    • 集线器 -> 交换机
  • 数据传输方式
    • 广播 -> 单播
  • 链路共享机制
    • 每个(全双工)链路只有两个节点,不需要CSMA/CD
  • 拓扑特征
    • 层次结构树
    • 冗余链路的网络:生成树拓扑

以太网

两种链路类型

  • 点对点链路
    • 高级数据链路控制协议 (High-level Data Link Control, HDLC)
    • 点对点协议(Point-to-Point Protocol, PPP)
  • 广播链路
    • 以太网(Ethernet), IEEE 802.3
    • 无线局域网(Wireless Lan, WLAN), IEEE 802.11

网络分类

  • 广域网 WAN (Wide Area Network)

  • 城域网 MAN (Metropolitan Area Network)

  • 局域网 LAN (Local Area Network)

    • 特点
      • 覆盖范围小:房间、建筑物、园区,距离≤25km
      • 高传输速率:10Mbps~1000Mbps
      • 低误码率:10-8 ~ 10-10
      • 拓扑:总线、星形、环形、树形
      • 传输媒体:双绞线、同轴电缆、光纤
    • 典型技术
      • 以太网(Ethernet)
      • 令牌环网 (Token Ring)
      • FDDI(Fiber Distributed Data Interface)
    • IEEE 802标准体系(局域网、城域网标准)
      • 为使数据链路层更好地适应多种局域网标准,将其拆成两个子层
        • 逻辑链路控制 LLC (Logical Link Control)子层
          • 传输媒体与LLC 子层无关
          • 采用何种协议的局域网对 LLC 子层都透明
        • 媒体接入控制 MAC (Medium Access Control)子层
          • 与接入到传输媒体有关的内容都放在 MAC子层
    image-20231027221008918
  • 个域网 PAN (Personal Area Network)

以太网的基本信息

以太网发展历史

  • 20世纪70年代中期
    • 诞生于美国施乐公司(Xerox)的帕洛阿尔托研究中心(PARC)
    • 总线拓扑、同轴电缆、广播局域网、半双工
  • 20世纪90年代后期
    • 基于集线器的星形拓扑、双绞线、广播局域网、半双工
    • 集线器(Hub):物理层设备,作用于比特而不是帧
  • 本世纪初
    • 基于交换机的星形拓扑、双绞线、交换局域网、全双工
    • 交换机(Switch):二层设备

以太网基本组成

  • 传输介质(链路)
    • 同轴电缆
    • 双绞线
    • 光纤
  • 网络适配器
  • 中继设备
    • 中继器(Repeater)
    • 集线器(Hub)
  • 交换设备
    • 网桥 (Bridge)
    • 交换机 (Switch)

IEEE 802.3 规范

  • 传统以太网
    • IEEE 802.3 —— 同轴电缆Ethernet
    • IEEE 802.3a ——细缆Ethernet
    • IEEE 802.3i —— 双绞线
    • IEEE 802.3j —— 光纤
  • 快速以太网FE
    • IEEE 802.3u ——双绞线,光纤
  • 千兆以太网GE
    • IEEE 802.3z —— 屏蔽短双绞线、光纤
    • IEEE 802.3ab —— 双绞线

以太网传输介质标准

IEEE 802.3文档规定,由3部分组成

image-20231027221915919

10Base5 粗同轴
10Base2 细同轴
10BaseT 双绞线
10BaseF 多模光纤MMF
100BaseT 双绞线SMF
100BaseF 多模/单模光纤
1000BaseX 屏蔽短双绞线/MMF/SMF
1000BaseT 双绞线

总线型以太网

  • 10Base5,粗同轴电缆, IEEE 802.3a
    • 可靠性好,抗干扰能力强
    • 插入式分接头,其触针插入到同轴电缆内芯
      • 收发器 : 发送/接收
      • AUI : 连接件单元接口
  • 10Base2,细同轴电缆,IEEE 802.3a
    • 可靠性稍差
    • 接头处采用工业标准的BNC连接器组成T型插座,使用灵活

星形以太网

  • 10BaseT,双绞线介质,IEEE 802.3i
    • 双绞线总是配合集线器使用
    • 集线器(Hub):物理层设备,简单转发比特
    • 拓扑结构为星形,逻辑上仍是总线型网络,使用CSMA/CD
    • 每个主机通过两对双绞线与Hub相连,发送/接收各1对
    • 便宜,增添或移去站点(主机)变得十分简单,容易检测到电缆故障

以太网帧结构

image-20231027222228419
  • 帧前面插入8字节
    • 7 字节前同步码:用来实现 MAC 帧的比特同步
    • 1个字节的帧开始定界符:表示后面的信息就是MAC 帧
  • 目标地址:6字节
  • 源地址:6字节
  • 类型:2字节
    • 用作多路分解,标志上一层使用的是什么协议,以把收到的 MAC 帧的数据上交给上一层的这个协议
  • 数据字段:最小46字节
    • 最大 MTU 为 1500字节
    • 最小帧 64字节 - 首尾共18字节
    • 以太网采用CSMA/CD协议,为了避免碰撞检测,最小64字节
  • CRC:4字节
  • 帧尾部表示帧发送结束的方法
    • 对100M以太网
      • 物理层设备会自动在帧尾加上4B5B编码ESD字段(长度为两个5bits)
    • 对10M以太网
      • 会以一个特殊宽脉冲SOI来表示链路开始空闲

地址

  • 每个适配器有一个唯一的以太网地址,通常固化在ROM中
    • 称为硬件地址、网卡的物理地址、MAC 地址
    • 严格地讲应当是每一个站的“名字”或标识符,而非地址
  • 以可读的方式显示(如ipconfig命令),即由冒号分隔的6个数
    • 每个数对应于6字节地址的1个字节,由一对16进制数给出,每个16进制数对应4比特,而且去掉前导0
    • 例,8:0:2b:e4:b1:2是可读的一个以太网地址,表示: 00001000 00000000 00101011 11100100 10110001 00000010
  • MAC地址分配
    • IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前3个字节(即高位 23 位,其中第一字节的最低位表示单播/组播地址,单播“0”)
    • 后3个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址

以太网主机接收数据方式

  • 以太网适配器接收(receive)所有帧
    • 广播信道,所有主机在一个广播域
  • 但以太网适配器只接受(accept)
    • 编址到它自己地址的帧
    • 编址到广播地址的帧
    • 编址到多点播送地址的帧,如果适配器在监听那个地址
    • 所有帧,如果适配器处于混杂模式
  • 以太网适配器只向主机传递它接受的帧

以太网不提供可靠传输

  • 提供的服务是尽最大努力的交付,即不可靠的交付
    • 对发送的数据帧不进行编号,也不要求对方发回确认
    • 当目的站收到有差错的数据帧时丢弃,差错的纠正由高层决定
    • 如果高层进行重传,以太网并不知道这是重传帧,当作新的帧发送
  • 无效帧
    • 帧的长度不是整数个字节
    • 用收到的帧检验序列 CRC查出有差错
    • 数据字段的长度不在 46 ~ 1500 字节之间
      • 有效的 MAC 帧长度为 64 ~ 1518 字节之间

以太网的解决方案

  • 编码:曼彻斯特码、4B/5B
  • 组帧:面向比特
  • 差错检测:CRC
  • 可靠传输:不提供,尽力交付
  • 媒体共享:CSMA/CD

扩展以太网

  • 在物理层扩展
    • 光纤:扩展主机与Hub、Hub与Hub距离
    • 多个Hub:扩展为覆盖范围更广、连接结点更多的多级星形结构 (树形)
  • 在数据链路层扩展
    • 网桥 (Bridge)、二层交换机 (Switch)
    • 演变为交换网络,不再是广播域

以太网评价

  • 以太网基本上统治了有线局域网
  • 以太网的优点
    • 便宜,高速,易于使用、管理和扩展
  • 总线型以太网的缺点
    • 数据包越小,传输单位数据的代价越大
    • 用户数增加时,更容易发生碰撞
    • 链路变长时,需要更长时间来检测碰撞
    • 网络负载越大,传输性能越低

媒体共享

静态划分信道

信道复用技术 (Multiplexing),为多个用户静态划分逻辑信道,相互不冲突

频分复用(Frequency Division Multiplexing, FDM)

  • 用户分配到一定的频带后,在通信过程中自始至终都占用该频带
    • 所有用户在同样的时间占用各自的带宽资源
  • 应用:早期的有线电视网络、光纤通信网络、模拟电话系统等

时分复用(Time Division Multiplexing, TDM)

  • 将时间划分为一段段等长的时分复用帧 (TDM 帧)
    • 每个用户在每个 TDM 帧中占用固定序号的时隙,占用的时隙周期性地出现(周期为TDM 帧的长度)
    • 所有用户在不同的时间占用同样的频带宽度

统计时分复用(Statistic TDM, STDM)

计算机网络中,由于数据传输具有突发性,TDM总带宽利用率不高

  • 按需动态分配时隙
    • 每个STDM帧中的时隙数小于用户数
    • 用户所占时隙非周期性出现,又称异步时分复用;TDM称同步时分复用
    • 每个时隙中必须有用户的地址信息
  • 动态媒体接入控制,多点接入(multiple access)
    • 信道不固定分配给用户,实际接入时动态接入,分布式算法
      • 随机接入:结点按需随机接入,需解决碰撞问题
      • 受控接入:结点接入服从一定控制,如令牌环网

波分复用(Wavelength Division Multiplexing, WDM)

  • 光的频分复用
    • 光载波的频率很高,习惯用波长而非频率表示

码分复用(Code Division Multiplexing, CDM)

  • 码分多址 (Code Division Multiple Access, CDMA)
    • 基于扩频技术
      • 发送端:将需传送的具有一定信号带宽的信息数据,用一个带宽远大于信号带宽的高速伪随机码进行调制,使原数据信号的带宽被扩展,再经载波调制并发送出去
      • 接收端使用完全相同的伪随机码,与接收的宽带信号作相关处理,把宽带信号换成原信息数据的窄带信号即解扩,以实现信息通信
  • 每1个比特实际划分为m个短的间隔,称为码片(chip)
  • 每个用户被指派一个唯一的m bit码片序列
    • m一般取值 64 或 128
    • 发送比特1,则发送自己的 m bit 码片序列
    • 发送比特0,则发送该码片序列的二进制反码
    • 扩频:假定S站要发送信息的数据率为b bit/s。由于每一个比特要转换成 m 个比特的码片,因此S站实际上发送的数据率提高到 mb bit/s,同时S站所占用的频率宽度也提高到原来数值的m倍
  • 例如:S站的8bit码片序列是 00011011
    • 发送比特1时,就发送序列 00011011
    • 发送比特0时,就发送序列 11100100
    • 通常将码片种的0表示成-1,1表示成+1
      • S站的码片即为(-1 -1 -1 +1 +1 -1 +1 +1)
  • 如何实现信道复用?
    • 每个站分配的码片序列必须各不相同,并且还必须相互正交
      • 即令向量𝑺和𝑻分别表示两个站点的码片,即任意𝑺和𝑻的归一化内积为0
      • 即$ S T = ^m_{i=1} S_i T_i = 0$
    • 显然有 $ S S =1\(;\)S!S = -1\(;\)S T = 0$

动态媒体接入控制,多点接入(multiple access)

随机接入

  • 结点按需随机接入,接入后以信道的全部速率进行发送
  • 发生碰撞时,相关结点反复重发,直到无碰撞成功发送
    • 冲突域(collision domain)、冲突/碰撞 (collide)
  • 各结点在重发前独立选择一个随机时延

ALOHA

image-20231027201256445
image-20231027201236341

时隙 ALOHA

image-20231027201316756

载波侦听多点接入(Carrier Sense Multiple Access, CSMA)

image-20231027201433604
image-20231027201453588
image-20231027201502122
image-20231027201604988

带碰撞检测的CSMA (CSMA/CD)

image-20231027201732994
image-20231027201711481
image-20231027201903012
image-20231027201846730

带碰撞避免的CSMA (CSMA/CA)

image-20231027201945321
image-20231027201957641
image-20231027202010492

受控接入

  • 用户接入服从一定控制,如令牌环网

两类媒体共享技术对比

静态划分信道 动态媒体接入控制
FDM, TDM, WDM, CDM ALOHA, CSMA/CD, CSMA/CA
使用控制器/仲裁器 不使用控制器/仲裁器
使用已分配的固定带宽 使用的带宽是变动的
强调公平性 强调自组织和带宽利用率
2G(GPRS, Edge), 3G(CDMA2000, WCDMA), 4G+ Ethernet, WiFi
多用于传统语音、视频系统,以及移动蜂窝网络(物理层) 用于互联网数据传输(MAC层)

可靠传输

可靠传输的概念

  • 差错检测技术只能做到无差错接受
    • 凡是接受的帧(即没有丢弃),我们能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错
  • 错误帧呗接收方丢弃
    • 有些纠错码技术可以恢复轻微的误码,但实际计算开销太大
  • 可靠传输
    • 必须能以某种方式恢复被丢弃或丢失的帧
    • 链路层、传输层、应用层都可以提供
  • 基本机制
    • 确认(ACK):协议发给它的对等实体的消息,告知它已收到刚才的帧
      • 可以是一个控制帧,即无任何数据的头部
      • 也可以将一个ACK捎带在一个恰好要发向对方的数据帧中
    • 超时(TIMEOUT)
      • 发送方收到一个确认,表明帧发送成功;如果在合理的一段时间后未收到确认,那么它重发 (retransmit) 原始帧
      • 等待一段合理时间的这个动作称为超时 (timeout)
    • 自动请求重发(ARQ)
      • 使用确认和超时实现可靠传输的策略

停等算法

基本思想

  • 当发送方传输一帧后,在传输下一帧之前等待一个ACK;如果在某段时间之后ACK没有到达,则发送方超时,重发原始帧

重复帧问题:Sender超时重传,但是Receiver误以为是下一帧,重复接收

  • 包含1比特序列号的停等算法
    • 序号值取0或1,每帧交替使用

缺点

  • 只允许链路上有一个未确认的帧,这可能远远低于链路的容量
  • 例如:RTT=90ms的1.5Mbps链路
    • 链路带宽积 = $ 1.5Mbps * 90ms / 2 = 8KB $
    • 每次只能发一帧,造成明显的浪费

滑动窗口算法

基本原理

  • 保持管道满载,提升传输速率的方法
    • 增加单位时间传输数据帧的数目
  • 并发传输数据
    • 允许多个在途传输 (未收到ACK) 的数据帧
    • 通过窗口大小 (window) 限制在途传输的数据帧个数
  • 每个数据帧赋予一个序列号 (Sequence Number, SeqNum)
    • 匹配数据帧与对应的ACK,假设SeqNum能无限大

发送方

  • 维护三个状态变量
    • 发送窗口大小 (Send Window Size, SWS):能够发送但未确认的帧数的上界
    • 最近被确认过的帧的序号 (Last Acknowledgement Received, LAR)
    • 最近发送的帧的序号 (Last Frame Sent, LFS)
  • 操作
    • 收到 ACK:更新 LAR(右移),若窗口运行,则发送新的帧,更新 LFS
      • 即保证 $ LFS - LAR SWS$
    • 为每帧设置定时器,若收到ACK前超时,重传该帧
    • 必须能缓存SWS个帧

接收方

  • 维护三个状态变量

    • 接收窗口大小 (Receive Window Size, RWS):能够接受的无序帧数目上界
    • 最大的可接收帧的序号 (Largest Acceptable Frame, LAF)
    • 最后确认接收的帧的序号 (Last Frame Received, LFR)
  • 操作

    • 收到帧:$ LFR SeqNum LAF $,帧在接收窗口内,接收;否则,丢弃

    • 接受数据帧后,将收到的最大连续数据帧的SeqNum作为ACK回复

当数据帧丢失时

  • 方案一:回退N机制(Go-Back-N)恢复丢包
    • 接收方只对连续收到的数据帧回复ACK
      • 例如收到 2 3 4 6 7,则对帧4回复ACK
    • 发送方,由于接收不到新的ACK,超时后重传LAR+1与LFS之间的数据帧
      • 例如上例中重传 5 6 7
  • 方案二:选择确认机制(Selective Acknowledgments) 回复丢包
    • 接收方准确地确认每个已接受的数据帧,发送方根据这些信息更快重传
    • 传输效率更高,但实现更复杂

窗口大小

  • 发送方 SWS
    • 可根据一段给定时间内链路上有多少待确认的帧来选择
    • 依据给定的延迟与带宽的乘积
  • 接收方 RWS
    • RWS=1:接收方不缓存任何错序到达的帧
    • RWS = SWS:接收方能够缓存发送方传输的任何帧
  • 序号大小有限
    • 序列号在大小有限的首部字段中,如3bit可用序号0~7
    • 序列号必须可重用,能回绕
      • 能够区别同一序列号的不同次发送
      • 可用序列号的数目必须大于所允许的待确认的帧的数目
        • 例如停等算法中只允许一个待确认的帧,用2个序列号
  • 当 SWS = RWS时
    • $ (SWS + RWS) MaxSeqNum$
      • \(MaxSeqNum = 2^n\),n为使用的bit数
    • 即 $SWS = RWS ^{n-1} $
      • 发送窗口大小不能大于可用序列号数的一半

滑动窗口算法的优点

滑动窗口是一种高效的可靠传输机制

  • 可靠传输
    • 基于确认和超时重传机制,在不可靠链路上可靠传输
  • 高效传输
    • 通过并发提升传输性能
  • 按序传送
    • 接收方将连续的数据交给上层,缓存不连续 (乱序到达)的数据
  • 流量控制 (flow control)
    • 接收方能够控制发送方使其降低速度的反馈机制
    • 通信双方通过设定Window大小表达自己的发送/接收能力

差错检测

基本概念

  • 数据在传输过程中可能会产生比特差错
    • 数据传输过程中,因电磁干扰等,比特位发生反转
    • 传输错误的比特占传输比特总数的比率称为误码率(Bit Error Rate, BER)
  • 差错检测的基本思想
    • 在数据帧中加入冗余信息来确定是否存在差错
  • 当接收方检测到差错时,可以
    • 通知对方数据有差错,使其重传数据副本(重传机制)
    • 通过加入的冗余信息,重新构造正确的数据(纠错码)

奇偶校验

单向奇偶校验/单个位奇偶校验

  • 使用单个奇偶校验位
  • 分为奇校验 和 偶校验,假设信息有 d 比特
    • 偶校验:d 比特信息和 1 比特校验位中 1 的总数为偶数
    • 奇校验:d 比特信息和 1 比特校验位中 1 的总数为奇数
  • 出现奇数个比特差错可检测出;偶数个则无法检查
    • 测量表明,差错往往以突发方式聚集在一起,而非独立发生
    • 突发差错下,该方案无法检测出差错的概率50%

二维奇偶校验

  • 将 d 比特信息划分为i行j列,对每行和每列都计算奇偶值,产生 i+j+1 个奇偶校验位

校验和

基本思想

  • 将传输的所有字加起来,相加的结果作为校验和,一起传输

  • 接收端执行同样计算,结果与收到的校验和比较,若不同则判断出错

  • TCP/IP 协议中采用的变种

  • 发送方:将所有数据分为许多16位字的序列,将所有16位字相加,对结果取反,即为校验和

    • 注意求和的时候,最高位的进位需要回卷到最低位
  • 接收方:将所有16比特字(包括校验和)相加,若结果为全1则认为无差错

差错检验能力

  • 冗余少,仅16比特,对任意长度数据进行检测,检测能力较弱

    • 例如一对单比特错,1个使某个字增加1,另一个使另一个字减少1,校验和不变
  • 易于软件实现,用于上层端到端协议,下层由链路层提供更强的检错能力

循环冗余检验(CRC)

差错检测算法设计目标

  • 使用最少的冗余比特检测最多的错误
  • CRC使用很强的数学算法实现
    • 二进制除法
    • 非标准除法,用异或代替相减(无借位)

CRC的基本思想

  • \(n\)次的多项式可以表示\(n+1\)比特的信息
    • 1代表该指数存在,0代表不存在
  • 为计算CRC,收发双方商定一个k次幂的除数\(C(x)\)
  • 对于\(n\)比特消息\(M(x)\),实际发送加上\(k\)比特冗余的消息\(P(x)\),使得\(P(x)\)能被\(C(x)\)整除;若接收方收到的消息不能被\(C(x)\)整除,则判断出错
  • 计算\(P(x)\)
    • \(x^k\)\(M(x)\),即消息末尾加上\(k\)个0,得到零扩展消息\(T(x)\) //T = M << k
    • \(C(x)\)\(T(x)\),得到余数\(S(x)\) // S = T % C
    • $P(x) = T(x) - S(x) $ // P = T XOR S

C(x)的选择

  • \(x^k\)\(x^0\)项的系数不为0,则可以检测所有单比特错
  • \(C(x)\)含有一个至少3项的因子,可检测所有双比特错
  • \(C(x)\)含有因子\(x+1\),可检验任意奇数个错

检错还是纠错

  • 检错:发现错误,重传
  • 纠错:发现错误,纠正
    • 纠错码的冗余位要比检错码长,编码效率低
    • 使用纠错码的场景
      • 差错发生的可能性高:无线环境
      • 重传代价高:卫星链路
      • 无法重传:单工信道

组帧

面向字节的组帧

  • 最早的组帧方法:把每一帧看成一个字节(字符)集
    • 源于终端与大型机的连接

起止标识法

  • 特定字符表示帧的开始与结束
  • 实例:二进制同步通讯协议BISYNC
  • 数据帧的透明传输
    • 任意比特组合的数据都能通过数据链路层
    • 如果数据负载中也包含了特殊字符该如何处理
      • 字符填充法:通过转义符对数据传输中的该特殊符号进行转义

字节计数法

  • 帧中的字节数放在首部的一个字段中
  • 实例:数字数据通信消息协议DDCMP
  • 缺点:若Count出错,可能会产生累计多个错误

面向比特的组帧

  • 特点

    • 不关心字节的边界,它只是把帧看成比特集

    • 比特可能来自某个字符集,如ASCII码,或者可能是一幅图像中的像素值或一个可执行文件的指令和操作数

  • 实例

    • 由IBM开发的同步数据链路控制(SDLC)协议
      • ISO将SDLC标准化为高级数据链路控制协议(HDLC)
    • Beginning Sequence 和Ending Sequence:01111110(标志字段)
    • 在链路空闲时,也发送这个序列,以保证发方、收方的时钟同步
  • 数据帧的透明传输

    • 任意比特组合的数据都能通过数据链路层
    • 问题:01111110可能出现在帧的任何地方
  • 解决办法

    • 发送方:当一串比特流尚未加上标志字段时,先用硬件扫描整个帧(用软件也可实现,但要慢一些),只要发现5个连续的1,则立即填入一个0
    • 接收方:先找到开始点 01111110,然后再定结束点,在接收了连续的5个1之后,就可以根据下一位决定是填充位还是结束到达,下一位为:
      • 0,必为填充的0,丢弃此位;
      • 1,再看下一位:若为0,则为帧结束;若为1,则出错(表示出现连续7个1)

网络构件

网络结点

  • 被连接的计算机/其他硬件,分两类:

    • 主机(端系统):传统PC、服务器、 智能手机、传感设备等

    • 网络内部交换结点:二层交换机、AP、基站、路由器等

网络适配器 / 网络接口卡

  • 将结点连接到链路上的硬件
  • 实现大部分数据链层,以及物理层功能
    • 实现调制编码、组帧、错误检测、可靠传输、介质访问控制等功能

image-20231026155435813

网络链路

  • 物理层之下的传输媒体,数据(信号)传输的物理通道
    • 信号实际上是以光速传播的电磁波
  • 重要属性
    • 频率和波长

导引性传输媒体

  • 双绞线
    • 模拟、数字传输均可
    • 通信距离几到几十公里,通过放大器、中继器等增大传输距离
    • 导线越粗,传输距离越远
    • 根据是否屏蔽
      • 屏蔽双绞线 STP (Shielded Twisted Pair)
      • 无屏蔽双绞线 UTP (Unshielded Twisted Pair)
  • 同轴电缆
    • 屏蔽性好,抗干扰强
    • 局域网发展初期曾广泛使用,目前主要用于有线电视网
  • 光缆
    • 通过传递光脉冲信号进行通信,有脉冲为1,无脉冲为0,光线在纤芯中传输的方式是不断地全反射
    • 优点
      • 传输损耗小,中继距离长,适合远距离传输
      • 抗电磁干扰和抗雷电性好
      • 无串音干扰,保密性好,不易被窃听和截取
    • 广泛应用于互联网、电信网、有线电视网的主干网络,高速局域网
  • 光纤
    • 多模光纤
      • 可能存在多条不同入射角的光线在一条光纤中传输
      • 光脉冲传输时会逐渐展宽,失真
    • 单模光纤
      • 直径减小到只有一个光的波长,使得光线直线传播,不反射

非导引型传输媒体

  • 无线介质
    • 发送和接收都通过天线实现的
    • 发送时,天线将电磁能量发射到介质中(通常是空气)
    • 接收时,天线从周围的介质中获得电磁波
  • 无线传输两种基本类型
    • 定向:发送天线将电磁波聚集成波束发射出去,因此,发送和接收前天线必须仔细校准
    • 全向:发送信号沿所有方向传播,并能够被多数天线接收到

两种链路类型

  • 点对点链路
    • 链路一端的单个发送方和另一端的单个接收方组成
    • 许多链路层协议为点对点链路设计
      • 点对点协议(Point-to-Point Protocol, PPP)
      • 高级数据链路控制协议 (High-level Data Link Control, HDLC)
  • 广播链路(多路访问)
    • 能够让多个结点都连接到相同的、单一的、共享的广播信道
    • 任何结点发送一帧时,所有结点都能接收到
    • 需要解决媒体共享的问题 (介质接入控制)
    • 以太网、无线局域网

数据通信的基本概念

常用术语

  • 信息:语音、文字、图像、视频等,通信目的即传送信息
  • 数据:运送消息的载体,有意义的符号序列
  • 信号:数据的电气或电磁的表现
    • 模拟信号:代表消息的参数的取值是连续的
    • 数字信号:代表消息的参数的取值是离散的
  • 码元:在使用时域波形表示数字信号时,代表不同离散数值的基本波形
    • 如二进制编码常用两种码元,分别代表0状态和1状态

信道相关概念

  • 单工通信

    • 通信双方设备中发送器与接收器分工明确,只能在由发送器向接收器的单一固定方向上传送数据,没有反向交互
    • 如无线电广播
  • 半双工通信

    • 通信双方设备既是发送器,也是接收器,两台设备可以相互传送数据,但某一时刻则只能向一个方向传送数据
    • 如总线型以太网、802.11WLAN
  • 全双工通信

    • 通信的双方可以同时发送和接收信息,通信双方设备既是发送器,也是接收器,两台设备可以同时在两个方向上传送数据

    • 如电话、交换以太网

  • 基带信号

    • 来自信源的原始信号,未经过调制(频谱搬移和变换)
      • 其特点是频率较低、信号频谱从零频附近开始,具有低通形式
    • 基带信号分为数字基带信号和模拟基带信号
    • 近距离范围内基带信号的衰减不大,可以采用基带传输
      • 计算机到监视器、打印机等外设
      • 以太网等局域网
    • 长距离或无线信道中,无法直接传输基带信号,需要进行调制
      • 比如声音传送距离有限,调制为高频电磁信号,可以实现远距离的声音传送
  • 编码

    • 发送端把二进制数据(比特)编码为数字基带信号,接收端再解码为比特
  • 调制

    • 使用载波,把基带信号的频率搬到高频,转换为模拟信号,称为带通调制/载波调制
    • 目的:
      • 将信号变换为便于传送的形式
        • 无线传输时需要将信号搬到高频上才能在自由空间发送出去
        • 数字电话中将连续信号变换为脉冲编码调制信号
      • 有效利用频带

编码

  • 数字基带信号码型种类繁多,根据码元幅度取值不同分为
    • 二元码
      • 最简单的波形为矩形,幅度取值只有两种电平
    • 三元码
      • 取值正、0、负,单极性变双极性,不是二进制变三进制,称准(伪)三元码
    • 多元码
      • 每个符号可以用来表示一个二进制组码,成倍提高带宽利用率
      • \(n\)位二进制组码,可用\(M=2^n\)元码传输,信道利用率可以提高\(n\)

码型设计原则

  • 码型变换过程对任何信源透明,与信源统计特性无关
    • 信源统计特性是指信源产生各种数字信息的概率分布
  • 从传输码型容易提取出时钟
    • 时钟恢复:编码和解码过程都由一个时钟来驱动,每个时钟周期,发送方发送一比特,接收方恢复一比特,为了使接收方能恢复发送方传送的比特,发送方和接收方的时钟必须精确同步
  • 具有自检能力,即码元间有相关性(冗余度)
    • 一旦有了自检性,各码元所含信息量不为最大
  • 误编码增值越小越好
  • 编译码器简单方便
  • 编码具有唯一可解性,可还原出原二进制序列

带通调制 / 载波调制

  • 基本调制方法
    • 调幅(AM):载波的振幅随调制信号而变化
    • 调频(FM):载波的频率随调制信号而变化
    • 调相(PM):载波的相位随调制信号而变化
  • 两种类型
    • 数字信号调制
    • 模拟信号调制

数字信号调制

  • 二进制数字调制
    • 幅度键控:载波的振幅随调制信号而变化(1通,0断)
    • 频移键控:载波的频率随调制信号而变化(1对应载波\(f_1\),0对应载波\(f_2\)
    • 相移键控:载波的相位随调制信号而变化(1对应相位0°,0对应相位180°)

模拟型号调制

  • 调幅:载波的振幅值随调制信号的大小做线性变化

信道容量与计算

实际传输通道

  • 非理想的,在传输信号时会产生各种失真以及带来多种干扰
  • 码元传输的速率越高,或信号传输的距离越远,在信道的输出端的波形的失真就越严重

信道容量与香农公式

  • 用信息论的理论推导出了带宽受限且有高斯白噪声干扰情况下信道极限,即无差错的信息传输速率(信道容量)上限
  • 可应用于各种链路,无线、同轴电缆、光纤……

\[ C = Wlog_2(1+S/N) \]

  • C:信道容量(bps);W:信道带宽(Hz);S:信号平均功率;N:高斯白噪声功率
    • S/N:信噪比,通常表示为SNR(db或分贝):\(SNR = 10 log_{10}(S/N)\)