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

news2024/12/23 3:19:54

总结

一台主机可以有多个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就减几,经过主机不减】
    • 当接收到的分组的TTL0时,丢弃该分组
  • 协议(8bit):数据部分(即传输层报文段)所采用的协议
    • TCP:6
    • UPD:17
  • 首部检验和(16bit):仅仅检验首部信息
  • 源地址、目的地址(各32bit):来源和目标的IP地址
  • 可选字段(0~40B):支持排错、 测量以及安全等措施
  • 填充:保证首部长度为4B的整数倍

相关考点:

  • IPV4数据报分片
    • 以太网帧的最大传送单元MTU1500B,数据部分有1480B
    • 分片之后会变化的字段:
      • 标志FLAG
      • 片偏移
      • 总长度
      • 校验和
  • 分片的过程:
    • IP分组的总长度为L,待转发的链路的MTUM,若𝑳>𝑴且𝑫𝑭=𝟎,则需要分片
    • 除了最后一个分片,其他分片均分为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 地址是个保留地址,意思是“本网络”;

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

特殊的IP地址

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

私有IP地址

网络地址转换NAT

 移动IP

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

移动结点

具有永久IP地址的移动设备。

归属代理(本地代理)

一个移动结点的永久居所称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。

永久地址(归属地址/主地址)

移动站点在归属网络中的原始地址。

外部代理(外地代理)

外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。

转交地址(辅地址)

可以是外部代理的地址或动态配置的--个地址。

网络层设备

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1616241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:特殊成员函数

构造函数、析构函数和拷贝构造函数是C类中的三种特殊成员函数&#xff0c;它们分别用于对象的初始化、清理和拷贝操作。 1.构造函数&#xff08;Constructor&#xff09;&#xff1a;构造函数在对象创建时自动调用&#xff0c;用于初始化对象的成员变量。它的名称与类名相同&a…

Vs Code npm install 报错解决方法

用的人家的前端框架发现是封装过的&#xff0c;要修改人家前端的话还得把前端源码放在Vs Code 上运行&#xff0c;后端放在IDEA上运行&#xff0c;然后前后端并行开发&#xff0c;在配置前端环境时遇到&#xff1a; npm install 这个的原因是我把node下载到D盘了权限不够框框爆…

Linux:服务器硬件及RAID配置

Linux&#xff1a;服务器硬件及RAID配置 服务器 服务器是什么 服务器的英文名称为“ Server”&#xff0c;是指在网络上提供各种服务的高性能计算机。作为网络的节点&#xff0c;存储、处理网络上80&#xff05;的数据、信息&#xff0c;因此也被称为网络的灵魂。 服务器和…

数据挖掘实验(Apriori,fpgrowth)

Apriori&#xff1a;这里做了个小优化&#xff0c;比如abcde和adcef自连接出的新项集abcdef&#xff0c;可以用abcde的位置和f的位置取交集&#xff0c;这样第n项集的计算可以用n-1项集的信息和数字本身的位置信息计算出来&#xff0c;只需要保存第n-1项集的位置信息就可以提速…

怎么通过Javascript脚本实现远程控制一路开关

怎么通过Javascript脚本实现远程控制一路开关呢&#xff1f; 本文描述了使用Javascript脚本调用HTTP接口&#xff0c;实现控制一路开关。一路开关可控制一路照明、排风扇等电器。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称1智能WiFi…

信息系统项目管理师0062:需求分析(5信息系统工程—5.1软件工程—5.1.2需求分析)

点击查看专栏目录 文章目录 5.1.2需求分析1.需求的层次2.需求过程3.UML4.面向对象分析记忆要点总结5.1.2需求分析 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是…

入坑 Node.js 1

原文&#xff1a;https://blog.iyatt.com/?p14717 前言 前面刚刚对 Spring Boot 有了个概念&#xff0c;再来学学 Node.js&#xff0c;顺便当学 JavaScript&#xff0c;为后面入前端做准备。 环境 Node.js 20.12.2 官方 API 文档&#xff1a;https://nodejs.org/docs/lat…

iOS OC项目中引入SwiftUI文件

iOS OC项目中引入SwiftUI文件 1、创建SwiftUI文件 2、第一次创建时&#xff0c;Xcode会提示桥接&#xff0c;选择 Creat Bridging Header即可。 3、创建swift管理类 /**在UIKit中使用SwiftUI&#xff0c;需要使用UIHostingController对SwiftUI进行包装&#xff0c;返回的是U…

小游戏:贪吃蛇

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;贪吃蛇 &#x1f337;追光的人&#xff0c;终会万丈光芒 目录 &#x1f3dd;1.头文件&#xff1a; &#x1f3dd;2.实现文件&#xff1a; &#x1f3dd;3.测试文件 &#xff1a; 前言&#…

