
Summary 在实际工作中产品经理给你的 SaaS 后台提了一个需求:加一个在线客服。客户在网页右下角的聊天框里提问,客服在管理后台里回复;客服后台的右上角有个小铃铛,来了新工单就亮一个红点,这个需求你会怎么处理呢,需要用到哪些网络知识呢。 这个需求里有两处"有事要立刻知道": 客服点了发送,回复要立刻出现在客户的...

Summary 在实际工作中产品经理给你的 SaaS 后台提了一个需求:加一个在线客服。客户在网页右下角的聊天框里提问,客服在管理后台里回复;客服后台的右上角有个小铃铛,来了新工单就亮一个红点,这个需求你会怎么处理呢,需要用到哪些网络知识呢。 这个需求里有两处"有事要立刻知道": 客服点了发送,回复要立刻出现在客户的...

Summary 在实际工作中,一台服务器的处理能力总有上限。业务长大之后,唯一的出路是加机器——但加了机器,立刻冒出一个新问题? 用户的请求,该发给哪一台? 之前讲 DNS的时候,DNS轮询能做一点分流,但它的问题很明确:没有健康检查(机器挂了照样往那导)、受 TTL 限制(摘不掉、切不快)、粒度太粗(按网段,不按实...

Summary 前面几篇我们一直在讲"怎么把一堆字节可靠地送到对面"。TCP 把这件事做完了,但它送过去的只是一串没有含义的字节流,至于这些字节怎么表示,TCP 完全不关心。 应用层协议要补的就是这个:给字节流赋予含义。HTTP 定义了一套双方都认的规矩——请求长什么样、响应长什么样、哪些字段表示什么意思。 HTTP...

Summary 在网络中发送消息又一个前提:需要知道对方的 IP 地址。TCP 要 IP 才能握手,TLS 要 IP 才能连接。 可你在浏览器里敲的是 github.com,在代码里写的是 https://eth-mainnet.g.alchemy.com——这些名字对网络层毫无意义,IP 包的头部里只有...

Summary 前面几篇,我们看着 TCP 一层层往上搭:序号、确认、重传、排序、去重、流量控制、拥塞控制。每一样都是为了同一个目标——让应用拿到一段完美的字节流。 现在换个角度问:这些保障,是不是每个应用都想要? 答案是否定的,而且否定得很彻底。看几个场景: 视频通话丢了一帧,你希望它重传吗?不。等重传的那...