我用book-to-skill把尹圣雨的《TCP/IP网络编程》做成了知识库(适合快速入门网络编程)

前言:

我最近在学习网络编程的时候,找到了经典书籍《TCP/IP网络编程》,但是原书一共有407页之多!很难坚持读下去,所以我就想能不能把每章的精华总结出来,做成知识库呢?

受到之前很火的book-to-skill的启发,我把《TCP/IP网络编程》喂给了agent让他帮我总结了一个知识库出来,这里分享出来,供大家一起学习!😊

github地址: LibraSco/tcp-ip-network-programming-notes: 基于尹圣雨《TCP/IP网络编程》一书,通过 book-to-skill 方法系统拆解和总结的 TCP/IP 网络编程学习笔记。涵盖 Socket 编程、TCP/UDP 协议、I/O 模型等核心技能点,适合想要系统学习网络编程的开发者参考。


关于本项目 / About

本书是网络编程领域的经典入门与进阶读物。本仓库不是简单的读书笔记,而是把整本书(约 421 页、25 章 )拆解为一份可被 AI 助手直接调用的技能知识库(Skill) :以一个 SKILL.md 作为索引入口,把每一章凝练为独立的章节文件,并抽出术语表、模式库、决策速查表三类支撑文件。

目录结构 / Repository Structure

整个仓库就是一份 book-to-skill 知识库,没有额外代码目录,全部内容都是带锚点的 Markdown 笔记文件:

复制代码
.
├── SKILL.md                # 知识库入口:核心框架 + 章节索引 + 主题索引
├── chapters/               # 25 个章节学习笔记(每章一个文件)
│   ├── ch01-socket-fundamentals.md
│   ├── ch02-socket-types-protocols.md
│   ├── ch03-address-family-data-sequence.md
│   ├── ch04-tcp-server-client-1.md
│   ├── ch05-tcp-server-client-2.md
│   ├── ch06-udp-server-client.md
│   ├── ch07-graceful-disconnect.md
│   ├── ch08-domain-name-dns.md
│   ├── ch09-socket-options.md
│   ├── ch10-multiprocess-server.md
│   ├── ch11-interprocess-communication.md
│   ├── ch12-io-multiplexing-select.md
│   ├── ch13-various-io-functions.md
│   ├── ch14-multicast-broadcast.md
│   ├── ch15-socket-standard-io.md
│   ├── ch16-io-stream-separation.md
│   ├── ch17-epoll.md
│   ├── ch18-multithread-server.md
│   ├── ch19-windows-threads.md
│   ├── ch20-windows-thread-sync.md
│   ├── ch21-async-notify-io.md
│   ├── ch22-overlapped-io.md
│   ├── ch23-iocp.md
│   ├── ch24-http-server.md
│   └── ch25-advanced-topics.md
├── glossary.md             # 关键术语与定义
├── patterns.md             # 技术模式与设计方法
└── cheatsheet.md           # 决策规则与速查表

如何使用 / How to Use

这是一份可被 AI 编程助手加载调用的 Skill。使用方式有三种:

  • 不带参数 :直接加载核心框架(SKILL.md 中的 Core Frameworks)用于参考。
  • 带主题 :询问 select、epoll、IOCP、shutdown 等已索引主题,助手定位并读取对应章节后作答。
  • 带章节号 :直接索要 ch05,加载指定章节。
  • 浏览:问 "what chapters do you have?" 查看完整索引。

当你提问的主题未出现在核心框架中时,助手会先读取相关章节文件再回答。


核心框架速览 / Core Frameworks

SKILL.md 顶部沉淀了若干可直接复用的心智模型,举其要者:

  • 套接字编程四步法 :socket() → bind() → listen() → accept();客户端只需 socket() + connect()。
  • 三次握手与四次断开 :SYN/SYN+ACK/ACK 建立;FIN/ACK/FIN/ACK 断开;Time-wait 出现在主动断开方,用 SO_REUSEADDR 规避端口占用。
  • 流式 vs 数据报 :TCP(SOCK_STREAM)可靠无边界,UDP(SOCK_DGRAM)不可靠有边界,按"完整性优先"还是"速度优先"决策。
  • 字节序转换 :网络序=大端;发送前 htons/htonl,接收后 ntohs/ntohl。
  • 迭代→并发演进:迭代服务器 → fork → select → epoll → 多线程 → IOCP。
  • 条件触发 vs 边缘触发:LT 持续通知,ET 仅状态变化通知一次,需配合非阻塞 I/O。
  • 半关闭 :shutdown(SHUT_WR) 只关发送、保留接收,区别于 close() 同时关收发。

章节索引 / Chapter Index

