04.*网络层、IP(三层)

网络层又叫IP层:

主要的解决问题:

  1. 数据包的转发,IP to IP
  2. 路由选择
  3. IP地址的分配
  4. 分片和重组

IP地址:

分类:

Img

CIDR(Classless Inter-Domain Routing):

  • CIDR是一种更灵活的网络划分方法,它将IP地址和子网掩码写在一起。将IP 地址被划分为两部分:网络号 + 主机号
  • CIDR 表示形式 a.b.c.d/x
    • 其中 /x 表示前 x 位属于网络号,x 属于[0, 32] e.g. 10.100.122.2/24, 表示前24位是网络号,后8位是主机号,子网掩码为/24

子网掩码:

  • 掩码的意思就是掩盖掉主机号,剩余的就是网络号
  • 将子网掩码和IP地址按位计算AND,就可得到网络号
  • CIDR中 /24,即子网掩码255.255.255.0 Img
  • 作用:路由器通过计算目标地址网络号,与路由表比较

IP层协议:

协议解析:

Img * 版本:IPv4、IPv6 * 服务类型(ToS):包的优先级 * 标识:当分片发生时,用于分片重组 * 标志(Flags): * 第二个bit位:DF,为1表示路由器不能对该上层数据包分段。(如果不分段无法转发,则路由器会丢弃该上层数据包并返回一个错误信息) * 第三个bit位:MF,DF为1时有效,对上层数据包做分段时,最后一个值为0,其他为1 * 经验:一般UDP由IP层分片,TCP自己根据MSS自行分段,不需要IP层分片 * 片偏移:当IP层做了分片后,接收端根据该字段将IP分片重组,但分片数据可能丢失,导致无法重组</font> *生命周期(TTL): * 每一跳减1,为0时丢弃 *协议: * 1 ICMP * 2 IGMP * 6 TCP * 17 UDP * 88 IGRP * 89 OSPF #### MTU(第三层中的概念): * 含义:Maximum Transmission Unit,最大传输单元,定义了这些数据包在网络层传输的最大大小 * 标准MTU值为576(因特网),最大值为1500`(以太网) * 超过 MTU 大小、且设置了DF时,会发生数据分片,

TCP 协议:

  • 见传输层

UDP 协议:

  • 见传输层

ICMP 协议:

  • 即 Internet Control Message Protocol,互联网控制报文协议 Img

  • 查询报文类型:

    • 8:主动查询
    • 0:主动查询回显
  • 差错报文类型:

    • 3:终点不可达(地址不可达)
    • 4:源抑制(让源站放慢发送速度)
    • 5:重定向(让下次发给另一个路由器)
    • 11:超时(也就是超过网络包的生存时间还是没到)
  • 具体应用:

    • ping:主动发送查询报文,获得查询回显报文

    • traceroute:发送udp数据包,做网络探测:

      1. 探测沿途的路由(超时类型):
        • 使用特殊的TTL,将TTL逐个累增,逐个获取链路上的路由器 IP
      2. 探测目的主机(不可达类型):
        • 使用不可能UDP端口号,收到端口不可达回应,则表示成功到达目的主机
      3. 确定整条路径的MTU(分片错误类型):
        • 故意设置为不分片,每次收到该差错报文,则调小MTU,直到到达目的主机

