计算机网络网络层

Posted:   October 15, 2019

Status:   Completed

Tags :   计算机网络

Categories :  

Were equations, pictures or diagrams not properly rendered, please refresh the page. If the problem persists, you can contact me.

一、网络层的功能

  1. 异构网络互连
  2. 路由与转发
    1. 路由选择:根据路由算法确定一个进来的分组应该被传送到哪一条输出路线上。如果子网内部使用数据报,那么对每一个进来的分组都要重新选择路径。如果子网内部使用虚电路,那么只有当创建一个新的虚电路时,才需要确定路由路径。
    2. 路由器根据转发表将用户的IP数据报从合适的端口转发出去。
  3. 拥塞控制
    1. 开环控制:事先考虑
    2. 闭环控制:即时检测

二、路由算法

  1. 静态路由与动态路由
  2. 距离路由算法:所有结点都定期地将它们整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含每条路径的目的地和路径的代价。
    1. 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地结点加入这条新的路由
    2. 通过发送路由信息的结点有一条到达某个目的地的路由,该路由比当前使用的路由有较短的距离。用经过发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由。
  3. 链路状态路由算法
    1. 要求每个参与该算法的结点都有完全的网络拓扑信息
    2. 主动测试所有邻接结点的状态。两个共享一条链接的结点时相邻结点,它们连接到同一条链路
    3. 定期地将链路状态传播给所有其他结点
    4. 三大特征:
      1. 向本自治系统中的所有路由器发送信息。这里使用的方式是洪泛法,即路由器通过所有输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又将此信息发往其所有相邻路由器(但不再发送给刚刚发来信息的那个路由器)
      2. 发送的信息就是本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。所谓链路状态就是说明本路由器都和哪些路由器相邻以及该链路的度量。对于OSPF算法,链路状态的度量主要用来表示费用、距离、时延、带宽等。
      3. 只有当链路状态发生变化时,路由器采用洪泛法向所有路由器发送信息。
  4. 层次路由
    1. 一个自治系统内部所使用的路由选择协议称为内部网关协议,具体的协议有RIP和OSPF等。自治系统内部的路由选择称为域内路由选择。
    2. 自治系统之间使用的路由选择协议称为外部网关协议,主要在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径,具体协议有BGP。自治系统之间的路由选择称为域间路由选择。
    3. OSPF协议将一个自治系统再划分为若干个更小的范围,叫做区域。在上层的区域叫做骨干区域,骨干区域的标识符规定为0.0.0.0。骨干区域的作用是用来连通其他在下层的区域。每一个区域至少应当有一个区域边界路由器,在骨干区域内的路由器叫做骨干路由器,一个骨干路由器可以同时是区域边界路由器。在骨干区域内还要有一个路由器叫做自治系统边界路由器。

