计算机网络 中 网络层

4 网络层

主要任务是把分组从源段传送到目的端,为分组交换网上的不同主机提供通信服务,传输单位是数据报

4.1 网络层是什么?

它是在数据链路层和传输层之间,是一个“选择和控制器”

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务

4.2 为什么要有网络层?

因为网络层传输的单元是数据报,要实现在不同主机之间通信,为了提高传输效率和准确率

所以需要对数据单元(分组)进行路由选择和控制(流量控制、拥塞控制、差错控制和网际互联),所以才有了网络层这个“选择和控制器”

  1. 数据报是什么

    是比较长的数据

  2. 分组是什么

    是切割数据报而划分出来的片段,片段大小可以相同也可以不同

4.3 怎么使用网络层?

4.3.1 选择路由与转发分组

什么是路由表/转发表?

它是路由器内部维护的一张表,用来将收到的数据转发给对应的路由或其他设备

目的网络IP地址|子网掩码|下一跳IP地址|接口

4.3.1.1 什么是路由算法

在特定条件下计算最佳路径的方法(网络层通常指的是最短路径),分为静态路由算法和动态路由算法

  1. 静态路由算法

    1. 是什么?也叫非自适应路由算法,需要管理员手工配置路由信息

    2. 为什么?简便、可靠

    3. 怎么用?适用于负荷稳定、拓扑变化不大的网络中,如军事网络、较小的商业网络

    4. 缺点?路由更新慢,不适用大型网络

  2. 动态路由算法

    1. 是什么?也叫自适应路由算法,路由器彼此交换信息,按照路由算法优化出路由表项,分为全局性和分散性

      1. 全局性

        1. 是?如:链路状态路由算法 OSPF协议(所有路由器掌握完整的网络拓扑和链路费用信息)
      2. 分散性

        1. 是?如:距离向量路由算法 RIP协议 (路由器只掌握物理相连的邻居及链路费用)
    2. 为什么?路由更新快,及时响应链路费用或网络拓扑变化

    3. 怎么用?适用大型商业网

    4. 缺点?算法复杂,会增加网络负担

4.3.1.3 什么是自治系统AS

  1. 是?
    1. 在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内部的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由
    2. 一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通

