IP协议及相关特性

   IP协议负责地址管理和路由选择。它的组成为:

    接下来我们将对其中较重要的部分进行介绍。

     4位版本:这里的四位版本只有两个取值 分别为IPv4和IPv6,这两个额分别为不同的IP协议,但是现在主流的还是IPv4但是近年来IPv6在中国的普及率已经非常高了。

    4位首部长度:同TCP协议IP协议的报头也是可以变长的,报头长度是0~15实际上报头的上的是乘4的当为15时报头长度就是60。

    8位服务类型(TOS): 表示IP以哪种模式进行工作,其中3位优先字段已经被弃用,4位TOS字段和1位保留字段(必须置为0),4位TOS字段分贝表示:最小按时,最高可靠性,最小成本,最大吞吐量,这4者相互冲突,只能选择一个。

    16位总长度(字节数):IP数据报的长度,UDP也是16个字节但是只能传输64KB,但是IP则不同如果IP传输的数据超过了64KB,那么这个数据将会被拆包成每一个数据都小于64KB的部分,后续再进行组包。

    16位标识,3位版本,14位片偏移:这三个放在一起,主要是因为他们都是为了拆包组包做准备,16位标志就是将同一个包进行标记,是的进行组包的时候,,就可以判断哪一部分是不是同一份如果是同一份那么就可以进行组包,就是判断是否属于同一个包。3位标志中1位是查看当前是否需要组包,1位标识当前包是否是组包中的最后一个,还有一位就是没有什么作用,如果后续需要添加新的功能才会用到。13位位偏移,决定组包时候的先后顺序。

    8位生存空间(TTL):一个数据包在网络中最多生存多长时间,如果一个IP数据报的目的IP写错了,写成了不存在的IP就会消耗很多的网络资源,TTL(值32,64,128.....)约定了传送达到的次数(指的是经过路由器转发的次数),如果发送一个IP数据报TTL就会-1(经过交换机,不减)一旦TTL减到了0,此时这个数据包就会被当前路由器直接丢弃~~。

    8位协议:表示IP数据报中携带的是哪一种传输层网络协议,通过不同的数值感知接下来把数据交给TCP或UDP解析,还是其他协议。

    16位首部校验和:验证数据传输过程中是否出错(只针对首部IP报头)。

    32位源IP地址,32位目的IP地址:这两个是IP数据报中的最关键的信息,表示数据从哪里来到哪里去。IP地址也会出现不够用途的情况,自然也有解决方法:分别是动态分配IP地址,NAT网络地址转换,IPv6,接下来我们进行逐个介绍。

    动态分配IP地址:一个设备上网就分配不上网就不分配,但这只是权宜之计,不能很好的解决实际问题。

    NAT网络地址转换:使用一个IP代表一大波设备,IP地址分为两大类1,内网IP/私网IP 2,外网IP/公网IP。私网IP是由10.   172.16-172.31.*   和192.168.*开头的,要求公网IP必须是唯一的,但是私网IP允许是重复的(在不同的局域网中是允许重复的)。

    NAT网络地址转换发生情况,如果同一个局域网主机A访问主机B和公网上的设备A访问设备B都不会涉及到NAT,一个局域网中的主机A访问另一个局域网中主机B,NAT机制是不允许的,只有在局域网内部的设备访问公网上的设备BNAT机制主要就是针对这种情况进行生效的。

     IPv6:这个方案就简单粗暴了,直接更换IP协议,IPv4使用32位4个字节表示IP地址,IPv6使用128位16个字节表示IP地址,相当于IPv6的地址数比IPv4多了2^32*2^ 32*2^32个简单来说就是可以个地球上的每一粒沙子都分配上地址,IPv6的地址总数在地球上完全够用,根本不需要考虑用尽的情况。

    路由选择:路由选择是一个非常大的话题,我们只浅显的了解一下。网络是一个复杂的网状结构,因此从一个点到另一个点可能有很多条路,有花费时间长的,也有花费时间短的,这里的路由选择没办法找出最优解,只能找出较优解,这是因为,路由器都不知道我们整个网状结构的全貌,只能通过"问路"的方式,查找我们要去的节点路径,路由器的每一次问路都是比它自身大一级的路由器(认识的设备更广)进行问路,在通过路由控制表判断接下来该往哪里走,如果没有查到路由器有一个“默认的表项”进行下一跳(更高级的路由器),直到到达自己的目的地。

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

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

