当前位置: 首页 > news >正文

IP协议报文

一.IP协议报头结构



二.IP协议报头拆解

1.4位版本

实际上只有两个取值,分别是4和6,4代表的是IPv4,6代表的是IPv6。

2.4位首部长度

IP协议报头的长度也是边长的,单位是*4,这里表示的大小为0~15,当数值为15时,报头长度位60,和TCP一样。

3.8位服务类型TOS

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

i.最小延时:数据从A到B消耗的时间最短。

ii.最大吞吐量:数据从A到B单位时间内,传输的数据量最多。

iii.最高可靠性:IP协议并不会像TCP那样有严格的可靠性机制,但是IP一些机制也会影响到丢包的概率。

iv.最小成本:设备上减少消耗。

4.16位总长度

        IP数据报的总长度:16位总长度相当于2个字节,一个数据包最大才64KB,但是并不是说IP数据报只能传64KB的数据,它也能传输大的数据,因为IP协议内置了拆包组包的机制,会自动把大的数据包拆成多个IP数据报来携带数据,在接收方拼接。

5.拆包组包的属性

  i.16位标识:IP协议会自动拆包,同一个载荷的数据会被分成多份,交给多个IP数据报来携带,并且多个IP数据报之间,16位标识是相同的。

 ii.3位标志:只有2个有效,还有一个保留位。其中一个表示这个包是否需要组包(是否是拆包的一部分),另一个表示当前包是否为组包中的最后一个单位。

iii.13位片偏移:决定组包时数据报的位置。(防止后发先至)

6.八位生存时间(TTL)

  

        8位生存空间这个指的是一个IP数据包最久存活的时间,但是这个不是按时间来进行计算的,而是通过路由器转发的次数来进行计算(经过交换机不会扣次数),而TTL是有转发次数的限制的,当发送一个IP数据报的时候会有一个TTL的初始值(32,64,128...),数据每经过一个路由器都会减少TTL的值,当TTL的值为0的时候,这个数据报就会被丢弃。

7.八位协议

        IP数据报中的载荷,载荷通过携带不同传输层协议的数据包,类似于TCP/UDP的端口号。

8.16位首部校验和

        验证传输过程中IP报头是否发生错误,不管IP的载荷,载荷部分TCP/UDP都有自己的校验和。

9.32位IP地址

        IP地址是32位的,但是不方便人为观察,便通过点分十进制来进行化简,一共有三个点,每个部分是一个字节,大小不超过255:类似于192.192.192.192这种(乱写的)

        IP地址是唯一的,IP是32位大小,可以表示的范围是0~42亿9千万,但是如今的互联网发展迅速,这个大小已经无法满足现在的需求了。

三.解决IP地址不够的方法

1.动态分配地址

        当一个设备上网的时候,才会对它进行地址的分配,当该设备上网的时候,就不再进行地址的分配,对于IP地址不够用的解决只能算是权宜之计。

2.NAT(网络地址转换)

i.公网和私网IP

IP地址被分为两大类,第一种是公网IP/外网IP,第二种就是私网IP/内网IP。公网IP是不能重复的只能有一个,而私网IP可以在不同的局域网内中重复。

私网IP / 内网IP 的IP一般都是这几个类型:10.*   /    172.16~172.31.*     / 192.168.*(学会区分)

其他的就是公网IP / 外网IP 

ii.NAT的工作原理

NAT的作用:一个设备在上网的时候,IP数据报的IP地址,就会被NAT(通常是路由器)自动进行修改。

1.同一个局域网中,主机A访问主机B,不会涉及到NAT机制。

2.公网上的设备A,访问公网上的设备B,不会涉及到NAT。

3.一个局域网中的主机A,访问另一个局域网中的主机B,NAT机制中,不允许有这样的访问。

4.局域网内部的设备A,访问公网上的设备B,NAT机制会生效,并且NAT就是为了解决这个问题。

iii.NAT的工作过程

1.当我使用我的电脑发送IP数据报给卫星这个应用程序的时候,其中NAT会将我的IP数据报的IP地址自动发生改变,并把IP数据报发送给卫星这个应用程序:

2.当卫星这个应用程序接收到了我的电脑发送的IP数据报时,再将它的IP数据报传回给我的电脑上,并且通过NAT机制来进行:

3.如果有多个设备访问运营商路由器,并且给同一个服务器发送IP数据报,此时NAT机制会有映射关系:

        需要注意的是,如果A主机和B主机的端口号在很小的概率下,两者的端口号相同了,那么在运营商IP地址记录映射关系的时候,生成的新端口号会不同。在网络通信中,不仅仅只有IP信息是关键信息,端口号也是关键信息,端口号本身的作用就是区分同一个主机上的不同的应用程序,但在NAT中可以就可以用于区分不同主机上的不同的应用程序。

iv:NAT的缺点

        NAT机制的缺点在于网络环境过于复杂,替换过程中,需要维护每一层路由器的映射关系,每次转发数据,都需要查询映射关系等等,开销比较大。

3.使用IPv6

        可以根本上解决地址不沟通的问题,因为IPv6是使用了128位16个字节表示IP地址,而IPv4使用的是32位4个字节来表示IP地址的,这个差距是非常大的,因为IPv6是2*128,而IPv4是2*32。

        但是IPv6之所以没被普及,是因为使用IPv6需要使用新的设备,这样需要花很多钱,可是替换之后并不会有什么显著的提升,所以很多设备还是继续使用IPv4。而NAT机制只需要给路由器更新升级软件就可以,硬件不需要更换,成本更低。

 IPv6的内网:

http://www.lryc.cn/news/452614.html

相关文章:

  • 【分布式微服务云原生】掌握分布式缓存:Redis与Memcached的深入解析与实战指南
  • 计算机毕业设计 基于Python的智能文献管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • 如何查看NVIDIA Container Toolkit是否配置成功
  • python全栈学习记录(二十一)类的继承、派生、组合
  • Go语言实现长连接并发框架 - 任务执行流
  • Flutter与原生代码通信
  • 每日读则推(三)
  • Android Studio | 无法识别Icons.Default.Spa中的Spa
  • SKD4(note上)
  • rabbitmq----数据管理模块
  • 【人工智能深度学习应用】妙笔API最佳实践
  • SOMEIP_ETS_150: SD_Send_triggerEventUINT8Multicast_Eventgroup_6
  • 【EXCEL数据处理】000009 案列 EXCEL单元格数字格式。文本型数字格式和常规型数字格式的区别
  • Vxe UI vue vxe-table vxe-text-ellipsis 如何实现单元格多行文本超出、多行文本溢出省略
  • FFmpeg源码:avio_feof函数分析
  • 各省-城镇化率(2001-2022年)
  • 飞创龙门双驱XYZ直线模组高精度应用实例
  • Prompt 初级版:构建高效对话的基础指南
  • 餐饮重点企业在AI领域的布局,看方大的AI实践
  • Axure PR 9 开关切换 设计交互
  • ruoyi-python 若依python版本部署及新增模块
  • 【理论】负载均衡
  • 流行前端框架Vue.js详细学习要点
  • Java.数据结构.TreeMap
  • 什么是托管安全信息和事件管理 SIEM?
  • vscode安装及c++配置编译
  • JavaScript使用渐变来美化对象!
  • Linux之实战命令24:od应用实例(五十八)
  • 【CKA】一、基于角色的访问控制-RBAC
  • 【华为HCIP实战课程三】动态路由OSPF的NBMA环境建立邻居及排错,网络工程师