4.3.1.4 什么是路由选择协议

  1. 分层次的路由选择协议

    1. 是?在各个层次都使用路由选择协议

    2. 为?

      1. 因特网规模很大
      2. 很多单位不想让外界知道自己的路由选择协议,但还是想联入因特网
  2. 路由选择协议;分为内部路由器协议IGP和外部路由器协议EGP,内外是指自治细听AS的内外

    1. 内部路由器协议IGP,如RIP和OSPF协议

      1. 是?在自治系统内部使用的路由器协议
    2. 外部路由器协议EGP,如BGP-4协议

      1. 是?与上相反,内外协议相互透明
    3. RIP协议

      1. 是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大的优点是简单

      2. 协议内容:

        1. 要求网络中的每个路由器都维护从他自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)
        目的网络 距离(通常是跳数,16表示网络不可达) 下一跳
        Net1 1 直接交付
        Net2 2 R1
        Net3 2 R3
        1. 仅仅和相邻路由交换信息
        2. 交换的是自己的路由表
        3. 每30秒交换一次信息,若隔了180s仍然没有收到邻居,则判定邻居没了,并更新路由表、
        4. 经过若干次更新后,所有路由器最终都会知道,到达本自治系统任何一个网络的最短距离和下一跳路由器地址,即“收敛”
      3. 适用于小网络

      4. 距离向量算法

        1. 修改相邻路由器发来的RIP报文中的所有表项

          对地址为X的相邻里路由器发来的RIP报文,修改次报文中的所有项目:把下一跳字段中的地址改为x,并把所有“距离”字段+1

        2. 对修改后的RIP报文中的每一项,进行以下步骤

          1. 若新来的报文中的网络不存在,则直接写入,

          2. 若存在

            1. 比较下一跳是否是x,则替换表;若不是,比较路径,远的话不作处理
          3. 180s后未6表,则记录邻路由为不可达路由,把距离设置为16

          4. 返回,直至收敛为止,并继续更新

      5. RIP协议的报文格式

        1. RIP报文 =【4B 首部 4B 路由部分】

        2. 首部 = 【命令 版本 必为0 】

        3. 路由部分 【地址族标识符 路由标记】;路由信息可重复出现最多25个(20字节/路由)

          网络地址

          子网掩码

          下一跳路由地址

          距离【1-16】

        4. IP数据报 = 【IP首部 UDP用户数据报 【UDP首部 RIP报文】】

      6. RIP协议的特点:好消息块,坏消息慢

    4. OSPF协议 开放最短路径优先协议

      1. 是什么?

        1. 最主要的特征就是使用分布式的链路状态协议

        2. 链路状态路由算法

          1. 每个路由器发现邻居节点(hello问候组),并了解邻居节点的网络地址

          2. 设置到它的每个邻居的成本度量metric

          3. 构造【DD数据可描述分组】,向邻站给出自己的链路状态数据库中的所有的链路状态项目的摘要信息

          4. 如果DD数据分组中的摘要信息自己都有,则邻站不做处理,如果没有或者是更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息

          5. 收到邻站的LSR分组之后,发送【LSU链路状态更新分组】进行更新

          6. 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认

            只要链路状态发生变化

          7. 泛洪发送【LSU链路状态更新分组】进行更新

          8. 更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认

          9. 使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径

        3. OSPF报文格式

          1. IP数据报 = 【IP首部 OSPF分组】
          2. OSPF分组= 【OSPF分组首部 类型1至类型5的OSPF分组】
        4. OSPF协议特征

          1. 每隔30分钟,刷新一次数据库中的链路状态
          2. 因为路由器的链路状态只和相邻路由器的联通状态有关,而与整个网络无关,所以及时互联网规模很大时,OSPF协议要比距离向量协议RIP好的多
          3. 不存在坏消息传的慢的问题,它收敛的速度很快
      2. 为什么

        求解最短路径

      3. 怎么用

        1. 和谁交换
          1. 使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发送至其所有的相邻路由器
        2. 交换什么
          1. 发送的信息是与本路由器相邻的所有路由器的链路状态(本路由器与哪些路由相连,以及该链路的度量/代价;费用、距离、时延和带宽等)
        3. 多久交换
          1. 链路状态发生变化时才交换
      4. OSPF 的区域

        1. 再划分为多个小区域,一般路由不超过200个,因而可以适用于较大网络
    5. BGP协议

      1. 是什么?

        1. 外部网关协议

        2. 过程:当交换了网络可达性的信息后,即要达到某一个网络所要经过的一系列AS,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由

        3. BGP协议报文格式[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C4bRj8zr-1651847037246)(/Users/qinjianquan/Downloads/IMG_9CC134085CA5-1.jpeg)]

        4. 协议特点:

          1. BGP支持CIDR,因此BGP路由表包括目的网络前缀、下一跳路由器,到该网络所要经过的自治系统序列
          2. BGP刚开始运行时,BGP的邻站是交换整个的BGP路由表,以后只需在发生变化时更新有变化的部分,这能够减少路由器处理开销和节省网络带宽
          3. BGP-4
            1. OPEN(打开)报文,用来与BGP发言人建立关系,并认证发送方
            2. UPDATE(更新)报文:通告新路径或撤销原路径
            3. KEEPALIVE 报文 字面意思
            4. NOTIFICATION 通知报文:报告先前的报文的差错,也被用于关闭连接
      2. 为什么

      3. 怎么用

        1. 和谁交换信息:与其他AS的邻站BGP(路由器)发言人交换信息
        2. 交换信息:交换网络可达性的信息,即要达到某一个网络所要经过的一系列AS。交换的是路径向量,即完整的路径
        3. 发生变化时才交换
    6. 三种协议的比较

      RIP协议:分布式的基于距离向量的内部网关路由选择协议。通过广播UDP报文来交换路由信息。

      OSPF协议:内部网关路由选择协议,交换的信息量较大,应使报文的长度尽量短,所以不适用传输层协议(如UDP或TCP),而是直接采用IP

      BGP协议:外部网关协议,在不同自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-huZYKvlh-1651847037247)(/Users/qinjianquan/Downloads/IMG_5F832B03B82D-1.jpeg)]

