【专业课复习】计算机网络 专题(二) 数据链路层 与 网络层

2020-07-16   95 次阅读


4.数据链路层

传输差错的特征

主要原因

  • 热噪声:传输介质内的分子热运动
  • 冲击噪声:外界干扰

计算机网络通信中,差错控制主要针对冲击噪声

常用的差错控制编码

  • 检错码:能够发现差错,但无法自动纠正差错,通过发送方重传来获得正确的数据
  • 纠错码:不但可以发现差错,而且还能知道哪里出错从而自动纠正差错

零散基本概念

码字

  • 码字由信息位和校验位(冗余位)组成

两个码字的距离

两个码字的不同位数成为这两个码字的距离

海明距离

给定某种编码方法就能够造出包含全部合法码字的码字表,该码字表中肯定存在着两个码字之间的距离最小,这个最小距离称为该码字表的海明距离

循环冗余码

CRC码(Cyclic Redunancy Code)
是目前计算机网络中使用最广泛的一种检错码,也称为多项式码

  • CRC码不能100%的发现错误
  • 当余数为“0”时可能发生错误
  • CRC的检错率取决于生成多项式G(x)

流量控制

①停-等协议

  • 发送发送一帧后,等待对方的应答
  • 接收端收到一帧后检查校验位串,如果出错,返回“否认”信息,如果没有错,返回“确认”信息
  • 发送端收到“确认”后立即发送下一帧,收到“否认”重发
  • 发送端发送一帧后,立即启动超时计时器,若超时中断,重发该帧
  • 接收端保存最近收到的帧序号,若下一个到达帧的序号与该序号相同,则丢弃并返回“确认”信息

12.PNG
缺点
信道利用率低

优点
简单

②滑动窗口协议

基本思想

为了提高信道利用率,允许发送方连续发送若干帧后等待对方应答

基本概念

  • 窗口:可容纳数据帧的缓冲区
  • 发送窗口:发送方用来保存已发送但尚未经确认的数据帧
  • 接收窗口:接收方用来保存已正确接收但是尚未提交给主机(网络层)的数据帧
  • 窗口尺寸:窗口中可以保存的帧数目称为窗口尺寸
  • 帧序号:为了保证接收方能按正确次序向主机递交数据帧而设立的临时帧序号
  • 窗口号:对应的帧序号

基本规则

  • 只有帧序号落入当前窗口的帧才有资格发送,发送方收到对方确认信息后,将发送窗口向前滑动
  • 只有帧序号落入当前窗口的帧才接收,否则丢弃,接收方接收窗口中的帧递交给主机后,接收窗口向前滑动

③ 顺序接收管道协议(回退n)

接收窗口尺寸为1的滑动窗口协议,也称为回退n协议
发送窗口尺寸Wt为n,接收窗口尺寸Wr = 1

  • 发送方可以连续发送n帧而无需对方应答,但需要将已发出但尚未收到确认的帧保留在发送窗口中,以备由于出错或丢失而重发
  • 接收方将正确的且帧序号落在当前接收窗口的帧存入接收窗口,同时按序将接收窗口的帧送交给主机(网络层),出错或者帧序号未落入当前窗口的帧全部予以丢弃
  • 当某帧丢失或者出错时,其后到达的帧均丢弃,并返回否认信息,请求对方从出错帧开始重发
  • 发送方设置一个超时计时器,当连续发送n帧后,立即启动超时计时器,当超时计时器满且未收到应答,重发n帧
    13.PNG

优点:只需要一个缓冲区
缺点:当信道误码率高时,导致大量重复帧

③ 选择重传协议

如果某一帧出错,后面正确到达的帧虽然不能立即送网络层,但接收方可将其保存在接收窗口,仅要求发送方重传那个发错帧

停等协议,顺序接收管道协议和选择重传协议 的发送窗口和接收窗口

14.PNG

5.网络层

在数据链路层的支持下,为传输层提供源/目的主机间的报文分组传输服务

结点间数据交换

①电路交换

起源于电话系统

