type
status
date
slug
summary
tags
category
icon
password
最难的一章

网络层概念

notion image
 

两种服务

  • 面向连接的可靠交付 → 虚电路服务
    • 建立了一条逻辑上的连接,所有分组沿一条路传送
  • 无连接,最大努力交付的数据报服务 → 数据报服务
    • 分组可能按不同路径传送

两个层面

不同网络的主机通信需要路由器转发分组
路由器转发的信息分为数据和路由信息
2个层面:数据层面和控制层面
路由器功能:转发+路由选择
  • 数据层面:根据转发表转发数据,硬件
  • 控制层面:根据路由选择协议计算路由,创建路由表,软件
SDN软件定义网络,计算出最佳路由
 

网际协议IP

虚拟互连网络

实现异构网络的互联互通,使用中间设备
  • 运输层+:网关
  • 网络层:路由器
  • 数据链路层:网桥或桥接器,交换机
  • 物理层:转发器
IP网:通过IP实现不同网络之间主机的通信

IP地址

IP地址为32位二进制代码,每8位为一组,互联网上的每个主机/路由器的每个接口都分配了唯一的IP地址
IP地址采用2级结构:网络号+主机号 分配位数不固定
路由器的每个接口都可以有一个IP
分类的IP地址
  • A类 8位网络,24位主机
  • B类 16位网络,16位主机
  • C类 24位网络,8位主机
  • D类 多播地址
特殊IP地址:
notion image
全0可以用来表示本网络,但是不能用作目的,全1用来在本网广播,主机全1代表对Y网广播
127是A类网络,127.0.0.1在本地处理,不会发送到网络
此外,仍有部分地址作为私有IP地址(如192.168.0.0…)不能在网络传输
可以求每个网络中最大主机数(-2,全0主机号代表本网网络号,全1代表广播)

CIDR无分类编址

消除划分子网概念,更有效分配IPv4
  • 网络前缀:新的2级结构-网络前缀+主机号,n位网络前缀可以选取0-32点任意值,使用CIDR记法:a.b.c.d/n 即代表前n位为网络前缀
  • 地址块:把所有前缀相同的连续IP地址组成一个CIDR地址块,地址块后面都是0
    • notion image
  • 地址掩码:又称为子网掩码,32位,目的是让机器从IP地址快速计算网络地址
    • notion image
      有ABC类地址默认的地址掩码
      IP地址与网络掩码逐位AND运算,求得网络前缀+0000
构成超网:
多个子网可以聚合形成较大子网-构成超网
方法:路由聚合-网络前缀取交集(最长前缀匹配)
notion image
在路由器中,每次选择具有最长相同前缀的下一跳(注意,只匹配网络位)
IP地址特点:
转发器或交换机连接的局域网仍然属于一个网络,IP标志了主机/路由器和一条链路的接口
一个路由器至少有两个不同的IP地址
*关于路由器接口与接口对应局域网?

IP地址和MAC地址

IP地址位于网络层,MAC地址位于数据链路层
网络层数据报中IP地址不变,MAC地址改变
notion image

地址解析协议ARP

A→B 经过5个路由器,使用6次ARP(发送一次,每次转发需要一次)
实现IP通信时使用了IP地址和MAC地址
IP地址随网络环境变化而变化,MAC地址是主机固有的
问题:已经知道了一个机器(主机或路由器)的 IP 地址,如何找出其相应的 MAC 地址?
  • ARP高速缓存:存放 IP 地址到 MAC 地址的映射表(存放局域网内部的主机)
    • 映射表动态更新
      • notion image
  • ARP工作:
    • notion image
  • ARP查找
    • notion image
    • 广播ARP请求:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址。
    • 单播ARP响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址。
ARP报文结构…
*两台主机不在同一个LAN时:
ARP解决的是同一个LAN的映射问题,当LAN内部没有找到对应主机时,主机会去找网关接口的MAC地址,同时把IP数据报发给路由器R1,之后路由器负责转发与下一步的ARP服务(目标LAN中)
通过子网掩码判断是否在一个局域网内
  • 主机 → 同LAN主机:ARP
  • 主机 → 不同LAN主机:ARP找到路由器MAC(用路由器的IP),IP报发给路由器
  • 路由器 → 同LAN主机:ARP
  • 路由器 → 不同LAN主机:路由器ARP找到另一个路由器的MAC,IP报发给该路由器(根据CIDR,路由器中有存储IP项对应MAC,有前缀匹配,因此找到的就是对应的路由器)
题目 - 使用了几次ARP协议

IP数据报格式

