2021-05-25 《计算机网络(自顶向下方法)》第4章——总结(网络层)(深入理解!!!!)

  • 网络层是协议栈中最复杂的层次,可以分为两个相互作用的层次:数据平面和控制平面.
  • 转发和路由选择
    • 网络层的作用: 将分组从一个主机移动到另一个主机。需要两种功能:
      • 转发:数据平面中实现的唯一功能,当一个分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当的输出链路
      • 路由选择: 是在控制平面实现的功能,控制平面是个范围更大的功能,是一种宏观视角,控制数据从源主机到目的主机之间的路由选择方式。是指确定分组从源到目的地所采取的的端到端路径的网络范围处理过程。时间长(几毫秒),通常用软件来实现。
        • 转发是路由器的本地动作路由选择网络范围过程
        • 比如开车从北京到上海,转发相当于在某个路口选择某一条岔路,路由选择相当于规划从北京到上海所有线路的过程。
        • 或者说,转发是一个一个的点,而路由选择是一个一个点组成的线,我们要在很多线中找到一条合适的线,然后再具体规划其中点的选择。
      • 转发表:每台路由都有一张转发表。路由器检查分组首部字段值(可能是目的地址或所属连接,看网络层协议)来转发分组,使用该值在转发表索引查询。该值指出了该分组将被转发的路由器输出链路接口
      • 路由选择算法: 决定了插入路由器转发表中的值。路由器接收路由选择协议报文,来配置转发表。有两种算法:
        • 集中式(全局式): 所有路由器 掌握完整的网络拓扑和链路费用信息,例如链路状态(LS)路由算法
        • 分布式(分布式): 路由器只掌握物理相连的邻居以及链路费用,例如距离向量(DV)路由算法
        • 具体点击右方链接:路由选择算法的相关介绍
        • 控制平面:
          • 传统方法:由路由器的硬件使用路由选择算法决定插入该转发表的内容
          • SDN方法:通过计算转发表与路由器交互的远程控制器软件来确定并分发转发表的值
      • 分组交换机: 指一台通用分组交换设备,根据分组首部字段值输入链路接口转移分组到输出链路接口
      • 链路层交换机: 基于链路层字段中的值做转发决定
      • 路由器: 基于网络层字段值做转发决定
      • 连接建立: 某些网络结构(ATM、帧中继、MPLS)除了转发和路由选择功能,还有连接建立功能。要求从源到目的地沿着所选择路径彼此握手,建立连接
    • 网络服务模型
      • 定义了分组在发送与接收端系统之间的端到端运输特性
      • 网络层可以提供的服务(注意IP并没有这些服务!):
        • 确保交付
        • 具有时延上界的确保交付
        • 有序分组交付
        • 确保最小带宽: 模仿发送方和接收方之间一条特定比特率传输链路的行为。发送速率低于该速率,分组不会丢失,且会在预定时延内到达
        • 确保最大时延抖动: 确保发送方两个相继分组之间的时间 = 目的地接收到它们之间的时间
        • 安全性服务: 使用仅由源和目的地主机知晓的密钥,加密数据报,源加密,目的主机解密。此外还有数据完整性和源鉴别服务
        • 因特网的网络层IP协议提供单一服务,尽力而为服务,无带宽保证无丢包保证无顺序保证,不定时,无拥塞指示
          • 说白了就是,尽力而为,反正给你传了,到不到是你的事,反正我传了。
      • 其他网络层提供的服务模型:
        在这里插入图片描述
        • 恒定比特率 (CBR) ATM网络服务: 就是使网络连接看起来就像在发送和接收主机之间存在一条专用的、固定带宽的传输链路,以使用性质相同的虚拟管道来提供分组(ATM术语称为信元)流。
        • 可用比特率(ABR)ATM网络服务:比尽力而为的服务稍好一点的服务。然而与IP不同的是,信元不能重排序(也就是顺序不会打乱)。最小传输速率是可以保证的。
  • 虚电路和数据报网络
    • 虚电路: 仅在网络层提供连接服务的计算机网络成为虚电路 (ATM、帧中继的体系结构)

    • 数据报网络: 仅在网络层提供无连接服务的计算机网络称为数据报网络 (IP)

    • 运输层面向连接服务是在位于网络边缘的端系统中实现的;我们很快看到。 网络层连接服务除了在端系统中,也在位于网络核心的路由器中实现。

    • 虚电路网络:

      • 虚电路组成:
        • 源和目的主机之间的路径,一系列链路和路由器
        • VC号,该路径每段链路一个号码,属于一条虚电路的分组首部有VC号
        • 该路径每台路由器转发表表项。当跨越一台路由器创建一条虚电路时,转发表增加一个新表项,终止将会删除。
        • 一条虚电路每条链路上可能有不同VC号,每台路由器必须用一个新的VC号更新每个分组的VC号(which can get from the forwarding tables)也就是一个分组经过一台路由器,首部VC号可能就变了,原因:
          • 链路代替该号码减少了分组首部VC字段长度
          • 大大简化虚电路建立。如果要求一个VC号,创建虚电路时路由器需要交换处理大量报文来约定VC号
      • 虚电路网络中的路由器必须为进行中的连接维护连接状态信息。创建一个连接,转发表加一项,释放一个连接**,转发表删一项**。该信息将VC号与输出接口号联系起来。即使没有VC号转换,仍有必要维持状态信息,该信息将VC号和输出接口号联系起来。
    • 虚电路3个阶段:

      • 虚电路 建立
        • 发送运输层与网络层联系,指定接收方地址,等待网络建立虚电路
        • 网络层决定发送方和接收方之间的路径,即虚电路要通过一系列链路和路由器,为每条链路设置vc号
        • 网络层在路径上每台路由器的转发表增加一个表项
        • 预留该虚电路路径上的资源
      • 数据传送:
        • 发起呼叫—>入呼叫—>接收呼叫—>呼叫连接—>数据流开始—>接收数据
      • 虚电路拆除:
        • 网络层通知网络另一侧端系统结束呼叫,更新删除路由器上转发表项表明虚电路不存在(说明路由器转发表项是虚电路的物理体现)(VC号也不存在了)
    • 信令报文

      • 端系统向网络发送指示 虚电路启动与终止的报文 路由器之间传递的用于建立虚电路(修改路由器表中的连接状态)的报文。用来交换这些报文的协议称为信令协议。
    • 数据报网络

      • 每当端系统要发送分组,为分组加上目的地地址,推进网络。
      • 分组从源到目的地传输,通过一系列路由器传递,每台都使用分组的目的地址转发该分组
      • 每个路由器有转发表,将目的地址映射到输出链路接口,路由器将分组向该接口转发
      • 目的地址(其实就是IP地址32bit,转发表不可能对每个目的地址有一个表项,因此,路由器用分组的目的地址的前缀与表项进行匹配。当有多个匹配时,使用最长前缀匹配规则。
      • 数据包网络中路由器不维持连接状态信息,但是维护了转发状态信息。实际上每1-5分钟,路由选择算法更新一次转发表。
      • 因为在数据包网络中的转发表能在任何时刻修改,从一个端系统到另一个端系统发送一系列分组可能在通过网络时走不同的路径,并可能无序到达
        在这里插入图片描述
    • 虚电路和数据报网络的由来

      • 虚电路来源于电话界(真电路),端系统设备复杂,网络层服务模型应尽可能简单,复杂功能在更高级实现按序、可靠数据传输、拥塞控制等)(如果能到是按顺序的么?如果能到是正确的么? 能不能到? )。因为简单,所以互联各种链路(卫星、以太网、光纤、无线)和丢包特性的网络变得容易,增加一个新服务器只需连接一台主机到网络,定义一个新的应用层协议即可,使得Web之类的新服务很快在因特网部署
  • 路由器工作原理
    在这里插入图片描述
    • 路由器的组成部分
      • 输入端口:
        • 执行将一条输入的物理链路与路由器相连接物理层功能
        • 执行与位于入链路远端的数据链路层交互的数据链路层功能
        • 查找功能,查询 转发表 决定路由器的输出端口,将分组转发到输出端口
          在这里插入图片描述
        • 查找:
          • 必须在纳秒级别执行,不仅要用硬件执行查找,而且要对大型转发表使用快速查找算法,而且需要更快的内存访问速度(DRAM、SRAM)。
          • 影子副本:
            • 转发表路由选择处理器计算和更新,从路由选择处理器经过独立总线复制到(输入)线路卡(影子副本)
            • 有了转发表副本,转发决策能在每个输入端口本地做出无须调动路由选择处理器,避免集中式处理
          • 排队:
            • 查找确定了某分组输出端口,分组就能发送进入交换结构。一个被阻塞的分组必须在输入端口处排队。
          • 尽管查找在输入端口可以说是最为重要的,但必须采取许多其它动作:
            • 必须出现物理层和数据链路层处理
            • 必须检验分组的版本号、检验和和寿命字段。后两个字段必须重写
            • 必须更新用于网络管理的计数器
          • 匹配+动作
      • 交换结构:
        • 将路由器的输入端口与输出端口相连
        • 分组通过交换结构转发到输出端口 在这里插入图片描述
        • 通过交换结构,分组才能实际地从一个输入端口交换(转发)到一个输出端口中
        • 三种交换结构:
          • 经内存交换:
            • 一个分组到达输入端口时,该端口会先通过中断方式向路由选择处理器发出信号,分组从输入端口复制到路由选择处理器查找交换进内存,是器内存中(现由输入线路卡处理的)早期路由选择处理器从首部提取目的地址,在转发表查找输出端口,将分组复制到输出端口
          • 经总线交换:
            • 输入端口经一根共享总线将分组直接传送到输出端口,无需路由选择处理器的干预,路由器的交换带宽受总线速率限制
          • 经互联网络交换:
            • 纵横式交换机,2N条总线组成网络,连接N各输入端口和N个输出端口
            • 每条垂直的总线与每条水平的总线交叉,交叉点通过交换结构控制器开启闭合
            • 某分组到达端口A,需要转发到Y,交换机控制器 闭合总线A和Y的交叉点,A在其总线上发送分组,仅由Y接收;同时B也能发分组到X,因为没有公用总线。纵横式网络并行转发多个分组。但是如果两个不同输入端口的两个分组的目标是同一个输出端口。则一个分组必须在输入端等待。
      • 输出端口:
        • 存储从交换结构接收的分组,执行必要的链路层和物理层功能在输入链路上传输这些分组。
        • 当链路是双向的时,输出端口与输入端口在同一线路卡成对出现
          在这里插入图片描述
      • 路由选择处理器:
        • 执行路由选择协议
        • 维护路由选择表、连接的链路状态信息,为路由器计算转发表
      • 路由(数据)转发平面(硬件)(用来执行)
        • 一台路由器的输入端口、输出端口和交换结构共同实现了转发功能,并且用硬件实现(软件太慢,需以纳秒时间尺度运行)
      • 路由控制平面(软件)(用来选择然后通知)
        • 路由器的控制功能(执行路由选择协议、对上线或者下线链路进行响应、管理功能),在毫秒时间尺度上运行,用软件实现并在选择处理器上执行(一种cpu)
      • 何处出现排队?
        • 输入、输出端口都能形成分组队列,取决于流量负载、交换结构
        • 随着队列增长,路由器缓存空间会耗尽,出现丢包
        • 需要路由器缓存吸收流量负载波动,需要多少缓存?
          • 少量TCP流:RTT * C(链路容量)
          • 大量TCP流:RTT* C/ (N^1/2)
        • 输出端口排队,需要 分组调度程序 选出一个分组发送。提供服务质量保证。
        • 输出端口的一个分组调度程序必须在这些排队的分组中选取一个发送。分组调度程序在提供服务质量保证上有很大的作用
        • 主动队列管理(RQM):
          • 缓存填满前丢弃(或首部加个标记)一个分组,向发送方提供一个拥塞信号
          • 随机早期检测算法(RED): 平均队列长度在某个范围内时,以某种概率被丢弃/标记
          • 线路前部阻塞(HOL): 在这里插入图片描述
          • 深色阴影分组必须等待。但不仅该分组要等待,左下角队列中排在该分组之后的浅色阴影分组也要等待,即使右侧输出端口中无竞争。这种现象叫做线路前部阻塞(HOL)
      • 路由选择控制平面
        • 网络范围的路由选择控制平面是 分布式 的,即不同部分(如路由选择算法)执行在不同的路由器上,并且通过彼此发送控制报文进行交互。
  • 网际协议(IP):因特网中的转发和编址
    • 网络层三个组件

      • IP协议
        • IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGMP的数据都以IP数据格式传输
        • 要注意的是,IP提供不可靠、无连接的数据传送,依赖其他层的协议进行差错控制
        • 不可靠指的是IP数据报不保证能成功的到达目的地,如果出现错误则选择丢弃该数据,然后发送ICMP消息报给信源端
        • 无连接指的是IP不提供任何后续数据报的状态信息,每个数据报处理都是独立的。如果一个信源发送了连续的两个数据报,每个数据报选择独立的路由,两个数据可能不同时到达。
      • 路由选择协议
        • 怎么转发,转发算法;(主要)
      • 控制报文协议(ICMP)报告数据报中的差错、对某些网络层信息请求进行响应的设施 (差错控制) 在这里插入图片描述
    • 数据报格式:

      • 在这里插入图片描述
      • 版本号(IPv4、IPv6): 4比特,IP协议的版本,不同版本对数据报解释不同
      • 首部长度: 4比特最大0xF,注意该字段 表示单位是字(4字节).数据报可包含可变数量的选项(用来确定 IP 数据报中载荷实际开始的地方)。不过大部分没有,首部固定20字节
      • 服务类型(Type Of Service,TOS): 8 比特,区分不同类型的IP数据报
        • 3位优先权字段(现已被忽略) + 4位TOS字段 + 1位保留字段(须为0)
        • 4位TOS字段: 分别表示最小延时、最大吞吐量、最高可靠性、最小费用,其中最多有一个能置为1。
        • 应用程序根据实际需要来设置 TOS值,如ssh和telnet这样的登录程序需要的是最小延时的服务,文件传输ftp需要的是最大吞吐量的服务。
      • 数据报长度(总长度): 首部+数据的长度,单位为字节。该字段16bit,即IP数据报的最大长度为65535字节(2的16次方),然而一般数据报很少超过1500字节。利用首部长度字段和总长度字段,就可以知道IP数据报中的数据内容的启始位置和长度。
      • 标识、标志、片偏移: IP分片相关。不过IPv6不允许在路由器上对分组分片
        • 标识: 唯一的标识主机发送的每一个数据报,其初始值是随机的,每发送一个数据报其值就加1同一个数据报的所有分片都具有相同的标识值 ,IP软件在存储器中维持一个计数器,每产生一个 数据报,计数器就加1,并将此值赋给标识字段。
        • 标志: 第1位保留,第2位表禁止分片(DF),若设置了此位,IP模块将不对数据报进行分片,在此情况下若IP数据报超过MTU,IP模块将丢弃数据报并返回一个ICMP差错报文;第3位标识更多分片(MF),除了数据报的最后一个分片,其他分片都要把它设置为1
        • 位偏移: 分片相对原始IP数据报数据部分的偏移。占13位,实际的偏移值为该值左移 3位后得到的,片偏移以8个字节为偏移 单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。所以除了最后一个IP数据报分片外,每个IP分片的数据部分的 长度都必须是8的整数倍(规定)
        • 例:主机A向主机B发送一个长度为8000字节的udp数据包,假设mtu为1500,那么数据报将会如何分片传送呢?
        • 假设MTU是1500,实际上每个数据包要包括20字节固定大小的IP头开销,且第一个分片需要包括UDP协议头(8字节),其它分片只需要伪首部即可。所以实际的数据分片载荷为首包1472字节,中间6包1480字节,尾包608字节。
          接收端根据包标识+片偏移组包,源地址与标识相同的认为是同一个数据包,使用片偏移排序最后使用第一个包的udp头校验和检验数据正确性,如果通过校验,则分片组包成功,数据包通知到应用层。如果分片包超过一段时间未完整组包,或是校验不通过,则数据丢弃。
      • 生存时间TTL: 确保数据报不会永远在网络中循环。每被一个路由器处理时,值-1。若值减到0,丢弃数据报
        • 数据报到达目的地之前允许经过的路由器跳数。TTL值被 发送端设置,常设置为64。数据报在转发过程中每经过一个路由该值就被路由器减1.当TTL值为0时,路由器就将该数据包丢弃,并向源端发送一个ICMP差错报文。
      • 协议号: 到达最终目的地才有用,指示了IP数据报的数据部分应该交给哪个运输层协议
        • 6==TCP;
        • 17==UDP;
        • 1==ICMP;
        • 协议号是将网络层与运输层绑定到一起的粘合剂;端口号是将运输层和应用层绑定的粘合剂
      • 首部检验和: 帮忙路由器检测收到IP数据报中首部的比特错误,有错一般丢弃。每台路由器上必须重新计算检验和(通过CRC算法)。
        • IP层仅对IP首部计算检验和;
        • TCP/UDP检验和是对整个TCP/UDP报文段进行的。
      • 源和目的IP地址: 源主机通过DNS查找目的地址
      • 选项: IPv6已抛弃选项字段
        可变长的可选信息,最多包含40字节。选项字段很少被使用。可用的IP可选项有:
        • 记录路由: 记录数据包途径的所有路由的IP,这样可以追踪数据包的传递路径
        • 时间戳: 记录每个路由器数据报被转发的时间或者时间与IP地址对,这样就可以测量途径路由之间数据报的传输的时间
        • 松散路由选择: 指定路由器的IP地址列表数据发送过程中必须经过所有的路由器
        • 严格路由选择: 数据包只能经过被指定的IP地址列表的路由器
        • 上层协议(如TCP/UDP)的头部信息
      • 数据(有效载荷): 包含运输层报文段(TCP或UDP),或ICMP报文段
      • 一个IP数据报有长为20的首部,如果数据报承载一个TCP报文段,则每个无分片数据报承载总长40的首部(还有TCP的20)以及应用层报文
        • IP数据报分片 more

          • 当IP 数据报的大小超过链路层能承载的最大数据量(也被称为最大传送单元MTU)时,就必须被分成多个独立的数据片段进行传输,这就是IPv4 数据报分片。值得注意的是,IPv6 协议不允许数据报进行分片。数据报分片之后就涉及到接收者需要将分片数据报重新组装。IPv4 的设计者决定将这项工作放在端系统中执行,而不是放到网络路由器中
          • 由于 IP 是一种不可靠的服务,一个或多个分片可能永远到不了目的地,因为这种原因,为了让目的主机绝对相信它已经收到了初始数据报的最后一个分片,所以最后一个分片的标志比特被设为 0(其它分片的标志位 1)。另外,为了让目的主机确定是否丢失了一个分片 ,使用偏移量字段来指定该片应放在初始 IP 数据报的位置
          • 网络链路存在MTU (最大传输单元)—链路层数据帧可封装数据的上限不同链路的MTU不同
          • IPv4的设计者决定把数据报的重新组装工作放在端系统而不是路由器中。
          • 大IP分组向较小MTU链路转发时, 可以被 “分片” (fragmented)
          • 1个IP分组分为多片IP分组:
            • IP分片到达目的主机后进行 “重组”(reassembled)
          • IP首部的相关字段用于标识分片以及确定分片的相对顺序
          • 总长度、标识、标志位和片偏移
          • 假设原IP分组总长度为L,待转发链路的MTU为M
            • L>M,且DF=0,则可以/需要分片,分片时每个分片的标识复制原IP分组的标识,通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片,最后一个片的标志为0,其余的为1.
            • 例:4000字节的数据报,在MTU1500字节的链路上 在这里插入图片描述
            • 数据报的有效载荷仅当在IP层已完全重构为初始IP数据报时,才会传递给目的地传输层。如果一个或多个片没有到达目的地,则该不完整的数据报被丢失。
            • 并不是所有链路层协议都能承载相同长度的网络层分组,如以太网能承载不超过1500字节的数据,某些广域网链路帧不超过576字节
            • 一个链路层帧承载的最大数据量:最大传送单元MTU限制了IP数据报的长度,且发送方与目的路径上的每段链路可能使用不同的链路层协议,有不同的MTU。
          • 分片引发的问题:点击这里!!! 在这里插入图片描述
        • 如何将过大的IP分组压缩进链路层帧的有效载荷字段?

          • IP数据报中的数据分片成多个较小的IP数据报,用单独的链路层帧封装这些小IP数据报,每个小数据报叫
          • IPv4将数据报的重新组装放在端系统中,而不是路由器中
          • 标识、标志、片偏移字段,帮助主机执行重组任务
          • 一个4000字节的数据报(20+3980)到达一台路由器,转发到一条MTU为1500子节的链路上。必须分配3个独立的片,假设初始数据报的标识号是777,则前两片字节都为20+1480,第三层为20+1020 (3980-1480-1480=1020)
          • IPv6废除了分片,简化了IP分组的处理
    • IP路由选择

      • IP层在内存中有一个路由表,当收到一份数据报时并进行发送时,它都要对该表进行搜索一次,当数据报来自某个网络接口时,IP首先检查目的IP地址是否为本机IP地址之一或者IP广播地址。如果是这样,数据就被送到IP首部协议字段所指的协议模块进行处理。如果不是,有路由功能时就进行转发,要么就丢弃。
    • IPV4编址

      • 主机与路由器连入网络的方法
      • 一台主机通常只有一条链路连接到网络,主机IP发送数据报从该链路发送
      • 主机与物理链路的边界叫接口,一台路由器有多个接口
      • IP要求每台主机和路由器都有自己的IP地址,因此 一个IP地址实际上是与每一个接口相关联的
      • 每个IP地址长度32bit(4字节),总共2^32个可能的IP地址,约40亿个
      • 点分十进制记法,如193.32.216.9
      • IP地址由网络ID主机ID组成,网络ID表明所在网络的编号,主机ID表明计算机的编号
      • 一个接口的IP地址的一部分需要由其连接的子网决定。
        • 如互联3个主机接口与1个路由器接口的网络形成一个子网
        • IP编址为这个子网分配一个地址:223.1.1.0/24,/24记法称为子网掩码: 指示了32bit中的最左侧24bit(223.1.1)定义了子网地址 因此该子网下的几个主机地址可能会为:233.1.1.1、233.1.1.2、233.1.1.3 等等
        • 子网掩码的作用?
          • 计算机联网时必须有公有IP地址,除了IP地址外主机还需要知道多少比特用于子网掩码,以及多少用于主机号,子网掩码是一个32bit值,值为1的比特留给网络号和子网号,为0的比特留给主机号。
          • 子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
      • 为了确定子网,分开主机和路由器的每个接口,产生几个隔离的网络岛,使用接口端接这些隔离的网络的端点,这些隔离的网络中每一个都叫做一个子网
      • 因特网地址分配策略:无类别域间路由选择 CDIR(最早的时候不是这种路由选择,而是ABCDE类)
        • a.b.c.d/x的地址的x最高比特构成IP地址的网络部分,称为该地址的 前缀 ,一个组织通常被分配一块连续的地址,即具有相同前缀的一段地址。
        • BGP路由选择协议中,该组织网络外的路由器仅考虑x,减少了转发表的长度,因为形式为a.b.c.d/x单一表项足以将数据报转发到该组织内的任何目的地
        • 地址聚合(路由聚合):使用单个网络前缀通告多个网络的能力
        • 一个ISP将8个组织连接到因特网。该ISP向外界通告:向我发送以200.23.16.0/20开始的任何内容。外部无需知道在该地址块内还有8个其他组织,每个组织有自己的子网
        • 一个地址的剩余 32-x比特 可认为是用于区分该组织内部设备的组织内部路由器转发分组时,才会考虑这些比特
      • 在CDIR出现之前,采用分类编址,A、B、C类网络,分别具有8、16、24比特子网地址
        • A类 (/8): 0.0.0.0~127.255.255.25
        • B类(/16): 128.0.0.0~191.255.255.255,支持65534(2^16)台主机,一个组织分配一个B类地址却只用2000个接口,造成巨大浪费
        • C类(/24): 192.0.0.0~223.255.255.255,仅能容纳2^8-2=254台主机(其中两个用于特殊用途)
        • D类: 224.0.0.0~239.255.255.255
        • E类: 240.0.0.0~255.255.255.255
        • 这其中除了段0和段127之外,还有一些IP地址因为有其他的用途,是不可以用作普通IP的。还有一部分被用作私有IP地址。
        • 后来由于固定分类有的类用不满,造成地址使用效率不高逐渐改为采用无类IP编址,即CIDR无类域间路由。格式为 IP地址/网络ID的位数,网络号的位数不固定,一个网容易拆分为子网嵌套,更加灵活在这里插入图片描述在这里插入图片描述
      • IP广播地址
        • 当一台主机发出目的地址为255.255.255.255的数据报时,报文会交付给同一个网络的所有主机,路由器也会有选择的向邻近的子网发送报文(通常不这样做)。可用于DHCP发现报文的发送,广播最小生成树
      • 如何获取地址、分配地址?(DHCP)
        • 主机和路由器的 IP 地址可以是由系统管理员手动配置,但更多的是通过 动态主机配置协议(DHCP) 来分配一个临时地址。
          • 这样可以使用较少的地址空间服务更多的主机,因为通常所有主机不会同时连接网络
          • DHCP可以将同一个地址在不同时段分给不同主机用。所以IP不是固定的,是变化的。
          • 移动IP技术,能让主机使用单一的地址。
        • 获取一块(网络)地址:
          子网获取IP地址:ISP从它大块地址中分配
          ISP获取IP地址: IP地址由因特网名字和编号分配机构ICANN管理(也管理DNS根服务器、AS标识号)。ICANN向区域性因特网注册机构分配地址,处理本地域内的地址分配/管理
        • 获取主机地址:
          组织获得一块(网络)地址,就可为组织内的主机、路由器接口逐个分配IP地址
          主机地址能手动配置,也能自动配置,即动态主机配置协议DHCP
        • 动态主机配置协议DHCP—UDP
          DHCP 允许主机自动获取一个IP地址
          DHCP可配置,可以使主机每次连网获得相同IP地址,也可每次分配一个临时IP地址。
          DHCP还允许主机查看子网掩码、默认网关(第一跳路由器地址)、本地DNS服务器地址
          DHCP能将主机连接进一个网络的自动能力,常被称为即插即用协议
          DHCP是一个客户-服务器协议。新来的主机要获得自使用的IP地址等网络配置信息
          每个子网都有一台DHCP服务器
          若子网没有DHCP服务器,则由一个路由器做DHCP中继代理,该代理知道该网络的DHCP服务器地址 在这里插入图片描述
          新主机获取自己的IP地址,DHCP协议的四个步骤:
          • DHCP服务器发现
            新到的客户通过广播DHCP发现报文,发现一个要与其交互的DHCP服务器
            客户在UDP分组中向端口67发送该发现报文,此时必须用广播地址255.255.255.255,源地址是0.0.0.0
          • DHCP服务器提供
            DHCP收到DHCP发现报文后,用 DHCP 提供报文向客户做出响应该报文使用 255.255.255.255 广播地址向子网的所有接口进行广播; 仍然使用广播地址因为此时新客户并没有IP地址可能有多台DHCP服务器,每台服务器提供的报文中,有向客户主机推荐的IP地址、网络掩码以及IP地址租用期(一般几天或几小时)
          • DHCP请求
            客户从提供中选一个,向选中的服务器提供一个DHCP请求报文进行响应,回显配置参数
          • DHCP ACK
            收到DHCP请求报文后,用DHCP ACK报文对其进行响应,证实所传参数。
            客户收到ACK后,交互完成,在租期内使用DHCP分配的IP地址
            DHCP提供了机制允许客户更新对一个IP地址的租用,
            当一个移动结点在子网之间移动时,就不能维持与远程应用的TCP连接。 (怎么解释)
        • 网络地址转换NAT
          • 地址10.0.0.0/8是保留的3个IP地址空间之一,这些地址用于家庭网络等专用网络或具有专用地址的地域
          • 具有专用地址的地域是指其地址仅对该网络中的设备有意义的网络。
          • 当ISP已经为SOHO网络当前地址范围分配过一块连续地址,而SOHO内主机越来也多时,需要用到NAT(比如电信给你家分配一个动态IP地址,家里要好几台手机电脑联网用一个IP地址,需要用NAT)。
          • NAT使能路由器:
          • NAT路由器对外界来看像一个具有单一IP地址的单一设备。例如,家里有一个NAT使能路由器,其IP地址138.76.29.7,且进入和离开家庭的报文都有同样的该地址
          • NAT路由器 对外隐藏了家庭网络的细节
          • NAT路由器从ISP的DHCP服务器得到它的地址,并且路由器运行一个DHCP服务器,为位于NAT-DHCP路由器控制的家庭网络地址空间中的主机提供地址
          • NAT转换表: 在这里插入图片描述
            • (端口号和IP地址)用于路由器将分组转发给特定的内部主机(比如家里的某个手机)
            • 采用NAT的路由器都会维护一张NAT转换表,内部主机访问外部将添加一个表项,路由器通过端口来标识内部主机(因此内部网络连接的端口需要不同)。
          • NAT重要问题:
            • 违反各种原则,应该用IPv6来改进
            • 妨碍P2P应用程序,包括P2P共享和语音。一个对等方在NAT后面,不能充当服务器并接受TCP连接,其解决办法是连接反转
            • 连接反转: A通过C与B联系,C不位于NAT之后并与B建立了TCP连接,已经被很多P2P应用用于NAT穿越
              若对等方A和B都在NAT之后,使用应用程序进行中继处理,如Skype中继
          • UPnP(解决NAT在P2P对等中的缺陷):
            • NAT穿越由通用 即插即用(UPnP) 提供
            • UPnP是一种允许主机发现并配置邻接NAT的协议,要求主机和NAT都是UPnP兼容(运行在NAT使能路由器)。允许外部主机使用TCP和UDP向NAT化的主机发起通信会话。
            • 作用: 使用UPnP,在主机上运行的应用程序能为某些请求的公共端口号请求一个NAT映射(专用IP地址,专用端口号 —> 公共IP地址,公共端口号)。如果某NAT接收请求并生成映射,来自外部的结点能发起到(公共IP地址,公共端口号)的TCP连接。
    • 因特网控制报文协议ICMP

      • ICMP被主机和路由器用来沟通网络层信息,如差错报告
      • 如『目的网络不可到达』这种错误是在ICMP产生的,IP路由器找不到路径通往指定主机,该路由器就向发送主机发出ICMP报文指示错误
      • ICMP通常被认为是IP的一部分,但从体系结构上来讲它是位于IP之上的因为ICMP报文是承载在IP分组中的。也就是说,ICMP报文是作为IP有效载荷承载的。
      • ping: 发送一个ICMP类型8编码0(回显请求)的报文到指定主机,目的主机发回一个类型0编码0(回显回答)的报文 在这里插入图片描述
        源抑制报文: 拥塞的路由器向主机发送,强制主机减小发送速率TCP在运输层有拥塞控制机制,不需要该报文的信息了
        Traceroute: 如何跟踪从一台主机到世界上任意一台主机之间的路由?
        • 原理: IP协议规定,路由器收到TTL为0的数据报会将其丢弃,然后发送一个ICMP告警报文给源主机,其中包含了它的IP地址
        • 方法: 发送TTL为1~n的一系列IP数据报。当到达目的主机时,返回一个端口不可达(数据报携带了不可达UDP端口号)的ICMP报文,则结束探测
    • IPv6
      在这里插入图片描述

      • IPv4地址耗尽,也可升级强化IPv4某些方面
      • v6的头部信息精简了许多,没有分片。用了一个 “” 的概念。
      • IPv6数据报格式(不一样的地方)
        • 扩大的地址容量
          32bit —> 128bit
          除了单播多播地址,引入任播地址,使数据报交付给一组主机中的任意一个
        • 简化高效的40字节首部
        • 流标签与优先级。 如音频流、视频流、高优先级用户承载的流量
        • 分片/重组。 只能在源与目的地进行,引入了“流”的概念
        • 选项 放到了『下一个首部』位置,使得IP首部 定长40字节
        • 去除首部检验和
      • IPv6字段
      • 版本号(version): 不同的IP协议版本使用不同的数据报格式。
      • 流量类型(Traffic Classes): 使得源节点和路由器能够识别IPv6信息包的优先级。与IPv4服务类型TOS字段含义类似。
      • 流标签(Flow Label): 标记那些需要IPv6路由器特殊处理(如一种非默认服务质量或实时服务)的信息包顺序。
      • 有效负载长度(Payload Length): 定长40字节数据报首部后面的字节数量,包括扩展报头和负载数据,即数据报长度-40。
      • 下一个首部(Next Header)(类似于IPv4中的上层协议):
        当IPv6没有扩展报头时,该字段的作用和IPv4的上层协议字段一样。当含有扩展报头时,该字段的值即为第一个扩展报头的类型。
      • 跳限制(Hop Limit)(类似于IPv4中的寿命)
        转发数据报的每台路由器对该字段的值减1,若减为0则丢弃该数据报。
      • 源和目的IP地址(Source/Destination Address);
      • 数据(Data): 当数据报到达目的地时,该有效载荷就从IP数据报移出,并交给下一个首部字段中指定的协议。
    • IPv4到IPv6的迁移:

      • 直接从v4全面转换为v6是不现实的。 目前是v4和v6混用阶段,会出现一个连接中有的路段是v4有的是v6的情形,那么两者如何一起工作呢?方法是双栈
        • 如果两个v6主机通信,连接上有一段v4,那么通过v4时,把v6的报文当作v4的数据包裹起来传输,再到v6时去掉v4的头
        • 这种结点有两种地址。DNS可解析两种地址如果发送方和接收方中任意一个仅为IPV4使能的,则必须使用IPv4数据报。
        • eg:在这里插入图片描述
        • 结点B必须生成一个IPv4数据报发给C,IPv6数据报的数据字段可以复制到IPv4数据报的数据字段中,并且要做适当的映射。在IPv4中没有对应的部分的数据,这些字段的信息会丢失
        • 建隧道:图中B和E,要使用IPV6交互,但是它们经由中间IPv4路由器关联的,我们将两台IPv6路由器之间的Ipv4路由器的集合成为一个隧道将整个IPv6数据报放在IPv4的有效载荷中
    • 涉足IP安全性:

      • 新型网络层协议IPsec(如果你是Mac OS,网络设置中添加VPN服务时你会看到)。
      • 与IPv4和IPv6向后兼容在VPN(虚拟专用网)中部署
        两台主机要通信,IPsec只需在两台主机中可用,其他主机和路由器继续用普通的IPv4
        两台主机首先创建IPsec会话 (面向连接的),在两台主机发送的TCP和UDP报文段都享受IPsec的安全性服务
      • 密码技术约定
      • IP数据报有效载荷的加密
      • 数据完整性
      • 初始鉴别。主机确信在数据报中的源IP地址是该数据报的实际源。
  • 路由选择算法
    我们已经知道了数据转发的原理和过程,但是网络不是只有一条直路,从一台主机到另一台主机,可选的路径可能有数不清种。我们应该选哪条呢?很明显选开销最小的哪条,像我们从长沙去北京就会走京港澳高速,走最近的那一条。
    • 路由选择: 确定从发送方到接收方通过路由器网络的好路径
    • 主机通常直接与一台路由器相连,该路由器即为该主机的默认路由器第一跳路由器
    • 源主机默认路由器称为源路由器,目的主机默认路由器称为目的路由器
    • 一个分组从源主机到目的主机 == 从源路由器到目的路由器
    • 路由选择算法: 给定一组路由器和连接路由器的链路,路由选择算法找到一条源路由器到目的路由器好的路径(最低费用),如最短路径算法
    • 第一种分类方法:
      • 全局式路由选择算法:
        完整、全局性的网络信息计算出最短路径(最低费用路径)
        practically具有全局状态信息的算法称作链路状态算法(LS)
        缺点:容易出现震荡
      • 分散式路由选择算法:
        迭代、分布式的方式计算最短路径
        没有结点拥有关于网络链路的完整信息,每个结点仅有与其直接相连链路的信息即可工作
        通过迭代计算并与相邻结点交换信息,逐渐计算出最低费用路径,距离向量算法(DV)
        缺点:选路环路问题
    • 第二种分类方法:
      • 静态路由选择算法:
        变化缓慢,通常人工干预
      • 动态路由选择算法:
        网络流量负载或拓扑发生变化时改变路由选择路径
        周期性运行或直接响应变化
        也容易受路由选择循环、路由震荡等问题的影响
    • 第三种分类方法
      • 负载敏感算法:
        链路费用动态变化来反映链路拥塞水平
      • 负载迟钝算法:
        链路费用与拥塞无关,当今因特网路由选择算法基本都是迟钝的
    • 链路状态路由选择算法LS:
      • 网络拓扑和所有链路费用已知。实践中是由每个节点向网络其他所有节点广播链路状态分组完成的,例如OSPF路由选择协议由链路状态广播算法完成
      • 所有节点都具有该网络的信息,每个节点运行LS算法
      • Dijkstra算法
        • 会产生路由震荡可以让每台路由器发送链路通告的时间随机化
    • 距离向量路由算法DV
      • 迭代、异步、分布式
        • 分布式:每个结点要从一个或多个直接相连邻居接收某些信息,计算,将计算结果发给邻居
          迭代:过程持续到邻居之间无更多信息交换
          异步:不要求所有节点相互步伐一致操作
      • DV算法
        Bellman-Ford方程
        无更新报文发送,不会出现进一步路由选择表计算,算法进入静止状态。直到一条链路费用发生改变
        链路费用改变与链路故障
      • 路由选择环路,无穷计数问题
      • 增加毒性逆转
        • 欺骗费用无穷大。如果z通过y路由选择到目的地x,则z通告y,它(z)到x的距离是无限大。
          解决两个直接相连无穷计数问题,更多结点环路无法解决
      • LS与DV路由选择算法的比较
        • 报文复杂性
          显然LS复杂得多,每条链路费用改变都要通知所有结点
        • 收敛速度
          DV算法收敛较慢,且会遇到路由选择环路和无穷计数问题
        • 健壮性
          路由器发生故障,LS结点仅计算自己的转发表提供了一定健壮性
          DV算法一个 不正确的结点会扩散到整个网络
      • 其他路由选择算法
        LS、DV基本上是当前因特网实践中使用的仅有的两种路由选择算法
        很多种新型算法,一种是基于将分组流量看做网络中源和目的之间的流
        电路交换路由选择算法也有参考价值
    • 层次路由选择
      • 目的: 为了方便管理,缩小计算规模,实现小区域自治,当然不能使用扁平化管理,层次管理是必要的。路由器系统就诞生了 自治系统AS概念。每一个自治区域由一个领头路由器(网关)管理,自治系统内运行相同的选路算法。所以选路算法又被划分为 AS内部选路协议和AS间选路协议
      • 问题:
        规模:当路由器数目变得很大,算法开销高的不可实现如LS更新链路费用
        管理自治:一个组织应该当按自己愿望运行管理其网络
      • 解决方法:
        将路由器组织进自治系统AS
        每个AS由一组处在相同管理控制下的路由器组成(如相同的ISP运营)
        相同AS中路由器全部运行同样的路由选择算法,叫做自治系统内部路由选择协议
        一个AS内一台或多台路由器负责向本AS之外的目的地转发分组,这些路由器称为网关路由器
        当有多台网关路由器,需要用到自制系统间路由选择协议来配置转发表
        因特网中所有AS中都运行相同的AS间路由选择协议BGP4
        每台路由器接收来自一个AS内部路由选择协议和一个AS间路由选择协议的信息,并使用来自这两个协议的信息配置它的转发表。
        某AS非网关路由器对转发表增加用于子网x(该AS外)的表项采取的动作:
        从AS间协议知道经多个网关可达子网x
        使用AS内部协议的路由选择信息,决定到每个网关的最低费用路径的费用
        热土豆路由选择: 选择具有最小的最低费用的网关
        从转发表确定最低费用网关接口I,将(x,I)添加到转发表中,如果AS从一个相邻AS处知道一个目的地,该AS能向它某些其他相邻AS通告该路由选择信息,一个ISP可能分为多个互联的AS
  • 因特网中的路由选择
    • AS内部路由选择协议,又称内部网关协议(IGP)
      路由选择信息协议RIP,通常设置在下层ISP中
      开放最短优先OSPF,通常设置在上层ISP中
    • AS(自治系统)内部的路由选择:RIP(DV思想)
      全称是Routing Information Protocol,选路信息协议。RIP采用距离向量算法,使用跳数作为其费用测度,每条链路的费用都为1。一条路径的费用最大为15,即跳数不能超过15跳。路由器之间通过RIP响应报文(RIP通告)进行消息交换,大约30s互相交互一次,路由器得到RIP报文后,与自己的转发表进行合并,并更新最短路径信息。
      • AS内部路由选择协议又成为网关协议
      • 是一种距离向量协议,使用跳数作为其费用测度
      • 跳:沿着源路由器到目的子网(包括)的最短路径经过的子网数量
      • 一条路径的最大费用限制为15,因此RIP使用限制在网络直径不超过15跳的自治系统内
      • 路由选择更新信息在邻居之间通过使用RIP响应报文(RIP通告) 来交换,大约每30s交换一次
      • 一台路由器或主机发出的响应报文包含了该AS内多达25个目的子网的列表,以及发送方到每个子网的距离
      • 每台路由器维护一张称为路由选择表的RIP表,包括该路由器的距离向量和转发表(目的子网,下一台路由器,到目的地跳数)
      • 路由器收到通告后,将通告与路由选择表合并,记下更短路径(DV算法还在收敛,或者新的链路加入AS)
      • 一台路由器超过180s没有从邻居听到报文,该邻居要么死记要么链路中断
      • RIP可以修改本地路由选择表,向活着的邻居发送RIP通告, 也可以使用RIP请求报文请求邻居到目的地的费用
      • RIP被当做一个应用进程来实现,能在一个标准socket上发送个接收报文,并且使用一个标准的运输层协议
      • 路由器在UDP上用端口520相互发送RIP请求/响应报文。意思是RIP使用一个运输层协议实现网络层功能
    • AS内部的路由选择:OSPF(LS思想)
      全称是Open Shortest Path First,开放最短路径优先。Open表示它是开放给公众可用的。OSPF和它的兄弟ISIS,通常被设置在较顶层的ISP中,RIP通常在较底层的ISP和企业网中。其采用链路状态算法,链路费用是由网络管理员配置的。OSPF路由器定期广播其他所有路由器的选路信息。OSPF是一个非常复杂的协议。
      • OSPF和其兄弟IS-IS通常设置在上层ISP中,RIP在下层ISP和企业网中
      • OSPF核心:使用洪泛链路状态信息的LS协议 + Dijkstra最低费用路径算法。各条链路费用(权值)是管理员配置的
      • 使用OSPF,一台路由器构建了整个AS的拓扑图,然后在本地运行Dijkstra算法
      • 使用OSPF,路由器向AS内所有其他路由器广播路由选择信息。即使链路未发生变化,也要周期性广播链路状态(at least 30 minutes at a time)
      • OSPF报文由IP直接承载
      • 优点:
        安全: 能够鉴别OSPF路由器之间的交换,仅有受信任的路由器能参与AS内的OSPF协议。包括使用MD5加密
        多条相同费用路径: 无需仅选择单一路径承载所有流量
        支持单播多播路由选择
        支持在单个路由选择域内的层次结构: 具有按层次结构构造一个自治系统的能力
        一个OSPF AS可以配置成多个区域,每个区域运行自己的OSPF LS算法,一个区域内每台路由器可以向该区域其他路由器广播链路状态
        一个区域内,一台或多台区域边界路由器负责为流向该区域以外的分组提供路由选择
        AS内只有一个OSPF区域配置成主干区域,为其他区域之间的流量提供路由选择。该主干包含AS内所有区域边界路由器,也可能包含一些非边界路由器
        某区域内分组—>区域边界路由器—>主干—>目的区域边界路由器—>目的地
    • AS间的路由选择:BGP
      Border Gateway Protocol,边界网关协议。BGP也是一个非常复杂的协议,还分为eBGP外部边界网关协议和iBGP内部边界网关协议。虽然有了OSPF和RIP,但还是需要BGP还是插上一脚,通过iBGP和内部网关协议配合才能做好内部选路。
      • BGP: 边界网关协议,跨越多个AS的源和目的对之间确定路径,现在用的BGP4
      • BGP为AS提供:
        • 从相邻AS获得子网可达性信息
        • 向本AS内部所有路由器传播这些可达性信息
        • 基于可达性信息和AS策略,决定到达子网的路由
      • BGP使得每个子网向因特网其余部分通告它的存在:一个子网高声宣布『在这!』,并且确保因特网中所有AS知道该子网以及如何到达
      • BGP基础:
        • 是因特网中至关重要的协议,正是BGP将一切『粘合』起来
        • BGP中,路由器通过使用179端口的半永久TCP连接来交换路由信息
          • 跨越两个 AS的TCP连接称为外部BGP会话eBGP,AS内部每对路由器之间的TCP连接成为内部BGP会话iBGP
          • iBGP并不总与物理链路对应
          • 位于连接两端的两台路由器成为BGP对等方
        • 假设你开了公司,与ISP签订协议,获得了一个IP地址范围(子网),每台路由器是通过BGP知道你公司地址的前缀进行转发的,这样别人才能成功将分组发到公司
        • BGP使每个AS知道经过其相邻AS可到达哪些目的地子网,目的地是CDIR化的前缀,子网或子网的集合
        • BGP中,一个AS由其全局唯一的AS号ASN标识,which is allocated by ICANN
        • 当一台路由器通过BGP会话通告一个前缀时,它在前缀中包括一些属性。带属性的前缀称为一条路由,BGP对等方彼此通告路由
        • AS-PATH: 该属性包含了前缀通告已经通过的AS,当一个前缀传送到一个AS时,AS将其ASN增加到AS-PATH中
          • 路由器使用AS-PATH属性检测和防止循环通告
          • 路由器使用AS-PATH在多条路径中选择相同的前缀
        • NEXT-HOP: 是一个开始某AS-PATH的路由器接口
          • 路由器使用该属性正确地配置它们的转发表
          • 使用NEXT-HOP值和AS内部路由选择算法,路由器能确定到每条对等链路的路径的费用,用热土豆路由选择决定适当的接口
      • BGP路由选择
        • BGP使用eBGP和iBGP向在AS中的所有路由器发布路由,路由器可能知道到达任何一条前缀的多条路由。消除规则从上到下:
          • 选择具有最高本地偏好值(管理员决定)的路由
          • 选择具有最短AS-PATH的路由
          • 最靠近NEXT-HOP路由器的路由,最靠近指最低费用路径最低,由AS内部算法决定(hot potato routing)
          • 使用BGP标识符选择路由
      • 路由选择策略
        • 反应ISP之间商业关系
  • 广播和多播路由选择
    在广播路由选择(必须同一网段,类似于子网掩码)中,网络提供了一种源节点到网络中事务所有其它结点的交付分组的服务;
    多播路由选择使单个源节点能够向其他网络结点的一个子集发送分组的副本。(不必同一网段).
    广播就是将一条信息发给网络中所有的主机。通常采用 泛洪
    • 广播路由选择算法:
      • N次单播
        • 给定N个目的节点,源结点产生该分组的N份副本,对不同目的地每个副本编址,用单播路由选择传送
        • 缺点: 效率低,多份独立的副本会重复经过某段链路,让网络结点(分开的地方)本身生成分组副本更有效
        • N次单播的一个假设是广播的接收方及其地址为发送方所知晓。但是怎样得到这些消息呢?最可能的是,可能还需要别的机制,增加了更多的开销。
    • 泛洪:
      • 简单来说泛洪就是,一台主机收到消息后,再向它的所有邻居转发(当然不包括发给它的邻居)。这种叫做无控制泛洪,当网络中有环时,就会反复传播,停不下来,产生“广播风暴”。所以有 受控泛洪 技术,一种受控泛红技术是通过序号控制泛洪,每个广播报文有自己的序号,路由器会有记录,同一序号的报文只转发一遍;还有一种是反向路径转发技术,当路由器收到具有给定源地址的广播分组后,仅当该分组到达的链路正好是位于它自己到源的最短单播路径上时,它才转发分组。
      • 无控制洪泛
        • 源节点向所有邻居发送分组副本,结点复制该分组并向它邻居转发
        • 缺点: 图中有环,会无休止循环
        • 当一个结点与两个以上结点连接时,它将生成并转发广播分组的多个副本,副本中的每个又产生多个副本,产生广播风暴,使网络变得毫无用处
      • 受控洪泛
        • 序号控制洪泛: 源节点将其地址或其他唯一标识和广播序号放入广播分组,每个结点维护它已经收到的、复制的和转发的源地址和序号列表。当结点接受到一个广播分组时,它首先检查该分组是否在列表中。如果在,丢弃该分组;如果不在,复制该分组并向该结点的所有邻居转发。
        • 反向路径转发RPF: 仅当分组到达的链路正好位于它自己返回源的最短单薄路径上,才传输报文,否则丢弃。RPF仅需要知道在它到发送方的单薄路径上的下一个邻居;它仅用这个邻居的身份以决定是否洪泛一个接收到的广播分组
      • 生成树广播
        除了泛洪,还有一种生成树广播方式。即从该节点为根构造一棵最小生成树,沿着生成树的路径广播。这样的方式不会产生任何冗余分组,不过个人感觉不如受控泛洪效率高。
        • 虽然序号控制洪泛和RPF避免了广播风暴,但它们不能完全避免冗余广播分组的传输。
        • 构造最小生成树;结点只需知道哪些邻居在生成树中
        • 分布式生成树算法
          基于中心的方法: 建立一棵生成树时,定义一个中心结点 (汇合点、核),结点向中心结点单薄加入树的报文。加入树的报文使用单播路由选择朝着中心结点进发,直到它到达一个生成树中,经过的路径再嫁接到现有生成树中。
          在实践中,广播协议被用于应用层和网络层
    • 多播
      • 只有一部分路由器(那些具有加入该多播组的相连主机的路由器)实际需要接收多播流量。
      • 一些新兴应用要求将分组从一个或多个发送方交付给一组接收方,比如各种直播、游戏
      • 多播数据报使用间接地址来编址。每个分组难道携带所有接收方IP地址?这不科学
      • 用一个标识表示一组接收方(D类多播地址),接收方小组称为多播组
      • 因特网组管理协议IGMP
      • IGMP + 多播路由选择协议 组成网络层多播
      • 确定多播路由选择:
        • 使用一棵组共享树的多播路由选择(共享的): 通过组共享树进行多播路由选择的基础是构建一棵树。
        • 使用一棵基于源的树的多播路由选择: 而第二种方法为多播组中的每个源构建一棵多播路由选择树。
      • 解决应用RPF时会收到不想要的多播分组这个问题成为剪枝。一台接收到该多播分组的多播路由器,如它无加入改组的相连主机,则它向其上游路由器发送一个剪枝报文,则它就能向上游转发一个剪枝报文.
      • 实际的广播算法:Gnutella(一种文件共享网络)采用16比特标识符来标识一次广播,类似序号受控泛洪的模式,此外它还设置了广播的最大跳数,所以它的机制又被称为范围受限泛洪;OSPF和ISIS也采用序号受控泛洪算法来广播。

对于网络层的总结,没有时间进一步去看书总结(之前看过一遍),所以通过学习blog进行总结,大部分引用于:点这里!!!!以及点击这里!!!!!!!!!!!!!!!!

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值