IP协议分析
IP协议原理
- IP(Internet Protocol,互联网协议),是TCP/IP协议栈中最核心的协议之一,提供了数据的面向无连接和不可靠传输功能。
- 除此之外,IP协议还为接入互联网的设备提供IP地址,保证设备的唯一性(公网IP)。
IP协议实战
-
打开Wireshark抓取IP数据包;
-
打开其中一个数据包查看字段信息,如下:
IP数据包解读
- **Version:**版本号,标识IP协议的版本,目前 V4版本地址已经枯竭,V6 慢慢成为主流;
- **Header Length:**头部长度,默认为20字节,最大为60字节;
- **Differentiated Services Field:**服务区分符,用于为不同的 IP 数据包定义不同的服务质量,一般应用在 QoS技术中;
- **Total Length:**总长度,标识IP 头部加上上层数据的数据包大小IP 包总长度最大为65535个字节;
- **Identification:**标识符,用来实现 IP 分片的重组,标识分片属于哪个进程,不同进程通过不同ID 区分;
- **Flags:**标志符,用来确认是否还有IP 分片或是否能执行分片;
- **Fragment Offset:**分片偏移量,用于标识IP 分片的位置,实现IP 分片的重组;
- **Time To Live:**生存时间,标识IP数据包还能生存多久,根据操作系统不同,TTL 默认值不同,每经过一个三层设备如路由器的处理,则 TTL减去1,当TTL=0时,则此数据包被丢弃;
- **Protocol:**协议号,标识IP 协议的上层协议。当上层协议为 ICMP 时,协议号为1,TCP 协议号为6,UDP的协议号为17;
- **Header Checksum:**头部校验,用于检验IP 数据包是否完整或被修改;
- **Source:**源IP 地址,标识发送者IP 地址,占用32bit;
- **Destination:**目的IP 地址,标识接收者IP 地址,占用32bit。
IP地址解读
IP地址的分类
-
为了方便使用,科学家们为 IP 地址设计了分类,分别是 A类、B 类、C 类、D类、E类。
-
其中ABC类为日常使用,D类作为组播地址、E 类作为后续备用。
-
根据规定,A类从 0(黄色部分)开始B类从10开始,C类规定从 110开始D类从1110开始,E类从 11110 开始。
IP地址范围:
- A类地址范围是:0.0.0.0~127.255.255.255
- B类地址范围是:128.0.0.0~191.255.255.255
- C类地址范围是:192.0.0.0~223.255.255.255
- D类地址范围是:224.0.0.0~239.255.255.255
- E类地址范围是:240.0.0.0~255.255.255.255
注:地址范围头尾被预留出来作为网络号和广播地址,不可直接应用于电脑主机,比如0.0.0.0或255.255.255.255地址。
网络号、主机号、最大可用主机数
- A类第1字节为网络地址后3个字节为主机地址,B类第1第2字节为网络地址,第3第4个字节为主机地址,C类前3个字节为网络地址最后1个为主机地址,DE类不区分网络和主机地址。
- 网络号(net-id)用于标记主机所在网络,主机号(host-id)用于识别该网络中的主机。
- 每个网络号能使用的最大可用主机数为 2^n-2,其中n为可用主机数,比如一个C类网络192.168.1.0其最大主机数为2^8-2=256-2=254。为什么减去2?每个网络的首个地址为网络地址,用于标记此网络,而最后地址作为广播地址,比如 192.168.1.0 为网络地址,192.18.1.255为广播地址
公有、私有IP地址
- 公有地址:在互联网使用且被认可的地址,需要付费获取;
- 私有地址:在局域网内部私人使用的地址,内部免费使用。
一般不使用的特殊IP地址
- 127.x.x.x,代表环回测试地址,标记主机本身,常用127.0.0.1;
- 255.255.255255代表本地广播地址,标记本网络所有主机;
- 169.254.xx,若通过 DHCP 无法获取到地址,则主机会分配此地址;
- 0.0.0.0,代表所有不清楚的主机和网络,在默认路由、DHCP 协议等场景使用。
VLAN划分
- 划分子网背景
- 在ARPANET的早期,IP地址的设计确实不够合理。
- IP地址空间的利用率有时很低。
- 两级的IP地址不够灵活。
- 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变差。
- 三级IP地址
- 从1985年起在IP地址中增加了一个“子网号字段”,使两级的IP地址变为三级的IP地址。
- 这种做法叫做划分子网(subnetting)。
- 划分子网已成为互联网的正式标准。
- 子网划分步骤
- 先判断子网或IP地址属于哪一主类(A、B、C),找出该主类默认的子网掩码是多少。
- 需要借用多少位进行子网划分。
- 罗列子网号,再计算子网的广播地址。
- 子网掩码
- 从一个IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
- 使用子网掩码可以找出IP地址中的子网部分。
- 子网掩码规则:
- 子网掩码长度是32位,与IP地址一样
- 子网掩码左边部分一连串1,对应于网络号和子网号
- 子网掩码右边的一连串0,对应于主机号