Featured image of post 网络层

网络层

网络层

概述

  • 像运输层提供怎样的服务(可靠/不可靠传输)
  • 网络层寻址问题
  • 路由选择问题

网络层的两个层面

根据路由器之间传送的信息类型,将网络层抽象为数据层面和控制层面

数据层面

转发源主机和目的主机之间所传送的数据分组

  • 独立完成
  • 由于使用纯硬件转发,速度非常快,纳秒级别(10-9秒)

控制层面

传送路由信息,完善路由表

  • 各路由器间协同工作
  • 使用软件转发,速度慢,为秒级别

由于控制层面的转发过于耗时,后人优化出了新的SDN网络体系结构

控制平面SDN方法

  • 控制平面从路由器上物理分离
  • 路由器仅实现转发,远程控制器计算和分发转发表。

将控制平面又细分为3个层面:

  • 网络控制应用程序层的接口:负责与网络应用程序的通信
  • 网络范围的状态管理层:获取全网的主机、链路、交换机以及其他受SDN控制的设备(在此层设计路由选择协议)
  • 通信层:与数据层面通信

网络层提供的服务

面向连接—虚电路服务

可靠通信应有网络来保证

通信双方沿着已建立的虚电路发送分组

  • 每个分组的首部只需携带一条虚电路的编号
  • 在这个基础之上在使用可靠传输协议即可使分组正确抵达
  • 通信结束后释放虚电路

广域交换网常用

无连接的数据报服务

可靠通信由用户主机保证

  • 不需要建立网络层连接
  • 每个分组可走不同的路径
  • 首部必须携带目的主机的完整地址

因特网常用,将复杂的网络处理功能置于用户主机和其内部的运输层

IPv4地址概述

给因特网上每一台主机/路由器的每一个接口分配的全球唯一的32bit标识符

  • 使用点分十进制表示方法,即32bit每8位一组转化为10进制每组用点号分割的形式
  • 一般使用凑值法完成10进制转2进制

分类编址1981

按用途将地址分为ABCDE5类,32位bit被划分为两个部分,网络号与主机号

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

A类地址0

网络号占8位,最小的网络号0,最大的网络号127不指派(这是回环地址)

  • 所以最多可分配126个网络,每个网路有224-2个IP

B类地址10

16位网络号,最小网络号128.0,网络地址128.0.0.0,最大网络号191.255,网络地址191.255.0.0(RFC6890开始可以被指派)

  • 所以最多可分派216-2(16384)个网络,每个网络可分派216-2(65534)个IP地址

C类地址110

24位网络号,最小网络号192.0.0,网络地址192.0.0.0,最大网络号223.255.255,网络地址223.255.255.0

  • 所以可分配224-3个网络,每个网络IP数量28-2(254)

根据第一个10进制数即可判别网络类型,小于127的为A类,128-191的为类,192-223的为C类

注意:路由器的各接口是需要被分配IP地址的!

D类(1110)为多播地址,E类(1111)为日后保留使用

划分子网1985

解决新增网络申请新网络号带来的问题:

  • 其他路由的路由表记录数量上升
  • 需要等待和花钱
  • 浪费原有网络剩余的IP数量

子网掩码可以表明分类IP的主机号部分被借用了几个比特作为子网号

image-20221119231815209

  • 将IP地址分为网络号-子网号-主机号三部分,其中子网号为主机号借出的位。

    • 连续比特0为主机号,连续比特1为网络号和子网号
  • 将子网掩码与IPv4地址进行逻辑运算即可得到IPv4地址所在子网的网络地址

    • 每个子网都有2主机号个IP地址

默认子网掩码

  • 判断网络类型
  • 网络号部分取全1,主机号部分取全0

无分类编址1993

使用CIDR记法,在IPv4地址后面加上斜线/,在斜线后面写上网络前缀所占的比特数量(网络号)

路由聚合(构造超网):

  • 聚合地址块:

    • 共同前缀(转2进制形式),剩余地址取0,将共同前缀的位数以“/”形式添加到结果尾部,即得到聚合地址块
  • 网络前缀越长,地址块越小,路由越具体;

  • 查表:将目的地址路由条目中的目的网络掩码按位,结果若与条目中的目的网络匹配,则列入备选

  • 若路由器查表转发分组时有多条路由可选,则选择网络前缀最长的那条,称为最长前缀匹配

CIDR可以进一步通过子网掩码来划分子网。

各种设备的域隔离性)

设备 是否隔离冲突域 是否隔离广播域
中继器(物理层)
集线器(物理层)
网桥(数据链路)
交换器(数据链路)
路由器(网络层)

IP数据报发送和转发的流程

