文章目录
- IP协议
- IP协议报头格式
- IP协议报头的各个区段
- 四位版本
- 四位首部长度
- 八位服务类型
- 16位总长度
- 16位标识,3位标志,13位片偏移
- 八位生存时间
- 八位协议
- 地址管理
- IP地址
- 解决提议1:动态分配Ip地址
- 解决提议2:NAT机制
IP协议
IP协议报头格式
想要学会一个协议就要了解这个协议的格式,下图是这个协议的格式图那么接下来我们针对这个图进行详细的解析
IP协议报头的各个区段
四位版本
首先呢是这个四位版本,我们说的IP地址目前是有两个版本的一个是ipv4协议,一个是ipv6协议目前来说使用范围最大的就是这两个了,而我们通过自己的电脑就可以查看查看方法就是win+r然后输入cmd,再然后输入ipconfig命令便可查看。那么这两者有什么区别呢?
Ipv4:ipv4协议其实指的就是ip地址是四个字节那么最大表示范围也就是2^32,他的数值表示是以点分10进制表示,列如192.0.2.1。
IPv6:Ipv6协议,是指地址最大是6个字节以八组16进制数字表示并且以冒号分隔。
四位首部长度
为什么这里使用4位首部长度呢?因为其实IP协议的报头也是变长字节的
八位服务类型
什么是八位服务类型呢?因为我们的IP协议形态其实是可以发生改变的,这八位是如何构成的呢?它分为了3位优先权字段(目前已经弃用了),4位TOS字段和1位保留字段(必须置为0)那么这四位TOS字段代表什么呢?他代表的是最小延时,最大吞吐量,最高可靠性,最小成本,他就像迪迦奥特曼一样次啊的一下就可以改变自己的形态改变自己形态之后就会使得自己的属性发生改变。
16位总长度
这里描述了IP数据包最长是多长,当然了既然存在最长说明IP协议也存在长度限制,不过iP协议本身也支持拆包和组包,那既然支持拆包和组包,那就肯定需要标志位,去完成这件事情那么他的标志位是什么呢?
16位标识,3位标志,13位片偏移
这三位字段就是为了表示IP协议的拆包和组包的,那么首先假如说一个IP报被拆分的话那么首先要判断拆分后的这些小包哪些是同一组报文的,这就要依靠16位标识来保证,假如说是同一组报文的话那么这16位标识就是一样的数字,然后就是这三位标志了,这三位标志呢,其中1位标志是否可以拆包,一位表示是否是最后一个包,这两个一个保证了拆分的包的数量和是否来自同一组,那么13位片偏移是什么呢?这个是用来保证我拆分的小包组成的顺序的根据这个片偏移字段可以。
八位生存时间
八位生存时间这个标志还是挺重要的,因为我们在进行网络传输的时候很有可能你输入了一个不存在的IP地址,可是机器不知道这个IP地址是否存在因此可能会陷入无休止的寻找过程中,加入这个字段等于说是限制了寻找多少次,如果超过的话就不在传输这个消息。也就是这个IP数据包还能存活多久
八位协议
这里描述的你的数据报部分是一个TCP协议包还是一个UDP协议包。
地址管理
IP地址
我们上面说了IP地址目前用的最广泛的两个一个是IPV4一个是IPv6这两个,这两个表示地址的方式也是不一样的,IPV4协议的表示出来的是一个2^32的一个数字大概就是42亿9千万吧,这样一个数字呢很大,但是在我们网络如此发达的今天这个明显是不够用的,目前全世界网民的数目已经数十亿人了,如果给这数十亿人没人都分配一个IP地址的话那么这个42亿九千万这个数字是完全不够用的,而IPv6则能很好的解决这个麻烦因为IPv6的数字更大,几乎是用不完的。但是目前的话iPv6 主要还是我国规定了每家公司必须要能支持IPv6而在全世界范围来看的话使用IPv4的人更多,这是为什么呢?因为他们两个不相通,也就是不兼容,如果你想使用IPv6的话你就得给自己的网络路由器进行更新,要知道对于一个使用了这么多年的Ipv4的公司来说,这笔费用还是不少的,因此世界上使用IPv4的人更多,可是IPv4的地址不够用啊那怎么办?那么人们就提出了几种解决办法。如下
解决提议1:动态分配Ip地址
那么首先的一个解决方式是什么呢?那就是动态分配IP地址,将需要上网的设备分配一个IP地址然后上完网后再将这个IP地址回收以此来达到正在上网的设备的IP地址是唯一的这样一个效果
解决提议2:NAT机制
NAT机制是什么呢?NAT机制其实就相当于弄了一个转换程序,我们依据局域网将设备分为局域网内部设备和局域网外部设备这样两种,那么当内部设备想要给外部设备发送信息的时候,这时候会先将自己的这个消息发给一个NAT设备,这个设备的任务就是为你分配一个可以连接外网的一个IP地址,这个IP地址我们就叫做外部IP,并且它还会记录这次的映射,当外部设备返回响应的时候,我们也可以根据这个映射找到发送消息的那台设备,我们可以这样理解NAT就像我们学生时期传纸条的中间人一样,我们把纸条给中间人,他会记住这个纸条是你给他的当属于这个纸条的回应返回的时候他会把回应再传给你,那么也就是说我们日常生活中的运营商网络其实就充当了这样的一个角色。
那么这样的解决方案有什么优点呢?
第一:安全,在这种机制下只有内网设备可以主动联系外网,外网设备不能主动联系内网
第二:纯软件的解决方式
而当前大环境下主要使用的就是这种NAT+动态分配的方式。当然最终的解决办法还是IPV6.