IP 协议

IP 协议

  • .
  • IP协议格式
  • 四位版本号
  • 四位首部长度
  • 8位服务类型
  • 16位总长度
  • 16位标识符,3位标志位,13位片偏移
  • 8位生存时间TTL
  • 8位协议
  • 16位首部校验和
  • 32位源地址 32位目的地址
  • IP地址的组成
  • 特殊的IP地址

.

在这里插入图片描述

IP协议格式

在这里插入图片描述

四位版本号

用来表示IP协议的版本,现有的IP协议只有两个版本,IPv4,IPv6,其他版本只在实验室中存在,没有大规模商用

四位首部长度

设定和TCP一样,IP报头是可变长的,IP报头又是带有选项(可以有,可以没有)的,这里的单位也是4个字节,也就是最大有16*4=64个字节的长度

8位服务类型

真正只有四位才有效果,类似于模式切换:
最小延时,传输一个数据报的时间尽量短
最大吞吐量,一定时间内传输的数据尽量多
最高可靠性,在传输过程中最不容易丢包
最小成本,在传输过程中消耗的硬件资源最低
四种形态互斥,只能切换一种情况

16位总长度

IP报头+载荷的长度
总长度-IP报头的长度=载荷长度=TCP报文的总长度
TCP报文总长度-TCP报头长度=TCP载荷长度
这里的16总长度,确实也涉及到64kb的问题
但是IP协议,自身是支持"拆包组包"机制
这里的64kb只是约束了一个ip数据报,如果我们要携带一个比较长的数据报的时候,IP协议会自动的把一个数据报拆分为多个数据报,接收方在进行分用的时候,也会把多个数据报合并成一个数据报

16位标识符,3位标志位,13位片偏移

这三个标志描述了整个IP数据报拆包租包的过程
当IP数据报需要携带比较长的TCP数据的时候就在IP协议这一层触发拆包操作
把一个大包拆分成多个小包
多个小的IP数据报都会携带有IP报头,载荷是TCP数据报的几个部分
在这里插入图片描述
16位标识:拆出的这几个包,16位标识符是相同的
13位片偏移:不同的,前一个包,片偏移更小,后一个更大,通过片偏移就可以区分拆分包的顺序
3位标志位:其中有一位是不用的,还有一位表示是否允许拆包,显然上面这里是1,剩下一位表示"结束标记"标识当前的包是否是最后一个,这一位为0就表示当前是最后一个包了

8位生存时间TTL

单位是次
初始情况下TTL会有个数值(32/64/128)
每次经过一个路由器转发,TTL就会-1,减到0了就会被丢弃
正常来说,TTL足以支持数据到达网络的任意一个位置,如果确实出现0了,基本可以认为目标IP不可到达

8位协议

描述了传输层是使用了哪种协议

16位首部校验和

校验数据是否正确的机制,这里只需要校验首部即可,因为载荷是TCP和UDP数据报,而它们自己可以校验自己

32位源地址 32位目的地址

