一、什么是IP协议
IP协议既网络之间互联的协议,它使得任何遵守IP协议的主机能与互联网的其他任何遵守IP协议的主机进行连接以实现跨局域网通信。可以理解为MAC地址负责局域网通信而IP地址负责跨网通信。在《计算机网络》一书中谢希仁老师表示 “利用IP协议可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用IP协议的虚拟互联网络可简称为IP网。如果在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网”
二、ip协议中的基本概念
1)IP存活时间 TTL:
(time to live)为了防止数据包在互联网中无限制的循环传输下去,IP协议规定了数据包的生存周期既生存时间。TTL虽然翻译为时间但是并不是通过计时来判断一个数据包是否该被丢弃。TTL的数值是IP数据包可以在计算机网络上被转发的最大跳数,每当该数据包经过一个路由器转发TTL便减一个数字(一般是1)。当TTL为0时该数据包就会被丢弃。TTL最大值为255一般推荐值为64。
2)IP分片:
因为数据链路层的限制(最大传送单元MTU规定了一个数据帧中的数据字段的最大长度),所以网络层就也需要限制IP数据报的长度。
“IP协议规定,在互联网中所有的主机和路由器,必须能够接受长度不超过576字节的数据报。”——摘自谢希仁的《计算机网络》
上文中的576字节的限制有512字节属于数据,60字节属IP数据报首部,4字节备用。
3)IP数据包首部的固定部分的其他字段(部分)
标志(flag)
三位字节,但之后两位有意义;最低位名为MF(more fragment)也就是表示数据报被分片,其中MF=1表示后边还有分片而MF=0表示没有分片了。中间位名为DF(don‘t fargment)也就是没有分片,之后DF为0表示可以分片。
片偏移
数据报既然可以被分割自然需要记录被分割后的数据帧的相对先后顺序,片偏移记录的是被分割后数据部分内容的像对起始字节和终止字节。
4)IP地址分类:
IP地址分为A、B、C、D、E五类地址其中A、B、C三类地址为单播地址,D类地址为广播地址,E类地址保留为今后使用。A、B、C类IP地址分为网络号和主机号(如下图)
看到博主呕心沥血为大家画的这个绝世好图就可以明白网络号是用于区分局域网的号码而主机号是分配给该局域网中的主机的号码。由于IP地址是32位二进制编码将其转换为十进制之后可以推算出这三类地址最大可指派网络数分别是A类:126个; B类16383个 ;C类 2097151个。计算每个网路中的最大主机数同理分别为:A类:1677214个 ;B类 65534个 :C类 254 个。由此可算出A类地址最多,世界上有一半IPv4的地址都是A类。
5)子网
在学习完IPv4分址方法后我们会发现如果一个局域网被分配了一个B类地址而该局域网只有几百台主机怎么办?这会大大造成IP地址资源的浪费。后来就出现了子网掩码来将网络号+主机号这样的二级IP地址划分为网络号+子网号+主机号这样的三级IP地址。许多个局域网公用一个B类网络号表面上它们是一个局域网但是通过子网掩码他们又被各自分隔开。
三、抓包中的IP数据报
看图啦看图啦