主题
软件生命周期与供应商锁定
在主题维度下,软件生命周期与供应商锁定主题情报把围绕同一具体议题、信号焦点或监测主题的 BTW.MEDIA 文章串联起来。页面为读者提供更完整的阅读路径,涵盖相关报道、证据来源、市场参与者和基础设施影响,并给出足够背景,帮助理解该主题为何在公司动态、治理决策、区域影响和运营风险中值得关注。读者可以比较反复出现的信号、受影响组织、公开证据、市场背景、服务连续性、采购、竞争、合规和战略规划等问题,而不是只看一份单薄的相关文章列表。页面还会说明该主题涵盖什么、涉及哪些基础设施参与方或政策、有哪些证据支撑报道,以及该主题对运营商、客户、投资者和关注政策的读者为何重要。

互联网历史
尚未移动就被量过的邮件:SMTP SIZE 如何把拒绝提前
早期 SMTP 可能把一封大邮件完整传到服务器,才知道对方永远不会保存它。SIZE 扩展没有承诺投递成功,只让两台中继在付出全部传输成本之前,把发送方声明的负载与接收方掌握的本地容量相比较。

互联网历史
当“稳定”惩罚了恢复:路由抖动抑制如何决定前缀何时重新可达
路由器会记住变化,却不会理解变化为何发生。20 世纪 90 年代,这种记忆保护了处理能力有限的 BGP 控制平面;当它跨越自治系统叠加后,同一套机制也可能把一次正常修复误判成持续故障,让前缀持有人在自己无法控制的网络里继续等待。

互联网历史
正文尚未开始,请求却已太大:HTTP 为何需要 431
HTTP 请求可能在正文被读取之前失败。原因不是协议规定了一个全球统一的上限,而是某个接收方决定了自己愿意处理多少控制上下文。431 把这条本地边界说了出来,却没有假装每一跳都共享同一个尺度。

IETF
Linda Dunbar 与那个不能替网络虚构邻居的目录
一台虚拟机已经从旧机架迁走,目录客户端却仍握着迁移前的地址映射。报文格式没有错,认证会话也没有断,错误只在一个地方:记录描述的网络已经不是眼前这个网络。Linda Dunbar 参与合著的四份 TRILL RFC,把“用目录减少泛洪”背后的代价写得很清楚——记录一旦开始影响转发,它的来源、覆盖范围、置信度、寿命和纠错路径就不再是后台细节。

互联网历史
服务器在回答前先数了数:HTTP 为何需要 429
门没有坏,请求也不一定有错;它只是排在服务器自行划定的额度之后。HTTP 429 把这种拒绝说清楚,却没有替运营者决定“谁算同一个主体、哪些请求共用额度、等待多久才公平”。

互联网历史
写入为何必须说明它见过的过去:HTTP 428 的由来
一条写入请求可以语法无误、身份可信、目标明确,却仍然缺少最关键的依据:提交者究竟是在什么版本上作出的决定。HTTP 428 让源站可以先问清这件事,再允许改变发生。

IETF
Hannes Gredler 与必须双向引流的 OSPF 链路
运维人员把一端的度量值调到最高,看见部分路由绕行,便以为链路已经“排空”。但邻端仍在发布它自己的反向状态,流量依然可能从另一侧进入。Hannes Gredler 参与撰写的 RFC 8379 把这个容易被物理直觉遮住的问题说清楚:一条链路在 OSPF 中是两端分别声明的方向性状态;可靠维护必须让两端识别同一条边,并用真实流量验证两个方向。

互联网历史
必须等到证据到齐的请求:HTTP 为什么需要 425
请求没有写错,目标也没有找错,服务器甚至已经认得来访者。问题只在于它来得太早:新握手尚未完成,这份 0-RTT 数据仍可能被拿到另一条连接上重放。HTTP 425 把决定权交还给真正知道后果的源站,让同一个意图离开早期数据后再来一次。

