IP 协议的相关特性

news2024/9/28 10:31:21

目录

IP协议有三大特点:无连接、无状态、不可靠。

四位版本号

四位头部长度

八位服务类型:

十六位总长度

16 位标识, 3 位标志, 13 位片偏移

 八位生存时间

八位协议

十六位首部校验和

关于IP v4地址不够的问题

ip地址动态分配:

ip地址转换(NAT)

 数据传输和返回过程


IP协议位于OSI五层模型的第三层,网络层

IP协议有三大特点:无连接、无状态、不可靠。

无连接:客户端和服务端不会长期的维持对方的信息,所以每次必须指定IP地址。

无状态:数据的发送、传输以及接收都没有上下文关系,也就是说接收端可以收到重复的、无序的报文。

不可靠:不能保证数据每次都能从发送端传输到接收端,所以不安全。

 其中我们着重介绍一下 IPV4版本

我们先来看一下IPV4的报头结构这是存在于各大教科书上的

 

实际上我们这样看会更好理解,从上到下,从左到右

让我们依次介绍

四位版本号

介绍当前协议的版本,目前只有IP v4和IP v6两个版本  

四位头部长度

表示整个报头的大小, 虽然只有 4 位, 能表示 1 - 15, 但是这个字段的单位是 4 个字节, 也就是说这个 IP 报头的长度范围在 15 - 60 个字节之间

八位服务类型:

虽然有着八位,但是实际上使用的只有前面四个字节,这四位中只能有一位是1,其余都是0,他们分别表示四个不同的服务类型

(1) 最小延时 (2) 最大吞吐量 (3) 最高可靠性 (4) 最小成本

十六位总长度

表示这个数据包的大小,包括了接收的TCP载荷和报头,如果太长导致IP协议无法装下,那么就会进行分包组装再发送

16 位标识, 3 位标志, 13 位片偏移

这三个是一起的,所以我们放在一起讲

假如说这里有个超出了一次性发送最大限制的TCP协议,那么我们就会对其拆分

我们假设将其拆分为3段

 

 因为网络中同一时刻,可能有许多经过拆分或者其他的数据包涌入,所以为了保证将被拆分的三个数据包联系在一起,我们就在IP报头处添加了标识

这也就是16位标识

 但是网络的变化是非常大的,可能数据三先到接收方,也可能数据二先到接收方

如果我们不是按照数据一二三的先后顺序让接受方来解析,那么就会产生错误的结果

所以为了保证数据的顺序,我们引入了片偏移

 最后,加上三位标志,来确定改包是否传输完整结束.

1表示还没结束   0表示结束

 

 八位生存时间

在传输过程中,有个叫做TTL的整数,没经过一次中间设备的转发,TTL的数量就会减一,如果TTL=0,那么这个包就会直接被丢掉

八位协议

用来表示传输层使用了什么协议

十六位首部校验和

用来检查数据的准确性

关于IP v4地址不够的问题

因为如果要给每个互联网设备分配对应的唯一ip地址的话,那么目前IP v4已经不能够满足如此巨大的开销了

所以我们目前是采用 ip地址转换(NAT)+ip地址动态分配来缓解这个问题

ip地址动态分配:

只给正在网络中使用的设备分配ip,简单来说就是只给联网的设备分配ip

ip地址转换(NAT)

我们将所有的ip地址,分为内网(局域网)和外网(局域网外的广域网)

外网和内味设备,ip唯一不能重复,但是不同内网的子网中的设备ip是允许重复的

 数据传输和返回过程

假设我们的设备1要传输数据给路由C

那么情况如下

 

从路由C返回给设备1的响应

 

 

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

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

相关文章

一个空的Object在内存中占用几个字节