4.3.2 互联异构网络

异构网络:手机网、校园网、电脑网

使用工具:路由器,异构网络的核心就是路由器

  1. 为什么要有路由器?

    主机与主机直接相连需要更复杂的网络结构,在主机之间或者路由器之间再加多个路由器(交换设备)能够互联异构网络并且节省线路

4.3.3 控制拥塞

当所有节点都来不及接受分组,网路就会拥塞

控制拥塞的方式:

  1. 开环控制:静态控制方式,事先就控制可能造成网络拥塞的因素
  2. 闭环控制:动态控制方式,运行起来再看

4.2 数据交换方式

1. 什么是数据交换方式?

在两台设备在网络层之间交换数据的方式,有分组交换和报文交换、电路交换

  1. 电路交换

    1. 什么是电路交换?

      如:电话网络中的数据交换方式

      1. 电路交换的阶段

        建立连接(呼叫/电路建立)- 通信 - 释放连接(拆除电路)

    2. 为什么要使用电路交换?

      独占线路,但可以使用多路复用技术让多对设备共用线路

      1. 通信时延小
      2. 有序传输
      3. 没有冲突
      4. 实时性强
    3. 为什么不要使用电路交换?

      1. 建立连接时间长
      2. 线路独占,使用效率低
      3. 灵活性差
      4. 无差错控制能力
  2. 报文交换

    1. 什么是报文交换?

      如:A发给B一个PDF文档就使用的是报文交换方式

      1. 报文是什么:源应用发送的信息整体

      2. 报文交换过程

        源 - 交换设备 (存储转发)- 目的

    2. 为什么使用报文交换?

      1. 无需建立连接
      2. 存储转发、动态分配线路
      3. 线路可靠性高
      4. 线路利用率高
      5. 多目标服务:一个报文可以发送给多个目的
    3. 为什么不使用报文交换?

      1. 有存储转发时延
      2. 报文大小不定,需要网络节点有较大的缓存空间
  3. 分组交换

    1. 什么是分组交换?

      将报文切割成分组片段再转发

      1. 分组交换过程(同报文交换)

        源 - 交换设备 (存储转发)- 目的

      2. 分组交换分类:数据报方式和虚电路方式

        1. 什么是数据报方式?

          是为网络层提供无连接的服务

          ​ 无连接服务:每个分组传输路径事先不定

        2. 什么是虚电路方式?

          是为网络层提供有连接的服务

          ​ 连接服务:首先为分组确定传输路径(建立连接),然后沿着该路径传输系列分组,传送结束后拆除分组

    2. 为什么使用分组交换?

      1. 无需建立连接
      2. 存储转发,动态分配线路
      3. 先可靠性更高
      4. 线路利用率较高
      5. 相比报文交换,存储管理更容易,注意:是并行转发
    3. 为什么不使用分组交换?

      1. 有存储转发时延,但是比报文交换快

      2. 需要传输额外的信息量,因为报文在发送时被拆开,所以要附加信息以传到时进行合并

      3. 乱序到目的主机时,需要对分组排序重组

        最常用的数据交换方式,因特网就是使用这种方式

2. 为什么要有数据交换方式?

因为数据可能会在异构网络中传输不等的距离,所以数据必须被封装成不同类型的“包裹”,并且确定好交换方式,因而才能实现在不同网络、距离中交换

4.3 几种传输单位与TCP/IP协议栈再辨析

