首页 > 其他分享 >计算机网络--网络层串讲

计算机网络--网络层串讲

时间:2024-08-03 13:59:21浏览次数:16  
标签:子网 串讲 -- IP 网络层 地址 网络地址 主机 路由器

笔记整理自学习开源文档:小林coding

为什么要做这个串讲?因为我在学习408网络层的时候,看完机构的视频课感觉没有很好地将知识串联起来,便找到《图解网络》作为补充,且小林的讲解是我认为开源中较为通俗易懂的,因此我在学习过程中将精华部分记录下来加上自己的理解并录制这个串讲视频帮助自己理解知识点并分享给需要的同学,如果想深入学习还需要完整地去阅读小林的文字版,我相信你会有很大的收获的!

首先声明,这个串讲视频只讲重要知识点、底层逻辑,帮你快速过一遍知识点并串起来,不讲深入的细节和习题,具体细节还需要参考王道等视频讲解来学习,适用于已经有一定的基础或者想了解网络层学什么的同学。且我本人也是一个初学者,难免有讲的不好的地方还请见谅~

网络层串讲

网络层本质上是实现主机点对点通信的。

Mac地址和IP的地址的理解:

在这里插入图片描述

源IP地址和目标IP地址在传输过程中是不会变化的(前提:没有使用 NAT 网络),只有源 MAC 地址和目标 MAC 一直在变化

IP地址用点分十进制的标记方式,如192.168.1.3。

那么IP地址有哪些分类?

IP分类

前面是网络号,后面是主机号

在这里插入图片描述

注意,在计算最大主机数的时候需要减去主机号为全0 和全1的地址,因为他们有自己的特殊作用:

  • 主机号全为 1 指定某个网络下的所有主机,用于广播
  • 主机号全为 0 指定某个网络

具体广播的细节这里不讲。

分类的缺点是什么?

我们可以注意到C类的主机号只有8 位,也就是可用主机只有254个,太少了;而B类16位的主机号又太多,不在一个数量级的。举个例子,你是一个公司的老板,公司有300号人,你就不得不去申请B类IP,太过于浪费了,因此我们就引出了CIDR 无分类地址来解决。

无分类地址 CIDR

格式a.b.c.d/x,其中 /x 表示前 x 位属于网络号

比如 192.168.1.2/24,这种地址表示形式就是 CIDR,/24 表示前 24 位是网络号,剩余的 8 位是主机号

这里引出一个新的概念:子网掩码。初学者其实不好理解这个概念,我们后面在做题的时候又会发现子网掩码随处可见。那么到底什么是子网掩码??

其实其目的就是掩盖掉主机号,用于指示IP地址中哪些位是用于标识网络号以及子网号(后面会讲),将子网掩码和 IP 地址按位计算 AND,就可得到网络号(子网地址)。

在这里插入图片描述

很好理解,子网掩码用连续的1将网络号取出,主机号位置0就得到了子网地址。也就是说,告诉你IP,又告诉你子网掩码,你就能求出他的网络号。

这里提到了子网地址就需要引出一个概念:子网****划分

子网划分实际上是将主机号分为两个部分:子网网络地址和子网主机地址。看这个图就很好理解了:

在这里插入图片描述

假设对 C 类地址进行子网划分,网络地址 192.6.13.0,主机号共8位,子网占两位也就是01和10,将后面6位全部置0就能得到子网地址(实际上就是用我刚刚说的子网掩码进行操作的,只不过C类地址的默认子网掩码是255.255.255.0,只需要将后面8位中除了子网号置0即可,简化计算了)。

以上这一段,请好好理解!它把从IP分为网络号和主机号,再到后面引出子网掩码,子网划分等核心概念全部串起来了,408的题目也就是围绕这些核心概念做文章,特别在一块喜欢出计算题,比如让你算子网地址,判断是否在同一子网等,都是一个类型的,好好掌握这个本质就能快速解题。

然后我们继续,刚刚讲了IP的逻辑分类,现在讲讲物理分类,私有IP和公有IP。