互联网历史
保存之后,页面仍在原处:HTTP 204
HTTP 204 让 Web 可以确认一次操作已经完成,却不接管发起操作的工作界面。响应没有内容,但并非没有控制信息:状态说明完成,头字段描述操作后的身份,而用户代理把当前页面留在原位。

互联网历史
那条连接并不等于权威:HTTP 为什么需要 421
HTTP/2 让多个源共享一条经过认证的连接,以减少握手与等待;421 则为这项优化划出边界:能抵达、证书覆盖、看似可复用,都不等于某个源必须接受这条连接的上下文并在其上作出权威响应。

互联网历史
以“差异”抵达的副本:HTTP 226
HTTP 226 试图让 Web 不再重复传输缓存已经知道的内容。新的实例可以不以完整副本抵达,而以一组作用于旧副本的指令抵达;前提是基底、差分消息与重建结果始终拥有各自的身份。

互联网历史
第二条路径不必再走一遍:HTTP 208
HTTP 208 处理的不是一个重复请求,而是一个不再像树的名字空间:两条 URI 路径可以抵达同一个集合。服务器必须保留第二条路径的存在,却不必把同一批后代再次展开;否则,别名会把一次深度遍历放大成重复清单,甚至无穷循环。

互联网历史
允许输掉的偏好:Happy Eyeballs 如何让双栈真正可用
双栈最尴尬的时刻,不是没有 IPv6 地址,而是地址明明存在,连接却在黑洞前安静等待。Happy Eyeballs 没有取消 IPv6 优先;它只是规定,优先权可以先跑,却不能无限占用用户的时间。

互联网历史
活得比地址更久的连接:QUIC 为何需要 Connection ID
地址会先于对话改变。笔记本离开 Wi-Fi,NAT 换了外部端口,应用却仍有未完成的流与共享密钥。QUIC 用 Connection ID 把“这还是同一条连接”从地址中拆出,但没有因此把新路径当成天然可信。

互联网历史
连接无法携带的名字:HTTP 为什么需要 Host
TCP 能把连接送到一个地址,HTTP 能在连接里请求一条路径。可当多个网站共享这个地址时,两者都没有告诉服务器用户选中了哪个名字。HTTP/1.1 用强制的 `Host` 补上了这项身份。

互联网历史
消失在两个报文之间的首部:TCP/IP 如何学会共同记忆
在低速串行链路上,一个键盘字符要带着四十字节 TCP/IP 首部出发。RFC 1144 没有删掉这些含义,而是让链路两端保存同一份过去,只传本次发生的变化。

互联网历史
看起来像结束的那一行:SMTP 如何让终止符变得透明
SMTP 要在同一条 TCP 流上先传命令,再传长度未知的邮件。它选择“只有一个句点的行”作为结束标志。问题随即出现:如果正文恰好也有这样一行呢?

互联网历史
不是接受的许可:HTTP 为什么加入 100 Continue
上传尚未开始,服务器也许已经能从方法、目标和凭据判断拒绝。HTTP 把这个时间差写成一条临时回应:先问这批字节是否值得发送,再由正文之后的最终状态说明操作究竟发生了什么。

IETF
Tony Li 与拒绝支配载荷的四字节信封
数据包进入 GRE 隧道后会多出一个目的地址,却不会失去原来的目的地址。外层地址负责把整只“信封”送到出口,内层地址则在拆封后继续决定去向;两者之间,最小 GRE 头只有四字节。Tony Li 在原始 GRE 文档与 Standards Track 规范中的共同署名,留下了一种少见的工程克制:共同层只规定怎样包,不替网络决定为何包、谁能包,以及包里的流量是否安全。省下的复杂度并没有消失,它转化为端点的责任。
案例档案
被安装两次的密钥:KRACK 与重传消息的权限
无线网络必须容忍丢包,但容忍丢包不等于允许状态倒退。KRACK 揭开的并非 WPA2 密码失守,而是一条更隐蔽的权限边界:同一条真实握手消息再次到达时,实现能否把它当成重新安装密钥的命令。
