【计算机网络】4网络层①
这篇笔记讲IPv4和IPv6。
为了解决“IP地址耗尽”问题,有三种措施:
①CIDR(延长IPv4使用寿命)
②NAT(延长IPv4使用寿命)
③IPv6(从根本上解决IP地址耗尽问题)
IPv6 在考研中考查频率较低,但需掌握基础概念以防冷门考点,重点结合数据报格式和与 IPv4 的对比记忆。
2.IPv4🦊
IP协议(Internet Protocol,网际协议)是互联网的核心!
IP协议定义了一个非常重要的数据结构——IP数据报,也就是IP分组。
ARP协议用于查询同一网络中的<主机IP地址,MAC地址>之间的映射关系。
ICMP协议用于网络层实体之间相互通知“异常事件”。
IGMP协议用于实现IP组播。
2.1.IPv4分组
先探讨IP协议当中定义的最重要的数据结构——IP分组。
🦉第一行:如何计算数据部分占多少字节。
🦉第二行:如何分片
2.2.IPv4地址
维度 | IP 地址 | MAC 地址 |
---|---|---|
性质 | 逻辑地址(软件层面) | 物理地址(硬件层面) |
作用范围 | 跨网络通信(如互联网) | 局域网内直接通信 |
协议层 | 网络层(OSI 第三层) | 数据链路层(OSI 第二层) |
格式 | IPv4:由 32 位二进制数组成,通常以点分十进制表示(如 IPv6:由 128 位二进制数组成,以十六进制表示(如 | 由 12 位十六进制数组成,通常以冒号或连字符分隔(如 00:1A:2B:3C:4D:5E 或 00-1A-2B-3C-4D-5E )。 |
打比方 | 像 “城市 + 街道 + 门牌号”(逻辑定位) 作用:告诉你 “快递要送到哪个城市的哪个区域”,是一种逻辑上的位置标识,用于跨区域(跨网络)寻址。 特点:①可变动,比如你搬家到另一个城市,收件地址(IP 地址)就会变化,但你本人(设备)还是同一个。②分层结构:类似 “中国上海市黄浦区南京东路 100 号”,IP 地址也有 “网络部分 + 主机部分” 的分层结构(如 场景:你用手机访问抖音时,手机的 IP 地址告诉抖音服务器 “我在某个城市的某个网络里”,服务器通过 IP 地址找到你所在的网络区域。 | 像 “身份证号码”(物理唯一标识) 作用:告诉你 “快递最终要交给哪个具体的人”,是设备网卡的物理唯一标识,用于局域网内精准识别设备。 特点:①终身固定:就像身份证号伴随你一生,MAC 地址在设备出厂时就刻在网卡芯片里,理论上不会改变(除非人为修改)。②无逻辑结构:MAC 地址(如 场景:你家路由器收到一个快递(数据帧),需要发给你手机时,会先看快递单上的 MAC 地址(手机网卡的物理地址),直接把数据 “递” 给对应的手机,不会搞错给隔壁邻居的电脑。 |
假设你从北京寄快递到上海的朋友家:
跨城市运输(跨网络通信):
你在快递单上写清楚IP 地址:上海市浦东新区 XX 路 XX 号(逻辑位置)。
快递公司根据这个地址,通过公路、铁路等运输网络(路由器),把快递从北京分拣到上海的某个快递站点(目标网络)。
最后一公里配送(局域网内通信):
快递站点的工作人员需要找到具体收件人,这时查看快递单上的MAC 地址:张三(身份证号 123456...)。
通过身份证号(MAC 地址)精准定位到张三本人,把快递交到他手里(数据帧通过 MAC 地址直达设备)。
练习图
2.2.1.最初的方案(1981)
在这个方案中,一台主机需要配置:IP地址,默认网关
只有网络号相同的两个IP地址才归属于同一个网络。
2.2.1.1.地址分类
时代背景:IPv4协议是1981年发明的,当时只有政府、学校、军队等大机构会使用互联网。完全没有预料到互联网用户会迎来爆炸性增长。因此IPv4协议中,地址位数仅设计了(
亿)。IP地址资源由ICANN(互联网名字和数字分配机构)进行分配(有偿租用)这个机构对有限的IP地址进行了ABCDE这样的五种分类。
可以按照图中‘0’,‘10’,‘110’,‘1110’,‘1111’
2.2.1.2.分组转发
IP数据报又叫IP分组,所以这一系列操作叫分组转发。
假设:某学校申请了一个B类地址段 166.1.x.x,某公司申请了一个C类地址段200.1.1.x。
学校路由器如果收到一个IP分组,就会检查IP分组首部的这个目的地址。从这个目的地址当中拆分出网络号。
然后用目的地址的网络号和自己的这个转发表进行对比,如果一个IP分组的目的网络号的前16个比特能够和166.1.能够匹配上,说明这个IP分组是要发给166.1.这个网络内部的某一个节点的,
那么就会把这个IP分组从B2这个接口转发。
数据报发送到相同网络H1⇒H6
数据报发送到不同网络H1⇒H7
IP数据报内部的原地址和目的地址一直都没变。
IP数据报封装成帧之后,MAC帧的MAC地址在整个转化过程当中是一直在变化的。
数据报发送到互联网上H1⇒Internet的另一个节点
2.2.1.3.一些特殊用途的IP地址
这些特殊地址不能指派给网络中的任何一台主机或路由器“私用”。
(Y表示非全0或非全1的任何数)
网络号 | 主机号 | 作为分组源地址? | 作为分组目的地址? | 代表的含义 |
Y | 00……00 | ❌ | ❌ | 表示整个网络本身 (只能用于路由表、转发表) |
Y | 11……11 | ❌ | ✅ | 向网络号为Y的网络广播IP分组 |
以上两行说明,如果一个网络中,主机号占,那么这个网络中,最多支持
台主机或路由器。
网络号 | 主机号 | 作为分组源地址? | 作为分组目的地址? | 代表的含义 |
00……00 | Y | ✅ | ❌ | 表示本网络中主机号为Y的主机 |
网络号 | 主机号 | 作为分组源地址? | 作为分组目的地址? | 代表的含义 |
00……00 | 00……00 | ✅ | ❌ | 本网络上的本主机 (会在DHCP协议中使用) |
11……11 | 11……11 | ❌ | ✅ | 向本网络(局域网)广播IP分组 |
以上两种IP地址可能会配合使用。
第一行的全0的IP地址通常是用于一个主机刚开始接入网络的时候。
一台主机刚开始接入网络的时候没有IP地址,为了让自己拥有一个IP地址,这台主机需要广播一个DHCP报文来让自己获得一个IP地址,这个报文的源地址就只能先写成00……00,目的地址写成11……11。把这个DHCP报文封装成一个IP数据报,那么这个IP数据报就会被广播到整个网络当中的每一个节点。在一个内部网络当中,通常会有一个专用的这个DHCP服务器(一台特殊的主机),专门负责给各个节点分配IP地址。DHCP服务器收到这个DHCP报文之后,就会给申请IP地址的这个主机返回另一个DHCP报文,包含分配的IP地址。
网络号 | 主机号 | 作为分组源地址? | 作为分组目的地址? | 代表的含义 |
127 | Y | ✅ | ✅ | 环回自检地 |
相关文章:
【计算机网络】4网络层①
这篇笔记讲IPv4和IPv6。 为了解决“IP地址耗尽”问题,有三种措施: ①CIDR(延长IPv4使用寿命) ②NAT(延长IPv4使用寿命) ③IPv6(从根本上解决IP地址耗尽问题) IPv6 在考研中考查频率较低,但需掌握基础概念以防冷门考点,重点结合数据报格式和与 IPv4 的对比记忆。…...

MATLAB中的table数据类型:高效数据管理的利器
MATLAB中的table数据类型:高效数据管理的利器 什么是table数据类型? MATLAB中的table是一种用于存储列向数据的数据类型,它将不同类型的数据组织在一个表格结构中,类似于电子表格或数据库表。自R2013b版本引入以来,t…...

Dropout 在大语言模型中的应用:以 GPT 和 BERT 为例
引言 大型语言模型(LLMs)如 GPT(生成式预训练 Transformer)和 BERT(双向编码器表示 Transformer)通过其强大的语言理解和生成能力,彻底改变了自然语言处理(NLP)领域。然…...
CentOS 7 如何安装libsndfile?
CentOS 7 如何安装libsndfile? # 配置编译环境 yum install -y gcc gcc-c make# 下载libsndfile压缩软件包 wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gztar -xf libsndfile-1.0.25.tar.gz cd libsndfile-1.0.25./configure --prefix/home/libs…...
基于深度学习的语音识别系统设计与实现
以下是为您准备的《基于深度学习的语音识别系统》技术文档,内容包含完整实现方案和详细代码解析: 基于深度学习的语音识别系统设计与实现 目录 语音识别技术概述系统架构设计语音信号预处理深度神经网络模型构建端到端语音识别实现模型训练与优化策略部署与性能优化完整代码…...

gitLab 切换中文模式
点击【头像】--选择settings 选择【language】,选择中文,点击【保存】即可。...

133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能
🎬 效果演示截图(先睹为快) ✨ 功能概览: ✅ 鼠标画任意形状多边形; ✏️ 点击“修改边界”可拖动顶点; 🟥 点击“遮罩”后地图除多边形区域外变红; ✂️ 点击“剪切”后仅显示选…...

4.8.4 利用Spark SQL实现分组排行榜
在本次实战中,我们的目标是利用Spark SQL实现分组排行榜,特别是计算每个学生分数最高的前3个成绩。任务的原始数据由一组学生成绩组成,每个学生可能有多个成绩记录。我们首先将这些数据读入Spark DataFrame,然后按学生姓名分组&am…...
40. 自动化异步测试开发之编写异步业务函数、测试函数和测试类(类写法)
40. 自动化异步测试开发之编写异步业务函数、测试函数和测试类(类写法) 一、类结构设计解析 1.1 基类设计 class Base:async_driver None # 🚗 存储浏览器驱动实例async def get(self, url: str http://secure.smartbearsoftware.com/.…...

【五子棋在线对战】一.前置知识的了解
前置知识的了解 前言1.Websocketpp1.1 使用Websocketpp的原因1.2 Websocket常用接口1.3 Websocket搭建服务器流程 2.JsonCpp2.1 Json 数据对象类的表示2.2序列化和反序列化的接口2.3 演示代码 3.Mysql
历年中国科学技术大学计算机保研上机真题
2025中国科学技术大学计算机保研上机真题 2024中国科学技术大学计算机保研上机真题 2023中国科学技术大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school?classification1 拆分数字 题目描述 给定一个数字,拆分成若干个数字之和ÿ…...
内联盒模型基本概念?——前端面试中的隐形考点剖析
导语 在前端开发中,盒模型是基础知识,但“内联盒模型”往往容易被忽视。它不是“能不能写出页面”的问题,而是“写出的页面为何错位、如何精准定位”的问题。很多面试官会借这个考点,判断候选人对浏览器渲染机制的理解是否深入。…...

HackMyVM-Art
信息搜集 主机发现 ┌──(kali㉿kali)-[~] └─$ nmap -sn 192.168.43.0/24 Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-31 03:00 EDT Nmap scan report for 192.168.43.1 Host is up (0.0047s latency). MAC Address: C6:45:66:05:91:88 (Unknown) Nmap scan rep…...

网页前端开发(基础进阶1)
颜色表示方法3种: 1.关键字: color:green; gray red yellow 2.rgb表示法:红,绿,蓝三原色。rgb(r,g,b),r表示红色,g表示绿…...
const ‘不可变’到底是值不变还是地址不变
const的基础规则 声明时必须初始化 const a; // ❌ 报错:Missing initializer in const declaration const b 10; // ✅ 正确块级作用域(const 的作用域仅限于声明它的代码块) if (true) {const x 100; } console.log(x); // ❌ 报错…...

如何找到一条适合自己企业的发展之路?
一个创业型的企业,开始就需要面向市场,通过自己的服务或产品,帮助用户解决问题,为客户创造价值,通过为客户创造的价值,出创造一定的的现金流,让企业存活下来! 企业的运营过程中&…...

Vue-数据监听
数据监听 基础信息 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>数据监听</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js&qu…...

当前用户的Git全局配置情况:git config --global --list
通过config命令可以查询当前用户的全局配置情况。这些配置项定义了 Git 在全局范围内的行为,包括如何处理大文件、SSL 证书验证以及提交时的用户信息。 git config --global --list http.sslVerifyfalse 这个配置项禁用了 SSL 证书验证。这在与自签名证书的 Git 服…...

AI生态警报:MCP协议风险与应对指南(中)——MCP Server运行时安全
作为连接AI模型与外部工具的“USB-C接口”,MCP协议成为AI生态的核心枢纽,其安全风险已从理论威胁转化为实际攻击目标。 AI生态警报:MCP协议风险与应对指南(上)——架构与供应链风险https://blog.csdn.net/WangsuSecur…...

day15 leetcode-hot100-29(链表8)
19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) 1.暴力法 思路 (1)先获取链表的长度L (2)然后再次遍历链表到L-n的位置,直接让该指针的节点指向下下一个即可。 2.哈希表 思路 ࿰…...
DeepSeek 赋能文化遗产数字化修复:AI 重构千年文明密码
目录 一、引言二、文化遗产数字化修复概述2.1 文化遗产数字化修复的意义2.2 传统数字化修复方法与局限 三、DeepSeek 技术剖析3.1 DeepSeek 技术原理与核心优势3.2 相比其他技术的独特之处 四、DeepSeek 在文化遗产数字化修复中的应用4.1 破损文物的智能修复4.2 文化遗产的虚拟…...

MonitorSDK_性能监控(从Web Vital性能指标、PerformanceObserver API和具体代码实现)
性能监控 性能指标 在实现性能监控前,先了解Web Vitals涉及的常见的性能指标 Web Vitals 是由 Google 推出的网页用户体验衡量指标体系,旨在帮助开发者量化和优化网页在实际用户终端上的性能体验。Web Vitals 强调“以用户为中心”的度量,而不…...
Spring Boot整合JWT实现认证与授权
概述 JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息。在Web应用中,JWT常用于身份验证和信息交换。 依赖配置 首先需要在项目中添加JWT依赖: <!-- JWT依赖…...
在 Linux 系统上连接 GitHub 的方法 (适用2025年)
在2025年,使用 Linux 系统连接 GitHub 的推荐方式是通过 SSH (Secure Shell) 协议进行身份验证。这种方式不仅安全,还能免去每次操作时输入用户名和密码的繁琐。 🛠️ 步骤一:检查并安装 Git 首先,确保你的系统已安装…...
解决matlab两个库文件名冲突的问题
解决matlab两个库文件名冲突的问题 1、删除一个路径的文件(不推荐)2、改变优先级(让不想要的版本shadowed)3、更改文件名 添加一个库,发现总是调用另一个库的同名文件,这是由于路径中优先级问题。 which -…...
PHP 垃圾回收机制解析与应用案例
PHP 垃圾回收机制解析与应用案例 什么是 PHP 垃圾回收机制? PHP 的垃圾回收(Garbage Collection, GC)机制是其内存管理的重要组成部分。它的主要职责是管理内存的分配与释放,尤其是处理复杂的循环引用问题,确保 PHP …...
es6 函数解构
对象的解构赋值是内部机制,先找回同名属性,再赋值给对应的变量,真正被赋值的是后者。 let node {type:Identifier,name:foo,loc:{start:{line:1,column:1},end:{line:1,column:4}},method:function(){console.log(method);},range:[0,3] };…...
offset三大家族
以下是关于 offset 三大家族的知识点总结: 1. offsetParent 定义:offsetParent 是距离目标元素最近的已定位(position 不为 static)的祖先元素。特点: 如果父级元素都没有定位,则 offsetParent 为 body。…...
RSTP介绍加实操
简介 STP协议虽然能够解决环路问题,但是收敛速度慢,影响了用户通信质量。如果STP网络的拓扑结构频繁变化,网络也会频繁失去连通性,从而导致用户通信频繁中断。IEEE于2001年发布的802.1w标准定义了快速生成树协议RSTP(R…...
Elasticsearch父子关系解析
引言 在复杂业务场景中,数据关联查询是搜索与分析的核心需求。以电商订单、文章评论、客户关系等场景为例,传统关系型数据库通过外键实现的多表关联,在分布式搜索场景下面临性能与扩展性挑战。Elasticsearch通过父子关系(Parent-…...