写在前面

前两篇我们认识了计算机的"身体"(硬件)和"工作岗位"(服务器与云计算)。现在,我们要回答一个最核心的问题:两台计算机之间,到底是怎么"说话"的?

本文只讲四个核心概念:网络是什么、数据怎么找到路、数据怎么传得稳、程序员日常怎么打交道。不堆砌术语,不炫技,让你用最短的时间建立网络认知框架。


📌 第一部分:网络是什么?——计算机的"电话系统"

1.1 一句话定义

计算机网络:把多台计算机通过线路和设备连接起来,让它们可以互相传递信息的系统。

一句话理解:网络就是计算机之间的电话系统。你的电脑打电话,对方的电脑接听,中间经过交换机和路由器转接。


1.2 网络的核心作用

作用生活类比编程场景
传数据打电话、发微信浏览器请求网页、APP调用接口
共享资源图书馆借书云盘下载文件、访问数据库
远程控制遥控家电SSH登录服务器、远程桌面

关键认知:你写的每一行代码,只要涉及"联网",本质上都是在使用这个"电话系统"。


1.3 你家是怎么上网的?——网络设备一览表

设备作用比喻
光猫/调制解调器把光信号转成电信号,连接运营商家门口的电话接线盒
路由器给家里设备分配IP,连接互联网小区门卫,负责对外联络
交换机让家里多台设备互相通信楼道的分线器
你的电脑/手机发起请求、接收数据打电话的人

数据流向表

步骤数据流向作用
1你的电脑 → 路由器发起请求
2路由器 → 光猫转发到运营商
3光猫 → 运营商 → 互联网进入广域网
4互联网 → 目标服务器到达目的地
5目标服务器 → 互联网 → 运营商 → 光猫 → 路由器 → 你的电脑返回数据

📌 第二部分:数据怎么找到路?——IP地址和DNS

2.1 IP地址:计算机的"电话号码"

IP地址:网络中每台设备的唯一标识,就像电话号码。数据包根据IP地址找到目的地。

类型说明例子特点
公网IP全球唯一,互联网上可直接访问114.114.114.114稀缺、需向运营商申请
私网IP局域网内部使用,不同网络可重复192.168.1.1免费、由路由器自动分配

为什么需要两种IP?

场景问题解决方式
家里5台设备上网运营商只给1个公网IP路由器给5台设备分配私网IP,共享1个公网IP
公司100台电脑不可能每台都有公网IP统一分配私网IP,通过公司网关上网

关键认知:你买的云服务器有两个IP——私网IP(内网通信,免费)和公网IP(对外服务,按流量计费)。


2.2 端口:区分"打给哪个部门"

端口:IP地址找到大楼,端口找到具体的办公室。一台服务器可以同时提供多种服务,靠端口区分。

常见端口服务用途
80HTTP网页浏览(明文)
443HTTPS网页浏览(加密)
22SSH远程登录服务器
3306MySQL数据库服务
6379Redis缓存服务

访问一个服务的完整地址解析表

组成部分示例值含义
协议http://使用HTTP协议
域名www.example.com通过DNS翻译成IP
端口:80访问80端口(HTTP默认可省略)
完整地址http://www.example.com:80访问example.com的80端口

避坑提示:新手常把数据库端口(3306)暴露到公网,结果被黑客攻击。数据库只开内网访问,这是铁律。


2.3 DNS:域名翻译官

DNS(域名系统):把人类好记的域名(www.baidu.com)翻译成机器认识的IP地址(14.215.177.38)。

为什么需要DNS?

对比域名IP地址
人类记忆www.baidu.com ✅14.215.177.38 ❌
机器识别需要翻译直接使用

DNS解析过程表

步骤动作耗时比喻
1浏览器查缓存(最近访问过?)0ms翻翻自己的通讯录
2问本地DNS(路由器/运营商)10ms问小区物业
3问根服务器(.com归谁管?)逐级查询问总机
4问权威服务器(baidu.com的IP是?)最终答案问百度前台
5返回IP,开始连接总计10~200ms拿到号码,开始打电话

关键认知:网站打不开,先检查DNS。修改DNS记录后,需要等待TTL过期时间(通常几分钟到几小时)才能全球生效。


📌 第三部分:数据怎么传得稳?——TCP和UDP

3.1 两种传输方式对比表

对比项TCPUDP
连接方式先建立连接,再传数据直接发,不建立连接
可靠性不丢、不错、按顺序可能丢、可能乱序
速度慢(有确认和重传)快(只管发)
比喻打电话(确认对方在才说)发短信(直接发,不确认)

什么时候用什么?

场景协议原因
浏览网页、调用APITCP数据必须完整,不能缺
下载文件TCP文件不能缺一块
视频直播UDP偶尔卡一下比等重传更能接受
网络游戏UDP延迟0.1秒就可能被击杀
DNS查询UDP简单快速,一次请求一次响应

关键认知:作为程序员,90%的场景用TCP。只有明确需要低延迟、可容忍丢包时,才考虑UDP。


3.2 TCP三次握手:建立连接的"暗号"

三次握手:TCP建立连接时的三个步骤,确保双方都能收发数据。

步骤客户端发送服务器回复暗号作用
1“我能给你打电话吗?”SYN客户端请求建立连接
2“能,你也能接我电话吗?”SYN+ACK服务器同意,并确认客户端能收
3“能,开始说吧!”ACK客户端确认,连接建立

