计算机网络-网络层

计算机网络-网络层

以下笔记整理为哔哩哔哩湖科大教书匠的《计算机网络微课堂》的教学视频。
链接:计算机网络微课堂

1. 网络层概述

1.1 网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输。

1.2 要实现网络层任务,需要解决以下主要问题:

​ 1.2.1 网络层向运输层提供怎样的服务(“可靠传输” 还是 “不可靠传输”)

​ 1.2.2 网络层寻址问题

​ 1.2.3 路由选择问题

1.3 因特网是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈

1.4 由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层

1.5 综上所述,我们通过学习TCP/IP协议栈的网际层来学习网络层的理论知识和实践技术。

2. 网络层提供的两种服务

2.1 虚电路服务与数据报服务的比较:

对比方面虚电路服务数据报服务
思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证
连接的建立必须建立网络层连接不需要建立网络层连接
终点地址仅在连接建立阶段使用每个分组都有终点的完整地址
分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组可走不同的路由
当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序
服务质量保证可以将通信资源提前分配给每一个虚电路,容易实现很难实现

2.2 由于TCP/IP体系结构的因特网的网际层提供的是简单灵活无连接的尽最大努力交付的数据报服务,因此本章主要围绕网际层如何传送IP数据报这个主题进行讨论。

3. IPv4地址概述

3.1 在TCP/IP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚。

3.2 IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32比特的标识符。

3.3 IP地址由因特网名字和数字分配机构ICANN进行分配。

​ 3.3.1 我国用户可向亚太网络信息中心APNIC申请IP地址,需要缴费,一般不接受个人用户申请。

​ 3.3.2 2011年2月3日,互联网号码分配管理局IANA宣布,IPv4地址已经分配完毕。

​ 3.3.3 我国在2014至2015年也逐步停止了向新用户和应用分配IPv4地址。同时全面开展商用部署IPv6。

3.4 IPv4地址的编址方法经历了如下三个历史阶段:

1981年分类编址 --> 1985年划分子网 --> 1993年无分类编址

3.5 32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用。

4. 分类编址的IPv4地址

在这里插入图片描述

弄清楚ABC类地址的IPv4地址结构,知道怎么分配!

5. 划分子网的IPv4地址

5.1 为新增网络申请新的网络号会带来以下弊端:

​ 5.1.1 需要等待时间和花费更多的费用

​ 5.1.2 会增加其他路由器中路由表记录的数量

​ 5.1.3 浪费原有网络号中剩余的大量IP地址

5.2 可以从主机号部分借用一部分比特作为子网号

5.3 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号

​ 5.3.1 子网掩码使用连续的比特1来对应网络号和子网号

​ 5.3.2 子网掩码使用连续的比特0来对应主机号

​ 5.3.3 将划分子网的IPv4地址与其对应的子网掩码进行逻辑与(&)运算就可以得到IPv4地址所在子网的网络地址

5.4 给定一个分类的IP地址和其对应的子网掩码,就可以知道子网划分的细节:

重点掌握:

​ 5.4.1 划分出的子网数量

​ 5.4.2 每个子网可分配的IP地址数量

​ 5.4.3 每个子网的网络地址和广播地址

​ 5.4.4 每个子网可分配的最小和最大的地址

5.5 默认的子网掩码是指在未划分子网的情况下使用的子网掩码:

​ 5.5.1 A类:255.0.0.0

​ 5.5.2 B类:255.255.0.0

​ 5.2.3 C类:255.255.255.0

6. 无分类编址的IPv4地址

6.1 划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。

6.2 为此,因特网工程任务组IETF又提出采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv6工作组负责研究新版本IP以彻底解决IP地址耗尽问题。

6.3 1993年IETF发布了无分类域间路由选择CIDR的RFC文档:

​ 6.3.1 CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念;

​ 6.3.2 CIDR可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增长。

6.4 CIDR使用==“斜线记法”,或称为CIDR记法。即在IPv4地址后面加上’/',在斜线后面写上网络前缀所占的比特数量==。

6.5 CIDR实际上是将网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。

6.6 我们只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的全部细节:

重点掌握:

​ 6.6.1 地址块的最小地址

​ 6.6.2 地址块的最大地址

​ 6.6.3 地址块中的地址数量

​ 6.6.4 地址块聚合某类网络(A类、B类、C类)的数量

​ 6.6.5 地址掩码(也可继续称为子网掩码)

​ 地址掩码就是网络号部分全部取1,主机号部分全部取0

6.7 路由聚合(构造超网)的方法就是找共同前缀

6.7 网络前缀越长,地址块越小,路由越具体

6.8 若路由器查表转发分组时发现有多条路由可选,则选择网络前缀最长的那条,这称为最长前缀匹配,因为这样的路由更具体。

7. IPv4地址的应用规划

定长的子网掩码FLSM变长的子网掩码VLSM
使用同一个子网掩码来划分子网使用不同的子网掩码来划分子网
子网划分方式不灵活:只能划分出2的n次方个子网(n是从主机号部分借用的用来作为子网号的比特数量)子网划分方式灵活:可以按需分配
每个子网所分配的IP地址数量相同,容易造成IP地址浪费每个子网所分配的IP地址数量可以不同,尽可能减少对IP地址的浪费

