IPv 4
IP协议
网络层主要由IP(网际协议)和ICMP(控制报文协议)构成,对应OSI中的网络层,网络层以实现逻辑层面点对点通信为目的。目前应用最广泛的IP协议为IPv4
基本概念给出
主机:配有IP地址但不具有路由控制能力的设备(广义上有IP就可以称为主机)
路由器:配有IP地址且具有路由控制能力,也叫做网关
节点:主机和路由器的统称
网络层与数据链路层
在已经有MAC地址的情况下为什么还要给出IP地址?原因在于数据包在网络中传输过程中需要经过很多个中间节点,从一个节点到另一个节点的行为称作‘跳’,必须通过mac地址来判断下一跳的节点,而IP地址为跳转提供了一个全局方向。
总的来说,源IP地址和目标IP地址在整个数据包转发的过程中是保持不变的,为数据传输提供一个全局方向,而源mac地址和目标mac地址在数据包转发过程是时刻变化的,为数据传输提供一个局部方向。
IPv4
IP地址
IP地址用于网络层中各个主机能够与其他主机相互通信的目标地址,在一个网段中每个主机的IP地址都是全局唯一的,即以IP地址作为域中唯一标识。
对于设有网卡的主机来说,其至少需要配置一个IP地址;
对于路由器来说,其至少需要配置两个IP地址。
路由控制
路由控制旨在将数据包成功地发送到目标地址,由于网络结构复杂,数据包在传输的过程中需要进行多次跳转动作,甚至是跨网段传输,往什么方向跳转,哪个网段跳转,全靠路由控制,没有路由控制会导致数据包在网络中随意跳转造成数据丢包和网络拥塞。
路由器就是负责路由控制的硬件。
由于数据包在传输的过程中往往会经历多次跳转,因此IP路由也被称为多跳路由,多条路由的特点是路由器在转发数据包时仅告知下一跳地址,下一跳路由器仅告知下下一跳地址,直至到达目标主机。
可以参考原书给出的火车旅游例子来类比多跳路由:
路由控制表
为了将数据包发送给目标主机,路由器内部维护者一张路由控制表,存储其他路由器与IP地址的映射关系,此处的IP地址不是特定的一台主机,而是一个网段,具体之后会讲。
封装数据帧
网络中不同的数据链路实现相异,如果不进行任何封装就直接交给上层(传输层),那么传输层所要做的工作可就太多了,因此网络层需要对数据链路层的数据帧进行封装后向上统一交付。
不同数据链路最大的区别在于其最大传输单位(MTU)的不同,以太网帧最大正文长度为1500字节,当上层传输的数据大于MTU时,就需要网络层对数据进行分片处理,这个过程称为IP分片,将一个大数据包拆分成多个小于MTU的小数据包进行发送;必要的,网络层也需要有将多个小数据包合并为一个大数据包的能力,这个过程称为IP重组
虽然网络层提供了分片和重组的能力来满足不同的数据链路,但是在实际过程应该尽可能的避免传输数据大于MTU,本质原因在于IP属于面向无连接型,即不提供可靠传输,数据包越多意味着丢包的概率也大。
IPv4格式
IPv4地址在计算机内部以32位正整数表示,人所看到的IPv4地址以点分十进制的格式展示(0.0.0.0~255.255.255.255)
IPv4地址由网络(段)标识和主机标识两部分构成,前者用于标识一个网段,后者标识网段中的一个主机
网段和主机位数分配是决定着IP地址的利用率
IPv4分类
以固定位数进行IP分类可以将IPv4地址划分为A\B\C\D四大类(有些书上是ABCDE五大类,不过E类从未被使用)
A类地址首位为0,前8位代表网段,后24位代表主机 0.0.0.0~127.0.0.0
B类地址前2位为10,前16位代表网段,后16位代表主机 128.0.0.1~191.255.0.0
C类地址前3位为110,前24位代表网段,后8位代表主机 192.168.0.0~239.255.255.0
D类地址前4位为1110,32位均代表网段(由于没有主机标识常用于多播) 224.0.0.0~239.255.255.255
每一类IP地址一个网段中能容纳的最大主机数N=2^主机位数-2
减2的原因在于规定每一个网段中主机位为0活255作保留,0为任意地址,255为广播地址
广播地址
广播地址用于在一个数据链路中相互连接的主机之间发送数据包,将目标IP地址主机标识设置为255,(目标mac地址设置为FF:FF:FF:FF:FF:FF)
广播分为直接广播和本地广播
本地广播是一台主机向当前数据链路中的所有节点发送数据包(路由器也会收到,但不会对其进行转发)
直接广播是一台主机向另一个数据链中的所有节点发送数据包
IP多播
多播是对于广播的优化,频繁的广播会造成网络拥堵,可能会产生大量的垃圾数据包(并不是所有的主机都希望收到广播数据的),因此衍生出了多播技术,多播旨在向多个特定主机发送数据包,而非整个数据链路中的主机,也就不存在垃圾数据包的问题。多播适用D类IPv4地址。
多播可以跨数据链路发送。
单播、广播、多播对比图
子网掩码
直接只用定长分类的IP地址会造成极大的IP地址资源浪费,例如B类IP地址的一个网段可以容纳6w多台主机,但这一般不可能,A类IP地址的一个网段所浪费的IP地址更是夸张,因此不得不引入新的手段对原有的4大类IP地址进行细粒度的划分,目前普遍采用子网掩码
子网掩码也是一个32位数,比特位为1代表网段标识,为0代表主机标识,1和0必须是连续的,不可能出现101…这种情况,将子网掩码与IP地址本身进行按位或的结果就是一个新的IP类(按位或之后的结果一定是一个前半部分全1后半部分全0的32位数),有了子网掩码就可以更加灵活的动态调整网络标识长度了。
公网、私网
公网私网的划分也是对IPv4资源不足的一种治标手段
规定给出
10.0.0.0~10.255.255.255(10/8) A类私网
172.16.0.0~172.31.255.255(172.16/12)B类私网
192.168.0.0~195.168.255.255(192.168/16)C类私网
除此之外的所有IPv4称为公网IP,
公网IP是全球唯一的,绝不允许重复,私网IP是在不同网段中可以重复的,现代个人计算机普遍采用私网IP,而路由器和大型服务器采用公网IP,通过NAT技术可以实现私网与公网交互(NAT在后续章节给出解释)
路由控制
上面已经点过路由控制就是路由器通过自身所管理的路由控制表对数据包进行有方向的转发。IP协议始终认为路由控制表是正确的,路由控制表中的数据如何定义由独立的路由协议制作
路由控制表中的数据为网段和下一跳路由器的IP映射,当一个数据包到达路由器时,通过查询路由控制表可以确定下一网段,再将数据包转发给下一网段的路由器即可,直至数据包到达目标主机。如果找不到则会转发给默认路由
默认路由
任何网段都可以匹配的网段所对应的路由器IP称为默认路由,一般标记为default或0.0.0.0/0
主机路由
如果IP地址的32位全部充当网络标识(没有主机标识,IP/32)参与路由,则称为主机路由,使用主机路由可以精确定位,但是会造成路由表膨大,一般不推荐使用。
本地环回
环回地址用于在同一主机上的进程之间模拟网络通信,这个地址表示为127.0.0.1或localhost,这个IP地址不会流向网络。环回地址常用于调试网络程序以判断是否出现网络问题。
路由控制表的聚合
路由控制表不能太太,否则会影响查询效率。通过网络地址长度的动态调整可以对一些网段进行整合,再通过子网掩码可以对整合后的网段进行拆分
具体可参考原著给出的参考图
结合图示可以看到聚合前的路由器C表完全没有必要存放多个下一跳地址是路由器A或B的网段,可以把这些网段整合(减少网络标识比特位),更具体的网段划分交给下一跳路由器处理。
相关文章:

IPv 4
IP协议 网络层主要由IP(网际协议)和ICMP(控制报文协议)构成,对应OSI中的网络层,网络层以实现逻辑层面点对点通信为目的。目前应用最广泛的IP协议为IPv4 基本概念给出 主机:配有IP地址但不具有路…...
SQL 注入漏洞 - 学习手册
0x01:SQL 注入前导知识 0x0101:SQL 注入 —— MySQL 数据库概述 知识速查:SQL 注入前导知识 SQL 注入 —— MySQL 数据库概述 获取数据库名 : select schema_name from information_schema.schemata;获取数据表名 : select table_name from …...

AVLTree 旋转笔记(根据平衡因子插入的公式,贼好理解)
平衡因子 avltree是一棵每个节点的左右子树的高度差不超过1的二叉树搜索树,对于avltree最重要的就是对平衡因子的控制。 对于旋转我们重点要注意的是三个节点,以左旋举例,需要注意的就是parent,subr,subrl。而旋转的方…...

STM32(十八):SPI通信
SPI通信: SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)主机输出从机输入、MISO&…...

Redis持久化机制(RDBAOF详解)
目录 一、Redis持久化介绍二、Redis持久化方式1、RDB持久化(1) 介绍(2) RDB持久化触发机制(3) RDB优点和缺点(4) RDB流程 2、AOF(append only file)持久化(1) 介绍(2) AOF优点和缺点(3) AOF文件重写(4) AOF文件重写流程 三、AOF和RDB持久化注意事项 一、Redis持久化介绍 Redis…...
蛋白质结构中pdbx_strand_id和entity_id相互转化
在蛋白质结构中,entity_id 和 pdbx_strand_id 表示的是不同的概念,涉及到不同层次的信息。 1. entity_id (实体 ID): 定义:entity_id 标识蛋白质结构中的一个“实体”(entity)。一个实体可以是一个多肽链、DNA 链、RNA 链,或者某些小分子(如辅因子、配体等)。特点:每…...

