JAVAEE——IP协议

文章目录

  • IP协议
    • IP协议报头格式
      • IP协议报头的各个区段
        • 四位版本
        • 四位首部长度
        • 八位服务类型
        • 16位总长度
        • 16位标识,3位标志,13位片偏移
        • 八位生存时间
        • 八位协议
  • 地址管理
    • IP地址
      • 解决提议1:动态分配Ip地址
      • 解决提议2:NAT机制

IP协议

IP协议报头格式

想要学会一个协议就要了解这个协议的格式,下图是这个协议的格式图那么接下来我们针对这个图进行详细的解析
在这里插入图片描述

IP协议报头的各个区段

四位版本

在这里插入图片描述
首先呢是这个四位版本,我们说的IP地址目前是有两个版本的一个是ipv4协议,一个是ipv6协议目前来说使用范围最大的就是这两个了,而我们通过自己的电脑就可以查看查看方法就是win+r然后输入cmd,再然后输入ipconfig命令便可查看。那么这两者有什么区别呢?


Ipv4:ipv4协议其实指的就是ip地址是四个字节那么最大表示范围也就是2^32,他的数值表示是以点分10进制表示,列如192.0.2.1。
IPv6:Ipv6协议,是指地址最大是6个字节以八组16进制数字表示并且以冒号分隔。

四位首部长度

在这里插入图片描述
为什么这里使用4位首部长度呢?因为其实IP协议的报头也是变长字节的

八位服务类型

在这里插入图片描述
什么是八位服务类型呢?因为我们的IP协议形态其实是可以发生改变的,这八位是如何构成的呢?它分为了3位优先权字段(目前已经弃用了),4位TOS字段和1位保留字段(必须置为0)那么这四位TOS字段代表什么呢?他代表的是最小延时,最大吞吐量,最高可靠性,最小成本,他就像迪迦奥特曼一样次啊的一下就可以改变自己的形态改变自己形态之后就会使得自己的属性发生改变。

16位总长度

在这里插入图片描述
这里描述了IP数据包最长是多长,当然了既然存在最长说明IP协议也存在长度限制,不过iP协议本身也支持拆包和组包,那既然支持拆包和组包,那就肯定需要标志位,去完成这件事情那么他的标志位是什么呢?

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


这三位字段就是为了表示IP协议的拆包和组包的,那么首先假如说一个IP报被拆分的话那么首先要判断拆分后的这些小包哪些是同一组报文的,这就要依靠16位标识来保证,假如说是同一组报文的话那么这16位标识就是一样的数字,然后就是这三位标志了,这三位标志呢,其中1位标志是否可以拆包,一位表示是否是最后一个包,这两个一个保证了拆分的包的数量和是否来自同一组,那么13位片偏移是什么呢?这个是用来保证我拆分的小包组成的顺序的根据这个片偏移字段可以。

八位生存时间

在这里插入图片描述

八位生存时间这个标志还是挺重要的,因为我们在进行网络传输的时候很有可能你输入了一个不存在的IP地址,可是机器不知道这个IP地址是否存在因此可能会陷入无休止的寻找过程中,加入这个字段等于说是限制了寻找多少次,如果超过的话就不在传输这个消息。也就是这个IP数据包还能存活多久

八位协议

在这里插入图片描述
这里描述的你的数据报部分是一个TCP协议包还是一个UDP协议包。

地址管理

IP地址

我们上面说了IP地址目前用的最广泛的两个一个是IPV4一个是IPv6这两个,这两个表示地址的方式也是不一样的,IPV4协议的表示出来的是一个2^32的一个数字大概就是42亿9千万吧,这样一个数字呢很大,但是在我们网络如此发达的今天这个明显是不够用的,目前全世界网民的数目已经数十亿人了,如果给这数十亿人没人都分配一个IP地址的话那么这个42亿九千万这个数字是完全不够用的,而IPv6则能很好的解决这个麻烦因为IPv6的数字更大,几乎是用不完的。但是目前的话iPv6 主要还是我国规定了每家公司必须要能支持IPv6而在全世界范围来看的话使用IPv4的人更多,这是为什么呢?因为他们两个不相通,也就是不兼容,如果你想使用IPv6的话你就得给自己的网络路由器进行更新,要知道对于一个使用了这么多年的Ipv4的公司来说,这笔费用还是不少的,因此世界上使用IPv4的人更多,可是IPv4的地址不够用啊那怎么办?那么人们就提出了几种解决办法。如下

