IP 不是面向字节流的,而是发送接收一个个的数据包
主机:配有 IP 地址的设备
路由器:配有单个或多个 IP 地址,且能进行路由节点控制
节点:主机和路由器的统称
4 位版本号(version):
指定 IP 协议的版本。对于 IPv4 来说,就是 4(用 4 个字节,32 个比特位,标识全球互联网唯一的主机)。
公用网络协议中,极少使用 IPv6
4 位头部长度(header length):
8 位服务类型(Type Of Service):
16 位总长度(total length):
16 位标识(id):
3 位标志字段:
13 位分片偏移(framegament offset):
8 位生存时间(Time To Live, TTL):
8 位协议:
16 位头部校验和:
32 位源地址和 32 位目标地址:
选项字段(不定长, 最多 40 字节):略
过去曾经提出一种划分网络号和主机号的方案,把所有 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到247.255.255.255
但这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址,导致B类地址很快就分配完了,而A类却浪费了大量地址。
针对这种情况提出了新的划分方案,称为 CIDR(Classless Interdomain Routing)
:
引入一个额外的子网掩码(subnet mask)来区分网络号和主机号
子网掩码也是一个 32 位的正整数,通常用一串 “0” 来结尾
子网掩码格式:左半部分全 1,右半部分全 0。
1 的部分就是网络号的占位,0 的部分就可以用来进行子网划分,
如此相比分类网段,就更加灵活了。
将 IP 地址和子网掩码进行 “按位与” 操作,得到的结果就是网络号
网络号和主机号的划分与这个 IP 地址是 A 类、B 类还是 C 类无关