三层设备:网关(gateway)设备

  • 网关设备作用:负责不同网络之间的通信,三层转发的设备

  • 主机访问另一个IP的过程:

    1. 判断是否同一个网段,基于CIDR子网掩码,计算出目标IP网络号,和自己网络号做对比
    2. 如果同网段:
      • 先封装目标IP头,再基于MAC地址表或者根据ARP协议获取目标IP的MAC地址封装MAC头,直接发送到目标机器
    3. 非同网段:
      • 先封装目标IP头,基于MAC地址表或者ARP协议获取网关MAC地址,再封装网关MAC将数据先发给网关
      • 网关收到包后,解开MAC头发现是自己的,再解开IP头,发现不是自己的,继续通过路由表找到下一个网关的IP地址。
      • 转发规则见下面
    4. 例子: Img
      1. 主机 A 发送 源地址是 10.1.1.30 和目标地址是 10.1.2.10的IP包。由于没有在主机 A 的路由表找到与目标地址 10.1.2.10 的网络地址,于是包被转发到默认路由(路由器 1
      2. 路由器 1 收到 IP 包后,尝试在自己的路由表匹配与目标地址相同的网络号,发现匹配到了,于是就把 IP 数据包转发到下一跳地址10.1.0.2这台路由器 2
      3. 路由器 2 收到IP包,对比自身的路由表,发现匹配到,将IP包转发到下一跳10.1.2.1,最终通过交换机(通过ARP协议)把 IP 数据包转发到了目标主机
      4. 如果主机/路由器中没有匹配到目标IP的网络号,则会转给默认路由/网关

网关转发/路由转发:

  • 基于路由表:多条规则的集合
  • 路由(转发)的三要素:
    • 目的网络:这个包想去哪儿
    • 出口设备:将包从哪个口扔出去
    • 下一跳网关:下一个路由器(网关)的地址 #### 路由表分类:
  • 静态路由:
    • 在网关上,配置一条一条规则,基于规则判断下一跳是哪里
  • 动态路由:
    • 动态路由器根据路由协议算法生成动态路由表
    • 路由协议算法(计算路由的方式):
      • 距离矢量路由算法(基于 Bellman-Ford 算法)
        • 具体实现:每个路由器都保存一个全局路由表
        • 问题:
          • 同步成本高:更新时需要发送整个路由表信息
          • 更新不及时:路由器故障,只能被动发现
      • 链路状态路由算法(基于 Dijkstra 算法)
        • 具体实现:当自己链路状态发生变化,将自己和邻居之间的链路状态包广播给其他路由器,每个路由器在自己本地构建一个完整的图,然后针对这个图使用 Dijkstra 算法,找到两点之间的最短路径。
        • 优点:
          • 同步成本低:只广播改变的链路状态,广播量小
          • 更新及时:任意路由出现故障,会引起相邻路由的多个广播。 #### 动态路由协议:
  • 用于实现路由信息交换和更新的协议 ##### OSPF/IGP
  • Open Shortest Path First,开放式最短路径优先
  • 基于链路状态路由算法实现
  • 基于IP协议同步路由信息
  • 应用:广泛应用在数据中心内部(即内网),所以又叫内部网关协议(Interior Gateway Protocol,即IGP
BGP
  • Border Gateway Protocol,外部网关协议
  • 基于距离矢量路由算法实现
  • 基于TCP协议同步信息
  • 应用:用于数据中心外部其他边界路由器之间的路由
  • BGP 又分为两类:
    • eBGP
      • 自治系统间,边界路由器之间使用 eBGP 广播路由
    • iBGP
      • 内部网络也需要访问其他的自治系统。边界路由器通过运行 iBGP,使得内部的路由器能够找到到达外网目的地的最好的边界路由器。

网关系统相关设备:

  • 核心路由器/骨干路由器
    • 待补充
  • 边界路由器
    • 待补充
  • AS 自制系统
    • Stub AS:对外只有一个连接。这类 AS 不会传输其他 AS 的包。例如个人或者小公司的网络
    • Multihomed AS:可能有多个连接连到其他的 AS,但是大多拒绝帮其他的 AS 传输包。例如一些大公司的网络
    • Transit AS:有多个连接连到其他的 AS,并且可以帮助其他的 AS 传输包。例如主干网 Img
  • NAT路由器:
    • NAT:网络地址转换
    • 两个客户端192.168.1.10:1025 和 192.168.1.11:1025 同时与服务器 183.232.231.172 进行通信

本文作者:navyum

本文链接:https://www.cnblogs.com/navyum/p/18509333

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   navyum  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
//自己上传到博客园的js
点击右上角即可分享
微信分享提示