一、IP协议格式
4位版本号:
4/6 表示:ipv4、ipv6。
4位头部长度:
以4B为单位描述报头大小,IP报头最大为60B,最小为20B。
8位服务器:
3位优先权字段弃用,1位保留(暂未使用),4位服务类型。
4位服务类型:最小成本,最高可靠性,最大吞吐率,最小延时。
16位数据报长度:
限制IP报文必须小于64k。
16位分片标识:
标识当前分片属于哪个原始报文。
网络层的数据分片:
在链路层存在一个MTU(最大传输单元),是链路层限制的一个数据帧大小。以太网默认是1500字节。网络层在拿到传输层交付给自己的数据后,会判断封装报头后,是否会大于MTU,如果大于MTU则需要进行数据分片(将大的完整的报文,分割成多个小的报文)。
网络层会给每个分片都封装一个IP报头,然后发送数据。
数据到达对端主机后,会进行分片重组,重组为原始报文交付给传输层。但是网络传输就有可能使数据没有按序到达,因此每个分片中都有标识自己属于哪个原始报文,并且标识自己所在原始报文中的位置。
3位标志:
1位保留,1位禁止分片标志(置1表示不允许分片),1位分片结束标志。
13位分片偏移:
标识当前分片在原始报文中相对起始的偏移量。
注意:13位分片偏移没办法表示64k的偏移量,所以这个分片偏移是以8B为单位的。因此除了最后一个分片,其他分片一定都是8的整数倍大小。
8位TTL:
报文生命周期:所能经过的路由器跳数。
8位上层协议类型:
数据分用的时候,选择当前数据所使用的解析协议。
16位校验和:
校验数据的一致性。
32位源端IP&32位对端IP:
描述通信的起点与终点主机。
0~40字节选项数据:
路由信息……
二、IP地址管理
1.动态地址分配&组建私网
ipv4地址共有近43亿,但是也出现了不够用的情况,出现了两种解决方案:
动态地址分配DHCP:
DHCP:动态地址分配,谁上网给谁分配IP地址。
NAT技术组建私网:
NAT网络地址转换技术。
2. 早期网络划分方式
IP地址的分配是一种分网络的分配,每个子网只分配固定的IP地址。
IP地址组成:网络号+主机号
(1)网络号:当前IP地址所在子网络的标识。
保证互相连接的两个网段具有不同的标识。
(2)主机号:一个主机在其所在子网中的标识。
同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。
(3)不同的子网,其实就是把网络号相同的主机放在一起。
(4)若在子网中增加一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网内的其他主机重复。(一般路由器都带有DHCP技术,能够自动的给子网内新增的主机节点分配IP地址,避免了手动管理的不便)
早期五类IP地址划分:
A类:高1位固定为0,7位网络号,24位主机号,用于组建超大型网络。
网络号范围:0~127
IP地址范围:0.0.0.0~127.255.255.255
B类:高2位固定10,14位网络号,16位主机号,用于组建中型网络。
网络号范围:128.0~191.255
IP地址范围:128.0.0.0~191.255.255.255
C类:高3位固定110,21位网络号,8位主机号,
网络号范围:192.0.0~223.255.255
IP地址范围:192.0.0.0~223.255.255.255
D类:224.0.0.0~239.255.255.255
E类:240.0.0.0~247.255.255.255
3. 当前网络划分方式CIDR方案
在早期基础上进行细分,引入了子网掩码,来区分网络号和主机号。
子网掩码:
无符号4字节的整数,规则是必须由连续的二进制1组成,通常以一串连续的0结尾。
子网掩码作用:
(1)子网划分,限定一个子网的主机号个数。子网掩码取反就是一个子网中的最大主机号。
(2)判断一个IP地址是否属于某个子网。子网掩码与IP地址相与,可以得到子网网络号。
4. 特殊IP地址
(1)127.0.0.1
本地的虚拟回环网卡地址,用于进行本地的网络回环测试。
(2)255.255.255.255
全网广播地址。
(3)0.0.0.0
被识别为本机任意网卡地址(常用于服务端绑定地址)。
(4)主机号全0的IP地址
表示网络号,是网络标识。
(5)主机号全为1的IP地址
局域网的广播地址(udp广播)。
5. 公网与私网(外网与内网)
公网(外网):我们常说的互联网,也叫外网。
私网(内网):自己用路由器实现的内部通信网络,也叫内网
组建私网的作用:
使用NAT技术,可以让私网中的大量主机使用同一个对外地址进行上网,节省IP地址的使用。
因为私网对外通信使用的是对外地址,私网内部的地址对外不可见,因此不同的私网,IP地址可以重复。
用于组建私网的网络:
(1)10.*.*.*
(2)172.16.*.*~172.31.*.*
(3)192.168.*.*
6. 路由选择
每个网络设备上都有一个路由表:
(1)路由表中记录了当前设备所连接的网络信息。
(2)其实在互联网上,每个路由器上不仅只有自己的路由表,还有周围其他路由器的路由表。
(3)路由器将流经路由器的数据目的IP地址与路由表中网络进行比对,看是否属于某个网络,然后进行路径规划,选择转发对象。
路由表生成算法:
(1)静态路由:路由表由网络管理员手动维护。
(2)动态路由:通过一些路由表生成算法自动生成,如距离向量算法,Dijkstra算法等。