《计算机网络》学习笔记---第四章---网络层


一、网络层的基本概念

功能

  1. 提供路由,将数据报从源端选择最佳路径送达目的端
  2. 网络层向上提供简单灵活,无连接,尽最大努力交付的数据报服务

四个重要的协议

  1. 网际协议IP
  2. 地址解析协议ARP
  3. 网际控制报文协议ICMP
  4. 网际组管理协议IGMP

IP依赖ARP,ICMP、IGMP依赖IP

二、两种服务

  • 虚电路服务:两台计算机进行通信时,先建立连接,然后通过虚电路进行通信通信,通信结束后释放连接

  • 数据报服务:进行通信前不需要建立连接,每个分组独立放松,与其他前后的分组无关

因为当初考虑过借助电话的经验,使用虚电路服务,让网络提供可靠服务,即每次通信都建立一个连接。而现在只使用数据报服务,由运输层完成端到端的可靠传输

三、网际协议IP

功能

  • 性能各异编址方案、路由选择协议等等的不同 )的网络互连起来,使其在网络层上看起来是一个统一的网络
  • 隐蔽各种底层网络的复杂性便于分析和研究问题

内容:三个部分,IP编址方案、IP数据报格式、转发分组规则

1. IP编址方案

IP地址:互联网上的每一台主机或路由器的每一个接口分配一个全世界范围内唯一的32位标识符

特点

  1. 一种分等级的地址结构
    • IP地址管理机构指分配网络号,得到网络号的单位自行分配主机号
    • 路由器根据网络号转发分组,不考虑主机号,减小路由表的存储空间和查表时间
  2. 一个IP地址标志一台主机或链路的接口
  3. 用物理层的转发器或链路层的网桥连接起来的局域网仍然是一个网络,拥有相同的网络号。不同网络号的网络要使用路由器互连
  4. 互联网同等对待每一个IP地址

IP地址和硬件地址的区别

  • IP地址:网络层和以上各层使用的地址,一种逻辑地址,(软件实现)通信转发过程中不改变
  • 硬件地址:数据链路层和物理层使用的地址,通信转发过程中改变

编址方案的三个阶段:分类的IP地址-->子网划分-->构造超网(无分类编址CDIR)

  1. 分类的IP地址:
    • A类地址网络号:1~126,8位,0开头
    • B类地址网络号:128~191,16位,10开头
    • C类地址网络号:192~223,24位,110开头
    • D类地址网络号:1110开头
    • E类地址网络号:1111开头
    • 127保留作为本地软件环回测试,不在网络中出现
  2. 子网划分:
  3. 构造超网:

2. IP数据报格式

  • 版本:占4位,IP协议的版本
  • 首部长度:占4位,可表示最大数15。单位为32位=4字节,首部固定长度(不使用可选字段)为20字节,即最小值为5(0101)。当使用可选字段时,要使用填充字段使首部长度为单位(4字节)的整数倍
  • DS区分服务:占6位,使用区分服务的时候才起作用,一般情况不用
  • ECN显式拥塞通知:占2位,有ECN感知能力的路由器在拥塞时设置该字段,目的节点有些协议(比如TCP)会处理该字段,通知发送方降低放松速度
  • 总长度:占16位,首部和数据之和的长度,单位为字节。最大长度为2^16-1=65535字节
  • 标识:占16位,计数器为每一个数据报产生的标识。数据报分片时要把标识复制,即分片数据报的标识相同
  • 标志:占3位,目前只有低两位有意义
    • MF(more fragment):MF=1表示后面还有分片,MF=0表示数据报分片中的最后一个
    • DF:不能分片,DF=0才能分片
  • 片偏移:占13位,单位为8字节。每个分片长度一定是8字节的整数倍
  • 生存时间TTL:占8位,可表示最大数255。TTL=0,丢弃该数据报
  • 协议:占8位,指明数据部分使用哪一种协议,以便上交指定处理过程
  • 首部检验和:占16位,只检验数据报的首部,不包括数据部分,高层协议自己解决数据完整性问题
  • 源地址:占32位
  • 目的地址:占32位
  • 可选字段:长度可变,1~40字节
  • 填充:全0,补齐首部长度为4字节的整数倍

3. 转发分组规则

  • IP数据报一定可以找到目的主机所在目的网络上的路由器
  • 只有到达最后一个路由器时,才试图向目的主机进行直接交付

