网络层重点协议之IP协议(IPv4)

news2024/11/16 17:47:43

网络层的作用就是来路由的选择,规划传输的路径,其中网络层的重点协议就是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 了,还没到, 说明这个包就永远也到不了。

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

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

相关文章

【python百炼成魔】python之列表详解

文章目录一. 列表的概念1.1 列表是什么?1.2 为什么要使用列表?1.3 列表的定义二. 列表的增删改查操作2.1 列表的读取2.2 列表的切片2.3 列表的查询操作2.3.1 not in ,in 表达式2.3.2 列表元素遍历2.4 列表元素的增加操作2.4.1 append()的相关用法2.4.2 e…

Webpack(应用一:基本使用,只需六步骤)

前言 上一篇文章已经说明了webpack的定义以及需求 本偏文章主要讲解webpack的基本使用 tips:现在以vscode编辑器来展示,只需要几个步骤就可以实现webpack的基本使用。 一、首先要安装node.js 1、不会安装node.js的,可以在网上自己找教程来…

Java:博客系统,实现加盐加密,分页,草稿箱,定时发布

文章目录1. 项目概述2. 准备工作2.1 数据库表格代码2.2 前端代码2.3 配置文件3. 准备项目结构3.1 拷贝前端模板3.2 定义实体类3.3 定义mapper接口和 xml 文件3.4 创建其他包4. 统一数据返回4.1 Result 类4.2 统一数据格式5. 注册5.1 逻辑5.2 验证数据规范性5.3 实现注册5.4 前端…

Teradata与中国市场官宣“分手”!国产数据库准备好了吗?

2月15日,西方的情人节刚刚过去一天,国内IT行业就爆出一个大瓜。 继Adobe、甲骨文、Tableau、Salesforce之后,又一个IT巨头要撤离中国市场。 Teradata天睿公司官宣与中国市场“分手”,结束在中国的直接运营。目前,多家…

记录--TS类型写不好?一起来训练提升吧!

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前期准备 本篇文章的编写目的是为了提升TS类型的书写质量,高质量的类型可以提高项目的可维护性并避免一些潜在的漏洞; 在学习本篇之前需要有一定的TS基础知识,在此基础上可以更…

wpgarlic:一款功能强大的WordPress插件模糊测试工具

关于wpgarlic wpgarlic是一款功能强大的WordPress插件模糊测试工具,该工具可以帮助广大研究人员查找WordPress插件漏洞。目前为止,该工具已经成功在大约1500万个网站上找出了140多个WordPress插件漏洞。 考虑到模糊测试工具的运行机制,即模…

mtb10_Presentations_tableau Animation(pages) to pdf to png or Animation

All Tableau authors are essentially storytellers. Analyzing data is more than just puzzle- solving; it is a search for a story that will make a difference. Topics can range from Airbnb爱彼迎(美国短租平台) to the Zika virus[ˈziːkə ˈvaɪrəs]寨卡病毒, an…

Java之滑动窗口详解

目录 一.滑动窗口 1.什么滑动窗口 2.滑动窗口的三要素 二.找到字符串中所有字母异位词 1.题目描述 2.问题分析 3.代码实现 三.字符串的排列 1.题目描述 2.问题分析 3.代码实现 四.考试的最大困扰度 1.题目描述 2.问题分析 3.代码实现 五.替换后的最长重复字符 …

git命令行推送本地分支到远程仓库

之前说过Git与IDEA强强联合(HTTPS协议连接)那么如何使用命令行来推送代码呢? 如下图所示为一个基于layui的前端代码: 目录工作区文件: 本地内容就是将这些内容推送到远程仓库 首先使用git命令初始化git本地仓库&…

阿里巴巴测试岗,3面都过了,到头来却因为这个原因被刷了...

说在前面 面试时最好不要虚报工资。本来阿里巴巴是很想去的,几轮面试也通过了,最后没offer,自己只想到下面几个原因 虚报工资,比实际高30%;有更好的人选,这个可能性不大,我看还在招聘。我是面…

【Redis】Redis持久化之AOF详解(Redis专栏启动)

📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公…

Windows11安装OpenSSH客户端,实现ssh远程连接云服务器

一、打开设置 - 应用 - 添加可选功能,选择安装OpenSSH客户端 二、安装完之后,验证 ssh 命令 1、启动ssh服务之后,打开 cmd 窗口已支持连接 三、如果 ssh 命令仍然不生效,需要配置 ssh 环境变量 1、新建 SSH_HOME 环境变量&#…

2023 年前端十大 Web 发展趋势

很长一段时间,Web 开发的前景似乎没有什么进展(2016 年至 2021 年),但在刚刚过去的 2022 年中确实又猛窜了一波。今天主要想跟大家聊聊最新 Web 开发趋势。相信这波浪潮会继续激发 Web 开发者的关注,对万象更新的 2023…

视频连载11 - 这个为生信学习和生信作图打造的开源R教程真香!!!

点击阅读原文跳转完整教案。1 思考题2 R基础2.1 R安装2.2 Rstudio基础2.2.1 Rstudio版本2.2.2 Rstudio安装2.2.3 Rstudio 使用2.3 R基本语法2.3.1 获取帮助文档,查看命令或函数的使用方法、事例或适用范围2.3.2 R中的变量及其初始化2.3.3 变量类型和转换2.3.4 R中矩…

MYSQL安装部署--Linux 仓库安装

声明 :# 此次我们安装的 MYSQL 版本是 8.0.32 版本 我们本次安装 MYSQL 总共要介绍 四种方式 # 仓库安装# 本地安装# 容器安装# 源码安装我们本篇介绍的是 仓库安装 仓库安装 下载 MYSQL 安装包 # MYSQL 安装,我们都是基于 MYSQL 官方网站里进行下载~&a…

计数系统架构设计(转)

本文主要节选和总结自沈剑大佬的 计数系统架构实践一次搞定 | 架构师之路和文章的评论,略有删改 一、问题描述 很多业务都有“计数”需求,以微博为例: 微博首页的个人中心部分,有三个重要的计数:关注了多少人的计数、粉…

如何编写一个基本的 Verilog Module(模块)

1、概述这篇文章主要介绍了 Verilog 在 FPGA 设计中的概念和使用方法。首先讨论使用模块(module)关键字构造 Verilog 设计的方式,以及这与所描述的硬件的关系。这包括对参数、端口(port)和例化(instantiato…

JSON Web Token (JWT)

1,什么是JWT JWT是JSON Web Token是简称,是一个行业开发标准(RFC 7519)定义了一种简介的 自包含的协议格式,用于在通信双方传递JSON对象,传递的信息经过数字签名可以被验证和信任。它可以使用HMAC算法或使…

4.如何靠IT逆袭大学?

学习的动力不止于此: IT逆袭 这两天利用工作空余时间读了贺利坚老师的《逆袭大学——传给 IT 学子的正能量》,感触很多,有些后悔没有好好利用大学时光。 不过人都是撞了南墙再回头的,吃一堑长一智。 这本书无论你是工作了还是…

DataX简介、部署、原理和使用介绍

DataX简介、部署、原理和使用介绍 1.DataX简介 1-1.项目地址 项目地址:https://github.com/alibaba/DataX 官方文档:https://github.com/alibaba/DataX/blob/master/introduction.md 1-2.DataX概述 ​ DataX 是阿里云 DataWorks数据集成 的开源版本…