计算机网络通信扫盲(基础版)

一.概述

本文总结了随想君的几个文章并结合最新的数据,面向极广的人群,也就是说,即便完全不懂IT也能看懂(至少一部分);稍微懂行的人,看完后也会有帮助。

二.为什么要懂网络?

你每天上网刷视频、发消息、点外卖,但有没有想过——你的手机到底是怎么找到千里之外的服务器,把数据送过去、再把结果拿回来的?

这背后就是计算机网络通信在做的事。

简单说,计算机网络就是把多台计算机用通信设备和线路连起来,让它们能互相传数据、共享资源。而网络通信的本质,就是让不同设备之间能够可靠地传输数据。

听起来简单,但真要做起来,问题可不少:设备型号不同、操作系统不同、数据可能在中途丢失、网络可能拥堵……为了解决这些麻烦,工程师们设计了一套精妙的体系。今天这篇文章,就带你从头到尾捋一遍。

三.网络模型的骨架:分层设计

网络通信这么复杂,怎么把它理清楚?答案是——分层。

把整个通信过程拆成一层一层的,每一层只管自己的事,层与层之间通过标准接口沟通。这样做的好处很明显:某一层升级了(比如从IPv4换到IPv6),不影响其他层;出了问题也能快速定位是哪一层的事。

目前最经典的两个模型是: · OSI七层模型:理论派,分了七层,教学和面试常考 · TCP/IP四层模型:实战派,互联网真正在用的标准

OSI 七层模型TCP/IP 四层模型核心功能典型协议核心设备
应用层应用层为用户提供网络服务接口HTTP、HTTPS、DNS、FTP、SSH无(纯软件)
表示层应用层数据加密/解密、压缩、格式转换SSL/TLS、JPEG、ASCII无(纯软件)
会话层应用层建立、管理和终止会话连接NetBIOS、RPC无(纯软件)
传输层传输层端到端的可靠或不可靠传输TCP、UDP无(操作系统内核)
网络层网络层跨网络寻址、路由选择、数据包转发IP、ICMP、ARP(辅助)路由器、三层交换机
数据链路层网络接口层相邻节点间的帧传输、差错控制以太网、Wi-Fi(802.11)交换机、网桥
物理层网络接口层原始比特流的物理传输双绞线、光纤、无线频段集线器、中继器

接下来就简单展开说一下

物理层:最底层,负责”搬运比特”

物理层干的事最实在——把0和1变成电信号或光信号,通过网线、光纤、Wi-Fi发出去。

信道原理
  1. 信道是信号传输的通道。它分两种:
  • 物理信道(有线/无线):看得见的介质(网线、光纤)和看不见的频谱(Wi-Fi 2.4GHz/5GHz、4G/5G频段)。
  • 逻辑信道:在同一根物理线缆或频段上,通过技术划分出的“虚拟通道”。比如你用Wi-Fi同时看视频和聊微信,数据包就是在不同的逻辑信道上传输的。
  1. 关键瓶颈:带宽、速率与信噪比

信道有物理限制,这里有个著名的香农定理公式:极限速率 = B * log₂(1 + S/N)(B是带宽,S/N是信噪比)。它告诉我们的残酷现实是:无论技术多好,信道的容量都有天花板。这也是为什么5G必须用高频段(带宽B更大),以及路由器要放在开阔处(降低噪声N)。

  1. 多路复用:一条路跑多辆车

既然信道昂贵,就要充分利用。多路复用就是让多个信号共享同一物理信道的技术:

· 频分复用(FDM):分频率段,比如电视广播的不同频道。 · 时分复用(TDM):分时间段,轮流使用,传统电话网络的核心。 · 波分复用(WDM):光纤里用不同波长的光同时传数据。 · 码分复用(CDM):靠编码区分用户,军用和3G网络的基础。

  1. 无线信道的“隐形战争”

Wi-Fi和蜂窝网络最怕同频干扰。你在路由器后台看到的“信道(Channel)设置(1-11)”,就是在选择频段里的细分车道。如果邻居都用“信道6”,就会堵车,手动改成“1”或“11”往往能大幅提升网速(这也是无线排障的实用技巧)。

  1. 数据链路层的“逻辑信道”