解决提议1:动态分配Ip地址

那么首先的一个解决方式是什么呢?那就是动态分配IP地址,将需要上网的设备分配一个IP地址然后上完网后再将这个IP地址回收以此来达到正在上网的设备的IP地址是唯一的这样一个效果

解决提议2:NAT机制

NAT机制是什么呢?NAT机制其实就相当于弄了一个转换程序,我们依据局域网将设备分为局域网内部设备和局域网外部设备这样两种,那么当内部设备想要给外部设备发送信息的时候,这时候会先将自己的这个消息发给一个NAT设备,这个设备的任务就是为你分配一个可以连接外网的一个IP地址,这个IP地址我们就叫做外部IP,并且它还会记录这次的映射,当外部设备返回响应的时候,我们也可以根据这个映射找到发送消息的那台设备,我们可以这样理解NAT就像我们学生时期传纸条的中间人一样,我们把纸条给中间人,他会记住这个纸条是你给他的当属于这个纸条的回应返回的时候他会把回应再传给你,那么也就是说我们日常生活中的运营商网络其实就充当了这样的一个角色。
在这里插入图片描述
那么这样的解决方案有什么优点呢?

第一:安全,在这种机制下只有内网设备可以主动联系外网,外网设备不能主动联系内网
第二:纯软件的解决方式

而当前大环境下主要使用的就是这种NAT+动态分配的方式。当然最终的解决办法还是IPV6.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Vue钢材销售管理系统的设计与实现

系统介绍 为了更好地发挥本系统的技术优势,根据钢材销售管理系统的需求,本文尝试以B/S经典设计模式中的Spring Boot框架,JAVA语言为基础,通过必要的编码处理、钢材销售管理系统整体框架、功能服务多样化和有效性的高级经验和技术…

分类神经网络3:DenseNet模型复现

目录 DenseNet网络架构 DenseNet部分实现代码 DenseNet网络架构 论文原址:https://arxiv.org/pdf/1608.06993.pdf 稠密连接神经网络(DenseNet)实质上是ResNet的进阶模型(了解ResNet模型请点击),二者均是…

葡萄书--关系图卷积神经网络

异质图和知识图谱 同质图与异质图 同质图指的是图中的节点类型和关系类型都仅有一种 异质图是指图中的节点类型或关系类型多于一种 知识图谱 知识图谱包含实体和实体之间的关系&#xff0c;并以三元组的形式存储&#xff08;<头实体, 关系, 尾实体>&#xff0c;即异…

vlan的学习笔记1

vlan&#xff1a; 1.一般情况下:以下概念意思等同: 一个vlan一个广播域 一个网段 一个子网 2.一般情况下: &#xff08;1&#xff09;相同vlan之间可以直接通信&#xff0c;不同vlan之间不能直接通信! &#xff08;2&#xff09;vlan技术属于二层技术&…

三、Flask模型基础

ORM 创建模型 # exts.py:插件管理 # 扩展的第三方插件 # 1.导入第三方插件 from flask_sqlalchemy import SQLAlchemy # ORM插件 from flask_migrate import Migrate # 2. 初始化 db = SQLAlchemy() # ORM migrate = Migrate() # 数据迁移 # 3. 和app对象绑定 def init_ex…

基于Bootstrap 4的企业项目体验服务网站模板

目录 一.前言 二.展示 三.下载链接 一.前言 网页包含以下内容&#xff1a; 页面基本信息&#xff1a;设置页面的字符集、兼容性、视口等元数据。 网站标题和描述&#xff1a;定义了网站的标题为"Benten"&#xff0c;同时也设置了关键词和描述。 CSS样式表链接&a…

基于SpringBoot+Vue七匹狼商城系统的设计与实现

系统介绍 近年来随着社会科技的不断发展&#xff0c;人们的生活方方面面进入了信息化时代。计算机的普及&#xff0c;使得我们的生活更加丰富多彩&#xff0c;越来越多的人使用通过网络来购买各类的商品。早期商品的销售和购买都是通过实体店&#xff0c;这种购买方式需要耗费…

《苍穹外卖》Day03部分知识点记录

一、公共字段自动填充 业务表中的公共字段&#xff1a; 序号字段名含义数据类型操作类型1create_time创建时间datetimeinsert2create_user创建人idbigint3update_time修改时间datetimeinsert、update4update_user修改人idbigint 问题&#xff1a;代码冗余&#xff0c;不便于…

const成员函数 以及 取地址及const取地址操作符重载

