加载URL时会发生什么?(2015)

2020-08-26 21:44:06

键盘是怎么工作的?除了在花哨的游戏键盘上,你为什么不能同时按三个键的任意组合呢?这意味着关于如何检测/编码按键。

键是如何解锁的?有没有模拟逻辑,或者键盘上有没有微控制器来做这件事,或者别的什么?薄膜开关是如何工作的?

如何通知操作系统按键?我大概可以用286回答这个问题,但是现在它以某种方式通过x2APIC完成了,对吗?这是怎么运作的?

另外,USB、PS/2和AT键盘有什么不同吗?USB是如何工作的?那么笔记本电脑键盘呢?那只是一个USB连接吗?

USB接口如何工作?你有一个可以处理10 Gb/s的连接。如果正在连接的物理小玩意儿之间有任何差距,那肯定不会起作用。人们如何设计既能承受数万次插入又能保持公差的连接器呢?

操作系统如何告诉程序发生了什么事?它怎么知道该跟哪个节目对话呢?

浏览器如何知道要尝试加载网页?我猜它看到的是一个";http://";,或者只是假设任何没有前缀的东西都是一个URL?

假设我们没有缓存网页,所以我们必须执行DNS查询等操作。

DNS是如何工作的?DNS缓存是如何工作的?让我们假设它没有缓存在附近的任何地方,我们必须去找一些遥远的DNS服务器。

TCP?我们建立联系了吗?我们是针对DNS执行此操作,还是必须使用UDP?

操作系统如何决定是否应该允许传出连接?如果有软件防火墙怎么办?这是怎么运作的?

对于TCP,没有TLS/SSL,我们可以只进行慢启动,然后执行一些标准的拥塞协议,对吗?这里面有没有更深层次的复杂性呢?

不管怎么说,网卡怎么知道该怎么做呢?有没有一个我们写入的内存区域,网卡可以看到,或者它只是直接监控总线事务?

好的,假设有一个存储区。这是怎么运作的?我们怎么写记忆呢?

CPU/SoC中发生了一些事情!这是我知道一些东西的少数几个领域之一,所以,我将跳过这一点。一个信号最终会在一些引脚上发出。那是什么信号?现在,人们使用DDR3,但我们并不总是使用该协议。据推测,DDR3让我们比DDR2更快,DDR2比DDR更快,以此类推,但为什么呢?

然后信号最终进入DRAM模块。与CPU一样,我将基本上忽略内部发生的事情,但我很好奇DRAM模块是仍然是沟槽电容器还是堆叠式电容器,或者这项技术已经向前发展了吗?

回到我们的网卡,当信号在线路上发出时会发生什么?为什么100Mb以太网需要5类而不是3类电缆?这纯粹是信号完整性的问题,还是电缆实际上有不同的布线?

低于该水平的导线肯定足够长,它们可以起到传输线/波导的作用。如何处理终止?双绞线是否足以防止电感耦合,还是有更多奇特的东西在发生?

假设我们有到电缆调制解调器的本地以太网连接。电缆调制解调器是如何工作的?电缆是在不同客户之间以某种方式复用的吗?如何通过一根同轴电缆获得如此大的带宽?

回到上一层,电缆连接最终到达ISP。ISP如何知道将数据路由到何处?Internet路由是如何工作的?报头中的某些位决定路由?如何调整路由表?

另外,8.8.8.8的DNS内容是任播的,对吗?这与路由正常流量有何不同?Cloudflare CDN提供的任何服务也是如此。他们需要做些什么来防止路由抖动和其他不良情况?

斯坦福/Coursera算法课程IIRC提到,它基本上是一种分布式的贝尔曼-福特(Bellman-Ford)计算。但是,是什么阻止了人们建立虚假的路线呢?

如果我们能弄清楚从ISP到哪里去,我们的数据包就会通过一些边缘路由器、一些核心路由器、另一个边缘路由器,然后通过它们的网络进入数据中心的“肉”。

一定有某种激光。哪种?信号是如何调制的?是WDM还是TDM?是单模光纤还是多模光纤?

如果它是WDM,它是如何复用/解复用的?在自由空间里放棱镜会很奇怪,对吧?这是AWG可以做的事情。那是实际使用的东西吗?

链路之间必须有中继器。中继器是如何工作的?他们是只是增强信号,还是先解码信号以避免传播噪音?如果是后者,中继器之间必须有DCF。

能增强信号的东西是最简单的情况。掺铒光纤放大器是如何工作的?它基本上只是通过掺杂光纤传输电流,还是有更深层次的原因?

低于这一水平,就有标准单模光纤和DCF如何工作的问题。

不管怎么说,我们为什么需要贴现现金流呢?我想标准光纤和DCF的组合要比色散很低的光纤便宜。为什么会这样呢?

纤维是如何工作的呢?我的意思是,好吧,这可能是一种波导,它使用不同的介质来控制光线,但是好的光纤和坏的光纤有什么不同呢?

例如,在过去的几十年里,光纤有没有改变来严重降低偏振模色散?那件事怎么可能?这只是更精确的制造,还是涉及到其他东西?

回到上几层,我们进入一个数据中心。上面有什么?我们的数据包通过交换网络传输到机器?可能的交换机拓扑是什么?Facebook并不是直接从Dally and Towles中走出来的东西,但它是你可以想象到的那种用这种知识建立起来的东西。自从FB发布他们的拓扑结构以来,时间还不够长,人们可以复制它们,但是这个想法是否足够明显,以至于你会认为它是独立复制的?

等等,这是对的吗?我们是否应该期望DNS服务器位于某个数据中心的某个位置?

在任何情况下,在所有这些之后,我们的DNS将查询解析到一个IP。我们建立联系,然后呢?

然后我们拿回一些文件,浏览器必须以某种方式呈现它们。有HTML的请求,还有CSS和js的请求,还有单独的图像请求吗?这一定很复杂,因为浏览器很复杂。我不知道这件事有多复杂,所以我肯定遗漏了很多东西。

在浏览器渲染之后,它是如何到达GPU的,GPU做了什么?

对于2D图形,我们可能只需通知操作系统...。某物。这是怎么运作的?

操作系统如何与GPU对话?有没有一些内存映射区域,您只能在其中绘制像素,或者它是否比这更复杂?

LCD显示器是如何工作的?显示器和GPU之间的连接是如何工作的?

但是,如果网站上有广告,那不是很复杂吗?定向广告和广告拍卖是如何运作的?可能在200毫秒内发生了一堆事情?