网络层

寒假在家基本看完了谢希仁的《计算机网络》,其中最重要的四五两章感觉看的不明不白的,这里特地做个总结。

  • IP数据报 分组等词在这里同义

一些基本概念

网络层提供的两种服务

网络层采用的设计思路:

  • 网络层只提供简单灵活的,无连接的尽最大努力交付的数据报服务
  • 网络层是面向无连接的,不提供服务质量的承诺,数据的可靠性由用户主机来保证

网际协议IP

另外三个配套使用的协议:

  • 地址解析协议ARP

  • 网际控制·报文协议ICMP

  • 网际组管理协议IGMP

虚拟互联网络

四种中间设备:

  • 转发器–物理层使用
  • 网关–网络层以上使用
  • 网桥–数据链路层使用(两个网络合成一个新的网络(并不是互联网))
  • 路由器(网络层使用,把多个网络连接形成互联网)

能用路由器连接起来的互联网都使用了相同的网际协议IP(Internet protocol)

可以将互联之后的网络称之为虚拟互联网络(internet),在某些层面上统一了不同的网络,互联网可以由多种异构的网络互相连接而成(统一它们的正是网际协议IP)

IP地址

定义:(第四代,即IPv4)IP地址就是给互联网上的每一台主机(或者路由器)的每一个接口分配一个在全世界范围内唯一的32位标识符。路由器因为有多个端口因此有多个IP地址

IP地址的编址方法分为以下三个阶段:

  • 分类的IP地址
  • 子网的划分
  • 构成超网
分类的IP地址

IP地址分为ABCDE共五类

ABC类由两个固定长度的字段构成:

  • 第一个字段是网络号(net-id),用来标志主机(或者路由器)所连接到的网络

  • 第二个是主机号(host-id),用来标志主机(或路由器)

综上,IP地址可以标志某个特定的端口是哪个网络上的哪个主机:

IP地址::={网络号,主机号}

IP类别 网络号位数 主机号位数 备注
A 8 24 单播地址(一对一通信)
B 16 16 单播地址
C 24 8 单播地址
D 多播地址
E 备用

IP地址常用点分十进制法来表示,如127.0.0.1

IP地址的指派范围:

网络类别 最大可指派数 可指派的网络号 每个网络中的最大主机数
A 2^7-2 1–126 16777214
B 2^14-1 128.1–191.255 65534
C 2^21-1 192.0.1–255.255.255 254

IP地址的重要特点:

  • 每一个IP地址都由网络号和主机号构成:
    • IP地址管理机构只分配网络号,便于管理
    • 路由器只根据网络号来转发分组(目的地址不是本网络的时候只用管网络号而不用管具体端口号),减小了路由表的存储空间和减少了查找时间
  • 实际上的IP地址是标志一台主机和一条链路的接口,具有多个端口的主机也有多个IP地址,称为多归属主机,最典型的例子是路由器
  • 所有的网络都是都是平等的

IP地址和硬件地址

  • 物理地址是数据链路层和物理层用的地址
  • IP地址是网络层级以上层用的地址

包含了IP地址的IP数据报是数据链路层的数据报的数据部分,数据链路层看不见IP数据报的IP地址

地址解析协议ARP

ARP协议的作用:从网络层使用的IP地址解析出数据链路层使用的硬件地址

主机(或者路由器)中的IP地址和MAC地址没有绝对地一一对应关系,并且这个关系可能是动态更新的。每一台主机都有一个ARP cache ,里面有本局域网上的各个主机和路由器的IP地址到硬件地址的映射关系。把IP协议封装成MAC帧的时候需要使用该协议。

IP数据报的构成

  • 版本号 4位

  • 首部长度 4位

  • 区分服务 8位,一般情况下用不到

  • 总长度 16位 总长度 = 首部 + 数据长度

  • 标识 16位 分片的数据报组装的序号

  • 标志 3位 用来标记前后是否还有分片

  • 片偏移 13位 表示某片在整个分片后的数据报的相对位置

  • 生存时间 8位 表示数据报在网络中的寿命(TTL)(早期以S作为单位,现在以跳转次数作为单位)

  • 协议 8位 指明数据报中的数据使用何种协议

  • 首部检验和 对数据报的首部进行检验

  • 源地址

  • 目的地址

网络层的两个核心问题

  • 如进行分组转发
  • 如果更新和维护路由器的路由表

    下面是针对第一个问题的讨论:

划分子网

最本质的变化:从两级IP地址({网络.主机})–>三级网络地址({网络.子网.主机})

子网划分的基本思路:

  • 单位可将所属的网络划分为若干个子网,这些子网对外仍未一个网络
  • IP地址::={网络号,子网号,主机号}

子网掩码

子网的划分对外部网络不可见

因此从IP数据报无法看出源主机是否进行了子网的划分

网络地址 = IP and 子网掩码

路由器在和相邻网络之间交换路由信息的时候必须把自己自己所在网络(或子网)的子网掩码告诉相邻路由器

在路由器路由表中的每一个项目,除了要给出目的的网络地址,也要给出该网络地址的子网掩码

使用子网时候的分组转发过程

  1. 从收到的数据报的首部提取目的IP地址D
  2. 先判断是否为直接交付。对和本路由器直接相连的网络逐个进行检查,用各网络的子网掩码和D进行AND操作,如果匹配就直接交付,不匹配就是间接交付,执行3
  3. 若路由表中有目的地址为D的特定主机路由,则根据该特定路由进行交付,否则执行4
  4. 对路由表中的每一行,用其中的子网掩码和D逐位与操作,若其结果N与该行的目的网络地址匹配,则根据该路由进行交付,否则执行5
  5. 若路由表中有默认路由,贼按照默认路由2交付,否则报告分组转发出错

CIDR 构造超网

CIDR的主要特点:

  • 消除了传统的A,B,C类地址和划分子网的概念,CIDR使得IP地址从三级编程无分类的两级IP地址:

    IP地址::={<网络前缀>,<主机号>}

  • CIDR把网络前缀相同的连续IP地址组成一个CIDR地址块

a.b.c.d/n表示IP a.b.c.d中前n位是网络前缀,后32-n位是主机号

网络掩码

a.b.c.d/n的网络掩码前n位是1,后32-n位是0

超网的分组转发

CIDR的分组转发过程和之前的并没有什么不同,只不过由于CIDR的特殊性,在进行掩码计算以匹配网络的时候要优先匹配最长前缀

下面是针对第二个问题:路由表维护 的讨论

路由选择协议

有关路由选择协议的几个基本概念

路由选择算法的特点:

  • 算法必须是正确的和完整的
  • 算法在计算上应简单
  • 算法应能适应通信量和网络拓扑的变化
  • 具有稳定性
  • 具有公平性

分层次的路由选择协议

互联网被分为多个较小的自治系统(autonomous system,AS),AS内部使用的路由选择协议称为内部网关协议(IGP),如RIP和OSPF,AS之间的路由选择协议称为外部网关协议(EGP),如BGP-4

内部网关协议RIP和OSPF

属性 RIP OSPF
base 距离向量 链路状态
算法 Ford Dijkstra
效率 较低 较高
内存占用 较小 较大
适用范围 较小的网络 较大的网络
传送方式 UDP IP数据报

外部网关协议BGP

略.