IP 协议的相关特性(部分)

IP 协议的报文格式

4位版本号

        用来表示IP协议的版本,现有的IP协议只有两个版本,IPv4,IPv6。

4位首部长度:

        设定和TCP的首部长度一样

8位服务类型:

        (真正只有4位才有效果),类似于模式/形态 切换。3位优先权字段(已经弃用),4TOS字段,和1位保留字段(必须置为0)。4TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于ftp这样的程序,最大吞吐量比较重要。

16位总长度

        IP数据报整体占多少个字节。16位总长度为64kb,但是IP协议,自身支持“拆包组包”机制,如果需要携带比较长的数据的时候,IP协议会自动的把一个数据报拆成多个数据报,接收方在进行分用时,也会把多个数据报合并成一个数据报。

16位标识:

        唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的。

13位分片偏移
        是分片相对于原始IP 报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。因此当一个数据报被分片后,数字小的为前面的数据报,数字大的为后面的数据报。
3位标志字段:
        第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为1表示禁止分片,这时候如果报文长度超过MTUIP模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为0,其他是1。类似于一个结束标记。
8位生存时间(TTL
        数据报到达目的地的最大报文跳数。一般是64 。每次经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。
8位协议:
        表示上层(传输层)协议的类型。
16位头部校验和:
        使用CRC 进行校验,来鉴别头部是否损坏,只需要校验首部。
要想知道什么是源IP,就得知道什么是IP。 IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说, IP 地址用于定位主机的网络地址(设备所在) 。就像发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。 IP 格式: IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110。通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6。 特殊 IP:

127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于

开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。IP协议有两个版本,IPv4IPv6。我们整个的课程,凡是提到IP协议,没有特殊说明的,默认都是指IPv4。 IPv4数量=2^32,大约43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址。对于全世界 计算机来说,这个数量是不够的,所以后来推出了IPv6(长度128)。但因为目前IPv4还广泛的使用,且可以使用其他技术来解决IP地址不足的问题,所以IPv6也就没有普及。

        那么IPv4的地址不够用怎么办?有这几种方法。

1)动态分配IP(DHCP):你这个设备不会一直需要上网,等需要上网时,就分配IP,不需要时就不先分配。不过这种方法只能缓解,但不能根治。
2)NAT机制(网络地址转换):把IP地址分成两大类,1.内网IP:不同的局域网的IP地址可以相同,同一个局域网的内网IP地址不可以相同。此时,大量的设配可以使用同样的IP了(在不同的局域网),IP不够用的问题就得到了很大的改善。2.外网IP:外网IP不能重复。
        如果是同一个局域网内部之间的设备进行通信,那肯定可以,但是如果A局域网的设备想和B局域网中的设备通信,这两个设备的IP地址可能相同,哪怎么办?这种情况是禁止的,如果想通信,就需要有一个带有外网IP的设备进行中转。那么局域网中的设备如何访问带有外网IP的设备呢?当局域网中的设备访问带有外网IP的设备时,如向一个服务器发送信息,这个信息经过层层中转,到达电信路由器(带有外网IP),然后触发NAT机制,此时这个外网IP就会将信息中的源IP替换成这个外网IP,替换后会维护一张映射表,描述着替换前的IP和替换后的IP,然后在发送给该服务器,当服务器返回响应后给这个外网IP,然后这个外网IP就根据这个映射表将目的IP给替换成原来得IP,这样就完成了交互。上述过程是简化的,其实在到达电信客户端时就可能经历过多次NAT机制。不过NAT的缺点也很明显,如效率不高,非常繁琐,不方便直接访问局域网内的设备,也不能真正解决IP地址不够用的情况等。而IPv6因为数量够大,它才真正解决了IP地址不够用的情况,不过IPv6和IPv4不兼容。那么为什么IPv6没有大规模普及呢?可能是因为要想升级IPv6,就需要更换路由器等设备,而IPv4则只需要路由器厂商开发出新版本的软件,升级软件,即可直接支持,这也是NAT的最大优势,“纯软件实现”。
        IP地址分为两个部分,网络号和主机号
