IP协议(Internet Protocol)
又称之为网际协议,IP协议处于IP层工作,它是整个TCP/IP协议栈的核心协议,上层协议都要依赖IP协议提供的服务,IP协议负责将数据报从源主机发送到目标主机,通过IP地址作为唯一识别码,简单来说,不同主机之间的IP地址是不一样的,在发送数据报的过程中,IP协议还可能对数据报进行分片处理,同时在接收数据报的时候还可能需要对分片的数据报进行重装等等。
IP协议是一种无连接的不可靠数据报交付协议,协议本身不提供任何的错误检查与恢复机制。
设计者把所有的IP地址划分为5大类,分别为A、B、C、D、E五类
D 类IP地址的第一个字节前四位为1110,那么它第一个字节的取值范围为224~239,约占据了所有IP地址的十六分之一, R它是一个专门保留的地址,它并不指向特定的网络,目前这一类地址被用于多播。
E类IP地址的第一个字节前四位必须为1111,那么它第一个字节的取值范围为240~255,约占据了所有IP地址的十六分之一,是为将来使用而保留的,其中32bit全为1的IP地址(255.255.255.255)用作广播地址。
广播地址:255.255.255.255在互联网内一般会受到路由器的限制,只能在局域网使用。
直接广播地址:主机号全为1
A、B、C三类地址的广播地址结构如下:
-
A类地址的广播地址为:XXX.255.255.255(XXX为A类地址的第一个字节取值范围)。
-
B类地址的广播地址为:XXX. XXX.255.255(XXX为B类地址的前两个字节取值范围)。
-
C类地址的广播地址为:XXX. XXX. XXX.255(XXX为C类地址的前三个字节取值范围)。
多播地址:多播地址用在一对多的通信中,即一个发送者,多个接收者,不论接受者员数量的多少,发送者只发送一次数据包。只能用作目的地址,而不能作为主机中的源地址。
环回地址:127.1.1.1 测试我自己的IP。
本网络本主机:全为0的地址(0.0.0.0)表示的是本网络本主机
IP数据报
IP数据报与ARP报文都是一种报文格式,都有自己的组织形式,与ARP报文一样,由两部分组成,一部分是IP首部,另一部分是数据区域。
IP数据报分片(分片偏移量设置)
从IP首部我们就知道IP数据报分片这个概念,也知道不是每个底层网卡都能承载每个IP数据报长度的报文,例如以太网帧最大能承载1500个字节的数据,而某些广域网链路的帧可承载不超过576字节的数据。
一个主机打算发送4000字节的IP数据报(20字节IP首部加上3980字节IP数据区域,假设没有IP数据报首部选项字段),且该数据报必须通过一条MTU为1500字节的以太网链路。这就意味着源始IP数据报中3980字节数据必须被分配为3个独立的数据报分片(其中的每个分片也是一个IP数据报)。假定初始IP数据报贴上的标识号为666,那么第一个分片的数据报总大小为1500字节(1480字节数据大小+20字节IP数据报首部),分片偏移量为0,第二个分片的数据报大小也为1500字节,分片偏移量为185(185*8=1480),第三个分片的数据报大小为1040(3980-1480-1480+20),分片偏移量为370(185+185)。