步骤

  • 建立电路:传送数据前由发送方发出建立电路请求,交换机根据该请求,设法选择一条空闲的信道链接到对方
  • 传送数据
  • 拆除电路

优点

实时性好,可靠性好

缺点

信道利用率低

②分组交换

概念解释

  • 报文:一份完整的信息
  • 分组:报文分组的简称,又称为信息包,将报文划分为若干个实话信息单位作为网络层的数据传输单元

基本原理

将一份完整的报文划分为若干组,每个分组以存储/转发方式独立的从源节点传输到目的节点,目的节点收到这些分组重新组装成报文

特点

化整为零,存储转发

优点

  • 提高链路利用率
  • 有利于差错控制
  • 减少节点缓冲区容量

缺点

当网络拥塞时,会导致分组传输延迟增加

实现方式

  • 虚电路
    • 通信前发送方和接收方必须建立连接,所以虚电路是面向连接的网络服务
    • 虚电路只是一种逻辑电路,而不是真正的物理电路,报文分组在虚电路上传输不再像物理线路上那样畅通无阻,而是要中间节点的存储转发
    • 一条链路上可以有多个虚电路
    • 一旦虚电路建立完毕,本地通信的所有分组必须经过该虚电路进行,因此虚电路能够保持分组的顺序接收
    • 仅当建立虚电路的时候需要源/目的节点地址,数据分组需分配一个虚电路号而无需源/目的节点地址
    • 虚电路沿途经过每一个节点要想该节点提出请求,任何节点拒绝请求都将导致虚电路建立失败
  • 数据报
    • 无需建立连接,每个报文携带完整的源/目的地址,独立选择路径,通过不同的路径到达目的主机
    • 因为无需建立连接就可以传输报文分组,因此数据报称为无连接网络服务
    • 不同的报文分组可以通过不同的路由到达目的主机,数据报服务不能保证报文分组顺序接收
    • 每个报文独立选择路径

路由选择

虚电路:需要一次路由选择
数据报:每个分组都要进行路由选择

静态策略路由选择

①扩散法

当结点收到一个分组后,把该分组向除了进来的链路外的所有其他链路进行转发,结果至少有一个分组以最快的速度到达目的节点

问题

扩散过程产生大量重复的分组,导致网络无法运行

②固定式路由选择

  • 每个节点保存一张固定的路由表,当某一分组到达时,根据分组的目的节点,在路由表中找到其对应的输出链路,然后将分组从该链路转发出去
  • 一般由网管中心根据最佳路由算法为每个路由产生固定路由表并发给该点,固定路由表一旦生成,就不改变

优点

简单

缺点

无法适应网络流量和拓扑结构的变化

动态策略路由选择

①热土豆算法(孤立路由算法)

基本思想

当一个结点收到一个分组后,选择一条输出队列最短的链路尽快的将其转发出去,不管目的节点位于何方

优点

提高链路的利用率

缺点

具有很大的盲目性

改进

可以与固定路由算法混合使用

  • 首先根据固定路由算法选择可能的链路,并给这些链路赋上一定权值
  • 再根据链路队列长度赋上一定权值
  • 选择这两个权值和最小的链路

②逆向自学习算法

  • 每个分组中包含一个结点计数器,每经过一个结点,该结点计数器加1
  • 当一个结点R从链路L收到一个来自源节点S的分组时,如果结点计数器为n,就知道经过L到达S的路径距离不会超过n
  • 如果它以前记录到S的最短路径超过n时,则将链路L作为到达S的最短输出链路,纪录当前最短路径长度n
  • 经过一段时间的自学习,结点R会找到它到其他结点的最短路径以及最小距离值

优点

对好消息反应灵敏

缺点

对于坏消息无法了解掉(一条链路崩溃)

如何改进

每隔一段时间,删除这段时间内没有刷新的记录

③距离向量路由选择(D-V算法,分布路由选择)

基本思想

  • 每个节点都保存一张路由表
  • 路由表包括三个主要字段:目的地址,最短距离,最佳输出链路
  • 与固定路由的区别: 该方法相邻接点之间定期交换路由信息,并根据最新路由信息刷新路由表
  • 交换的路由信息由二元组(V,D)组成,其中V为目的地址,D为到达目的地址的距离

