计算机网络(第7版)谢希仁著 学习笔记 第四章网络层

计算机网络(第7版)谢希仁著 学习笔记 第四章网络层

  • 第四章 网络层
    • 4.3划分子网和构造超网 p134
      • 4.3.1划分子网
      • 4.3.2使用子网时分组的转发
      • 4.3.3无分类编址CIDR(构建超网)
    • 4.4网际控制报文协议ICMPp147
      • 4.4.1 ICMP报文的种类
      • 4.4.2 ICMP的应用举例
    • 4.5路由选择协议
      • 4.5.1有关路由选择协议的几个基本概念
      • 4.5.2内部网关协议RIP
      • 4.5.3内部网关协议OSPF
      • 4.5.4外部网关协议BGP

汇总链接

第四章 网络层

4.3划分子网和构造超网 p134

4.3.1划分子网

  • 之前的IP地址是两级IP(网络号|主机号),由于不够灵活1958年在IP地址中增加了子网号段,使IP地址变为了三级IP(网络号|子网号|主机号),也称为划分子网。
  • 因为无法看出一个IP地址是否进行了子网划分,所以有了子网掩码。
  • IP地址和子网掩码按位与得出网络地址,无论该网络是否划分了子网。
  • 划分子网增加了IP地址的灵活性,但却减少了能连接在网络上的主机总数。(现在全1和全0的子网号也可以使用了)
  • 在进入一个划分了子网的网络前,其子网掩码是就是网络位长度,进入后该网络内部的路由表上的IP地址的子网掩码即为带上子网号的后的长度。

4.3.2使用子网时分组的转发

  • 子网划分后路由表包含:目的网络地址(不是IP地址)、子网掩码、下一跳地址(是IP地址)
  • 路由器分组转发顺序:直接交付→特定主机路由→遍历路由表→默认路由
  • 路由器分组转发步骤:
    ①提取目的IP地址D
    ②直接交付:遍历直连网络(用各网络子网掩码和D按位与,看是否与相应的网络匹配)。若匹配发给该直连网络。【只要不是一个子网,就要交给路由器进行间接交付】
    ③特定主机路由:查找路由表内有无目的地址为D的特定主机路由。若有发给其指定地址。
    ?疑问,那路由表中的特定主机路由的目的网络地址,是直接是完整IP地址吗?
    ④遍历路由表:遍历路由表(用D与每行子网掩码按位与,看是否与其目的网络地址匹配)。若匹配发给下一跳地址。
    ⑤默认路由:若有指定默认路由,直接发给其指定的默认路由。
    ⑥报告转发分组出错
    自己错误理解:②和④的区别就是②的下一跳地址就是自己,即目的地址=下一跳地址。真正主要区别是②不经过路由器直接交付,而④需要经过路由器间接交付。

4.3.3无分类编址CIDR(构建超网)

  • 背景:IETF研究出CIDR(无分类域间路由选择)。2011年2月3日IANA宣布IPV4地址耗尽。
  • CIDR完全打破了传统分类地址与子网划分概念,又成为了二级IP(网络前缀|主机号)
  • CIDR使用了斜线记法,即IP地址后加/然后写上网络前缀的位数。
  • CIDR使用32位的地址掩码,也可继续称为子网掩码。
  • CIDR把网络前缀都相同的连续IP地址组成一个CIDR地址块,这些地址的聚合称为路由聚合。
  • 使用CIDR时路由表包含:网络前缀、下一跳地址。此时使用最长前缀匹配原则。
  • 使用CIDR后需要匹配最长前缀,所以如何减少查找时间成了重要问题,书中提到常用的是二叉线索查找,没有细看(p146-147)。

4.4网际控制报文协议ICMPp147

  • 背景:为更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP。ICMP报文封装在IP数据报的数据部分。
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第1张图片

4.4.1 ICMP报文的种类

  • ICMP报文有两种:
    ①ICMP差错报告报文有四种:终点不可达、时间超过、参数问题、改变路由(重定向)。
    ICMP差错报告报文中的数据字段都具有同样的格式:把IP数据报的首部和数据字段的前8个字节【为得到运输层端口号(TCP、UDP),运输层报文发送序号(TCP)】提取出来作为ICMP报文的数据字段。再加上ICMP差错报告报文的前8个字节,构成了ICMP差错报告报文。计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第2张图片
    ②ICMP询问报文有两种:回送请求和回答、时间戳请求和回答。

