IP协议相关特性
(一)报文结构
(1)8位服务类型
4位有效,4选1:最小延时,最高可靠,最大吞吐,最小成本。
(2)16位总长度
即报头+载荷,支持拆包+组包,来发送较大数据包。
>>>拆包组包
(3)16位标识
拆出来的包标识相同。
(4)3位标志
一位不使用,一位判断是否触发拆包,一位判断当前是否是最后一包。
(5)13位片位移
每个IP包相对顺序,表⽰当前分⽚在原报⽂中处在哪个位置。因此, 除了最后⼀个报⽂之外, 其他报⽂的⻓度必须是8的整数倍(否则报⽂就不连续了)。
<<<
(6)8位生存时间(DDL)
当前报存活次数(整数)——每次经过路由器转发,DDL = DDL - 1。
应对问题:如果数据包中的目的IP是错误的,此时这个数据包不应该在网络中被“无限转发”。
(7)8位协议
当前的IP数据包的载荷部分,所使用的协议(传输层协议)。
(8)16位首部校验和
只关心IP报头自身是否传输错误。
(9)32位IP地址
分为 IPv4 和 IPv6。
(二)拆包组包
(1)为什么要拆包?
由于网络传输中的限制,如带宽不足或MTU(最大传输单元)尺寸的限制,数据包可能需要被分割成更小的片段进行传输。
由此确保数据高效、可靠传输。
(2)组包时如何保证数据的顺序和完整性?
16位标识
3位标志
13位片位移
三个字段共同作用。
(三)IP地址不够用怎么办?
(1)动态分配网址
只给接入网络的设备分配地址
早期,IP地址不是很紧张的时候适用
(2)NAT机制
①核心方案
网络地址映射。
②意义
加强了普通用户的网络安全性。
③把IP地址分为两类
1.外网IP/公网IP
运行商负责维护
2.内网IP/私网IP
Ⅰ.192.168.*(家用级路由器)
Ⅱ.172.16-172.31
Ⅲ.10.*
即:允许不同局域网中,设备的IP地址相同
④网络转发情况
1.A和B在同一个局域网中,允许转发。
2.两个内网IP设备 A和B在不同的局域网中,不允许转发。
3.A为内网IP设备,B为外网IP设备。
允许A访问B,B不可以主动访问B;
A - B:A - 路由器,路由器 - 运营商,运营商 修改 源IP,... 运营商 - B;
B - A:B 把响应原路返回 - 运营商 - A。
运营商怎么把 目的IP 改成 A 的 IP地址?
采用“ NATP ”方案:
运营商记录一个映射关系:旧IP - 旧端口;新IP - 新端口。
如果有两台设备的端口号一样,则运营商会 映射 端口号为 外网IP端口号,以保证 源IP 的 唯一性。
4.如果A是 外网IP,B也是 外网IP,允许转发。
5.内网穿透&打洞:外网设备主动访问内网设备。
(3)IPv6
从根本上解决了IP地址不够用的问题:
IPv4使用 4 个字节表示 IP地址,
IPv6使用 16 个字节表示 IP地址。