计网--网络层

向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务。

可靠可以由更高层的传输层来负责。这使得网络造价低。

异构网络互联

4种中继系统

  • 物理层:中继器,集线器
  • 数据链路层:网桥 / 交换机
  • 网络层:路由器
  • 网络层以上:网关

路由与转发

路由器两个功能

  • 路由选择:根据特定的路由选择协议构造出路由表
  • 分组转发:根据转发表将用户的 IP 数据报从合适的端口转发出去

拥塞控制

拥塞控制的作用是确保子网能够承载所到达的流量

  • 开环控制
    • 提前考虑好,是静态的预防方法
  • 闭环控制
    • 事先不考虑,过程中监视,及时检测拥塞,是动态的方法

路由算法

静态路由算法:由管理员手工配置路由信息,网络变化后需要手工修改

动态路由算法:路由表是路由器之间交换信息,按照一定的算法优化出来的

距离-向量路由算法

所有节点都定期地将他们的整个路由选择表传送给所有与之直接相邻的节点。路由选择表包括

  • 每条路径的目的地(另一节点)
  • 路径的代价(距离)

路由选择表更新:

  • 被通告一条新的路由
  • 有更短的路由

迭代计算一条路由中的站段数或延迟时间,从而得到到大一个目标的最短通路

最常见的是 RIP 算法,采用 跳数 作为距离的度量

链路状态路由算法

要求每个参与该算法的结点都具有完全的网络拓扑信息

  • 主动测试所有邻接节点的状态
  • 定期地将链路状态传播给所有其他结点

一旦链路状态发生变化,节点就对更新的网络图使用 Dijkstra 算法重新计算路由,从单一的源出发计算到达所有目的结点的最短路径

三个特征

  • 向本自治系统中所有路由器发送信息,使用的是泛洪法
  • 发送的信息是与路由器相邻的所有路由器的链路状态
  • 只有链路状态发生变化时,路由器才向所有路由器发送此信息

典型的有 OSPF 算法

比较

距离-向量路由算法中,每个结点仅与它的直接邻居交谈,为它的邻居提供从自己到网络中所有其他节点的最低费用估计。

链路状态路由算法中,每个节点通过广播的方式与其他所有节点交谈,但它发送与自己直接相连的链路的费用

层次路由

网络规模扩大时,路由器的路由表也变大,需要更多空间且扫描起来更慢。因此,路由选择需要按层次进行

将网络划分成多个自治系统

  • 自治系统内使用的路由选择协议称为内部网关协议,比如 RIP / OSPF
  • 自治系统间使用的路由选择协议称为外部网关协议,比如 BGP

IPv4

格式

由首部和数据组成,首部前一部分长度固定,是 20B。
在这里插入图片描述

  • 首部长度:占 4 位,以32位为单位,最大可以是 60B(可选部分不选就是 20B)

  • 总长度:占 16 位,单位为字节,是首部和数据之和的长度。最大长度为 65535B,但是以太网帧的最大传送单元(MTU)为1500B,IP封装成帧时,最大程度不能超过数据链路层的 MTU 值。

  • 标识:占 16 位。是一个计数器,每产生一个数据报就加 1,并赋值给标识字段。但它并不是序号(IP是无连接服务)。当一个数据报超过网络的 MTU 时,被分片,每个数据报片都复制一次标识号,以便能正确重新拼成原来的数据报。

  • 标志:占3位。最低位 MF =1 表示后面还有分片,=0表示最后个一个分片。中间一位是 DF,只有DF=0时才允许分片

  • 片偏移:占 13 位,指出某片在原分组中的相对位置。片偏移以8个字节为偏移单位。即每个分片的长度一定是 8B 的整数倍

  • 生存时间(TTL):8位,数据报在网络中可通过的路由器数的最大值。路由器转发分组前,先把TTL 减1。若为 0,则分组被丢弃。

  • 协议:8位,指出使用那种协议。6表示 TCP,17表示 UDP

  • 首部检验和:16位,只校验分组的首部

  • 源地址字段:4B

  • 目的地址字段:4B