4.3.1 五层网络体系结构与协议

  1. 应用层

    1. 传输单元:报文
    2. 使用协议:HTTP/FTP/DNS/DHCP
  2. 传输层

    1. 传输单元:报文段;如果报文很小则不会分段
    2. TCP/UDP
  3. 网络层

    1. 传输单元:IP数据报(报文段 +源IP + 目的IP),分组(如果报文段过大的话继续分组),因特网用的就是数据报

      1. IP数据报格式

        1. 是?IP数据报 = 首部(20字节固定部分 + 可变部分) + 数据部分(TCP、UDP段)

          1. 固定部分 长度20B

            1. 4bit 版本(IPv4/IPv6) / 4bit 首部长度(至少从5开始,单位是4B,以保证固定部分的20字节)/ 8bit 区分服务(可选)/总长度(首部+数据,单位是1B,是IP数据报长度的上限值)

            2. 标识 标志 片偏移

              1. 标识:同一数据报的分片使用同一标识
              2. 标志:x _ _, 中间位置DF,0则是可以分片,1则禁止分片,低位MF,1则禁止分片,0则允许更对分片
              3. 片偏移:单位8B,13bit,每个分片都是8字节的整数倍,除了最后一个字节
            3. 生存时间(TTL) 协议 首部检验和

              1. TTL: IP分组的保质期,经过一个路由器-1,变0则丢弃
              2. 协议:8bit,传输层传下来的报文段使用的是什么协议,每个协议名对应一个字段值,如UDP:17 ;TCP:6
              3. 首部检验和:16bit,只检验首部
            4. 源地址

              32bit

            5. 目的地址

              32bit

          2. 可变部分

            1. 可选字段(长度可变)填充
              1. 可选字段:0-40B,用来支持排错、测量以及安全等措施
              2. 填充字段,让数据报达到四字节的整数部分
          3. 数据部分,传输层的报文段

    2. 使用协议:ARP<IP<ICMP/IGMP

  4. 数据链路层

    1. 帧(IP数据报或者分组+ 头 + 尾[帧检验序列]),最大传送单元MTU(数据部分,也就是上一层的IP数据报或者分组最大不能超过1500B),以太网最大的传输单元是1500字节
    2. 当IP数据报/分组超过1500B时,就需要分片,但是需要IP数据报/分组同意
    3. 数据链路层封装需要加上源MAC地址和目的MAC地址(ARP协议)
  5. 物理层

    1. 比特流

4.4 IPv4

4.4.1 IP地址分组

  1. IP地址是?
    1. 每一个主机或者路由接口的标识符,32位/4字节
    2. IP地址::={<网络号>,<主机号>},一般写为点分十进制供阅读。00000000 ~ 11111111 => 0 ~ 255,所以一共有 256^4 = 2^32 = 4294967296种
    3. 网桥连接的网也是一同一个网,而路由器可以分隔广播域

IP编址的历史阶段

分类IP地址 - 子网划分 = 构成超网(无分类编址方法)

127.0.0.1
192.168.31.144
  1. 分类的IP地址
    1. A类:1 ~ 126 :0 1B网络号;3B主机号
    2. B类:128 ~ 191 :10 2B网络号;2B主机号
    3. C类:192 ~ 223 :110 3B网络号;1B主机号
    4. D类:224 ~ 239:1110 多播地址
    5. E类:240 ~ 255 :1111 保留为今后使用
网络类别 最大可用网络数 第一个可用的网络号 最后一个可用的网络号 每个网络中最大的主机数
A 2^-2 1 126 224-2=28*28*28-全0表示一个网络&特定网的所有主机
B 2^14-1 128.1 191.255 2^16-2
C 2^21-1 192.0.1 223.255.255 2^8-2
  1. 特殊的IP地址

    NetID HostID 作为IP分组源地址 作为IP分组目的地址 用途
    全0 全0 可以 不可以 本网范围内表示主机,路由表中用于表示默认路由(表示整个Internet网络)(不清楚自己的IP就可以写0.0.0.0)
    全0 特定值 不可 可以 表示本网内的某个主机
    全1 全1 不可 可以 本网广播地址(路由器不转发,广播信号路由器隔离)
    特定值 全0 不可 不可 网络地址,表示一个网络
    特定值 全1 不可 可以 直接广播地址,对特定网络上的所有主机进行广播
    127 非全0/1 可以 可以 用本地软件换回测试,称为回环地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUZZt5mz-1651847037248)(/Users/qinjianquan/Library/Application Support/typora-user-images/image-20220505153259141.png)]

