目录:
https://www.jianshu.com/p/1961df2a1336
IP地址格式与分类:
IP 地址是一个网卡在网络世界的通讯地址, 相当于我们现实世界的门牌号码。 如10.100.122.2 就是一个 IP 地址。 这个地址被点分隔为四个部分, 每个部分 8个 bit, 所以 IP 地址总共是 32 位。 这样产生的 IP 地址的数量很快就不够用了。 于是就有了 IPv6,如 inet6 fe80::f816:3eff:fec7:7975/64。 这个有 128 位, 现在看来是够了。
本来 32 位的 IP 地址就不够, 还被分成了 5 类。
5 类IP 地址.png
网络号 :用于识别主机所在的网络; 主机号 :用于识别该网络中的主机。
- A类,保留给政府机构
- B类,分配给中等规模的公司
- C类,分配给任何需要的人
- D类,用于组播
- E类,用于实验,各类可容纳的地址数目不同
对于 A、 B、 C 类主要分两部分, 前面一部分是网络号, 后面一部分是主机号。 A、 B、 C 三类地址所能包含的主机的数量见下图
A、 B、 C 三类地址所能包含的主机的数量.png有个尴尬的事情, 就是 C 类地址能包含的最大主机数量实在太少了, 只有 254 个。而B 类地址能包含的最大主机数量又太多了。
无类型域间选路(CIDR)
无类型域间选路, 简称CIDR。 这种方式打破了原来设计的几类地址的做法, 将 32 位的 IP 地址一分二, 前面是网络号, 后面是主机号。如IP 10.100.122.2/24,这个 IP 地址中有一个斜杠, 斜杠后面有个数字24。 这种地址表示形式, 就是 CIDR。后面24 的意思是, 32 位中, 前 24 位是网络号, 后 8位是主机号。
伴随着 CIDR 存在的,一个是广播地址, 10.100.122.255。 如果发送这个地址, 所有10.100.122 网络里面的机器都可以收到。 另一个是子网掩码, 255.255.255.0。
将子网掩码和 IP 地址进行 AND 计算,得到10.100.122.0,这就是网络号。
特点
- CIDR主要是为了更有效分配和管理IPv4地址,CIDR使IP地址又回到无分类的两级编码。记法:IP地址::={<<网络前缀>,<<主机号>}。CIDR还使用“斜线记法”即在IP地址后面加上“/”然后写网络前缀所占的位数。
- CIDR把网络前缀都相同的连续IP地址组成一个“CIDR地址块”,即强化路由聚合(构成超网)。
A类的默认子网掩码 255.0.0.0
B类的默认子网掩码 255.255.0.0
C类的默认子网掩码 255.255.255.0
公有 IP 地址和私有 IP 地址
私有 IP 地址.png图中右列是私有 IP 地址段,平时我们看到的数据中心里, 办公室、家里或学校的 IP 地址, 一般都是私有 IP 地址段。 因为这些地址允许组织内部的 IT 人员自己管理、 自己分配, 而且可以重复。
公有 IP 地址有个组织统一分配, 你需要去买。
表格中的 192.168.0.x 是最常见的私有 IP 地址。家里有 Wi-Fi, 对应就会有一个 IP 地址。 一般家里的上网设备不会超过 256 个, 所以 /24 基本就够了。 有时候我们也能见到 /16 的CIDR, 这两种是最常见的, 也是最容易理解的。因为 /24 很明显可以看出 192.168.0 是网络号, 后面是主机号。整个网络里面的第一个地址 192.168.0.1, 往往就是这个私有网络的出口地址。 家里的电脑连接 Wi-Fi, Wi-Fi 路由器的地址就是 192.168.0.1, 而192.168.0.255 就是广播地址。
一个容易“犯错”的 CIDR
如16.158.165.91/22 这个 CIDR,就不能一眼看出其网络号、主机号等。/22 不是 8 的整数倍,需要先转成二进制进行处理。16.158 的部分不会动, 它占了前 16位。 中间的 165, 变为二进制为10100101。 除了前面的 16 位, 还剩 6 位。 所以, 这 8 位中前6 位是网络号, 16.158.<101001>, 而 <01>.91 是机器号。
第一个地址是 16.158.<101001><00>.1,即 16.158.164.1。 子网掩码是 255.255.<111111><00>.0, 即 255.255.252.0。广播地址为 16.158.<101001><11>.255, 即 16.158.167.255。
MAC 地址
MAC 地址.pngMAC 地址是一个网卡的物理地址, 用十六进制, 6 个 byte 表示。如上图的1C-87-2C-77-99-3A。
既然MAC 地址号称全局唯一, 不会有两个网卡有相同的 MAC 地址, 而且网卡自生产出来, 就带着这个地址。 为什么整个互联网的通信, 不全部用 MAC 地址好了, 只要知道了对方的 MAC 地址, 就可以把信息传过去?一个网络包要从一个地方传到另一个地方, 除了要有确定的地址, 还需要有定位功能。 ⽽有门牌号码属性的 IP 地址, 才是有远程定位功能的。
MAC 地址更像是身份证, 是一个唯一的标识。 它的唯一性设计是为了组网的时候, 不同的网卡放在一个网络里面的时候, 可以不用担心冲突。 从硬件角度, 保证不同的网卡有不同的标识。当然MAC 地址是有一定定位功能的, 只不过范围非常有限,一般在一个子网里面。 例如, 从 192.168.0.2/24 访问192.168.0.3/24 是可以用 MAC 地址的。一旦跨子网, 即从 192.168.0.2/24 到192.168.1.2/24, MAC 地址就不行了, 需要 IP 地址起作用了。
参考资料:
趣谈网络协议(极客时间)链接:
http://gk.link/a/106nW
GitHub链接:
https://github.com/lichangke/LeetCode
欢迎大家来一起交流学习
网友评论