网络原理初识:从“几台电脑各干各的”到“数据包跨网段飞奔”的一整套思维模型

网络原理初识:从"几台电脑各干各的"到"数据包跨网段飞奔"的一整套思维模型

网络这东西,乍看像"把网线插上就能上网",细看其实是一套严密的工程体系:要能定位主机、定位进程、定义数据格式、在不同设备间转发、还能在接收端把数据交还给正确的应用程序。把这些关键概念按一条线串起来:网络互连 → LAN/WAN → IP/端口 → 协议与五元组 → 协议分层(OSI/TCP-IP)→ 设备分层位置 → 封装与分用。


1. 网络是怎么"从无到有"的:独立模式 → 网络互连

最早的计算机是独立模式 :每台计算机彼此相互独立,各自存软件和数据,协作效率低。随着业务需要协同、共享数据与软件,"多台计算机协同完成业务"变成刚需,于是出现了网络互连 :把多台计算机连接在一起实现数据共享。

这里有个非常重要的等价关系:

数据共享的本质 = 网络数据传输 = 网络通信。

网络互连按规模大致分为两类:局域网(LAN)和广域网(WAN)。


2. 局域网 LAN:本地私有网,内网的典型形态

**局域网(LAN, Local Area Network)**的关键词是 Local:本地、局部组建的私有网络。局域网内主机之间方便通信,所以也常被叫"内网";如果两个局域网之间没有连接,它们是无法直接通信的。

来看局域网常见的组网方式(从简单到标准):

  1. 网线直连
  2. 通过集线器(Hub)
  3. 通过交换机(Switch)
  4. 交换机 + 路由器混合组网(更接近真实企业网络)


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 体系里,常用五元组标识一次网络通信:

  1. 源 IP(源主机)
  2. 源端口(源主机进程)
  3. 目的 IP(目的主机)
  4. 目的端口(目的主机进程)
  5. 协议号(双方约定的数据格式,比如 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 五层(或四层)
  • 路由器/交换机/集线器各自只负责部分层级
  • 数据靠"封装"走天下,靠"分用"回到正确应用
相关推荐
XiaoHu02072 小时前
Linux高级IO
网络
专业开发者2 小时前
Wi-Fi 技术学习:802.11ax BSS 着色原理与性能优化解析
网络·学习
Trouvaille ~2 小时前
【Linux】网络进阶:内网穿透、DNS与ICMP实战
linux·运维·服务器·网络·dns·nat·icmp
开开心心就好2 小时前
实用PDF批量加马赛克,抹除敏感信息绿色版
java·linux·开发语言·网络·人工智能·pdf·word2vec
礼拜天没时间.2 小时前
Docker Compose 实战:从单容器命令到多服务编排
运维·网络·docker·云原生·容器·centos
乾元2 小时前
模型提取:黑盒环境下如何窃取对手的 AI 模型参数
网络·人工智能·安全·web安全·机器学习·架构·系统架构
志栋智能2 小时前
AI驱动的带内自动化巡检:编织IT生态的“智慧神经网络”
大数据·运维·网络·人工智能·神经网络·自动化
键盘鼓手苏苏2 小时前
Flutter for OpenHarmony:injector 轻量级依赖注入库(比 GetIt 更简单的选择) 深度解析与鸿蒙适配指南
css·网络·flutter·华为·rust·harmonyos
知识即是力量ol2 小时前
口语八股——计算机网络篇(终篇)
java·计算机网络·面试·八股