1)网络号:标识网段,相互连接的两个网段具有不同的标识
2)标识主机,同一个网段内,主机之间具有相同的网络号,但是必须具有不同的主机号。
同一个局域网中设备的网络号必须相同,主机号必须不同,不同的局域网的网络号必须不同。那么如何分辨哪个部分是网络号?哪个部分是主机号呢?这就要通过子网掩码来识别,子网掩码和IP地址一样,也是4字节,32位整数,左侧必须是连续的1,右侧必须是连续的0,0和1不能穿插,n个比特位为1的是网络号,m个比特位为0的为主机号。如有20个比特位为1,12个比特位为0,那么IP地址前20个比特位为网络号,后12个比特位为主机号。
        
        上述说的是IP协议如何管理地址,IP协议还有另一个重要功能:路由选择。当传输信息时,由于路由器无法了解全貌,只能认识部分网络情况(和它相邻的设备情况),在这个前提下,进行路由转发,就只能“摸着石头过河”,因此路由器转发数据的过程相当于问路,每个路由器内部有一个数据结构路由表,数据报到达路由器的时候,就需要查询路由表(问路),如果查到了,就可以直接按照这个方向继续转发,数据就能到达。如果没查到,路由器会给一个默认的方向(下一跳地址),沿着默认方向走(往往是走到上一级路由器)。

 

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

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

相关文章

Linux C/C++ 嗅探数据包并显示流量统计信息

嗅探数据包并显示流量统计信息是网络分析中的一种重要技术,常用于网络故障诊断、网络安全监控等方面。具体来说,嗅探器是一种可以捕获网络上传输的数据包,并将其展示给分析人员的软件工具。在嗅探器中,使用pcap库是一种常见的方法…

【TensorFlow2 之014】在 TF 2.0 中实现 LeNet-5

一、说明 在这篇文章中,我们将展示如何在 TensorFlow 中实现像 \(LeNet-5\) 这样的基础卷积神经网络。LeNet-5 架构由 Yann LeCun 于 1998 年发明,是第一个卷积神经网络。 数据黑客变种rs 深度学习 机器学习 TensorFlow 2020 年 2 月 29 日 | 0 …

AUTOSAR组织发布20周年纪念册,东软睿驰NeuSAR列入成功案例

近日,AUTOSAR组织在成立20周年之际发布20周年官方纪念册(20th Anniversary Brochure),记录了AUTOSAR组织从成立到今天的故事、汽车行业当前和未来的发展以及AUTOSAR 伙伴关系和合作在重塑汽车方面的作用。东软睿驰提报的基于AUTOS…

行情分析——加密货币市场大盘走势(10.16)

目前大饼再次止稳,并开始向上攀升,目前MACD来看也是进入了多头趋势。重新调整了蓝色上涨趋势线,目前来看这次的低点并没有跌破上一个低点,可以认为是上涨的中继。注意白天的下跌回调。 以太目前也是走了四连阳线,而MAC…

关于Skywalking Agent customize-enhance-trace对应用复杂参数类型取值

对于Skywalking Agent customize-enhance-trace 大家应该不陌生了,主要支持以非入侵的方式按用户自定义的Span跟踪对应的应用方法,并获取数据。 参考https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/cust…

STM32 ---- 再次学习STM32F103C8T6/STM32F409IGT6

目录 一、环境搭建及介绍 关于STM32基础介绍 新建工程 外设案例 LED流水灯 蜂鸣器 上拉电阻和下拉电阻知识 电压比较器 c语言基础知识 类型、结构体、枚举 类型int8_t int16_t int32_t 宏替换 #define 和typedef用法 结构体两种填充方法 和 命名规则 枚举用法 常用…

uniapp中全局页面挂载组件(H5)

前言 我们已经学习了 uniapp中全局页面挂载组件(小程序) 有些小伙伴问在H5怎么做那让我们试一试 直接上代码 //引用组件 import dialog from ./index.vue; //我这里要把小程序的方法和h5方法写一起所以用了混入 import mixins from ./mixins.js //使用…

ElementUI编辑表格单元格与查看模式切换的应用

需求:有时候在填写表单的时候,想要在输入的时候是input输入框的状态,但是当鼠标移出输入框失去焦点时,希望是查看的状态,这种场景可以通过 v-if实现 vue2ElementUi里面使用如下: 1.el-table标签注册 cell-…

GitLab(1)——GitLab安装

目录 一、使用设备 二、使用rpm包安装 Gitlab国内清华源下载地址: ①下载命令如下: ②安装命令如下: ③删除rpm包 ④配置 ⑤重载 ⑥重启 ⑦配置自启动 ⑧打开8989端口并重启防火墙 三、GitLab登录 ①访问GitLab的URL ②输入用户…