IP协议中最重要的部分,数据报从哪来,到哪去??
网络上有很多主机,需要有办法去描述主机的具体位置
IP地址就是解决这个问题的关键,所谓的IP地址,其实就是一个32位的整数(4字节)
点分十进制:由于按照32位的方式表示,会使得这个数字变得很大,很难理解记忆,一般都会把IP地址,按照点分十进制的方式来表示(使用三个.把32位分成四个部分,每个部分就是8位,也就是一个字节,每个字节的范围是0-255(不带符合))
比如:192.168.22.56
但是,32位表示的数据是有限的,差不多是42亿九千万,既然是地址,原则上是不能重复的,每个设备的IP得不相同,但是实际上是世界上能上网的设备,早就超过了这个数值,那么问题来了,IP地址不够用了该怎么办呢?
1.动态分配IP(DHCP)
设备不会一直需要上网,需要上网,就分配IP,不需要上网就先不分配IP
这个方案,只能缓解,不能根治
2.NAT机制(网络地址转换)(理解网络结构的关键要点)
把IP地址分为两大类:
1].内网IP;不同的局域网内的设备,内网IP可以重复,同一个局域网内的设备,内网IP不能重复
内网IP有三类:
10.*
172.16.*-172.31. *
192.168. *
2].外网IP:外网IP不能重复
1)局域网内部的设备之间的通信,是可以的(局域网内部的内网IP都是唯一的)
2)A局域网中的设备,想和B局域网中的设备进行通信,和可能会有IP冲突的情况,因此,这里的规则是禁止不同的局域网之间进行通信.想要通信,就需要有一个带有外网IP的设备进行中转
3)局域网内部的设备访问带有外网IP的设备
我们平时使用的电脑,平板,手机,都是在局域网内部使用的,它们会有一个内网IP
还有一类设备,是"服务器",服务器可以有外网IP
在这里插入图片描述
路由器配有自己的外网IP,用来与服务器的外网IP进行交互
当客户端给服务器发送请求的过程中,途径路由器的时候,就会触发NAT机制,路由器在转发数据的时候,就会使用自己的外网IP替换掉当前客户端发来的IP数据报中的源IP,当这个数据报到达服务器之后,服务器不知道这个数据报是来自原本的源IP的,只知道来源于路由器这里的外网IP地址
NAT机制下,意义在于说,一个外网IP代表的不一定是一个设备了,而是很多设备
那么服务器怎么把响应返回给客户端呢
在这里插入图片描述
服务器在返回IP数据报的时候,会先到达路由器,
对于NAT设备(路由器)来说,会在触发NAT机制的时候,维护一个映射表(抓换表),里面包含了替换前后的源IP,以及源端口
在返回响应的途中经过路由器之后,就会通过查表,把IP给替换回来
NAT的缺点很明显:
(1).效率不高
(2).非常繁琐
(3).不方便直接访问局域网内的设备
但是NAT是一个纯软件实现的方案,这个优点足以使得NAT一统天下
3.IPv6,从根本上解决IP不够用的问题
IPv4是4个字节,32位表示IP地址
IPv6是16个字节,128位表示IP地址
其实IPv6的诞生时间和NAT差不多,为什么NAT能成功,而IPv6发展起来举步维艰呢?
这是因为IPv4和IPv6不兼容,想要升级IPv6,就需要更换路由器设备=>花钱
相比之下,NAT方案,只需要路由器开发商开发出新版本的软件(路由器固件),升级软件,即可直接支持,成本非常低

IP地址的组成

IP地址分为两个部分,网络号和主机号
网络号:标识网段(局域网),保证相互连接的两个网段具有不同的标识;
主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;
IP地址,可以自动分配(家用设备,网络环境简单)
也可以手动分配(企业设备,网络环境复杂,需要网管来配置)
一个IP地址,哪些部分是网络号,哪些部分是主机号呢?
通过子网掩码来识别
子网掩码和IP地址一样,也是四字节,32位的整数
左侧必须是连续的1,右侧必须是连续的0
1的范围就对应了网络号的范围,0的范围则是对应了主机号的范围
一般家用路由器上的子网掩码是255.255.255.0
除此之外,上古时期,还有一种方案,
在这里插入图片描述

特殊的IP地址

在这里插入图片描述
此处广播,在传输层只能使用UDP,不能使用TCP,因为TCP不能针对广播地址进行三次握手,建立连接的操作

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java面试题之分布式/微服务篇

经济依旧不景气啊,如此大环境下Java还是这么卷,又是一年一次的金三银四。 兄弟们,你准备好了吗?冲冲冲!欧里给! 分布式/微服务相关面试题解 题一:CAP理论,BASE理论题二:…

pclpy 可视化点云(多窗口可视化、单窗口多点云可视化)

pclpy 可视化点云(多窗口可视化、单窗口多点云可视化) 一、算法原理二、代码三、结果1.多窗口可视化结果2.单窗口多点云可视化 四、相关数据五、问题与解决方案1.问题2.解决 一、算法原理 原理看一下代码写的很仔细的。。目前在同一个窗口最多建立2个窗…

江科大stm32学习笔记——【3-2】GPIO输出:LED闪烁LED流水灯蜂鸣器

(一) 硬件连接 1.LED闪烁 LED灯正极连接面包板电源正极,LED负极连接单片机A0口 (也可以LED负极连面包板负极,LED正极连接单片机A0口) 跳线连接单片机3.3和面包板正极,连接单片机GND和面包板负极 2.LED流水灯 3.蜂鸣…

2个wordpress优化SEO主题模板

SEO优化wordpress主题 简洁的SEO优化wordpress主题,效果好不好,结果会告诉你,适合SEO公司使用的主题。 https://www.jianzhanpress.com/?p2804 SEO优化海外WordPress主题 简洁的SEO优化海外服务商WordPress主题,为中国制造202…

GaussDB SQL调优:建立合适的索引

背景 GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000扩展能力,PB级海量存储等企业级数据库…

微服务篇之分布式系统理论

一、CAP定理 1.什么是CAP 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标: 1. Consistency(一致性)。 2. Availability(可用性)。 3. Partition tolerance &#xff0…

突破企业发展瓶颈:解决人、机、物数据关联难题

在当今竞争激烈的商业环境中,企业面临着诸多挑战,而这些痛点正逐渐成为企业发展的绊脚石。人、机、物数据采集复杂,关联困难,导致全方位产能协同难以实现;产品多样性使得精准管控变得愈发困难。同时,库存积…

