前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
  • HTTP

  • 浏览器相关

  • 计算机基础

    • Linux
    • Network
    • OS
    • SQL
    • MySQL
    • Redis
    • Socket
    • 攻击技术
    • 缓存
    • 集群

# 计算机网络

30 秒速记

  • 这一章打底的是「数据怎么从你的电脑走到服务器」:网络的网络、ISP、交换方式、时延、分层
  • 互联网 = 无数个独立网络靠路由器互联,没有一个中心控制全部通信
  • 主机通信两种角色模式:C/S 和 P2P
  • 网络传数据用分组交换:切成小包、逐跳存储转发,链路大家共享
  • 时延四件套:排队 + 处理 + 传输 + 传播,前端性能优化里的 RTT、带宽都从这来

计算机网络这一章要解决的问题就一个:我在浏览器里敲下一个网址,这些字节是怎么跨过一堆网络到达服务器、又是怎么回来的。 概述部分先搭框架:互联网是由很多独立网络接在一起的,你接入靠的是 ISP;数据被切成一个个分组,在路由器之间逐跳转发;一次请求的耗时可以拆成排队、处理、传输、传播四段。后面讲 TCP、HTTP、DNS 都建立在这套框架上。对前端来说,理解了时延构成,就知道为什么要减少请求数、为什么 CDN 能快、为什么大图压缩有用。

# 一、概述

概述部分是整个计算机网络的地图,后面各层协议都是在这张地图上展开。可以按一次访问网页的过程把这些概念串起来:

  1. 接入:你的电脑先连到家里的路由器(一个小网络),家庭网关通过宽带接入运营商,也就是 ISP。
  2. 跨网:运营商网络再和其他运营商、骨干网互联。互联网本质是「网络的网络」,没有哪台设备掌控全局,每个路由器只负责把包送到下一跳。
  3. 通信模式:浏览器和网站服务器是典型的 C/S 模式;BT 下载、WebRTC 视频通话则更接近 P2P。
  4. 交换方式:电话网用电路交换,先占一条线再说话;互联网用分组交换,数据切成小包,各走各的,链路被很多人共享。
  5. 时延:一个包从发出到到达,要经历排队、处理、传输、传播四段时延。

对应到前端性能:请求数多,往返就多,传播时延被反复叠加;资源体积大,传输时延就长;服务端繁忙或网络拥塞,排队时延会飙升。所以合并请求、HTTP/2 多路复用、CDN、资源压缩,分别对应着压缩这几段时延。

面试官追问

追问 1前端为什么要学这些偏底层的网络知识?
参考回答

性能优化和排查线上问题都离不开它。比如首屏慢,你得分清是 DNS 慢、建连慢、带宽小还是服务端慢,不懂时延构成就只能瞎猜。

追问 2CDN 能加速,用这一章的概念怎么解释?
参考回答

主要是减少了传播时延和跨网络的跳数:内容放在离用户近的节点,往返距离短了,中间经过的运营商网络也少了。

追问 3带宽从 100Mbps 升到 1000Mbps,页面打开会快 10 倍吗?
参考回答

不会。带宽只影响传输时延,页面加载很多时间花在 DNS、TCP 和 TLS 握手这些往返上,这部分受距离限制,加带宽帮不上。

追问 4在 DevTools 里哪能看到这些时延?
参考回答

Network 面板点开一个请求看 Timing:Queueing、DNS Lookup、Initial connection、SSL、Waiting for server response、Content Download,大致能和网络层的时延概念对上。

# 网络的网络

30 秒速记

  • 网络 = 把主机连起来;互连网(internet)= 把多个网络连起来,所以叫「网络的网络」
  • 小写 internet 是泛称,大写 Internet 专指全球公共互联网
  • 连接不同网络靠路由器,按目的 IP 逐跳转发
  • 没有中心节点控制一切,是很多自治网络按 TCP/IP 共同协议协作
  • 别混淆:互联网 ≠ Web,网页只是跑在互联网上的一种应用

互联网说白了就是「网络的网络」:家里、公司、运营商各自有网络,路由器把它们一个个接起来,最后连成全球那张大网。 这里有个小细节,小写的 internet 指任何把多个网络互连起来的系统,比如一家公司把几个园区网连起来也算;大写的 Internet 才是我们天天用的全球互联网。数据跨网络走的时候,每个路由器只看目的地址决定下一跳往哪发,没有谁掌握全程路线。顺便一提,很多人把 Web 和互联网当一回事,其实 Web 只是互联网上的一种应用,邮件、DNS、游戏都不是 Web。

网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。

