【计算机网络】第四章、网络层

344 阅读11分钟

功能

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务

网络层的传输单位是数据报

功能

  1. 路由选择与分组转发 【最佳路径】
  2. 异构网络互联
  3. 拥塞控制

数据交换方式

电路交换

电话网络

阶段

  1. 建立连接
  2. 通信
  3. 释放连接

特点:独占资源

优点

  1. 通信时延小
  2. 有序传输
  3. 没有冲突
  4. 实时性强

缺点

  1. 建立连接时间长
  2. 线路独占,使用效率低
  3. 灵活性差
  4. 无差错控制能力

报文交换

报文:源应用发送的信息整体

存储转发

优点

  1. 无需建立连接
  2. 存储转发,动态分配线路
  3. 线路可靠性高
  4. 线路利用率高
  5. 多目标服务

缺点

  1. 有存储转发时延
  2. 报文大小不定,需要网络节点有较大缓存空间

分组交换

分组:把大的数据块切割成小的数据块

优点

  1. 无需建立连接
  2. 存储转发,动态分配线路
  3. 线路可靠性高
  4. 线路利用率高
  5. 相对于报文交换,存储管理更容易

缺点

  1. 有存储转发时延
  2. 需要额外的信息量
  3. 乱序到目的主机时,要对分组排序重组

数据报方式

为网络层提供无连接服务(不确定传输路径)

  • 无连接
  • 每个分组携带源地址和目的地址
  • 路由器根据分组的目的地址转发分组

虚电路方式

为网络层提供连接服务(确定传输路径)

发送单位:分组

保证分组的顺序到达

通信过程

  1. 建立连接(虚电路建立)
  2. 数据传输:全双工通信
  3. 释放连接(虚电路释放)

比较

  1. 报文交换分组交换都采用存储转发
  2. 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小
  3. 从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小

传输单元名词

  1. 应用层:报文
  2. 传输层:报文段
  3. 网络层:IP数据报、分组
  4. 数据链路层:帧
  5. 物理层:比特流

路由算法

最佳路由:最佳只能相对于某一种特定要求下得出的较为合理的选择而已

分类

  1. 静态路由算法(非自适应路由算法):管理员手动配置

    路由更新慢,不适用大型网络

  2. 动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化出路由表项

    路由更新快,适用大型网络

    算法复杂,增加网络负担

    1. 全局性:链路状态路由算法 OSPF

      所有路由器掌握完整的网络拓扑和链路费用信息

    2. 距离向量路由算法 RIP

      路由器只掌握物理相连的邻居及链路费用

分层次的路由选择协议:避免因特网规模很大,很多单位不想让外界知道自己的路由选择协议 ,但还想连入因特网

  • 自治系统AS:在单一的技术管理下的一组路由器

路由选择协议

  1. 内部网关协议 IGP:一个AS内使用的 RIP、OSPF
  2. 外部网关协议 EGP:AS间使用的 BGP

RIP协议

分布式的基于距离向量的路由选择协议

RIP协议要求网络中的每一路由器维护从它自己到其他每一个目的网络的唯一最佳距离记录

RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达

RIP协议只适用于小互联网

  1. 仅和相邻路由器交换信息
  2. 路由器交换的信息是自己的路由表
  3. 每30秒交换一次路由信息

距离向量算法

好消息传得快,坏消息传得慢

OSPF协议

使用分布式的链路状态协议

链路状态路由算法

IP数据报

固定部分的长度为20B

  • 版本:IPv4/IPv6
  • 首部长度:单位为4B,最小为5
  • 区分服务:指示期望获得哪种类型的服务
  • 总长度:首部+数据,单位是1B
  • 生存时间(TTL):IP分组的保质期。经过一个路由器-1,变成0则丢弃
  • 协议:数据部分的协议
  • 首部检验和:只检验首部
  • 源IP地址和目的IP地址:32位
  • 可选字段:0-40B,排错、测量、安全
  • 填充:全0,把首部补成4B的整数倍

最大传输单元MTU:链路层数据帧可封装数据的上限

以太网的MTU为1500字节

超过MTU则分片

  • 标识:同一数据报的分片使用同一标识

  • 标志:只有2位有意义

    • 中间位DF:1(禁止分片)、0(允许分片)
    • 最低为MF:1(后面还有分片)、0(最后一片分片)
  • 片偏移:指出较长分组分片后,某片在原分组中的相对位置。以8B为单位

    除了最后一个分片,每个分片长度一定是8B的整数倍

IPv4

IP编制的阶段

分类的IP地址

IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口

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

点分十进制

分类的IP地址

特殊IP地址

私有IP地址

网络地址转换NAT

路由器对目的地址是私有IP地址的数据报一律不进行转发

