计算机网络原理 杂记(三)

此为摘抄杂记,仅供个人查阅。

网络层

网络层核心任务

将数据从源主机送达到目的主机。

网络层的主要功能:1、转发;2、路由选择;3、连接建立。

数据报网络(无连接服务):按照目的主机地址进行路由选择。源主机每要发送一个分组,就为该分组加上目的主机地址,然后将该分组推进网络。每个路由器使用分组的目的主机地址来转发该分组。

虚电路(virtual circuit,VC):源主机到目的主机的一条路径上建立的一条网络层逻辑连接。一条虚电路由 3 个要素构成:

  1. 从源主机到目的主机之间的一条路径(一系列的链路和分组交换机)。
  2. 该路径上的每条链路的虚电路标识(VCID)。
  3. 分组交换机的转发表中记录虚电路标识的接续关系。
image.png
异构网络互连

异构网络:主要是指两个网络的通信技术和运行协议的不同。

异构网络互连的基本策略:协议转换和构建虚拟互联网络。

  1. 协议转换:采用一类支持异构网络之间协议转换的网络中间设备,来实现异构网络之间数据分组的转换与转发。例如:交换机或者是多协议路由器。
  2. 构建虚拟互联网络:在异构网络基础上构建一个同构的虚拟互联网络。
路由器

路由器:最典型的网络层设备。具有多个输入端口和多个输出端口的专用计算机,主要任务就是获取与维护路由信息以及转发分组。

路由器从功能体系结构角度:输入端口、交换结构、输出端口、路由处理器。

  1. 输入端口:查找,转发,到达分组缓存排队功能。
  2. 交换结构:完成具体的转发工作,将输入端口的 IP 数据报交换到指定的输出端口。主要包括:基于内存交换;基于总线交换;基于网络交换。 基于内存交换:性能最低,路由器价格最便宜基于网络交换:性能最高,路由器价格昂贵。
  3. 输出端口:缓存排队,从队列中取出分组进行数据链路层数据帧的封装,发送。先到先服务(FCFS)调度策略;按优先级调度、按 IP 数据报的服务类型(Tos)调度。
  4. 路由处理器:执行命令;路由协议运行;路由计算以及路由表的更新和维护。
网络拥塞

网络层拥塞:一种持续过载的网络状态。用户对网络资源(包括链路带宽、 存储空间和处理器处理能力等)的总需求超过了网络固有的容量。

网络负载在膝点附近时,吞吐量和分组平均延迟达到理想的平衡,网络的使用效率最高。

发生拥塞的原因:

  1. 缓冲区容量有限
  2. 传输线路的带宽有限
  3. 网络结点的处理能力有限
  4. 网络中某些部分发生了故障
网络层拥塞控制措施

一、流量感知路由:网络经常被抽象为一张带权无向图,权值能够根据网络负载动态调整,则可以将网络流量引导到不同的链路上,均衡网络负载,从而延缓或避免拥塞的发生。

二、准入控制:是对新建虚电路审核,如果新建立的虚电路会导致网络变得拥塞,那么网络拒绝建立该新虚电路。

三、流量调节:在网络拥塞时,可以通过调整发送方发送数据的速率来消除拥塞。

  • 抑制分组:感知到拥塞的路由器选择一个被拥塞的数据报,给该数据报的源主机返回一个抑制分组。
  • 背压:抑制分组在从拥塞结点到源结点的路径上的每一跳,都发挥抑制作用。

四、负载脱落:通过有选择地主动丢弃一些数据报,来减轻网络负载,从而缓解或消除拥塞。

IPv4 协议

Internet 网络层主要协议:

  1. 网际协议(Internet Protocol,IP)
  2. 路由协议
  3. 互联网控制报文协议(Internet Control Message Protocol,ICMP)

IP 协议版本及作用:

  1. 目前两个版本:IPv4 和 IPv6
  2. IPv4 协议:Internet 网络层最核心的协议。
    定义了如何封装上层协议(如 UDP、TCP 等)的报文段;
    定义了 Internet 网络层寻址(IP 地址)以及如何转发 IP 数据报等内容;
IP 数据报格式
image.png

1、版本号:4位。IP的版本号。IPv4、IPv6。
2、首部长度:4位。IP数据报的首部长度:20B-60B。
3、区分服务:8位。在旧标准种称为服务类型(Type Of Service,TOS)字段,用来指示期望获得哪种类型的服务。
4、数据长度:16位。IP 数据报的总字节数。
5、生存时间:8位。Time-To-Live,TTL。表示数据报在网络中可以通过的路由器数(或跳步数)。
6、上层协议:8位。指示该 IP 数据报封装的是哪个上层协议。TCP:6;UDP:17
7、首部校验和:16位。利用校验和实现对 IP 数据报首部的差错检测。
8、源IP地址,32位。发出IP数据报的源主机的IP地址。
9、目的IP地址,32位。IP数据报的需要送达的主机的IP地址。
10、选项:长度可变。
11、数据:存放IP数据报所封装的传输层报文段。
12、标识:16位。标识一个 IP 数据报。每产生一个一个IP数据报,IP协议的计数增加1。该字段的重要用途:在IP数据报分片和重组过程中用于标识属于同一IP数据报。该字段不可唯一标识一个IP数据报。
13、标志:3位。其结构如下:

image.png

14、片偏移量:以 8B(8字节)为单位。表示一个IP数据报分片与原 IP 数据报数据的相对偏移量。当该字段值为0时,且MF=1,则表示这是一个IP分片,且是第一个分片。

image.png
image.png
IPv4 编址

IPv4 地址的长度为 32 位。

IPv4 地址的三种标记方式:

  1. 二进制标记法
  2. 点分十进制标记法
  3. 十六进制标记法。

IPv4 地址分配。主机 IP 地址划分为两个部分:

  1. 前缀(Prefix),即网络部分(NetID)用于描述主机所归属的网络;
    分类地址:定长前缀。
    无类地址:前缀长度可变。
  2. 后缀(Postfix),即主机部分(HostID)用于表示主机在网络中的唯一地址;
分类地址:
image.png

分类寻址:A、B、C 类地址可以用于标识网络中的主机或路由器。D 类地址作为组广播地址。E 类是地址保留。

网络地址个数,IP 地址总数:IP 地址中用前缀中的后几位来表示网络地址个数,除去前缀外的位数是这类网络中的 IP 地址总数。

image.png

特殊地址:分类地址中一些特殊用途的地址。

image.png

私有地址:一部分分类地址保留用于内部网络。这部分分类地址可以在内网使用,不能在公共互联网上使用。

image.png
无类地址

无类寻址方案中,不存在诸如分类寻址中的网络类别,网络前缀不再被设计为定长的 8 位、16 位、24 位,而变成可以是 0-32 位的任意值。

网络地址形式为 a.b.c.d/x。这种地址形式称为无类域间路由(CIDR)。

子网划分
  1. 子网化:指将一个较大的子网划分为多个较小子网的过程。
  2. 超网化:将具有较长前缀的相对较小的子网合并为一个具有稍短前缀的相对较大的子网。超网化是子网化的逆过程。
  3. 子网掩码:定义一个子网的网络前缀长度。32位
    对应网络前缀,全部为 1;
    其余位(主机部分),全部为 0;
    例如:子网 213.111.0.0/24 的子网掩码是:255.255.255.0
    例如:子网:12.34.56.0,子网掩码:255.255.255.192。那网络前缀 26 位,主机 6 位。(11111111 11111111 11111111 11000000)



例题

假设某子网中的一个主机的IP地址是 203.123.1.135,子网掩码是 255.255.255.192。

由子网掩码看出前缀有26位(1的个数),剩下的6位为主机位。

  1. 子网地址(网络地址):子网掩码和主机地址按位 与运算
    与运算:(0&0=0;0&1=0;1&0=0;1&1=1)
    该子网的子网地址是: 203.123.1.128 (主机地址全为0)
image.png
  1. 广播地址:子网掩码的反码与主机地址按位 或运算
    反码:1变为0;0变为1;
    或运算:(0||0=0;0||1=1;1||0=1;1||1=1)
    直接广播地址:203.123.1.191 (主机地址全为1)
image.png
  1. IP地址总数
    IPv4地址共32位,分为网络位+主机位。
    通过子网掩码可以确定网络位,则主机位为:32-网络位。IP地址总数:2的(32-网路位)次方。
    所以IP地址总数:2⁶=64个IP地址总数。
  1. 该子网可分配IP地址数
    主机位全为0(子网地址)和主机位全为1(广播地址)不可分配,所以该子网可分配IP地址数是 64-2=62个。

  2. 可分配地址范围

子网地址:203.123.1.128(头)
广播地址:203.123.1.191(尾)
可分配IP地址范围是:203.123.1.129 ~ 203.123.1.190




🌰 某公司总部与其子公司A、B、C分別位于四个不同的地区,总部与子公司的联网结构示意图如题图所示。假设公司拥有的子网地址是202.119.110.0/24,总部和子公司A、B、C联网的主机数量分别是53、26、12、12,要求子公司B和C的主机位于地址相邻的子网。请写出下表中序号处的IP地址和子网掩码。

image.png
  1. 公司A主机数量26需要5个主机位(2的5次方为32,大于26),则网络位27位。子公司子网掩码:255.255.255.224。子公司A的IP地址最终:202.119.110.94。 主机IP地址最终 主机位取反 可求出 主机IP地址起始:202.119.110.65

  2. 子公司B子网掩码:255.255.255.240。则网络位28位,主机位4位。子公司B的IP地址起始:202.119.110.97。主机IP地址起始 主机位取反 可求出 主机IP地址最终:202.119.110.110。

  3. 子公司C子网掩码:255.255.255.240,则网络位28位,主机位4位。求出子公司B的广播地址:202.119.110.111。子公司B和子公司C相邻子网,则子公司C的子网地址为:202.119.110.112。子公司C的IP地址起始:202.119.110.113。主机IP地址起始 主机位取反 可求出 主机IP地址最终:202.119.110.126。

  4. 网络地址(子网地址):网络位是特定值,主机位全为0.
    广播地址:网络位是特定值,主机位全为1。
    子网掩码:网络位全为1,主机位全为0。

  5. 总部子网掩码255.255.255.192(11111111 11111111 11111111 11000000),求出网络位26位,主机位6位。
    主机IP地址起始:202.119.110.129 (11001010 01110111 01101110 10000001)
    主机IP地址起始 主机位取反 可求出 主机IP地址最终:202.119.110.190 (11001010 01110111 01101110 10111110)