缺点

对网络变化需要经过若干周期才能做出反应,对好消息反应快,对坏消息反应迟钝

如何解决无穷计数问题

  1. 规定足够大的数为无穷大,副作用是限制了网络规模
  2. 水平分割法:节点不向相邻节点报告从该相邻接点获取的路由信息 ,该方法有时候会失败

④链路状态路由选择(L-V算法)

基本思想

每个节点定期广播路由信息,并根据最新路由信息刷新路由表

步骤

  • 发现邻居节点:通过向每个端口发送特殊的HELLO分组来发现邻居节点,收到HELLO分组的路由器要返回一个应答来说明其网络地址
  • 测量链路开销:通过发送一个特殊的ECHO分组来实现,测量其往返时间/2

优点

对网络反应迅速

缺点

广播L-S分组占用信道容量大

OSPF(开放路径优先)使用的就是这种方法

路由信息协议 (RIP)

RIP采用D-V算法,用于小规模网络

技术特点

  • 距离:下跳数,允许对下跳数加权
  • 交换路由信息周期:30秒
  • 为了解决无穷计数问题,RIP选择16作为无穷,为了加快收敛速度,RIP采用水平分割技术
  • RIP消息通过UDP协议传输,端口号为520

开放最短路优先协议(OSPF)

采用L-S算法,是目前Internet的主要内部网关协议

技术特点

距离:允许网管人员配置选择多种距离度量

  • OSPF支持区域概念
  • OSPF支持认证服务,防止非法向路由器发送假路由信息来愚弄路由

边界网关协议(BGP)

BGP采用改进型D-V算法,作为Internet外部网关协议

技术特点

  • 路由表中记录到达目的地的确切路由,而不是距离,从而解决无穷计算问题
  • 支持策略路由

IP 协议(IP)

概述

  • IP协议是Internet体系结构的核心协议,已成为连接异构网络的工业标准
  • IP提供无连接的数据报服务
  • 每个IP分组长度小于64K字节
  • 不能保证分组可靠的,按序到达
  • IP协议需要路由协议 ICMP,ARP,RARP等协议支持

IP地址

TCP/IP网络模型将整个Internet视为一个单一的,抽象的网络,IP地址就是给每个连接在这个网络上的主机,路由器或其他设备分配的一个在全世界唯一的32位标识符

  • 分类IP地址:基本编制方法
  • 子网划分IP地址:基于分类IP地址编制方法的改进
  • 超网IP地址:目前应用最广泛地方法,对于缓解IPv4地址耗尽和路由表过于臃肿庞大有一定作用

分类IP地址

