计算机网络学习笔记5

计算机网络之网络层

Posted by Xiaoxi on June 22, 2016

网络层总结

三大组件

  1. IP协议
  2. 选路协议
  3. 互联网控制报文协议(ICMP)网络层的差错和信息报告协议

1. 转发和选路

  1. 转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适合的输出链路。是指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。
  2. 选路:当分组从发送方流向接受方时,网络层必须决定这些分组所采用的路由或路径。计算这些路径的算法被称作选路算法。选路是指分组从源到目的地时,决定端到端路径的网络范围的进程。

2. 提供的服务

  1. 确保服务
  2. 具有延时上界的确保交付
  3. 有序分组交付
  4. 确保最小带宽
  5. 确保最大时延抖动
  6. 安全性服务

3. 虚电路网络

  1. 提供连接服务的计算机网络称为虚电路,ATM、帧中继都是虚电路网络
  2. 组成:1. 源和目的主机之间的路径 2. VC号,沿着该路径的每段链路一个号码 3. 沿着该路径的媚态路由器中的转发表表项 (属于一条虚电路的分组将在它的首部携带一个VC号)
  3. 虚电路的三个阶段:1. 虚电路建立 2. 数据传送 3. 虚电路拆除
  4. 运输层中建立连接只涉及两个端系统,网络中的路由器对其完全不知情,而虚电路上所有的路由器需要参与进去。
  5. 端系统向网络发送只是虚电路启动和终止的报文,以及路由器之间传递的用于建立虚电路的报文被称为信令报文,用来交换这些报文的协议称为信令协议。

4. 数据报网络

  1. 在数据报网络中,每当一个端系统要发送分组时,它就为该分组加上目的地端系统的地址,然后将该分组推进网络(无需维护虚电路)
  2. 采用最长前缀匹配规则来转发分组 最长前缀匹配规则 网络前缀:是网络地址的前边某些连续比特。比如对于地址 11101111 11011110 1000000 00000001,其对应的8比特前缀为11101111 , 16比特前缀为11101111 11011110

    在该规则下,路由器的转发表中记录的是网络前缀和输出链路接口之间的对应关系。当查转发表时,仍然利用目的地址来进行匹配,但是可能会有很多歌匹配,这个时候取匹配到的比特数目最多的表象作为命中表项,并根据它来转发分组。

  3. 其路由表的变化速率不及虚电路网络快,一般1-5分钟更新一次。

5. IP分片

  1. 将一个超过MTU的数据分包,用标识、标识和片偏移子段放在IP数据段中,作为分片。
  2. 具体参考书吧,这里没图不好描述

6. DHCP

动态主机配置协议

步骤

  1. DHCP服务器发现
  2. DHCP服务器提供
  3. DHCP请求
  4. DNCP ACK

7. 网络地址转换(NAT)

  1. 通过使用NAT路由器上的一张NAT转换表,并且在表项中包含了端口号和IP地址
  2. 网络地址转换是通过将专用网络地址(如企业内部网)转换为公用地址(如互联网),从而对外隐藏了内部管理的IP地址。

8. ICMP 互联网控制报文协议

  1. ICMP报文承载在IP分组中

9. 选路算法

1. 全局选路算法

用完整的、全局性的网络知识来计算从源到目的之间的最低费用路径。

2. 分布式选路算法

以迭代的、分布式的方式计算出最低费用路径

还一种分类是,静态选路和动态选路算法。第三种分类:负载敏感算法和负载迟钝算法


10. 距离向量路由算法

  1. 所有的节点都定期地将它们的整个路由选择表传送给所有与之直接相邻的节点。这种路由选择表包含:1每条路径的目的地 2 路径的代价

  2. 在这种算法中,所有的节点都监听从其它节点传送来的路由选择更新信息,并在下列情况下更新它们都路由选择表:1. 被通告有一条新的路由 2. 有一条路由比原有路由更短

  3. 最大缺点: 当网络中出现故障时,会产生慢收敛现象 RIP协议使用距离向量路遇算法,采用跳数作为距离的度量

  4. 采用Bellman-Ford 算法(BFA)
  5. 距离向量算法:增加毒性逆转 毒性逆转可以解决上述特定的网络拓扑中的环路状况。其思想是:如果z通过y选路,则z在通告y时会告诉y它(z)到x的距离是无穷大。毒性逆转只能解决这种特殊环路的问题,如果环路涉及到3个或更多的节点,则它也无能为力