主机发送IP数据报

  1. 判断目的主机是否与自己在同一个网络
    • 若在同一个网络,属于直接交付
    • 若不在同一个网络,属于间接交付,传输给主机所在网络的默认网关(路由器)

路由器转发IP数据报

  1. 检查IP数据报首部是否出错

    • 若出错,则直接丢弃该IP数据报并通告源主机
    • 若没有,则进行转发
  2. 根据IP数据报的目的地址在路由表中查找匹配的条目

    • 先将目的地址与路由表的地址掩码相与得到目的网络IP地址,

      1. 若找到匹配条目,转发给下一跳

      2. 若找不到,丢弃IP数据报并通告源主机

静态路由配置

人工配置的路由表,不能及时适应网络状态(流量、拓扑)的变化

  • 开销小,适合在小规模网络使用

  • 可能会出现路由环路的问题

默认路由0.0.0.0/0

对于具有相同下一跳不同目的网络的路由条目,可以用0.0.0.0/0代替目的网络的位置,类型为静态

特定主机路由

目的网络写入对应目的主机的IP地址/32,其网络前缀最长,路由最具体

由“最长前缀匹配原则”,有多条路由可选时,选择最长前缀进行匹配转发

路由环路

  1. 针对错误配置:

    • 为了防止IP数据报在路由环路中永远循环转发,IP数据报首部设有生存时间TTL

    • IP数据报进入路由器后,TTL字段值-1,若TTL值不等于0(先-1再判断)则转发,否则丢弃

  2. 针对聚合了不存在的网络:

    • 配置黑洞路由,即将不存在的网络写入路由表中,配置下一条为null0
  3. 针对故障网络

    • 将故障的网络地址写入路由表中,配置下一跳为null0
    • 故障网络恢复后路由表会自动弃用配置的黑洞路由,重写恢复后的路由条目

路由选择协议

动态路由选择

通过路由选择协议自动获取路由信息,适用于大规模网络(比如因特网)

因特网采用分层次的路由选择协议:

  • 自治系统AS间的路由选择称为域间路由选择,使用外部网关(路由)协议EGP
  • 自治系统AS内的路由选择称为域内路由选择,使用内部网关协议(路由)IGP

内部网关协议IGP

  • 路由信息协议RIP:基于距离向量,
  • 内部网关路由协议IGRP:基于距离向量
  • 增强型内部网关路由协议EIGRP
  • 开放式最短路径优先OSPF:基于链路状态,广泛使用
  • 中间系统到中间系统IS-IS

外部网关协议EGP

  • 边界网关协议BGP

路由器基本结构

image-20220913152902003

  • 路由表需要对网络拓扑变化的计算最优化
  • 转发表的结构使查找过程最优化,由路由表得出

几个重要协议

路由信息协议RIP

RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。称为距离向量D-V

  • RIP使用跳数作为度量来衡量到达目的网络的距离

    • 路由器到直连网络的距离定义为1
    • 到非直连网络的距离定义为所经过的路由器数+1
    • 一条路径最多包含15个路由器,距离等于16时表示不可达,所以只适用于小型互联网
  • RIP选择路径最短的路由,若有多条路径最短的路由,进行等价负载均衡

RIP三个要点:

  • 仅与相邻路由器交换信息
  • 交换自己的路由表(封装成含路由信息的RIP更新报文)
  • 周期性交换

若干次交换和更新后,每个路由器都知晓了到达本AS内个网络的最短距离和下一跳地址,称为收敛

  • 相同目的网络,相同下一跳,最新消息,更新

  • 发现新的网络,添加

  • 相同目的网络,不同下一跳,新路由优势,更新

  • 相同目的网络,不同下一跳,距离相等,等价负载均衡

  • 相同目的网络,不同下一跳,新路由劣势,不更新

坏消息传的慢:又称路由环路或距离无穷计数问题,这是距离向量算法的固有问题,可以减少但无法消灭。

使用UDP协议封装RIP报文,RIP是个应用层协议!

开放最短路径优先OSPF

为了克服RIP的缺点所提出,基于IP封装,是个网络层协议

最短路径优先SPF:Dijkstra提出的最短路径算法

  • 基于链路状态,从算法保证了不会产生路由环路
  • 不限制网络规模,收敛速度快
  • 链路状态包含本路由器与那些路由器相邻,以及对应链路的代价

OSPF相邻路由器通过交互问候分组,建立维护邻居关系

  • 问候分组封装在IP数据报,发往组播地址224.0.0.5;
  • 发送周期10秒
  • 40秒为收到邻居问候分组,则认为邻居路由器不可达

OSPF路由器会产生链路状态通告LSA,包含:

  • 直连网络的链路状态信息
  • 邻居路由器的链路状态信息

LSA封装于链路状态更新分组LSU中,使用洪泛法发送

