IP (Internet Protocol) 网际协议 #
IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输
网络层负责在不同网络之间尽力转发数据包
- 基于数据包的IP地址转发
- 不负责数据包的丢失重传
- 不负责数据包传输顺序
IP数据报格式,首部共20字节
0 4 8 16 19 31
4位版本 4位首部长度 8位服务类型 16位IP数据报总长度(字节数)
16位标识 3位标志 13位片偏移
8位生存时间(TTL) 8位协议 16位首部校验和
32位源IP地址
32位目的IP地址
可选字段(长度可变)
数据部分
- 版本:用来表示TCP/IP协议的版本 v4 v6
- 首部长度:固定部分20字节,可选字段一般没有
- 服务类型:区分数据报优先级,QoS用的
- IP数据报总长度:首部+数据部分,最大 2^16 - 1 = 65535 字节
超过MTU,数据部分会分片,每个分片数据部分最大 1500-20=1480字节 - 标识:唯一地标识主机发送的每一份数据报
通常每发送一份报文它的值就会加1,分片的标识是一样的 - 标志:该数据包是分片的包,还是完整的包,目前只有两位有意义
最低位是1表示后面还有分片,0表示是最后一个分片
中间一位是0表示允许分片 - 片偏移:以8字节为偏移单位,每个分片的位置,接受方再根据片偏移拼接
- 生存时间TTL:设置了数据报可以经过的最多路由器数,避免出现路由环路
TTL的初始值由源主机设置(通常为64),一旦经过一个处理它的路由器,它的值就减去1
当该字段的值为0时,数据报就被丢弃,并发送ICMP
报文通知源主机 - 协议:数据部分是什么协议,1-ICMP 2-IGMP 6-TCP 17-UDP
- 首部检验和:只检验首部,不对数据部分进行计算
- 可变部分:一般没用,v6版本已经没有这个部分了
IPv4 地址,32位
- A类地址 1字节网络号 0开头 0. ~ 127.
- B类地址 2字节网络号 10开头 128.0. ~ 191.255.
- C类地址 3字节网络号 110开头 192.0.0 ~
专用地址:只能用作本地地址而不能用作全球地址
路由器对目的地址是专用地址的数据报一律不进行转发
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
IPv6 地址,128位
Network / Netmask #
- Host 全部为 0 的时后,表示 IP 是该网段的 Network
- Host 全部为 1 时是该网段最后一个 IP,也称为 Broadcast
在 192.168.0.0 ~ 192.168.0.255 这个 IP 网段里面的相关网络参数就有
Netmask: 255.255.255.0
Network: 192.168.0.0
Broadcast: 192.168.0.255
可设定为主机的 IP: 192.168.0.1 ~ 192.168.0.254
CIDR: 192.168.0.0/24
对半切成两个子网络
第一个子网络
Network: 11000000.10101000.00000000.0 0000000 192.168.0.0
Broadcast: 11000000.10101000.00000000.0 1111111 192.168.0.127
|----------Net_ID-----------|-host-|
Netmask: 11111111.11111111.11111111.1 0000000 255.255.255.128
CIDR: 192.168.0.0/25
第二个子网络
Network: 11000000.10101000.00000000.1 0000000 192.168.0.128
Broadcast: 11000000.10101000.00000000.1 1111111 192.168.0.255
|----------Net_ID-----------|-host-|
Netmask: 11111111.11111111.11111111.1 0000000 255.255.255.128
CIDR: 192.168.0.128/25