五类,分别是A类,B类,C类,D类,E类

  • A,B,C类地址由两个固定长度的字段组成,其中一个字段是网络号,表示联网主机所在的网络,另一个字段是主机号,表示联网主机本身
    `IP地址 ::= {<网络号>,<主机号>}

  • D,E类不区分网络和主机

  • A类地址网络号字段为1字节,第一位固定为0

  • B类地址的网络号字段net-i为2字节,前两位固定为10

  • C类地址网络号字段为3字节,前三位固定为110

  • D类地址为多播地址,前4位固定为1110

  • E类地址保留为今后使用,前五位固定为11110

image.png

划分子网IP地址

  • 将一个IP类网划分为几个较小的子网
  • 多个物理网共享一个IP类网前缀

IP地址分为三级结构
IP地址 ::= {<网络号>, <子网号>, <主机号>}
对外,网络号仍然表示整个网络,对内,由子网号表示多个不同的子网

子网划分后,采用子网掩码来分离网络号与主机号
子网掩码:网络号和子网号部分全为1,主机号部分全为0

注意

  • 主机号全为1的地址是本子网内的广播地址
  • 主机号为0的IP地址表示该网络本身
  • 0.0.0.0 代表的是本主机地址,任何一台主机都可以用其表示自己
  • 255.255.255.255 代表的是受限广播地址,广播范围为主机所在的网络
  • 127.0.0.0~127.255.255.254为回送地址,通常用于测试,以上述目标位目标地址的IP分组都会直接会送给发出这个分组的主机

保留地址

也称作私有地址,各独立网络可以重复使用的IP地址,网络边界路由器不会向目标地址为这些保留地址的主机转发IP分组

image.png

超网IP地址

也称为无分类域间路由(CIDR,Classless Inter-Domain Routing)编址方法
CIDR中不再有传统的A,B,C类等地址以及划分子网概念
CIDR采用各种长度的“网络前缀”来代替分类地址中的网络号和子网号
IP地址 ::= {<网络前缀>, <主机号>}

  • CIDR经常采用“斜线记法”,也就是在IP地址后面加上一个斜线和一个代表网络前缀所占位数的数字,比如/20
  • 网络前缀相同的连续IP地址称为CIDR地址块
  • 一个CIDR地址块可以表示很多地址,因此这种地址的聚合被称为路由聚合 ,路由聚合可以在路由表中用一个项目代表很多个传统分类的路由项目,大大缓解了路由表的臃肿现象
  • CIDR地址块中的IP地址数量一定是2的整数次

网际控制报文协议 ICMP(Internet Control Message Protocol)

为了提高IP数据报交付成功的机会,在网络层使用网际控制报文协议

  • ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
  • ICMP是IP层协议不是高层协议
  • ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据包发送出去

目的

因为IP协议提供的是以无连接为特征的“尽力而为”数据通信服务,无法解决数据报丢失,重复,延迟或者乱序等问题
ICMP的目的就是希望对IP包无法传输时提供报告,这些差错报告帮助发送方了解网络中发生什么问题

主要功能

  • 通告网络错误
  • 通告网络拥塞
  • 协助解决故障
  • 通告超时

封装与格式

  • ICMP是少数几个可以直接从应用层操作的协议,不经过传输层
  • ICMP是一种需要经过两次封装的网际层协议
    • 首先由网络层的IP协议对ICMP协议报文进行安装
    • 然后再由数据链路层协议对相应的IP报文进行封装

因为ICMP由IP协议封装,因此其也是一个不可靠协议,不能保证报文到达或是按序到达

报文种类

ICMP报文种类分为 ICMP差错报告报文与 ICMP询问报文

Tracert

是Windows上的一个实用程序,可以实现从源主机到目的主机之间数据报文所经过的路由,即可以实现路由追踪
在Unix 或者Linux中类似的程序是 Tracerouter

地址解析协议 ARP

MAC地址

为了能够在数据链路层的协议中描述源/目的节点,需要在数据链路层设计相应的节点标识符,也就是数据链路层地址,这就是MAC(Media Access Control)地址
经常被称为物理地址

ARP 目的

目的就是将IP地址转化为MAC地址

工作原理

当主机A有信息向主机B发送时:

  • 主机A查找本地ARP表,如果表中有主机B的IP地址,那么按照对应的MAC地址,将要发送的IP包封装成以太帧,并向主机B发送
  • 如果ARP表中没有主机B的数据项,那么以广播方式发出ARP请求包,在本网段内寻找主机B的MAC地址
  • 主机B收到主机A的ARP请求后,向主机A发出单播的ARP响应包,并将主机A的IP地址与MAC地址填入自己的ARP表中
  • 主机A在收到响应报文后,将主机B的MAC地址填写到自己的ARP表中,按照获得的MAC地址将IP包封装到以太帧,向主机B发送

分类

①标准ARP

ARP请求报文的各相关地址项,源IP与源MAC为发出ARP请求的主机的IP地址与MAC地址,目标IP位希望获得其MAC地址的主机的IP地址,目标MAC为全零

②无偿ARP

称为免费ARP,是一种特殊的ARP请求报文

  • 源IP地址与目标IP地址都是发出这个ARP报文的主机的IP地址
  • 源MAC地址时发出这个ARP报文的MAC地址
  • 目的MAC地址是广播地址

RARP 协议

与ARP相反,知道MAC地址,不知道IP地,通过该协议广播询问分组获取IP地址

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议