IP数据报由首部和数据组成
notion image
  • 首部
    • 固定部分-共20字节,一定要有
      • 首部长度 每个单位为4字节
      • 总长度 指首部+数据之和的长度,单位为字节,总长度不得超过MTU
      • 标识代表IP数据报的标识,标志和片偏移为分片服务
      • 生存时间TTL指数据报在网络中可通过的路由器数的最大值
      • 源地址和目的地址都各占32位
    • 可变部分,同时起填充作用
  • 数据:传输内容
IP数据报分片:
MTU代表链路层数据帧可封装数据的上限,当数据报长度超过MTU时,进行分片
  • 标识:16位,同一数据报的分片使用相同的标识
  • 标志:最低位MF标志后面是否有分片,中间DF标志是否允许分片
  • 片偏移:某片在原分组的相对位置,8字节为单位

IP层转发分组过程

基于终点的转发

分组在互联网中逐跳转发
notion image
即对于15所在网络,就要跳到R1路由器的端口对应的地址,20,30网络就直接LAN了
也解决了之前关于路由器端口与网络地址的问题
notion image
目标IP不用标识网络位,但是转发表(网络)要写好网络位,用来规定掩码

最长前缀匹配

CIDR在转发表中可能有不止一个匹配结果,选择前缀最长的作为匹配(所以把前缀最长的排在转发表第一行)
注意,由于CIDR关于网络位设置的方法,即使出现了IP号相同的情况,对应的主机也可能不同
*转发表中特殊的路由:主机路由(网络位32),默认路由(0.0.0.0/0)(总设置为最后)

二叉线索查找

搜索最长前缀的方法(数据结构相关)

网际控制报文协议ICMP

没有这里的题目

IPv6

没有这里的题目

互联网的路由选择协议

路由选择协议

属于网络层控制层面的内容,选择最佳路由
  • 静态路由选择
  • 动态路由选择
分层次路由选择:自治系统内部的路由选择,自治系统之间的路由选择

内部网关协议RIP

RIP是一种分布式的,基于距离向量的路由选择协议。要求网络中的每个路由器都要维护从它自己到其他每一个目的网络的距离记录
到直接连接的网络距离为1,到非直接连接的网络距离为经过路由器数+1
收到新的RIP报文后,先增加一跳,然后更新RIP表(没有新信息的不变,下一跳相同则替换,一条新路由则增加,下一跳不同则只替换更小的)
RIP协议路由器与相邻路由器交换信息
*距离向量算法

内部网关协议OSPF

使用Dijkstra提出的最短路径优先算法SPF,通过路由器洪泛广播与建立链路状态数据库存储拓扑结构图

外部网关协议BGP

不同自治系统的路由器之间交换路由信息,基于路径向量
iBGP在AS内部运行,eBGP在AS之间进行,在一个AS内部(RIP或OSPF)都知道目标路由,与这个AS内部其他主机直接相连的Y可以通过eBGP,与Y在一个AS的可以通过iBGP

IP多播

没有这里的题目

VPN&NAT

虚拟专用网VPN

IP地址紧缺+互联网不安全
分离本地地址和全球地址→指明专用地址,只用于本地地址
专用IP地址块(如192.168.0.0)采用专用IP地址的互联网为专用网
而利用公用互联网作为专用网之间的通信载体就是虚拟专用网VPN
隧道技术实现

网络地址转换NAT

问题:专用网上使用专用地址的主机如何与互联网主机通信?
使用NAT方法,需要路由器安装NAT软件,专用地址IP在路由器上转换为全球IP地址(有些主机不需要互联网连接,因此路由器IP数量有限)
NAPT:网络地址与端口号转换(NAT不节省IP地址,NAPT允许共用IP)
 

SDN

notion image

软件定义网络SDN

SDN体系结构将控制层面和数据层面分离
OpenFlow协议是SDN 体系结构中控制层面和数据层面之间的通信接口

OpenFlow协议

流表规定匹配+动作
notion image
  • 首部的匹配字段会给
  • 动作:一组动作。当分组匹配某个流表项时,把分组转发到指明的端口,或丢弃该分组,或把分组进行复制后再从多个端口转发出去,或重写分组的首部字段(第二、三和四层的首部字段)等。
问题:流表构建
例如:动作 - 转发(3),代表从3号端口转发
 

子网

这个是在题目中经常看到的
网络号+主机号的两级IP地址不够灵活:

子网划分

将主机号中一部分较高位数作为子网号(3级IP地址),单位外网络看不多子网划分,(主机号至少要留下两位,全0全1不行)

子网掩码

负责在网络内部分离各个子网:
2级IP地址:网络位全1
3级IP地址:网络位+子网位全1
路由器中包括:目的网络地址,目的网络子网掩码,下一跳地址
  • 提取目的IP
  • 判断能否直接交付:与路由器中所有子网掩码相与,是否进入该路由器连接LAN
  • 特定主机路由
  • 判断路由表中有没有路径(目的网络地址),到其他网络
  • 默认路由
 
数据链路层 传输层