【计算机网络】4网络层①

news2025/6/3 19:14:49

这篇笔记讲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 位二进制数组成,通常以点分十进制表示(如 192.168.1.1)。

IPv6:由 128 位二进制数组成,以十六进制表示(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。

由 12 位十六进制数组成,通常以冒号或连字符分隔(如 00:1A:2B:3C:4D:5E 或 00-1A-2B-3C-4D-5E)。
打比方

像 “城市 + 街道 + 门牌号”(逻辑定位)

作用:告诉你 “快递要送到哪个城市的哪个区域”,是一种逻辑上的位置标识,用于跨区域(跨网络)寻址。

特点:①可变动,比如你搬家到另一个城市,收件地址(IP 地址)就会变化,但你本人(设备)还是同一个。②分层结构:类似 “中国上海市黄浦区南京东路 100 号”,IP 地址也有 “网络部分 + 主机部分” 的分层结构(如 192.168.1.100 中,192.168.1 是网络号,100 是主机号)。

场景:你用手机访问抖音时,手机的 IP 地址告诉抖音服务器 “我在某个城市的某个网络里”,服务器通过 IP 地址找到你所在的网络区域。

像 “身份证号码”(物理唯一标识)

作用:告诉你 “快递最终要交给哪个具体的人”,是设备网卡的物理唯一标识,用于局域网内精准识别设备。

特点:①终身固定:就像身份证号伴随你一生,MAC 地址在设备出厂时就刻在网卡芯片里,理论上不会改变(除非人为修改)。②无逻辑结构:MAC 地址(如 00:1A:2B:3C:4D:5E)只是一串无规则的编号,不包含位置信息。

场景:你家路由器收到一个快递(数据帧),需要发给你手机时,会先看快递单上的 MAC 地址(手机网卡的物理地址),直接把数据 “递” 给对应的手机,不会搞错给隔壁邻居的电脑。

假设你从北京寄快递到上海的朋友家:

跨城市运输(跨网络通信)

你在快递单上写清楚IP 地址:上海市浦东新区 XX 路 XX 号(逻辑位置)。

快递公司根据这个地址,通过公路、铁路等运输网络(路由器),把快递从北京分拣到上海的某个快递站点(目标网络)。

最后一公里配送(局域网内通信)

快递站点的工作人员需要找到具体收件人,这时查看快递单上的MAC 地址:张三(身份证号 123456...)。

通过身份证号(MAC 地址)精准定位到张三本人,把快递交到他手里(数据帧通过 MAC 地址直达设备)。


练习图 


2.2.1.最初的方案(1981)

在这个方案中,一台主机需要配置:IP地址,默认网关

只有网络号相同的两个IP地址才归属于同一个网络。

2.2.1.1.地址分类

时代背景:IPv4协议是1981年发明的,当时只有政府、学校、军队等大机构会使用互联网。完全没有预料到互联网用户会迎来爆炸性增长。因此IPv4协议中,地址位数仅设计了32bit(2^{32}\approx 42亿)。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分组

以上两行说明,如果一个网络中,主机号占N bit,那么这个网络中,最多支持2^N-2台主机或路由器。

网络号 主机号 作为分组源地址? 作为分组目的地址? 代表的含义
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 环回自检地

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

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

相关文章

MATLAB中的table数据类型:高效数据管理的利器

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

Dropout 在大语言模型中的应用:以 GPT 和 BERT 为例

引言 大型语言模型&#xff08;LLMs&#xff09;如 GPT&#xff08;生成式预训练 Transformer&#xff09;和 BERT&#xff08;双向编码器表示 Transformer&#xff09;通过其强大的语言理解和生成能力&#xff0c;彻底改变了自然语言处理&#xff08;NLP&#xff09;领域。然…

gitLab 切换中文模式

点击【头像】--选择settings 选择【language】,选择中文&#xff0c;点击【保存】即可。

133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能

&#x1f3ac; 效果演示截图&#xff08;先睹为快&#xff09; ✨ 功能概览&#xff1a; ✅ 鼠标画任意形状多边形&#xff1b; ✏️ 点击“修改边界”可拖动顶点&#xff1b; &#x1f7e5; 点击“遮罩”后地图除多边形区域外变红&#xff1b; ✂️ 点击“剪切”后仅显示选…

4.8.4 利用Spark SQL实现分组排行榜

在本次实战中&#xff0c;我们的目标是利用Spark SQL实现分组排行榜&#xff0c;特别是计算每个学生分数最高的前3个成绩。任务的原始数据由一组学生成绩组成&#xff0c;每个学生可能有多个成绩记录。我们首先将这些数据读入Spark DataFrame&#xff0c;然后按学生姓名分组&am…

【五子棋在线对战】一.前置知识的了解

前置知识的了解 前言1.Websocketpp1.1 使用Websocketpp的原因1.2 Websocket常用接口1.3 Websocket搭建服务器流程 2.JsonCpp2.1 Json 数据对象类的表示2.2序列化和反序列化的接口2.3 演示代码 3.Mysql![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/93305f423b544fc1…

历年中国科学技术大学计算机保研上机真题

2025中国科学技术大学计算机保研上机真题 2024中国科学技术大学计算机保研上机真题 2023中国科学技术大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school?classification1 拆分数字 题目描述 给定一个数字&#xff0c;拆分成若干个数字之和&#xff…

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种&#xff1a; 1.关键字&#xff1a; color&#xff1a;green&#xff1b; gray red yellow 2.rgb表示法&#xff1a;红&#xff0c;绿&#xff0c;蓝三原色。rgb&#xff08;r&#xff0c;g&#xff0c;b&#xff09;&#xff0c;r表示红色&#xff0c;g表示绿…

如何找到一条适合自己企业的发展之路?

一个创业型的企业&#xff0c;开始就需要面向市场&#xff0c;通过自己的服务或产品&#xff0c;帮助用户解决问题&#xff0c;为客户创造价值&#xff0c;通过为客户创造的价值&#xff0c;出创造一定的的现金流&#xff0c;让企业存活下来&#xff01; 企业的运营过程中&…

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 在全局范围内的行为&#xff0c;包括如何处理大文件、SSL 证书验证以及提交时的用户信息。 git config --global --list http.sslVerifyfalse 这个配置项禁用了 SSL 证书验证。这在与自签名证书的 Git 服…

AI生态警报:MCP协议风险与应对指南(中)——MCP Server运行时安全​​

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

day15 leetcode-hot100-29(链表8)

19. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; 1.暴力法 思路 &#xff08;1&#xff09;先获取链表的长度L &#xff08;2&#xff09;然后再次遍历链表到L-n的位置&#xff0c;直接让该指针的节点指向下下一个即可。 2.哈希表 思路 &#xff0…

MonitorSDK_性能监控(从Web Vital性能指标、PerformanceObserver API和具体代码实现)

性能监控 性能指标 在实现性能监控前&#xff0c;先了解Web Vitals涉及的常见的性能指标 Web Vitals 是由 Google 推出的网页用户体验衡量指标体系&#xff0c;旨在帮助开发者量化和优化网页在实际用户终端上的性能体验。Web Vitals 强调“以用户为中心”的度量&#xff0c;而不…

LeeCode 98. 验证二叉搜索树

给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 提示&#xff1a; 树中节…

JVM类加载高阶实战:从双亲委派到弹性架构的设计进化

前言 作为Java开发者&#xff0c;我们都知道JVM的类加载机制遵循"双亲委派"原则。但在实际开发中&#xff0c;特别是在金融支付、插件化架构等场景下&#xff0c;严格遵循这个原则反而会成为系统扩展的桎梏。本文将带你深入理解双亲委派机制的本质&#xff0c;并分享…

threejsPBR材质与纹理贴图

1. PBR材质简介 本节课没有具体的代码&#xff0c;就是给大家科普一下PBR材质&#xff0c;所谓PBR就是&#xff0c;基于物理的渲染(physically-based rendering)。 Three.js提供了两个PBR材质相关的APIMeshStandardMaterial和MeshPhysicalMaterial,MeshPhysicalMaterial是Mes…

深兰科技董事长陈海波受邀出席2025苏商高质量发展(常州)峰会,共话AI驱动产业升级

5月29日&#xff0c;2025苏商高质量发展峰会在常州隆重开幕。本次峰会聚焦新质生产力培育与产业创新转型&#xff0c;汇聚了众多江苏省内知名企业家、专家学者及政府代表。深兰科技创始人、董事长陈海波作为人工智能领域的领军企业代表&#xff0c;受邀出席盛会并参与重要活动环…

Git入门到精通:30分钟掌握核心技巧

目录 一、基础理论片 Git简介 Git安装 Git仓库 Git基本命令用法 仓库别名 二、实操命令篇 远程分支 分支的新建和合并 实操演示 1 本地新建仓库 2 gitee新建仓库 3 建立关系 4 新建分支 5 开发新功能 6 推送新分支 7 合并新分支到主分支 三、可视化工具篇 G…