前言:
正如标题所示,本文通过介绍IPv4协议的相关内容带领读者了解会议这个经典的网络协议。在正文开始前,先向不了解IPv4和IPv6的读者介绍下,这两个协议都是为了实现网络设备的网络位置标识而建立的,前者所能表示的IP地址个数为2^32,而后者则能表示2^32^4,而且后者能更高效地处理数据包的转发。IPv4作为较老的网络协议,其使用范围相对广泛,由此对其进行学习介绍。
一,IPv4:
以上为IPv4报头,下面对报头的各部分进行逐一介绍:
1,版本(4比特位)
版本的作用在于表示版本号,当前协议为IPv4,即版本号为0100
2,首部长度(4比特位)
虽然该长度使用比特作为单位,但其实其能够表示4个字节即32个比特位长度,表示这IP报头的大小
3,区分服务(8比特位)
区分服务的的作用在于给该报头标识服务质量,当该值为0~2时,表示递减的优先度,3代表最低延迟,4代表最大吞吐量,5代表最大可靠性,6代表最小代价,7未定义;该值由用户所使用的应用指定,但由于其表示的服务质量要求难以实现且有可能出现数据包传输的不公平问题,因此被使用得较少
4,总长度(16比特位)
总长度包括IP报头+IP载荷,其最大长度为65535字节(2^16),但由于数据链路层的传输限制,当前未出现最大长度的数据报。那么如果出现一个最大长度超出数据链路层最大传输长度的IP数据报,IP协议会通过拆包/合包方法经行处理(下面介绍)
5,标识(16比特位)
用于处理分片重组(即拆包/合包),同一个数据包的分片所携带的标识相同,但是,一个数据包的分片由IP地址和标识确定,所以标识相同的分片不一定来自同一个数据包
6,标志(3比特位)
标志分片信息,第一个比特位暂未使用,默认值为0,第二个比特位0/1各表示可以/不可以分片,第三个比特位0/1各表示不是/是最后一个包,该字段的含义在于表示出一个IP数据报是否被分片及是否是分片后的最后一个IP包
7,片偏移(13比特位)
表示每个分片相对于原始数据的位置,作用在于分片后的重组实现,第一个分片对应的值为0,由此类推,由于片偏移的单位的8字节,此处片偏移的总量为2^16,即可以表示65535个分片的偏移位置
8,生存时间(8比特位)
此处的生存时间以转发次数作为单位,每经由一个路由器转发次数会减1,直到次数为0时该IP包会在网络上被丢弃
9,协议(8比特位)
表示IP载荷中的数据(其实是某一个应用层协议)的身份
10,首部校验和(16比特位)
该字段只校验数据报的首部,而非数据部分,作用是检验IP数据报是否受到破坏
11,源/目的地址(32比特位)
用来表示发送/接收端的IP地址
以上是有关IPv4的全部内容,关于IP还有以下两个于其相关的问题:
二,IPv4的困境及NAT机制
由于互联网的爆炸式发展,网络设备开始大规模出现,之前谈到,IP地址是为了表示一个网络设备在网络中的位置,可由于IPv4的设计机制,IPv4最多只能创建2^32个不重复的IP地址,随即世界便迎来了IP地址枯竭的问题,于是便出现了两个解决方案,一是建立IP数量更多的IPv6协议,但是其与IPv4的不兼容问题,IPv6的迭代需要付出巨大代价,于是NAT机制成为解决燃眉之急的暂时方案
NAT机制的核心在于建立私网,复用网段。私网就是我们常说的局域网,特点在于,对于不同的公网中IP地址,可以使用192.168.x.x这个相同的网段,也就是说,私网内的众多网络设备在访问外网时可以使用相同的IP地址,公网中的IP地址实现了向下产生属于自己独有的IP地址能力,此处的独有指公网中的不同IP地址不能感知到彼此私网中网络设备的存在。
总结:只有在同一个私网中的设备可以相互访问,私网可以通过网关实现对公网的访问
三,DNS
DNS技术是让IP地址具象化的一个手段,通过将字符串与IP地址相关联从而实现通过字符串查找IP地址的功能,关联功能的实现是基于一张查询表,记录IP与字符串的对应关系