作为程序员,咱们日常写的代码、用的应用,背后都离不开计算机网络的支撑。今天就从最基础的 Internet 讲起,再深入到网络分层模型,把这些核心知识掰开揉碎了说清楚,不管是刚入门还是想巩固基础的朋友,都能看懂~

一、先搞懂:什么是 Internet?

咱们常说的 “互联网”,其实就是 Internet 的中文翻译。但它可不是简单把几台电脑连起来就行,得先明确它的定义:计算机网络是两台或更多计算机组成的网络,同一网络里任意两台电脑能直接通信;而 Internet 是把无数个计算机网络连起来,形成全球统一的大网,所有设备都得遵守同一套网络协议

1.1 Internet 的 3 个核心特点

这三点能帮你快速抓住互联网的本质,咱们结合例子说:

  • 全球性连接:打破地理限制!不管是你手里的手机、家里的电脑,还是公司的数据中心服务器,只要连了网,就能和全球任何一个接入点通信。比如咱们在国内能刷到美国的视频,给欧洲的朋友发邮件,靠的就是这个。
  • 基于统一协议:所有设备都得遵守 “TCP/IP 协议”(传输控制协议 / 网际协议),这就像大家都讲同一种语言,才能互相听懂。其中 TCP 负责 “保证数据靠谱”—— 比如把大文件拆成小块,传完了还会校验有没有丢;IP 负责 “找路”—— 就像导航一样,确定数据从哪里发到哪里。
  • 资源共享与交互:互联网的核心价值就在这!既能共享资源(比如看新闻、用云存储、借云计算的算力),还能双向交互 —— 你不光能刷短视频,自己也能发;不光能网购,还能开店卖东西。

1.2 Internet 的组成:硬件 + 层次 + 关键设施

互联网能跑起来,靠的是 “硬件打底、层次搭架、设施保障”,咱们一步步拆:

(1)硬件基础:这些设备是 “骨架”

没有硬件,互联网就是空架子。主要分三类,都是咱们多少听过的:

  • 核心网络设备:相当于 “交通枢纽”,负责转发大量数据
    • 骨干路由器:由电信、移动、联通这些运营商部署,比如华为 NE 系列、中兴 ZXR10 系列,专门负责跨区域传输,比如把北京用户的请求转发到上海的服务器。
    • 国际出入口路由器:集中在北上广这些大城市,是中国互联网连全球的 “闸门”,对接国际海底光缆和国外的网络。
  • 传输线路:相当于 “信息高速公路”,传数据全靠它
    • 国内骨干传输网:以光纤为主,铺成了 “八纵八横” 的干线,比如 “京汉广光缆”“沪宁杭光缆”,覆盖全国 31 个省市,传输速率从 100G 到 400G 不等,国内大数据交互全靠它撑着。
    • 国际连接线:主要是海底光缆(比如中日海底光缆、亚太直达光缆 APG)和卫星,截至 2023 年,中国国际光缆总带宽超过 100Tbps,是连全球的 “桥梁”。
  • 接入层设备:相当于 “最后一公里”,帮咱们连上网
    • 城域网设备:在城市里部署,比如汇聚交换机、接入服务器,负责把小区、公司的网络接入骨干网(比如家里装的电信 “光猫 + OLT” 设备)。
    • 终端接入设备:就是咱们身边的设备,比如家里的路由器、光猫,手机连的 4G/5G 基站、WiFi 热点,没有这些,咱们的手机电脑就没法上网。
(2)网络层次:互联网是 “网中网”

