• 计算机网络:网络层


    网络层

    网络层主要是解决寻址连接问题,例如两个主机在网络上通过IP进行连接通信

    1.网络层概述

    • 网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输

    • 需要解决的主要问题:

      image-20221023203241718

    • 因特网

      • 使用TCP/IP协议栈
      • image-20221023203505547
      • 通过学习TCP/IP协议栈的网际层进行了解

    2. 网络层提供的两种服务

    2.1 面向连接的虚电路服务

    image-20221023203905544

    2.2 无连接的数据报服务

    image-20221023204032355

    tips:二者对比

    image-20221023204123347

    3. IP地址

    3.1 IPv4地址概述

    image-20221023204313720

    image-20221023204341777

    • 因为IPv4地址不方便阅读,采用点分十进制表示法

    举例

    image-20221023205013858

    因为位数固定,也可以用凑值法来确定

    image-20221023205334578

    3.2 分类编址的IPv4地址

    image-20221023205525684
    • 只有ABC类地址可以分配给网络中的主机路由器中的各接口

    • 主机号为**全0(网络地址)和全1(广播地址)**的都不能分配给主机或者路由器的各接口

    A类地址

    image-20221024215652181

    B类地址

    image-20221024220056607

    C类地址

    image-20221024220318538

    总结

    分类标准:

    image-20221024222212744

    3.3 划分子网的IPv4地址

    分配的IP地址数通常会存在空余,可以通过划分子网高效利用剩余IP,起到分类的作用

    主机号可以被借用位数作为子网号

    • 32byte的子网掩码可以表明分类IP地址的主机号被借用了几个作为子网号

      • 子网掩码使用连续的比特1来对应网络号和子网号
      • 子网掩码使用连续的比特0来对应主机号

      image-20221025121339481

      • 将划分子网的IPv4地址子网掩码进行逻辑与运算

      image-20221025121350084

    • 默认子网掩码

    image-20221025132616448

    例:

    image-20221025121510483

    例题

    image-20221025122153782

    1.写出二进制子网掩码

    image-20221025122217642

    2.进行运算,写出主机的网络地址

    image-20221025132039727

    3.4 无分类编址的IPv4地址

    数量巨大的C类网因为地址太小,没有得到充分使用,IPv4地址面临耗尽的问题

    image-20221025150217483

    • CIDR使用斜线记法,在斜线后面写出网络前缀所占比特的数量

    image-20221025150656440

    image-20221025150950257

    • 路由聚合

    将五个网络通过一个路由器进行转发:(找共同前缀,后面添加斜线

    image-20221025151418894

    image-20221025151809953

    只能分配两个IP,所以至多两个主机

    3.5 IPv4地址的应用规划

    • 定长的子网掩码FLSM

      • 使用同一个子网掩码来划分子网
      • 每个子网所分配的IP地址数量相同造成IP的浪费

      子网号决定分类数目主机号决定分配的IP个数

    • 变长的子网掩码VLSM

      • 根据不同IP地址的需求分配主机号,剩余编码可以作为网络前缀

      image-20221025153450491

      优先分配地址需求数量较大的地址

      image-20221025153904264

    4. 数据报的发送和转发过程

    主机判断 目的主机是否与自己在同一个网络

    将两个IP地址进行 运算,不相等则不在同一个网络

    image-20221025155107315

    • 默认网关(设置默认路由器的IP对数据进行转发)

    image-20221025155306375

    • 路由器收到数据报如何转发
    image-20221025155924952

    收到数据报中的信息后进行查表转发

    5. 静态路由配置及其可能产生的环路问题

    5.1 静态路由配置

    image-20221025162231754

    • 使用静态路由配置可能导致产生路由环路的错误
      • 配置错误
      • 聚合了不存在的网络
      • 网络故障

    image-20221025162608645

    R2不知道黄色的地址,所以可以手动配置(先转到R1路由器,再由R1进行转发)

    5.2 静态路由配置错误导致路由环路

    • 在静态配置错误后,路由器进行循环转发

    image-20221025163611788

    防止这种问题设置了TTL字段

    image-20221025163751919
    • 聚合了不存在的网络导致路由环路

    防止这种问题设置了黑洞路由

    image-20221025164408046

    6. 路由器

    6.1 路由器选择协议

    • 静态路由选择
    image-20221025165147401
    • 动态路由选择
    image-20221025165156077

    因特网采用的路由选择协议的主要特点

    image-20221025165747374

    • 常见的路由选择协议

      • 内部网关(路由)协议
      • 外部网关协议

      image-20221025180638132

    • 路由器的基本结构

      image-20221025181017616

    6.2 路由信息协议RIP的基本工作原理

    RIP认为好的路由就是距离短的路由

    路由信息协议RIP要求AS内内的每一个路由器都要维护子自己到AS内其他每一个网络的距离纪录记录,这组距离称为:“距离向量D-V

    image-20221101213347512

    当距离相同时,可以进行等价负载均衡(平分信息量)

    • 三个要点

      image-20221101214512757

      举例:

      开始

      image-20221123155951493

      交换后

      image-20221123160012464
    • RIP路由器的更新规则

    C的路由表发送给D,D将其下一条都改为C,距离都增加1(D可以通过C到达的地址)

    将C发送的路由表和自身进行对比后更新

    image-20221123155804380

    缺陷

    • RIP存在路由环路或距离无穷计数问题

    image-20221101220017842

    通过以下措施减少该问题的出现概率:

    • 可以限制最大路径举例为15

    6.3 开放最短路径优先(OSPF)的基本工作原理

    • OSPF是为了是为了克服RIP算法的缺点提出的
      • 最短路径优先:使用了Dijkstra的最短路径算法SPF

    image-20221108170913698

    image-20221108170534952
    • OSPF相邻路由器之间通过交互Hello分组,建立和维护邻居关系

    image-20221108171306470

    • 使用OSPF的每个路由器都有一个链路状态数据库LSDB,存储

    生产链路通告(LSA):记录直连网络的链路状态信息邻居路由器的链路状态信息

    LSDB中的数据,进行SPF计算,计算出最短路径,构建出路由表

    • OSPF有五种分组
    image-20221108174228445

    由于每个相邻路由器之间都需要交换分组,交换信息数目过多n*(n-1)/2

    为了减少分组,进行了以下优化

    image-20221108174849323 image-20221108175018718
    • OSPF为了能够适配很大规模的网络,将很大的网络划分成小区域
    image-20221108175807424

    6.4 边界网关(BGP)的基本工作原理

    自制系统之间需要使用外部网关协议EGP这一类协议,使用较多的为BGP-4

    image-20221108180421750

    • 在不同自治系统内,度量路由代价可能不同,因此通过OSPF寻找最佳路由不可行

    • 自治系统之间的路由必须考虑(考虑政治、经济、安全等)

    • BGP只能是找到一个较好的路由路径

    每个系统都有自己的BGP发言人

    建立连接使用TCP报文段中进行连接

    image-20221108194910497
    • BGP发言人交换了网络可达性信息后,分别根据各自收到的路由信息找到较好的路由

    • 构建连通图

      image-20221108194948073
    • 封装RIP、OSPF、BGP 报文协议

    image-20221108202442263

    7. IPv4数据报的首部格式

    前置知识:

    IPv4在传输时,需要与MTU比大小判断,如果大于MTU需要进行分片处理

    例:MTU=1500,下述表需要被分成3份

    image-20221108215845518

    IPv4数据报具体内容:

    image-20221108205923193

    版本

    • 占4比特,表示IP协议的版本
    • 通信双方使用的IP协议的版本必须一致

    首部长度

    • 占4比特,表示IP数据报首部的长度。
    • 最小十进制取值为5 bytes(表示IP数据报首部只有20字节固定部分
    • 最大取值为15bytes(表示IP数据报首部包含固定部分可变部分

    区分服务

    • 一般不使用

    总长度字段

    • 占比16 bytes,表示IP数据报的总长度(首部+数据载荷

    image-20221108211857206

    标识、标志、片偏移

    • 三个字段共同作用于IP数据报分片
    image-20221108213124407

    tips:片偏移结果必须为整数,不然需要重新分组

    • 例题:具体应用
    image-20221108220420975

    生存时间TTL

    占8 bytes,最大生存周期为255秒;路由器转发时,将
    生存时间 − 本路由器耗费时间 ≠ 0 生存时间-本路由器耗费时间 \ne0 生存时间本路由器耗费时间=0
    则转发,否则丢弃

    协议

    • 表明数据部分是哪种协议数据单元

    • 常用协议数据单元

      image-20221108221353815

    首部检验和(IPv6中不再使用)

    • 占16 bytes,用来是否在传输过程出现错误

    源IP地址和目的IP地址

    • 各占32bytes,用来填写发送主机接收主机地址

    • 例题:

    因为偏移量要取整,所以要进行合理分配

    首先使用MTU=800(最大传输大小),但是不整除,向下取整进行计算

    image-20221108223853273

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

    为了更有效地转发IP数据报和提高交付成功的机会使用ICMP

    ICMP发送:差错报告报文询问报文,被封装在IP数据报中发送

    • ICMP差错报告报文种类:

    终点不可达

    当路由器或主机不能交付数据报时,发送该报文

    源点抑制

    当路由器或主机由于拥塞而丢弃数据报时,发送该报文

    时间超过

    当路由器收到IP地址不是自己的IP数据报,将其生存时间TTL减一

    结果为0则丢弃

    参数问题

    传输中首部出现误码,就丢弃该数据报,并且向源点发送参数问题

    改变路由(重定向)

    路由器把改变路由报文发送给主机,让主机优化路线

    tips:以下情况不应发送ICMP差错报告报文

    image-20221109161422742
    • ICMP询问报文:

    回送请求和回答

    用来测试目的站是否可达及了解其有关状态

    时间戳请求和回答

    进行时钟同步和测量时间

    • 应用举例

    PING命令:查看是否连通

    image-20221109162224258

    traceroute:

    image-20221109162240578

    9. 虚拟专用网络(VPN)与网络地址转化(NAT)

    VPN

    利用公用的因特网做诶本机构各专用网之间的通信载体

    VPN专用网中的IP是本机构可分配的专用地址

    image-20221110095640580

    将左边换为个人也是如此

    NAT

    该方法缓解了IPv4地址耗尽的问题

    • 流程

    1.传输过去

    image-20221110100227144

    2.返回

    image-20221110100543539

    • 延伸NAPT:将端口号与IP地址一起进行转换(一个IP可以使多个主机与外界进行通信)

    image-20221110101303578

    所以根据以上路由器的工作原理,只能由内网发起(不然路由器里面就没有对应记录 )

  • 相关阅读:
    关于安卓毛玻璃实现(一)动态毛玻璃
    strings包详细文档+示例
    Deployments
    java计算机毕业设计springboot+vue废弃资源回收系统
    缓存 (模拟两种:数据库提供数据到缓存、外界提供数据到缓存)
    经典算法-----01背包问题(动态规划)
    北京公司车牌指标转让注意事项
    TVM 源码阅读PASS — VectorizeLoop
    重磅!2022年全球汽车零部件供应商百强发布
    electron 基础
  • 原文地址:https://blog.csdn.net/weixin_66261421/article/details/127995886