首部长度,总程度,片偏移单位分别的:4B, 1B, 8B

分片

一个数据链路层数据报能承载的最大数据量称为最大传送单元(MTU)

目的主机在对片进行重组时,使用片偏移字段来确定片应该放在原始 IP 数据报的哪个位置

除最后一个片外,其他所有片中的有效数据载荷都是 8B 的倍数。

IPv4地址与NAT

IPv4地址

在这里插入图片描述

连接到因特网的每台主机(路由器)都分配一个32比特的全球唯一标识符

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

网络号标注主机所连接到的网络,在因特网范围内必须是唯一的

主机号标志该主机,在其前面的网络号所指明的范围内必须是唯一的

有些 IP 有特殊用途,不做主机的 IP 地址

  • 主机号全 0 表示本网络本身
  • 主机号全 1(255) 表示本网络的广播地址
  • 32位全 0 表示本网络上本主机 0.0.0.0
  • 32位全 1 表示整个 TCP/IP 网络的广播地址 255.255.255.255(由于路由器对广播域的隔离,等效为本网络的广播地址)

特点

  • IP地址管理机构只分配网络号,主机号由得到该网络的单位自行分配
  • 路由器仅根据目的主机所连接的网络号来转发分组(减小路由表的存储空间)
  • 路由器总是有两个或以上的 IP 地址,路由器的每个端口都有一个不同网络号的 IP 地址(连接到不同网络中)

网络地址转换(NAT)

RFC1918规定了三个保留地址段落:

  • 10.0.0.0-10.255.255.255
  • 172.16.0.0-172.31.255.255
  • 192.168.0.0-192.168.255.255

这三个范围分别处于A,B,C类的地址段,不向特定的用户分配,被IANA作为私有地址保留。这些地址只能在内部使用,不能作为全球路由地址。

NAT 是指通过将专用网络地址转换为公用网络地址,从而对外隐藏内部管理的 IP 地址。使得整个专用网只需要一个全球 IP 地址就可以与因特网联通。专用网 IP 地址是可重用的,因此大大节省了 IP 地址的消耗。

NAT路由器使用 NAT 转换表将本地地址转换成全球地址,或将全球地址转换成本地地址。NAT转换表中存放着{本地IP地址:端口} 到 {全球IP地址:端口}的映射。通过这样的映射方式,可以让多个私有 IP 地址映射到同一个全球 IP 地址上

普通路由器在转发 IP 数据报时,不改变其源IP地址和目的IP地址,而NAT路由器在转发IP数据报时,一定要更换其IP地址

子网划分与子网掩码,CIDR

子网划分

  • 两级 IP 地址空间利用率有时很低

  • 从主机号借用若干比特作为子网号。<网络号>,<子网号>,<主机号>

  • 凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据网络号找到本网络的路由器,然后该路由器在收到IP数据报后,按照目的网络号和子网号找到目标子网,最后将IP数据报交付给目标主机。

  • 子网划分只是把 IP 地址主机号进行再划分,而不改变原有的网络号

子网掩码

子网掩码是一个与 IP 地址相对应的长 32 bit 的二进制串,1对应于 ip 地址中的网络号及子网号,0对应主机号

  • 将IP地址和对应的子网掩码逐位与,就能得到相应子网的网络地址
  • 如果一个网络未划分子网,就采用默认的子网掩码
    • A 类地址默认子网掩码255.0.0.0
    • B 类地址默认子网掩码255.255.0.0
    • C 类地址默认子网掩码255.255.255.0
  • 路由器在交换信息时,也要将子网掩码告诉对方

ARP,DHCP,ICMP

IP地址和硬件地址

  • 数据链路层看不见 IP 地址
  • IP分组到达目标网络后,改为在目标 LAN 中通过数据链路层的 MAC 地址以广播方式寻址
  • 路由器只根据目的 IP 地址的网络号进行路由选择
  • 通过路由器转发 IP 分组时,此 IP 分组在每个网络中都被路由器解封装和重新封装。因此 IP 数据报在被路由器转发的过程中,数据链路层封装使用的MAC地址不断改变,无法使用MAC地址跨网络通信。

