系列之TCP/IP协议-IP协议

968 阅读4分钟
原文链接: mp.weixin.qq.com

一、引言

链路层的上层协议是网络层,IP 协议是网络层协议中的最核心协议。ICMP/IGMP,TCP/UDP 都是通过 IP 数据包传输的。IP 协议提供非可靠的(unreliable)、无连接的(connectionless)。

  • 非可靠的:IP 协议不能保证数据能成功的到达目的地(传输层协议保证)。当 IP 数据包在传输的过程中,发生错误,路由器的处理是丢掉该数据包,然后发送 ICMP 给该 IP 数据包的源;

  • 无连接的:表示 IP 协议不维护后续数据包的状态,每个 IP 数据包都是独立的,即 IP 数据包可以不按照顺序发送接收。

二、IP 数据包

  • IP 版本号(Version):IP 协议版本号,长度 4bit;目前常有 IPv4 的该域值是(0100);

  • 首部长度(Head Length):表明 IP 数据包的首部长度,长度 4bit,单位是 32bit(4 字节,图 1 中的一行),首部长度最大 15*4=60 字节,没有选填的选项,首部长度为 20 字节,该值为(0101);

  • 服务类型(Differentiated Services Field):表明该 IP 数据包选择何种优先级服务传输,长度 8bit,其中前 3bit,后 1bit 没有用的,一般为 0(000XXXX0);有用的 4bit 部分(XXXX)表示服务类型,每一位表示一种类型,分别是 最小延迟、  最大吞吐量、  最高可靠性、  最小代价,这 4bit 每次最多只有一位为 1,若全为 0,表示普通的传输服务;

  • 标识域(Identification):唯一地标识主机发送的每一份 IP 数据包。通常每发送一份数据包它的值就会加 1;长度 16bit;

  • 协议类型(Protocol): 指明上层协议类型,长度 8bit, 常用协议值 0x01-ICMP,0x02-IGMP,0x06-TCP,0x11-UDP

  • 标志域(Flags):在 IP 数据包分片使用,长度 3bit。

  • 片偏移(fragment offset):在 IP 数据包分片使用,长度 13bit。

  • 生存时间(Time to Live,TTL):IP 数据包可以经过的最大路由跳转数,长度 8bit,初值一般为 0x40,IP 数据包每经过一次路由,该值 - 1,当 TTL 为 0 的时候,IP 数据包被丢弃,并发送一个 ICMP 包给该 IP 数据包的主机。

  • 首部校验和(Header checknum):校验首部,长度 16bit,与以太帧的 CRC 校验不同,这个只校验 IP 数据包的首部。如果校验未通过,直接丢弃该数据包,不发送 ICMP,由上层协议来控制。

  • 源 IP 地址(Source IP):告诉 IP 数据包,从哪来。长度 32bit。

  • 目标 IP 地址(Destination IP):告诉 IP 数据包,要到哪去。长度 32bit。

  • 其他:可选。

三、子网

我们不是把 IP 地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。子网对外部路由器来说隐藏了内部网络组织(一个校园或公司内部)的细节。

子网掩码是一个 32bit 的值,其中值为 1 的 bit 留给网络号和子网号,为 0 的 bit 留给主机号。0 或 1 需要连续的。

四、特殊 IP 地址

IP 类型 含义
127.x.x.x 常见的是 127.0.0.1,环回地址,该地址是指电脑本身,会把发送给该 ip 的数据返回给当前主机。该 IP 被认为是一个网络接口。它是一个 A 类地址,没有进行子网划分
(10.x.x.x),(172.16.x.x -172.31.x.x),(192.168.x.x) 局域网 IP 地址,私有地址
0.0.0.0 IP 地址收容所,所有不认识的 IP 地址,都丢这;已经不是真正意义上的 ip 地址了。
255.255.255.255 受限制的广播地址,对本机来说,这个地址指本网段内(同一个广播域)的所有主机。在任何情况下,路由器都会禁止转发目的地址为受限的广播地址的数据包,这样的数据包仅会出现在本地网络中。
xxx.255[.255] 网络号不全为 1,主机号全为 1,该网络的广播地址
224.0.0.0-239.255.255.255 这是一组组播地址,需要注意它与广播地址的区别,其中 224.0.0.1 特指所有的主机,224.0.0.2 特指所有的路由器,224.0.0.5 指所有的 OSPF 路由器地址,224.0.0.13 指 PIMV2 路由器的地址。

五、IP 数据包抓包

都看到这里了,要不要长按二维码关注一下微信公众号林湾村龙猫