4.4.2 ICMP的应用举例

  • 一个重要应用就是分组网间探测PING(Packet InterNet Grouper)。
  • 另一个重要应用是Traceroute(UNIX)、tracert(Windows),返回到达主机所经过的路由器的IP地址。
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第3张图片

4.5路由选择协议

4.5.1有关路由选择协议的几个基本概念

  • 理想的路由算法应该具备的特点
    ①算法必须是正确的和完整的
    ②算法在计算上应简单
    ③算法应能适应通信量和网络拓扑的变化(自适应性)
    ④算法应具有稳定性
    ⑤算法应是公平的
    ⑥算法应是最佳的

  • 从路由算法能否随网络的通信量或拓扑自适应地进行调整变化可分成两类:静态路由选择策略(非自适应路由选择)、动态路由选择策略(自适应路由选择)

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

  • 出于互联网规模与隐私性考虑,可以把整个互联网划分为许多较小的自治系统(autonomous system),一般记为AS。

  • 一个AS对其他AS表现出的是一个单一的一致的路由选择策略。

  • 使用分层次的路由选择方法,可以将互联网把路由选择协议划分成两类:
    ①内部网关协议IGP:在一个自治系统内部使用的路由选择协议(如RIP、OSPF)
    ②外部网关协议EGP:不同自治系统的主机传递信息使用的路由选择协议(BGP)
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第4张图片

  • 自治系统之间的路由选择也叫作域间路由选择,自治系统内部的路由选择也叫作域内路由选择。

  • 早期有一个协议叫做EGP,后来设计了更好的外部网关协议BGP取代了EGP,需要辨析一下现在碰到的EGP大多是指路由选择协议的类别。

4.5.2内部网关协议RIP

  • RIP是一种分布式的基于距离向量的路由选择协议,RIP要求网络中的每一个路由器都维护自己到其他每一个目的网络的距离记录,这一组距离即为距离向量。
  • RIP中跳数达到16即为不可达,所以RIP只适用与中小互联网。
  • 学习路由选择协议是必须要清晰明白三个要点:①和哪些路由器交换信息②交换什么信息③在什么时候交换信息。
  • RIP的三要点:①和相邻路由器交换信息②交换本路由器所知道的全部信息(即路由表)③按固定的时间间隔交换。
  • 收敛:在自治系统中所有节点都得到正确的路由选择信息的过程。
  • 在一般情况下,RIP协议可以收敛,并且过程比较快,但是当网络出故障时收敛很慢(好消息传播快、坏消息传播慢)。
  • RIP路由表更新的原则是找出每个目的网络的最短距离,这种更新算法又称距离向量算法。
  • RIP中收到相邻路由器的更新步骤:
    ①地址为X的路由器发来RIP报文后,先将报文中所有项目修改,所有下一跳地址改成X,将所有距离字段+1。(每一行有三个关键数据:目的网络N、距离d、下一跳路由器X)
    ②若原来的路由表中没有目的网络N,则将该项目添加进去
    ③否则,则看下一跳地址。
    ③.1 若下一跳地址为X,则替换
    ③.2 否则,比较距离d,若比之前小则替换,否则什么都不做。
    ④若3分钟还没收到相邻路由器的更新路由表,则将此相邻路由器的距离设置成16(不可达路由器)。
  • RIP协议让一个自治系统中所有的路由器都和自己的相邻路由器定期交换路由信息,不断更新路由表,使每一个路由器到每一个目的网络的路由都是最短的(跳数最少)。
  • RIP2可以支持变长子网掩码和无分类域间路由选择CIDR,也支持多播及提供简单的鉴别。
  • RIP协议使用运输层的用户数据报UDP进行传送(使用UDP端口520)。
  • RIP报文由首部和路由部分组成。首部4字节,RIP1和RIP2首部相同。
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第5张图片
    路由标记自治系统号(ASN)。
  • RIP优点是实现简单、开销小,缺点是限制网络规模、坏消息传播慢。

