网络为什么要分层
- 想象网络包就是一段 Buffer,或者一块内存,是有格式的,处理网络包的程序可能是跑在电脑上、服务器上、交换机上,也可以跑在路由器上。同时网络包的格式很复杂,处理数据包的程序也很复杂,一般复杂程序都要分层。比如,复杂的电商还会分数据库层、缓存层、Compose 层、Controller 层和接入层,每一层专注做本层的事情。
- 整个流程可以简单地理解为:

- 那 TCP 在三次握手的时候,IP 层和 MAC 层在做什么呢?当然是 TCP 发送每一个消息,都会带着 IP 层和 MAC 层了。因为,TCP 每发送一个消息,IP 层和 MAC 层的所有机制都要运行一遍。只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。所以,对 TCP 协议来说,三次握手也好,重试也好,只要想发出去包,就要有 IP 层和 MAC 层,不然是发不出去的。
- 所谓的二层设备、三层设备,都是这些设备上跑的程序不同而已。一个 HTTP 协议的包经过一个二层设备,二层设备收进去的是整个网络包。这里面 HTTP、TCP、 IP、 MAC 都有。二层设就是只把 MAC 头摘下来,看看到底是丢弃、转发,还是自己留着;三层设备就是把 MAC 头摘下来之后,再把 IP 头摘下来,看看到底是丢弃、转发,还是自己留着。
IP地址解析
- IP地址是一个网卡在网络世界的通讯地址,相当于现实世界的门牌号。在ipv4中,一个ip地址被点分隔为四个部分,每个部分 8 个 bit,总共是 32 位,比如10.100.122.2。
- 在ipv4中,IP地址被分为5类。

| 分类 | 范围 | 子网掩码 | 最高位 | 网络数 | 网络容纳的主机数 | 私有IP范围 |
|---|---|---|---|---|---|---|
| A类 | 公网IP:0.0.0.0~127.255.255.255,私有IP:10.0.0.0 ~10.255.255.255 | 255.0.0.0(/8) | 0 | 2^7-2=126 | 2^24 - 2 = 16777214 | 10.0.0.0~10.255.255.255 |
| B类 | 公网IP:128.0.0.0~191.255.255.255,私有IP:172.16.0.0 ~ 172.31.255.255 | 255.255.0.0(/16) | 10 | 2^14=16384 | 2^16-2=65534 | 172.16.0.0~172.31.255.255 |
| C类 | 公网IP:192.0.0.0~223.255.255.255,私有IP:192.168.0.0 ~ 192.168.255.255 | 255.255.255.0(/24) | 110 | 2^21=2097152 | 2^8-2=254 | 192.168.0.0~192.168.255.255 |
| D类 | 224.0.0.0~239.255.255.255(组播地址) | |||||
| E类 | 240.0.0.0~247.255.255.255(保留 ) |
- 特殊IP地址
| IP地址 | 说明 |
|---|---|
| 0.0.0.0 | 表示整个网络 |
| 255.255.255.255 | 广播地址 |
| 127.X.X.X | 回环测试地址 |
- 按照上述5类的地址分法,C类地址能包含的最大主机数量实在太少了,只有 254 个,B类地址能包含的最大主机数量又太多了比较浪费,于是有了一个折中的方式叫作无类型域间选路,简称 CIDR。
- CIDR:无类型域间选路(Classless Inter-Domain Routing,CIDR) 是一种 IP 地址分配和路由技术,旨在更高效地利用 IPv4 地址空间,并优化路由表的大小。它于 1993 年由 IETF 提出(RFC 1519),用于取代传统的有类网络。在传统的有类网络中,IP 地址被划分为 A、B、C 类等固定子网,而 CIDR 则允许灵活定义子网大小,从而避免了地址浪费和路由表膨胀的问题。 CIDR的核心思想是:
- 取消固定的类边界: 通过引入可变长度子网掩码(VLSM),允许根据实际需求灵活定义子网大小
- 使用斜杠表示法(Slash Notation)定义网络前缀长度
- CIDR:无类型域间选路(Classless Inter-Domain Routing,CIDR) 是一种 IP 地址分配和路由技术,旨在更高效地利用 IPv4 地址空间,并优化路由表的大小。它于 1993 年由 IETF 提出(RFC 1519),用于取代传统的有类网络。在传统的有类网络中,IP 地址被划分为 A、B、C 类等固定子网,而 CIDR 则允许灵活定义子网大小,从而避免了地址浪费和路由表膨胀的问题。 CIDR的核心思想是:
- 伴随着 CIDR 存在的,一个是广播地址,即主机号全为1的地址,如果发送这个地址,所有该网络段下的机器都可以收到;另一个是子网掩码,将子网掩码和 IP 地址进行 AND 计算得到的是网络号。
- 私有IP:专门用于局域网(LAN)内部通信的 IP 地址,无法直接路由到公共互联网上。这些地址由 IANA 预留,供组织和个人在内部网络中使用。其用于局域网内的设备通信、节省公共 IP 地址资源。
MAC地址与IP地址
- MAC 地址更像是身份证,是一个唯一的标识。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识。所以MAC地址具有定位功能,但只能局限于局域网内,跨越子网的情况就需要IP地址。

被折叠的 条评论
为什么被折叠?



