计算机网络原理笔记(四、网络层)

4.网络层

4-1.网络层提供的两种服务

可靠交付*or最大努力交付*

  • 面向连接、无差错交付的虚电路服务–电信网
  • 无连接的、尽最大努力交付的数据报服务–因特网

因特网的优点:网络的造价大大降低,运行方式灵活,能够适应多种应用。

虚电路服务与数据报服务的对比
对比的方面虚电路服务数据报服务
思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证
连接的建立 必须有 不需要
终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址
分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发
当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序 总是按发送顺序到达终点 到达终点时不一定按发送顺序
端到端的差错处理和流量控制 可以由网络负责,也可以由用户主机负责 由用户主机负责

4-2.网际协议(IP)

4-2-1.虚拟互连网络

网络互相连接起来要使用一些中间设备,中间设备又称为中间系统中继(relay)系统

  • 物理层中继系统:转发器(repeater)
  • 数据链路层中继系统:网桥或桥接器(bridge)
  • 网络层中继系统:路由器(router)
  • 网络层以上的中继系统:网关(gateway)
  • 网桥和路由器的混合物:桥路器(brouter)。

    由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。

  • 所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。

  • 使用 IP 协议的虚拟互连网络可简称为 IP 网。
4-2-2.分类的IP地址

IP 地址现在由因特网名字与号码指派公司ICANN (Internet Corporation for Assigned Names and Numbers)进行分配

4-2-2-1.IP地址及其表示方法
  • IP地址中的网络号和主机号字段
    IP地址中的网络号和主机号字段

  • 点分十进制记法
    点分十进制记法

  • 常用的三种类别的IP地址的使用范围
常用的三种类别的IP地址的使用范围
网络类别最大网络数第一个可用的网络号最后一个可用的网络号每个网络中最大的主机数
A126(27-2)112616777214(224-2)
B16383(214-1)128.1191.25565534(216-2)
C2097151(221-1)192.0.1223.255.255254(28-2)
4-2-2-2.IP相关知识点
  • IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。

  • 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。

  • 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。

  • 在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。

  • 网络层及以上使用 IP 地址

  • 链路层及以下使用硬件地址
4-2-3.地址解析协议ARP

每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

4-2-3-1.使用ARP协议的四种典型情况
  • 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
  • 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
  • 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
  • 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。
4-2-4.IP数据报的格式
  • 一个 IP 数据报由首部和数据两部分组成。
  • 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的。

IP数据报的格式

  • 版本——占 4 位,指 IP 协议的版本,例如IPv4
  • 首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节。
  • 区分服务——占 8 位,用来获得更好的服务
    在旧标准中叫做服务类型,但实际上一直未被使用过。
    1998 年这个字段改名为区分服务。
    只有在使用区分服务(DiffServ)时,这个字段才起作用。
    在一般的情况下都不使用这个字段。
  • 总长度——占 16 位,指首部和数据之和的长度,
    单位为字节,因此数据报的最大长度为 65535 (216-1)字节。
    总长度必须不超过最大传送单元 MTU【最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。】
  • 标识(identification)占 16 位,它是一个计数器,用来产生数据报的标识。
  • 标志(flag) 占 3 位,目前只有前两位有意义。
    标志字段的最低位是 MF (More Fragment)。
    MF 1 表示后面“还有分片”。MF 0 表示最后一个分片。
    标志字段中间的一位是 DF (Don’t Fragment) 。
    只有当 DF 0 时才允许分片。
  • 片偏移(13 位)指出:较长的分组在分片
    某片在原分组中的相对位置。
    片偏移以 8 个字节为偏移单位。
  • 生存时间(8 位)记为 TTL (Time To Live)
    数据报在网络中可通过的路由器数的最大值。
  • 协议(8 位)字段指出此数据报携带的数据使用何种协议
    以便目的主机的 IP 层将数据部分上交给哪个处理过程
  • 首部检验和(16 位)字段只检验数据报的首部
    不检验数据部分。
    这里不采用 CRC 检验码而采用简单的计算方法。
  • 源地址占 4 字节
  • 目的地址占4字节
  • IP数据报首部的可选字段
    • IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。
    • 选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。
    • 增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。
    • 实际上这些选项很少被使用。