8. IP数据报的发送和转发过程

8.1 主机发送IP数据报

判断目的主机是否与自己在同一个网络:

判断方法:

① 将源主机的主机地址与源主机的子网掩码做逻辑运算,得到源网络地址

② 将目的主机的主机地址与源主机的子网掩码做逻辑运算,得到目的网络地址

③ 若源网络地址与目的网络地址相同,则表示在同一个网络

若在同一个网络,则属于直接交付;

若不在同一个网络,则属于间接交付,传输给主机所在网络的默认网关(路由器),由默认网关帮忙转发;

8.2 路由器转发IP数据报

​ 8.2.1 检查IP数据报首部是否出错:

​ 若出错,则直接丢弃该IP数据报并通告源主机;

​ 若没有出错,则进行转发;

​ 8.2.2 根据IP数据报的目的地址在路由器表中查找匹配的条目:

​ 查找方法:

​ 若找到匹配的条目,则转发给条目中指示的吓一跳;

​ 若找不到,则丢弃该IP数据报并通告源主机;

9. 路由信息协议RIP的基本工作原理

9.1 路由信息协议RIP是内部网关协议IGP中最先得到广泛使用的协议之一,其相关标准文档为RFC1058 。

9.2 RIP要求自治系统AS内的每一个路由器都有维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量”。

9.3 RIP使用跳数作为度量来衡量到达目的网络的距离

​ 9.3.1 路由到直连网络的距离定义为1

​ 9.3.2 路由器到非直连网络的距离定义为所经过的路由器数加1

​ 9.3.3 允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达。因此,RIP只适用于小型互联网。

9.4 RIP认为好的路由就是距离短的路由,也就是所通过路由器数量最少的路由。

9.5 当达到同一目的网络有多条距离相等的路由时,可以进行等价负载均衡

9.6 RIP包含以下三个要点:

重点:

① 和谁交换信息:仅和相邻路由器交换信息

② 交换什么信息:交换自己的路由表

③ 何时交换信息:周期性交换(例如每30秒)

9.7 RIP的基本工作过程

重点:

① 路由器刚开始工作时,只知道自己到直连网络的距离为1

② 每个路由器仅和相邻路由器周期性地交换并更新路由信息

③ 若干次交换和更新后,每个路由器都知道到达本AS内各网络的最短距离和下一跳地址,称为收敛

9.8 RIP路由条目的更新规则

重点:

① 发现了新的网络,添加

② 相同下一跳,最新消息,更新

③ 不同下一跳,距离更短,更新

④ 不同下一跳,距离更大,不更新

⑤ 不同下一跳,等价负载均衡

9.9 RIP存在“坏消息传播得慢”的问题

9.10 坏消息传播得慢又称为路由环路或距离无穷计数问题,这是距离向量算法的一个固有问题。

9.11 可以采取多种措施减少出现该问题的概率或减小该问题带来的危害

① 限制最大路径距离为15(16表示不可达)

② 当路由表发生变化时就立即发送更新报文(即“触发更新”),而不仅是周期性发送

③ 让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)

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

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

相关文章

【飞凌 OK113i-C 全志T113-i开发板】一些有用的常用的命令测试

一些有用的常用的命令测试 一、系统信息查询 可以查询板子的内核信息、CPU处理器信息、环境变量等 二、CPU频率 从上面的系统信息查询到,这是一颗具有两个ARMv7结构A7内核的处理器,主频最高1.2GHz 可以通过命令查看当前支持的频率以及目前所使用主频 …

Spring IoCDI

文章目录 前言什么是Spring1. 什么是 IoC 容器1.1 什么是容器1.2 什么是 IoC 2. 什么是DI IoC & DI 的使用IoC详解Bean的存储Controller注解如何获取Bean1. 根据Bean的名称获取Bean2. 根据Bean类型获取Bean3. 根据Bean名和Bean类型获取Bean Service注解Repository注解Compo…

使用Docker一键部署Uptime Kuma,并将监控服务映射至公网访问

文章目录 **主要功能**一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务,如何安装Docker详见: 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址访问…

go语言初体验1--使用go install

当安装后go语言后。 尝试编写go程序。 当使用 go install 命令,报错。 go: go install requires a version when current directory is not in a moduleTry go install jvmgo\ch01latest to install the latest version通过查找资料。 用命令: go env …

混合精度训练(MAP)

一、介绍 使用精度低于32位浮点数的数字格式有很多好处。首先,它们需要更少的内存,可以训练和部署更大的神经网络。其次,它们需要更少的内存带宽,这加快了数据传输操作。第三,数学运算在降低精度的情况下运行得更快&a…

YOLOv5算法改进(23)— 更换主干网络GhostNet + 添加CA注意力机制 + 引入GhostConv

前言:Hello大家好,我是小哥谈。本节课就让我们结合论文来对YOLOv5进行组合改进(更换主干网络GhostNet + 添加CA注意力机制 + 引入GhostConv),希望同学们学完本节课可以有所启迪,并且后期可以自行进行YOLOv5算法的改进!🌈 前期回顾: YOLOv5算法改进(1)— 如何去…