顾名思义,公有IP就是全世界都能访问的,私有IP就是个人的或者组织内部的,这个考点了解即可,大概记忆一下私有IP的地址,比如192.168是比较常考的。

在这里插入图片描述

IP的转发分组

  1. IP地址的网络地址这一部分是用于进行路由控制,转发是由路由器实现的,路由控制表中记录着网络地址与下一步应该发送至路由器的地址。
  2. 在发送IP包的时候首先需要确定目的网络,路由器找到目的网络后再把分组在这个网络上交付给目的主机。怎么一步一步地找到目的地址?
  3. 从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择相同位数最多的网络地址,也就是最长匹配。

举个例子:

在这里插入图片描述

  1. 主机 A 要发送一个 IP 包,其源地址是 10.1.1.30 和目标地址是 10.1.2.10,由于没有在主机 A 的路由表找到与目标地址 10.1.2.10 相同的网络地址,于是包被转发到默认路由(路由器 1
  2. 路由器 1 收到 IP 包后,也在路由器 1 的路由表匹配与目标地址相同的网络地址记录,发现匹配到了(其实这里也可以通过子网掩码计算取出前24位网络号进行匹配但是对数字由敏感度的话就没有必要算了很容易能看出),于是就把 IP 数据包转发到了 10.1.0.2 这台路由器 2
  3. 路由器 2 收到后,同样对比自身的路由表,发现匹配到了,于是把 IP 包从路由器 210.1.2.1 这个接口出去,最终经过交换机把 IP 数据包转发到了目标主机

但是现在又有一个问题,每一种数据链路的最大传输单元MTU 都是不相同的,比如以太网的 MTU 是 1500 字节,那么当IP 数据包大小大于 MTU 时, IP 数据包就会被分片。

因此我们又引出了IP 分片与重组

IP 分片与重组

当 IP 数据包大小大于 MTU 时, IP 数据包就会被分片。经过分片之后的 IP 数据报在被重组的时候,只能由目标主机进行,路由器是不会进行重组的。举个例子:

假设发送方发送一个 4000 字节的大数据报,若要传输在以太网链路,则需要把数据报分片成 3 个小数据报进行传输,再交由接收方重组成大数据报。

在这里插入图片描述

这里我们需要会计算偏移值,参考王道课本这两张图:

我们先来看一下IP数据报的格式,可以看到数据报是分为首部和数据部分的。

在这里插入图片描述

从这个题也能看到我们长度为4000B的数据报,分为了首部20B和3980B

在这里插入图片描述

我们抓住一个规律,除了最后一个分片,其余分片中的数据部分都是8B的倍数(分片以8字节为偏移单位需要我们记住)。因此如果我们以字节对数据进行编号的话,第二个偏移量的首个编号为1480,用1480/8=185,就能求出偏移值。

以上便是整个网络层最最核心也是408最常考的内容了,一定要好好理解、吃透!!

当然还有一些细小的知识,比如一堆协议,像比较重要的NAT技术,简单来说就是公司、家庭、教室内的主机对外部通信时,把私有 IP 地址转换成公有 IP 地址。还能把 IP 地址 + 端口号一起进行转换,这样,就用一个全球 IP 地址就可以了,这种转换技术就叫网络地址与端口转换 NAPT。

还有DHCP协议,我们的电脑通常都是通过 DHCP 动态获取 IP 地址,省去了配 IP 信息繁琐的过程。

这里就不对各种协议具体展开了,大家想了解的话可以去王道课本上看看,背一些重点即可,这一块不会考的很深的。大概了解一下每个协议是干什么的,然后通过英文名给他记住即可。

视频跳转链接

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="0CiwiHK8-1722664443474" src="https://player.bilibili.com/player.html?aid=112896453379283"></iframe>

【计算机网络】网络层串讲

标签:子网,串讲,--,IP,网络层,地址,网络地址,主机,路由器
From: https://blog.csdn.net/m0_60496161/article/details/140882941

相关文章

  • springBoot中的观察者模式实现
    pringBoot中的观察者模式实现什么是观察者模式?假设你要打一局酣畅淋漓的游戏,那么你可能需要进行以下操作->1.解锁手机屏幕2.找到你要进行游戏的位置3.单机启动游戏现在我们将启动游戏设计为一个api接口控制器类->三个业务方法均为控制台打印日志访问接口-......
  • 【思科模拟器Packet Tracer的一些操作】你见过这样PacketTracer吗
    你见过这样PacketTracer吗?机柜抓包模拟城域网各位网工朋友应该都用过思科模拟器吧PacketTracer是思科系统开发的一款网络模拟器,用于模拟计算机网络中的设备和网络环境。它可以帮助网络工程师或学生在没有真实设备的情况下学习和实验各种网络配置和协议。Pac......
  • 【Linux或者Windows中相关网络工具使用介绍】nc、ping、ifconfig、ipaddr、tcpdump、l
    在实际的网络排错、运维诊断、或者是开发过程中,熟练运用Linux或者Windows当中的有关网络工具,能够助力我们更迅速更精准地定位故障。因而,今天给大家分享几款必掌握的网络利器。1.nc命令在Linux中,nc命令即netcat命令,它被称为网络工具中的“瑞士军刀”,是一个功能强大的......
  • 单个或两个及以上java安装与环境变量配置
    目录java下载地址:1.安装java1.1安装程序1.2选择安装路径1.3等待安装2.首先,进入环境变量2.1找到设置(第一个win11,第二个win10)2.2进入到系统高级系统设置(第一个win11,第二个win10)2.3点击环境变量2.4新建与添加2.5添加CLASSPATH2.6添加JAVA_HOME2.7找到path,编辑......
  • 算法 —— 递推
    目录递推数楼梯斐波那契数列一维数组递推P1002过河卒二维数组递推 P1044 栈卡特兰数递推将一个很大的任务分解成规模小一些的子任务,子任务分成更小的子任务,直到遇到初始条件,最后整理归纳解决大任务的思想就是递推与递归思想,不过这两者还是有一些区别:递归:从上到......
  • Hadoop HA高可用集群基本配置
    环境三台虚拟机q1,q2,q3,仅供学习使用版本hadoop-2.6.0-cdh5.14.2一、core-site.xml示例:pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。<configuration> <property> <name>hadoop.http.staticuser.user</name> <value>root</value> </prop......
  • 开源模型应用落地-LangChain实用小技巧-ChatPromptTemplate的各种花样(三)
    一、前言  在当今的自然语言处理领域,LangChain框架因其强大的功能和灵活性而备受关注。掌握一些实用的小技巧,能够让您在使用LangChain框架时更加得心应手,从而更高效地开发出优质的自然语言处理应用。二、术语2.1.LangChain  是一个全方位的、基于大语言模型这......
  • 深入探究 Vue.js 高级技术:从响应式系统到高效组件设计的实战指南
    这里有一些实用的Vue.js高级示例,涵盖了前面提到的高级知识点,适合在实际项目中应用:1.自定义响应式数据使用Vue3的customRefAPI创建一个自定义的响应式输入框,带有防抖功能。import{customRef}from'vue';functionuseDebouncedRef(value,delay=300){......
  • 【Python】数据类型之字符串
    本篇文章将继续讲解字符串其他功能:1、求字符串长度功能:len(str)  ,该功能是求字符串str的长度。代码演示:2、通过索引获取字符串的字符。功能:str[a]  str为字符串,a为整型。该功能是获取字符串str索引为a处的字符。注意:字符串的索引是从0开始的。代码演示:注意......
  • 【Python】python基础
    本篇文章将讲解以下知识点:(1)循环语句(2)字符串格式化(3)运算符一:循环语句循环语句有两种:while   for本篇文章只讲解while循环格式:while 条件:  代码(只有条件为真的时候,此代码才会被执行,此处的代码可以是多行代码)(1)循环语句基本使用示例1:此处代码执行过程:1<3......