3.私有I P地址

地址类别 地址范围 网段个数
A类 10.0.0.0 ~ 10.255.255.255 1
B类 172.16.0.0 ~ 172.31.255.255 16
C类 192.168.0.0 ~ 192.168.255.255 256

4.4.2 IPv4地址与NAT

路由器对目的地址是私有IP地址的数据报一律不进行转发,当某个网络中的主机想与外界网络通信时,需使用NAT技术

网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址

NAT转换表:

WAN端 LAN端
172.38.1.5 :40001 192.168.0.3 :30000
172.38.1.5 :40002 192.168.0.4 :30001
http://47.100.202.97:8080/

端口号对应一个进程,不同设备端口号可以相同

4.4.3 子网划分与子网掩码

子网划分

  1. 什么是子网划分?

    1. 对将主机号进一步划分为子网号(看具体情况能不能全0或者全1) + 主机号(不能全0,也不能全1),并且对外透明
  2. 为什么要划分子网?

    1. 分类的IP地址对空间利用率很低
    2. 一些网络对连接到网络上的设备有限制,IP地址远多于主机数,造成浪费
    3. 两级IP地址不够灵活,所以要划分为三级IP地址

子网掩码

  1. 什么是子网掩码?

    只要是主机号就写0,只要是网络号就写1,比如在三级IP地址中,子网掩码为255.255.255.0

  2. 为什么要有子网掩码?

    1. 外部的数据报需要传递给本网内的特定主机
  3. 怎么使用子网掩码?

    1. 将三级IP地址与三级IP地址的子网掩码按位与运算,就会得到子网网络地址,不同的子网掩码与IP地址相与之后会得出同样的结果
    2. 但是不同的子网掩码代表的意义不同(具体而言就是网络号和主机号位数不同)

路由器转发分组的算法

  1. 提取目的IP地址
  2. 是否直接交付
  3. 特定主机路由
  4. 检测路由表中有无路径
  5. 默认路由0.0.0.0 (转给默认路由,循环,使用生存周期限制)
  6. 丢弃,报告转发分组出错

4.4.3 ARP、DHCP和ICMP协议

无分类编址CIDR

  1. 是什么

    也叫无分类域间路由选择CIDR

    1. 它消除了传统的A类,B类、C类地址和划分子网的概念
    2. 比如传统的IP地址(ABC类地址)分为两级编址:也就是网络号+主机号;三级编址:网络号 + 子网号 (两级编址中主机号中较高的几位位)+ 主机号
    3. 而无分类编址CIDR(构成超网):网络前缀(三级编址中的网络号 + 子网号) + 主机号
    4. CIDR记法:IP地址后加上 “/”,然后写上网络前缀(可以是任意长度)的位数。如 128.14.32.0/20,可以看到他把前缀相同的连续IP地址组成了一个“CIDR地址块”
    5. CIDR中的子网掩码,也叫地址掩码:规则同子网划分中一样,主机号全为0,网络号全为1
  2. 为什么要使用无分类编址CIDR?

    1. 网络地址资源越来越少,虽然划分了子网,但是B类地址仍然消耗殆尽,1992年就已经使用了一半
    2. 融合了子网地址与子网掩码,方便子网划分

构成超网

  1. 是什么
    1. 将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合
    2. 将网络前缀缩短; 举例:网络1: 206.1.0.0 / 17; 网络2:206.1.128.0/17,构成超网:206.1.0.0/16

  2. 为什么要使用构成超网

    1. 因为路由表在转发给某个网络时,需要维护很长的列表,但是部分子网其实属于一个大的网络,并且可以通过子网掩码来计算出到底是哪一个,目的就是汇总,然后转发
  3. 怎么用

  4. 此时的路由转发表:网络前缀 + 下一跳地址;转发时匹配原则,最长前缀匹配(前缀越长、地址块越小,路由越具体)