如何实现 Es 全文检索、高亮文本略缩处理(封装工具接口极致解耦)

如何实现 Es 全文检索、高亮文本略缩处理 前言技术选型JAVA 常用语法说明全文检索开发高亮开发Es Map 转对象使用核心代码 Trans 接口(支持父类属性的复杂映射)Trans 接口可优化的点高亮全局配置类如下真实项目落地效果为什么不用 numOfFragments、fragm…

203、RabbitMQ 之 使用 direct 类型的 Exchange 实现 消息路由 (RoutingKey)

目录 ★ 使用direct实现消息路由代码演示这个情况二ConstantUtil 常量工具类ConnectionUtil 连接RabbitMQ的工具类Publisher 消息生产者测试消息生产者 Consumer01 消息消费者01测试消费者结果: Consumer02 消息消费者02测试消费者结果: 完整代码&#x…

微信小程序框架---详细教程

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 ,越幸运。 目录 1.框架 1.1响应的数据绑定 1.2.页面管理 1.3.基础组件 1.4.丰富的 API 2.视图层 View 2.1.介绍 …

Jmeter脚本参数化和正则匹配

我们在做接口测试过程中,往往会遇到以下几种情况 每次发送请求,都需要更改参数值为未使用的参数值,比如手机号注册、动态时间等 上一个接口的请求体参数用于下一个接口的请求体参数 上一个接口的响应体参数用于下一个接口的请求体参数&#…

【09】基础知识:React组件的生命周期

组件从创建到死亡它会经历一些特定的阶段。 React 组件中包含一系列勾子函数&#xff08;生命周期回调函数 <> 生命周期钩子函数 <> 生命周期函数 <> 生命周期钩子&#xff09;&#xff0c;会在特定的时刻调用。 我们在定义组件时&#xff0c;会在特定的生…

一文理解登录鉴权(Cookie、Session、Jwt、CAS、SSO)

1 前言 登录鉴权是任何一个网站都无法绕开的部分&#xff0c;当系统要正式上线前都会要求接入统一登陆系统&#xff0c;一方面能够让网站只允许合法的用户访问&#xff0c;另一方面&#xff0c;当用户在网站上进行操作时也需要识别操作的用户&#xff0c;用作后期的操作审计。…

灾害与环境遥感团队本科生在IEEE TGRS 发表高水平论文

2023年9月27日&#xff0c;地球科学和遥感领域顶级期刊《IEEE Transactions on Geoscience and Remote Sensing》&#xff08;IEEE TGRS&#xff09;在线预刊发了灾害与环境遥感团队的最新研究成果“A novel spectral index for rapid dust-proof net mapping based on Sentine…

想做WMS仓库管理系统,找了好久才找到云表

公司内部仓库管理原方式均基于人工电子表格管理方式来实现收发存管理&#xff0c;没有流程化管理&#xff0c;无法保证数据的准确性和及时性&#xff0c;同时现场操作和数据核对会出现不同步的情况&#xff0c;无法提高仓库的运作效率&#xff0c;因此&#xff0c;我们基于云表…

【设计模式】单例模式、“多例模式”的实现以及对单例的一些思考

文章目录 1.概述2.单例模式实现代码2.1.饿汉式单例2.2.懒汉式单例2.3.双检锁单例2.4.静态内部类单例2.5.枚举单例 3.对单例的一些思考3.1.是否需要严格的禁止单例被破坏&#xff1f;3.2.懒汉式真的比饿汉式更佳吗&#xff1f;3.3.单例存在的问题 4.其他作用范围的单例模式4.1.线…

关闭VS Code中的鼠标悬停时的提示框(MDN Reference)

在使用VS Code编辑器写html文件时&#xff0c;鼠标悬停在写的某些内容时会弹出一个提示框&#xff0c;如下图&#xff1a; 这个提示是比较烦人的&#xff0c;接下来分享关闭它的教程&#xff1a; 这里是以Win10版的Visual Studio Code为例 1.打开VS Code 的设置界面 2.在扩展…

《开箱元宇宙》:《福布斯》如何通过 Web3 改进讲故事的方式

你们是否想知道 The Sandbox 如何融入世界上最具标志性的品牌和名人的战略&#xff1f;在本期《开箱元宇宙》系列中&#xff0c;我们与《福布斯》一起探讨了他们为何决定在 The Sandbox 中尝试 Web3&#xff0c;以及他们如何改变讲故事的方式&#xff0c;以便在一次体验中吸引超…