计算机网络(网络层)

    技术2023-12-20  101

    第四章 网络层

    实现端到端的数据传输。路径选择、路由及逻辑寻址。

    网络层两种服务

    虚电路服务:逻辑上的连接、按照存储转发方式传送、并不是真正建立了一条物理连接。 数据报服务:无连接的、尽最大努力交付、网络层不提供服务质量的承诺。 尽最大努力交付:网络的造价大大降低,运行方式灵活,能够适应多种应用。

    IP协议及配套的三大协议

    地址解析协议 ARP (Address Resolution Protocol) 网际控制报文协议 ICMP (Internet Control Message Protocol) 网际组管理协议 IGMP (Internet Group Management Protocol)

    应用层:SMTP、HTTP、FTP 传输层:TCP、UDP 网络层:IP、ICMP、IGMP、ARP 网络接口层:与各种网络接口 再往下:物理硬件

    网络互联的中间设备

    物理层中继系统:转发器 (repeater)、中继器或集线器。 数据链路层中继系统:网桥 或 桥接器 (bridge)。 网络层中继系统:路由器 (router)。 网桥和路由器的混合物:桥路器 (brouter)。 网络层以上的中继系统:网关 (gateway)。

    虚拟互联网络的概念

    逻辑互连网络,利用 IP 协议就可以使性能各异的网络从用户看起来好像是一个统一的网络,使用IP协议的话可以简称为IP网。 好处:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。 如果在这种覆盖全球的 IP 网的上层使用 TCP 协议,那么就是现在的互联网 (Internet)。

    ★★★★ VPN 虚拟专用网、NAT 网络地址转换

    专用网(可重用地址):采用专用 IP 地址的互连网络 装有 NAT 软件的路由器叫作 NAT 路由器。 至少有一个有效的外部全球IP地址。 将本地地址转换成全球 IP 地址。

    ★★★★ IP 的地址分类、IP 数据报格式

    基于分类的IP地址:最基本的编址方法 子网的划分:改进 构成超网:无分类编址方法

    分类 IP 地址(8位一个字节) 两个固定长度:网络号 net-id、主机号 host-id,一共32位 IP 地址 ::= { <网络号>, <主机号>},::= 代表“定义为” A类地址:net-id(8位)、host-id(24位) B类地址:net-id(16位)、host-id(16位) C类地址:net-id(24位)、host-id(8位) D类地址:多播地址(host-id 全为 1) E类地址:保留为今后使用

    各类IP地址范围,所占比例

    网络类别网络标志位最大可指派的网络数第一个可指派的网络号最后一个可指派的网络号每个网络中最大主机数A0126 (27 – 2)112616777214B1016383 (214 – 1)128.1191.25565534C1102097151 (221 – 1)192.0.1223.255.255254D1110E1111
    IP地址与硬件地址的区别
    IP 地址

    网络层和以上各层使用的地址,是一种逻辑地址,软件实现

    IP 地址是一种分等级的地址结构,两个等级的好处 分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。方便了 IP 地址的管理。 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。IP 地址是标志一个主机(或路由器)和一条链路的接口。(标识路径的需要) 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机。 由于一个路由器至少应当连接到两个网络(将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
    硬件地址

    数据链路层和物理层使用的地址

    区别

    IP 地址放在 IP 数据报的首部,硬件地址则放在 MAC 帧的首部。 在 IP 层抽象的互联网上只能看到 IP 数据报,在具体的物理网络的链路层只能看见 MAC 帧。 在传输经多个主机的过程中,在网络层写入 IP 数据报首部的源地址与目的地址一直不变,而在数据链路层写入 MAC 帧首部的源地址与目的地址一直改变。 例:主机 H1 与 H2 通信途径路由R1、R2,HAi表示路由地址 H1->R1->R2->H2

    网络层 IP 源地址网络层 IP 目的地址数据链路层 MAC 源地址数据链路层 MAC 目的地址IP1IP2HA1HA3IP1IP2HA4HA5IP1IP2HA6HA2
    ★★★ 地址解析协议ARP及作用、ARP工作过程

    注:解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题 作用:从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。

    当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。 如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。 如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。

    ARP请求分组:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址。 本地广播 ARP 请求(路由器不转发ARP请求)。 ARP 响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址。 ARP 分组封装在物理网络的帧中传输。

    高速缓冲作用:存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。

    分组转发算法,根据路由表计算下一跳地址

    根据目的网络地址和子网掩码计算网络号直接交付或交付对应的路由器接口。 (1) 从收到的分组的首部提取目的 IP 地址 D。 (2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行 (3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行 (4)。 (4) 对路由表中的每一行,将子网掩码和 D 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行 (5)。 (5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行 (6)。 (6) 报告转发分组出错。

    ★★★★★ 子网划分、无分类编址 CIDR 特点

    子网划分、无分类编三级 IP 地址 址CIDR特点 划分子网:在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址,不改变 net-id,只将 host-id 再划分。 IP地址 ::= {<网络号>, <子网号>, <主机号>} 32位 优点: 减少了 IP 地址的浪费 使网络的组织更加灵活 更便于维护和管理

    子网掩码 可找出 IP 地址中的子网部分,32 位 某位 = 1:IP地址中的对应位为网络号和子网号 某位 = 0:IP地址中的对应位为主机号 A类地址默认子网掩码:255.0.0.0 B类地址默认子网掩码:255.255.0.0 C类地址默认子网掩码:255.255.255.0

    CIDR 在变长子网掩码 VLSM (Variable Length Subnet Mask)进一步研究出无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

    消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。IP 地址从三级编址(使用子网掩码)又回到了两级编址。

    编码格式: IP地址 ::= {<网络前缀>, <主机号>,/网络前缀的位数} 32位 例:128.14.32.0/20,网络地址 20 位,主机号 12 位 其他形式: 10.0.0.0/10 可简写为 10/10。 网络前缀的后面加一个星号 * 的表示方法,如 00001010 00*,在星号 * 之前是网络前缀,而星号 * 表示 IP 地址中的主机号。

    ★ IP数据报首部片偏移字段的使用

    IP 数据报的格式 :首部和数据两部分组成。 首部的前一部分是固定长度,共 20 字节,后面是可选字段,长度可变。 版本——占 4 位,指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)。 首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节。 区分服务——占 8 位,用来获得更好的服务。一般的情况下都不使用这个字段。 总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。 标识(identification) ——占 16 位,它是一个计数器,用来产生 IP 数据报的标识。 标志(flag) ——占 3 位,最低位是 MF,MF = 1 表示后面“还有分片”。MF = 0 表示最后一个分片。标志字段中间的一位是 DF,只有当 DF = 0 时才允许分片。 片偏移—— 占13 位,指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。 生存时间——占8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。 协议——占8 位,指出此数据报携带的数据使用何种协议。 首部检验和——占16 位,只检验数据报的首部。 源地址和目的地址都各占 4 字节。

    例题: 一数据报的总长度为 3820 字节,其数据部分的长度为 3800 字节(使用固定首部),需要分片为长度不超过 1420 字节的数据报片。 因固定首部长度为 20 字节,因此每个数据报片的数据部分长度不能超过 1400 字节。 于是分为 3 个数据报片,其数据部分的长度分别为 1400、1400 和 1000 字节。 数据报片 1:偏移 = 0 / 8 = 0 数据报片 1:偏移 = 1400 / 8 = 175 数据报片 1:偏移 = 2800 / 8 = 350

    总长标识MFDF片偏移数据报382012345000数据报片1142012345100数据报片214201234510175数据报片310201234500350
    ★★★ ICMP 协议、DHCP 协议、与 IP 协议的关系

    ICMP 装在 IP 数据报中,作为其中的数据部分 ICMP 报文格式 报文的种类:ICMP 差错报告报文、ICMP 询问报文。 ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。 ICMP 差错报告报文:终点不可达 、时间超过、参数问题 、改变路由(重定向)(Redirect)

    应用举例: PING 用来测试两个主机之间的连通性。 PING 使用了 ICMP 回送请求与回送回答报文。 PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。

    DHCP 动态主机配置协议 用于给主机动态地分配 IP 地址,提供了即插即用联网机制,允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。 应用层协议,采用 UDP 传输。

    租用期: DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的,DHCP 用户只能在一段有限的时间内使用职工 IP 地址。

    DHCP 服务器和 DHCP 客户端的交换过程

    DHCP 客户端广播一个 DHCP 发现消息,寻找本网络中的 DHCP 服务器。DHCP 服务器收到消息,并广播一个 DHCP 提供消息,其中包括一个预分配个 DHCP 客户端的 IP 地址。DHCP 客户端收到提供消息,如果接受该 IP 地址,就广播一个 DHCP 请求消息。DHCP 服务器广播 DHCP 确认消息,告知其他主机,我正式把一个 IP 地址分配给新来的客户机。
    ★★★ 内部网关协议 IGP:RIP,OSPF原理特点

    路由信息协议 RIP (Routing Information Protocol) 内部网关协议 IGP 中最先得到广泛使用的协议。 RIP 是分布式的、基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。 RIP 允许一条路径最多只能包含 15 个路由器,否则不可达。 RIP 不能在两个网络之间同时使用多条路由。 UDP 传送,是应用层协议

    特点:

    仅和相邻路由器交换信息。交换的信息是当前本路由器所知道的全部信息,即自己的路由表。按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。好消息传播得快,坏消息传播得慢。即当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器。

    优点:

    实现简单,开销较小。 缺点:RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。“坏消息传播得慢”,使更新过程的收敛时间过长。

    RIP2 报文由首部和路由部分组成。 一个 RIP 报文最多可包括 25 个路由,因而 RIP 报文的最大长度是 4 + 20 * 25 = 504 字节。如超过,必须再用一个 RIP 报文来传送。

    开放最短路径优先 OSPF (Open Shortest Path First) 为克服 RIP 的缺点 使用层次结构的区域划分。 在上层的区域叫作主干区域 (backbone area)。 主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。 不用 UDP 而是直接用 IP 数据报传送。

    特点:

    向本自治系统中的所有路由器发送消息,使用洪泛法。发送的消息就是与本路由器相邻的所有路由器的链路状态,但只是路由器所知道的部分信息。只有在链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

    分组类型:

    问候(Hello)分组。数据库描述(Database Description)分组。链路状态请求(Link State Request)分组。链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。链路状态确认(Link State Acknowledgment)分组。
    ★★★ 外部网关协议 EGP:BGP

    BGP 是不同自治系统的路由器之间交换路由信息的协议。 即到达某个网络所要经过的一系列 AS。

    因特网的规模太大,使得自治系统之间路由选择非常困难。 对应自治系统之前的路由选择,要寻找最佳的路由很不现实。 自治系统之间的路由选择必须考虑有关策略。

    特点:

    结点数量级是自治系统数的量级,比自治系统(AS)中的网络数少很多。每一个 自治系统中 BGP 发言人(或边界路由器)的数量很少,是自治系统之间的路由选择不过分复杂。支持 CIDR。

    四种报文:

    打开 (OPEN) 报文,用来与相邻的另一个BGP发言人建立关系。更新 (UPDATE) 报文,用来发送某一路由的信息,以及列出要撤消的多条路由。保活 (KEEPALIVE) 报文,用来确认打开报文和周期性地证实邻站关系。通知 (NOTIFICATION) 报文,用来发送检测到的差错。
    ★★ 路由器的结构、组成、功能

    路由器是互联网中的关键设备。 路由器的主要作用是: 连通不同的网络。 选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。 路由选择部分 控制部分,其核心构件是路由选择处理机。 路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。

    分组转发部分 交换结构 (switching fabric):又称为交换组织,其作用是根据转发表 (forwarding table) 对分组进行处理。 一组输入端口(硬件) 一组输出端口(硬件)

    “转发”和“路由选择”的区别 “转发”(forwarding) 就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。 “路由选择”(routing) 则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。

    分组的处理 路由器的输入端口里面装有物理层、数据链路层和网络层的处理模块。 数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。 输入端口中的查找和转发功能在路由器的交换功能中是最重要的。

    分组丢弃 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

    常用交换方法: 通过存储器 通过总线 通过纵横交换结构

    IPv6

    特点:

    更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。扩展的地址层次结构。灵活的首部格式。 IPv6 定义了许多可选的扩展首部。改进的选项。 IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中。允许协议继续扩充。支持即插即用(即自动配置)。因此 IPv6 不需要使用 DHCP。支持资源的预分配。 IPv6 支持实时视像等要求,保证一定的带宽和时延的应用。IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。

    组成 基本首部 (base header),固定的 40 字节。 有效载荷 (payload)。有效载荷也称为净负荷。 版本—— 4 位。它指明了协议的版本,对 IPv6 该字段总是 6。 通信量类—— 8 位。这是为了区分不同的 IPv6 数据报的类别或优先级。 流标号—— 20 位。 有效载荷长度—— 16 位。它指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。 下一个首部—— 8 位。它相当于 IPv4 的协议字段或可选字段。 跳数限制(hop limit)—— 8 位。源站在数据报发出时即设定跳数限制。当跳数限制的值为零时,就要将此数据报丢弃。 源地址—— 128 位。是数据报的发送站的 IP 地址。 目的地址—— 128 位。是数据报的接收站的 IP 地址。

    目的地址基本类型: 单播 (unicast):传统的点对点通信。 多播 (multicast):一点对多点的通信。 任播 (anycast):这是 IPv6 增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。

    两种向 IPv6 过渡的策略: 使用双协议栈 使用隧道技术

    零压缩,即一连串连续的零可以为一对冒号所取代。 例:FF05:0:0:0:0:0:0:B3 可压缩为:FF05::B3 注:在任一地址中只能使用一次零压缩。

    ★★ IP 多播及 IGMP 协议

    IP 多播(组播) 目的:更好的支持一对多通信,即一个源点发送到许多个终点。

    注:

    多播地址只能用于目的地址,不能用于源地址。多播数据包“尽最大努力交付”,不提供不可靠交付。每一个D类地址标志一个多播组,但并非所有 D 类地址都可以作为多播地址。

    协议: 网际组管理协议 IGMP (Internet Group Management Protocol) 多播路由选择协议。

    IGMP 让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。

    多播地址与 MAC 地址换算 先将 IP 地址换算成二进制,保留后23位,24位取零(规定),转换为 16 进制后加上固定的首部。 能映射成相同的 MAC 地址的不同 IP 地址出现在同一个网络里的概率很小。

    Processed: 0.024, SQL: 9