发送数据的过程

  1. 经过哪些节点
    1. 主机A - 集线器 - 交换机A - 路由器 - 交换机B - 主机B
  2. 以什么形式

ARP协议(获得目的主机的MAC地址)

  1. 是什么

    1. 是一种获得目的主机MAC地址的约定

    2. ARP协议的具体过程:数据链路层封装需要加上源MAC地址和目的MAC地址,当源主机不知道目的主机的MAC地址时,就会发广播一个ARP请求分组[IP1 IP3 MAC1 FF-FF-FF-FF-FF-FF](全F代表该帧是在请求广播),然后目的主机收到广播后会返回给源主机它的MAC地址,此时它们就可以单独传送和接收数据了

    3. 对于每一个主机或者每一个路由器,都有一个高速缓存(IP地址和MAC地址的映射),高速缓存只存放本局域网内部的映射

    4. 总结就是完成主机或者路由器IP地址到MAC地址的映射

  2. 为什么

    因为数据链路层在封装时需要目的主机的MAC地址和IP地址才能传送数据

  3. 怎么使用

    链路层封装数据时检查ARP高速缓存 - 有责写入目的主机的MAC地址 - 无责执行ARP协议的过程

    ARP协议是自动运行的

    ARP协议的四种典型情况:

    1. A和B在同一网络,用ARP找到B的MAC地址
    2. A和B在不同网络,用ARP找到本网络路由器(网关)的硬件地址
    3. 路由器发给本网A,用ARP找到本网A的MAC地址
    4. 路由器发给另一网络的B,用ARP找到本网络上的路由器MAC地址

DHCP协议

  1. 是什么

    是应用层的协议,使用客户/服务器的方式,客户端和服务端通过广播方式进行交互,基于UDP

    DHCP提供即插即用联网机制,主机可以从服务器动态获取三要素(IP地址,子网掩码和默认网关)、DNS服务器名称和IP地址。允许地址重用(DHCP服务器有一个IP地址池),支持移动用户加入网络,支持在用地址续租

  2. 为什么要使用DHCP协议

    因为各个设备要接入网络,接入网络就需要获得IP地址以及一些配置,DHCP可以提供这些信息

    网络层在封装数据报时需要加上目的主机的IP

    如何获得IP地址?

    1. 静态配置

      学校的机房,配置的内容IP地址、子网掩码、默认网关

    2. 动态配置

      使用DHCP服务器给移动设备动态分配IP地址

  3. 怎么使用

    1. 主机广播DHCP发现报文 “有没有DHCP服务器呀”
    2. DHCP服务器广播DHCP提供报文 “有!”,并且拟分配给主机一个IP地址以相关的配置,先到先得
    3. 主机广播DHCP请求报文 “那我用你给我的IP地址啦?” 主机向服务器请求提供的IP地址
    4. DHCP服务器广播DHCP确认报文 “用吧” 正式将IP地址分配给主机

