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.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt实现XYModem协议(五)

1 概述 XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K&am…

在线拍卖系统,基于SpringBoot+Vue+MySql开发的在线拍卖系统设计和实现

目录 一. 系统介绍 二. 功能模块 2.1. 管理员功能模块 2.2. 用户功能模块 2.3. 前台首页功能模块 2.4. 部分代码实现 一. 系统介绍 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系…

【C++简史】

文章目录 简介C 语言的诞生C语言编程原理面向对象编程C和泛型编程C 的起源 简介 C融合了 3 种不同的编程方式: C 语言代表的过程性语言、C 在 C 语言基础上添加的类代表的面向对象(OOP)语言、 C 模板支持的泛型编程。 C 语言的诞生 贝尔实验室的 Dennis Ritchie(…

项目小游戏-贪吃蛇

目录 1.游戏开始 - GameStart 1.1cmd命令窗口 调节窗口命令 ​编辑更改窗口命名 ​编辑 1.2 Win32 API win32 API 的介绍: ​编辑 获取控制台坐标COORD 获取控制台句柄: 获取缓冲台光标信息: 获取虚拟键位: 本地初始化 setlocale(); 游戏开始的具体实现&#xff1a…

Java发送邮件 启用SSL

使用的maven依赖: <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.4.7</version> </dependency> 配置文件mail.properties如下: # 邮箱配置 email.username=your-email@exa…

[USACO1.5] 八皇后 Checker Challenge

题目描述 检查一个如下的6 x 6的跳棋棋盘&#xff0c;有六个棋子被放置在棋盘上&#xff0c;使得每行&#xff0c;每列&#xff0c;每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子&#xff0c;如下例&#xff0c;就是一种正确的布局。 上面的布局可以用序列2 4…

在protobuf里定义描述rpc方法的类型

service UserServiceRpc //在test.proto中定义 { rpc Login(LoginRequest)returns(LoginResponse); rpc GetFriendLists(GetFriendListRequest)returns(GetFriendListResponse); } test.proto文件生成test.pb.cc protoc test.proto --cpp_out./ 将生成的…

货币银行学-货币政策

货币政策 货币政策目标体系货币政策工具如何通过提高短期货币市场利率来缩减货币供应量&#xff1f;法定存款准备金率的作用是什么&#xff1f;它的调整有哪些影响&#xff1f;在货币政策的操作程序中&#xff0c;如何通过公开市场操作影响基础货币&#xff1f;基础货币的构成是…

【网站项目】校园商铺系统小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

数据结构_时间复杂度

✨✨所属专栏&#xff1a;数据结构✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 什么是时间复杂度&#xff1f; 时间复杂度的定义&#xff1a;在计算机科学中&#xff0c;算法的时间复杂度是一个函数&#xff0c;它定量描述了该算法的运行时间。一个算法执行所耗费的时间&#xff0…

亚马逊---设计安全架构

会从以下三个方面展开&#xff1a; 1、AWS资源访问安全 2、应用程序负载的网络安全 3、云中数据的安全 责任共担模式 就像租房子&#xff08;房东和你的责任&#xff09; AWS资源访问安全 需要掌握以下几点&#xff1a; 1、跨多个账户的访问控制和管理 2、AWS联合访问和身份服…

【Linux】系统安全及应用

目录 一、账号安全基本措施 1.系统账号清理 2.密码安全控制 3.历史命令安全管理 4.限制su切换用户 1&#xff09;将信任的用户加入到wheel组中 2&#xff09;修改su的PAM认证配置文件 5.ssh远程登录输入三次密码错误则锁定用户 二、Linux中的PAM安全认证 1.su命令的…