网络层IP协议

2023-10-26

一、IP协议的报文格式

1、4位版本号

目前只有IPv4和IPv6两个版本,所以这里只能填4或6。

2、4位首部长度

4个bit能表示的最大数字是15,而这里的单位是4个字节,所以首部长度最大为15*4=60个字节。

3、8位服务类型

8位服务类型中只有4位是有效的,用来表达当前IP协议不同的“工作模式”:最小延时、最大吞吐量、最高可靠性、最小成本;这4位里最多只有一位可以是1,不能同时出现多个1。

4、16位总长度

16位总长度描述了IP数据报的报文长度。

TCP报文长度 = IP协议16位总长度 - IP协议4位首部长度。

5、16位标识、3位标志、13位片偏移

IP协议自带分包组包的机制,可以把一个很大的IP数据包分成多个小的数据包。

(1) 同一组数据包具有相同的16位标识

(2) 3位标志中只有两位在起作用:

① 一位用来标识当前是否分包;

② 一位用来表示当前这个包是不是该分组的最后一个包;

(3) 13位片偏移用来区分包的前后顺序。

6、8位生存时间

网络传输过程中,有些数据可能永远也发不到目的IP、目的端口处,但是这个数据不能在网络传输中被各个设备来回转发,所以用TTL来描述数据的生存时间,单位是“次数”,TTL一般是64/128。

在网络传输过程中,数据没经过一个路由器,TTL就减1,如果TTL减到了0,数据还没传送到目的IP处,那么就会丢弃这个数据。

7、8位协议

8位协议指的是IP载荷部分中数据报使用的传输层协议。

接收端收到数据进行分用时,就可以通过IP报文中的8位协议知道,接下来要把数据交给传输层的哪个协议进行解析。

8、16位首部检验和

类似于TCP协议的校验和,使用CRC进行校验,用来鉴别数据在传输过程中是否损坏。

9、选项

类似于TCP协议的选项,可有可无,最多占用40字节。

二、认识IP地址

        IP地址本质上是32位的整数,但是为了方便查看,又用点分十进制的方式进行表示:即使用3个点把IP地址分成4个部分,每个部分是8个bit,取值范围为0~255。

1、IP地址具体的规则

1、组成

IP地址分为两个部分:网络号和主机号。

网络号:标识网段,保证相互连接的两个网段具有不同的标识;

主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是主机号不能相同。

2、划分

使用一个32位的子网掩码进行划分,子网掩码也使用点分十进制的方式表示。

子网掩码的左半边都是1,右半边都是0; 

左半边有N个1,就表示IP地址从左往右的N位都是网络号。

3、特殊的IP地址

(1) 如果一个IP地址的主机号全部为0,此时这个IP就表示网络号,代表当前局域网;

(2) 如果一个IP地址的主机号为1,此时这个IP表示这个局域网的网关(不绝对,只是习惯用法);

(3) 如果一个IP地址的主机号全部为1,此时这个IP表示广播IP;

(4) 127.*开头的IP表示环回IP,通常使用127.0.0.1。

2、IP地址不够用的情况

IP地址用来区分网络上每台计算机,但32个bit位能表示的最大值不到43亿,按照这个设定,IP协议最多只能表示不到43亿台设备,但是当前世界上的上网设备早已超出了这个数值,那么这个情况如何处理呢?

(1) 动态分配IP地址

只有在用户联网的时候才分配IP地址,不联网的时候就把IP回收分配给其他设备。

(2) NAT机制

① 不再强制要求每个主机都有独立的IP,而是把IP地址分为两大类:外网IP/公网IP 和 内网IP/私网IP/局域网IP,两大类;

以10.*,172.16.*~172.31.*,192.168.*这三类开头的IP都是内网IP,其余的都是外网IP。

② 然后约定,在同一个局域网内,不能用重复的IP地址,但是在不同的局域网内,IP地址可以重复。

③ 如果在局域网内部访问外网的服务器,就会使用一个外网IP来代替局域网中的设备来访问。