由三类编址方案的出现顺序来分析

  • 分类的IP地址

    • 路由表项:<目的网络地址,下一跳地址>
    • 特定主机路由
      • 对特定的目的主机指明一个路由
      • 功能:让管理人员检测排错时更方便
    • 默认路由
      • IP数据报中的目的地址找不到存在的其他路由时,路由器所选择的路由
      • 功能:减少路由表所占的空间和搜索路由表所用的时间
      • 适用情况举例:网络1内有三个路由器,R2通网络2,R3通互联网,R1,三个路由器都接通网络1。R1的路由表中就可以把R3设置默认路由,只要数据报不是直连网络1或到达网络2,都直接交给默认路由R3
    1. 从数据报首部提取目的地址D,得出目的网络地址N
    2. 若N就是此路由器的直连网络,则直接交付(使用ARP将目的IP地址转换为硬件地址,使用链路层的协议进行通信);否则,执行3
    3. 若路由表中有目的地址为D的特定主机路由,则将数据报传送给路由表指明的下一跳路由器;否则,执行4
    4. 若路由表中有到达网络N的表项,则把数据报传送给路由表指明的下一跳路由器;否则,执行5
    5. 若路由表中有一个默认路由,则把数据报传送给路由表指明的下一跳路由器;否则。执行6
    6. 报告转发分组错误
  • 划分子网

    • 路由表项:<目的网络地址,子网掩码,下一跳地址>
    1. 从数据报首部提取目的地址D
    2. 判断是否为直连网络,若是,直接交付;否则,执行3
      • 判断方法:对路由器直接相连的网络逐个进行检查,用各网络的子网掩码和D逐位相与,看结果是否和目的网络地址匹配
    3. 若路由表中有目的地址为D的特定主机路由,则将数据报传送给路由表指明的下一跳路由器;否则,执行4
    4. 对路由表中每一表项,用其中的子网掩码和D逐位相与,其结果为N。若N与该行的目的网络地址匹配,则将数据报传送给路由表指明的下一跳路由器;否则,执行5
    5. 若路由表中有一个默认路由,则把数据报传送给路由表指明的下一跳路由器;否则。执行6
    6. 报告转发分组错误
  • 无分类编址CDIR(构造超网)

    • 路由表项:<网络前缀,下一跳地址>
    • 查找路由表时可能得到不止一个匹配结果,使用路由最长匹配原则
    • 不解:使用二叉线索树查找路由表时又说表项中有子网掩码

4. 划分子网和构造超网

划分子网

在IP地址中新增一个“子网号字段”,使两级的IP地址变成为三级的IP地址

⭐划分子网后,所有子网的子网掩码都是相同的(固定长度子网,所以之后才有VLSM)

  • 解决的问题
    1. IP地址空间利用率低:有的单位会申请B类网络也不愿意申请刚好够用的C类网络,造成IP地址的浪费
    2. 路由表太大:给每个物理网络分配一个网络号会使路由表变得太大,影响网络性能
    3. 两级IP地址不够灵活:一个单位想要开通新网络,还要去申请新的IP地址
  • 基本思路
    1. 将一个物理网络划分成若干个子网,对外表现仍然为一个网络
    2. 借用网络的主机号作为子网号,两级IP地址变为三级IP地址
    3. 其他网络发送数据报给划分子网的某单位,先根据数据报首部的目的地址提取网络号,找到该单位的路由器,再利用子网号找到目的子网,进行交付
  • 作用
    1. 减少广播带来的负面影响
    2. 提高IP地址空间利用率
    3. 提高安全性,网络小,容易部署安全策略
    4. 便于维护
  • 子网掩码
    • 功能
      1. 将IP地址划分成网络地址主机地址,因为从数据报首部无法看出IP地址是否进行子网划分
      2. 分辨IP地址是局域网内的还是广域网上的
    • 基本思路中的第三点,提取网络号和子网号都是利用了子网掩码
    • 子网掩码和IP地址逐位相与,得到的就是网络地址
    • 即便没有划分子网,也会使用子网掩码。因为使用子网掩码就能得到网络地址,路由器转发分组就能使用相同的算法

变长子网掩码VLSM

在CIDR出现之前,先出现了VLSM

