【JavaWeb】网络层协议——IP协议

news2024/11/15 9:04:32

目录

IP协议结构

IP地址管理

特殊IP

解决IP地址不够用

动态分配IP地址

NAT网络地址转换

IPV6


IP协议结构

  

版本:就是IP协议的版本号。目前只有 4 和 6。这里介绍的是IPV4

首部长度:单位是4字节。于TCP首部长度完全一致,也是可变的,因为有选项。

服务类型:八位中只有四位有效。服务类型就四种,表示方法是  其中的四位只有一位为                          1,其余都为0. 四种类型分别是:

                  最小延时,最大吞吐量,最高可靠性,最小成本。这四种类型也就代表了IPV4工                    作时的四种状态。

总长度:整个报文的长度。这个值 - 首部长度 = TCP/UDP报文长度

               虽然这个总长度最大才64KB,如果数据大于最大值,那么IP就会把数据拆分,发                   送过去后再进行组装(都是再网络层进行)。

标识:被拆开的报文标识都一致,这样就方便组装它们。

标志:第一位保留

           第二位为1,表示标志报文长度超过MTU(指网络能够传输的最大数据包大小),则丢               弃报文。

           第三位,类似结束标志。一组被拆开的最后一个分片此位为1,其他的为0。

片偏移:本质上标识被拆开片的前后顺序。是分片相对于起始的偏移量。

生存时间:一个报文在网络上能够传输的最大次数。虽然叫时间,但这是以次数来表示的。

                最开始设定一个值,比如32,该报文被一个路由器转发一次,值就减一,直到为                    0还没有发送成功,就丢弃该报文。(防止发送地址是错误的)

协议:表示当前在和是使用的哪个协议(UDP/TCP)。

首部校验和:仅对首部进行校验(使用CRC),因为载荷部分已经校验过了。

源IP地址:发送方的IP地址。

目的IP地址:接受方的IP地址。

选项:最大可40字节。

数据:传输层的数据。


IP地址管理

一个IP地址是由两部组成 网络号 和 主机号

网络号:标识网段。保证相互连接的网段具有不同的标识。这就是局域网。

主机号:标识主机。在同一网段内,主机间的网络号虽然一样,但主机号必须不同。

子网掩码:IP地址中,网络号和主机号的分界就是由子网掩码来区分的。

                在cmd中输入ipconfig就可以看到子网掩码了

点分十进制转成二进制:

1111 1111 1111 1111   1111 1111 1111 1111   0000 0000 0000 0000   0000 0000 0000 0000

计算:把IP地址转成2进制后,和子网掩码对应的2进制位进行逻辑与(只有都为1才是1)操作得出网络号;IP地址再减去网络号得出主机号。


特殊IP

主机地址全为0:这就是网络号了,代表这个局域网

主机地址全为1:这就是广播地址,给同一个链路中的所有主机发送数据。UDP协议可以广播发送,当UDP往 192.168.0.225 这个地址发,局域网中的所有设备都可以收到。

123.*:用于本机环回测试,通常为127.0.0.1


解决IP地址不够用

由于IP地址只有32位,最大标识也才 4,294,967,296 。完全不够给地球上所有的设备使用。为了解决IP地址不够用的问题,通常有以下方法:

动态分配IP地址

把不常用的IP地址分配给用的设备,这样就提高了利用率。但是治标不治本。

NAT网络地址转换

本质上是用一个IP地址代表一批设备。在NAT下把IP地址分成了两大类

内网IP(私有IP):有  10.*      172.16.*~172.31.*          192.168.*

外网IP(公网IP):除了内网都是公网IP。

公网IP必须是唯一的。私有IP可以在不同的局域网下重复。

 NAT虽然有效的解决了IP地址不够使用的问题,但是也让网络环境变得更加复杂。

IPV6

IPV6则是一个全新的协议,它有128位来表示地址,这是原来最大地址数量的4次方。足够使用了。不过IPV6和IPV4不兼容,所以升级换代就很麻烦。


有什么问题评论区指出。希望可以帮到你。

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

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

相关文章

python--pygame实现各级菜单栏目设置

随着学期的开始,同学们也即将进入计算机相关课程的课程设计了,对于python课程设计的小伙伴,可能有些是需要利用pygame来写应该小游戏的,因为最近很多小伙伴同学也在想我要一些基于python的pygame模块做的游戏项目,此外…

SpringBoot 2.x 实战专题——SpringBoot 2.6.X版本循环依赖(内含教学视频+源代码)

