网络原理初识:从"几台电脑各干各的"到"数据包跨网段飞奔"的一整套思维模型
网络这东西,乍看像"把网线插上就能上网",细看其实是一套严密的工程体系:要能定位主机、定位进程、定义数据格式、在不同设备间转发、还能在接收端把数据交还给正确的应用程序。把这些关键概念按一条线串起来:网络互连 → LAN/WAN → IP/端口 → 协议与五元组 → 协议分层(OSI/TCP-IP)→ 设备分层位置 → 封装与分用。
1. 网络是怎么"从无到有"的:独立模式 → 网络互连
最早的计算机是独立模式 :每台计算机彼此相互独立,各自存软件和数据,协作效率低。随着业务需要协同、共享数据与软件,"多台计算机协同完成业务"变成刚需,于是出现了网络互连 :把多台计算机连接在一起实现数据共享。

这里有个非常重要的等价关系:
数据共享的本质 = 网络数据传输 = 网络通信。
网络互连按规模大致分为两类:局域网(LAN)和广域网(WAN)。
2. 局域网 LAN:本地私有网,内网的典型形态
**局域网(LAN, Local Area Network)**的关键词是 Local:本地、局部组建的私有网络。局域网内主机之间方便通信,所以也常被叫"内网";如果两个局域网之间没有连接,它们是无法直接通信的。
来看局域网常见的组网方式(从简单到标准):
- 网线直连
- 通过集线器(Hub)
- 通过交换机(Switch)
- 交换机 + 路由器混合组网(更接近真实企业网络)


3. 广域网 WAN:路由器把多个 LAN 串起来,互联网是它的子集
**广域网(WAN, Wide Area Network)**通常由路由器把多个局域网连接起来,形成物理范围更大的网络。广域网内部的各个局域网可以看作它的子网。
一个很现实的例子:北/中/南分公司甚至海外分公司通过专线互联,这就属于广域网。
如果是全球公共型广域网,就叫互联网 (公网/外网),它可以视为广域网的一个子集。并且要注意:LAN/WAN 其实是相对概念------某些"不那么严格"的语境里,人们说 WAN 往往就是指互联网。

4. 网络通信到底在"通信"什么:进程到进程,而不是"电脑到电脑"
网络互连的目的,是实现网络通信。更精确地说:网络主机中的不同进程之间,通过网络传输数据。
于是问题来了:
- 如何定位"是哪台主机"?
- 如何定位"主机上的哪个进程"?
- 如何让对方知道"这串 0/1 表示什么格式的数据"?
答案对应三件套:IP 地址 + 端口号 + 协议。
5. IP 地址:用来定位主机(就像快递的收货地址)
5.1 概念
IP 地址用来标识网络主机(以及路由器等网络设备)的网络地址,本质就是"定位主机在哪里"。
5.2 格式
IP 地址是一个 32 位二进制数 ,通常分为 4 个 8 位(4 字节),再用"点分十进制"写成 a.b.c.d 形式,其中每段是 0~255 的整数,例如 100.4.5.6。
6. 端口号:用来定位进程(就像快递的收货人)
6.1 概念
IP 只能定位到一台主机,但主机上有很多进程在收发数据。端口号就是用来标识"主机上的哪个进程在通信"。
6.2 格式
端口号是 0~65535 的数字。进程通过绑定端口来发送/接收网络数据。
到这里你已经能"定位到唯一进程"了:IP + 端口可以唯一标识一个通信端点。但仍缺一块:数据格式。
7. 协议:规定"数据怎么长",否则 0/1 没法解释
网络传输的介质是光信号/电信号,通过"频率、强弱"等方式表达 0 和 1。要传输文本、图片、视频等不同信息,必须约定数据格式。
**网络协议(protocol)**就是网络通信中所有设备必须共同遵守的一组约定/规则(如何建立连接、如何识别、数据包格式等)。它最终体现为:在网络上传输的数据包长什么样。
为什么协议这么重要?因为现实世界里有很多厂商、很多操作系统、很多网络设备------要让它们互通,就必须有统一标准。
8. 五元组:一次网络通信的"身份证"
在 TCP/IP 体系里,常用五元组标识一次网络通信:
- 源 IP(源主机)
- 源端口(源主机进程)
- 目的 IP(目的主机)
- 目的端口(目的主机进程)
- 协议号(双方约定的数据格式,比如 TCP/UDP)
这套东西特别像快递系统:地址 + 收件人 + 运输规则,一条链路就被唯一确定了。

