网络原理全景图:从通信起源到 TCP/IP 体系架构深度拆解

【深度长文】网络原理全景图:从通信起源到 TCP/IP 体系架构深度拆解


我的主页: 寻星探路
个人专栏: 《JAVA(SE)----如此简单!!! 》 《从青铜到王者,就差这讲数据结构!!!》
《数据库那些事!!!》 《JavaEE 初阶启程记:跟我走不踩坑》
《JavaEE 进阶:从架构到落地实战 》 《测试开发漫谈》
《测开视角・力扣算法通关》 《从 0 到 1 刷力扣:算法 + 代码双提升》
没有人天生就会编程,但我生来倔强!!!

寻星探路的个人简介:


一、 网络发展史:从"物理孤岛"到"逻辑互连"

1.1 独立模式 (Standalone) ------ 孤岛时代

在计算机诞生的早期,每一台机器都是独立的。文档中描述了一个生动的场景:假设有终端 A、B、C,它们各自持有客户数据。小松正在 A 主机上运行业务①。当他需要处理业务②时,由于 B 主机才持有业务②的数据,小松必须起身并物理移动到 B 主机前。

【深度分析】:这种模式下,数据无法实时同步,硬件资源(如早期的昂贵打印机)也无法共用。如果小松正在操作机器,小竹和小梅就必须处于排队等待状态。这种原始的协作方式极大地限制了生产力,也直接催生了"联网"的需求。

1.2 网络互连 (Network Interconnection) ------ 协作时代

随着时代的发展,企业和研究机构越来越需要计算机之间互相通信、共享软件和数据。通过物理介质将多台计算机连接在一起,便形成了"网络"。

【本质定义】 :数据共享的本质是网络数据传输 ,即计算机之间通过各种物理介质(如铜线、光纤、电磁波)来传输比特流。这一过程也被正式定义为网络通信


二、 局域网(LAN)与广域网(WAN)的组网内幕

2.1 局域网 (Local Area Network)

局域网是指在局部、本地组建的一种私有网络(内网)。其特点是地理范围小、延迟极低、带宽极高。

2.1.1 局域网组建方式深度解析

根据文档及现代工程实践,局域网主要有以下组建手段:

1. 基于网线直连:两台主机通过双绞线点对点连接,适用于临时数据对传。


  2. **基于集线器 (Hub) 组建**:集线器工作在物理层。它像一个大喇叭,收到信号后会广播给所有人。*(缺陷:所有主机共享带宽,易产生碰撞域)*。


  3. **基于交换机 (Switch) 组建**:交换机是二层设备,能学习 MAC 地址并建立地址表。它能实现定向转发,让数据"指名道姓"地投递,互不干扰。


  4. **基于交换机和路由器组建**:当子网规模扩大或需连接外网时,由路由器承担"网关"职能。

2.2 广域网 (Wide Area Network)

通过路由器将分散在世界各地的局域网连接起来,形成跨越地域、国家甚至大洲的巨大网络。

【互联网概念】:互联网(Internet)是广域网中最典型的代表。在广域网中,数据包往往需要经过数十个节点的"接力转发"才能跨越半个地球送达目的地。


三、 网络通信的核心基石:IP、端口与协议

⽹络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据

3.1 IP 地址:网络大地图的"坐标"

作用 :在逻辑上唯一标识网络中的一台主机或路由器。

格式 :目前主流仍为 IPv4,采用"点分十进制"表示(如 192.168.1.1),背后是 32 位二进制数。

拓展 :IPv4 地址总量约 42 亿个,早已分配殆尽。现代网络通过 NAT 技术 (私网地址转换)和 IPv6(128 位地址长度)来缓解地址短缺危机。

3.2 端口号 (Port):定位进程的"房间号"

作用 :IP 地址只能带你找到对应的主机,但主机上可能同时运行着微信、QQ、浏览器等多个程序。端口号则负责标识具体的通信进程

范围:0~65535。0-1023 为知名端口(Well-Known Ports),如 HTTP 默认使用 80 端口,HTTPS 默认使用 443 端口。

3.3 网络协议 (Protocol):通信的"普通话"

由于不同厂商的硬件和操作系统(Windows, Linux, macOS)存在差异,必须有一套公认的标准才能交流。协议规定了数据的:

  • 语法:数据与控制信息的结构或格式。
  • 语义:需要发出何种控制信息,完成何种动作以及做出何种响应。
  • 时序:事件实现顺序的详细说明。

3.4 五元组:标识唯一会话的"身份证"

在 TCP/IP 协议中,任意一个网络通信会话都可以被以下五个元素唯一确定:

  1. 源 IP:发件人地址。
  2. 源端口:发件程序标识。
  3. 目的 IP:收件人地址。
  4. 目的端口:收件程序标识。
  5. 协议号:双方约定使用的传输层协议(如 TCP 或 UDP)。


五元组在网络通信中的作用,类似于发送快递:


四、 协议分层:复杂的艺术

4.1 为什么要分层?

分层是一种分而治之的设计思想。

其核心优势在于:

  • 解耦性:上层只需要调用下层提供的接口,无需关心底层实现(如 WiFi 换成 5G,浏览器代码不用改)。
  • 标准化:方便不同厂商根据同一层协议标准开发兼容的产品。
  • 易维护:每一层只专注解决特定问题,缩小了故障排查范围。

4.2 OSI七层模型深度拆解

OSI(Open System Interconnection)即开放系统互连参考模型,是由国际标准化组织