在MAC子层,信道还分竞争型(大家一起抢,CSMA/CD协议,以太网在用)和受控型(轮询或令牌,老式令牌环网)。现代Wi-Fi还引入了OFDMA,能把一个信道再切分成更小的“资源块”分配给多台设备,这就是Wi-Fi 6速度快的底层原因。

数据链路层:把比特打包成”帧”

物理层只管发比特,但比特流怎么分组、怎么知道哪一段是一帧数据、怎么发现传输中的错误这些都是数据链路层的事。

这一层的核心概念是MAC地址——每个网卡出厂时就烧录的48位全球唯一标识。交换机(Switch)就工作在数据链路层,它维护一张MAC地址表,知道每个设备接在哪个端口上,数据来了只发给目标设备,不像集线器那样无脑广播。

网络层:负责找路

数据链路层只能在一个局域网内通信。如果你想从家里连到百度服务器,中间要经过很多个网络——这就轮到网络层了。

网络层的核心是IP地址和路由。IP地址标识设备在哪个网络,路由器(Router)则根据IP地址和路由表,决定数据该往哪个方向走。

传输层:端到端的”快递服务”

传输层干的是从你的电脑到对方服务器的端到端传输。这一层有两个明星协议:

· TCP:可靠、面向连接。保证数据不丢、不乱序。HTTP、FTP、SSH都用它。 · UDP:不可靠、无连接。不保证到达,但速度快。视频通话、DNS查询常用它。

打个比方:TCP像寄挂号信,有回执、能追踪;UDP像扔漂流瓶,快但不保证送到。

四.核心概念串讲

1.IP地址、子网掩码、网关

IP地址是设备在网络中的“门牌号”。目前主流是IPv4(32位,比如192.168.1.100),但地址快用完了,正在向IPv6(128位)过渡。

子网掩码用来区分IP地址里哪部分是“网络号”、哪部分是“主机号”——说白了就是帮你判断:这个IP跟我在不在同一个局域网。

默认网关是“出门的路由器”——所有要发到外网的数据,都得先交给它。

2.MAC地址 vs IP地址

IP地址是逻辑地址,可以改变(你换个Wi-Fi,IP就变了)。MAC地址是物理地址,出厂就固定了。

打个比方:IP地址是“北京市朝阳区XX路XX号”,MAC地址是你的身份证号。快递员先用地址找到小区(IP路由),进了小区再用门牌号找到你家(MAC交换)。

3.路由、转发、交换

这三个词经常被混用,但其实不一样:

· 路由:规划路径——数据该走哪条路(网络层,看IP地址) · 转发:执行路径——把数据包传给下一站(网络层) · 交换:端口间转发——在同一网络内把帧送到目标设备(数据链路层,看MAC地址)

路由是“看地图选路”,交换是“在小区里送快递”。

五.TCP的三次握手与四次挥手

TCP要保证可靠传输,所以在发数据之前,必须先建立连接;发完之后,再断开连接。

三次握手:建立连接

就像打电话:

  1. 第一次握手(客户端→服务器):客户端发SYN包,说“我想跟你建立连接”
  2. 第二次握手(服务器→客户端):服务器回SYN+ACK,说“收到,我也想跟你连”
  3. 第三次握手(客户端→服务器):客户端回ACK,说“好,连上了”

三次握手的本质是双向确认——不仅要确认“我能发给你”,还要确认“你能发给我,且我能收到你的回复”。

四次挥手:断开连接

断开比建立多一步,因为TCP是全双工的——双方都有独立的发送和接收通道,得各自关闭:

  1. 第一次挥手(主动方→被动方):发FIN,说“我发完了,要关了”
  2. 第二次挥手(被动方→主动方):回ACK,说“收到,你关吧”
  3. 第三次挥手(被动方→主动方):被动方发完自己的数据后,发FIN,说“我也发完了”
  4. 第四次挥手(主动方→被动方):回ACK,连接正式关闭

断开后主动方还要等一会儿(TIME_WAIT),防止最后的ACK丢了需要重传。