# 标题 关键框架
ch01 理解网络编程和套接字 socket/bind/listen/accept/connect、文件描述符
ch02 套接字类型与协议 SOCK_STREAM、SOCK_DGRAM、协议族
ch03 地址族与数据序列 sockaddr_in、htons/htonl、inet_addr、INADDR_ANY
ch04 基于 TCP 的服务器端/客户端(1) TCP 握手、迭代服务器、echo server
ch05 基于 TCP 的服务器端/客户端(2) 应用层协议设计、粘包问题
ch06 基于 UDP 的服务器端/客户端 sendto/recvfrom、已连接 UDP
ch07 优雅地断开套接字连接 shutdown、半关闭、SHUT_WR
ch08 域名及网络地址 DNS、gethostbyname、hostent
ch09 套接字的可选项 getsockopt/setsockopt、SO_REUSEADDR、TCP_NODELAY
ch10 多进程服务器端的实现 fork、僵尸进程、SIGCHLD、waitpid
ch11 进程间通信 pipe、单向/双向通信
ch12 I/O 多路复用 select、fd_set、FD_SET/FD_ISSET
ch13 多种 I/O 函数 send/recv、MSG_OOB、MSG_PEEK、readv/writev
ch14 多播与广播 TTL、IP_MULTICAST_TTL、IP_ADD_MEMBERSHIP、SO_BROADCAST
ch15 套接字与标准 I/O fdopen、fileno、fputs/fgets
ch16 I/O 流分离 dup/dup2、文件描述符复制、半关闭
ch17 优于 select 的 epoll epoll_create/ctl/wait、条件触发 vs 边缘触发
ch18 多线程服务器端的实现 pthread_create、mutex、semaphore、线程同步
ch19 Windows 平台下线程的使用 CreateThread、内核对象、WaitForSingleObject
ch20 Windows 平台下的线程同步 CRITICAL_SECTION、Mutex、Event、Semaphore
ch21 异步通知 I/O 模型 WSAAsyncSelect、窗口消息
ch22 重叠 I/O 模型 WSAOVERLAPPED、WSARecv/WSASend
ch23 IOCP CreateIoCompletionPort、GetQueuedCompletionStatus
ch24 制作 HTTP 服务器端 HTTP 协议、GET/POST、状态码、Web 服务器
ch25 进阶内容 学习路径、相关书籍

支撑文件 / Supporting Files

文件 用途
glossary.md 全书关键术语与定义汇总
patterns.md 可复用的技术模式与设计方法
cheatsheet.md 决策规则与 API 速查表

book-to-skill 方法论 / Methodology

本知识库遵循 book-to-skill 的四条核心原则:

  1. 原子性 Atomic:一章一文件,每个 Markdown 自带锚点,可被独立检索与调用。
  2. 可验证 Verifiable:核心框架给出明确决策规则(如 LT/ET 何时用、TCP/UDP 如何选)。
  3. 可检索 Searchable :SKILL.md 同时维护章节索引与主题索引,按主题即可定位到对应章节。
  4. 渐进式 Progressive:从单章框架到术语表、模式库、速查表,知识逐层沉淀,按需展开。

相关资源 / Resources

  • 原书:尹圣雨《TCP/IP 网络编程》
  • RFC 文档:rfc-editor.org
  • Linux man pages:socket(2)、bind(2)、listen(2)、accept(2)、select(2)、epoll(7)
  • Windows 套接字文档:Winsock / IOCP(Microsoft Learn)

说明 / Note

本仓库为个人学习整理,笔记结构与内容凝练自原书,仅供学习交流使用,请支持正版图书。

相关推荐
..过云雨1 小时前
19.【网络】多路转接poll、epoll、Reactor反应堆 - 修正版
网络
Raas1002 小时前
MAI Gateway(魔芋企业级AI网关)功能全解:AI网关能做Prompt注入防护吗?一文看懂AI网关能力矩阵(v1.2.0)
网络·人工智能·gateway·prompt·mai gateway·企业级ai网关·企业级产品
Lzg_na2 小时前
DHCP 作用、原理、机制和报文格式详解
网络
wewowilling2 小时前
RAG知识库--coze
大模型·agent·知识库·rag·coze
发量惊人的中年网工2 小时前
SD-WAN 组网方案怎么选?跨地域与多分支企业的选型指南(含成本对比)
服务器·网络·数据库
星恒讯工业路由器3 小时前
从5G-A到6G:工业通信网络的技术演进与产业落地
网络·物联网·5g·智能路由器·工业路由器·工业物联网·5g-a
砚凝霜3 小时前
【软考信息安全】第二十一章 网络设备安全概述与安全机制
网络·安全
Escalating_xu4 小时前
【Linux 网络编程】网络基础概念(下):IP、端口、Socket 与网络字节序,写代码前先打好基础
linux·网络·tcp/ip
zbtlink5 小时前
网络卡在哪儿:空口时间、会话表容量与接入速率的可复现定位方法
网络·智能路由器