目录 const成员函数 结论&#xff1a; 取地址及const取地址操作符重载 const成员函数 将const 修饰的 “ 成员函数 ” 称之为 const成员函数 &#xff0c; const 修饰类成员函数&#xff0c;实际修饰该成员函数的&#xff08;*this&#xff09; &#xff0c;表明在该成员函数…

ROS2 王牌升级:Fast-DDS 性能直接碾压 zeroMQ 「下」

以下内容为本人的学习笔记&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/aU1l3HV3a9YnwNtC1mTiOA 性能比较 下面就以官网的测试数据为准&#xff0c;让我们一起来看看它们的性能差别到底怎样。 本次比较仅针对 Fast RT…

AI安全之问:我们的智能助手真的安全吗?

在我们日益依赖人工智能来撰写文档、编写程序代码、甚至创作艺术作品的今天&#xff0c;我们是否曾经想过这些智能系统可能面临的被恶意操纵的风险&#xff1f; 分享几个网站 GPT-3.5研究测试&#xff1a; https://hujiaoai.cn GPT-4研究测试&#xff1a; https://higpt4.cn…

2024数学建模时间汇总与竞赛攻略

目录 2024数学建模汇总&#xff08;时间、报名费、获奖率、竞赛级别、是否可跨校&#xff09; 中国高校大数据挑战赛 “华数杯”国际大学生数学建模竞赛 美国大学生数学建模竞赛&#xff08;美赛&#xff09; 数学中国&#xff08;认证杯&#xff09;数学建模网络挑战赛 …

Python基础04-操作系统中的文件与目录操作

在与操作系统交互时&#xff0c;我们经常需要执行文件和目录的操作。Python提供了丰富的库来帮助我们完成这些任务。以下是一些常见的操作&#xff0c;以及如何使用Python代码来实现它们。 1. 导航文件路径 在不同的操作系统中&#xff0c;文件路径的格式可能不同。Python的o…

OpenUI在windows下部署使用

OpenUI OpenUI是一个基于Python的AI对话平台&#xff0c;支持接入多种AI模型。 通过聊天的方式来进行UI设计&#xff0c;你可以通过文字来描述你想要的UI界面&#xff0c;OpenUI可以帮你实时进行渲染出效果 安装OpenUI 这里预设你的电脑上已安装git、Python和pip&#xff0…

2023年美国西岸行 - Day 1

本来旅行回来就像记录的&#xff0c;结果一拖就是快1年。当然中间原先记录的博客平台关闭也有部分原因&#xff0c;但不是主要原因。趁着今天复活20年前的CSDN博客&#xff0c;赶紧记录一下。 疫情之后第一次全家长途旅行。这次美国之行&#xff0c;在3-4月份订机票的时候跟临…

Pages by User Role for WordPress:强化内容访问控制的必备插件

在数字化时代&#xff0c;WordPress已成为众多网站开发者和设计师的首选平台。然而&#xff0c;如何根据用户角色精确控制内容的访问权限&#xff0c;一直是困扰他们的难题。Pages by User Role for WordPress插件应运而生&#xff0c;为这一难题提供了完美的解决方案。 Pages …

Python高效的符号计算库之aesara使用详解

概要 Aesara是一个高效的符号计算库,用于深度学习和数值计算,它允许开发者以数学表达式的形式定义函数,并自动转换成高效的代码执行。Aesara不仅提高了计算效率,还简化了梯度计算过程,是深度学习研究和实验的强大工具。 安装 通过pip可以轻松安装Aesara: pip install…

【JavaWeb】Day51.Mybatis动态SQL

什么是动态SQL 在页面原型中&#xff0c;列表上方的条件是动态的&#xff0c;是可以不传递的&#xff0c;也可以只传递其中的1个或者2个或者全部。 而在我们刚才编写的SQL语句中&#xff0c;我们会看到&#xff0c;我们将三个条件直接写死了。 如果页面只传递了参数姓名name 字…

网吧电脑可以用来渲染吗?渲染100邀请码1a12

对于设计行业的小伙伴来说&#xff0c;日常的渲染工作是个难题&#xff0c;电脑不行会导致很多问题&#xff0c;比如卡顿崩溃&#xff0c;甚至死机&#xff0c;这时候你可能想到去网吧渲染&#xff0c;毕竟网吧电脑看起来很强&#xff0c;那么真是这样的吗&#xff1f;这篇文章…

Android Studio实现页面跳转

建立文件 temp.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"…