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,那么这个数据将会被拆分成许多很小的包,后续再进行组包。

    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.mzph.cn/bicheng/54377.shtml

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

相关文章

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(上)

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ OpenHarmony(鸿蒙南向开发)——轻量系统STM32F407芯片移植案…

Java语言程序设计基础篇_编程练习题*18.28 (非递归目录大小)

目录 题目:*18.28 (非递归目录大小) 习题思路 代码示例 输出结果 题目:*18.28 (非递归目录大小) 不使用递归改写程序清单18-7 习题思路 ( getSize方法) 创建一个变量表示总共的大小。传入路径,创建File文件。创建A…

【Elasticsearch】-图片向量化存储

需要结合深度学习模型 1、pom依赖 注意结尾的webp-imageio 包&#xff0c;用于解决ImageIO.read读取部分图片返回为null的问题 <dependency><groupId>org.openpnp</groupId><artifactId>opencv</artifactId><version>4.7.0-0</versio…

docker存储

docker分层结构 如图所示&#xff0c;容器是由最上面可读可写的容器层&#xff0c;以及若干个只读镜像层组成&#xff0c;创建容器时&#xff0c;容器中的 数据都来自镜像层。这样的分层机构最大的特点是写时复制&#xff1a; 1、容器中新生成的数据会直接存放在容器层&#xf…

移动技术开发:登录注册界面

1 实验名称 登录注册界面 2 实验目的 掌握基本布局管理器的使用方法和基本控件的使用方法 3 实验源代码 布局文件代码&#xff1a; <?xml version"1.0" encoding"utf-8"?><LinearLayoutxmlns:android"http://schemas.android.com/apk/…

在Windows 7上安装Redis

1、下载Redis安装包‌&#xff1a; 首先&#xff0c;从Redis的官方网站或可信的第三方资源下载Redis的Windows版本安装包。确保下载与你的Windows 7系统兼容的版本。 2、解压安装包‌&#xff1a; 将下载的Redis安装包解压到你选择的目录&#xff0c;例如F:\Redis\redis-win…

关于文件操作

1. 为什么使⽤⽂件&#xff1f; 如果没有⽂件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失 了&#xff0c;等再次运⾏程序&#xff0c;是看不到上次程序的数据的&#xff0c;如果要将数据进⾏持久…

栈和队列的算法题目(C语言)

1. 括号匹配问题 20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 利用栈后入先出的特性解题 1.判断字符串是否为空 为空返回 2.创建栈&#xff0c;遍历字符串 第一个字符是左括号的情况&#xff1a;入栈->继续遍历下一个字符 第一个字符是右括号的情况&#xf…

CAD图1

文章目录 选择直线工具选择圆形选中圆形 选择直线工具 画一条十字中心线 选择圆形 以十字中心为起点画一个半径为 53 的圆形 选中圆形 选中圆形&#xff0c;捕捉右侧圆形焦点

【算法专题】穷举vs暴搜vs深搜vs回溯vs剪枝

二叉树剪枝 LCR 047. 二叉树剪枝 - 力扣&#xff08;LeetCode&#xff09; 本题要求我们将全部为0的二叉树去掉&#xff0c;也就是剪枝&#xff0c;当我们举一个具体的例子进行模拟时&#xff0c;会发现&#xff0c;只关注于对其中一个子树的根节点进行剪枝&#xff0c;由于我…

4款AI生成PPT工具推荐,提升工作效率

在如今的工作环境中&#xff0c;PPT制作是许多技术人员不可避免的任务&#xff0c;尤其是在汇报、展示技术方案、以及项目进展时。随着AI技术的快速发展&#xff0c;使用AI生成PPT成为了提高效率的一种新趋势。本文将介绍几款适合程序员、技术人员的AI生成PPT工具&#xff0c;帮…

强化学习——马尔可夫决策过程(MDP)【附 python 代码】

一、马尔可夫过程 过程介绍随机过程在某时刻 t 的状态 S t S_t St​ 通常取决于 t 时刻之前的状态。状态 S t 1 S_{t1} St1​ 的概率表示为&#xff1a; P ( S t 1 ∣ S 1 , . . . , S t ) P(S_{t1}|S_1,...,S_t) P(St1​∣S1​,...,St​)马尔可夫过程某时刻 t 的状态只取…

JAVA-集合相关

HashMap如何解决哈希冲突的&#xff1f; 计算hash值&#xff0c;基于hashCode计算冲突之后&#xff0c;先是使用链式寻址法当链表长度大于8&#xff0c;且hash表的容量大于60的时候&#xff0c;再添加元素则转化成红黑树 为什么计算hash值是&#xff0c;是将hash地址的值右移1…

大数据Flink(一百一十八):Flink SQL水印操作(Watermark)

文章目录 Flink SQL水印操作&#xff08;Watermark&#xff09; 一、为什么要有WaterMark 二、​​​​​​​​​​​​​​Watermark解决的问题 三、​​​​​​​​​​​​​​代码演示 Flink SQL水印操作&#xff08;Watermark&#xff09; 一、​​​​​​​为什么…

43.常用C++编译器推荐——《跟老吕学C++》

43.常用C编译器推荐——《跟老吕学C》 常用C编译器推荐一、C编译器介绍1. GCC (GNU Compiler Collection)2. Clang2.1 Clang的特点2.2 Clang的应用场景2.3 Clang与GCC的比较 3. Microsoft Visual C (MSVC)MSVC的特点MSVC的使用场景MSVC与其他编译器的比较 4. Intel C Compiler4…

【Midjourney中文版】

Midjourney中文版打破了传统创作工具的界限&#xff0c;无需具备专业的艺术技能或复杂的软件操作能力&#xff0c;即可轻松创作出高质量的图片。它支持多种创作模式&#xff0c;包括文生图、图生图、图片混图融合等&#xff0c;满足多样化的创作需求。 打开Midjourney中文版后…

istio中如何使用serviceentry引入外部服务

假设需要引入一个外部服务&#xff0c;外部服务ip为10.10.102.90&#xff0c;端口为32033. 引入到istio中后&#xff0c;我想通过域名gindemo.test.ch:9090来访问这个服务。 serviceentry yaml内容如下&#xff1a; apiVersion: networking.istio.io/v1beta1 kind: ServiceEn…

【Pycharm】Pycharm创建Django提示pip版本需要升级

目录 1、现象 2、分析 3、本质 前言&#xff1a;经常使用pycharm创建django、flask等项目时候提示pip版本需要升级&#xff0c;解决方案 1、现象 使用Pycharm创建Django项目提示安装Django超时&#xff0c;报错建议pip升级22升级到24 2、分析 之前使用命令升级了pip到了24…

VS code EXPLORER 中不显示指定文件及文件夹设置(如.pyc, __pycache__, .vscode 文件)

VS code EXPLORER 中不显示指定文件及文件夹设置 引言正文方法1打开方式1打开方式2 方法2 引言 VS code 号称地表最强轻量级编译器&#xff0c;其最大的优势在于用户可以根据自己的需求下载适合自己的 extension。从而定制个性化的编译器。然而&#xff0c;本人今天遇到了一个…

出厂非澎湃OS手机解BL锁

脚本作者&#xff1a;酷安mlgmxyysd 脚本项目链接&#xff1a;https://github.com/MlgmXyysd/Xiaomi-HyperOS-BootLoader-Bypass/ 参考 B站作者&#xff1a;蓝空穹 https://www.bilibili.com/read/cv33210124/ 其他参考&#xff1a;云墨清风、水墨青竹、Magisk中文网 决定解BL…