C++类与对象(中)第一篇

目录 前言: 类的六个默认成员函数 构造函数 析构函数 拷贝构造函数 拷贝场景一:函数参数类型为类类型对象 拷贝场景二:利用已存在的对象创建新对象 拷贝场景三:函数返回值类型为类类型对象 前言: 编译器编译类…

推箱子地图库1-49关

推箱子地图库1-49关 49关 local WALL1--{"墙","墙 "}4 10287 local DEST2--{"目的地",""}1 4001100 10157 local BOX3--{"箱子","¥"} 2 2000801 local PLAYER4--{"玩家","&&a…

influxdb-cluster集群部署

一.部署环境 * InfluxDB集群节点数:mate服务至少3个节点,节点数越多,集群性能越高。 * 操作系统:支持的操作系统包括Linux、Windows和MacOS。 * CPU:至少2核4线程,主频越高越好。 * 内存:至少8…

【已解决】Redis序列化反序列化不一致 - String类型值多了双引号问题

在项目中使用spring 的RedisTemplate从redis中获取数据的时候,发现字符串的value多了双引号。如下图所示: 产生的原因可以分一下几个方面: 一、采用的序列化对象不同 多服务之间调用时候,序列化服务A(向redis中写数据的)和反序…

【翼韵】数据上传沟通、决策、试错

韵达德邦来说说,翼达、翼韵、翼德、翼邦的小记录 翼达同学:沟通成本好大! 翼韵同学:决策成本很大! 翼德同学:试错成本更大! 翼邦同学:你们加起最大! QY成本沟通成本33%决…

Win7如何修改MAC地址

MAC地址,又叫做物理地址、硬件地址,是用来定义网络设备的位置,一般情况下,MAC地址在网卡中是固定的,但不排除有人手动去修改自己的MAC地址。win7如何修改MAC地址?其实修改MAC地址的方法很简单,可以通过硬件…

K8s出现问题时,如何排查解决!

K8s问题的排查 1. POD启动异常、部分节点无法启动pod2. 审视集群状态3. 追踪事件日志4. 聚焦Pod状态5. 检查网络连通性6. 审视存储配置7. 研究容器日志8. K8S集群网络通信9. 问题:Service 是否通过 DNS 工作?10. 总结1、POD启动异常、部分节点无法启动p…

普通Java项目打包可执行Jar

普通Java项目打包 IDEA配置 在项目配置中选择 Artifacts -> JAR -> From modules with dependencies 选择项目模块,程序主类、依赖引入方式、清单文件位置 确认Jar名称和Jar输出目录 通过 Build -> Build Artifact -> Build 打包Jar文件 Java打包可执…

JavaWeb笔记之SVN

一、版本控制 软件开发过程中 变更的管理; 每天的新内容;需要记录一下; 版本分支;整合到一起; 主要的功能对于文件变更的追踪; 多人协同开发的情况下,更好的管理我们的软件。 大型的项目;一个团队来进行开发; 1: 代码的整合 2: 代…

2023-强网杯-【强网先锋-ez_fmt】

文章目录 ez_fmt libc-2.31.so检查main思路exp 参考链接 ez_fmt libc-2.31.so 检查 没有地址随机化 main 简单粗暴的printf格式化字符串漏洞 思路 泄露地址,覆盖返回地址形成ROP链 printf执行时栈上存在__libc_start_main243的指令的地址,可以泄露…

C++哈希表的实现

C哈希表的实现 一.unordered系列容器的介绍二.哈希介绍1.哈希概念2.哈希函数的常见设计3.哈希冲突4.哈希函数的设计原则 三.解决哈希冲突1.闭散列(开放定址法)1.线性探测1.动图演示2.注意事项3.代码的注意事项4.代码实现 2.开散列(哈希桶,拉链法)1.概念2.动图演示3.增容问题1.拉…

MyBatis 架构分析

文章目录 三层架构一、基础支撑层1.1 类型转换模块1.2 日志模块1.3 反射工具模块1.4 Binding 模块1.5 数据源模块1.6 缓存模块1.6 解析器模块1.7 事务管理模块 二、核心处理层2.1 配置解析2.2 SQL 解析与 scripting 模块。2.3 MyBatis 中的 scripting 模块就是负责动态生成 SQL…

SpringCloud Alibaba(itheima)

SpringCloud Alibaba 第一章 微服务介绍1.1系统架构演变1.1.1单体应用架构1.1.2垂直应用架构1.1.3分布式架构1.1.4 SOA架构1.1.5微服务架构 1.2微服务架构介绍1.2.1微服务架构的常见问题1.2.2微服务架构的常见概念1.2.3微服务架构的常见解决方案 1.3 SpringCloud Alibaba介绍1.…

用23种设计模式打造一个cocos creator的游戏框架----(二十二)原型模式

1、模式标准 模式名称:原型模式 模式分类:创建型 模式意图:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象 结构图: 适用于: 1、当一个系统应该独立于它的产品创建、构成和表示时 2、…