SpringBoot 2.x 实战专题——SpringBoot 2.6.X版本循环依赖(内含教学视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87462754 目录SpringBoot 2.x 实战专题——SpringBoot 2.6.X版本循环依赖…

React SSR

ReactDOMServer 参考链接:https://zh-hans.reactjs.org/docs/react-dom-server.html ReactDOMServer 对象允许你将组件渲染成静态标记。通常,它被使用在 Node 服务端上 // ES modules import * as ReactDOMServer from react-dom/server; // CommonJS v…

全栈之路-前端篇 | 第二讲.基础前置知识【应用服务端与编程语言】学习笔记

欢迎关注「全栈工程师修炼指南」公众号 点击 👇 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! 涉及 企业运维、网络安全、应用开发、物联网、人工智能、大数据 学习知识 “ 花开堪折直须折,莫待无花…

谓词exsits用法及与in的使用区别

exists用法 大白话的说,exists的执行,是依次拿外层表的每条记录,去和exsits后的子查询表按你所定义的运算规则(如果有的话)做运算,如果存在结果,也就是有返回数据,无论这部分数据有…

MySQL中使用索引优化

目录 一.使用索引优化 数据准备 避免索引失效应用-全值匹配 避免索引失效应用-最左前缀法则 避免索引失效应用-其他匹配原则 1、 2、 3、 4、 5、 一.使用索引优化 索引是数据库优化最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的MySQL的性能优化…

Pandas库入门仅需10分钟

数据处理的时候经常性需要整理出表格,在这里介绍pandas常见使用,目录如下: 数据结构导入导出文件对数据进行操作 – 增加数据(创建数据) – 删除数据 – 改动数据 – 查找数据 – 常用操作(转置&#xff0…

Linux 配置RAID组

目录 配置RAID(软件RAID) 创建RAID组 RAID中出现坏盘如何操作 RAID 添加热备盘 删除RAID组 RAID所解决的问题 提升硬盘的I/O吞吐率 提高硬盘的读写能力 提高硬盘的安全性 进行备份 减少硬盘成本 RAID级别 存储RAID——RAID级别_静下心来敲木鱼的博…

Spring Boot中使用@Autowire装配接口是怎么回事?

在学习使用Spring Boot框架时候,发现了一个特别的现象UserMapper是一个接口,在另一个类中好像直接使用Autowired装配了一个UserMapper对象???我纳闷了一会儿,接口居然可以直接实例对象吗?根据我…

测试开发之Django实战示例 第十三章 上线

在上一章,为其他程序与我们的Web应用交互创建了RESTful API。本章将学习如何创建生产环境让我们的网站正式上线,主要内容有:配置生产环境创建自定义中间件实现自定义管理命令1创建生产环境现在该将Django项目正式部署到生产环境中了。我们将按…

深度解读依赖注入DI源码

spring-framework-5.3.10 版本依赖注入代码的入口在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean 。如果想搞清楚为什么是这里需要去学习下Bean的生命周期,这里就不介绍了。AutowiredAutowired private OrderServic…

电子科技大学操作系统期末复习笔记(五):文件管理

目录 前言 文件管理:基础 基本概念 文件 文件系统 文件系统的实现模型 文件的组成 文件名 文件分类 文件结构 逻辑结构 物理结构 练习题 文件管理:目录 文件控制块FCB FCB:File Control Block FCB信息 目录 基本概念 目…

CAN通信笔记-位时间、Tq及采样点同步

本文框架1.前言2. 位时间2.1 位时间定义2.2 位时间计算3. Tq3.1 Tq的计算3.1.1 举个例子3.2 位时间与Tq的换算4. 采样点同步4.1 硬同步4.2 重同步4.2.1 延长PBS1的重同步4.2.2 缩短PBS2的重同步1.前言 本篇记录些关于CAN的一些学习笔记,说实话CAN协议发展的已经非常…

【项目设计】—— 负载均衡式在线OJ平台

目录 一、项目的相关背景 二、所用技术栈和开发环境 三、项目的宏观结构 四、compile_server模块设计 1. 编译服务(compiler模块) 2. 运行服务(runner模块) 3. 编译并运行服务(compile_run模块) 4…

MicroBlaze系列教程(6):AXI_IIC的使用(24C04 EEPROM)

文章目录 @[toc]AXI_IIC简介MicroBlaze硬件配置常用函数使用示例波形实测参考资料工程下载本文是Xilinx MicroBlaze系列教程的第6篇文章。 AXI_IIC简介 一般情况下,使用FPGA实现I2C协议主要有两种方式:一种是基于Verilog实现起始位、停止位、ACK产生和判断、数据的发送和接收…

1.HTTP及Template介绍

目录 来源 介绍 模板与渲染 Go语言的模板引擎 模板引擎的使用 定义模板文件 解析模板文件 模板渲染 基本示例 模板语法 {{.}} 注释 pipeline 变量 移除空格 条件判断 range with 预定义函数 比较函数 自定义函数 模板的嵌套template block 修改默认的标…

加油站会员管理小程序实战开发教程13

我们上一篇讲解了会员注册的功能,本篇我们介绍一下会员开卡的功能。 会员注册之后,可以进行开卡的动作。一个会员可以有多张会员卡,在微搭中用来描述这种一对多的关系的,我们用关联关系来表达。 登录微搭的控制台,点击数据模型,点击新建数据模型 输入数据源的名称会员卡…

基于 Debain11 构建 asp.net core 6.x 的基础运行时镜像

基于 Debain11 构建 asp.net core 6.x 的基础运行时镜像Linux 环境说明Debian 简介Debian 发行版本关于 Debian 11Linux 常用基础工具Dockerfile 中 RUN 指令RUN 语法格式RUN 语义说明编写 Dockerfile 构建 Runtime 基础镜像ASP.NET Core Runtime 基础镜像Dockerfile 编写Windo…

sklearn主成分分析PCA

文章目录基本原理PCA类图像降维与恢复基本原理 PCA,即主成分分析(Principal components analysis),顾名思义就是把矩阵分解成简单的组分进行研究,而拆解矩阵的主要工具是线性变换,具体形式则是奇异值分解。 设有mmm个nnn维样本X…

【面试题】数组reduce的用法

1. 对数组求和 传统的数组求和方式需要使用forEach循环遍历数组中的每一个元素,然后累加。然而这种方式需要新增一个用于存储累加结果的变量。 function sum(arr) {let res 0arr.forEach(element > res res element);return res }还可以通过数组的reduce方法…