层级 层次名称 英文名称 主要功能描述 传输单位 (PDU) 典型设备/协议
1 物理层 Physical 负责在物理媒介上传输原始的比特流(电信号/光信号)。 比特 (Bit) 网线, 光纤, 集线器
2 数据链路层 Data Link 负责相邻节点间的链路建立、MAC地址寻址及差错校验。 帧 (Frame) 以太网, ARP, 交换机
3 网络层 Network 负责逻辑寻址和路由选择,寻找最优传输路径。 包 (Packet) IP, ICMP, 路由器
4 传输层 Transport 负责主机间端到端的通信控制、流量控制与纠错。 段 (Segment) TCP, UDP
5 会话层 Session 建立、管理、终止表示层实体之间的会话连接。 数据 (Data) RPC, NFS, NetBIOS
6 表示层 Presentation 负责数据的转换、加密、压缩,确保语义正确。 数据 (Data) SSL, TLS, JPEG, ASCII
7 应用层 Application 直接为用户的应用程序提供接口和网络服务。 数据 (Data) HTTP, HTTPS, DNS, FTP

"在封装与分用的过程中,数据每经过一层都会被打上该层的 PDU(协议数据单元)。理解 OSI 七层模型能帮助我们更清晰地定位网络故障。例如:如果你能 Ping 通对方(网络层正常),但无法访问网页,那问题通常出在传输层或应用层。"

4.3 TCP/IP 五层模型深度拆解

工业界最广泛使用的模型,每一层都为上层提供服务:

层次名称 核心职责 代表性设备/协议
应用层 负责应用程序间的业务逻辑沟通 HTTP, FTP, DNS, SMTP
传输层 负责两台主机间端到端的可靠传输 TCP (可靠), UDP (高效)
网络层 负责地址管理和路径选择 (路由) IP 协议, 路由器
数据链路层 负责相邻设备间的数据帧传送与识别 以太网, 交换机
物理层 负责光/电信号的传递方式 双绞线, 光纤, 集线器

【实质性补充:OSI 七层与 TCP/IP 五层的对应关系】

在实际应用中,TCP/IP 模型将 OSI 的上三层(应用层、表示层、会话层)统一合并为了应用层。

合并原因:对于程序员来说,如何表示数据(表示层)和如何管理连接(会话层)通常是由应用程序本身或特定的库(如 OpenSSL)来完成的,因此在网络传输模型中将其统一。

各司其职:

  • 下四层(物理、链路、网络、传输)主要由操作系统内核和底层硬件(驱动、路由器、交换机)实现。
  • 上三层(对应 TCP/IP 的应用层)主要由程序员在用户态通过代码逻辑实现。

4.4 TCP/IP通讯过程

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/06adb96b7394415a85bba97b6b34a8be.png)
  以下为跨⽹段的主机的⽂件传输:数据从⼀台计算机到另⼀台计算机传输过程中要经过⼀个或多个路由器


五、 数据的封装与分用:快递的打包与拆箱

这是理解网络底层运行逻辑的最重要环节。

5.1 封装 (Encapsulation) ------ 发件过程

数据从应用层向下流动,每经过一层都会被打上该层的"首部 (Header)"标签:

  1. 应用层:生成原始载荷。
  2. 传输层 :加上 TCP/UDP 头(含端口号),生成段 (Segment)
  3. 网络层 :加上 IP 头(含 IP 地址),生成数据报 (Datagram)
  4. 链路层 :加上帧头(含 MAC 地址)和帧尾(校验位),生成帧 (Frame)

5.2 分用 (Demultiplexing) ------ 收件过程

目标主机收到比特流后,由底层向上进行逆向的"拆箱":

  1. 链路层:识别 MAC 地址,确认无误后剥离帧头,送往网络层。
  2. 网络层:根据 IP 首部信息,识别目标 IP,拆掉 IP 头送往传输层。
  3. 传输层:根据端口号,将载荷推送到对应的进程(Socket)。
  4. 应用层:应用程序获取到最原始的业务数据。

六、 总结与结语

通过对网络原理的初识,我们建立了一个立体的认知框架:IP 定位主机,端口定位程序,协议约定规则,分层实现解耦,封装完成传输。

这只是探索计算机网络海洋的第一步。在接下来的系列文章中,我们将深入研究 TCP 的"三次握手"与"四次挥手",探讨 HTTP 协议的演进,以及如何利用 Wireshark 等工具进行实战抓包分析。掌握了网络原理,你就真正拿到了通往高级后端开发者和大架构师的"入场券"。


相关推荐
子一!!2 小时前
MySQL==表的结构操作1
android·python·adb
清水白石0082 小时前
动态规划中的记忆化与缓存:原理、差异与 Python 实战指南
python·缓存·动态规划
未来之窗软件服务2 小时前
幽冥大陆(八十八 ) 操作系统应用封装技术C#自解压 —东方仙盟练气期
java·前端·c#·软件打包·仙盟创梦ide·东方仙盟·阿雪技术观
无垠的广袤2 小时前
【上海晶珩睿莓 1 单板计算机】物联网环境监测终端
linux·python·嵌入式硬件·物联网·mqtt·home assistant
技术小泽2 小时前
java转go速成入门笔记篇(一)
java·笔记·golang
你不是我我2 小时前
【Java 开发日记】我们来说一下 MySQL 的慢查询日志
android·java·mysql
C雨后彩虹2 小时前
ReentrantLock入门:核心特性与基本使用
java·数据结构·reentrantlock·lock
Dovis(誓平步青云)2 小时前
《拆解Linux中的IP协议与数据链路层:地址、路由与分片的底层逻辑》
linux·网络·tcp/ip
资生算法程序员_畅想家_剑魔2 小时前
Java常见技术分享-27-事务安全-事务日志-事务日志框架
java·开发语言