一个划分子网的网络中可以同时使用几个不同的子网掩码

  • 作用
    1. 进一步提高IP地址资源的利用率(子网大小可以不相同
    2. 减少路由表大小

无分类编址CIDR(构造超网)

消除分类和划分子网的概念,统一使用网络前缀,使用斜线记法。把好几个网络前缀相同的连续IP地址结合成CIDR地址块

  • 解决的问题
    1. B类地址资源不充足
    2. 路由表项目数过多
  • 作用
    1. 进一步提高IP地址空间利用率(合并网段
    2. 减少路由表大小

CIDR不使用子网:是指CIDR不在32位IP地址中指明子网号字段。但网络划分子网后,该子网要适当延长其网络前缀

路由聚合(构造超网)

  • 某种程度上可以当作VLSM的逆过程
  • 作用:使路由表中一个项目可以表示原来传统分类地址的很多个路由

四、地址解析协议ARP

功能:在同一个局域网上,已经知道一个机器的IP地址,需要找出其相应的硬件地址

  • 认为归链路层的原因:为了获得数据链路层的硬件地址
  • 认为归网络层的原因:IP协议使用ARP协议

实验总结和ARP协议运行步骤

为什么不直接使用硬件地址进行通信

  1. 各式各样的网络使用不同的硬件地址,异构网络进行相互通信需要非常复杂的硬件地址转换工作
  2. 路由表需要把所有硬件地址记录下来,开销太大

免费ARP和ARP攻击

五、网际控制报文协议ICMP

目的:更有效地转发IP数据报和提高交付成功的机会

ICMP报文种类

  • ICMP差错报告报文
    1. 终点不可达:不能交付
    2. 时间超过:TTL为0被丢弃
    3. 参数问题:数据报首部字段出错
    4. 改变路由(重定向)
  • ICMP询问报文
    1. 回送请求和回答:测试目的站点是否可达
    2. 时间戳请求和回答:请求某台主机或路由器回答当前时间

ping程序:利用询问报文和差错报文,判断目的主机是否可达,报文的TTL由回来时的路由-1次数来决定

tracert程序:利用差错报告报文中的2跟踪路由。第一次发送TTL为1的报文,一跳后路由器TTL-1后等于0,会丢弃包并返回差错报告报文;第二次发送TTL为2的报文,以此类推

六、IP多播,网际组管理协议IGMP

向互联网上的多台主机发送同样的数据报。用单播要服务器进行多次发送。使用多播服务器发送一次,多播路由器进行复制转发

  • 多播路由器:能够运行多播协议的路由器,也可以转发普通的单播IP数据报

在局域网上进行硬件多播

使用以太网多播地址,D类多播IP地址转换成以太网的硬件多播地址

特点

  • 多播转发必须动态的适应多播组成员的变化
  • 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去
  • 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络

在互联网上进行多播

IGMP协议

  • 功能:让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组

多播路由选择协议

  • 功能:让连接在局域网上的多播路由器和互联网上的多播路由器协同工作,以便多播数据报用最小的代价传送给所有的组成员

七、路由选择协议

互联网采用的路由选择协议主要是自适应的(动态的)分布式路由选择协议

自治系统:在单一技术管理下的一组路由器

使用分层次的路由选择方法,把互联网的路由选择协议划分为:

  • 内部网关协议:一个自治系统内使用的路由选择协议
    • RIP
    • OSPF
  • 外部网关协议:源主机和目的主机在不同的自治系统中,当数据报传到一个自治系统的边界时,把路由选择信息传递到另一个自治系统中的路由选择协议
    • BGP

RIP

一种分布式基于距离向量的路由选择协议。要求网络中每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。

  • 距离:也称为跳数
    • 每经过一个路由器,跳数加1
    • 一条路径最多包含15个路由器,等于16为不可达
    • 只适用于小型互联网

特点

  • 三个要点:和哪些路由器交换信息?交换什么信息?在什么时候交换信息
    • 仅和相邻路由器交换信息
    • 路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表
    • 按固定的时间间隔交换路由信息(30秒
  • 路由器刚工作时,路由表时空的
  • RIP选择的是最短路由,哪怕还存在另一条高速(低时延)但路由器较多的路由
  • 基于UDP

优点

  • 实现简单,开销较小

缺点

  • 限制网络规模:最大距离为15
  • 随着网络规模扩大,开销增加:路由器之间交换的是完整的路由表
  • 好消息传得快,坏消息传得慢:坏消息要传数分钟,因为每次路由器交换信息相隔30秒
    1. 唯一一个连接某个网络3的路由器1的接口坏了,路由器1设置到达该网络距离为16
    2. 路由器1与旁边的路由器2交换信息时,路由器2到达网络3的距离为2
    3. 路由器1利用路由器2交换的信息将到达网络3的距离设置为3(误以为能通过路由器2到达网络3)
    4. 路由器2利用路由器1交换的信息将到达网络3的距离设置为4
    5. 234循环直到路由器1和2到网络3的距离都增大到16时,才知道网络3不可达

距离向量算法

  • 路由表有关信息<目的网络N,距离d,下一跳X>
  1. 对地址为123的相邻路由器发来的RIP报文,先修改报文中的所有项目
    • 所有下一跳X字段中的地址改为123
    • 所有距离d字段的值+1
  2. 对修改后的RIP报文的每一个项目,进行以下步骤
    • 原来路由表中没有目的网络N,则把该项目添加到路由器中
    • 原来路由表中有目的网络N,查看收到的项目的下一跳X
      • 若下一跳X是123,则把收到的项目替换原路由表中的项目
      • 若下一跳X不是123,即这个项目是到达网络N,但下一跳X不是123
        • 若收到的项目中的距离d小于路由表中的距离,则进行更新
        • 若收到项目中的距离d不小于路由表中的距离,什么都不做
  3. 3分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器记为不可达的路由器,即把距离设置为16
  4. 返回

OSPF

开放最短路径优先,克服了RIP的缺点,使用分布式链路状态协议

  • 开放:公开发表,不是受一家厂商控制
  • 最短路径优先:使用了Dijkstra提出的最短路径算法

特点

  • 三个要点:和哪些路由器交换信息?交换什么信息?在什么时候交换信息
    • 使用洪泛法本自治系统中所有路由器发送信息
    • 路由器交换的信息是本路由器相邻的所有路由器的链路状态
      • 链路状态:说明本路由器和哪些路由器相邻,以及该链路的度量
      • 度量:费用、距离、时延、带宽等,由网络管理人员决定
    • 只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息
  • OSPF不用UDP而是直接使用IP数据报传送
  • OSPF对于不同类型的业务可以计算出不同的路由
  • 多路径的负载均衡:如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径
  • 所有在OSPF路由器之间交换的分组都具有鉴别功能
  • OSPF支持可变长度的子网划分和无分类编址CIDR
  • 每一个链路状态都带上一个32位的序号,序号越大状态就越新

优点

  • 更新过程收敛快
  • 能用于规模很大的自治系统。因为使用层次结构的区域划分将一个自治系统划分成多个区域,区域内部交换路由信息的通信量小

缺点

  • 配置复杂
  • 负载均衡能力弱。只有相同优先级的才能进行负载均衡,不能根据优先级自动匹配

迪杰斯特拉单源最短路径算法

每个路由器先频繁交换信息建立一个链路状态数据库,即全网的拓扑结构网。路由器利用链路状态数据库的数据并通过迪杰斯特拉算法构造自己的路由表

五种分组类型

  • 类型1:问候分组,用来发现和维持邻站的可达性
    • 每两个相邻路由器每隔10秒钟就要交换一次问候分组
    • 40秒钟没有收到某个相邻路由器的问候分组,则可认为该相邻路由器不可达,立即修改链路状态数据库,并且重新计算路由表
  • 类型2:数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
    • 摘要信息:指出有哪些路由器的链路状态信息已经写入数据库
  • 类型3:链路状态请求分组,向对方请求发送某些链路状态项目的详细信息
  • 类型4:链路状态更新分组,用洪泛法向全网更新链路状态
  • 类型5:链路状态确认分组,对链路更新分组的确认

BGP

边界网关协议,不同自治系统的路由器之间交换路由信息的协议。

  • 力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
  • 采用路径向量路由选择协议
  • 每个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人

原因

  • 互联网规模太大,使得自治系统AS之间路由选择非常困难
    • 假如使用OSPF,链路状态数据库会很大,迪杰斯特拉算法计算花费的时间会很长
  • 自治系统AS之间的路由选择必须考虑有关策略
    • 按RIP的距离或OSPF的优先级进行路由,国内的通信就有可能经过国外的路由器

特点

  • 基于TCP
  • BGP发言人数很少,路由选择相对简单
  • BGP支持无分类域间路由选择CIDR
  • BGP刚运行时,和邻站交换整个BGP路由表,以后只需要更新变化的部分

八、虚拟专用网VPN

专用地址

  • 只能用于一个机构的内部通信,不能用于和互联网上的主机通信的IP地址
  • 范围
    • 10.0.0.0到10.255.255.255
    • 172.16.0.0到172.32.255.255
    • 192.168.0.0到192.168.255.255
  • 互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发

专用网:采用专用IP地址的互连网络

虚拟专用网

使用IP隧道技术实现,在公用网络上建立专用网络,进行加密通讯

  • 虚拟:好像是,但实际上并不是,因为没有使用真正的通信专线

出现原因:当专用网不同网点之间的通信必须通过公用的互联网,但又有保密的要求(比如在家里要上学校的内网)

如何实现

  1. 每个场所至少要有一个路由器具有合法的全球IP地址
  2. 两个路由器和互联网的接口必须是合法的全球IP地址
  3. 两个路由器和专用网的接口地址是专用网的本地地址
  4. 当数据报要通过公用网络时
    • 路由器要对数据报进行加密,并重新加上数据报的首部,封装成为在互联网发送的数据报
    • 当数据报到达目的网络的路由器,路由器进行解密,恢复原来的内部数据包

九、网络地址转换NAT

在NAT路由器上将本地地址转换为全球IP地址,NAT路由器至少要有一个全球IP地址

出现原因:专用网内部的一些主机想要和互联网上的主机通信,需要申请一些全球IP地址,而IPv4地址资源不足

posted @ 2020-08-06 22:37  肥斯大只仔  阅读(507)  评论(0编辑  收藏  举报