计算机网络【CN】Ch4 网络层

总结

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 一台主机可以有多个IP地址,但是必须属于多个逻辑网络【不同的网络号】。 |
| 解决IP地址耗尽: |
| IP地址结构: 划分子网:𝐼𝑃地址=<网络号>,<子网号>,<主机号> CIDR:IP地址={<网络前缀>:<主机号>} |
| |
| |
| |
| |
| |
| **默认网关:**最近的路由器相邻端口的地址 |
| **子网掩码:**由/xx决定,即前xx位填1,后32-xx位为0. |

【1】子网划分与子网掩码

|---------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 一个子网定义(X.X.X.X/n) | * 子网掩码为 n 个 1,32-n 个 0 * 包含的IP 地址数 :2^32−n * 主机号全 0 表示**++本网段++** * 主机号全 1 表示**++网段的广播地址++** * |
| 子网划分原则 | * 满足子网定义 * * 原子网 A中出现的 IP 地址不能有剩余 |
| 划分方法 | * 定长子网划分 * * 变长划分 * 将子网划分成任意大小的子网 |
| | |

  • 掌握这个是超级重点

**】**IPV4报文格式【20B】

  • 版本(4bit):IPV4/IPV6
  • 首部长度(4bit):标识首部的长度
    • 单位是4B
    • 最小为:首部固定部分****20B
    • 最大为:60(15*4)B
  • 总长度(16bit):整个数据报(++首部+数据++)的长度
    • 数据报的最大长度:216−1=65535𝐵 ,封装成帧时,需要分片,不能超过下一层的MTU
    • 不是指分片前的数据报长度,而是指分片后的每个分片的首部长度与数据长度的总和。
    • 单位是1B
    • 最小是64B【考虑到CSMA/CD的****最小帧长
    • 最大是1500B【以太网帧的最大传送单元MTU,数据部分有1480B,是规定
  • 标识(16bit):分片时,同一数据报的分片使用同一标识
  • 标志(3bit):
    • 最高位无用
    • 中间位DF(Don't Fragment)
      • DF=1:禁止分片
      • DF=0:允许分片
    • 最低位位MF (More Fragment)
      • MF=1:后面还有分片
      • MF=0:最后一个分片
  • 片偏移(13bit):指超出MTU的分组分片后,某片在原分组中的相对起始位置
    • 单位是8B【除了最后一个分片外,每个分片的长度一定是8B的整数倍
  • 生存时间****TTL(8bit):IP分组在网络中可以通过的路由器的最大值
    • 路由器在转发分组之前,先将TTL减一【经过几个路由器,TTL就减几,经过主机不减】
    • 当接收到的分组的TTL是0时,丢弃该分组
  • 协议(8bit):数据部分(即传输层报文段)所采用的协议
    • TCP:6
    • UPD:17
  • 首部检验和(16bit):仅仅检验**++首部++**信息
  • 源地址、目的地址(各32bit):来源和目标的IP地址
  • 可选字段(0~40B):支持排错、 测量以及安全等措施
  • 填充:保证首部长度为4B的整数倍

相关考点:

  • IPV4****数据报分片

    • 以太网帧的最大传送单元MTU为**++1500B++**,数据部分有1480B
    • 分片之后会变化的字段:
      • 标志FLAG
      • 片偏移
      • 总长度
      • 校验和
  • 分片的过程:

    • 原IP分组的总长度为L,待转发的链路的MTU为M,若𝑳>𝑴且𝑫𝑭=𝟎,则需要分片
    • 除了最后一个分片,其他分片均分为MTU允许的最大分片
    • 最大分片封装的数据应该是8的倍数,因此,一个最大分片可以封装的数据是:
    • 每片的总长度字段:
  • 分片相关例题:假设分片长度不能超过1420B:

**】**ARP:IP->MAC

  • 查找ARP高速缓存:
    • 当主机B要给主机C发送数据包时,会首先在自己的ARP高速缓存表中查找主机C的IP地址所对应的MAC地址。但未找到,因此,主机B需要发送ARP请求报文,来获取主机C的MAC地址
  • 当目的主机在局域网内时:
    • ARP请求报文被封装在MAC帧中发送,目的地址为广播地址
    • 收到ARP请求报文的主机A和主机C会把ARP请求报文交给上层的ARP进程
    • 主机A发现所询问的IP地址不是自己的IP地址,因此不用理会
    • 主机C的发现所询问的IP地址是自己的IP地址,需要进行相应处理
  • 当目标主机不在本网络 时:
    • 目的MAC地址设为默认网关(本网络出口路由器)的MAC地址【获取默认网关的方法仍为ARP协议】
  • 注意:
    • ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用
    • ARP协议的使用是逐段链路进行的
  • ARP表中的IP地址与MAC地址的对应关系记录,是会定期自动删除的,因为IP地址与MAC地址的对
    应关系不是永久性的
  • 总结:

**】**RIP

  • 当到达同一目的网络有多条"距离相等"的路由时,可以进行等价负载均衡。【对于同一个目的网络,路由表将提供了多个送出接口,每个出口对应于一条等价路径。路由器将通过路由表中列出的这些送出接口转发数据包。】
  • RIP存在"坏消息传播得慢"的问题
  • RIP是应用层协议,它使用UDP传输数据(端口520)

**】**SDN

一、数据平面和控制平面

SDN(Software-defined Network,软件定义网络),在学习SDN之前,首先要了解控制平面数据平面,网络层能够被分解为两个相互作用的部分,即数据平面和控制平面,传统上控制平面路由选择协议(如OSPF、BGP)和数据平面转发功能已被实现成一个整体,位于一台路由器中。

  • 数据平面 :即网络层中每台路由器的转发 的功能,该数据平面功能决定到达路由器输入链路之一的数据报如何转发到该路由器的输出链路之一。
  • 控制平面 :作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理。

SDN通过将这些控制平面功能作为一种单独服务,明确地分离数据平面和控制平面,控制平面功能通常置于一台远程"控制器"中。

二、两种重要的网络层功能

  • 转发。当一个分组到达某路由器地一条输出链路时,该路由器必须将该分组移动到适当地输出链路。将分组从一个输入链路接口转移到适当地输出链路接口地路由器本地动作,转发地时间尺度很短(通常为几纳秒),因此通常用硬件来实现。
  • 路由选择 。当分组从发送方流向接收方时,网络层必须决定这些分组所采用地路由或路径。计算这些路径地算法被称为路由选择算法 ,计算出路径之后会生成转发表。确定分组从源到目的地所采取地端到端路径的网络范围处理过程,路由选择发生的时间尺度长得多(通常为几秒),因此通常用软件来实现。

三、实现控制平面的方法

1. 控制平面:传统方法

  • 路由选择算法决定了插入该路由器转发表的内容,路由选择算法运行在每台路由器中,并且在每台路由器中都包含转发和路由选择两种功能。
  • 这是路由选择厂商在其产品中采用的传统方法,使用该方法,每台路由器都有一个与其他路由器通信的路由选择组件。

**】**IPV6

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| IPv6 地址的标识方法 * IPv6 地址长度是 128 位 ,是以每 16 位作为一组 * 每组用冒号 「:」 隔开。 * 如果出现连续的 0 时还可以将这些 0 省略,并用两个冒号 「::」隔开 * 但是,一个 IP 地址中只允许出现一次两个连续的冒号 |
| IPv6 地址的结构 * 单播地址,用于一对一的通信 * 组播地址,用于一对多的通信 * 任播地址,用于通信最近的节点,最近的节点是由路由协议决定 IPv6 的亮点 * IPv6 可自动配置【即插即用】 * IPv6 首部长度采用固定的值 40 字节去掉了校验和 * IPv6安全性提高了 IPv6 相比 IPv4 的首部改进 * 取消了首部校验和字段 * 因为在数据链路层和传输层都会校验,因此 IPv6 直接取消了 IP 的校验 * 取消了分片/重新组装 相关字段 * 分片与重组是耗时的过程,IPv6 不允许在中间路由器进行分片与重组 * 这种操作只能在源与目标主机,这将大大提高了路由器转发的速度 * 取消选项字段 * 选项字段不再是标准 IP 首部的一部分了 * 但它并没有消失 * 而是可能出现在 IPv6 首部中的「下一个首部」指出的位置上 * 删除该选项字段使的 IPv6 的首部成为固定长度的 40 字节 IPv6与IPv4的协议改进 * 与IPv4协议配套使用的网际层协议有:ICMP、IGMP、ARP和RARP。 * 在IPv6中,ICMPv6包括了IPv4中的ARP和IGMP的功能。邻站询问和邻站通告报文代替了原来的ARP协议,而多播听众发现报文替代了原来的IGMP协议。另外,IPv6取消了RARP协议。因此,与IPv6配套使用的网际层协议只有ICMPv6一个协议 |

IP地址的分类

A类最大可用网络数减 2 的原因是:

第一,IP 地址中的全 0 表示"这个(this"。网络号字段全 0 的 IP 地址是个保留地址,意思是"本网络";

第二,网络号为 127(01111111)保留作为本地软件环回测试(loopback test)本主机的进程之间的通信之用。

特殊的IP地址

255.255.255.255:表示整个TCP/IP网络的广播地址【受限广播地址】,由于路由器对广播域的隔离,等效为本网络的广播地址。

私有IP地址

网络地址转换NAT

移动IP

移动IP技术:移动结点(计算机/服务器等)以固定的网络 IP 地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。

|----------------|----------------------------------------------------------------------------|
| 移动结点 | 具有永久IP地址的移动设备。 |
| 归属代理(本地代理) | 一个移动结点的永久 " 居所 " 称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。 |
| 永久地址(归属地址/主地址) | 移动站点在归属网络中的原始地址。 |
| 外部代理(外地代理) | 在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。 |
| 转交地址(辅地址) | 可以是外部代理的地址或动态配置的 -- 个地址。 |

**】**网络层设备

相关推荐
BingoGo2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack5 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习