相关文章

linux系统如何通过进程PID号找到对应的程序在系统中的路径

linux系统如何通过进程PID号找到对应的程序在系统中的路径 首先我们用ps -aux​命令找到对应进程的PID号,比如我这里要得就是xmrig这个进程的PID号 ​​ 通过lsof命令查看对应进程的关联的文件,并找到可执行文件的路径 lsof -p 22785 | grep txt​​ 或…

棉花叶片病害检测数据集

【棉花叶片病害检测数据集】nc: 5 names: [blight, curl, healthy, wilt, wilt_png] 名称:【枯萎病, 卷叶病, 健康,萎蔫病,‘萎蔫病图像’】共3474张,8:1:1比例划分,(train;2888张,val&#xff…

MVCC机制解析:提升数据库并发性能的关键

MVCC机制解析:提升数据库并发性能的关键 MVCC(Multi-Version Concurrency Control) 多版本并发控制 。 MVCC只在事务隔离级别为读已提交(Read Committed)和可重复读(Repeated Read)下生效。 MVCC是做什么用的 MVCC是为了处理 可重复读 和…

C++ 带约束的Ceres形状拟合

C 带约束的Ceres形状拟合 一、Ceres Solver1.定义问题2. 添加残差AddResidualBlockAutoDiffCostFunction 3. 配置求解器4. 求解5. 检查结果 二、基于Ceres的最佳拟合残差结构体拟合主函数 三、带约束的Ceres拟合残差设计拟合区间限定 四、拟合结果bestminmax 五、完整代码 对Ce…

无法将ggplot图保存为PDF文件怎么办

即serif代表Times New Roman字体,sans代表Arial字体,mono代表Courier New字体。这种映射关系在基础绘图系统和ggplot2系统中均可使用。 既然字体找不到,那么就导入我们电脑的字体咯: # 这个代码只需运行一次 extrafont::font_im…

使用GitHub Actions实现前后端CI/CD到云服务器

一、静态站点部署(前端) 如果你要部署到github pages或者你不用SSR(服务端渲染),那就构建(SSG)静态站点 配置 nextjs配置SSG(静态站点)next.config.mjs,其…

跨域训练评估BEVal:自动驾驶 BEV 的跨数据集评估框架

跨域训练评估BEVal:自动驾驶 BEV 的跨数据集评估框架 Abstract 当前在自动驾驶中的鸟瞰图语义分割研究主要集中在使用单个数据集(通常是nuScenes数据集)优化神经网络模型。这种做法导致了高度专业化的模型,可能在面对不同环境或…

孙溟㠭浅析中国碑帖〈曹全碑〉

孙溟㠭浅析中国碑帖《曹全碑》 《曹全碑》 《曹全碑》亦称《郃阳令曹全碑》,东汉时期的碑刻。属于隶书体,东汉中平二年(公元158年)立碑。 《曹全碑》 于明代万历初年在陕西郃阳县莘里村被发现,碑文记载了东汉末年曹全…

2025秋招LLM大模型多模态面试题(七)- 思维链CoT

1.思维链(cot) 论文名称:Chain-of-Thought Prompting Elicits Reasoningin Large Language Models论文连接:Chain-of-Thought Prompting Elicits Reasoningin Large Language Models1.什么是思维链提示? 思维链(CoT)提示过程是一种最近开发的提示方法,它鼓励大语言模型解…

GUI编程14:Icon(图标)、ImageIcon(图像图标)标签

视频链接:16、Icon、ImageIcon标签_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p16&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.在Label上添加Icon package com.yundait.lesson04;import javax.swing.*; import java.awt.*;public cl…

C++数据结构-树的深度优先搜索及树形模拟法运用(进阶篇)

1. DFS简介 深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件&am…

Vue2电商平台项目 (三) Search模块、面包屑(页面自己跳自己)、排序、分页器!

文章目录 一、Search模块1、Search模块的api2、Vuex保存数据3、组件获取vuex数据并渲染(1)、分析请求数据的数据结构(2)、getters简化数据、渲染页面 4、Search模块根据不同的参数获取数据(1)、 派发actions的操作封装为函数(2)、设置带给服务器的参数(3)、Object.assign整理参…

comfyui中报错 Cmd(‘git‘) failed due to: exit code(128) 如何解决

🎈背景 comfyui今天在安装插件的过程中,发现有个插件第一次安装失败后,再次安装就开始报错了,提示: ComfyUI-Inpaint-CropAndStitch install failed: Bad Request 截图如下: 看下后台的报错: …

输入一个整数表示输出函数,也表示组成正方形边的*的数量

//输入一个整数表示输出函数&#xff0c;也表示组成正方形边的*的数量 //空心正方形 #include<stdio.h> int main() {int c 5;int i 0;int a[5][5] { 0 };int j 0;for (i 0; i < c; i){for (j 0; j < c; j){if (i 0)a[i][j] *;else if (j 0)a[i][j] *;el…

python的数据类型详解

python基础 认识python基本类型python的注释风格有三种&#xff08;也可以说是两种&#xff09;python的对齐方式python的多行语句折断字符串类型的“计算”列表的常见用法元组的常见用法集合set的常见用法字典的常见用法bytes类型python的输入输出python中的引用 认识python基…

优化最长上升子序列

前言&#xff1a;平时我们做的题目都是用动态规划做的&#xff0c;但是有没有能够优化一下呢&#xff1f; 有一个结论&#xff0c;长度为 i 的一个序列&#xff0c;最后一个元素一定是构成长度为 i 的序列中最小的 我们可以用二分来优化 题目地址 #include<bits/stdc.h>…

作为HR如何利用好校园招聘的渠道

对于企业来说校招是个非常不错的招聘渠道&#xff0c;虽然应届生没有工作经验&#xff0c;但是有很多具有高潜能的人才就在其中&#xff0c;他们年轻朝气&#xff0c;学习能力强&#xff0c;稍加培养就可以成为得力顺手的能人。 作为HR绝对要善于运营校招的渠道&#xff0c;如…

微服务_1、入门

文章目录 一、 认识微服务二、 微服务演变2.1、 单体架构2.2、 分布式架构2.3、 微服务2.4、 微服务方案对比 三、 注册中心3.1、 Eureka3.2、 Nacos3.2.1、服务分级存储模型3.2.2、权重配置3.2.3、环境隔离 一、 认识微服务 二、 微服务演变 随着互联网行业的发展&#xff0c;…

ICM20948 DMP代码详解(26)

接前一篇文章&#xff1a;ICM20948 DMP代码详解&#xff08;25&#xff09; 上一回解析完了inv_icm20948_load_firmware函数&#xff0c;回到inv_icm20948_initialize_lower_driver函数中&#xff0c;继续往下进行解析。为了便于理解和回顾&#xff0c;再次贴出inv_icm20948_in…

【黑马点评】已解决java.lang.NullPointerException异常

Redis学习Day3——黑马点评项目工程开发-CSDN博客 问题发现及描述 在黑马点评项目中&#xff0c;进行到使用Redis提供的Stream消息队列优化异步秒杀问题时&#xff0c;我在进行jmeter测试时遇到了重大的错误 发现无论怎么测试&#xff0c;一定会进入到catch中&#xff0c;又由…