动态主机配置协议

当组织分配到一个网络地址块后,就可以为该组织内的主机和路由器接口分配 IP 地址。

DHCP 服务器端口号67
DHCP 客户端口号68

静态分配:手动配置;
动态分配:动态主机配置协议(DHCP)来分配。

DHCP 工作过程:
1、DHCP 服务器发现:广播方式
2、DHCP 服务器提供:广播方式
3、DHCP 请求:广播方式
4、DHCP 确认

####### 网络地址转换(NAT)

NAT 工作原理:对于从内网出去,进入公共互联网的 IP 数据报,将其 IP 地址替换为 NAT 服务器拥有的合法的公共 IP 地址,同时替换源端口号,并将替换关系记录到 NAT 转换表中;
对于从公共互联网返回的 IP 数据报,依据其目的 IP 地址与目的端口号检索 NAT 转换表,并利用检索到的内部私有 IP 地址与对应的端口号替换目的 IP 地址和目的端口号,然后将 IP 数据报转发到内部网络。

互联网控制报文协议(ICMP)
  1. ICMP:在主机或路由器间实现差错信息报告、信息探测。
  2. 报文格式:
image.png
  1. ICMP 差错报告报文有 5 种:终点不可达、源点抑制、时间超时、参数问题、 路由重定向
    ICMP 询问报文:回声(echo)请求/应答、时间戳请求/应答
IPv6

IPv6 地址长度为 128 位,通常采用 8 组冒号分隔的十六进制数地址形式表 示,例如:5000:0000:00A1:0128:4500:0000:89CE:ABCD

image.png

IPv6和IPv4数据报首部对比,IPv6删除了这些字段:

  1. 分片相关字段
  2. 首部校验和
  3. 选项字段不是IPv6的基本首部的字段

IPv4到IPv6的迁移

  1. 双协议栈:网络结点同时具备发送IPv4与IPv6数据报的能力
  2. 隧道:通信源端与目的端都提供IPv6服务,但是途径一段IPv4网络 。很好地解决IPv6通信中经过IPv4路由器的问题,同时也不会出现信息丢失的问题

IPv6地址分类:

  1. 单播地址:可做源地址和目的地址
  2. 组播地址:可做目的地址(一组都能收到)
  3. 任播地址:可做目的地址 (一组中随机的一台可以收到)
路由算法与路由协议

路由选择:如何为网络分组从源端到目的端的传输确定最佳路径

路由选择算法分类:

分类标准:

  1. 是否需要全局信息
  2. 静态动态
  3. 是否敏感

带权无向图:将网络抽象为一个带权无向图 G=(N,E),N 表示结点集合,E 是边的集合。
网络中的路由器抽象为图 G 的结点,连接两个路由器的网络链路抽象为 G 的边。 网络链路的费用(比如带宽、时延等)抽象为 G 中的权值

image.png

如果两个结点间有边,例如从结点X到结点Y,则从结点X到结点Y耗费的费用记做C(X,Y)=10。如果两个结点间没有边,例如结点X到结点U,则从结点X到结点U耗费的费用记做C(X,U)=∞。

第一种分类:是否需要全局信息
  1. 全局式路由选择算法:需要根据网络的完整信息来计算最短路径。 最具代表性的全局式路由选择算法:链路状态路由选择算法(LS 算法)。
  2. 分布式路由选择算法:结点不会(也不需要)尝试获取整个网络拓扑信息, 结点只需获知与其相连的链路的“费用”信息,以及邻居结点通告的到达其他结点的最短距离(估计)信息,经过不断的迭代计算,最终获知经由哪个邻居可以具有到达目的结点的最短距离。 最具代表性的分布式路由选择算法:距离向量路由选择算(DV 算法)。

第二种分类:静态动态

  1. 静态:人工配置。网络变化时,不进行人工干预,就无法匹配。
  2. 动态:网络发生变化,自动计算最佳路由。LS 算法、DV 算法。

第三种分类:是否敏感

  1. 负载敏感的路由选择算法;
  2. 负载迟钝的路由选择算法。
链路状态路由选择算法

算法是利用 Dijkstra 算法求最短路径的。

image.png
🌰 利用 Dijkstra 算法求最短路径
image.png
image.png
image.png
距离向量路由选择算法

算法的基础是 Bellman-Ford 方程(B-F 方程)。
令 dx(y)表示结点 x 到结点 y 的路径的最低费用(即广义最短距 离),根据 B-F 方程,有以下公式:

推荐阅读更多精彩内容