三、IPv4

  1. IPv4分组:
    1. 版本:占4位,就是说这个IP数据报是IPv4还是IPv6版本,通信双方的版本必须一致
    2. 首部长度:占4位,IP数据报的首部实际上是60B(但考试基本都是认为20B),前面也讲过IP数据报的首部长度必须是4B的倍数,只要只要用15个标记(每个标记4位)就可以表示60B
    3. 区分服务:占1B,从没使用过
    4. 总长度:占2B,千万不要和首部的基本长度弄混淆,这里的基本单位长度是1B,不再是4B,并且总长度包括了首部和数据部分,很明显16位可以表示的长度为65535B。
    5. 标识:占2B,它是一个计数器,用来产生IP数据报的标识
    6. 标志,占3位,目前只有前2位有意义,即MF和DF。MF的作用是为了合并数据报;DF的作用:比如一个数据报经过某个路由器发现它的长度超过了最大发送长度(DF = 1,不能分片),这样数据报就过不去,然后路由器丢弃这个数据报,并发送一个ICMP报文给发送端,说该数据报太长了过不去,并且再ICMP报文中填写了该路由器传送的最大传输单位,让主机考虑怎么传。但是如果DF = 0,即使下一跳数据报太大,依然可以继续分片传送。
    7. 片偏移:占13位,片偏移是8B的整数倍。
    8. 生存时间:占8位
    9. 协议:占8位
    10. 首部校验和:占16位,只需记住只检验数据报的首部,不检验数据部分
    11. 源地址:发送端主机的IP地址
    12. 目的地址:接收端主机的IP地址
  2. IPv4地址
    1. IPv4地址的分类:IP地址就是给每个连接在因特网上的主机分配一个在全球范围是唯一的32位标识符。一般将IP地址分为A类地址、B类地址、C类地址、D类地址和E类地址
    2. 6种特殊地址
      1. 直接广播地址:在A、B、C类地址中,若主机号全1,则这个地址称为直接广播地址。路由器使用这种地址把一个分组发送到一个特定网络上的所有主机,所有主机都会收到具有这种类型的目的地址的分组。要注意到,这个地址在IP分组中只能作目的地址。还要注意到,这个地址也减少了A、B、C类地址中每个网络中可用的主机数。
      2. 受限广播地址:IP地址为255.255.255.255,这个地址用于定义在当前网络(绝对不是整个因特网,注意出选择题!)上的广播地址。一个主机若想把报文发送给其他主机,就可以使用这样的地址作为分组中的目的地址,但是路由器会把这种类型的地址阻拦,使这样的广播仅局限于本地局域网。应注意,这种地址属于E类地址
      3. 这个网络上的这个主机:IP地址为0.0.0.0,表示这个网络上的主机。这发生在某个主机在运行程序时但又不知道自己的IP地址,主机为了要发现自己的IP地址,就给引导服务器发送IP分组,并使用这样的地址作为源地址,并且使用255.255.255.255作为目的地址。此外,这个地址永远是一个A类地址,而不管网络时什么类别,这种全0地址使A类地址网络减少了一个。
      4. 这个网络上的特定主机:具有全0的网络号的IP地址表示在这个网络上的特定主机,用于当某个主机向同一网络上的其它主机发送报文时。因为分组被路由器挡住了,所以这是把分组限制在本地网络上的一种方法。
      5. 环回地址:知道127是就好了
      6. 网络地址
    3. NAT:其实某些机构并不需要连接到因特网,只需要与内部的主机通信,这样如果按照全球IP地址去分配,则会大大浪费IP地址。(专用网的主机不联系因特网的主机,因特网的主机就一定不会联系专用网的主机
    4. 子网划分与子网掩码
      1. 子网划分
        1. IP地址空间的利用率有时很低。
        2. 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变化
        3. 两级的IP地址不够灵活
        4. 基本思路:从主机号借用若干个比特作为子网号,而主机号也就相应地减少了若干个比特,网络号不变。
      2. 子网掩码:子网划分与否是看不出来的,如果要告诉主机或路由器是否对一个A类、B类、C类网络进行子网划分,则需要子网掩码。子网掩码是一个与IP地址相对应的32位的二进制串,它由一串1和0组成。其中,1对应于IP地址中的网络号和子网号,0对应于主机号。因此1对1进行与操作,结果为1;1对0进行与操作,结果为0.所以使用一串1对网络号和子网号进行与操作,就可以得到网络号。不管网络有没有划分子网,只要将子网掩码与IP地址进行逐位与运算,就一定能立即得出网络地址。
    5. CIDR(无分类编址是为解决IP地址耗尽而提出的一种措施)
      1. 消除了之前的概念,使用各种长度的“网络前缀”来代替分类地址中的网络号和子网号。
      2. CIDR主要是一个按位的、基于前缀的,用于解释IP地址的标准。 它通过把多个地址块组合到一个路由表表项而使得路由更加方便。这些地址块叫做CIDR地址块。当用二进制表示这些地址时,它们有着在开头部分的一系列相同的位。IPv4的CIDR地址块的表示方法和IPv4地址的表示方法是相似的:由四部分组成的点分十进制地址,后跟一个斜扛,最后是范围在0到32之间的一个数字:A.B.C.D/N。 点分十进制的部分和IPv4地址一样是一个被分成四个八位位组的32位二进制数。斜扛后面的数字就是前缀长度,也就是从左到右,被地址块里的地址所共享的位的数目。当只要说明梗概时,点分十进制部分有时会被省略,因此,/20就表示一个前缀长度是20的CIDR地址块。如果一个IP地址的前N位与一个CIDR地址块的前缀是相同的话,那么就说这个地址属于这个CIDR地址块,也可以说是与CIDR地址块的前缀匹配。所以,要理解CIDR,就要把地址写成二进制的形式。因为IPv4地址的长度总是32位,N位长的CIDR前缀就意味着地址里32 − N位不匹配。这些位有2(32 − N)种不同的组合,即2(32 − N)个IPv4地址与CIDR地址块的前缀。前缀越短就能匹配越多的地址,越长就匹配得越少。一个地址可能与多个长度不同的CIDR前缀匹配。CIDR也用在IPv6中。因为位数的非常多,所以在IPv6中,前缀长度的范围是从0到128。这里也用同样的方法来表示一个地址:前缀写作一个IPv6的地址,后跟一个斜扛,最后是前缀的位数
      3. 将网络前缀都相同的连续的IP地址组成CIDR地址块。一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,注意最长匹配原则的解释
    6. ARP:虽然在网络层转发分组用的是IP地址,但是最终还是要使用MAC地址来在实际网络链路上传送数据帧,所以知道目的地的IP地址是没用的。所以ARP能够把IP地址直接转换成物理地址。
      1. 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。
      2. 发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器完成。
      3. 发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址。
      4. 发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成。
    7. DHCP
      1. 动态主机配置协议常用于给主机动态地分配IP地址。它提供了即插即用连网的机制,这种机制运行一台计算机加入新的网络和获取IP地址而不用手工参与。它是应用层协议,DHCP报文使用UDP传输。
      2. DHCP服务器与DHCP客户端的交换过程:
        1. DHCP客户机广播“DHCP发现”消息,试图找到网络中的DHCP服务器,服务器获得一个IP地址。
        2. DHCP服务器收到“DHCP发现”消息后,就向网络中广播“DHCP提供”消息,其中包括提供DHCP客户机的IP地址和相关配置信息。
        3. DHCP客户机收到“DHCP提供”消息,如果接收DHCP服务器所提供的相关参数,则通过广播“DHCP请求”消息向DHCP服务器请求提供IP地址。
        4. DHCP服务器广播“DHCP确认”消息,将IP地址分配给DHCP客户机。
    8. ICMP
      1. 主机在发送数据报时,经常会由于各种原因发送错误,如路由器拥塞丢弃了或者传输过程中出现错误丢弃了。如果检测到错误的路由器或主机都能把这些错误报告通过一些控制消息高速发送数据的主机,那么发送数据的主机就可根据ICMP报文确定发送错误的类型,并确定如何才能更好地重发失败的数据报。
      2. ICMP差错报告报文的分类:
        1. 终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
        2. 源站抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文。使源点知道应当把数据报的发送速率放慢。
        3. 时间超过。当IP分组的TTL值被减为0后,路由器出来要丢弃该分组外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已经收到的数据报片都丢弃,并向源点发送时间超过报文。
        4. 参数问题。当路由器或目的主机收到的数据报的首部有字段的值不正确时,就丢弃改数据报,并向源点发送参数问题报文。
        5. 改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给其他路由。
      3. ICMP询问报文的分类:
        1. 有回送请求和回答保文
        2. 时间戳请求和回答报文
        3. 掩码地址请求和回答报文
        4. 路由器询问和通告报文
      4. 不应发送ICMP差错报告报文的几种情况
        1. 对ICMP差错报告报文不再发送ICMP差错报告报文
        2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
        3. 对具有组播地址的数据报都不发送ICMP差错报告报文
        4. 对具有特殊地址的数据报不发送ICMP差错报告报文

四、IPv6

  1. 主要特点
    1. 更大的地址空间
    2. 扩展的地址层次结构
    3. 灵活的首部格式
    4. 改进的选项
    5. 运行协议继续扩充
    6. 支持即插即用
    7. 支持资源的预分配
    8. IPv6首部长度必须是8B的整数倍
  2. IPv6的格式
    1. 版本:占4位,它指明了协议的版本
    2. 通信量类:占8位,这是为了区分不同的IPv6数据报的类别或优先级
    3. 流标号:占20位,流是互联网络上从特定源点到特定终点的一系列数据报,流所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号
    4. 有效载荷长度:占16位,它指明IPv6数据报除基本首部以外的字节数,最大值是64KB
    5. 下一个首部:占8位,它相当于IPv4的协议字段或可选字段
    6. 跳数限制:占8位,源站在数据报发出时即设定跳数限制,路由器在转发数据报时将跳数限制字段中的值减1。当跳数限制的值为0时,就要将此数据报丢弃
    7. 源地址:占128位,数据报的发送站的IP地址
    8. 目的地址:占128位,数据报的接收站的IP地址
  3. IPv6地址类型
    1. 单播:传统的点对点通信
    2. 组播:数据报交付到一组计算机中的每一个广播可看作时组播的一个特例
    3. 任播:其目的地是一组主机,但数据报在交付时只交付给其中一个,通常是距离最近的那个

五、路由协议

  1. 路由选择协议分类
    1. 内部网关协议
    2. 外部网关协议
  2. RIP
    1. 距离-向量算法
    2. RIP报文格式
  3. RIP和OSPF的比较
    1. 协议参数
    2. 收敛速度
    3. 分层
    4. 负载平衡
    5. 灵活性
    6. 以组播地址发送报文
  4. BGP
    1. BGP的基本概念
    2. BGP的特点
    3. BGP的四种报文
      1. 打开报文:用来与相邻的另一个BGP发言人建立关系
      2. 更新报文:用来发送某一路由的信息以及列出要撤销的多条路由
      3. 保活报文:用来确认打开报文和周期性地证实邻站关系
      4. 通知报文:用来发送检测到的差错

六、IP组播

  1. 组播的概念:
    1. 组播一定是仅应用于UDP,它们对需将报文同时传往多个接收者的应用来说非常重要。
    2. 有的应用程序要把一个分组发送给多台目的主机,采用的方法不是让源主机给每台目的主机都发送一个单独的分组,而是让源主机把单个分组发送给一个组播地址,该组播地址标识一组主机。网络把这个分组复制后传递给该组中的每台主机。主机可以选择加入或离开一个组,而且一台主机可以同时属于多个分组。
    3. 源主机只发送一份数据,该数据中的目的地址为组播的组地址。组地址中的所有接收者都可以接收到同样的数据副本,并且组播内的主机可以接收数据,网络中的其他主机不可能收到该数据。
  2. IP组播地址
    1. IP使用D类地址支持组播
    2. D类地址标识一组主机
    3. 组播地址只能用于目的地址,不能用于源地址
    4. 组播数据报尽最大努力交付,不提供可靠交付
    5. 对组播数据报不产生ICMP差错报文
    6. 并非所有D类地址都可以作为组播地址
  3. 组播地址与MAC地址的换算

七、移动IP

  1. 三大功能实体
    1. 移动结点:具有永久IP地址的移动结点
    2. 本地代理:有一个端口与移动结点本地链路相连的路由器,它根据移动用户的转交地址,采用隧道技术转交移动结点的数据报
    3. 外部代理:移动结点的漫游链路上的路由器,它通知本地用户代理自己的转交地址,是移动结点漫游链路的默认路由器
  2. 实现移动IP技术
    1. 代理搜索
    2. 申请转交地址
    3. 登录
    4. 隧道
  3. 移动IP的通信过程

八、网络层设备

  1. 路由器的组成和功能:
    1. 路由选择部分:根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断更新和维护路由表,其核心部件时路由选择处理器
    2. 分组转发部分:
      1. 一组输入端口
      2. 交换结构
      3. 一组输出端口
  2. 路由表与路由转发
    1. 转发就是路由器根据转发表将用户的IP数据报从合适的端口转发出去
    2. 路由选择则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由
    3. 路由表是根据路由选择算法得出的,而转发表是从路由表得出的,往往区分转发表和路由表

Comments


😅 Commenting is disabled on this post.
You can use extended GitHub flavored markdown in your comment. Commenting FAQs & Guidelines