计算机网络-网络层

news2025/1/14 0:57:38

计算机网络-网络层

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

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.coloradmin.cn/o/1331972.html

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

相关文章

PHP函数定义和分类

函数的含义和定义格式 在PHP中,允许程序员将常用的流程或者变量等组件组织成一个固定的格式实现特定功能,也就是说函数是具有特定功能特定格式的代码段。 函数的定义格式如下: function 函数名(参数1,参数2,参数n) {…

vue前端上传图片到阿里云OSS,超详细上传图片与视频教程

vue前端直传图片与视频到阿里云OSS 1. 简介与日常使用2. 为什么要这么干?是因为我司后端不行吗???(确实!)3. vue前端直传的操作4. 如何上传到阿里OSS指定文件夹呢? 1. 简介与日常使用 阿里云…

单片机第三季-第七课:STM32中断体系

目录 1,NVIC 2,中断和事件的区别 3,优先级的概念 4,如何实际编程使用外部中断 5,STM32开发板通过按键控制LED 5.1,打开相应GPIO模块时钟 5.2,NVIC设置 5.3,外部中断线和配套…

【经典LeetCode算法题目专栏分类】【第9期】深度优先搜索DFS与并查集:括号生成、岛屿问题、扫雷游戏

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推荐--…

BigQuery Clustered Table 简介 - 聚簇表

Clustered Table的定义 聚簇可以提高某些类型的查询(例如,使用过滤条件子句的查询和聚合数据的查询)的性能。当通过查询作业或加载作业将数据写入聚簇表时,BigQuery 会使用聚簇列中的值对这些数据进行排序。这些值用于将数据整理…

【Linux】进程管理

ps:报告当前进程快照。top:显示任务。kill:给一个进程发送信号。shutdown:关机或重启系统。 一个程序可以发动另一个程序被表述为一个父进程可以产生一个子进程,内核维护每个进程的信息,以此来保持事情有序…

小白也能搞定的Python选择排序

更多Python学习内容:ipengtao.com 大家好,我是彭涛,今天为大家分享 小白也能搞定的Python选择排序。全文3300字,阅读大约10分钟 选择排序(Selection Sort)是一种简单但有效的排序算法,它通过逐步…

正则表达式与bs4选择器筛选论文数准确率之比较

一、正则爬取论文网首页论文标题的示例 import requests import re from bs4 import BeautifulSoupheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36}def get_html(url):try:res…

Hadoop入门学习笔记——二、在虚拟机里部署HDFS集群

视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记(汇总) 目录 二、在虚拟机里部署HDFS集群2.1. 部署node1虚拟机2.2. 部…

Vue如何请求接口——axios请求

1、安装axios 在cmd或powershell打开文件后,输入下面的命令 npm install axios 可在项目框架中的package.json中查看是否: 二、引用axios import axios from axios 在需要使用的页面中引用 三、get方式使用 get请求使用params传参,本文只列举常用参数…

基于 Sentry 的前端监控系统搭建(Linux)

一、前言 随着技术这几年的发展与沉淀,线上数据指标监控也变得尤为重要,研发人员和运营人员需要对线上的产品指标有所感知,同时风险也需要及时暴露,很多公司开始自建监控系统,但对于一些定制化要求不是特别高的团队&a…

LV.13 D6 Linux内核安装及交叉编译 学习笔记

一、tftp加载Linux内核及rootfs 1.1 uboot内核启动命令 bootm 启动指定内存地址上的Linux内核并为内核传递参数 bootm kernel-addr ramdisk-addr dtb-addr 注: kernel-addr: 内核的下载地址 ramdisk-addr: 根文件系统的下载地址 …

蓝牙物联网室内定位系统解决方案

目前国内外室内定位技术较多,常见的有无线局域网(Wireless Fidelity,WiFi)、射频识别(Radio FrequencyIdentification,RFID)、蓝牙低功耗(Bletooth Low EnergyBLE)、超宽带(Ultra Wide BandUWB)技术等。近几年智能设备的迅速发展和蓝牙设备的生产制造成本越来越低&a…

单元测试(超详细整理)

前言 为什么我们需要测试? 让产品可以快速迭代,同时还能保持高质量 对于一些相对稳定的系统级别页面,自动化测试在提高测试的效率的方面起到非常重要的作用。前端的自动化测试主要包括:浏览器测试和单元测试。Vue官方脚手架自带…

Unity中Shader观察空间推导(在Shader中实现)

文章目录 前言一、观察空间矩阵推导1、求观察空间基向量2、求观察空间的基向量在世界空间中的矩阵 的 逆矩阵2、求平移变换矩阵3、相乘得出 观察空间转化矩阵4、得到顶点的世界空间坐标,然后转化到观察空间5、把观察空间坐标转化为齐次裁剪坐标输出到屏幕 二、最终效…

Python入门学习篇(五)——列表字典

1 列表 1.1 定义 ①有序可重复的元素集合 ②可以存放不同类型的数据 ③个人理解:类似于java中的数组1.2 相关方法 1.2.1 获取列表长度 a 语法 len(列表名)b 示例代码 list2 [1, 2, "hello", 4] print(len(list2))c 运行结果 1.2.2 获取列表值 a 语法 列表名…

STM32实现三个小灯亮

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_P…

深度学习中的池化

1 深度学习池化概述 1.1 什么是池化 池化层是卷积神经网络中常用的一个组件,池化层经常用在卷积层后边,通过池化来降低卷积层输出的特征向量,避免出现过拟合的情况。池化的基本思想就是对不同位置的特征进行聚合统计。池化层主要是模仿人的…

Openwrt AP 发射 WiFi 信号

问题 想一次把 OpenWrt 路由器 wifi 问题给解决,完全取代路由器。 使用 倍控的 N5105 设备,有 mPCIe 接口,使用了 intel AX200 无线网卡,支持 2.4G 与 5G。 设置步骤 OpenWrt 镜像 第一次使用的镜像不支持 wifi,在…

Docker知识总结

Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用应用的安装 掌握docker迁移与备份相关命令 能够运用Dockerfile编写创建容器的脚本 能够…