当前网络的现状:动态分配IP+NAT机制 

(3) IPv6

IPv6使用16个字节来表示IP地址,相比IPv4,多了2的96次方个地址,彻底解决IP地址不够用的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络层IP协议 的相关文章

  • Umi 内使用mock

    在mock文件夹下创建stu js 在mock文件夹下创建stu js 代码如下 利用mock js库 增强mock数据能力 首先先安装 yarn add mockjs 或者 npm i mockjs
  • 【整理九】

    目录 1 说说你对递归的理解 封装一个方法用递归实现树形结构封装 2 Link和 import有什么区别 3 什么是FOUC 如何避免 4 说说你对预编译器的理解 5 shouldComponentUpdate 的作用 6 概述下 Reac
  • 计算机2.0培训心得,2020信息技术2.0培训心得

    时代的车轮滚滚 把我们带到信息高速路 信息技术迅猛发展令我们猝不及防 也惊喜万分 它渗透到社会生活角角落落 校园更是如此 传统教育教学模式 教学方式和教学手段等统统被打破 我们甚至措手不及 今年 我幸运参加2020年年底为期7天的中小学信息
  • Typora自定义命令上传图片到服务器

    Typora自定义命令上传图片到服务器 缘由 因为平时喜欢用Typora写文档 markdown也比较方便复制到各个网站上去展示 但是markdown复制的文件之前一直都是保存在本地 md文件复制给别人或者复制到其他博客上会导致图片找不到或
  • 6.9行为型---访问者模式

    在现实生活中 有些集合对象中存在多种不同的元素 且每种元素也存在多种不同的访问者和处理方式 例如 公园中存在多个景点 也存在多个游客 不同的游客对同一个景点的评价可能不同 医院医生开的处方单中包含多种药元素 査看它的划价员和药房工作人员对它
  • datatables完整的增删改查

    1 需要指定datatables的ID 1
  • AVL树的旋转

    平衡二叉树在进行插入操作的时候可能出现不平衡的情况 AVL树即是一种自平衡的二叉树 它通过旋转不平衡的节点来使二叉树重新保持平衡 并且查找 插入和删除操作在平均和最坏情况下时间复杂度都是O log n AVL树的旋转一共有四种情形 注意所有