原理拆解: 层级关系可沿数据实际经过的范围理解:一台主机先通过网卡和链路接入某个局部网络;路由器连接地址规划、链路技术或管理主体不同的多个网络;多个网络继续互联便形成互连网。internet 是这种组网形态的泛称,而专有名词 Internet 指全球公共互联网。这里的“网络的网络”不表示存在一台集中控制全部通信的设备,而是许多自治网络按照共同协议协作转发。

具体例子: 家中的手机和电脑连接同一台无线路由器,可视为处于一个家庭网络。访问异地网站时,数据包从家庭网络进入接入运营商网络,再经过其他运营商或骨干网络,最后到达服务器所在网络。端系统负责产生和消费数据,沿途路由器依据目标地址逐跳选择下一段路径,因此通信范围可以跨越多个独立建设和管理的网络。

边界与反例: 多台设备接在同一交换网络中,只能说明它们组成了网络,不能据此称为互联网;两个隔离网络即使都使用 IP,没有路由或转发链路时也没有形成可通信的互连网。企业内部把多个园区网络互联,可称为一个互连网,但它未必接入全球 Internet。同样,网页只是互联网承载的一类应用,不能把 Web 与互联网等同。

工程验证: 可通过 traceroute 或 Windows 的 tracert 观察到目标地址的逐跳路径。若同一局域网通信通常只需本地链路,而公网目标出现家庭网关、运营商和远端网络等多跳,便能验证数据跨网络转发的链路。部分路由器会过滤探测报文,因此超时节点不等于链路中断;应结合最终目标是否可达判断。

面试官追问

追问 1公司内网有几千台机器,但不能上外网,它算互联网吗?
参考回答

算一个互连网(internet),前提是内部有多个网络靠路由器互通;但它不是全球 Internet,因为没有接进去。

追问 2怎么亲眼看到数据跨了几个网络?
参考回答

命令行跑 traceroute example.com(Windows 用 tracert),每一行是一跳路由器,能看到从家庭网关到运营商再到目标网络的路径。

追问 3traceroute 中间有几行是 * * *,是不是网断了?
参考回答

不一定。很多路由器会限速或者直接不回探测包,只要最后一跳能到目标就说明链路是通的。

追问 4两台电脑插在同一个交换机上,通信要经过路由器吗?
参考回答

不用,同一个局域网里靠交换机按 MAC 地址转发就够了。要去另一个网段才需要路由器。

# ISP

30 秒速记

  • ISP = 互联网服务提供商,有 IP 地址资源、线路和路由器,你交钱它把你接进互联网
  • 多层结构:第一层 ISP(全球骨干)→ 区域 ISP → 接入 ISP(你家宽带运营商)
  • IXP(互联网交换点)让两个 ISP 直接互联,不用绕第三家,路径短、成本低
  • 层级描述的是覆盖范围,实际数据包不一定严格逐层走,看路由和互联关系
  • 家庭宽带拿到的常常不是独立公网 IP,而是运营商 NAT 后面的内网地址

ISP 就是给你接网的运营商,它手里有 IP 地址、线路和路由器,你付费它负责把你的流量送进互联网。 现在的互联网是分层的:最上面是覆盖全球的第一层 ISP,下面是区域 ISP,最底下是给家庭和企业拉宽带的接入 ISP。不同运营商之间要交换流量,可以通过上级转,也可以在 IXP 直接对接,后者路径更短、时延更低。国内常说的「跨网慢」,比如电信用户访问联通机房的服务,就是因为两家之间互联点少、带宽紧张,所以很多网站会用多线机房或者 CDN。

互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。

目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小分为第一层 ISP、区域 ISP 和接入 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。

原理拆解: ISP 的作用不是简单出售一个 IP 地址,而是把用户网络接入其可路由的基础设施。它需要管理地址资源、接入线路和路由设备,并把用户流量继续转发到其他网络。用户获得的地址可能是公共地址,也可能位于运营商地址转换之后;核心结果是用户拥有经由 ISP 到达互联网的路径,而非必然独占一个固定公网地址。

接入链路: 以家庭宽带访问网站为例,终端先把数据交给家庭网关,网关经接入线路进入接入 ISP;接入 ISP 再通过区域网络、上级网络或互联关系把数据送往目标服务器所属网络。第一层、区域和接入 ISP 描述的是覆盖范围与互联位置的差异,不代表每个数据包都必须严格依次穿过这三层,实际路径取决于网络之间建立的连接和路由选择。

