计算机网络核心概念串烧

计算机网络核心概念串烧
XR计算机网络核心概念串烧
在学习软考的时候,发现对于计算机网络有些概念都有点遗忘了。所以这里特意将一些核心概念通过一个示例串联起来,方便理解和记忆。
我以“设备访问某个域名(如www.baidu.com)” 的全过程为例子,沿着 “终端身份配置→DNS 解析(域名转 IP)→局域网内转发→跨网到公网→公网路由传输→目标服务器响应” 的完整链路拆解,同时串联 DHCP、DNS、IP、MAC、ARP、路由器转发等核心概念。
1.主要示例
下面以 “家用电脑通过 Wi-Fi 访问www.baidu.com” 为例
前置:电脑通过 DHCP 获取局域网身份(上网基础)
电脑刚连接家庭 Wi-Fi 时,无 IP 地址,需通过DHCP(动态主机配置协议) 从路由器获取 “局域网通信资格”:
- 电脑向局域网广播 “DHCP 发现报文”(目标 MAC:FF:FF:FF:FF:FF:FF,目标 IP:255.255.255.255),询问 “谁能分配 IP?”;
- 家庭路由器(默认开启 DHCP 服务)收到请求后,单播回复 “DHCP 提供报文”,包含核心配置:
- 局域网 IP:192.168.1.100(电脑的 “局域网身份证”);
- 子网掩码:255.255.255.0(判断目标 IP 是否在同一局域网);
- 网关 IP:192.168.1.1(家庭路由器 LAN 口 IP,局域网通往公网的 “大门”);
- DNS 服务器 IP:202.97.224.68(运营商提供的 DNS,用于解析域名);
- 电脑确认配置后,路由器发送 “DHCP 确认报文”,电脑网络配置生效 —— 此时具备 “发起网络请求的基础”。
步骤 1:电脑发起 DNS 请求(域名→IP 的 “翻译”)
在浏览器输入www.baidu.com后,电脑需先通过DNS 协议将域名转为公网 IP:
电脑判断 DNS 服务器位置:DNS 服务器 IP(202.97.224.68)与自身局域网 IP(192.168.1.100)不在同一网段(子网掩码 255.255.255.0,前者属于 202.97.224.0 段,后者属于 192.168.1.0 段),因此需通过网关(192.168.1.1) 转发 DNS 请求到公网;
封装 DNS 请求包:电脑构造 UDP 协议的 DNS 查询包(端口 53),内容为 “查询
的 A 记录(IP 地址)”,包的两层地址结构如下:
- IP 层:源 IP=192.168.1.100(电脑),目标 IP=202.97.224.68(DNS 服务器);
- 以太网帧层:源 MAC=00:1A:2B:3C:4D:5E(电脑网卡 MAC),目标 MAC=?(需通过 ARP 获取网关 MAC)。
步骤 2:通过 ARP 获取网关 MAC(局域网内 “找下一跳”)
局域网内数据传输依赖MAC 地址(以太网帧必须指定目标 MAC 才能转发),电脑需通过ARP 协议获取网关(192.168.1.1)的 MAC:
- 电脑查询本地 “ARP 缓存表”,发现无 192.168.1.1 对应的 MAC,于是向局域网广播 “ARP 请求帧”(目标 MAC:FF:FF:FF:FF:FF:FF),内容为 “谁是 192.168.1.1?请回复你的 MAC 地址!”;
- 家庭路由器(网关)收到广播后,识别到请求 IP 是自身 LAN 口 IP,于是单播回复 “ARP 响应帧”,内容为 “我是 192.168.1.1,我的 MAC 是 00:AA:BB:CC:DD:EE(路由器 LAN 口 MAC)”;
- 电脑将 “192.168.1.1→00:AA:BB:CC:DD:EE” 存入 ARP 缓存表(有效期 15 分钟),后续给网关发数据无需重复请求。
步骤 3:局域网转发 DNS 请求到家庭路由器(网关)
电脑补全以太网帧的目标 MAC 后,将 DNS 请求包通过 Wi-Fi 发送给家庭路由器:
- 电脑无线网卡发送帧:源 MAC = 电脑 MAC,目标 MAC = 网关 LAN 口 MAC,帧内封装 DNS 查询的 IP 数据包;
- 家庭路由器接收并解包:路由器 LAN 口收到帧后,检查目标 MAC 是自身 LAN 口 MAC,于是解包取出 IP 数据包(目标 IP=202.97.224.68);
- 网关判断转发方向:路由器查看 IP 数据包的目标 IP,确认不在局域网(192.168.1.0 段),因此需通过WAN 口转发到公网,并触发 NAT 转换。
步骤 4:家庭路由器通过 NAT 转换,将请求发往公网接入路由器
家用网络通常只有 1 个公网 IP(由运营商分配,如 120.204.197.5),需通过NAT(网络地址转换) 将 “局域网 IP” 转为 “公网 IP”,才能在公网传输:
- NAT 地址转换:路由器修改 IP 数据包的 “源 IP”—— 从 192.168.1.100(局域网 IP,公网不可见)改为 120.204.197.5(路由器 WAN 口公网 IP);同时在 “NAT 映射表” 中记录:“192.168.1.100:54321(电脑随机端口)→120.204.197.5:67890(路由器 WAN 口端口)”,用于后续接收 DNS 应答时 “找到对应的电脑”;
- 获取公网下一跳 MAC:路由器 WAN 口需将数据包发给 “运营商的公网接入路由器”(如小区宽带的接入路由器,IP:10.100.0.1),因此通过 WAN 口的 ARP 请求(仅在 “路由器 WAN 口与运营商接入路由器构成的小局域网” 内广播)获取其 MAC(如 00:CC:DD:EE:FF:AA);
- 发送到公网:路由器 WAN 口封装以太网帧(源 MAC = 路由器 WAN 口 MAC,目标 MAC = 运营商接入路由器 MAC),将 DNS 请求包通过光纤 / 网线发送到公网接入层路由器(运营商小区接入路由器)。
步骤 5:公网接入层路由器转发 DNS 请求到汇聚层路由器
公网第一层转发:接入层路由器(覆盖小区 / 企业,功能是 “汇总用户终端流量,转发到汇聚层”):
- 接入层路由器(IP:10.100.0.1)收到 DNS 请求包后,解包查看目标 IP=202.97.224.68(DNS 服务器);
- 查询自身 “路由表”:路由表中记录 “202.97.224.0/24 网段(DNS 服务器所在网段)的下一跳是市汇聚层路由器,IP:10.200.0.1”;
- 转发到汇聚层:接入层路由器通过广域网链路(如城域网光纤)将数据包发给市汇聚层路由器(IP:10.200.0.1)—— 注意:公网路由器间通信用 “广域网技术(如 MPLS)”,无 MAC 地址,直接通过 “下一跳 IP” 转发,无需 ARP。
步骤 6:公网汇聚层路由器转发 DNS 请求到核心层路由器
公网第二层转发:汇聚层路由器(覆盖城市某区域 / 区县,功能是 “汇总接入层流量,转发到核心层”):
- 市汇聚层路由器(IP:10.200.0.1)收到数据包后,查看目标 IP=202.97.224.68;
- 查询路由表:记录 “202.97.224.0/24 网段的下一跳是省核心层路由器,IP:10.300.0.1”;
- 转发到核心层:通过省级骨干光纤链路,将数据包发给省核心层路由器(IP:10.300.0.1)—— 核心层路由器是 “跨区域转发的关键”,承担大量数据流量。
步骤 7:公网核心层路由器转发 DNS 请求到 DNS 服务器所在网络
公网第三层转发:核心层路由器(覆盖全省 / 跨市,功能是 “跨区域骨干流量转发”):
- 省核心层路由器(IP:10.300.0.1)收到数据包后,查看目标 IP=202.97.224.68(运营商 DNS 服务器,位于本省核心机房);
- 查询路由表:记录 “202.97.224.0/24 网段的下一跳是 DNS 服务器的接入路由器,IP:202.97.224.1”;
- 转发到 DNS 接入路由器:通过机房内部链路,将数据包发给DNS 服务器的接入路由器(IP:202.97.224.1)。
步骤 8:DNS 服务器返回解析结果(域名→IP)
DNS 服务器(IP:202.97.224.68)处理请求并返回结果,按原路径反向转发:
- DNS 服务器接收请求:UDP 53 端口收到查询包,解析出 “查询www.baidu.com的 IP”,在本地缓存中找到对应的 A 记录(www.baidu.com→180.101.49.12);
- 封装 DNS 应答包:IP 层源 IP=202.97.224.68,目标 IP=120.204.197.5(家庭路由器公网 IP);
- 反向转发到家庭路由器:应答包按 “DNS 接入路由器→省核心层路由器→市汇聚层路由器→接入层路由器” 的路径反向传输,最终到达家庭路由器 WAN 口;
- NAT 反向映射:家庭路由器查询 “NAT 映射表”,发现目标 IP=120.204.197.5 对应的局域网 IP 是 192.168.1.100,于是将 IP 层目标 IP 改为 192.168.1.100;
- 转发到电脑:路由器 LAN 口通过 ARP 缓存获取电脑 MAC,发送应答包 —— 电脑最终拿到 “www.baidu.com的 IP 是 180.101.49.12”。
步骤 9:电脑发起 HTTPS 请求(访问百度服务器)
电脑拿到目标 IP 后,通过HTTPS 协议(端口 443) 向百度服务器(180.101.49.12)发送访问请求,流程与 DNS 请求类似,但目标是公网服务器:
- 封装 HTTPS 请求包:IP 层源 IP=192.168.1.100,目标 IP=180.101.49.12;以太网帧目标 MAC = 网关 LAN 口 MAC(ARP 缓存已存在);
- 家庭路由器 NAT 转换:将源 IP 改为 120.204.197.5,记录 NAT 映射(192.168.1.100:43210→120.204.197.5:56789),通过 WAN 口发送到公网接入层路由器。
步骤 10:公网路由器逐跳转发 HTTPS 请求到百度服务器
HTTPS 请求在公网中通过 “接入层→汇聚层→核心层→百度 IDC 接入层” 的路径转发:
- 接入层路由器→汇聚层路由器→核心层路由器:与 DNS 请求转发逻辑一致,通过路由表找到下一跳,逐跳转发;
- 省核心层路由器→百度 IDC 接入路由器:核心层路由器查询路由表,发现 “180.101.49.0/24 网段(百度服务器所在网段)的下一跳是百度 IDC 的接入路由器,IP:203.0.113.1”;
- 百度 IDC 接入路由器转发:百度 IDC(互联网数据中心)的接入路由器收到请求后,根据 “负载均衡策略”,将请求转发到具体的百度服务器节点(如 180.101.49.12)。
步骤 11:百度服务器处理请求并返回响应
百度服务器收到 HTTPS 请求后,处理并返回首页数据:
- 接收请求:百度服务器的 HTTPS 443 端口收到请求包,解析出 “客户端要访问 www.baidu.com 首页”;
- 处理请求:服务器调用后端服务,生成首页的 HTML、CSS、JS、图片等资源,封装成 HTTPS 响应包(IP 层源 IP=180.101.49.12,目标 IP=120.204.197.5);
- 返回响应:响应包按 “百度 IDC 接入路由器→省核心层路由器→市汇聚层路由器→接入层路由器→家庭路由器” 的路径反向转发。
步骤 12:电脑接收响应,浏览器渲染页面
- 家庭路由器转发响应:路由器 WAN 口收到响应包后,通过 NAT 映射表找到对应的电脑(192.168.1.100),修改 IP 层目标 IP,通过 LAN 口发送到电脑;
- 电脑解包处理:电脑网卡接收帧,解包取出 HTTPS 响应数据,交给浏览器;
- 浏览器渲染:浏览器解析 HTML、CSS、JS,加载图片等资源,最终在屏幕上显示百度首页 —— 整个访问流程完成。
2. 疑问与解答
2.1 若家庭路由器有公网IP,为何仍需通过ARP获取小区接入路由器?(ARP仅用于局域网内的矛盾点解析)
要解答此问题,需先明确两个核心概念:家庭路由器的双重角色与ARP“局域网边界”的实际定义。家庭路由器既是“家庭局域网的网关”,也是“运营商小局域网的终端”;而ARP请求的“局域网内”,特指家庭路由器WAN口与小区接入路由器共同所在的“运营商小局域网”,并非用户通常理解的“家庭局域网”。
2.1.1 核心前提:家庭路由器的双接口与双局域网属性
家用路由器并非单一功能设备,而是连接“两个独立局域网”的桥梁,其两个关键接口对应不同网络属性,具体差异如下表所示:
| 接口类型 | 连接的网络 | 网络属性 | IP地址来源: | 作用 |
|---|---|---|---|---|
| LAN口(有线/Wi-Fi) | 家庭局域网 | 私网(如192.168.1.0/24) | 路由器自身分配(DHCP服务器) | 连接家中电脑、手机、电视等终端,作为家庭局域网的“网关” |
| WAN口(网线/光纤) | 运营商小局域网 | 私网或公网(取决于运营商) | 运营商通过DHCP分配 | 连接小区接入路由器,作为运营商小局域网的“终端设备”(类似家庭电脑在家庭局域网中的角色) |
简言之,家庭路由器的“双重身份”表现为:
- 对家庭终端(电脑、手机等):是“家庭局域网的网关”;
- 对小区接入路由器:是“运营商小局域网内的普通终端”。
2.1.2 关键问题:为何有公网IP仍需依赖运营商接入局域网?
即使家庭路由器获取了公网IP,也无法跳过运营商接入局域网直接连接公网,核心原因是运营商接入局域网解决了4个家庭路由器自身无法实现的核心需求:
1. 接入认证:确保仅合法付费用户可使用公网
运营商需通过认证验证用户合法性,该过程必须在“运营商接入局域网”内完成,具体流程如下:
- 家庭路由器启动时,向小区接入路由器发送“PPPoE拨号请求”(或DHCP认证请求),携带用户宽带账号与密码;
- 小区接入路由器将认证信息转发至运营商“认证服务器(AAA服务器)”,验证通过后,为家庭路由器分配公网IP(或确认已分配公网IP有效);
- 若无此认证,任何人可随意连接公网,运营商无法实现收费与管理。
2. 流量汇聚:降低公网骨干网连接成本
公网骨干网端口资源昂贵(如100Gbps端口成本达几十万元),若每个家庭路由器直接对接骨干网,会导致两大问题:
- 资源浪费:家庭宽带通常为100Mbps~1000Mbps,直接连接100Gbps骨干端口,相当于“大水管接小水龙头”,99%带宽被闲置;
- 管理混乱:全国数亿家庭若均直接连骨干网,需数亿个骨干端口,公网无法承载。
运营商接入局域网通过“分层汇聚”解决该问题:
- 小区接入路由器:汇聚本小区所有家庭流量(如100户×100Mbps=10Gbps),通过10Gbps端口连接市汇聚层路由器;
- 市汇聚层路由器:汇聚多个小区流量(如10个小区×10Gbps=100Gbps),通过100Gbps端口连接省核心骨干网。
3. 安全管控:拦截恶意流量,保护公网与家庭网络
公网存在大量恶意流量(如DDoS攻击、病毒包),若家庭路由器直接连公网,会面临双重风险:
- 家庭网络被攻击:恶意流量直接冲击家庭路由器,可能突破防火墙入侵内网;
- 家庭网络成为“攻击源”:若家庭设备被黑客控制(如沦为“肉鸡”),会向外发送攻击流量,影响公网稳定。
运营商接入局域网的“安全防护”作用,体现在家庭路由器与公网骨干网之间的“防火墙”:
- 小区接入路由器与运营商“边界防火墙”过滤流量:拦截已知恶意IP数据包、限制单家庭最大连接数、检测异常流量(如突发DDoS包);
- 若发现家庭路由器发送恶意流量,运营商可通过接入局域网临时封禁该公网IP,避免影响其他用户。
4. 网络优化:提升访问速度与稳定性
家庭路由器能力有限,无法实时感知公网链路状态,运营商接入局域网通过两大方式优化网络:
- DNS缓存加速:小区接入路由器缓存热门域名(如百度、微信)的DNS解析结果,家庭路由器查询时无需绕到省核心DNS服务器,速度更快;
- 就近资源分配:访问视频网站时,接入路由器将流量转发至“就近的视频CDN节点”,而非直接连接网站总部服务器,降低延迟、提升画质。
2.1.3 延伸疑问:拥有公网IP的实际意义是什么?
公网IP的核心意义在于:设备是否可被公网主动定位并访问。以下通过具体场景说明其作用(以“北京用户公网IP访问NAS”为例):
场景设定
- 朋友(上海):家庭局域网IP段192.168.2.0/24,电脑IP 192.168.2.100,路由器WAN口公网IP 203.95.12.8;
- 你(北京):家庭公网IP 120.204.197.5,NAS内网IP 192.168.1.200(已配置端口映射:120.204.197.5:8080→192.168.1.200:8080)。
公网访问NAS的完整流程(6步)
步骤1:朋友侧局域网内发起请求(终端→家庭路由器)
- 判断转发方向:朋友电脑检查目标IP 120.204.197.5,发现不在自身局域网(192.168.2.0/24),需通过网关(朋友家路由器IP 192.168.2.1)转发至公网;
- 获取网关MAC:朋友电脑查询本地ARP缓存,找到朋友家路由器LAN口MAC(如00:EE:FF:AA:BB:CC),封装以太网帧(源MAC:朋友电脑MAC;目标MAC:路由器LAN口MAC),帧内包含IP数据包(源IP 192.168.2.100,目标IP 120.204.197.5,端口8080);
- 发送至路由器:通过Wi-Fi/网线将帧发送到朋友家路由器,路由器LAN口解包后提取IP数据包。
步骤2:朋友侧运营商转发(家庭路由器→上海骨干网)
- NAT地址转换:朋友家路由器将IP数据包的源IP从192.168.2.100改为自身WAN口公网IP 203.95.12.8,同时在NAT映射表记录“192.168.2.100:随机端口→203.95.12.8:随机端口”(用于接收后续响应);
- 转发至上海小区接入层路由器:朋友家路由器通过WAN口,向上海小区接入层路由器(IP 10.150.0.1)发送请求包——先通过ARP获取接入层路由器MAC(二者同属上海运营商接入局域网),封装帧后发送;
- 接入层→汇聚层转发:上海小区接入层路由器(10.150.0.1)汇总小区流量,查询路由表发现目标IP属北京运营商网段,转发至上海市区汇聚层路由器(10.250.0.1);
- 汇聚层→核心层转发:上海汇聚层路由器(10.250.0.1)汇总多个小区流量,转发至上海核心层路由器(202.97.0.1),完成“朋友侧到公网骨干网的接入”。
步骤3:跨区域公网骨干网转发(上海→北京)
- 上海核心层→国家级骨干路由器:上海核心层路由器(202.97.0.1)将请求包转发至国家级骨干网路由器(如天津节点,IP 10.50.0.1)——骨干网路由器仅记录IP段聚合路由,不记录单个IP;
- 骨干网→北京核心层路由器:国家级骨干路由器(10.50.0.1)查询路由表,发现120.204.197.0/24段归属北京运营商,通过跨区域光纤链路转发至北京核心层路由器(202.96.0.1)。
步骤4:你侧运营商转发(北京骨干网→你家路由器)
- 北京核心层→汇聚层转发:北京核心层路由器(202.96.0.1)将请求包转发至你所在区域的北京汇聚层路由器(10.200.0.1)——核心层负责跨区域流量,本地流量由汇聚层分发;
- 汇聚层→小区接入层转发:北京汇聚层路由器(10.200.0.1)查询路由表,发现120.204.197.0/24段对应你家小区接入层路由器,转发至你家小区接入层路由器(10.100.0.1);
- 小区接入层→你家路由器:你家小区接入层路由器(10.100.0.1)查询ARP缓存维护的“IP-MAC关联表”,发现120.204.197.5对应你家路由器WAN口MAC(如00:AA:BB:CC:DD:EE),将请求包转发至你家路由器WAN口。
步骤5:你侧局域网内转发(你家路由器→NAS)
- NAT映射匹配:你家路由器接收请求包后,提取“目标IP 120.204.197.5+端口8080”,查询NAT映射表,匹配到提前配置的“120.204.197.5:8080→192.168.1.200:8080”;
- 转发至NAS:修改IP数据包的目标IP为NAS内网IP 192.168.1.200,通过ARP获取NAS的MAC(如00:FF:AA:BB:CC:DD),封装以太网帧后通过LAN口发送到NAS。
步骤6:NAS响应并按原路径返回
- NAS生成响应包:NAS处理请求后,返回首页数据,封装响应包(源IP 192.168.1.200,目标IP 192.168.2.100,端口8080);
- 你侧局域网→北京运营商:响应包经你家路由器(NAT转换:源IP改为120.204.197.5)→小区接入层→北京汇聚层→北京核心层,进入公网骨干网;
- 骨干网→上海运营商:响应包经国家级骨干网→上海核心层→上海汇聚层→上海小区接入层,到达朋友家路由器;
- 朋友侧运营商→局域网:朋友家路由器通过NAT映射表找到“203.95.12.8:随机端口对应192.168.2.100:随机端口”,修改目标IP后转发到朋友电脑;
- 朋友电脑渲染页面:朋友电脑接收响应包,浏览器解析数据并显示NAS首页,整个访问流程完成。
3.核心概念串联总结
- DHCP:给电脑分配 “局域网身份”(IP / 网关 / DNS),是上网的基础;
- DNS:将域名(www.baidu.com)转为公网 IP(180.101.49.12),解决 “公网定位目标” 的问题;
- ARP:仅在局域网内生效,获取网关 / 设备的 MAC 地址,解决 “局域网内转发目标” 的问题;
- NAT:将局域网 IP 转为公网 IP,解决 “家用网络公网 IP 不足” 的问题;
- 公网路由器层级:通过 “接入层→汇聚层→核心层” 逐跳转发,依赖 “路由表” 确定下一跳,不使用 ARP,核心是 “IP 路由”;
- IP 与 MAC 的分工:IP 负责 “跨网定位目标(公网 + 局域网)”,MAC 仅负责 “局域网内定位设备”,二者配合实现全程通信。










