网络层重点协议之IP协议(IPv4)
网络层的作用就是来路由的选择,规划传输的路径,其中网络层的重点协议就是IP协议。

4位版本号
版本号的取值只有4和6
4位首部长度
描述了IP报头有多长,报头中有一个选项部分,是变长的,是可有可无的部分,所以IP报头是变长的。其中单位是4个字节。
8位服务类型(TOS)
实际上只有4位有效,而且这4位中只有一位可以是1,其它都是0,这4位就表示了IP协议的四种工作模式(最小延时,最大吞吐量,最高可靠性,最小成本)。在实际开发中就可以根据需要,来切换IP的模式,达到最优的效果。但是在实际开发中很少这样去设定,因为性能瓶颈往往是业务带来的。
16位总长度(字节数)
描述了一个IP数据包的长度(头+载荷)。这个长度减去前面的IP报头的长度,剩下的就是载荷长度,一个完整的TCP/UDP数据报长度。16位总长度,就是最大能支持64KB,如果一个IP数据报携带的数据载荷太长了,超过了64KB,就会在网络层针对数据进行拆分,把一个数据拆成多个IP数据报,再分别发送,接收方,再重新拼装。
16位标识
同一个数据拆成的多个包的标识是一样的。
13位片偏移
标识了多个包的先后顺序。
3位标志
相当于是分包的结束标志。
8位生存时间(TTL)
一个数据报在网络上能够传输的最大时间,但是这个时间的单位不是"秒”而是“次数”。一个数据报构造出来,会有一个初始的 TTL 数值(比如 32 或者 64, 或者128....) 这个报每次经过一个路由器转发,TTL - 1,如果一直减到 0 了,还没有到达目标,此时就认为这个包永远也到不了了,就可以丢弃了。
8位协议
描述了当前载荷部分内容是属于那个协议的(TCP/UDP)。
16位首部校验和
此处只需要针对首部进行校验,载荷部分(TCP/UDP 数据报)自身已经有校验和了。
IP地址(IPv4 & IPv6)
我们日常能看到的IP地址是一串数字,但是实际上IP地址是32位的二进制数,使用“.”把32位二进制数分割为4个“8位二进制数”(也就是4个字节)。但是32位只能表示42亿9千多万个数字,对于全世界来说,IP地址是完全不够的。非常推荐大家看看这个视频(讲的是IPv6关系到国家安全)https://www.bilibili.com/video/BV1i14y157YV/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=b5701c7bfe1c913f3002eee3d6d787d9
为了解决IP地址不够用的问题,NAT技术(网络地址转换)的发展,使用一个IP代表了一批设备。在NAT背景下,就把IP地址分成了两个大类:
内网IP:10.*,172.16.*-172.31.*,192.168.*
外网IP:剩下的是公网IP
NAT 要求,公网 IP 必须是唯一的。私网 IP 可以在不同的局域网中重复出现。如果某个私网里的设备想访问公网的设备,就需要对应的 NAT 设备(路由),把 地址进行映射,从而完成网络访问。反之,公网的设备,无法直接访问私网的设备的,不同局域网的私网的设备没法直接相互访问。内网 IP 只要在局域网内部不重复即可,不同局域网中则是允许重复的。内网中的电脑接入运营商路由器,去访问外部服务器都会被路由器替换成路由器自己的IP地址。
NAT 机制能够有效的解决 IP 不够用的问题,但是带来的副作用就是网络环境更加复杂以及其他问题.....
IPv6从根本上解决了 IP 不够用的问题,使用 16 字节 表示IP 地址,128 位。42亿*42亿*42亿*42亿 约等于天文数字,可以给地球上的每一粒砂子都分配一个 IPv6 地址。
IP协议之地址管理
网络号: 标识网段,保证相互连接的两个网段具有不同的标识;
主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号
把一个 IP 地址,分成了两个部分一个叫做网络号,一个叫做主机号。
例如:192.168.0.10
网络号是 192.168.0,主机号 是 10,当前的局域网下的设备,网络号都是 192.168.0。

网络号不一定就是前面的三个字节来表示,是通过子网掩码来动态调整的。