IXP 与反例: IXP 提供不同 ISP 交换流量的共同设施,使双方可以直接互联,减少绕行第三方网络的路径、成本或时延。但接入同一 IXP 不等于自动互通,双方仍需建立相应互联与路由关系。IXP 也不是面向普通用户提供宽带接入的 ISP,它解决的是网络之间如何更直接交换流量的问题。

工程验证: 可对同一目标执行多次 traceroute,记录接入网关之后的跳数与往返时延,再对比访问本运营商内目标和其他网络目标的路径。若跨网路径在某处缩短,只能作为存在较直接互联的线索,不能仅凭主机名断定经过了某个 IXP。路由可能因负载、故障或策略变化而改变,探测报文也可能被限速;验证时应结合多时段结果以及运营商公开的互联信息。

面试官追问

追问 1
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
  • HTTP

  • 浏览器相关

  • 计算机基础

    • Linux
    • Network
      • 一、概述
        • 网络的网络
        • ISP
        • 主机之间的通信方式
        • 电路交换与分组交换
        • 1. 电路交换
        • 2. 分组交换
        • 时延
        • 1. 排队时延
        • 2. 处理时延
        • 3. 传输时延
        • 4. 传播时延
        • 计算机网络体系结构
        • 1. 五层协议
        • 2. OSI
        • 3. TCP/IP
        • 4. 数据在各层之间的传递过程
      • 二、 应用层
      • 三、传输层
      • 四、网络层
      • 五、链路层
      • 六、物理层
    • OS
    • SQL
    • MySQL
    • Redis
    • Socket
    • 攻击技术
    • 缓存
    • 集群
完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货
前端进阶之旅公众号二维码

网络|计算机基础篇

# 计算机网络

30 秒速记

  • 这一章打底的是「数据怎么从你的电脑走到服务器」:网络的网络、ISP、交换方式、时延、分层
  • 互联网 = 无数个独立网络靠路由器互联,没有一个中心控制全部通信
  • 主机通信两种角色模式:C/S 和 P2P
  • 网络传数据用分组交换:切成小包、逐跳存储转发,链路大家共享
  • 时延四件套:排队 + 处理 + 传输 + 传播,前端性能优化里的 RTT、带宽都从这来

计算机网络这一章要解决的问题就一个:我在浏览器里敲下一个网址,这些字节是怎么跨过一堆网络到达服务器、又是怎么回来的。 概述部分先搭框架:互联网是由很多独立网络接在一起的,你接入靠的是 ISP;数据被切成一个个分组,在路由器之间逐跳转发;一次请求的耗时可以拆成排队、处理、传输、传播四段。后面讲 TCP、HTTP、DNS 都建立在这套框架上。对前端来说,理解了时延构成,就知道为什么要减少请求数、为什么 CDN 能快、为什么大图压缩有用。

# 一、概述

概述部分是整个计算机网络的地图,后面各层协议都是在这张地图上展开。可以按一次访问网页的过程把这些概念串起来:

  1. 接入:你的电脑先连到家里的路由器(一个小网络),家庭网关通过宽带接入运营商,也就是 ISP。
  2. 跨网:运营商网络再和其他运营商、骨干网互联。互联网本质是「网络的网络」,没有哪台设备掌控全局,每个路由器只负责把包送到下一跳。
  3. 通信模式:浏览器和网站服务器是典型的 C/S 模式;BT 下载、WebRTC 视频通话则更接近 P2P。
  4. 交换方式:电话网用电路交换,先占一条线再说话;互联网用分组交换,数据切成小包,各走各的,链路被很多人共享。
  5. 时延:一个包从发出到到达,要经历排队、处理、传输、传播四段时延。

对应到前端性能:请求数多,往返就多,传播时延被反复叠加;资源体积大,传输时延就长;服务端繁忙或网络拥塞,排队时延会飙升。所以合并请求、HTTP/2 多路复用、CDN、资源压缩,分别对应着压缩这几段时延。

面试官追问

追问 1前端为什么要学这些偏底层的网络知识?
参考回答

性能优化和排查线上问题都离不开它。比如首屏慢,你得分清是 DNS 慢、建连慢、带宽小还是服务端慢,不懂时延构成就只能瞎猜。

追问 2CDN 能加速,用这一章的概念怎么解释?
参考回答

主要是减少了传播时延和跨网络的跳数:内容放在离用户近的节点,往返距离短了,中间经过的运营商网络也少了。

追问 3带宽从 100Mbps 升到 1000Mbps,页面打开会快 10 倍吗?
参考回答

不会。带宽只影响传输时延,页面加载很多时间花在 DNS、TCP 和 TLS 握手这些往返上,这部分受距离限制,加带宽帮不上。