ICMP协议(网际控制报文协议)

  1. 是什么

    1. 是一个桥梁
    2. 它支持主机和路由器
  2. 为什么用ICMP协议

    1. 为了更加有效的转发IP数据报和提高交付成功的机会,也就是能够

      1. 报告差错或异常 —> 发送特定ICMP报文(在IP数据包的数据部分)

        1. IP数据报 = 首部(20字节固定部分 + 可变部分) + 数据部分(TCP、UDP段)

        2. ICMP报文

          1. 结构

            1. 【 1B 类型 1B 代码 2B 检验和 】
            2. 4B 取决于报文的类型
            3. ICMP的数据部分(长度取决于类型)
          2. 分类:ICMP差错报告报文和 ICMP询问报告报文

            1. ICMP差错报告报文

              1. 需要发送报文的情况

                1. 终点不可达(无法交付):若路由器或者主机不能交付数据报,则向源点发送终点不可达报文

                2. 源点抑制(拥塞丢数据):若路由器或者主机由于拥塞而丢弃数据报,则向源点发送源点抑制报文。使源点知道把数据报的发送速率放慢

                3. 时间超过:若路由器收到生存时间TTL=0的数据报时,丢弃数据报且向源点发送时间超过报文。若终点在规定时间内未收到一个数据报的全部数据片时,则丢弃数据所有数据片且向源点发送时间超过报文

                4. 参数问题:若路由器或者主机收到首部不正确的的报文时,则向源点发送参数问题报文

                5. 改变路由(重定向):路由器发送改变路由报文给主机,让主机知道下次应该将数据报发送给另外的路由器(可以通过更好的路由)

              2. 无需发送ICMP差错报文的情况

                1. 对ICMP差错报告报文不再发送
                2. 对第一个数据报片的后续数据报片不再发送ICMP差错报告报文
                3. 对具有组播地址的数据报都不再发送ICMP差错报告报文
                4. 对具有特殊地址(127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
            2. ICMP询问报文

              1. 回送请求和回答报文: 主机或者路由向特定主机发出询问,目的主机收到报文必须发送ICMP报文给询问者,如 ping。可测试目的站是否可以达以及了解其相关状态
              2. 时间戳请求和回答报文:请求某个主机或者路由回答当前的时间和日期,用来进行时钟同步和测量时间
              3. 掩码地址请求和回答报文(弃用)
              4. 路由器询问和通告报文(弃用)
        3. ICMP差错报告报文数据字段

          1. IP数据报 = 首部(20字节固定部分 + 可变部分) + 数据部分(TCP、UDP段)
          2. ICMP差错报告报文 = ICMP的前8B + IP数据报首部 + 取出上面数据部分的前8B
          3. 装入了ICMP报文的IP数据报 = IP数据报的首部 + ICMP差错报告报文
      2. 探寻网络

  3. 怎么用

    1. PING 测两个主机之间的连通性,使用了ICMP回送请求和回答报文
    2. Traceroute :跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文

4.5 IPv6

  1. 是什么

    仍然是每一个主机或者路由接口的标识符,128位/16字节

    1. IPv6数据报的格式

      1. IPv6数据报格式 =【基本首部(40B) 有效载荷(不超过65535字节)】
        1. 基本首部
          1. 【4 版本 8 优先级 20 流标签】
          2. 【有效载荷长度 下一个首部 跳数限制】
          3. 【源地址:128位】
          4. 【目的地址:128位】
        2. 有效载荷 =【扩展首部1 … 数据部分】
    2. IPv6地址表示形式

      1. 冒号16进制记法:AD80:0000:0000:0000:ABAA:0000:00C2:0002
      2. 压缩形式:AD80:0:0:0:ABAA:0:C2:2,压缩前面连续的0
      3. 0压缩:AD80::ABAA:0:C2:2
    3. IPv6基本类型地址

      1. 单播 一对一通信 可做源地址 + 目的地址
      2. 多播 一对多通信 可做目的地址
      3. 任播 一对多当中一个通信 可做目的地址 一般是最近的一台
    4. IPv4地址如何向IPv6地址过度

      1. 双栈协议

        在一台设备上同时启用IPv4协议栈和IPv6协议栈,如果是主机,则它具备能够同时处理这两个协议的功能,如果是路由,则它可能分别连接了IPv4和IPv6的网络

      2. 隧道技术

        1. 通过使用互联网基础设施在网络之间传送数据

        2. 使用隧道传递的数据(或负载)可以是不同协议的数据帧或包

        3. 隧道协议将其他协议的数据帧或者包重新封装然后通过隧道发送

  2. 为什么

    1. 尽管在使用IPv4地址时使用了NAT技术和CIDR,但是本质上并没扩充IP地址的资源

    2. IPv6能从根本上解决IP地址耗尽的问题

    3. 还可以改进首部格式

    4. 快速处理/转发数据报

    5. 支持Qos(服务质量),指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术

  3. 与IPv4的比较

    1. 地址位数扩充 32 ->128
    2. 移除了校验和字段,减少每跳的处理时间
    3. 将可选字段从首部移出来,成为了更灵活的首部格式,路由器通常不对扩展首部进行检查,提高了路由器处理效率
    4. IPv6支持即插即用(自动配置),不需要DHCP协议
    5. IPv6首部的长度必须是8B的整数倍,后者则是4B的整数倍
    6. IPv6只能在主机处分片,后者在路由器和主机处分片
    7. ICMPv6:附加报文类型“分组过大”
    8. IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和延时的应用
    9. IPv6取消了协议字段,改成了下一个首部字段
    10. IPv6取消了总长度字段,改用有效载荷长度字段
    11. IPv6取消了服务类型字段

4.6 组播

IP数据报的三种传输方式:单播、广播和组播

  1. 单播 ,点对点,单个IP到单个IP

  2. 广播,一对多,目的地址是某一广播域或子网

  3. 组播(多播),一对多,但是只给有需求的主机发送数据报

    1. 组播提高了数据传输效率,减少了主干网出现拥塞的可能性,组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)

    2. IP组播地址

      1. 可以让源设备将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址
      2. 范围:224.0.0.0 ~ 239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作目的地址,源地址总是单播地址
    3. 组播特征:

      1. 组播数据报是“尽最大努力交付”,不提供可靠交付,应用于UDP
      2. 对组播数据报不产生ICMP差错报文
      3. 并非所有D类地址都可以作为组播地址
    4. 硬件组播

      组播MAC地址01-00-5E(广播地址是全F)

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z16DXIPu-1651847037248)(/Users/qinjianquan/Downloads/IMG_8B065BD354A7-1.jpeg)]

        	5. IGMP协议与组播路由选择协议
      
      1. IGMP协议 网际组管理协议
      
         1. 可以判断本局域网中是否还有接收组播数据报的主机(参加或者退出了组播组)
      
         2. 工作流程:
      
            1. 主机想要加入组播组 - 发送IGMP报文到组播地址-组播路由器收到报文- 利用组播路由选择协议把该组成员关系发送给因特网上其他组播路由器
      
            2. 本地组播路由器周期性的探寻本地局域网上的主机 - 以便知道成员关系还维持(只要有一个主机响应则认为该组活跃,否则不活跃,该组成员关系不会被发送到其他组播路由器)
      
      2. 组播路由选择协议:
      
         1. 目的是找出以源主机为根节点的组播转发树
         2. 构造树可以避免在路由器之间兜圈子
         3. 对不同的多播组对应不同的多播转发树,同一个多播组,对不同的源点也会有不同的多播转发树
      
      3. 组播路由选择协议常使用的三种算法
      
         1. 基于链路状态的路由选择
         2. 基于距离-向量的路由选择
         3. 协议无关的组播(稀疏/密集)
      