路由器由于互联多个网络,因此不仅有多个 IP 地址,也有多个硬件地址

地址解析协议(ARP)

IP地址到MAC地址的映射。

  • 每台主机都有一个 ARP 高速缓存,用来存放本局域网上各主机和路由器的 IP 地址到 MAC地址的映射表,称 ARP 表。

  • A向本局域网的 B 发送 IP 数据报时,向ARP表查询

    • 如果有B的IP,则将B的硬件地址写入MAC帧发送。
    • 没有,则设MAC地址为FF-FF-FF-FF-FF-FF,广播ARP请求分组。B收到后,向A发出ARP响应分组,分组中包含B的IP与MAC的映射关系,主机A收到后将此关系写入ARP缓存。然后按查询到的硬件地址发送MAC帧。
  • ARP请求是广播,ARP响应是单播

ARP用于解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题,ARP解析是自动的

动态主机配置协议(DHCP)

常用于给主机动态地分配 IP 地址。DHCP是应用层协议,基于UDP,互相不知道 ip,没法使用 TCP 建立连接。

  • 使用客户/服务器方式,需要 IP地址的主机在启动时就向 DHCP 服务器广播发送发现报文(只有DHCP服务器才回答此报文)。DHCP服务器先再其数据库中查找该计算机的配置信息
    • 若找到,则返回信息
    • 找不到,则从服务器的 IP 地址池中取一个地址分配给该计算机
    • DHCP的回答报文称为提供报文

交换过程

  • 客户机广播 DHCP发现消息
  • 服务器收到,广播 DHCP 提供消息,其中包含提供DHCP客户机的IP地址和相关配置信息
  • DHCP客户机收到 DHCP提供 消息,若接收,则广播 DHCP请求 消息,向 DHCP 服务器请求提供IP地址
  • DHCP服务器广播 DHCP确认 消息,将 IP地址分配给客户机

网际控制报文协议(ICMP)

Internet control message protocol

为了提高 IP 数据报交付成功的机会,使用 ICMP,让主机或路由器报告差错和异常情况。

  • ICMP作为 IP 层数据报的数据,加上数据报的首部,组成IP数据报发送出去,是 IP 层协议

ICMP报文有两类:

  • ICMP差错报文:目标主机或目标主机路径上的路由器向源主机报告差错和异常情况
  • ICMP询问报文

ICMP常见应用:

  • 分组网间探测 PING:使用了 ICMP 回送请求和回答报文。工作在应用层,直接使用ICMP,没使用传输层
  • Traceroute:使用了 ICMP 时间超过报文,工作在网络层

IPv6

主要特点

将地址从 32 位增加到 128 位。

IPv4向IPv6过渡可以采用双协议栈和隧道技术两种策略

  • 双协议栈:一台设备上同时装有 IPv4 和 IPv6 协议栈
  • 隧道技术:将整个IPv6数据报封装到IPv4数据报的数据部分,使其能够在IPv4网络的隧道中传输

路由协议

自治系统

Autonomous System:AS

单一技术管理下的一组路由器

域内路由与域间路由

内部网关协议

在一个自治系统内部使用的路由选择协议,如RIP何OSPF

外部网关协议

当数据报传到一个自治系统的边界时,就需要使用一种协议将理由选择信息传递到另一个自治系统中,这就是外部网关协议

路由信息协议RIP

  • 网络中每个路由器都要维护从它自身到其他每个目的网络的距离,因此这是一种向量,称为距离向量
  • 允许一条路径最多只能包含15个路由器(最大15跳),再大就认为网络不可达

特点

  • 仅和相邻路由器交换信息
  • 交换的信息是当前路由器所知道的全部信息,即自己的路由表
  • 按固定的时间间隔交换信息,如每隔30s

路由表数据:<目的网络N,距离d,下一跳路由器地址X>