追问 4在 DevTools 里哪能看到这些时延?
参考回答

Network 面板点开一个请求看 Timing:Queueing、DNS Lookup、Initial connection、SSL、Waiting for server response、Content Download,大致能和网络层的时延概念对上。

# 网络的网络

30 秒速记

  • 网络 = 把主机连起来;互连网(internet)= 把多个网络连起来,所以叫「网络的网络」
  • 小写 internet 是泛称,大写 Internet 专指全球公共互联网
  • 连接不同网络靠路由器,按目的 IP 逐跳转发
  • 没有中心节点控制一切,是很多自治网络按 TCP/IP 共同协议协作
  • 别混淆:互联网 ≠ Web,网页只是跑在互联网上的一种应用

互联网说白了就是「网络的网络」:家里、公司、运营商各自有网络,路由器把它们一个个接起来,最后连成全球那张大网。 这里有个小细节,小写的 internet 指任何把多个网络互连起来的系统,比如一家公司把几个园区网连起来也算;大写的 Internet 才是我们天天用的全球互联网。数据跨网络走的时候,每个路由器只看目的地址决定下一跳往哪发,没有谁掌握全程路线。顺便一提,很多人把 Web 和互联网当一回事,其实 Web 只是互联网上的一种应用,邮件、DNS、游戏都不是 Web。

网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。

原理拆解: 层级关系可沿数据实际经过的范围理解:一台主机先通过网卡和链路接入某个局部网络;路由器连接地址规划、链路技术或管理主体不同的多个网络;多个网络继续互联便形成互连网。internet 是这种组网形态的泛称,而专有名词 Internet 指全球公共互联网。这里的“网络的网络”不表示存在一台集中控制全部通信的设备,而是许多自治网络按照共同协议协作转发。

具体例子: 家中的手机和电脑连接同一台无线路由器,可视为处于一个家庭网络。访问异地网站时,数据包从家庭网络进入接入运营商网络,再经过其他运营商或骨干网络,最后到达服务器所在网络。端系统负责产生和消费数据,沿途路由器依据目标地址逐跳选择下一段路径,因此通信范围可以跨越多个独立建设和管理的网络。

边界与反例: 多台设备接在同一交换网络中,只能说明它们组成了网络,不能据此称为互联网;两个隔离网络即使都使用 IP,没有路由或转发链路时也没有形成可通信的互连网。企业内部把多个园区网络互联,可称为一个互连网,但它未必接入全球 Internet。同样,网页只是互联网承载的一类应用,不能把 Web 与互联网等同。

工程验证: 可通过 traceroute 或 Windows 的 tracert 观察到目标地址的逐跳路径。若同一局域网通信通常只需本地链路,而公网目标出现家庭网关、运营商和远端网络等多跳,便能验证数据跨网络转发的链路。部分路由器会过滤探测报文,因此超时节点不等于链路中断;应结合最终目标是否可达判断。

面试官追问

追问 1公司内网有几千台机器,但不能上外网,它算互联网吗?
参考回答

算一个互连网(internet),前提是内部有多个网络靠路由器互通;但它不是全球 Internet,因为没有接进去。

追问 2怎么亲眼看到数据跨了几个网络?
参考回答

命令行跑 traceroute example.com(Windows 用 tracert),每一行是一跳路由器,能看到从家庭网关到运营商再到目标网络的路径。

追问 3traceroute 中间有几行是 * * *,是不是网断了?
参考回答

不一定。很多路由器会限速或者直接不回探测包,只要最后一跳能到目标就说明链路是通的。

追问 4两台电脑插在同一个交换机上,通信要经过路由器吗?
参考回答

不用,同一个局域网里靠交换机按 MAC 地址转发就够了。要去另一个网段才需要路由器。

# ISP

30 秒速记

  • ISP = 互联网服务提供商,有 IP 地址资源、线路和路由器,你交钱它把你接进互联网
  • 多层结构:第一层 ISP(全球骨干)→ 区域 ISP → 接入 ISP(你家宽带运营商)
  • IXP(互联网交换点)让两个 ISP 直接互联,不用绕第三家,路径短、成本低
  • 层级描述的是覆盖范围,实际数据包不一定严格逐层走,看路由和互联关系
  • 家庭宽带拿到的常常不是独立公网 IP,而是运营商 NAT 后面的内网地址

ISP 就是给你接网的运营商,它手里有 IP 地址、线路和路由器,你付费它负责把你的流量送进互联网。 现在的互联网是分层的:最上面是覆盖全球的第一层 ISP,下面是区域 ISP,最底下是给家庭和企业拉宽带的接入 ISP。不同运营商之间要交换流量,可以通过上级转,也可以在 IXP 直接对接,后者路径更短、时延更低。国内常说的「跨网慢」,比如电信用户访问联通机房的服务,就是因为两家之间互联点少、带宽紧张,所以很多网站会用多线机房或者 CDN。

