# 基本定义

> 计算机网络基本定义

**网络**：若干**节点node**（计算机、集线器、交换机或路由器）和连接节点的**链路link**组成。

**互联网**：network of networks

**因特网**：全球最大的互联网

* 边缘部分：主机组成，用户直接使用
  * 主机A与主机B通信：主机A的某个进程和主机B上的另一个进程通信
  * 端系统之间的通信方式可分为：
    * **客户端（client）-服务端（server）**&#x65B9;式：指通信涉及的两个应用进程，客户端请求服务（发起通信），服务端提供服务。
    * **对等连接（peer to peer，P2P）**：两个主机通信时不区分谁是服务提供方、请求方。两个主机都运行P2P软件，则平等、对等通信。
* 核心部分：大量网络和连接网络的路由器组成，为边缘提供服务
  * 路由器，实现分组交换（转发分组，分组为报文的一部分）

> 按照范围、使用者划分的几个网络定义：
>
> WAN（广域网），LAN（局域网），PAN（个人域网）
>
> 公用网，专用网

## 指标

**速率**：（数据率、比特率）传输数据的速率，bit/s

**带宽**：最高数据率

**吞吐量**：单位时间内通过网络的数据量

**时延/延迟**：发送时延、传输时延、处理时延、排队时延

**时延带宽积**： = 传播时延x带宽，又称为以比特为单位的链路长度

**往返时间RTT**：发送方发送数据开始，到发送方收到来自接收方的确认，总共经历的时间。

**利用率**：信道利用率、网络利用率（两者不同）。信道或网络利用率过高，会产生很大的延迟。对于网络利用率和延迟的关系，$$D=D\_0/(1-U)$$，其中$$D$$为延迟，$$D\_0$$为空闲时的延迟，$$U$$是利用率。

## 协议与层次

规定交换数据的格式以及有关的同步问题

协议是**水平**的，控制两个**对等实体**进行通信，使得本层能够向上一层提供服务，使用本层协议需要下一层所提供的服务。下层协议对上面的实体是透明的，只有能被实体看见的才称为**服务**。

### 分层

* 各层独立，灵活性好，结构上可分割开，易于实现和维护，促进标准化工作
* **各层完成的功能**（一种或多种，同一个功能在不同层次可能会反复出现）：
  * 差错控制
  * 流量控制
  * 分装和重装（数据块划分为更小的单位，在接收端将其还原）
  * 复用和分用（几个高层会话复用一条低层连接，在接收端将其还原）
  * 连接建立和释放

### 模型

![](/files/-LZlyerojmuy3pMqAx9a)

### 五层简介

> 各层的传输单元都可以称为分组，在OSI模型中成为**PDU(Protocol Data Unit)**

1. **应用层(application layer)**
   1. 通过应用进程的交互来完成特定网络应用，**应用进程**通信和交互的规则【HTTP、SMTP、FTP】
   2. 数据单元：**报文(message)**
2. **传输层(transport layer)**
   1. 向两个主机中**进程之间的通信**提供**通用**的数据传输服务
   2. 通用：不针对某个应用，多个应用可使用同一个传输层服务【复用、分用】
   3. **TCP(Transmission Control Protocol)**&#x9762;向连接、可靠的数据服务，传输单元：**报文段(segment)**
   4. **UDP(User Datagram Protocol)**&#x65E0;连接的、尽最大努力(best-offer)的数据传输服务，不保证可靠性，传输单元：**用户数据报**
3. **网络层(network layer)**
   1. 为**分组交换网**的不同**主机**提供通信服务。发送数据时，把报文段、用户数据报**封装**为**分组**或**包(packet)**&#x8FDB;行传送。
   2. TCP/IP中使用**IP协议**，分组又称为**IP数据报**，或简称**数据报(Datagram)**
   3. 另一个功能：**路由决策**，使得传输层接下来分组可以通过网络中的路由器找到目的主机
4. **数据链路层(data link layer)**
   1. 负责**链路上**两个**相邻节点**之间的数据传&#x8F93;**（字节流）**，将IP数据报组装成**帧(frame)**，帧包括**控制信息**，以便接收端提取数据给上一层
   2. 检错、纠错功能
5. **物理层(physical layer)**
   1. 提供透明传输**比特流**的功能，


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hdnotes.gitbook.io/ns/computer-network/networkbasic-definition.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