4.5.3内部网关协议OSPF

  • 开发最短路径优先OSPF(Open Shortest Path First),开放表明OSPF协议不是受一家厂商控制而是公开发表的,最短路径优先是因为使用了Dijkstra提出的最短路径算法SPF。

  • OSPF使用分布式的链路状态协议。

  • OSPF的三个要点(Who、What、When):
    ①向自治系统中所有路由器发送消息(洪泛法?不是泛洪),路由器通过输出端口向所有相邻路由器发送信息,然后每个收到信息的路由在向它所有相邻路由器(除去刚刚发来信息的路由器)发送信息,直到整个区域的路由器都收到这个信息的副本。
    ②发送的信息就是本路由器相邻的所有路由器的链路(网络)状态,即本路由器与哪些路由器相邻,以及该链路的度量(网络管理人员设置)。
    ③只有当链路状态发生变化时,路由器才向所有路由器用泛洪法发送此信息。

  • 在OSPF中,由于各路器之间频繁交换链路状态信息,所以所有路由器最终都能建立一个链路状态数据库,这个数据库就是全网的拓扑结构图。

  • OSPF的链路状态数据库能较快地进行更新,OSPF的更新过程收敛得快是其重要优点。

  • OSPF将一个自治系统再划分为若干个更小的范围叫做区域(一个区域内路由器最好不超过200个)。

  • 划分区域的好处是把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,这样减少了整个网络上的通信量。

  • 在一个区域内部的路由器只知道本区域的完整网络拓扑,为使每个区域能和其他区域通信,OSPF使用层次结构的区域划分,在上层的区域叫做主干区域,用来连通其他下层区域。

  • 从其他区域来的信息都通过区域边界路由器进行概括,每个区域都至少应当有一个区域边界路由器,在主干区域内的路由器叫做主干路由器(可以同时是区域边界路由器),在每个主干区域内还需要有一个自治系统边界路由器专门负责与其他自治系统交换路由信息。
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第6张图片

  • OSPF采用分层次划分区域的方法,使每一个区域内交换路由信息的通信量大大小减小,因而可以用于很大规模的自治系统中。

  • OSPF不用UDP而是直接用IP数据报传送(IP数据报首部协议字段为89),OSPF构成的数据报很短(所以无需分片)。

  • OSPF首部字段:
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第7张图片
    类型是OSPF五种分组类型之一,路由器标识符是发送改分组的路由器接口IP地址。

  • OSPF特点:
    ①允许管理员给每条路由指派不同的代价(1-65535),OSPF对于不同类型的业务可计算出不同的路由。
    ②若到同一个网络有多条代价相同的不同路径,OSPF可以将通信量分配给多条路径,实现多路径间的负载平衡。
    ③所有在OSPF路由器之间交换的分组,都具有鉴别功能。
    ④OSPF支持可变长度的子网划分和无分类的编址CIDR。
    ⑤OSPF每个链路状态都有一个32位的序号,序号越大状态就越新(增长速率不能超过5s/次)。

  • OSPF的五种分组类型:
    ①Hello分组,用来发现和维持邻站的可达性。
    ②数据库描述分组,向邻站发送自己的链路状态数据库中各链路状态的摘要信息(有哪些路由器的链路状态信息及序号已经写入数据库)。
    ③链路状态请求分组,向对方发送某些链路状态项目的详细信息。
    ④链路状态更新分组,用洪泛法对全网更新链路状态。(OSPF最核心部分)
    ⑤链路状态确认分组,对链路更新分组的确认。

  • OSPF规定,相邻路由器每隔10s要交换一次Hello分组来确定哪些邻站是可达的。在正常情况下网络中传达的绝大部分OSPF分组都是Hello分组,若40s没有收到某邻站的Hello分组则视为该邻站不可达,应立即修改链路状态数据库重新计算路由表。
    -OSPF除Hello分组以外的四种分组都用来进行链路状态数据库的同步,同步是指不同路由器的链路状态数据库完全相同,两个同步的路由器叫做完全邻接路由器,不是完全邻接的路由器则只是在物理上是相邻的而其链路状态数据库并没有达到一致。
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第8张图片

  • OSPF路由器使用的是可靠的洪泛法,就是在收到更新分组后要发送确认(收到重复分组只需要发送一次确认)。
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第9张图片

  • 为确保链路状态数据库与全网的状态保持一致,OSPF规定每隔一段时间要刷新一次数据库中的链路状态,

  • OSPF协议对多点接入的局域网采用了指定的路由器,指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。