互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。

目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小分为第一层 ISP、区域 ISP 和接入 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。

原理拆解: ISP 的作用不是简单出售一个 IP 地址,而是把用户网络接入其可路由的基础设施。它需要管理地址资源、接入线路和路由设备,并把用户流量继续转发到其他网络。用户获得的地址可能是公共地址,也可能位于运营商地址转换之后;核心结果是用户拥有经由 ISP 到达互联网的路径,而非必然独占一个固定公网地址。

接入链路: 以家庭宽带访问网站为例,终端先把数据交给家庭网关,网关经接入线路进入接入 ISP;接入 ISP 再通过区域网络、上级网络或互联关系把数据送往目标服务器所属网络。第一层、区域和接入 ISP 描述的是覆盖范围与互联位置的差异,不代表每个数据包都必须严格依次穿过这三层,实际路径取决于网络之间建立的连接和路由选择。

IXP 与反例: IXP 提供不同 ISP 交换流量的共同设施,使双方可以直接互联,减少绕行第三方网络的路径、成本或时延。但接入同一 IXP 不等于自动互通,双方仍需建立相应互联与路由关系。IXP 也不是面向普通用户提供宽带接入的 ISP,它解决的是网络之间如何更直接交换流量的问题。

工程验证: 可对同一目标执行多次 traceroute,记录接入网关之后的跳数与往返时延,再对比访问本运营商内目标和其他网络目标的路径。若跨网路径在某处缩短,只能作为存在较直接互联的线索,不能仅凭主机名断定经过了某个 IXP。路由可能因负载、故障或策略变化而改变,探测报文也可能被限速;验证时应结合多时段结果以及运营商公开的互联信息。

面试官追问

追问 1用户反馈移动网络打开网站很慢,电信网络正常,可能是什么原因?
参考回答

多半是跨运营商互联的问题,服务器在电信机房,移动用户的流量要绕互联点。解决办法是上 BGP 多线机房或者接 CDN,让用户就近从同运营商节点取内容。

追问 2家里宽带能直接在外网访问我电脑上起的服务吗?
参考回答

通常不能,很多家庭宽带分到的是运营商级 NAT 后面的地址,不是独立公网 IP。要么找运营商申请公网 IP,要么用内网穿透工具。

追问 3两家 ISP 都接到同一个 IXP,就自动互通了吗?
参考回答

不会。IXP 只是提供交换设施,双方还要谈好互联协议、配置路由才会真正交换流量。

追问 4IXP 是给普通用户接网的吗?
参考回答

不是,它服务的是 ISP 和大型内容网络之间的流量交换,普通用户接网找的是接入 ISP。

# 主机之间的通信方式

30 秒速记

  • C/S:客户端发请求,服务器提供服务,角色固定,比如浏览器访问网站
  • P2P:节点之间不分主次,每个节点既下载又上传,比如 BT 下载
  • 判断看「谁提供服务、角色能不能互换」,不是看数据是不是双向流动
  • P2P 也常需要中心服务做节点发现和打洞,比如 WebRTC 要信令服务器和 STUN / TURN
  • C/S 简单好管、但服务器是瓶颈;P2P 扩展性好、但节点不稳定、穿透 NAT 麻烦

主机之间通信有两种角色模式:C/S 是一边请求一边服务,P2P 是大家地位平等、互相提供资源。 浏览器打开网页就是 C/S,浏览器只管要,服务器只管给。BT 下载是 P2P,你一边从别人那下分片,一边把已有的分片传给别人,下载的人越多反而越快。要注意 P2P 不等于完全没有服务器,比如 WebRTC 视频通话,两端直连之前要靠信令服务器交换地址信息,打洞失败还得走 TURN 中转。判断时看服务角色,而不是看有没有中心节点。

  • 客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。

  • 对等(P2P):不区分客户和服务器。

# 电路交换与分组交换

原理拆解: C/S 与 P2P 描述的是应用层服务角色,而不是底层网络是否双向。C/S 中,客户端通常先定位服务器并发起请求,服务器监听约定地址、处理请求并返回结果;一次连接建立后,服务器同样可以向客户端发送数据。P2P 中,每个节点都可能同时请求资源和提供资源,角色会随具体交互变化,但数据仍需经过传输层和网络层完成寻址、传输与转发。

← LinuxOS →

fe