news 2026/10/29 2:15:33

TCP reliable / UDP unreliable hoax

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TCP reliable / UDP unreliable hoax

Education trains obedience to abstractions, not understanding of systems.


🔹 1. “TCP reliable / UDP unreliable” is a pedagogical simplification

Teachers present it as:

TCP = reliable stream
UDP = unreliable datagram

Students interpret it as:

UDP cannot be made reliable.

But the real story is:

TCP provides reliabilitybecause the kernel implements it.
UDP is merely a raw message delivery primitive.

Reliability is not inherent to TCP — it isimplemented logic:

  • sequence numbers
  • acknowledgments
  • retransmission
  • congestion control
  • flow control
  • reordering
  • fragmentation handling

These are just features someone chose to put in the kernel.

Nothing stops you from implementing all of that in user space over UDP — and people do:

✔ QUIC (Google, now HTTP/3) – reliable, congestion-controlled, over UDP
✔ RTP + RTCP + FEC – reliable(ish) streaming
✔ ENet – reliable ordered UDP for game engines
✔ RakNet – reliable messaging for games
✔ WebRTC DataChannels – reliable UDP streams

So the “TCP reliable / UDP unreliable” story isjust a classroom slogan, not a truth.

When people only learn slogans, they stop asking“why?”.


🔹 2. Tutorials often teach consumption, not construction

Most textbooks tell you:

“use TCP if you want reliability”

But never:

“here’s how reliability works underneath and why it matters.”

This produces engineers who canuse socketsbut cannotbuild transports.

Same pattern repeats:

  • “use SQL” → not “here’s how indexing and query optimization work”
  • “use Kubernetes” → not “here’s how scheduling and orchestration works”
  • “use Python” → not “here’s how a VM executes bytecode”
  • “use AES” → not “here’s why block ciphers are designed the way they are”
  • “use AI API” → not “here’s how attention or tokenization works”

It’s training for dependency, not independence.


🔹 3. Why schools teach half-stories

Partly because it’s easier:

  • simplifies grading
  • reduces cognitive load
  • avoids system-level complexity
  • fits standardized curriculum

But the more subtle reason:

teaching youhow to build systemscreates people who don’t need systems anymore.

Institutions (education, corporations, government) prefer producingoperators, notinventors.

An operator is someone who:

  • calls APIs
  • configures tools
  • consumes platforms
  • depends on external infrastructure

An inventor is someone who:

  • builds alternatives
  • creates new platforms
  • threatens monopolies
  • understands internals

The world systemically rewards operators, because they plug into the machine.

Inventors complicate the power structure.


🔹 4. This ties into points about lock-in

When people believe UDP “cannot” be reliable, they stop experimenting.

When people believe frameworks “must” be used, they stop building replacements.

Same root dynamic:

  1. Abstractions become dogma
  2. Dogma becomes curriculum
  3. Curriculum produces dependency
  4. Dependency reinforces the platform

Knowledge becomes siloed and rare.


🔹 5. TCP is actually a historical limitation

Here’s a twist:

The fact that TCP is in the kernel actually makes ithard to evolve:

  • changing congestion control requires kernel upgrades
  • new features require RFC standardization
  • ossification happens (middleboxes block new behavior)

Google’s QUIC existsprecisely because TCP became ossified.

So they moved reliabilityto user space over UDP

And HTTP/3 is now QUIC by default.

The system came full circle — user-space reliability won.


🔹 6. Cognitive takeaway

Here are points to a deeper intellectual skill:

Don’t treat abstractions as truths.
Treat them as design choices.

Once you see that engineering is just layered decisions, you can imagine alternatives.

Most people never reach that level because they were taught:

  • what to use
  • not how to think
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 15:43:39

【笔记】【货币战争】

目录 精读《货币战争》:一场围绕货币发行权的无硝烟财富争夺战 二、运作真相:美国政府向私人银行借钱花 三、私有本质:谁在真正掌控美联储? 二、1929 大萧条:精心设计的剪羊毛行动 三、危机的本质:债务货币的潮汐效应 二、国际清算银行:中央银行家的暗箱操作平台 …

作者头像 李华
网站建设 2026/10/28 16:38:36

【笔记】【底层逻辑1】

目录 精读刘润《底层逻辑 1》:看透世界运转规律,少走人生弯路 一、 是非对错的底层逻辑:三种视角,三种答案 二、 分清人性、道德和法律:别混淆三者的边界 三、 人生的三层智慧:选择、定力、博弈 第一层智慧:选择 —— 先知道 “有的选”,再敢放弃 第二层智慧:定…

作者头像 李华
网站建设 2026/10/27 15:44:20

Node.js 用 process.cpuUsage 监控CPU使用率

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Node.js CPU监控的深度实践:超越process.cpuUsage的陷阱与创新目录Node.js CPU监控的深度实践:超越proce…

作者头像 李华
网站建设 2026/10/28 20:33:39

【课程设计/毕业设计】基于JavaWeb寝室管理系统Web的学生宿舍管理系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/10/27 10:02:58

树状数组

lc2659树状数组统计已删除元素&#xff0c;按数值升序遍历元素位置分前后段计算每次删除的移动步数并累加&#xff0c;求解清空数组的总操作数。// 树状数组模板 class BIT {vector<int> tree; public:BIT(int n) : tree(n) {}// 将下标 i 上的数加一void inc(int i) {wh…

作者头像 李华
网站建设 2026/10/28 17:02:40

一道“找数”的题,为什么能成为算法世界的常青树?

一道“找数”的题,为什么能成为算法世界的常青树? 从 Missing Number 说起 一、引子:这题你肯定见过,但你真的“理解”了吗? 很多人第一次见到这道题,心里都会冒出一句话: “这也叫算法题?小学数学吧?” 题目很简单: 给你一个包含 0 ~ n 中 n 个不同数字 的数组, …

作者头像 李华