一张网卡也允许多个IP

多个域名允许同一个IP

FTP相当于HTTP1.0，每次传输都需要建立一新的数据连接

不可靠的链路层使用可靠的链路层协议

TCP的服务器有两个套接字

一个是当作服务器的本地套接字

套接字与套接字之间的通信和进程与进程间的通信

# 网络概述

OSI参考模型

国际标准化组织ISO在1974年制定的OSI

开放系统互连（OSI）参考模型分为7个层次

OSI模型本身不是网络体系结构的全部内容

它并未确切描述用于各层的协议和服务，仅是告诉每一层应该做什么

OSI的国际标准号为：ISO 7498

TCP/IP协议的层次结构

结构为4个层次：

网络接口层NIL（数据链路、物理层）、IP层（网络层 ）、TCP层（运输层）、应用层 （应用层、表示层、会话层）

网络概述

OSI 参考模型

国际标准化组织 ISO 在 1974 年制定的 OSI

开放系统互连（OSI）参考模型分为 7 个层次

OSI 模型本身不是网络体系结构的全部内容

它并未确切描述用于各层的协议和服务，仅是告诉每一层应该做什么

OSI 的国际标准号为：ISO 7498
![](https://i-blog.csdnimg.cn/blog_migrate/da6bd40d2f2771cb2dc3f2df4ec22ec6.png)

数据传送

![](https://i-blog.csdnimg.cn/blog_migrate/ab412b4fbf9c29118189010d22a9df9e.webp?x-image-process=image/format,png)

TCP/IP 协议的层次结构

结构为 4 个层次：

网络接口层 NIL（数据链路、物理层）、IP 层（网络层 ）、TCP 层（运输层）、应用层 （应用层、表示层、会话层）

![](https://i-blog.csdnimg.cn/blog_migrate/2e924a64d9950604cc97e5c20922e39d.png#pic_center)

![](https://www.w3ccoo.com/data_communication_computer_network/images/tcp_ip_protocol.jpg)

TCP/IP 协议簇（protocol Suite）
![image.png](https://nas.chenalna.site/sata11-19012711369/images/20260614123359905.png)





应用层协议和低层协议的对应联系

![image.png](https://nas.chenalna.site/sata11-19012711369/images/20260614123933870.png)


计算机网络协议层次在网络拓扑中的位置

![image.png](https://nas.chenalna.site/sata11-19012711369/images/20260614124032837.png)


**应用层：为应用程序或用户请求提供各种请求服务。**OSI 参考模型最高层，也是最靠近用户的一层，为计算机用户、各种应用程序以及网络提供接口，也为用户直接提供各种网络服务。

**表示层：数据编码、格式转换、数据加密。**提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要，该层可提供一种标准表示形式，用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。

**会话层：创建、管理和维护会话。**接收来自传输层的数据，负责建立、管理和终止表示层实体之间的通信会话，支持它们之间的数据交换。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

**传输层：数据通信。**建立主机端到端的链接，为会话层和网络层提供端到端可靠的和透明的数据传输服务，确保数据能完整的传输到网络层。

**网络层：IP 选址及路由选择。**通过路由选择算法，为报文或通信子网选择最适当的路径。控制数据链路层与传输层之间的信息转发，建立、维持和终止网络的连接。数据链路层的数据在这一层被转换为数据包，然后通过路径选择、分段组合、顺序、进/出路由等控制，将信息从一个网络设备传送到另一个网络设备。

**数据链路层：提供介质访问和链路管理。**接收来自物理层的位流形式的数据，封装成帧，传送到网络层；将网络层的数据帧，拆装为位流形式的数据转发到物理层；负责建立和管理节点间的链路，通过各种控制协议，将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

**物理层：管理通信设备和网络媒体之间的互联互通。**传输介质为数据链路层提供物理连接，实现比特流的透明传输。实现相邻计算机节点之间比特流的透明传送，屏蔽具体传输介质和物理设备的差异。

 **区别**

开放式系统互联模型（OSI）是一个参考标准，解释协议相互之间应该如何相互作用。TCP/IP 协议是美国国防部发明的，是让互联网成为了目前这个样子的标准之一。开放式系统互联模型（OSI）中没有清楚地描绘 TCP/IP 协议，但是在解释 TCP/IP 协议时很容易想到开放式系统互联模型（OSI）。两者的主要区别如下：

TCP/IP 协议中的应用层处理开放式系统互联模型（OSI）中的第五层、第六层和第七层的功能。

TCP/IP 协议中的传输层不能保证数据包在该层总是能够安全可靠地传输，而开放式系统互联模型（OSI）可以做到。

TCP/IP 协议还提供一项名为 UDP的选择。
Socket 不是应用层协议，它是一个网络编程接口（API）。Socket 是**传输层（TCP/UDP）和应用层之间的抽象层**：
IP 地址及应用方法

IP 协议中包含源 IP 地址和目的 IP 地址字段，各占 32 位二进制位

因特网中每一个节点都有一个全网唯一 32 位 IP 地址

IP 地址是一个逻辑地址，IP 地址用来唯一标识网络中一个节点的链接，网络中的节点可以是主机或路由器

主机 ID 标识网络中的哪一个主机

网络 ID 标识是哪一个网络

IP 编址技术

IP 编址技术的发展经历了 3 个阶段

分类的 IP 地址（A、B、C 类）

1981 年制订的基本编址协议标准

子网的划分，是对基本编址协议的改进，使 IP 地址层次结构增加了子网标识

1985 年给出 RFC 950

无分类编址方法（CIDR），1993 年提出

用于解决 IP 地址紧缺，以及汇聚路由实现问题

可以进行超网设计

分类 IP 地址格式
分类的 IP 地址
 IPv 4 协议的主要特点

IPv 4 协议提供一种无连接的分组传送服务，它不承诺服务质量的保证(即不保证传送的分组可能出现的差错、丢失、重复和失序等现象)。
IPv 4 协议是点–点的网络层通信协议。
Pv 4 协议对传输层屏蔽了物理网络的差异。网络层借助 IP 协议向传输层提供统一的 IP 分组，这有助于各种异构网络的互连。  
 IP 地址及其指派

把整个因特网可看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内惟一的标识符(长度为 32 bit ) 。
P 地址由因特网名字与号码指派公司 ICANN (Internet Corporation for Assigned Names and Numbers)进行分配的。
 IP 地址的编址方法

IP 地址的编址经历两个阶段：

分类 IP 地址。这是最基本的编址方法，1981 年通过了相应的标准协议。基于分类 IP 地址存在的问题，又于 1985 年提出子网划分、变长子网划分的概念。这是对最基本的分类编址方法的改进。
无分类 IP 地址。1993 年又提出新的分类编址方法，且得到了推广应用。
所谓“分类的 IP 地址”就是将 IP 地址划分为若干个固定类，每一类地址都由两个固定长度的字段组成，其中一个字段是网络号 net-id，它标志某主机(或路由器)所连接的网络编号；另一个字段则是主机号 host-id，它标志该主机(或路由器)在该类网络中的编号。n 这种两级结构的 IP 地址可以记为：IP 地址 ::= { <网络号>, <主机号>}   

其中，::= 代表“定义为”
分类 IP 地址是将 IP 地址分为若干个固定类。IP 地址分为 A、B、C、D、E 共五类，最常用的是 A/B/C 三类，IP 地址由网络标识字段(net-id)和主机标识字段(host-id)组成。IP 地址可以标识为：
IP 地址::={<网络标识>,<主机标识>}

![](https://i-blog.csdnimg.cn/blog_migrate/c9b664b6311061cde91dc4dbd81ecba1.png)


![](https://pic3.zhimg.com/v2-13c1daebb7b5706a847f4e727d9dacde_b.jpg)

分类 IP 地址的默认子网掩码

![](https://picx.zhimg.com/80/v2-1f9b7e09b1655f40c226ba3192cd87c2_720w.webp?source=1def8aca)

IP 地址的分配

把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机（或路由器）分配一个在全世界范围是唯一的 32 位的标识符

IP 地址现在由因特网名字与号码指派公司 ICANN 进行分配
![](https://i-blog.csdnimg.cn/blog_migrate/728ad5ebfc37ca1e51456d6c90fbe187.png)


![](https://i-blog.csdnimg.cn/blog_migrate/df9228c3d12517b1eb866e6114679e29.png)


辨别 IP 地址类别

如果给出了二进制记法表示的地址，用它的前几位表示地址的类别。
A、00000001  00001011  00001011  11101111     A 类
B、11000001  10000011  00011011  11111111     C 类
C、10100111  11011011  10001011  01101111     B 类
D、11110011  10011011  11111011  00001111     E 类
 如果用点分十进制记法表示的地址，则按第 1 字节表示的十进制数来判定地址类别：A 类为 0～127，B 类为 128～191，C 类为 192～223，D 类为 224～239，E 类为 240～255。

A、227.12.14.87  D 类
B、193.14.56.22  C 类
C、14.23.120.8  A 类
D、252.5.15.111  E 类
E、134.11.78.56  B 类

- **理论范围**：按**第一个字节的前几位固定模式**计算出的最小~最大范围。
    
- **CIDR范围**：按**地址块表示法 `/n`** 覆盖的完整范围，通常会比理论范围更大。
    

---

 各类地址的范围对比

| 地址类    | 二进制前缀   | 理论范围  <br>(第一个字节)      | 理论范围  <br>(完整地址块)           | CIDR 地址块      | CIDR 范围  <br>(完整地址块)        |
| ------ | ------- | ---------------------- | --------------------------- | ------------- | --------------------------- |
| **A类** | `0`     | 1 ~ 126  <br>(0和127保留) | 1.0.0.0 ~ 126.255.255.255   | `0.0.0.0/1`   | 0.0.0.0 ~ 127.255.255.255   |
| **B类** | `10`    | 128 ~ 191              | 128.0.0.0 ~ 191.255.255.255 | `128.0.0.0/2` | 128.0.0.0 ~ 191.255.255.255 |
| **C类** | `110`   | 192 ~ 223              | 192.0.0.0 ~ 223.255.255.255 | `192.0.0.0/3` | 192.0.0.0 ~ 223.255.255.255 |
| **D类** | `1110`  | 224 ~ 239              | 224.0.0.0 ~ 239.255.255.255 | `224.0.0.0/4` | 224.0.0.0 ~ 239.255.255.255 |
| **E类** | `11110` | 240 ~ 247              | 240.0.0.0 ~ 247.255.255.255 | `240.0.0.0/4` | 240.0.0.0 ~ 255.255.255.255 |

A 类地址

- **理论范围**：第一个字节 1~126（0 和 127 保留，不作为 A 类地址分配）
    
- **CIDR 地址块**：`0.0.0.0/1`，覆盖 0.0.0.0 ~ 127.255.255.255
    

所以有人会说 A 类范围是 1~126，也有人（按 CIDR）会说是 0~127。

E 类地址
E 类是唯一一个 CIDR 范围比理论范围**大出一截**的，因为 CIDR `/4` 的前缀长度比 E 类的 `/5` 更短，因此把后面 240~255 这个整块都囊括了。


特殊的 IP 地址

网络号为全 0 是指本网络。
网络号和主机号均为全 1 是对本网络进行广播(路由器不转发)。
A 类网络地址 127 是一个保留地址，用于本地软件环回测试之用。
主机号为全 1 是指对本网络号的所有主机进行广播。
地址

类别

可指派的

最多网络数

第一个可指派的网络号

最后一个可指派的网络号

每个网络中可拥有的最多主机数

约占整个地址空间的比例

A

125(27-3)

1

126

16777214(224-2)

50%

B

16367(216-17)

128.1

191.255

65534(216-2)

25%

C

2096895(221-257)

192.0.1

223.255.255

254(28-2)

12.5%

IP 地址的一些重要特点

IP 地址是一种分级式地址结构。它不反映主机(或路由器)所在地理位置的任何信息。每一个 IP 地址都由网络号和主机号两部分组成。这种地址结构的好处是：P 地址管理机构在分配 IP 地址时只分配网络号(第一级)，而剩下的主机号(第二级)则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号)，这样就可以使路由表中的项目数大幅度减少，从而减小了路由表所占的存储空间。
 IP 地址指明了一台主机(或路由器)和一条链路的接口。 当一个主机同时连接到两个网络上时，该主机就必须同时具有两个相应的 IP 地址，其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。由于一个路由器至少应当连接到两个网络，因此一个路由器至少也应当有两个不同的 IP 地址
凡是分配到网络号 net-id 的网络，无论是范围很小的局域网，还是可能覆盖很大地理范围的广域网，其地位都是平等的。
按照因特网的观点，一个网络是指具有相同网络号的主机的集合。用转发器或网桥连接起来的若干个局域网仍为一个网络，因为这些局域网都具有相同的网络号 net-id。


专用 IP 地址

为了组建 Intranet，ICANN 规定了 Intranet 专用 IP 地址的三个地址范围，称为专用 IP 地址

有时也称为私有 IP 地址，用于组建 Intranet 网络时，在内网对 IP 地址分配和使用

Intranet 专用 IP 地址的三个地址范围是：

A 类地址范围 10.0.0.0—10.255.255.255，一个 A 类地址 10

B 类地址范围 172.16.0.0—172.31.255.255 ，16 个 B 类地址 172.16—172.31

C 类地址范围 192.168.0.0—192.168.255.255，256 个 C 类地址 192.168.0—192.168.255

## 子网划分技术
一、子网掩码的概述及作用

1. 子网掩码是一个应用于 TCP/IP 网络的 32 位二进制值，每节 8 位，必须结合 IP 地址对应使用。
2. 子网掩码 32 位都与 IP 地址 32 位对应，如果某位是网络地址，则子网掩码为 1，否则为 0。
3. 子网掩码可以通过与 IP 地址“与”计算，分离出 IP 地址中的网络地址和主机地址，用于判断该 IP 地址是在局域网上，还是在广域网上。
4. 子网掩码一般用于将网络进一步划分为若干子网，以避免主机过多而拥堵或过少而 IP 浪费。

二、为什么要使用子网掩码？

子网掩码可以分离出 IP 地址中的网络地址和主机地址，那为什么要分离呢？因为两台计算机要通讯，首先要判断是否处于同一个广播域内，即网络地址是否相同。如果网络地址相同，表明接受方在本网络上，那么可以把数据包直接发送到目标主机，否则就需要路由网关将数据包转发送到目的地。

三、子网掩码的分类

1）缺省子网掩码：

(未划分子网)

子网掩码 32 位与 IP 地址 32 位对应,如果某位是网络地址，则子网掩码为 1，否则为 0。例如 A 类 IP 地址，第一节为网络地址，其余三节为主机地址，故掩码为“11111111.00000000.00000000.00000000”

A 类网络缺省子网掩码：255.0.0.0  
B 类网络缺省子网掩码：255.255.0.0  
C 类网络缺省子网掩码：255.255.255.0

2）自定义子网掩码：

(用于划分子网)

将一个网络划分为若干子网，希望每个子网拥有不同的网络地址或子网地址。因为ＩＰ是有限的，实际上我们是将主机地址分为两个部分：子网网络地址、子网主机地址。形式如下：

未做子网划分的 ip 地址：网络地址＋主机地址  
做子网划分后的 ip 地址：网络地址＋（子网网络地址＋子网主机地址）

四、子网掩码和 ip 地址的关系

子网掩码是用来判断任意两台计算机的 IP 地址是否属于同一子网络的根据。具体说就是两台计算机各自的 IP 地址与子网掩码进行“与”运算后，如果得出的结果是相同的，则说明这两台计算机是处于同一个子网络上的，可以进行直接的通讯。

例如：设 IP 地址为 192.168.10.2，子网掩码为 255.255.255.240，那么子网掩码是怎样来区分网络地址和主机地址的呢。

主机地址为：0.0.0.2（将掩码取反，然后与运算）

 五、为什么要要划分子网？

例如：在 A 类 IP 地址中，每个 A 类网络可能有 16，777，214 台主机，它们处于同一广播域。在同一广播域中有这么多主机是不可能的，网络会因为广播通信而饱和。另一方面，IP 地址资源越来越少。为实现更小的广播域，就需要进一步分成更小的网络。划分子网后，通过使用掩码，把子网隐藏起来，使得从外部看网络没有变化，这就是子网掩码。

六、子网划分简述

子网划分是通过借用 IP 地址中若干位主机地址来充当子网的网络地址，从而将原网络划分为若干子网。

划分子网时，随着子网地址借用主机位数的增多，子网的数目随之增加，但每个子网中的可用主机数逐渐减少。

如 C 类地址，原有 8 位主机位，2^8-2 即 254 个主机地址，默认子网掩码 255.255.255.0。(全 0 或全 1 不可用）  
借用 1 位主机位，产生 2121=2 个子网，每个子网有 2^7 个主机地址；  
借用 2 位主机位，产生 2222=4 个子网，每个子网有 2^6 个主机地址;  
……  
根据子网 ID 借用的主机位数，我们可以计算出划分的子网数、掩码、每个子网主机数，列表如下：



子网划分的基本概念

用于子网划分的子网掩码

划分子网的例子

IP 地址中增加了一个“子网号字段”，两级 IP 地址扩展成三级
划分子网的基本思路

划分子网纯属单位内部的事情，对本单位以外的网络是完全透明的。
划分子网的方法是把主机号字段的前若干个比特作为子网号字段，则 IP 地址∷={<网络号>，<子网号>，<主机号>}       
凡从其他网络传送到本单位网络某主机的 IP 数据报，仍然按 IP 数据报的目的网络号传送到连接在本单位网络上的路由器。此路由器收到 IP 数据报后，再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。最后将 IP 数据报直接交付给目的主机。
子网的划分方法是，将原网络地址的主机地址分成两部分：
• 一部分称为子网地址，也称为子网号 
• 另一部分称为主机地址
• 这样两级的 IP 地址在本单位内部就变为三级的 IP 地址： 网络号 + 子网号 + 主机号。
或者表示为： IP 地址::={<网络标识>,<子网标识>,<主机标识>}


![](https://i-blog.csdnimg.cn/blog_migrate/8239bfa822d2f0fa1ee7f72d3ba9da1b.png)


举例：一个未划分子网的 B 类网络 145.13.0.0

![](https://i-blog.csdnimg.cn/blog_migrate/1a3023445c57f2185ad59b911a297dc0.png)

划分为三个子网后，对外仍是一个网络
![](https://i-blog.csdnimg.cn/blog_migrate/2fcdc892805ca15aad1250919a809f11.png)


七、子网掩码计算

1、利用子网数来计算

在求子网掩码之前必须先搞清楚要划分的子网数目，以及每个子网内的所需主机数目。  
1)将子网数目转化为二进制来表示  
2)取得该二进制的位数，为 N  
3)取得该 IP 地址的类子网掩码，将其主机地址部分的的前 N 位置 1 即得出该 IP 地址划分子网的子网掩码。

如欲将 C 类 IP 地址 192.168.10.0 划分成 4 个子网：  
1)4=100  
2)该二进制为三位数，N = 3  
3)将 A 类地址的子网掩码 255.255.255.0 的主机地址前 3 位置 1，得到子网掩码 255.255.255.224。(具体见下图）

 [![子网掩码的计算](https://www.dzkfw.com.cn/jichu/UploadFiles_6678/202306/2023062412443112.png)](https://www.dzkfw.com.cn/jichu/UploadFiles_6678/202306/2023062412443112.png)

2、利用主机数来计算

1)将主机数目转化为二进制来表示  
2)如果主机数小于或等于 254（注意去掉保留的两个 IP 地址），则取得该主机的二进制位数。  
3)将该类 IP 地址的主机地址位数全部置 1，然后从后向前的将 N 位全部置为 0，即为子网掩码值。

如欲将 B 类 IP 地址 192.168.10.0 划分成若干子网，每个子网内有主机 25 台：  
1) 25=11001  
2)该二进制为十位数，N = 5  
3)将该 B 类地址的子网掩码 255.255.255.0 的主机地址全部置 1，得到 255.255.255.255，然后再从后向前将后 5 位置 0，即为：11111111.11111111.11111111.11100000，即 255.255.252.224。

 [![子网掩码的计算](https://www.dzkfw.com.cn/jichu/UploadFiles_6678/202306/2023062412451797.png)](https://www.dzkfw.com.cn/jichu/UploadFiles_6678/202306/2023062412451797.png)

步骤总结：

1.子网数和主机数都可以计算子网掩码，2.取得子网/主机的二进制位数，3.网络地址置 0 主机地址置 1，4.换成十进制

 子网掩码

由于 IP 地址本身以及数据报的首部都没有包含任何关于划分子网的信息，所以从一个 IP 数据报的首部无法判断源主机或目的主机所连接的网络是否进行了子网的划分。
如何知道子网的划分呢？划分子网要用到子网掩码(subnet mask)的概念。使用子网掩码(subnet mask)可以很方便地找出 IP 地址中的子网部分。
TCP/IP 体系规定：子网掩码是一个 32 位二进制数，由一串连续的“1”后随一串连续的“0”组成。其中“1”对应于 IP 地址的网络号和子网号字段，而“0”对应于 IP 地址的主机号字段。

![](https://i-blog.csdnimg.cn/blog_migrate/19a6fa92c13e073f048194f604b09d6d.png)

 子网掩码采用点分十进制表示法(255.255.0.0)，也可用网络前缀(或斜线)标记法(135.41.0.0/16)

 IP 地址的各字段和子网掩码的关系

![](https://i-blog.csdnimg.cn/blog_migrate/84f0d0046c8d7a6461dbb55194bf2b4e.png)

(IP 地址) AND (子网掩码) =网络地址 

![](https://i-blog.csdnimg.cn/blog_migrate/a818ada1b166b94dcec40c3627ba4825.png)

子网掩码是一个网络或一个子网的重要属性。因特网标准规定：所有的网络都必须有一个子网掩码，它包含在路由表中。

划分子网的概念也适用于未划分子网的情况。未划分子网的网络可使用默认子网掩码。使用子网掩码可简化路由器的路由选择算法。

A、B 和 C 类 IP 地址的默认子网掩码

![](https://i-blog.csdnimg.cn/blog_migrate/3f61cf780e6cc545ebabb8b746003be1.png)


![](https://www.dzkfw.com.cn/jichu/UploadFiles_6678/202306/2023062412431153.png)


![](https://www.dzkfw.com.cn/jichu/UploadFiles_6678/202306/2023062412435891.png)
划分子网的利弊

利——增加了灵活性。
弊——减少了能够连接在网络上的主机总数。例如，一个 B 类地址最多可连接 65534 台主机，但当划分成 4 个子网后，实际连接的主机为 32764 台，这是因为[RFC 950]规定：子网号不能为全 0 或全 1
变长子网
子网划分的最初目的是把基于类的网络划分为几个规模相同的子网。其实，创建不同规模的子网可避免 IP 地址的浪费。对于不同规模子网的划分，称为变长子网划分。

变长子网划分是一种用不同长度的子网掩码来分配子网号字段的技术。它是对已划分好的子网使用不同的子网掩码做进一步划分形成不同规模的网络，从而提高 IP 地址资源的利用率。

变长子网划分举例
![](https://i-blog.csdnimg.cn/blog_migrate/fd271e2c7cc0df923096f05b0b39ddc5.png)
一个 B 类 IP 地址为 136.48.0.0 的网络，需配置为 1 个能容纳 32000 台主机的子网，15 个能容纳 2000 台主机的子网和 8 个能容纳 254 台主机的子网。



无分类编址 
划分子网的概念缓解了当初 IP 地址设计不够合理所引起的矛盾，而变长子网的概念也符合用户对 IP 地址实际使用的需要。但这些措施并未从根本上缓解因特网在发展过程中所遇到的困难。

在 1992 年，因特网面临着三个急需解决的问题：①B 类地址在 1992 年已分配过半。②因特网主干网上的路由表中的项目数急剧增长。③2011 年 2 月，IANA 宣布 IPv 4 地址已经耗尽。

IETF 在 VLSM 的基础上，又研究出采用无分类编址方法来解决上述问题。无分类编址方法的正式名字无分类域间路由选择 CIDR(Classless Inter-Domain Routing)，其新文档是 RFC 4632

CIDR 的主要设计思想

CIDR 取消了以往对 IP 地址进行分类以及划分子网的概念，利用各种长度的“网络前缀 (network-pfefix) ”来代替分类地址中的网络号和子网号。

            IP地址∷={<网络前缀>，<主机号>}

 CIDR 把网络前缀相同的连续的 IP 地址块组成“CIDR 地址块”。一个 CIDR 地址块可用它的起始地址和块中地址数来表示。如 136.48.32.8/20 表示某 CIDR 地址块中的一个地址。

 无分类编址的表示

CDIR 使用网络前缀标记法(或斜线记法)，即在 IP 地址后面加一斜线“/”再加一数字，此数字是网络前缀的位数，如 136.48.52.36，表示该 IP 地址的前 20 位是网络前缀。

CIDR 还使用其他几种表示形式。一种是把点分十进制中的低位连续的“0”省去，如 20.0.0.0/10，可表示为 20/10。另一种是在网络前缀后面加一个星号“*”，如 00010100 00*，其中星号前是网络前缀，星号表示 IP 地址中的主机号

CIDR

CIDR 是在变长子网掩码 VLSM（Variable Length Subnet Mask）的基础上发展起来的

CIDR 取消了传统的 A、B、C 类地址以及子网划分的概念

使用各种长度的网络前缀代替地址中的网络号和子网号

使 IP 地址又回到了两级编址

                 IP 地址::＝{<网络前缀>,<主机标识>}

在应用中 CIDR 使用斜线记法，也称为 CIDR 记法

方法是在 IP 地址后面加一斜线“/”，然后写网络前缀所占比特数
CIDR 地址块举例

136.48.32.8/20 表示在这个 32 位的 IP 地址中，前 20 位为网络前缀，后 12 位为主机号。每个地址块共有 212 个地址，其起始地址是 136.48.32.0。
在不需要指出地址块的起始地址时，也可将这样的地址块简称为“/20 地址块”。
136.48.32.0/20 地址块的最小地址：136.48.32.0，最大地址：136.48.47.255。
全 0 和全 1 的主机号地址一般不使用。
136.48.32.8/20 地址块含有 212 个地址

![](https://i-blog.csdnimg.cn/blog_migrate/387f3c1729fd685fcdd14f4cb9f77224.png)

 路由聚合(route aggregation)

一个 CIDR 地址块可以包含很多地址，路由表的表项也可改用地址块来表示。这种地址聚合称为路由聚合。路由聚合既利于缩短路由表，又可减少查找路由表的时间，从而提高了因特网的性能。路由聚合也称为构建超网(supernetting)。

CIDR 虽然不使用子网概念，但仍然使用“掩码”这一名词(只是不叫子网掩码而已)。如对 /20 地址块，它的掩码是 20 个连续的 1。斜线记法中的数字就是掩码中 1 的个数。

 构建超网

在“包含的地址数中”，包含了全 0 和全 1 地址。表中 K 表示 210(即 1024)。网络前缀小于 13 或大于 27 的地址较少使用。 CIDR 地址块中的地址数一定是 2 的整数次幂。

前缀长度不超过 23 位的 CIDR 地址块都包含了相当于多个 C 类地址。这些 C 类地址合起来就构成了超网。
网络前缀越短，其地址块所包含的地址数就越多。而在三级结构的 IP 地址中，划分子网是使网络前缀变长。
使用 CIDR 构建超网，必须得到相关路由器及其协议的支持。
使用 CIDR 地址块的最大好处

可以更有效地分配 IPv 4 的地址空间。如某单位需用 900 个 IP 地址。未使用 CIDR 时，ISP 可以分配给该单位一个 B 类地址或者 4 个 C 类地址。但使用了 CIDR，ISP 可分配给该单位一个地址块 208.18.128.0/22，它包含 1024 个 IP 地址，相当于 4 个连续的/24 地址块。
可以按网络所在的地理位置来分配地址块，这可以大大缩小路由表所占的空间，即减少路由表的表项数。
地址解释和地址转换


 IP 地址与硬件地址的区别
![](https://i-blog.csdnimg.cn/blog_migrate/3173b82fb1f4462169812981859fe9f2.png)


举例：用两个路由器互连三个局域网


![](https://i-blog.csdnimg.cn/blog_migrate/302beb3cecf6be3512efd9b5f0e158cd.png)
 通信的路径是：H 1→经过 R 1 转发→再经过 R 2 转发→ H 2

从协议栈的层次上看数据的流动

 ![](https://i-blog.csdnimg.cn/blog_migrate/fe06c5c9108fb11514033394f08d7189.png)

从虚拟的 IP 层上看 IP 数据报的流动
![](https://i-blog.csdnimg.cn/blog_migrate/9d95ef13e0b2882c90817de85b28ee14.png)
在链路上看 MAC 帧的流动

![](https://i-blog.csdnimg.cn/blog_migrate/b253cb2836f2cb09ee89f65a5cfd9bf7.png)

 在 IP 层抽象的互联网上只能看到 IP 数据报。图中的 IP 1→IP 2 表示从源地址 IP 1 到目的地址 IP 2，两个路由器的 IP 地址并不出现在 IP 数据报的首部中


![](https://i-blog.csdnimg.cn/blog_migrate/1f5e71dbe79fc03618fef076aeb9397c.png)
虽然在 IP 数据报首部有源站 IP 地址，但路由器只根据目的站的 IP 地址的网络号进行路由选择  
在具体的物理网络的链路层，只能看见 MAC 帧，而看不见 IP 数据报(它被封装在 MAC 帧中) 。MAC 帧在传送过程中，首部中填写的硬件地址 HAx 是不同的。
尽管互连在一起的网络的硬件地址体系各不相同，但 IP 层抽象的互联网屏蔽了下层很复杂的细节。在抽象的网络层上讨论问题，就能够使用统一的、抽象的 IP 地址来研究主机与主机或主机与路由器之间的通信。  


地址解析协议 ARP

无论网络层使用什么协议，在实际网络的链路上传送数据帧时，最终使用的是硬件地址。

IP 地址(32 位)和硬件地址(48 位)之间不存在简单的映射关系。ARP 协议解决 IP 地址与物理地址的映射，而 RARP 协议解决物理地址与 IP 地址的映射。

每一个主机都设有一个 ARP 高速缓存(cache)，里面存放有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时，就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有，即得到其对应的硬件地址，再将此硬件地址写入 MAC 帧，然后通过局域网将该 MAC 帧发往此硬件地址。否则该主机运行 ARP 协议。

![](https://i-blog.csdnimg.cn/blog_migrate/b268981de648942a2966877923a78b55.png)

ARP 高速缓存

高速缓存的作用就在于可以减少网络上的通信量。如果不用高速缓存，因为网络上的任一台主机要进行通信都需用广播方式发送 ARP 请求分组，这将导致网络上的通信量大大增加。用了高速缓存就可将得到的地址映射存入待用。
ARP 对存放在高速缓存中的“IP 地址-硬件地址”映射表设置生存时间(如 10 min)。凡超过生存时间的表项即删除。被删除的表项无原则重新建立，也要经过前面所述的查找目的主机硬件地址的过程。
ARP 是解决同一个局域网上的主机(或路由器)的 IP 地址和硬件地址的映射问题。只要主机或路由器与本网络上的另一个已知 IP 地址的主机或路由器进行通信，ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。

如果所要找的目的主机和源主机不在同一个局域网上，那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址，然后把分组发送给这个路由器，让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。

从 IP 地址到硬件地址的解析是自动进行的，这种地址解析过程对用户对透明的。

使用 ARP 的四种典型情况

发送方是主机，要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
发送方是主机，要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
发送方是路由器，要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
发送方是路由器，要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。  
 为什么不直接使用硬件地址进行通信？

由于全世界存在着各式各样的网络，它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作，这几乎是不可能的事。
IP 编址解决了这个复杂问题。凡连接到因特网的主机都拥有统一的 IP 地址，它们之间的通信就像连接在同一个网络上那样简单方便，因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的，对用户来说是看不见这种调用过程的。 
虚拟专用网 VPN

由于 IP 地址的紧缺，一个机构能够申请到的 IP 地址数往往远小于本机构所拥有的主机数。

考虑到因特网安全性并不很好，一个机构内也并不需要把所有的主机都接入到外部的因特网。

因而就有一个设想：假定一个机构内部的计算机通信也采用 TCP/IP 协议，那么从原则上讲，对于这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址

两种地址

本地地址－－仅在本机构内部使用的 IP 地址，可由本机构自行分配，不必向因特网的管理机构申请。
全球地址－－全球唯一的 IP 地址，必须向因特网的管理机构申请。
存在的问题：在内部使用的本地地址有可能与因特网中某个 IP 地址重合，从而出现地址的二义性问题

解决的办法：RFC 1918 指明了一些专用地址。专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器，对目的地址是专用地址的数据报一律不进行转发。三个专用地址块，即 ICANN 预留的部分 A、B 和 C 类专用地址块。

A 类：10.0.0.0～10.255.255.255；
B 类：172.16.0.0～172.31.255.255；
C 类：192.168.0.0～192.168.255.255
 采用这种专用 IP 地址的专用网称为拟专用网 VPN。虚拟专用网 VPN 是建立在基础网络之上的一种功能性网络。它向使用者提供一般专用网所具有的功能，但本身却不是一个独立的物理网络，而是通过隧道技术，架构在公共网络服务商所提供的网络平台(如 Internet、ATM 和 FR 等)之上的逻辑网络。
![](https://i-blog.csdnimg.cn/blog_migrate/af3094fcd8e21139cf31ee2c57410291.png)
虚拟专用网的两个含义：一是“虚拟”，因为整个 VPN 网上的任意两个结点之间的连接并没有传统专用网所需的端到端的物理链路，而是将它建立在分布广泛的公用网络的平台上；二是一个“专用网”，每个 VPN 用户都可以从临时的“专用网”上获得所需的资源。

构建虚拟专用网的注意事项

在不同网点的专用网之间进行通信，而需要通过公用的因特网，又有保密要求的，那么所有通过因特网的数据都必须加密。
一个机构要构建自己的 VPN 就必须为它的每一个场所购买专用的硬件和软件，并进行配置，使每一个场所的 VPN 系统都知道其他场所的地址。
 虚拟专用网的特点

成本低廉，只需支付日常的上网费用。
得到最常用的网络协议的广泛支持。
具有身份验证、数据加密等安全可靠功能。
易于扩充和管理。
 虚拟专用网的不足

安全性。由于因特网不是一个可信赖的安全网络，为确保数据传输的安全，应对入网传输的数据进行加密处理。
可管理性。VPN 的管理要能够应对电信单位需求的快速变化，以避免额外的远行开支。
性能。由于 ISP 是“尽力交付”传输的 IP 分组，而跨因特网的传输性能又无法得到保证，且时有变化，所以附加的安全措施也会显著地降低性能。
利用隧道技术实现虚拟专用网

隧道的建立有两种方式：一种是自愿隧道，指服务器计算机或路由器可以通过发送 VPN 请求配置和创建的隧道；另一种是强制隧道，指由 VPN 服务提供商配置和创建的隧道。

隧道有两种类型：①点-点隧道。隧道由远程用户计算机延伸到企业服务器，由两边的设备负责隧道的建立，以及两点之间数据的加密和解密。②端-端隧道。隧道中止于防火墙等网络边缘设备，它的主要功能是连接两端的局域网。



IP 数据报的格式  
 IP 数据报由首部和数据两部分组成。

IP 数据报的首部
![](https://i-blog.csdnimg.cn/blog_migrate/2856a13f8ed61f0c283caff52517d360.png)
首部的前一部分为固定长度(20 字节)，这是所有 IP 数据报必须具有的。
首部固定部分的后面是选项和填充字段(长度可变) 。
数据部分的长度也是可变的
![](https://i-blog.csdnimg.cn/blog_migrate/1813488b181eefca067080ff858f6ef4.png)

版本——4 位，指 IP 协议的版本。目前广泛使用的协议版本号为 4 (即 IPv 4)。通信双方的协议版本必须一致。

首部长度——4 位，表示数据报首部的长度。因首部长度可表示的最大数值是 15 个单位(每单位为 4 字节)，所以 IP 的首部长度的最大值为 60 字节。当首部长度不足 4 字节的整数倍时，可利用填充字段加以填充补齐

区分服务——8 位，表示对数据报的服务要求。前三位表示优先级(0～7，0 最低)，D、T、R 和 C 分别表示对时延、吞吐量、可靠性和路由服务费用有选择的要求。最后一位未用。该字段只有当使用区分服务时才使用。

总长度——16 位，指整个数据报(包括首部和数据)的长度，单位为字节。数据报的最大长度为 65535 字节(64 KB)。总长度必须不超过数据链路层的最大传送单元 MTU。当数据报长度超过 MTU 时，需对其分片，此时的总长度是指分片后的每一分片(包括首部与数据) 的长度

标识(identification) ——16 位，它用于数据报各分片最终被重装成来原来的数据报。它是一个计数器，每产生一个数据报，计数器就加 1，并将此值赋给标识字段。目的主机将相同标识字段值的各分片数据报最后进行正确地重装(合片)。

标志(flag) ——3 位，目前只有后两位有意义。最低位记作 MF (More Fragment)。MF=1 表示后面“还有分片”。MF=0 表示已是最后一个分片。次低位是 DF(Don‘t Fragment) 用来控制是否允许数据报分片。只有 DF=0 才允许分片。

片偏移——13 位，指较长的分组在分片后某片在原分组中的相对位置。也就是说，相对于用户数据字段的起点，该片从何处开始，以便目的主机重装数据报。片偏移以 8 个字节为偏移单位。这就是说，每个分片的长度一定是 8 字节(64 位)的整数倍。

 IP 数据报分片举例：

一数据报的总长度为 3820 字节，其数据部分的长度为 3800 字节（使用固定首部），需要分片为长度不超过 1420 字节的数据报片。
因固定首部长度为 20 字节，因此每个数据报片的数据部分长度不能超过 1400 字节。
于是分为 3 个数据报片，其数据部分的长度分别为 1400、1400 和 1000 字节。
原始数据报首部被复制为各数据报片的首部，但必须修改有关字段的值。
 

总长度

标识

MF

DF

片偏移

原始数据报

3820

12345

0

0

0

数据报片 1

1420

12345

1

0

0

数据报片 2

1420

12345

1

0

175

数据报片 3

1020

12345

0

0

350

 生存时间——8 位，记为 TTL(Time To Live)，表示该数据所在网络中的寿命。其单位最初是秒，但为了方便，现在都用“跳数”作为 TTL 的单位。数据报每经过一个路由器，其 TTL 值就减 1，当 TTL 值减为零时，就丢弃这个数据报。




什么是因特网？

因特网是一个世界范围的计算机网络，即互联了遍及全世界的设备的网络

这些计算设备最初是传统的 PC/Linux 以及所谓的服务器。然而，越来越多使用智能手机等移动因特网的用户，非传统设备如电视、家用电器。因此，计算机网络这样的称呼已经过时了。所有这些设备都称为主机或端系统

端系统通过通信链路和分组交换机的网络连接在一起。

通信链路由不同类型的物理媒介组成，包括同轴电缆、铜线、光纤和无线电频谱。不同的链路以不同的速率传输数据。以 bit/s，或 bps 度量。当一台端系统要向另一台端系统发送数据时，发送端系统将数据分段，并为每段加上首部字节。由此形成的信息包就是分组（packet）。这些分组通过网络发送到目的端系统，在那里被装配成初始数据。

分组交换机从它的一条入通信链路接收到达的分组，并从它的一条出通信链路转发该分组。

主要的类型时路由器和链路层交换机。

链路层交换机通常用于接入网中，而路由器通常用于网络核心中。即，路由器在不同网络间转发数据，（链路层）交换机在同一网络内部间转发数据。从发送端系统到接收端系统，一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径。

分组类似于卡车，载着数据，通信链路类似于高速公路，分组交换机类似于交叉口，端系统类似于仓库。协议类似于交通规则，延迟类似于时间。

端系统通过因特网服务提供商 ISP 接入因特网。每个 ISP 自身就是一个由多台分组交换机和多端通信链路组成的网络。各 ISP 为端系统提过了不同类型的网络接入，包括如线缆调制解调器或 DSL 那样的住宅宽带接入、高速局域网接入和移动无线接入，也可为内容提供者直接将服务器李兰如因特网。

因特网把各处的端系统彼此连接起来，因此为端系统提供接入的 ISP 也必须互联。

较低层的 ISP 通过国家的、国际的较高层 ISP 互联，并且这些较高层 ISP 彼此之间通过高速光纤链 路互联的告诉路由器组成。

无论是较高层的 ISP 还是较低层 ISP 网络，每个 ISP 网络都是独立管理的，运行 IP 协议。

端系统、分组交换机和其它因特网运行多个协议，这些协议控制因特网信息的接收和发送。TCP（transmissiono control protocol,传输控制协议）和 IP（internet protocol，网际协议）。IP 协议定义了路由器和端系统之间发送和接收的分组格式。因特网的主要协议统称为 TCP/IP。

因特网标准是由因特网工程任务组 IETF 研发。IETF 的标准文档为请求评论（Request For Comment，RFC）。它定义了 TCP/IP/HTTP/SMTP 等协议。其他组织如 IEEE 也在制定关于网络组件的标准。

应用涉及到多个相互交换数据的端系统，故它们被称为分布式应用（distribution application）。因特网运行在端系统上，并非分组交换机上。

运行在不同端系统上的软件需要相互发送数据，如何让因特网向另一端系统的软件上传送数据？

与因特网相连的端系统提供了一个套接字接口(socket interface)，该接口规定了运行在一个端系统上的程序请求因特网基础设施运行在另一个端系统上的特定目的地程序交付数据的方式，因特网套接字接口时一套发送程序必须遵循的规则集合。

协议定义了在两个或多个通信实体（某些设备的硬件或软件组件）之间交换的报文格式和顺序，以及报文的发送/接收 或其他事件所采取的操作。

网络边缘。

因为通常把与因特网相连的计算机和其他设备称为端系统，因为它 处于因特网的边缘

主机有时又被进一步划分为两类：客户端和服务器。客户是桌面 PC、移动 PC；而服务器更为强大的机器，服务器属于大型数据中心。

接入网，端系统物理连接到其边缘路由器的网路。

家庭接入：数字用户线（Digital Subscriber Line，DSL）和电缆（cable）。

DSL:用户从提供的本地电话接入的本地电话公司处获得 DSL 因特网接入。因此，在使用 SL 时，用户的本地电话公司也是它的 ISP。

每个用户的 DSL 调制解调器使用现有的电话线与位于电话公司的本地中心距中的数字用户线接入复用器（DSLAM）交换数据。

家庭的 DSL 调制解调器得到数字数据后将其转换为高拼音，通过电化学传输给本地中心局；来自许多家庭的模拟信号在 DSLAM 处被转换回数字形式。

电缆因特网接入利用了有线电视公司现有的有线电视基础设施。电缆因特网接入需要特殊的调制解调器，这种调制解调器称为电缆调制解调器（cable modem），与 DSL 一样，通过一个以太网端口连接到家庭 PC。CMTS 与 DSLAM 具有类似的功能，即将电缆调制解调器发送的模拟信号转换回数字形式。

基站到终端: 下行信道

终端到基站:上行信道

光纤到户（Fiber To The Home,FTTH）,最简单的光线分布网络称为直接光纤，更为一般的是每根光纤实际上由许多家庭共享，直到相对接近这些家庭的位置，该光纤才分成每户的一根光纤；进行这种分配时，有两种光纤结构：有源光纤网络 AON,无源光纤网络 PON.AON 本质上就是交换以太网

5 G 固定式无线采用波束成形技术，一个无线路由器与调制解调器相连。

七夜接入

以太网交换机。

IEEE 802.11 技术的无线 LAN 接入

对于每个传输器-接收器对，该比特通过传播电磁波或光脉冲的方式跨越某种物理媒介。1、导引型媒介，如光缆、双绞铜线和同轴光缆。2、非导引型媒介如无线局域网或数字卫星。

网络核心。

分组交换

在某种网络应用中，端系统彼此交换报文（message）。