干货 | 如何通过 Navicat Monitor 3 创建自定义指标

Navicat Monitor 3 是一款安全、简单且无需代理的远程服务器监控工具,包含许多强大的功能,尽可能使你的监控工作更加有效。你可以通过 Web 浏览器从任何地方访问 Navicat Monitor,获取关于服务器负载和性能的统计数据,包括可用性、…

开源图表库Echarts 简介与基本使用

ECharts 是一个使用 JavaScript 实现的开源可视化图表库,由百度团队开发。它提供了丰富的图表类型,如折线图、柱状图、饼图、地图、雷达图等,并且可以轻松地与其他前端框架和库集成。ECharts 的设计目的是为了满足复杂数据的可视化需求&#…

ES6内置对象 - Set

Set(es6提供的一种数据结构,类似数组,是一个集合,可以存储任何类型的元素且唯一、不重复,so,多用于元素去重) 如上图,Set数据结构自带一些方法 1.Set对象创建 let a new Set([1,2,3,3,1,2,4,…

C++力扣题目 739--每日温度 496--下一个更大元素I 503--下一个更大元素II

739. 每日温度 力扣题目链接(opens new window) 请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,…

【Unity】【VR开发】Unity云同步功能使用心得

【背景】 有时出差,旅行等等也带着电脑,晚上想要继续编辑项目,就需要用到云同步功能。目前实践下来,发现有些内容可以同步,有些内容则是不可以同步的,总结如下。 【如何云同步一个本地项目】 UnityHub的项目面板中有两个选项卡:项目和云端项目。 鼠标挪动到想要云同步…

web基础及http协议 (二)----------Apache相关配置与优化

一、httpd 安装组成 http 服务基于 C/S 结构 1 .常见http 服务器程序 httpd apache,存在C10K(10K connections)问题 nginx 解决C10K问题lighttpd IIS .asp 应用程序服务器 tomcat .jsp 应用程序服务器 jetty 开源的servlet容器&#xf…

Springboot+Vue为技术栈的低代码平台“JNPF”

目录 1.什么是JNPF 2.设计原理 3.自动化解决方案 4.平台亮点展示 5.总结 如果你有软件开发的需求,推荐你使用以Vue为技术栈的低代码JNPF。 这款低代码和市面上的其他低代码区别很大的,相较于轻流、简道云、轻宜搭、微搭、帆软、活字格等等&#xff…

Spring 类型转换、数值绑定与验证(二)—PropertyEditor与Conversion

Spring 中,属性类型转换是在将数值绑定到目标对象时完成的。例如在创建ApplicationContext 容器时,将XML配置的bean 转换成Java类型对象,主要是借助了PropertyEditor类,而在Spring MVC 的Controller的请求参数转化为特定类型时&am…

[力扣 Hot100]Day33 排序链表

题目描述 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 出处 思路 归并排序即可。 代码 class Solution { public:ListNode* merge(ListNode *h1,ListNode *h2) {ListNode *head nullptr;if(h1->val<h2->val){head h1;h1h1-…

Python代码实现2024年刘谦春晚魔术

import randomdef main():# 扑克牌随机抽取4张牌playingCards [A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K]cardTackA []for i in range(4):k random.choice(playingCards)cardTackA.append(k)# 将抽取的4张牌随机打乱cnt 0while cnt < 100:random.shuffle(cardTackA)cnt …

中国AIGC技术与应用,发展峰会来啦!

随着技术的快速发展&#xff0c;AIGC正高歌猛进&#xff0c;已经成为推动创新、重塑行业边界的关键力量。AIGC技术利用人工智能算法&#xff0c;如自然语言处理&#xff08;NLP&#xff09;和深度学习模型&#xff0c;自动化地生成文字、图片、视频和音频等内容&#xff0c;这些…

Java对象内存图和垃圾回收

多个对象的内存图 两个变量指向同一个对象内存图 垃圾回收 ⚫ 注意&#xff1a;当堆内存中的 类对象 或 数组对象 &#xff0c;没有被任何变量引用&#xff08;指向&#xff09;时&#xff0c;就会被判定为内存中的 “垃圾”。 ⚫ Java存在自动垃圾回收器&#xff0c;会定…

RF 框架实现企业级 UI 自动化测试

RobotFramework 框架可以作为公司要做自动化 但是又不会代码的一种临时和紧急情况的替代方案&#xff0c;上手简单。 前言 现在大家去找工作&#xff0c;反馈回来的基本上自动化测试都是刚需&#xff01;没有自动化测试技能&#xff0c;纯手工测试基本没有什么市场。 但是很多…