【父子线程传值TransmittableThreadLocal使用踩坑-及相关知识拓展】
文章目录 一.业务背景二.TransmittableThreadLocal是什么?三.问题复现1.定义注解DigitalAngel2.定义切面3.TransmittableThreadLocal相关4.线程池配置信息5.Controller6.Service7.测试结果8.问题分析9 解决办法及代码改造10.最终测试: 四.与 ThreadLocal…...

03 快乐树
快乐树 我们由题可以得出结论:一共有三种情况,但实际中第三中情况不存在。 证明第三中情况不存在: 我敲的代码 public boolean isHappy(int n) {int slown;int fastn;while(true) {int sum0;while(slow!0) {sum(slow%10)*(slow%10);slow/1…...

springboot+react实现移动端相册(上传图片到oss/ 批量删除/ 查看图片详情等功能)
相册页面及功能展示: react前端结构及代码: Java后端结构及代码 数据库结构: photo: user 这是首个利用AI自有知识构建的简易相册系统,项目是react构造前端spring boot构造后端。 前端有四个主要页面࿱…...

Python、R语言Lasso、Ridge岭回归、XGBoost分析Airbnb房屋数据:旅游市场差异、价格预测|数据分享...
全文链接:https://tecdat.cn/?p37839 分析师:Kefan Yu 在大众旅游蓬勃发展的背景下,乡村旅游已成为推动乡村经济、社会和文化发展的关键力量。当前,乡村旅游接待设施主要以招待所、小宾馆和农家乐等形式存在。然而,一…...
Spring Boot驱动的交互式作业管理系统:师生共评功能实现
1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…...

基于SSM的旅游网站【附源码】
基于SSM的旅游网站(源码L文说明文档) 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1 管理员功能介绍 5.1.1 用户管理 5.1.2 …...
Python实现将目标文本批量存入Word,并将文本段落的开头进行缩进处理(11)
前言 本文是该专栏的第11篇,后面会持续分享Python办公自动化干货知识,记得关注。 在用python对目标文本进行批量自动化操作的时候,你可能会遇到这样的需求——“现有大批量的文本内容,需要通过python将其批量存入docx(word)文档中,而且每个段落的开头需要进行缩进处理”…...
el-select 下拉框选项文字过长解决方案
首先给下拉框设置类名,即popper-class属性,并且给el-option增加title属性 <el-selectv-model"item.portrayalItem"v-loadmore"{ method: lazyItemList, item, index }"multiplefilterableremotepopper-class"dropDown-sele…...

C语言基础语法——类型转换
数据有不同的类型,不同类型数据之间进行混合运算时涉及到类型的转换问题。 转换的方法有两种: 自动类型转换(隐式转换):遵循一定的规则,由编译系统自动完成强制类型转换(显示转换)…...

来电无通话界面问题分析
1、问题描述 场测反馈,无法接到电话,被叫失败。 2、Log分析 从Modem log看,空口确实有上报到有相关通话信息 排查AT相关Log,确实有上报AT< EAIC相关命令 查看相关AT指令 /* * EAIC: <call_id>,<number>,<type…...
物理学基础精解【70】
文章目录 加速度平均加速度和瞬时加速度一、定义二、性质三、数学原理与公式四、例子例题例题一例题二 曲线运动中加速度速率(速度大小)与曲线运动加速度方向与曲线运动总结 加速度和角加速度加速度与角加速度的基本定义圆周运动中的关系其他运动类型中的…...

HCIP--以太网交换安全(三)MAC地址漂移防止与检测
MAC地址漂移防止与检测 一、MAC地址漂移防止与检测知识点 1.1MAC地址漂移的概述 MAC地址漂移是指交换机上一个vlan内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。 1.2.MAC地址漂移的防止方法 (1)配置…...

CSS3--美若天仙!?
免责声明:本文仅做分享~ 目录 CSS引入方式 选择器 盒子尺寸和背景色 文字控制属性 单行文字 垂直居中 字体族 font复合属性 文本对齐方式 文本修饰线 color 文字颜色 ----- 复合选择器 伪类选择器 超链接伪类 CSS特性 继承性 层叠性 优先级 Emmet …...

详细版的Jsoncpp的使用,包括在VS环境下配置
目录 准备环境VS 环境下配置编译使用 基础概述Json 数组Json 对象 Jsoncpp 的使用ValueFastWriterReader示例 如果想要 Json 部署在 Linux 上 参考: https://blog.csdn.net/2303_76953932/article/details/142703683?spm1001.2014.3001.5502 C中原生不支持 Json,所…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...