Host / End System 思考记录

背景

学习《Computer Networking: A Top-Down Approach》时看到:

All devices connected to the Internet are called hosts or end systems.

教材将 Host 和 End System 放在一起描述。


初始理解

最初理解:

Host / End System = 接入 Internet 的设备。

例如:

  • PC
  • 手机
  • Server
  • IoT 设备

但是继续思考后发现,如果按照物理设备分类,会出现很多问题。


问题与思考

Q1:所有连接 Internet 的设备都是 Host 吗?

疑问

如果:

连接 Internet
=
Host

那么:

  • Router
  • Switch
  • Firewall
  • AP

是否也应该属于 Host?

这些设备同样:

  • 连接网络
  • 拥有网络地址
  • 参与数据传输

但是它们的功能明显不同。


思考

计算机网络中的模型描述的不是:

物理设备类型

而是:

网络功能角色

因此:

Physical Device

≠

Network Role

同一个物理设备可以承担不同网络角色。

例如:

Linux Server

Host Role:
运行 Web 服务

Router Role:
开启 IP Forwarding

Firewall Role:
执行过滤规则

Q2:Host 和 End System 是两个概念吗?

疑问

为什么教材写:

Host or End System

是否表示两个不同类别?


思考

在 Computer Network 语境下:

Host ≈ End System

两者表示相同网络角色。

区别:

概念强调
Host计算系统、运行程序的节点
End System网络通信中的端点

Host 更偏计算机系统视角。

End System 更偏网络模型视角。


Q3:Host 是不是实际运行的程序?

疑问

实际通信发生在程序之间:

Application Process
        |
Application Process

那么 Host 是否就是程序?


思考

不是。

层次关系:

Host

├── Application Process
│
├── Transport Layer
│
├── Network Layer
│
└── Link Layer

区别:

概念含义
Host承载网络通信的系统实体
Process运行在 Host 上的应用程序

对应:

应用层:

Process ↔ Process

网络层:

Host ↔ Host

Q4:Host 是否等于物理设备?

疑问

现代设备功能越来越复杂:

例如:

  • 路由器提供 AP 功能
  • AP 提供路由功能
  • Linux 可以软件实现路由

是否还能通过设备判断角色?


思考

不能。

应该区分:

硬件设备

≠

网络角色

网络模型关注的是:

  • 谁产生数据
  • 谁消费数据
  • 谁负责转发

而不是:

  • 这个盒子叫什么

Q5:Host 为什么属于网络边缘?

疑问

Host 和 Network Core 的关系是什么?


思考

Internet 可以抽象为:

Host

 |

Access Network

 |

Network Core

 |

Access Network

 |

Host

Host:

  • 位于 Network Edge
  • 产生数据
  • 消费数据

Network Core:

  • 位于网络核心
  • 负责转发数据

Q6:为什么 Router 通常不是 Host?

疑问

Router:

  • 有 IP 地址
  • 连接 Internet
  • 处理网络数据

为什么不叫 Host?


思考

关键区别:

Host:

Data Source / Destination

Router:

Packet Forwarding

比较:

HostRouter
位置网络边缘网络核心
作用产生/消费数据转发数据
角色通信端点中间节点

Q7:点对点直连是否符合 Host / End System 模型?

疑问

如果两个设备直接连接:

Host A ---------------- Host B

没有 Router,是否仍符合模型?


思考

符合。

因为模型描述:

Endpoint → Network → Endpoint

而不是:

Endpoint → Router → Router → Endpoint

Network 可以简单到只有一条链路。


Q8:网卡属于 Host 还是 Network Core?

疑问

网卡负责网络通信,是否属于 Network Core?


思考

网卡属于 Host 的网络接口。

负责:

  • 数据发送
  • 数据接收
  • 链路层通信

但是不负责:

  • 路由选择
  • 数据包转发

因此:

NIC 属于 Host

不是 Network Core

最终结论

Host / End System 定义

Host / End System:

Internet 中作为通信端点的网络节点,位于网络边缘,运行应用程序,并作为数据通信的源或目的。


核心理解

学习 Computer Network 时:

不要优先按照:

硬件设备分类

理解网络。

应该按照:

功能角色
+
通信关系
+
分层模型

理解。


最终模型

             Internet

Host A                         Host B

Application                 Application
     |                           |
 Socket                      Socket
     |                           |
 TCP/IP                      TCP/IP
     |                           |
 Network Core ------------- Network Core

其中:

Host:

  • 通信端点
  • 数据源或目的
  • 运行应用程序

Network Core:

  • 转发数据
  • 提供连接能力