8.1 在 Windows 上怎么看五元组
来看一个非常实用的命令:
netstat -ano:查看网络连接信息(包含 IP/端口/状态/PID)- 需要过滤时:
netstat -ano | findstr <过滤字符串>(常按端口号或 PID 过滤)
9. 协议为什么要分层:像"面向接口编程",降低复杂度
网络通信比"打电话"复杂得多,所以协议通常按层次来定义。分层的最大好处,是类似"面向接口编程":每层只需要对下层提出需求、对上层提供服务,中间实现细节被封装起来。
对使用方来说:只管调用接口,不用关心底层怎么实现。
对提供方来说:隐藏复杂实现,只暴露稳定接口。
结果是:更易扩展、更易维护。


10. OSI 七层:逻辑框架很完整,但工程上太重
OSI(Open System Interconnection)七层模型是逻辑上的定义与规范,把网络从逻辑上分为 7 层,用来帮助不同类型主机实现数据传输。
但结论也很直接:OSI 七层复杂且不实用 ,没有成为主流落地实现。现实网络更多参考它的思想,真正普及的是 TCP/IP 分层模型。


11. TCP/IP 五层(或四层):真实世界的主流分层
TCP/IP 是一组协议簇的代名词。常用的实现模型是 五层 (有时把物理层弱化成 四层)。每层调用下层提供的能力来完成自己的任务:
11.1 应用层
负责应用程序间通信,例如 SMTP、FTP、Telnet 等;日常网络编程主要面对这一层。
11.2 传输层
负责两台主机之间的数据传输。TCP 提供可靠传输能力(保证数据可靠从源到目标)。
11.3 网络层
负责地址管理与路由选择。IP 用 IP 地址标识主机,路由表规划路径;路由器工作在网络层。
11.4 数据链路层
负责设备间的数据帧传送与识别,例如网卡驱动、帧同步、冲突检测、差错校验等;以太网、无线 LAN 等标准在这里;交换机工作在数据链路层。
11.5 物理层
负责光/电信号的传递方式(网线、光纤、电磁波等),决定最大传输速率、距离、抗干扰能力;集线器工作在物理层 。


以下为跨网段主机的文件传输

12. 设备在分层模型里的位置:主机/路由器/交换机/集线器各管哪几层
这个映射非常有助于排障:
- 主机:操作系统内核实现从传输层到物理层(五层模型的下四层)
- 路由器:实现网络层到物理层(下三层)
- 交换机:实现数据链路层到物理层(下两层)
- 集线器:只实现物理层
(这里讨论的是传统意义的二层交换机、三层路由器;现实设备也可能出现三层/四层交换机、四层路由器等演进形态。)
13. 同网段 vs 跨网段:数据会不会经过路由器,是分水岭
- 同一网段的两台主机通信,链路更简单,通常不需要经过路由器。
- 跨网段通信时,数据从一台主机到另一台主机的过程中会经过一个或多个路由器(路由选择开始发挥作用)。
这也是很多网络问题的根源:同网段能通,跨网段不通,优先检查路由/网关/路由表与 ACL(访问控制)一类配置。
14. 封装与分用:数据包为什么一层套一层,到了对面又能拆开
14.1 不同层对数据的不同称谓
- 传输层:段(segment)
- 网络层:数据报(datagram)
- 链路层:帧(frame)
14.2 封装(Encapsulation)
应用层数据通过协议栈发送到网络上时,每层协议都会加一个首部(header),把上层数据当作载荷(payload)。首部里包含很多关键信息:首部长度、载荷长度、上层协议类型等。这个"逐层加头"的过程就是封装。

14.3 分用(Demultiplexing)
数据到达目的主机后,每层协议再剥掉对应首部,并根据首部里的"上层协议字段",把数据交给正确的上层协议处理,最终回到正确的应用程序。
这就是为什么你抓包时会看到:以太网头、IP 头、TCP 头、再到 HTTP 数据------它们不是"重复信息",而是每一层完成自己职责所必须携带的控制信息。

总结
- LAN/WAN 是规模概念;互联网是公共型 WAN 的子集
- 进程通信靠三件套:IP(主机)+ 端口(进程)+ 协议(格式)
- 一条连接用五元组定位,
netstat -ano能让它"现形" - 分层是为了复杂系统可维护;现实落地看 TCP/IP 五层(或四层)
- 路由器/交换机/集线器各自只负责部分层级
- 数据靠"封装"走天下,靠"分用"回到正确应用