IP数据报分片

IP数据报分片

4-2-5.IP层换发分组的流程

分组转发算法

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

相关概念

  • IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。
  • 当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。
  • 网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。

4-3.划分子网和构造超网

4-3-1.划分子网

从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。

原来是两级,网络号,主机号,现在是三级,网络号(net-id),主机号(host-id),子网号(subnet-id)。

4-3-1-1.划分子网的基本思路
  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
  • 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
  • 划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。

    • 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。
    • 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。
    • 最后就将 IP 数据报直接交付目的主机。
4-3-1-2.子网掩码
  • 从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
  • 使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。
  • 子网掩码是一个重要属性
    • 子网掩码是一个网络或一个子网的重要属性。
    • 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
    • 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
    • 若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

将IP地址划分为网络地址和本地地址两部分

屏蔽一个IP地址的网络部分的“全1”比特模式。

对于A类地址来说,默认的子网掩码是255.0.0.0;

对于B类地址来说默认的子网掩码是255.255.0.0;

对于C类地址来说默认的子网掩码是255.255.255.0。

对应数值为255的IP地址为网络地址;

对应数值为0的IP地址位为本地地址。

子网掩码

关于子网掩码的两个例题

子网掩码例1

子网掩码例2

4-3-2使用子网掩码的分组转发过程
  • 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。
    -但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
  • 因此分组转发的算法也必须做相应的改动。

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

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

图解路由器分组转发步骤

路由器分组转发

4-3-3.无分类编址(CIDR)【无分类域间路由选择】

  • 1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步提高 IP 地址资源的利用率。
  • 在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。
4-3-3-1.CIDR的主要特点
  • CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
  • CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
  • IP 地址从三级编址(使用子网掩码)又回到了两级编址。
4-3-3-2.CIDR地址块
  • 128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。
  • 这个地址块的起始地址是 128.14.32.0。
  • 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。
  • 128.14.32.0/20 地址块的最小地址:128.14.32.0
  • 128.14.32.0/20 地址块的最大地址:128.14.47.255
  • 全 0 和全 1 的主机号地址一般不使用。

图解CIDR地址块

CIDR地址块

CIDR记法的其他形式

  • 10.0.0.0/10 可简写为 10/10,也就是将点分十进制中低位连续的 0 省略。
  • 10.0.0.0/10 相当于指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0,即

    11111111 11000000 00000000 00000000

  • 网络前缀的后面加一个星号 * 的表示方法
    • 如 00001010 00*,在星号 * 之前是网络前缀,而星号 * 表示 IP 地址中的主机号,可以是任意值。
4-3-3-3.路由聚合(构成超网)
  • 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
  • 路由聚合也称为构成超网(supernetting)。
  • CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。
  • 对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。
4-3-3-4.最长前缀匹配
  • 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
  • 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配(longest-prefix matching)。
  • 网络前缀越长,其地址块就越小,因而路由就越具体(more specific) 。
  • 最长前缀匹配又称为最长匹配或最佳匹配。
4-3-3-5.使用二叉线索查找路由
  • 当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。
  • 为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索(binary trie)。
  • IP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。
  • 为了提高二叉线索的查找速度,广泛使用了各种压缩技术。

4-4.网际控制报文协议ICMP

  • 为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
  • ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
  • ICMP 不是高层协议,而是 IP 层的协议。
  • ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
    ICMP报文的格式
4-4-1.ICMP报文的种类
  • ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
  • ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
4-4-1-1.ICMP差错报告报文

发送ICMP差错报文的五种情况

  • 终点不可达
  • 源点抑制(Source quench)
  • 时间超过
  • 参数问题
  • 改变路由(重定向)(Redirect)

不应发送ICMP差错报文的四种情况

  • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
  • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
  • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
  • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
4-4-1-2.ICMP询问报文
  • 回送请求和回答报文
  • 时间戳请求和回答报文

  • 下面的几种 ICMP 报文不再使用

    • 信息请求与回答报文
    • 掩码地址请求和回答报文
      -路由器询问和通告报文
