目录
一、IP协议头格式
二、IP地址、Mac地址
2.1 IPv4
2.2 IPv6
2.3 Mac地址
三、IP路由转发
四、IP分包及组包
一、IP协议头格式
IP协议是网络层的重点协议。这里主要列举一下16位标识与3位标志以及13位片偏移。
16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每
一个片里面的这个id都是相同的。
3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第
二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表
示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。
13位分片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移。其实就是
在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,
除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。
二、IP地址、Mac地址
IP地址组成
IP地址的组成分为两部分,网络号和主机号
- 网络号:标识网段,保证相互连接的两个网段具有不同的标识;
- 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;
通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的
分类
将IP地址分为五类
子网掩码
子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24。
2.1 IPv4
由于IPv4的局限性,导致ip地址在分配的过程中出现不足的现象。为了解决IPv4的局限性,采取NAT+动态分配的机制解决IPv4地址不足的现象。
这里的动态分配涉及到内网以及外网。内网是局域网组成的,在同一个局域网中动态分配的ip地址不能重复,但是在不同的局域网中是允许存在相同的IP的。外网IP是唯一表示,不能出现相同的外网IP。
- 外网设备可以不需要任何的NAT与其他的外网设备进行通信。
- 内网设备不能访问其他的内网设备
- 外网设备不能访问内网设备
- 内网设备可以访问外网设备
2.2 IPv6
这里不对IPv6做过多的介绍,因为现在的IPv6目前没有全面的启用,IPv6相对于IPv4来说只是多了许多IP地址而已。
2.3 Mac地址
Mac地址这里主要就是与IP地址进行一个对比,由于Mac地址是6字节48位所以这里不会有Mac地址不足的现象,所以Mac能够直接的决定电脑的网卡号,而且每个电脑有且只有一个Mac地址。
三、IP路由转发
IP协议的一个核心任务是数据报的路由,即决定发送数据报到目标机器的路径。
从右往左分析上图,当IP模块接收到来自数据链路层的IP数据报是,它首先对该数据报的头部做CRC校验,确认无误之后就分析其头部的具体信息。
四、IP分包及组包
由于在数据链路层承载的数据量是一定的,所以当超出范围的时候就会进行分包和组包。
分包:利用16位标识将分包的数据进行同一标识
组包:利用13位的片偏移将分包的顺序确定好。同时利用3位标志确定是否是分包,以及确定分包中的最后一个包。