4.7 移动IP

移动IP的应用:在不同分公司中使用内网

  1. 是什么

    设备物理地址发生了变化,但是IP地址不变

归属代理(本地代理):类似于家长的角色

外部代理(外地代理):

永久地址:固定网络IP地址

转交地址:临时地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3U8hD6L-1651847037249)(/Users/qinjianquan/Downloads/IMG_83FAE5D74937-1.jpeg)]

4.8 网络层设备

  1. 路由器内部结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RchQ4Kxv-1651847037249)(/Users/qinjianquan/Downloads/IMG_143A7DC3892E-1.jpeg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NPrDVGfB-1651847037249)(/Users/qinjianquan/Downloads/IMG_4527B0198156-1.jpeg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8DXLoxms-1651847037250)(/Users/qinjianquan/Downloads/IMG_D1E655115451-1.jpeg)]

  1. 三层设备的区别:

路由器:可以互联两个不同网络层协议的网段,可以隔离冲突域和广播域

网桥:互联两个物理层和链路层不同的网段,+ 交换机,不能隔离广播域

集线器:不能互联两个物理层不同的网段,都不能隔离

  1. 路由表和路由转发

    目的网络IP地址|子网掩码|下一跳IP地址|接口 - > 转发表

    转发表由路由表得来,可用软件实现,也可用硬件实现转发表包含了转发需要的所有信息,如目的网络、输出端口和某些MAC地址的映射

猜你喜欢

转载自blog.csdn.net/weixin_51487151/article/details/124620340
今日推荐