4-4-2.ICMP的应用
  • ping
  • traceroute

4-5因特网的路由选择协议

4-5-1.分层次的路由选择协议
  • 因特网采用分层次的路由选择协议。
  • 因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。
  • 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。
4-5-1-1.自治系统AS
  • 自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
  • 现在对自治系统 AS 的定义是强调下面的事实:尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。
4-5-1-2.因特网有两大类路由选择协议
  • 因特网的早期 RFC 文档中未使用“路由器”而是使用“网关”这一名词。但是在新的 RFC 文档中又使用了“路由器”这一名词。应当把这两个属于当作同义词。
  • IGP 和 EGP 是协议类别的名称。但 RFC 在使用 EGP 这个名词时出现了一点混乱,因为最早的一个外部网关协议的协议名字正好也是 EGP。因此在遇到名词 EGP 时,应弄清它是指旧的协议 EGP 还是指外部网关协议 EGP 这个类别。

1.内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。—–域内路由选择

2.外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。—–域间路由选择

4-5-2.内部网关协议IGP—RIP
4-5-2-1.RIP协议的工作原理
  • 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
  • RIP 是一种分布式的基于距离向量的路由选择协议。
  • RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。

    距离的定义

  • 从一路由器到直接连接的网络的距离定义为 1。
  • 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
  • RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
    这里的“距离”实际上指的是“最短距离”,
  • RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
  • RIP 允许一条路径最多只能包含 15 个路由器。
  • “距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。
  • RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
4-5-2-2.RIP协议的三个要点
  • 仅和相邻路由器交换信息。
  • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
  • 按固定的时间间隔交换路由信息,例如,每隔 30 秒。
4-5-2-3.路由表的建立
  • 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
  • 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
  • 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
  • RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。
  • RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。
  • 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。
4-5-2-4.距离向量算法
收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
    否则
       若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。
       否则 
           若收到项目中的距离小于路由表中的距离,则进行更新,
    否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。
(4) 返回。
4-5-2-5.RIP2协议的报文格式

RIP协议的报文格式

4-5-2-6.RIP协议的优缺点
  • RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
  • RIP 协议最大的优点就是实现简单,开销较小。
  • RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
  • 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
  • 好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。
4-5-3.内部网关协议IGP—OSPF
4-5-3-1.OSPF协议的基本信息 (Open Shortest Path First)
  • “开放(Open)”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
  • “最短路径优先(Shortest Path First)”是因为使用了 Dijkstra 提出的最短路径算法SPF
  • OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
  • 是分布式的链路状态协议
  • 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
  • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

    “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。

  • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
  • OSPF 不用 UDP 而是直接用 IP 数据报传送。
  • OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
  • 当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
4-5-3-2.链路状态数据库
  • 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
  • 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
  • OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。
4-5-3-3.划分区域
  • 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。
  • 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
  • 区域也不能太大,在一个区域内的路由器最好不超过 200 个。
  • OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
4-5-3-4.OSPF协议的报文格式

OSPF协议的报文格式

4-5-3-5.OSPF的五种分组类型
  • 类型1,问候(Hello)分组。
  • 类型2,数据库描述(Database Description)分组。
  • 类型3,链路状态请求(Link State Request)分组。
  • 类型4,链路状态更新(Link State Update)分组,
    用洪泛法对全网更新链路状态。
  • 类型5,链路状态确认(Link State Acknowledgment)
    分组。
    指定的路由器????
4-5-4.外部网关协议BGP
  • 因特网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。
    • 当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。
    • 比较合理的做法是在 AS 之间交换“可达性”信息。
  • 自治系统之间的路由选择必须考虑有关策略。
  • 因此,边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
4-5-4-1.BGP发言人
  • 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” 。
  • 一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
  • 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
  • 使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
  • 使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。
4-5-4-2.BGP协议的特点
  • BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
    -在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