文章目录 一、对象在内存中的布局1. 对象头1.1. 哈希码(Hash Code):1.2. 对象所属的年代(Generation):1.3. 对象锁(Object Lock):1.4. 锁状态标志(Lock State…

POE级联蓝牙定位系统方案_蓝牙信标,蓝牙网关,级联蓝牙网关

近年来,随着新能源行业的快速发展,在化工厂,核电厂以及电力电厂等企业,对人员定位,人员导航,资产定位,生命体征监测的需求越来越大。传统的蓝牙室内定位方案中蓝牙信标为锂亚电池供电,需定期更换电池且有安全隐患,为更好的服务有蓝牙定位导航,被动人员定位,生命体征…

vue创建项目报错npm install --loglevel error --legacy-peer-deps

vue创建项目报错npm install --loglevel error --legacy-peer-deps 如图所示: 话不多说,直接上解决方法: 1、找到这两个文件(每个人的位置不一样,像我是安装在D盘) 2、分别点进去,右键—属性…

A Survey on Evaluation of Large Language Models

这是LLM相关的系列文章,针对《A Survey on Evaluation of Large Language Models》的翻译。 大型语言模型评价综述 摘要1 引言2 背景2.1 大语言模型2.2 AI模型评估 3 评估什么3.1 自然语言处理任务3.1.1 自然语言理解3.1.2 推理3.1.3 自然语言生成3.1.4 多语言任务…

vue——接口修改请求头——有些接口不需要请求头传递token——基础积累

最近在写后台管理系统的时候,遇到一个切换租户的功能。在请求接口的时候不需要传递token 直接上代码吧: 1.html代码 login2(this.user.id, this.ruleForm.tenantType) .then(this.afterLogin) .finally(() > {this.confirmLoading false;if (this…

ja3指纹和akamai指纹

问题: 请求失效,带上抓包软件却可以->检测ja3浏览器指纹 方法,python 安装curl_cffi库 pip install curl_cffi 查看浏览器指纹 https://tls.browserleaks.com/json python 原生request 缺少两个指纹 使用curl_cffi之后 可以看到结果…

多模态系列论文--BLIP 详细解析

论文地址:BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 论文代码:https://github.com/salesforce/BLIP BLIP 1 研究动机及本文贡献2 相关工作2.1 ALBEF模型2.2 VLMO模型 3 本文贡献1--U…

LLaMA: Open and Efficient Foundation Language Models

背景 用最少的计算资源,解决了LLM大模型预测问题,训练了一些列的LLaMa模型,在参数量比较少的情况下,达到业界大模型效果。 主要贡献就是提升了LLM模型的训练速度和效率,在小容量的基础上,大大提升了模型的…

C语言 - AES软件加解密算法

概述 (AES)RIJNDAEL算法是一个数据块长度盒密钥长度都可变的分组加密算法,其数据块长度和密钥长度都可独立地选定为大于等于128位且小于等于256位的32位任意倍数。深入学习请参考《密码学》书籍,谢谢各位参阅。 验证环境&#xf…

Git基本操作:版本打Tag的作用以及基本操作流程

作用介绍 在git代码管理时,有时候我们想对某个特定的commit 添加标记,比如要标识版本信息,这时候就可以用的git中的打标签功能。 打tag就类似于我们看书放书签一样,以后可以直接用tag找到提交的位置,不然的话&#x…

devtools热部署的使用

引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency>idea开启热部署 改动后 ctrl …

解决:yarn 无法加载文件 “C:\Users\admin\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本“ 的问题

1、问题描述&#xff1a; 其一、报错的整体代码为&#xff1a; yarn : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\yarn.ps1&#xff0c;因为在此系统上禁止运行脚本 // 整体的报错代码为 &#xff1a; yarn : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\yar…

Django_测试模块(六)

目录 开始写我们的第一个测试 首先得有个 Bug 创建一个测试来暴露这个 bug 运行测试 修复这个 bug 更全面的测试 测试视图 针对视图的测试 Django 测试工具之 Client 改善视图代码 测试新视图 测试 DetailView 集中管理用例文件 使用Django测试运行器 源码等资料…

国风美少女【InsCode Stable Diffusion 美图活动一期】

一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置&#xff1a; Steps&#xff08;采样迭代步数&#xff09;: 20 Sampler&#xff08;采样方法&#xff09;: Euler a 采样迭代步数(Steps)Sa…

Spring Boot 中的 @Field 注解详解

Spring Boot 中的 Field 注解详解 引言 Spring Boot 是目前 Java 生态圈中最受欢迎的 Web 应用开发框架之一&#xff0c;它提供了很多优秀的功能和工具&#xff0c;可以帮助开发者快速构建高效、可靠的 Web 应用程序。其中一个重要的功能就是数据绑定和验证&#xff0c;Sprin…

CRM系统中AI如何进行销售线索评分?有什么好处(下)

好的CRM解决方案既要充分利用销售人员的经验和技能&#xff0c;又要尽可能地消除人为错误。其底层逻辑是&#xff0c;从过程中消除不可预测的人为因素&#xff0c;同时利用好人的自然技能。基于此&#xff0c;AI人工智能被引入CRM客户管理系统&#xff0c;可以说CRM销售线索评分…

如何使用 Docker 部署 FreeGPT-WebUI:一个简单的教程

目录 1. FreeGPT-WebUI 项目简介 2. 安装 Docker 3. 从 Docker Hub 拉取 FreeGPT-WebUI 镜像 4. 使用 Docker 运行 FreeGPT-WebUI 应用程序 5. 访问 FreeGPT-WebUI 应用程序 总结 在本教程中&#xff0c;我们将了解如何使用 Docker 部署 FreeGPT-WebUI&#xff0c;一个基…

看完这一篇,就不要再说不了解Dockerfile了

首先&#xff0c;让我们来介绍一下对于大多数人来说容易有疑惑的地方 WORKDIR 指定工作目录 什么是工作目录&#xff1f;为什么要指定&#xff1f; 拿 window 系统的 powershell 控制台来类比。打开 powershell 命令行控制台&#xff0c;显示的是默认目录&#xff0c;如&…

Java基本概述

1、Java语言的特点 特点一&#xff1a;面向对象 两个基本概念&#xff1a;类、对象三大特性&#xff1a;封装、继承、多态 特点二&#xff1a;健壮性 去掉了C/C中影响程序健壮性的部分&#xff08;指针、内存的申请与释放等&#xff09;&#xff0c;有一个相对安全的内存管…

3-测试用例(CASE)

目录 1.什么是测试用例&#xff1f; 2.为什么要有测试用例&#xff1f; 3.练习 1.什么是测试用例&#xff1f; 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合。 这组集合包含&#xff1a;测试环境、操作步骤、测试数据、预期结…