六.应用层协议:你每天都在用

HTTP / HTTPS

HTTP是网页访问的基础协议,基于TCP,默认端口80。它的特点是无状态——服务器不记得你上次请求过什么。

但HTTP是明文传输,不安全。于是有了HTTPS(默认端口443)——在HTTP外面套了一层SSL/TLS加密,用对称加密+非对称加密+数字证书三重保障。现在主流网站基本都上HTTPS了,浏览器地址栏会有个小锁图标。

DNS:互联网的“电话簿”

你记不住142.250.31.103这样的IP地址,但你记得住www.google.com。DNS(域名系统) 就是负责把域名翻译成IP地址的。

DNS解析过程是层级式的:

浏览器→本地缓存→本地DNS服务器→根DNS服务器→顶级域DNS服务器(如.com)→权威DNS服务器→返回IP地址。

其他常见协议

  • FTP :文件传输,端口21
  • SSH :远程安全登录
  • DHCP :自动分配ip地址,让你连上wifi就能上网

七.网络安全:看不见的战场

网络上的威胁无处不在,安全机制主要围绕四个目标:

  • 机密性:只有通信双方能看懂数据 → 靠加密
  • 完整性:数据没被篡改 → 靠哈希/数字签名
  • 身份认证:确认对方是本人 → 靠证书/密码
  • 可用性:服务始终可用 → 靠防火墙/抗DDoS

加密分两种:

  • 对称加密:同一个密钥加解密(如AES),速度快
  • 非对称加密:公钥加密、私钥解密(如RSA),速度慢但安全

HTTPS就是两者结合:用非对称加密安全地交换对称密钥,之后用对称加密传输数据。

常见的攻击方式包括窃听、重放攻击、IP欺骗、DDoS等,防御手段有加密、防火墙、入侵检测等。

八.杂项

有些概念并不属于某个特定的章节,所以放到这里

VPN(virtual private network)

现在很多人使用vpn都是为了翻墙。其实vpn的本意(如其名称所示)是为了提供某种虚拟化的私有的网络,让身处异地的多个人,可以用 VPN 构建出一个虚拟的内网,从而能在这个内网中协同工作。 VPN 的类型很多,使用的技术也各不相同,因此 VPN 对应的 OSI 层次很宽(“1层”到“6层”)。我到维基百科找了如下这张图,让你见识一下 VPN 的多样性。 vpn分类示意图

代理(proxy)

经常翻墙的同学们,对“代理”应该非常熟悉了。“代理”与 VPN 类似,一开始并不是用来翻墙滴,“翻墙”只是这俩的副业。

代理服务器(proxy server)

“代理服务器”部署在“客户端 & 服务端”之间,起到某种“中介”的作用。“代理服务器”的类型有很多,干的事情各不相同。 “代理服务器的简单示意图”

代理客户端(proxy client)

早期的代理服务器,需要“代理客户端”。因为早期的“代理服务器”支持的是标准协议。比如“HTTP proxy server”支持的是标准 HTTP协议,而用户的电脑上,已经有浏览器(原生支持 HTTP 协议)。这种情况下,自然不需要再有“代理客户端”。

后来,为了满足某些特殊需求(比如翻墙),“代理服务器”必须使用某种特殊的(非标准的)协议。因此,就必须在用户的环境中安装“代理客户端”。对于翻墙来说,你装的翻墙软件,相当于“代理客户端”。

代理的层次 “代理”也分不同的层次。比较常见的有如下几种:

  • TCP 代理(TCP 端口转发)——4层(传输层)
  • SOCKS 代理——5层(会话层)
  • HTTP 代理——7层(应用层)

九.总结

本篇博客很长,我写了挺久,你能看到这里也不容易,最后总结一下。

网络通信的本质就十二个字:分层解耦、逐层封装、端到端协作。

理解了这套分层协作的逻辑,网络对你来说就不再是“玄学”了。下次断网时,不妨从物理层开始,逐层往上排查——大部分问题,都逃不出这七层(或者说四层)的手掌心。

PS:(修好了rss的小bug,优化了部分css,炸鸡块真好吃  ٩(๑′0`๑)۶ )