计算机网络-网络层

计算机网络-网络层

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

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…

Android Framework一些问题思考

一,zygote通信为什么用socket,而不是binder? 1,binder通信依赖Servicemanager,socket通信不依赖用户空间进程。zygote与servicemanager, surfaceflinger等都是通过各自init.rc被init创建,时序上无法保证zygote启动时…

使用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 …

【Qt之Quick模块】4. QML语法格式及命名规范

概述 QML(Qt Meta-Object Language)是一种声明式语言,用于设计用户界面。它是由Qt框架提供的一种描述界面组件的语言,可以与C代码结合使用,用于创建跨平台的应用程序。 QML具有以下特点: 声明式&#xff…

混合精度训练(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…

python依赖包管理

在Python项目中,通常会有一个名为 requirements.txt 的文件,其中列出了项目所需的所有依赖包及其版本。 1. 使用freeze 如果你的项目中没有 requirements.txt 文件,你可以通过下面的命令创建一个当前项目所在环境下已安装的包及其版本的 re…

vue中的生命周期和VueComponent实例对象

生命周期 关于VueComponent 生命周期又叫生命周期钩子&#xff0c;生命周期函数 生命周期是&#xff0c;Vue在关键的时刻帮我们调用的一些特殊名字的函数 生命周期的this指向vm或者组件实例对象 mounted会将初始化的Dom挂载到页面上 <template><div class"he…

vue前端开发中,通过配置,实现多个入口文件的方法

由于vue为单页面项目&#xff0c;通过控制组件局部渲染&#xff0c;main.js是整个项目唯一的入口&#xff0c;整个项目都在一个index.html外壳中。 若项目过大&#xff0c;会造成单页面负载过重&#xff1b;同时&#xff0c;多页面利于模块独立部署。 要单独将页面当成一个项…

react 18 Hooks扩展函数式组件的状态管理

React函数式组件 特点 React函数式组件具有以下特点&#xff1a; 简洁&#xff1a;使用函数的方式定义组件&#xff0c;语法简单直观。无状态&#xff1a;函数式组件没有内部状态&#xff08;state&#xff09;&#xff0c;只依赖于传入的props。可复用&#xff1a;函数式组…

influxdb-cluster集群部署

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

基于SSM的大学生兼职平台的设计与实现

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SSM的大学生兼职平台的设计与实现,j…

新疆某职业技术学院,实现对上千台IT设备的集中监控和管理

随着信息化时代的快速发展&#xff0c;IT技术已经成为教育领域不可或缺的一部分。新疆某职业技术学院为了更好地支持教学和科研工作&#xff0c;决定引入监控易管理平台7.0&#xff0c;实现对上千台IT设备的监控管理。通过引入该平台&#xff0c;职业技术学院的IT运维效率和质量…

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

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

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

韵达德邦来说说&#xff0c;翼达、翼韵、翼德、翼邦的小记录 翼达同学&#xff1a;沟通成本好大&#xff01; 翼韵同学&#xff1a;决策成本很大&#xff01; 翼德同学&#xff1a;试错成本更大&#xff01; 翼邦同学&#xff1a;你们加起最大&#xff01; QY成本沟通成本33%决…

Win7如何修改MAC地址

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