网络层

概述

  • 网络层的主要任务: 实现网络互连, 进而实现数据包再各网络之间的传输

  • 要实现网络层任务, 需要解决以下的问题

    • 网络层向运输层提供怎样的服务 (“可靠传输” 还是 “不可靠传输”)
    • 网络寻址问题
    • 路由选择问题
      • 人工配置
      • 实现路由选择协议
  • 因特网使用 TCP/IP协议栈

  • TCP/IP协议栈的网络层使用网际协议IP, 是整个协议栈的核心协议, 常称为网际层

    image-20210601023630030

网络层提供的两层服务

面向连接的虚电路服务

  • 可靠通信由网络来保证
  • 必须建立网络层的连接—虚电路 VC(Virtual Circuit)
  • 通信双方沿着已经建立的虚电路发送分组
  • 目的主机的地址仅在连接建立阶段使用, 之后每个分组的首部都只需携带一条虚电路编号(构成虚电路的每一段链路都有一个虚电路编号)
  • 使用可靠传输的网络协议实现可靠传输
  • 通信结束后, 需要释放之前建立的虚电路

无连接的数据报服务

  • 可靠通信由用户主机来保证
  • 不需要建立网络层连接
  • 每个分组可以走不通的路径
  • 首部必须携带完整地址
  • 分组可能重复, 失序, 误码, 丢失
  • 网络本身不提供端到端的可靠传输服务, 路由器廉价
  • 因特网采用这种设计思想: 复杂网络处理功能置于因特网边缘, 相对简单的网络交付功能置于因特网核心

IP 地址

IPv4 地址概述

  • 分配给每一台主机(或路由器)的每一个接口

  • IPv4 地址的编址方法

    • 分类编址
    • 划分子网
    • 无分类编址
  • 32 比特不方便, 采用点分十进制表示方法

    image-20210601105635772

分类编址的 Ipv4 地址

注意事项

  • 只有 A,B,C 类地址可以分配给网络中的主机
  • 主机号全为 0 的是网络地址, 不能分配给主机或者路由器的各个接口
  • 主机号全为 1 的是广播地址, 不能分配给主机或者路由器的各个接口

A 类地址

image-20210601114432185

B 类地址

image-20210601115137755

C 类地址

image-20210601115255668

练习题

image-20210601120457191

A

0.0.0.0 是一个特殊的 IPv4 地址, 那个作为源地址使用, 表示”在本网络上的本主机”, 封装有 DHCP Discovery 报文的 IP 分组源地址使用 0.0.0.0

划分子网的 IPv4 地址

需求

随着网络发展, 主机数目不断增加, 并且需要将主机划分到独立的网络, 如果为新增的网络申请新的网络号会有以下弊端

  • 需要等待时间更多的费用
  • 增加其他路由器路由表记录的数量
  • 浪费原有网络中剩余的大量 IP 地址

解决方法——从主机号部分借用一部分作为子网号

子网掩码

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

  • 使用连续的 bit 1 来对应网络号和子网号
  • 使用连续的 bit 0 对应主机号
  • 将划分子网的 IPv4 地址与相应的子网掩码做逻辑与运算就可以得到 IPv4 地址所在的子网的网络地址

子网掩码示例

划分子网的细节

image-20210601124022078

默认的子网掩码是指未划分子网的情况下使用的子网掩码

  • A: 255.0.0.0
  • B: 255.255.0.0
  • C: 255.255.255.0

无分类编址的 IPv4 地址