STM32自动光控窗帘程序+Proteus仿真图 H桥L298驱动电机

目录 1、前言 2、仿真图 3、源程序 资料下载地址&#xff1a;STM32自动光控窗帘程序Proteus仿真图 H桥L298驱动电机 1、前言 基于STM32F103设计的智能光控窗帘&#xff0c;包含STM32芯片、光敏电阻、LCD1602显示屏、电机驱动控制模块等。 备注&#xff1a;通过ARM内部的…

网络安全数字孪生:一种新颖的汽车软件解决方案

摘要 随着汽车行业转变为数据驱动的业务&#xff0c;软件在车辆的开发和维护中发挥了核心作用。随着软件数量的增加&#xff0c;相应的网络安全风险、责任和监管也随之增加&#xff0c;传统方法变得不再适用于这类任务。相应的结果是整车厂和供应商都在努力应对汽车软件日益增加…

CAS和synchronized原理

synchronized与CAS Synchronized 原理加锁工作过程一些优化 CAS实现原子类 小结 Synchronized 原理 synchronized 既可以是乐观锁, 也可以是悲观锁.synchronized 既可以是轻量级锁, 也可以是重量级锁.synchronized 重量级锁是由系统的互斥锁实现的; 轻量级锁是基于自旋锁实现的…

Windows 安全中心:页面不可用 你的 IT 管理员已限制对此应用的某些区域的访问,并且你尝试访问的项目不可用。有关详细信息,请与 IT 支持人员联系。

问题 1&#xff1a;Windows 安全中心提示&#xff1a;【页面不可用 你的 IT 管理员已限制对此应用的某些区域的访问&#xff0c;并且你尝试访问的项目不可用。有关详细信息&#xff0c;请与 IT 支持人员联系。】 修复 Microsoft.SecHealthUI 方法 1&#xff1a;命令自动重装安…

linq select 和selectMany的区别

Select 和 SelectMany 都是 LINQ 查询方法&#xff0c;但它们之间有一些区别。 Select 方法用于从集合中选择特定的属性或对集合中的元素进行转换&#xff0c;并返回一个新的集合。例如&#xff1a; var numbers new List<int> { 1, 2, 3, 4, 5 }; var squaredNumbers…

sc2024项目consul

1. 什么是consul HashiCorp Consul是一款服务网络解决方案&#xff0c;可让团队管理服务之间以及内部部署和多云环境及运行时的安全网络连接。consul提供服务发现、服务治理、流量管理和对网络基础设施设备的自动更新。(添加链接描述)Consul使用Go语言开发 2. 功能 多数据中…

【PCL】教程global_hypothesis_verification 通过验证模型假设来实现 3D 对象识别与位姿估计...

测试程序1 milk.pcd milk_cartoon_all_small_clorox.pcd 终端输出1&#xff1a; Model total points: 12575; Selected Keypoints: 193 Scene total points: 307200; Selected Keypoints: 7739 [pcl::SHOTEstimation::computeFeature] The local reference frame is not valid!…

windows驱动开发-内存概述

“90%的程序问题都是由内存引起的&#xff0c;剩下的10%是使用内存引起的&#xff01;”这是一句非常经典的论证&#xff0c;实际上&#xff0c;在程序开发中&#xff0c;内存问题就是最大的问题&#xff0c;没有之一。 现代的计算机体系中&#xff0c;内存承载了太多的功能&a…

解决“该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的”的方法

一、问题 安装插件出现时“该扩展程序未列在 Chrome 网上应用店中&#xff0c;并可能是在您不知情的情况下添加的” 二、解决方法 1、把需要安装的第三方插件&#xff0c;后缀.crx 改成 .rar&#xff0c;然后解压&#xff0c;得到一个文件夹 2、再打开chrome://extensions/谷歌…

Visual Studio Code使用

目录 1.python的调试 2.c的运行 方法1&#xff1a; 方法2&#xff1a; 3.c的调试 3.1调试方法一&#xff1a;先生成执行文件&#xff0c;再调试 3.2调试方法二&#xff1a;同时生成执行文件&#xff0c;调试 4.tasks.json 与launch.json文件的参考 4.1C生成执行文件tas…

linux之进程通信

目录 一、进程通信介绍 1.目的 2.发展 3.进程通信是什么&#xff0c;怎么通信&#xff1f; 二、管道 1.介绍 2.匿名管道 1.单向通信管道原理 2.代码实现 3.管道特征 4.管道的四种情况 5.管道的应用场景 使用管道实现一个简易版本的进程池 3.命名管道 1.思考 2.…