互联网不是 “一张平网”,而是分层搭建的,就像盖楼从地基到顶楼一样,分三层:

  • 国家级骨干网:国内最高层的网,由电信、移动、联通、广电四大运营商建的,比如电信的 “163 骨干网”、移动的 “CMNet 骨干网”,覆盖全国省会和重要节点,负责省际、国际数据传输。而且骨干网之间有 “国家互联网交换中心”(北京、上海、广州这些地方有),比如联通用户访问电信服务器,不用绕远路,直接通过交换中心转发,更快。
  • 省级 / 城域骨干网:中间层,承上启下
    • 省级骨干网:每个省建一个,把省内城市的网汇聚起来,再接入国家级骨干网,比如江苏的省级骨干网,会把南京、苏州的网连起来,再连到国家网。
    • 城域网:只覆盖一个城市,负责本地数据交换,比如南京用户访问南京本地的服务器,不用走国家级骨干网,直接走城域网,延迟更低。
  • 接入网:直接连咱们用户的网,比如家里的光纤(FTTH)、公司的专线、手机的 4G/5G、WiFi。举个例子:你家的光纤连到小区的 OLT 设备,再接入城域网,最后连到骨干网,这样你就能上网了。
(3)关键基础设施:保障互联网 “靠谱运行”

这几个设施虽然咱们平时看不到,但少了它们可不行:

  • DNS 根服务器镜像与国内 DNS 体系:负责把 “域名”(比如www.taobao.com)转换成 “IP 地址”(比如一串数字),不然电脑找不到要访问的服务器。国内部署了国际 DNS 根服务器的镜像节点,还有自己的 DNS(比如 114.114.114.114、119.29.29.29),保证咱们解析域名更快。
  • 数据中心(IDC):相当于 “互联网的仓库和工厂”,分两种:
    • 超大型数据中心:比如阿里云张北数据中心、腾讯天津数据中心,存海量数据,跑云计算、大数据分析这些核心服务。
    • 边缘数据中心:分布在各个城市,负责就近处理本地请求,比如短视频缓存、游戏实时数据,这样你刷视频、打游戏延迟更低。
  • 网络安全设施:比如国家互联网应急中心(CNCERT)、运营商的 DDoS 防护系统,负责防网络攻击(比如流量攻击)、过滤违法信息,保证网络安全。
(4)软件与服务:互联网的 “灵魂”

有了硬件和设施,还得有软件和服务才能用。咱们平时用的功能,都是这些服务提供的:

  • 基础服务:比如微信、QQ(即时通讯),网易邮箱、QQ 邮箱(电子邮件),阿里云、华为云(云服务),这些服务的服务器大多在国内数据中心,访问延迟低。
  • 特色应用:比如支付宝、微信支付(移动支付),靠稳定的网络实现实时交易;抖音、快手(短视频),靠边缘节点缓存内容,刷起来更流畅;在线教育、远程医疗,靠高速宽带和低延迟网络支撑互动。
  • 跨境服务接入:咱们访问国外的网站(比如国际学术网站),数据会通过国际出入口路由器传出去;国外用户访问国内的阿里国际站,数据会通过国际光缆接入中国骨干网。

二、网络分层模型:把复杂问题拆解开

网络通信是个超级复杂的事儿 —— 从你在手机上点 “发送”,到数据传到对方手机,要做 “打包、标地址、选路线、查错误、转格式” 等一堆操作。要是把这些操作全堆在一个模块里,改一个小地方就可能崩整个系统,根本没法维护。

所以,网络分层模型就来了 ——本质是 “把复杂问题拆成一个个小问题”,每一层只干自己的活,不用管其他层。比如 OSI 七层模型、TCP/IP 四层模型,都是这么设计的。

先明确两个关键概念:

  • 接口:上下层之间交互的约定,比如上层告诉下层 “我要传数据,你按这格式接”。
  • 协议:同一层之间交互的约定,比如两台电脑的传输层,都按 TCP 协议传数据。

2.1 OSI 七层模型:理论上的 “标准分层”

OSI(Open System Interconnect)是 ISO 组织定义的理论模型,目的是简化网络操作、提供标准接口,从上到下共 7 层,每层的职责很明确:

层级 名称 核心职责
7 应用层 直接给用户提供服务,比如微信、浏览器就是在这一层工作
6 表示层 处理数据格式,比如编解码(把文字转成二进制)、加密解密(比如 HTTPS 的加密)、压缩解压缩
5 会话层 管理应用之间的会话,比如建立连接、维持连接、断了重连
4 传输层 负责两台主机的进程之间通信,保证数据传得靠谱(或高效)
3 网络层 选路线、标地址,决定数据从 A 到 B 走哪条路
2 数据链路层 管理相邻设备之间的数据通信,比如两个路由器之间传数据
1 物理层 提供传输介质(比如光纤、网线),实现相邻设备之间的比特流传输

不过 OSI 只是理论模型,实际互联网用的是更简洁的 TCP/IP 模型。

2.2 为什么要分层?举个例子就懂

要是不分层,就像用一个程序管 “快递打包 + 运输 + 配送 + 签收” 全流程:

  • 要是打包规格改了(比如从纸箱换成信封),运输、配送的流程都得改;
  • 要是配送员换了路线,打包、运输的程序也可能受影响。

分层之后就不一样了:

  • 应用层(比如微信)只负责生成消息,不管数据是走光纤还是 5G;
  • 物理层只负责传信号,不管信号里是文字还是图片;
  • 改某一层的逻辑,其他层完全不用动 —— 比如传输层从 TCP 换成 UDP,应用层和物理层都不用改。

这种 “分工明确” 的设计,让复杂的网络通信变得可实现、可维护。

三、TCP/IP 模型:互联网实际在用的 “简化版分层”

TCP/IP 模型是 OSI 的简化版,共 4 层(也有说 5 层的,核心一样),互联网所有设备都遵循这个模型。咱们从上层到下层,一步步说清楚每一层的作用和常见协议。

先看 TCP/IP 和 OSI 的对应关系,帮你理解:

TCP/IP 模型 对应 OSI 模型 核心职责
应用层 应用层 + 表示层 + 会话层 给用户提供服务,处理数据格式、管理会话
传输层 传输层 负责两台主机进程之间的通信,提供可靠 / 高效的数据传输
网络层 网络层 路由和寻址,决定数据传输路径
网络接口层 数据链路层 + 物理层 处理相邻设备通信,提供物理介质传输比特流

3.1 应用层:给用户 “干活” 的一层

应用层是最贴近用户的一层,负责基于特定协议给用户提供功能,不用管数据怎么传,只需要把数据包交给传输层就行—— 就像你把快递包好,交给快递小哥,剩下的不用管。

常见的应用层协议,都是咱们日常会接触到的:

  • DNS(域名系统):把域名(比如www.baidu.com)转换成 IP 地址(比如 180.101.49.11),不然电脑不知道要访问哪个服务器。
  • HTTP 协议:超文本传输协议,咱们刷网页、用 APP 看内容,大多靠它 —— 比如打开淘宝、看公众号文章,背后都是 HTTP 在传数据。
  • 电子邮件协议:发邮件靠的就是它,常用的有 SMTP(发邮件)、POP3(收邮件,下载到本地)、IMAP4(收邮件,同步到多个设备)。
  • Telnet 协议:远程登录协议,能让你登录到远程主机,比如运维工程师远程管理服务器,可能会用到它。
  • FTP 协议:文件传输协议,用于在网络上传文件,比如把本地文件传到服务器,或者从服务器下载文件。

应用层会生成 “消息 / 报文(message)”,然后发给传输层。

3.2 传输层:保证数据 “传对、传好”

传输层的核心是定义两台主机的进程之间怎么通信—— 比如你用微信给朋友发消息,微信的进程和你朋友微信的进程之间,就是靠传输层连接的。

传输层有两个常用协议,特点完全不同,咱们对比着看:

协议 核心特点 适用场景
TCP 面向连接、可靠传输 要求数据不丢、不错的场景,比如微信 / QQ 发消息、传文件,网购支付
UDP 无连接、不可靠传输 要求实时性、效率的场景,比如腾讯会议(视频通话)、网络游戏、爱奇艺刷视频

TCP 为什么可靠?因为它有 “流量控制”(根据对方接收能力调整发送速度)、“超时重传”(没收到确认就重发)、“拥塞控制”(避免网络堵了还发数据)这些机制。