此处 255.255.255.0 就是子网掩码,是32位,左侧都是 1, 右侧都是 0,1 的部分就描述了 IP 有多少位是 网络号。
IP协议之路由选择
路由选择就是规划路径。
每个路由器都会保存一定的周围设备的信息(路由表),每次有一个 IP 数据报经过路由器,就需要匹配路由表,看看接下来怎么走。如果路由表上有匹配的项(该路由器认识路) ,直接按照要求走就行了。如果没有匹配的项,(路由器不认识路),会提供一个默认路径,沿着这个方向继续走。
每经过一个路由器问一次, TTL - 1,如果减到 0 了,还没到, 说明这个包就永远也到不了。
相关文章:
网络层重点协议之IP协议(IPv4)
网络层的作用就是来路由的选择,规划传输的路径,其中网络层的重点协议就是IP协议。4位版本号版本号的取值只有4和64位首部长度描述了IP报头有多长,报头中有一个选项部分,是变长的,是可有可无的部分,所以IP报…...
CentOS Stream 8配置DNS
1:用CentOS搭建DNS的目的是想解析一台下载服务器,IP地址172.18.0.58,现在是用IP地址方的式访问,想搭建DNS服务器用域名的方式访问。 使用下面的命令查看一下当前系统的Bind版本。 yum info bind 版本是9.11.36.我的CentOS是最小…...
【roLabelImg】windows下旋转框标注软件安装、使用、rolabelimg打包成exe
主要参考: roLabelImg安装、使用、数据格式roLabelImg在Win10系统下打包成exe - 问雪的文章 - 知乎 一、安装 1.1 直接下载exe运行 劝大家直接去下别人编译好的吧,本来是训练模型标记的,结果搞了半天去了解这个软件了,哎~ 我…...
2023美赛F题:绿色经济
文章目录背景要求词汇表背景 国内生产总值(GDP)可以说是最知名且最常用的衡量一个国家经济健康的指标之一。它通常用于确定一个国家的购买力和贷款能力,为国家提出提高GDP的政策和项目提供了动力。GDP “衡量一个国家在一段特定时间内生产的…...
华为OD机试 - 剩余可用字符集 | 备考思路,刷题要点,答疑 【新解法】
最近更新的博客 【新解法】华为OD机试 - 关联子串 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 停车场最大距离 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 任务调度 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试…...
“笨办法”学Python 3 ——练习 40. 模块、类和对象
练习40 模块、类和对象 知识点: 40.1.0 模块就像字典 my_stuff[apple] #my_stuff是字典,访问字典apple键的值 import mystuff mystuff.apple() #mystuff是模块,模块访问函数apple() print(mystuff.tangerine) #模块访问变量tangerine说明P…...
自动驾驶:BEVDet
自动驾驶:BEVDetIntroductionMethodoloData AugmentationNetwork StructureScale-NMS实验Introduction 作者通过现有的算法(LSS)、独特的数据增强方案与新的NMS方案整合了一个BEV框架(BEVDet)。 如下图: …...
vue的组件通信
文章目录3. 组件通信3.1 父组件-->子组件3.3组件自定义事件(子->父)3.4.全部事件总线(两代以上)3.5消息的订阅与发布3. 组件通信 3.1 父组件–>子组件 <Student name"张三" :age"18"></St…...
Typescript的定义及使用优势
编程语言的类型: 动态类型语言 (Dynamically Typed Language)静态类型语言 (Statically Typed Language) 两种语言的含义及区别: 比如JS、python就是动态类型语言,什么是动态类型语言,通俗的讲࿰…...
正则验证:手机号码验证
<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> </head> <body> 手机号码<input type"text" id"phone"> <span…...
视频融合 flv流格式对接(上)
FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大…...
提问:影视剪辑解说都是怎样配音的,软件合成还是自己配音?
“影视剪辑解说都是怎样配音的,软件合成还是自己配音?”这是一个很好的问题并且困扰着很多人,因为不知道该如何选择。究竟应该使用软件来完成配音工作呢?还是自己动手配音呢?这是一个很难回答的问题。如果你问我的话,…...
基于RK3588的嵌入式linux系统开发(二)——uboot源码移植及编译
由于官方的SDK占用空间较大(大约20GB左右),需要联系相关供应商提供,且官方的SDK通过各种脚本文件进行集成编译,难以理解系统开发的详细过程。本章介绍直接从官方Github网站下载源码进行移植,进行uboot移植及…...
excel报表技巧:几个关于汇报演示方面的小功能
年终了,总结汇报避免不了。如果你的PPT还不够好,那就直接用Excel做汇报吧~这里有5条小技巧,可以帮助你最高效地展示自己的成绩报表!想象一下,用SHIFTCTRLF1全屏显示你的工作表,配合上CtrlPageDown进行工作表…...
【数据结构与算法】Manacher算法
🌠作者:阿亮joy. 🎆专栏:《数据结构与算法要啸着学》 🎇座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉…...
【CMake】CMake构建C++代码(一)
在Linux开发过程中,难免会用到CMake来构建你的代码。本文将说明如何构建自己的代码,将自己的代码变为共享库,共其他代码使用。 文章目录在Linux开发过程中,难免会用到CMake来构建你的代码。本文将说明如何构建自己的代码ÿ…...
让我们,从头到尾,通透I/O模型
什么是IO 一句话总结 IO就是内存和硬盘的输入输出 I/O 其实就是 input 和 output 的缩写,即输入/输出。 那输入输出啥呢? 比如我们用键盘来敲代码其实就是输入,那显示器显示图案就是输出,这其实就是 I/O。 而我们时常关心的磁盘…...
Word控件Spire.Doc 【Table】教程(16):C#/VB.NET:在 Word 表格中插入或提取图像
Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…...
C++如何实现系统语言切换功能,MessageBox的确认/取消按钮语言显示如何跟程序一致
文章目录前言 一、新建工程二、添加多国语言的资源三、程序语言设置四、语言切换五、字符串处理六、MessageBox的问题七、相关函数和类型参考文章前言 目前很多软件都是要出口到多个国家,多个地区,因此,为软件提供多国语言支持就成为了一个基…...
计算机组成原理学习笔记:循环冗余校验码
循环冗余校验码 CRC 码 循环冗余校验码 (cyclic redundancy Check, CRC) 十进制除法 从熟悉的十进制出发,假设现在你要给另一个人传送882这样的一个10进制数据,为了防止传送数据的过程中某一个数据发生错误你可以和你的另一个小伙伴约定一个除数&…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