为什么需要三次?

握手次数问题结果
两次客户端发了请求,但服务器没收到客户端以为连上了,实际没连上
三次双方各确认一次确保双方都能收发,连接可靠

关键认知:三次握手是TCP可靠性的基础。面试常考,记住"我发、你回、我再回"就行。


📌 第四部分:程序员日常怎么打交道?——HTTP和HTTPS

4.1 HTTP:浏览器和服务器的"对话规则"

HTTP:浏览器请求网页、服务器返回内容的标准格式。

HTTP请求组成表

组成部分内容例子
请求方法要做什么GET(获取)、POST(提交)、PUT(更新)、DELETE(删除)
请求地址找哪个资源/api/users、/index.html
请求头附加信息User-Agent、Cookie、Content-Type
请求体提交的数据JSON格式的用户信息

服务器返回组成表

组成部分内容例子
状态码结果如何200成功、404找不到、500服务器错误
响应头附加信息Content-Type、Set-Cookie
响应体返回的数据HTML页面、JSON数据

常见状态码速查表

状态码含义遇到时怎么办
200成功正常,继续
301/302重定向网址变了,自动跳转
400请求参数错误检查传的参数格式
401未登录/Token失效重新登录
403没权限联系管理员开通权限
404资源不存在检查URL是否正确
500服务器内部错误看服务器日志
502网关错误检查Nginx/代理配置
503服务不可用服务器过载或维护中

关键认知:写代码时,根据状态码判断问题在哪。4xx是客户端问题(你的代码),5xx是服务端问题(服务器代码)。


4.2 HTTPS:加密的"安全通话"

HTTPS:HTTP的安全版本,防止数据在传输中被窃听或篡改。

对比项HTTPHTTPS
端口80443
安全性明文,易被窃听加密,防止窃听
浏览器显示“不安全”锁标志
是否需要证书是(SSL证书)

为什么必须HTTPS?

风险HTTPHTTPS
密码被窃取❌ 明文传输,中间人可见✅ 加密传输,只有双方可读
网页被篡改❌ 中间人可注入广告/恶意代码✅ 加密后无法篡改
搜索引擎排名❌ 降权✅ 优先推荐

关键认知:现在所有网站必须HTTPS。云厂商提供免费SSL证书,一键申请,自动续期,不要花钱买。


📌 第五部分:一张表串联所有知识

5.1 从输入网址到网页显示的完整旅程

步骤动作涉及技术耗时比喻
1浏览器检查缓存本地缓存0ms先看看最近有没有
2DNS解析域名 → IP地址DNS协议10~200ms查通讯录找电话号码
3建立TCP连接TCP三次握手~50ms拨号确认对方在
4发送HTTP请求HTTP协议说正事:我要看首页
5服务器处理请求服务器程序10~500ms对方查资料、写回复
6服务器返回HTTP响应HTTP协议回复:给你页面,成功了
7浏览器渲染页面HTML/CSS/JS取决于复杂度你看到了内容
8断开TCP连接TCP四次挥手说完再见,挂电话

总耗时:200ms ~ 2秒


5.2 四层模型速记表

层级核心问题关键概念程序员日常
应用层传什么内容?HTTP、HTTPS、DNS、域名、端口写API、调接口、配域名
传输层怎么传得稳/快?TCP(稳)、UDP(快)选协议、配端口
网络层传给谁?IP地址、路由器、子网配IP、配安全组
网络接口层用什么物理线路?网线、WiFi、网卡基本不用管

记忆口诀“传什么、怎么传、传给谁、用什么线”


📌 第六部分:新手避坑指南

6.1 最常见的5个错误

错误后果正确做法
数据库端口暴露公网被黑客攻击,数据被勒索仅允许内网IP访问
SSH用默认22端口+密码被暴力破解,服务器被入侵改端口、用密钥登录
安全组开放0.0.0.0/0任何人都能访问你的服务只开放必要IP和端口
网站不用HTTPS密码被窃取,浏览器标"不安全"强制HTTPS,配免费证书
忽略DNS缓存改了解析但网站仍指向旧IP等待TTL过期或手动刷新

6.2 必会的3个命令

命令作用什么时候用
ping baidu.com测试网络通不通上不了网时
curl http://example.com测试接口是否正常API调不通时
netstat -an查看端口占用"端口被占用"报错时

📌 第七部分:总结

核心知识一张表

概念一句话理解编程中哪里用到
IP地址计算机的电话号码配置服务器、安全组
端口区分不同服务部署应用、连接数据库
DNS域名翻译官买域名、配解析
TCP可靠传输,像打电话网页、API、数据库连接
UDP快速传输,像发短信视频、游戏、实时通信
HTTP浏览器和服务器的对话规则写接口、调接口
HTTPS加密的HTTP所有线上网站必须配置
状态码请求结果的"暗号"根据码判断问题

全文串联表

环节角色作用
计算机(硬件)执行者运行代码、处理数据
服务器(24小时工作)服务者对外提供持续服务
网络(互相连接)连接者让计算机之间能通信
HTTP/HTTPS规则定义浏览器和服务器怎么对话

最终认知:网络不神秘,就是计算机之间的电话系统。你写代码时,只需要关心应用层(HTTP/HTTPS、域名、端口),下层的东西云厂商已经帮你搞定了。


祝你网络之路,连接畅通,永不超时! 🌐

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