一、IP协议
IP协议:网络层协议

-
协议版本:描述当前协议版本(IPV4、IPV6....)
-
头部长度:描述IP报文的头部长度;最小20字节,最大60字节
-
服务类型 :

-
报文长度:描述IP报文长度;最小20B,最大64K
-
分片标识 :用于IP报文分片
- 当上层交付的数据过大,封装后的IP报文长度超过链路MTU限制时,报文会在网络层被切分为多个小分片,每个分片都封装独立IP报头后发送
- 分片将在接收端重组,该字段用于标识分片归属哪一个原始IP报文
-
分片标志 :
- 第1位为保留位,必须置 0
- 第2位DF位,标识是否允许分片
- 第3位MF位,标识当前分片是否为原始报文的最后一个分片
-
分片偏移 :以8字节为单位,描述当前分片的数据在原始IP报文数据部分中的起始相对偏移量
- 由于分片偏移的单位是8B,除最后一个分片外,其余分片的数据长度必须是8字节的整数倍
-
TTL生命周期 :规定报文在网络中最多可以经过的路由器跳数
- 每经过一台路由器,TTL值减1;当TTL减为0时,报文会被丢弃
- 作用:防止IP报文在网络环路里无限循环转发
-
上层协议:标记IP报文数据部分对应的上层协议,决定了接收端该把IP的数据交给哪个传输层协议处理
-
校验和:校验数据一致性
-
源端IP+对端IP:描述数据从哪个主机来、到哪个主机去
二、IP地址
(一)IP地址的组成
IP地址是网络中一台主机的唯一标识,同一个网络内主机的 IP 地址是不允许重复的;为了解决 IP 地址分配冲突问题,按照不同网络分配对应的IP地址
IP 地址的组成 :网络号 + 主机号;例如:127.0.0.1
网络号:网络的身份标识,同一网段内所有 IP 地址都带有相同的网络号
主机号:IP地址中除去网络号后的剩余部分,用来区分同一网络里不同的主机
(二)网络划分
1.早期网络划分
早期的网络划分:将网络分为五大类(IPv4 地址:4 字节,32 比特位)
- A类网络:固定1位置为0;剩余7位作为网络号(0~127)、24位作为主机号
- IP范围:0.0.0.0~127.255.255.255
- B 类网络:固定2位置为10;剩余14位作为网络号(128.0~ 191.255)、16位作为主机号
- IP范围:128.0.0.0~191.255.255.255
- C 类网络:固定3位置为110;剩余21位作为网络号(192.0.0~ 223.255.255)、8 位作为主机号
- IP范围:192.0.0.0~223.255.255.255
- D 类网络:
1110xxxx,用于组播通信,不区分网络号与主机号- IP范围:224.0.0.0~239.255.255.255
- E 类网络:
1111xxxx,保留做实验与研究使用- IP范围:240.0.0.0~225.255.255.25
2.CIDR方案
CIDR方案:现在的网络划分方式(在原来的基础上进行了细分的网络方式)
核心技术点:引入子网掩码
子网掩码:由一串连续的二进制1组成的一个数字,用于表示一个IP地址中哪些位都是网络号
- 子网掩码与IP地址二进制相与,得到的就是网络号
- 子网掩码取反后,与IP地址二进制相与,得到的就是主机号
- 子网掩码用于划分子网,子网掩码取反+1 就是该网络中主机号的个数
例如:
C类地址:192.168.146.1;子网掩码:255.255.255.0
网络号:192.168.146.1 & 255.255.255.0 => 192.168.146.0
主机号:192.168.146.1 & ~255.255.255.0 = 192.168.146.1 & 0.0.0.255 => 1
在一个网络中,有2个主机号是不分配给主机的:一个是主机号全为0,一个是主机号全为1
- 主机号为0的IP地址是网络号
- 主机号全为1的IP地址是局域网广播地址(比如UDP广播)
(三)特殊IP地址
0.0.0.0:表示当前主机上,所有的网卡地址;常用于网络服务端的绑定监听地址,绑定了该地址的指定端口,则意味着该主机上所有网卡收到的指定端口的数据,都会给这个socket
127.0.0.1:127网络中的地址都是用于网络测试的地址(虚拟回环网卡的地址)
主机号全为0的地址:网络号(不分配给主机,是一个网络的标识)
主机号权威1的地址:局域网广播地址
(四)公网(外网)与私网(内网)
公网:就是通常所说的互联网,全球大家互相能够通信的网络
私网:是个人或机构组织组建的一种内部通信网络
用于组建私网的网络:为了避免私网与公网的IP地址冲突,因此决定必须有一些网络专门只能用于组建私网,不在公网内分配
- 10.0.0.0:A类网络
- 172.16.0.0~172.31.0.0:B类网络,组建中型私网
- 192.168.0~192.168.255:C类网络,组建小型私网
三、路由选择
每个路由器中都维护一张路由表,表项包含:网络号、子网掩码、连接该网络的网卡、下一跳地址等信息
路由匹配流程:将数据包中的目的IP地址,和路由表每一条的子网掩码做按位与运算,把运算结果和该条目的网络号进行比较
- 如果一致,则说明目的主机属于这个网段,从对应接口转发数据包
- 多条匹配时遵循最长掩码匹配原则,都不匹配则走默认路由
数据包跨网转发时,现在绝大多数网络使用NAPT(网络地址端口转换)
- NAPT作用:内网多台主机公用同一个公网IP访问外网,节约公网IP
- 转发规则:数据包出内网时,把源IP+源端口转换成路由器的公网IP+新端口;回程包再根据端口映射转回内网主机