OSPF路由器有链路状态数据库LSDB,用于存储LSA,通过发送LSU,最后路由器的LSDB将达到一致

OSPF有以下五种分组类型:

  • 问候分组
  • 数据库描述分组
  • 链路状态请求分组
  • 链路状态更新分组(30分钟周期转发)
  • 链路状态确认分组

边界网关协议BGP

BGP基于TCP协议封装

BGP力求寻找一条能够到达目的网络且比较好的路由(不产生路由环路),而非最佳路由

  • 每个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人

不同自治系统的BGP发言人要交换路由信息,首先建立TCP连接,端口号179

  • 在TCP连接上交换BGP报文(封装于TCP报文段)建立BGP会话
  • 利用BGP会话交换路由信息
  • 使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站/对等站

BGP-4的四种报文

  • OPEN:与另一个BGP发言人建立关系,初始化通信
  • UPDATE:通告某一路由的信息,列出要撤销的多条路由
  • KEEPALIVE:周期性证实邻站连通性
  • NOTIFICATION:发送检测到的差错

image-20220914151705818

IPv4数据报首部格式

image-20220915135914822

  • 填充字段:确保首部长度为4字节的整数倍,使用全0填充

  • 总长度:首部+数据载荷,最大65535,以字节为单位

  • 标识、标志、片偏移用于IP数据报分片

    • 标识用于分片后每个分片复制一遍原片标识,用于重组
    • 标志有3位,最低位MF为0时为无后续分片,1为有后续分片,中间位DF为0时允许分片。
  • 生存时间TTL:每经过一次路由器该字段值被-1,首部检验和重新计算

  • 协议:指明IP数据报数据部分使用什么协议封装

image-20220915142040402

如果数据报总长度超过MTU(以太网规定1500字节)则需要分片

片偏移(必须为整数)的计算:

  • 头一个分片偏移量为0
  • 下一个分片的偏移量就是上一个分片数据载荷长度/8,若非整数,重新分配

IP数据报被封装在以太网帧的数据部分中

image-20220915143429821

网际控制报文协议ICMP

提高交付成功几率,更有效转发IP数据报

主机、路由器使用ICMP发送差错报告报文、询问报文

ICMP差错报告报文

  • 终点不可达
  • 源点抑制:路由器/主机因拥塞丢弃数据报,向源点发送抑制报文
  • 时间超过:收到目的IP地址非本身的IP数据报,生存字段值-1,结果为0,丢弃并向源点发送时间超过报文
  • 参数问题:路由器检测到数据报首部误码,丢弃数据报,向源点发送差错报告报文
  • 改变路由(重定向):将该报文发送给主机,让主机知晓下次数据报发送给另外的路由器

不能发送ICMP差错报告报文的情况:

  • ICMP差错报告报告不再发送ICMP差错报告报文
  • 第一个分片的数据报片后续所有分片都不发送
  • 拥有多播地址的数据报
  • 具有127.0.0.0/0.0.0.0地址的数据报

ICMP询问报文

  1. 回送请求和回答:测试目的站是否可达以及相关状态
  2. 时间戳请求和回答:该报文有一个32位的字段,写入的整数代表从1900.1.1日到当前时刻一共过去多少秒

ICMP应用

  • 分组网间探测PING:

    • 测试主机或路由器间的连通性
    • 应用层直接使用网际层的ICMP,不经过运输层TCP/UDP
    • 使用回送请求和回答报文
  • 跟踪路由:

    • 用于测试IP数据报从源主机到达目的主机要经过哪些路由器
    • 使用ICMP回送请求,TTL设为1(初始值),这样第一个路由收到后,发送时间超过报文,丢弃该数据报,源主机继续发送回送请求,每一次TTL+1,直到到达目的主机发送ICMP回答报文,循环次数-1就是途径路由器

网络地址转换NAT

在路由器上安装NAT软件,且路由器上至少有一个有效外部全球IP地址

NAT软件的作用:

  • 分配给专用网源主机一个临时全球IP地址
  • 将真实源IP地址与临时地址记录到NAT转换表中

如果NAT路由器具有N个全球IP地址,则最多有N个内网主机同时访问外网

可以利用运输层的端口号和IP地址一起进行转换,这种技术叫做NAPT

移动IP

  • 移动节点:具有永久IP地址的移动设备

  • 归属代理(本地代理):

    • 一个移动节点的永久“居所”称为归属网络
    • 在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理
  • 永久地址:移动站点在归属网络中的原始地址

  • 外部代理:在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。

  • 转交地址(辅地址):可以是外部代理的地址或动态配置的一个地址

总有些事情高于其他
Built with Hugo
主题 StackJimmy 设计
本站访客数人次 总访问量 本文阅读量