NAT:在专用网连接到因特网的路由器上安装NAT软件(NAT路由器),至少有一个外部全球IP地址

子网的划分

分类IP地址的弱点

  1. IP地址空间利用率低
  2. 两级IP地址不够灵活

本单位外的网络看不见本单位内子网的划分,对外仍表现为一个网络

子网掩码与IP地址逐位相与,得到子网网络地址

路由器转发分组的算法

  1. 提取目的IP地址
  2. 是否直接交付
  3. 特定主机路由
  4. 检测路由表中有无路径
  5. 默认路由0.0.0.0
  6. 丢弃,报告转发分组出错

构成超网(无分类编址方法)CIDR

无分类域间路由选择CIDR:

  1. 消除了传统的A类、B类、C类地址以及子网划分的概念

  2. 融合子网地址与子网掩码,方便子网划分

CIDR记法:IP地址后加上"/",然后写上网络前缀(可以任意长度)的位数(128.14.32.0/20)

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

地址掩码(子网掩码)

将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合

方法:将网络前缀缩短

最长前缀匹配:使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体

ARP协议

由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址

ARP协议:完成主机或路由器IP地址到MAC地址的映射。解决下一跳走哪

ARP协议使用过程

  • 检查ARP高速缓存
    1. 有对应表项则写入MAC帧
    2. 没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)

ARP协议4种典型情况

  1. 主机A发给本网络上的主机B:用ARP找到主机B的MAC
  2. 主机A发送给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的MAC
  3. 路由器发给本网络的主机A:用ARP找到主机A的MAC
  4. 路由器发给另一网络的主机A:用ARP找到本网络上的一个路由器的MAC

ARP协议自动进行

DHCP协议

主机获得IP地址方式

  1. 静态配置

    IP地址、子网掩码、默认网关

  2. 动态配置

动态主机配置协议DHCP是应用层协议,使用C/S方式,客户端和服务端通过广播方式进行交互,基于UDP

DHCP提供即插即用联网机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租

ICMP协议

ICMP协议支持主机或路由器:

  1. 差错(或异常)报告 -> 发送特定ICMP报文
  2. 网络探询

ICMP差错报文

  1. 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文(无法交付
  2. 源点抑制:拥塞丢数据
  3. 时间超过:TTL=0
  4. 参数问题:首部字段出问题
  5. 改变路由(重定向):值得更好的路由

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

  1. 对ICMP差错报文不再发送
  2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
  3. 对具有组播地址的数据报都不发送ICMP差错报告报文
  4. 对具有特殊地址(127.0.0.0 或 0.0.0.0)的数据报不发送ICMP差错报告报文

ICMP询问报文

  1. 回送请求和回答报文:PING。测试目的站是否可达以及了解其相关状态
  2. 时间戳请求和回答报文:进行时钟同步和测量时间
  3. 掩码地址请求和回答报文
  4. 路由器询问和通告报文

应用

  1. PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
  2. Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报文

IPv6

32位IPv4地址空间已分配殆尽

CIDR、NAT治标不治本

IPv6从根本上解决地址耗尽问题

格式

  • 版本:指明了协议版本,总是6
  • 优先级:区分数据报的类别和优先级
  • 流标签:所有属于同一个流的数据报都具有同样的流标签
  • 有效载荷长度:扩展首部和数据的长度
  • 下一个首部:标识下一个扩展首部或上层协议首部
  • 跳数限制:相当于IPv4的TTL

IPv6和IPv4

  1. IPv6将地址从32位(4B)扩展到128位(16B)
  2. IPv6把Ipv4的校验和字段彻底移除,以减少每跳的处理时间
  3. IPv6将IPv4的可选字段移除首部,变成了扩展首部。路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率
  4. IPv6支持即插即用,不需要DHCP协议
  5. IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
  6. IPv6只能在主机处分片,IPv4可以在路由器和主机处分片
  7. ICMPv6:附加报文类型“分组过大”

表示形式

一般形式:冒号十六进制记法

压缩形式

IPv6基本地址类型

  • 单播:一对一通信 可做源地址+目的地址
  • 多播:一对多通信 可做目的地址
  • 任播:一对多中的一个通信 可做目的地址

向IPv4的过渡

  1. 双栈协议:在一台设备上同时启用IPv4协议栈和IPv6协议栈
  2. 隧道技术

IP组播

IP数据报的三种传播方式

  1. 单播:点对点
  2. 广播:点对所有点
  3. 组播(多播):点对多点

网络层设备

路由器:一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组

  • 路由器:可以互联两个不同网络层协议的网段
  • 网桥:可以互联两个物理层和链路层不同的网段
  • 集线器:可以互联两个物理层不同的网段