4-5-4-3.BGP报文
  • (1) 打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。
  • (2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
  • (3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
  • (4) 通知(NOTIFICATION)报文,用来发送检测到的差错。

在 RFC 2918 中增加了 ROUTE-REFRESH 报文,用来请求对等端重新通告。

BGP报文

4-5-5.路由器在网际互联中的作用
4-5-5-1.路由器的结构
  • 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。
  • 下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。

典型的路由器结构

“转发”和“路由选择”的区别

  • “转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
  • “路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
  • 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
  • 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别,
4-5-5-2.路由器转发分组的步骤

交换结构(Switching fabric)为通过正确端口将输入到一个网络节点的数据移动到网络下一节点的硬件和软件的集合。它隐含着,交换机似乎只是一个硬件。交换结构包括节点的开关电源、包含的集成电路以及控制开关路径的程序。交换结构独立于总线技术和用于在节点之间移动数据的基础设施,也分离于路由器。它有时用来表示网络中所有的交换硬件和软件。

三种方式:通过存储器,通过总线,通过互连网络

  1. 输入端口对线路上收到的分组的处理
    1. 从线路接收分组
    2. 物理层处理
    3. 数据链路层处理
    4. 网络层处理,分组排队,查表和转发
    5. 交换结构
  2. 输出端口将交换结构传送来的分组发送到线路
    1. 交换结构
    2. 网络层处理,分组排队,缓存管理
    3. 数据链路层处理
    4. 物理层处理
    5. 向线路发送分组
  • 若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
  • 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

4-6.IP多播

图解IP多播

  • (1) 多播使用组地址—— IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。
  • (2) 永久组地址——由因特网号码指派管理局 IANA 负责指派。
  • (3) 动态的组成员
  • (4) 使用硬件进行多播
4-6-1.在局域网上进行硬件多播
  • 因特网号码指派管理局 IANA 拥有的以太网地址块的高 24 位为 00-00-5E。
  • 因此 TCP/IP 协议使用的以太网多播地址块的范围是:从 00-00-5E-00-00-00
    到 00-00-5E-FF-FF-FF
  • D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。

局域网IP多播

4-6-2.网际组管理协议IGMP和多播路由选择协议
  • 为了使路由器知道多播组成员的信息,需要利用网际组管理协议 IGMP (Internet Group Management Protocol)。
  • 连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。
4-6-2-1.网际组管理协议IGMP
  • IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
  • 和 ICMP 相似,IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。
  • 因此,我们不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。

IGMP的两个阶段

  • 第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。
  • 第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
    • 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
    • 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。

相关知识

  • 在主机和多播路由器之间的所有通信都是使用 IP 多播。
  • 多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认的询问速率是每 125 秒发送一次。
  • 当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。
  • 在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。
  • 同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了。
4-6-2-2.多播路由选择

多播路由选择协议尚未标准化。

转发多播数据报使用的方法:

(1)洪泛【广播】与剪除

  • 这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。
  • 一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。为了避免兜圈子,采用了叫做反向路径广播 RPB (Reverse Path Broadcasting)的策略。
    反向路径广播 RPB
  • 路由器收到多播数据报时,先检查是否从源点经最短路径传送来的。
  • 若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。
  • 如果存在几条同样长度的最短路径),那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的 IP 地址最小。

几种多播路由选择协议

  • 距离向量多播路由选择协议 DVMRP (Distance Vector Multicast Routing Protocol)
  • 基于核心的转发树 CBT (Core Based Tree)
  • 开放最短通路优先的多播扩展 MOSPF (Multicast Extensions to OSPF)
  • 协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode)
  • 协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode)

4-7虚拟专用网络VPN和网络地址转换NAT

4-7-1.虚拟专用网络VPN

本地地址和全球地址

  • 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
  • 全球地址——全球唯一的IP地址,必须向因特网的管理机构申请。

RFC1918指明的专用地址

  • 10.0.0.0 到 10.255.255.255
  • 172.16.0.0 到 172.31.255.255
  • 192.168.0.0 到 192.168.255.255
  • 这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。
  • 专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。

  • 由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又称为内联网(intranet),表示部门 A 和 B 都是在同一个机构的内部。

  • 一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网(extranet)
4-7-2.网络地址转换NAT
  • 内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。
  • NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。
  • NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。
  • 根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值