优点是:实现简单,开销小,收敛快

缺点:限制网络的规模,网络规模越大开销越大,坏消息传的慢

RIP是应用层协议,使用 UDP 传送数据,选择的路径不一定是时间最短的,但一定是有最少路由器的路径。

开放最短路径优先OSPF协议

与RIP相比有以下区别

  • 向本自治系统中的所有路由器发送信息,使用泛洪法
  • 发送的信息是与本路由器相邻的所有路由器的链路状态
  • 只有当链路状态发生变化时,才发送消息
  • 是网络层协议,直接用IP数据报

特点

  • 到一个目的网络有多条代价相同的路径,可以将通信量分配给这几条路径,称为多路径间的负载均衡

  • 每个链路状态都带一个32位序号,序号越大,状态越新

  • 每个路由器都能构建全网拓扑结构图

  • 能用于规模很大的网络,将自治系统划分成更小的区域

  • 规定每隔一段时间就刷新一次数据库中的链路状态

边界网关协议BGP

是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。

力求寻找一条能够到达目的网络且比较好的路由,而并非找一条最佳路由。

每个路径包括目的网络,下一跳和完整的路径信息

采用的是路径向量路由选择协议,是应用层协议基于 TCP 的

一个 AS 至少要选一个路由器当做发言人,BGP发言人与其他AS中的BGP发言人要交换路由信息,就要先建立TCP连接。

BGP发言人除运行BGP外,还要运行AS的内部网关协议

IP组播

组播机制:让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干目标主机,并被他们正确接收

  • 组播一定仅用于 UDP

  • 每个组都有一个特别分配的地址,IPv4中,这些地址在 D 类地址空间中分配

  • 主机组播时只发送一份数据,只有数据在传送路径上出现分叉时,才将分组复制后转发

  • 能够运行组播协议的路由器称为组播路由器

  • 主机使用 IGMP(因特网组管理协议)协议来加入组播组

IP组播地址

使用 D 类地址格式,前4位是1110

  • 协议字段是2,表示使用IGMP
  • 组播地址只能用于目的地址,不能用于源地址
  • 对组播数据不产生ICMP差错报文
  • 不是所有D类地址都可以作为组播地址

移动IP(没细看)

支持移动性的因特网体系结构与协议共称为移动 IP,是为了满足移动节点在移动中保持其连接性而设计的。

  • 移动节点以固定的网络IP地址实现跨越不同网段的漫游功能

网络层设备

路由器的组成和功能

是一种具有多个输入/输出端口的专用计算机,任务是连接不同的网络并完成路由转发。

  • 多个逻辑网络互联时必须使用路由器
  • 源主机和目标主机在一个网络中,直接交付
  • 不在一个网络中,路由器按照转发表指出的路由将数据报转发给下一个路由器,是间接交付

路由器由两部分构成

  • 路由选择

    • 控制部分,核心构件是路由选择处理机
    • 任务是根据所选定的路由选择协议构造出路由表
  • 分组转发:由三部分组成

    • 交换结构:根据转发表,将某个输入端口进入的分组从一个合适的输出端口转发出去

    • 一组输入端口:从物理层接到的比特流中提取数据链路层帧,进而从帧中提取网络层数据报

    • 一组输出端口:和输入端口相反的操作

路由器是网络层设备,实现了网络模型的下三层:物理层,数据链路层和网络层

路由器有两个主要功能:

  • 分组转发
  • 路由计算:和其他路由器交互,完成路由表的计算

网桥与高层协议无关,路由器是面向协议的,依据网络地址进行操作。

路由表与路由转发

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

转发是将IP数据报从合适的端口转发出去,仅涉及一个路由器

路由选择涉及很多路由器

总结

传输过程中,出现差错的 IP 数据报都被丢弃了

交换机可在单个网络中与若干计算机相连,如果网络是异构的(不同网络之间相连)必须使用路由器

猜你喜欢

转载自blog.csdn.net/qq_52852138/article/details/125902318