4.5.4外部网关协议BGP

  • 互联网的规模太大,使得自治系统AS之间路由选择非常困难,使自治系统之间交换可达性信息比较合理。

  • 自治系统之间的路由选择必须考虑有关策略,实际上最终是找一条能够达到目的地的较好的路由而不是最佳路由。

  • BGP就是寻找一条较好的路由,采用了路径向量路由选择协议。(RIP是距离向量协议,OSPF是链路状态协议)

  • 配置BGP时,每个AS里管理员都要最少选择一个路由器作为BGP发言人,BGP发言人往往就是BGP边界路由器。

  • BGP发言人与其他AS中的BGP发言人要交换路由信息,就要先建立TCP连接(端口号179),在此连接上交换BGP报文以建立BGP会话,建立此连接的两个BGP发言人彼此成为对方的邻站或对等站。

  • 每个BGP发言人在运行BGP协议的同时,还需要运行它所在的AS中所使用的IGP。

  • BGP所交换的网络可达性信息就是要到达某个网络所要经过的一系列AS,各BGP发言人根据所采用的策略从收到的路由信息中找出到达各自治系统的较好路由。
    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第10张图片
    BGP发言人构造出的AS连通图是树形结构,不存在回路。

  • 互联网多级结构的网络拓扑决定了BGP路由选择协议的特点。

  • BGP协议交换路由信息的结点数量级是自治系统个数的数量级,这要比自治系统中的网络数少很多。

  • 要在许多AS之间寻找一条较好的路径,就是寻找正确的BGP发言人(或边界路由器),而在每一个AS中BGP发言人(或边界路由器)的数目是很少的,这样使AS之间的路由选择不过分复杂。

  • BGP支持CIDR,因此BGP的路由表应当包括目的网络前缀、下一跳路由器、到达目的网络所要经过的AS序列。

  • 当BGP发言人收到其他BGP发言人发来的路径通知,要检查本AS是否在此通知的路径中,若在则不能采用这条路径,因为兜圈子了。

  • BGP刚运行时,BGP的邻站是交换整个BGP的路由表,以后只需要在发生改变时更新有变化的部分。

  • BGP-4的四种报文:
    ①OPEN报文,用来与相邻的BGP发言人建立关系,使通信初始化。
    ②UPDATE报文(BGP核心内容),用来通告某一路由信息,以及列出要撤销的路由们。
    ③KEEPALIVE报文(只用BGP报文首部,19字节长),用来周期性地证实邻站的连通性。 ④NOTIFICATION报文,用来发送检测到的差错。

  • BGP协议的运行:
    ①开始想邻站商谈发送OPEN报文,若邻站接受建立关系就用KEEPALIVE报文响应。
    ②建立邻站关系后,两个BGP发言人就要周期性交换KEEPALIVE报文(一般间隔30s)。
    ③BGP发言人可以用UPDATE报文撤销(可以多条)它以前通知过的路由,也可以宣布增加(只能一条)新的路由。

  • 距离向量算法往往不能给出正确的选择,因为这些算法不能指出哪些邻站到目的站的路由是独立的。

  • BGP报文格式,四种类型BGP报文具有同样的通用首部:
    ①通用首部长度为19字节,分为三个部分:

    ①.1 标记字段用来鉴别(长16字节),不使用鉴别时设置全1。
    ①.2 长度字段指出包括首部在内整个BGP报文的长度(最小值19最大值4096)。
    ①.3 类型字段的值为1到4,分别对应BGP的四种报文。

计算机网络(第7版)谢希仁著 学习笔记 第四章网络层_第11张图片
②OPEN报文有6个字段。

②.1 版本(1字节)。
②.2 本自治系统号(2字节)是全球唯一的16位自治系统号(ICANN分配)。
②.3 保持时间(2字节),以秒计算保持为邻站关系的时间。
②.4 BGP标识符通常是该路由器的IP地址。
②.5 可选参数长度(1字节)。
②.6 可选参数。

③UPDATE报文有5个字段。

③.1 不可行路由长度(2字节),指明下一个字段的长度。
③.2 撤销的路由,列出所有要撤销的路由。
③.3 路径属性总长度(2字节),指明下一个字段的长度。
③.4 路径属性,定义在这个报文中增加的路径的属性。
③.5 网络层可达性信息NLRI,定义发出此报文的网络,包含网络前缀的位数、IP地址前缀。

④KEEPALIVE报文,只有BGP的19字节长的通用首部。
⑤NOTIFICATION报文有3个字段。

⑤.1 差错代码(1字节)。
⑤.2 差错子代码(1字节)。
⑤.3 差错数据,给出有关差错的诊断信息。

你可能感兴趣的:(#,计算机网络,网络,计算机网络,学习)