UDP 虽然不可靠,但它速度快、延迟低 —— 比如刷视频,丢一两个数据包不影响观感,要是等 TCP 重传,反而会卡顿。

传输层会把应用层的 “报文(message)” 拆分成若干个 “TCP 报文段(TCP Segment)” 或 “UDP 数据报”,然后发给网络层。

3.3 网络层:给数据 “找路” 的一层

咱们的电脑和目标服务器之间,可能要经过很多路由器、很多网络(比如你家的网→小区的网→城域网→骨干网→服务器的网)。网络层的核心就是选一条合适的路,把数据从源设备传到目标设备

网络层最核心的协议就是 “IP 协议”(网际协议),主要干两件事:

  • IP 寻址:给每个设备分配一个唯一的 “IP 地址”(比如 192.168.1.1),就像给房子编门牌号,让数据知道要发给谁。
  • 路由选择:通过路由器,选择从源 IP 到目标 IP 的最优路径 —— 比如从北京发数据到上海,是走天津→济南→南京→上海,还是走石家庄→郑州→合肥→上海,由路由协议决定。

网络层会在传输层的 “TCP 报文段” 或 “UDP 数据报” 前面,加上 “IP 报头”(里面包含源 IP、目标 IP 等信息),生成 “IP 数据包(Packet)”,然后发给网络接口层。

3.4 网络接口层:把数据 “送出门” 的一层

网络接口层是最底层,负责把网络层的 “IP 数据包” 发到物理网络上。但这里有个问题:以太网(咱们平时用的局域网、宽带网大多是以太网)不认识 IP 地址,只认识 “MAC 地址”(每个网卡的唯一地址,比如 00-1A-2B-3C-4D-5E)。

所以网络接口层要做两件事:

  1. 通过 “ARP 协议”(地址解析协议),根据目标 IP 地址,找到对方的 MAC 地址;
  2. 在 “IP 数据包” 前面加上 “MAC 报头”(里面包含源 MAC、目标 MAC),生成 “数据帧(Data Frame)”;
  3. 把 “数据帧” 通过物理介质(比如光纤、网线、无线电波)发送出去,传给相邻的设备。

到这里,数据就从你的设备发出去了,然后通过一个个路由器转发,最终传到目标设备,再从下往上一层层解包(去掉 MAC 报头→去掉 IP 报头→去掉 TCP/UDP 报头→拿到应用层的消息),对方就能收到你发的内容了。

最后:数据传输的完整流程(帮你串起所有知识点)

咱们以 “用微信给朋友发一条文字消息” 为例,走一遍 TCP/IP 模型的全流程,帮你巩固:

  1. 应用层:你在微信输入文字,点击发送,微信(应用层)按自己的格式生成 “消息报文”,发给传输层;
  2. 传输层:传输层用 TCP 协议,把 “消息报文” 拆成小的 “TCP 报文段”,加上 TCP 报头(包含源端口、目标端口,比如微信的进程端口),发给网络层;
  3. 网络层:网络层用 IP 协议,给 “TCP 报文段” 加上 IP 报头(包含你的手机 IP、朋友手机的 IP),生成 “IP 数据包”,发给网络接口层;
  4. 网络接口层:通过 ARP 协议找到你家路由器的 MAC 地址,给 “IP 数据包” 加上 MAC 报头,生成 “数据帧”,通过 WiFi(物理介质)发给路由器;
  5. 路由器转发:路由器收到 “数据帧”,去掉 MAC 报头,看 IP 报头里的目标 IP,选一条路转发给下一个路由器,直到传到朋友手机所在的网络;
  6. 朋友手机解包:朋友的手机收到 “数据帧”,从下往上一层层解包(去掉 MAC 报头→去掉 IP 报头→去掉 TCP 报头),拿到原始消息,微信显示出来。

整个过程,每一层只干自己的活,互不干扰,这就是网络分层模型的魅力~

希望这篇文章能帮你把计算机网络的基础串明白,要是有疑问,欢迎在评论区交流~

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