11. 链路状态路由算法(LS)

  1. 链路状态路由算法由算法要求每个路由器在自己的链路状态发色哼变化时,将链路状态信息(包括该路由器的相邻路由器以及所有相邻链路的状态)用泛洪法发送给网络中的其它路由器。
  2. OSPF协议使用链路状态路由算法
  3. 采用Dijkstra算法

LS和DV算法比较

DV算法中,每个节点仅与它的直接邻居交换信息,但它为它的邻居提供了通过它到达网络中(它所知道的)所有其它节点的最低费用估计。LS算法中,每个节点与所有节点交换信息,但它仅仅告其它节点与它直接相连的链路的费用。二者的比较

  1. 报文复杂性:LS算法要求每个节点都要知道网络中每条链路的费用,因而它需要发送O( N   E )个报文,而且无论何时一条链路的费用发生变化,都必须向所有节点发送新的链路费用。DV算法要求在每次迭代时,在两个直接邻居之间交换报文。当链路费用发生变化时,仅当新的费用导致与该链路相连的节点的最低费用发生了变化时,才会传播已改变的链路费用。
  2. 收敛速度:LS算法是一个O(n2)的算法,而DV算法收敛较慢,且在收敛时会遇到选路环路。
  3. 健壮性:由于LS算法中每个节点都独立的计算自己的路由,因而这在一定程度上提供了健壮性。而DV算法中一个节点的不正确信息则会扩散到整个网络。

12. 层次路由

  1. 采用层次选路的原因:
    • 规模:因特网由上亿台主机组成,如果不采用层次选路,则路由器需要存储选路信息会需要极大的内存,而且如果采用LS算法,则可以预期网络将淹没在LS广播中无法工作;如果采用DV算法,可以预期它根本就不会收敛。
    • 管理自治:某些组织可能倾向于按自己的意愿管理自己的网络,对外隐藏自己的内部网络面貌。
  2. 解决这两个问题采用的方法是将路由器组织到自制系统(AS)。
    • 每个AS由一组通常在相同管理控制下的路由器组成,相同的AS内部的路由器都运行同样的选路算法,且具有彼此之间的信息。在一个自制系统内运行的选路算法叫自制系统内部选路协议。AS内的一台或多台路由器将有另外的任务,即负责向本AS之外的目的地转发分组,这些路由器被称为网关路由器。
    • 当AS只有一个网关路由器时,AS内的路由器很容易将目的地不属于本AS的分组转发到网关路由器(因为AS内的路由器都知道自己到达网关路由器的最短路径),然后由网关路由器转发到AS外部。
    • 但是当AS有多个网关路由器时,AS就需要
      1. 知道经过与自己的网关路由器相连的其它AS可以到达哪些目的地
      2. 在本AS内部传播这些可达信息
    • 这两项任务是由自治系统间选路协议完成的。因特网的所有AS都运行相同的自治系统间选路协议。每台路由器都接收来自一个AS内部的内部选路协议和一个AS间选路协议的信息,并使用这些信息配置自己的转发表。
    • 当一个AS通过自治系统间选路协议知道它可以通过自己的多个网关路由器到达某个目的地时,AS内部的路由器如何添加自己到该目的的路由?通常采用的策略是热土豆选路(hot potato routing),其思想是让AS尽快摆脱分组,即尽快将分组转发给其它AS,路由器将选择具有下列特性的网关路由器,然后根据本路由器到该网关路由器的路径添加路由:
      1. 该网关路由器可以到达该目的地
      2. 该网关路由器到本路由器具有最低费用路径
    • 当一个AS从一个相邻AS知道了一个目的地时,它可以向它的某些其它邻居AS通告该路由信息,但是是否通告,通告哪些内容是一个AS的管理策略问题。取决于AS的配置管理策略。 因此总结起来,在一个AS内部,所有路由器都运行相同的内部选路协议。在各AS之间,AS运行相同的自治系统间选路协议。AS内部的路由器仅需要知道本AS内部的路由器,AS的管理组织可以运行它选择的任何内部选路协议。

参考:

  1. 《计算机网络:自顶向下方法》