随机推荐

  • QT console工程关于控制台的弹出

    创建了一个qt console application工程 作为keil的一脚本工具使用 但是在keil编译完成后总是弹出qt控制台 且keil编译按钮显示完成不了 只有将控制台关闭后 keil编译按钮才显示编译完成 影响使用效果 于是想关
  • OD机试题

    OD机考原题 1 恢复数字序列 对于一个连续正整数组成的序列 可以将其拼接成一个字符串 再将字符串里的部分字符打乱顺序 如序列8 9 10 11 12 拼接成的字符串为89101112 打乱一部分字符后得到90811211 原来的正整数10
  • 贪心算法

    贪心算法 不需要考虑整个解空间所有解 只考虑当前的最优解 不能回溯 也不记录每一步的解 习题 1 买卖股票的最佳时机 给定一个数组 prices 它的第 i 个元素 prices i 表示一支给定股票第 i 天的价格 你只能选择 某一天 买
  • Mysql应用安装后找不到my.ini文件

    一 背景 我在两台电脑上安装了MySQL Server 8 0 准备继续做主从配置 这时候就需要用到my ini文件进行配置 但是我找不到my ini文件 我的安装目录中没有my ini文件 这里我的mysql安装目录为C Program
  • [Ubuntu]Ubuntu18.04安装配置软件

    0 Ubuntu 查看自身版本信息 方法1 cat proc version 参数说明 Linux version 4 15 0 101 generic buildd lgw01 amd64 003 linux内核版本号 gcc versi
  • 解决Win10下_findnext()异常

    在win10中 使用文件遍历函数 findnext会报0xC0000005错误 原因 findnext 第一个参数 路径句柄 返回的类型为intptr t long long 如果定义为long 在win7中是没有问题 但是在win10中就
  • 数据分析毕业设计 招聘网站大数据分析与可视化系统 - python flask

    文章目录 0 前言 1 课题背景 2 实现效果 3 Flask框架 4 Echarts 5 爬虫 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学
  • Java list.sort() 写法

    1 完整版 list sort new Comparator
  • Java实现百度云vin识别接口代码

    本文是service调用shibie方法 controller略 public class ImagesService public static String getResult String otherHost https aip ba
  • Cesium--一些实验过程中的效果记录

    1 一种反射效果 片元着色器代码 fragmentShaderSource in vec3 v positionMC in vec3 v positionEC in vec2 v st void main czm materialInput
  • 苹果电脑如何同时运行Mac和Windows--pd18

    如何同时运行Mac和Windows呢 这里为大家推荐pd18 全名Parallels Desktop 18虚拟机 是很火爆的一款软件 可以在Mac上无缝衔接Windows系统 并且不用重启 可以同时运行 设置不同的桌面 两指手势 滑动就可以
  • 判定通视的计算法公式_测量学简答题(5篇范例)

    计算改正后的导线边的坐标增量 推算未知点的平面坐标 8 水准测量时为什么要求前后视距相等 水准仪视准轴不平行于管水准器轴之差称为i角 当每站的前后视距相等时 i角对前后视读数的影响大小相等 符号相同 计算高差时可以抵消 9 视差是如何产生的
  • 服务器名称显示空,服务器名称为空

    服务器名称为空 内容精选 换一换 当您想要通过华为云的云解析服务为您的邮箱服务器提供解析服务 可以参考本操作为域名配置邮箱解析 例如 搭建一个邮箱服务器 如果要实现通过mail example com登录邮箱 并使用域名作为SMTP IMA
  • javascript中各种数据类型比较及类型转换

    前言 Js中的数据类型可以分为Js中的数据类型可以分为原始值和引用值两大类 原始值存储在栈内存中 引用值存储在堆内存中 栈内存中会保存应用值的指针以供调用 属于原始值的数据类型有 number string undefined boolea
  • UE4平滑视角缩放

    Tick接Interp函数 用来做一个平滑过渡的值 这个值代表了一个从当前值到目标值的过渡 然后还有速度 当前值就是Target Arm Length 目标值新建一个变量 值和默认的Target Arm Length一样 下面滚轮事件 改I
  • Jenkins可持续集成_序:为什么要学习持续集成?

    阅读须知 上传的是图片 要看清楚请点击图片放大查看 版权声明 本图片来自于网络 如果涉及侵权问题 请及时联系本人删除 其他声明 本文章严禁转载 转载于 https blog 51cto com wangxiaoke 2367404
  • steam服务器连接不稳定WIN10,小编操作win10系统steam连接不稳的解决步骤

    我们的电脑都安装的是windows系统来进行办公或者娱乐 有时候会遇到一些比如win10系统steam连接不稳的问题 我们通过调查发现不少用户都碰到了win10系统steam连接不稳的问题 如果你现在找不到专业的人员来解决win10系统st
  • Android Studio 中Intel HAXM安装与模拟器创建

    Intel HAXM Hardware Accelerated Execution Manager 使用基于 Intel R Virtualization Technology VT 的硬件加速 因此需要 CPU 支持 VT 而且仅限于 I
  • C语言算法--快速排序法

    C语言算法 快速排序法 1 什么是快速排序法 快速排序 Quicksort 是一种常用的排序算法 它基于分治的思想 它的核心思想是选择一个基准元素 将数组划分为两个子数组 使得左边的子数组中的所有元素都小于等于基准元素 右边的子数组中的所有
  • 网络层IP协议

    一 IP协议的报文格式 1 4位版本号 目前只有IPv4和IPv6两个版本 所以这里只能填4或6 2 4位首部长度 4个bit能表示的最大数字是15 而这里的单位是4个字节 所以首部长度最大为15 4 60个字节 3 8位服务类型 8位服务