📚 图解TCP/IP(第5版)
照着《图解TCP/IP(第5版)》([日] 竹下隆史、村山公保、荒井透、刈田幸雄 著,乌尼日其格 译,人民邮电出版社 · 图灵程序设计丛书;日文原书《マスタリングTCP/IP 入門編 第5版》,「Mastering TCP/IP」系列的入门卷)做的自学笔记 —— 它站的位置比本仓库已有的两本网络课**更靠前**:计算机网络是教材体系,讲五层模型与每层的典型协议;图解网络硬件讲设备与布线。这一本回答的是「**为什么会有协议、为什么必须分层、地址为什么长这样**」——那两本默认你已经懂的东西。全书规划 9 章 251 篇,已完成第 1~9 章 251 篇:第 1 章 42 篇网络基础知识(网络怎么从「一台机器干一件事」长成今天的样子);第 2 章 24 篇 TCP/IP 基础知识(TCP/IP 为什么能赢);第 3 章 46 篇数据链路(一根线两端怎么说话);第 4 章 30 篇 IP 协议(IP 地址为什么必须分层、为什么要分片);第 5 章 29 篇 IP 协议相关技术(ARP、ICMP、NAT 这些「帮手」各补哪个缺口);第 6 章 26 篇 TCP 与 UDP(三次握手为什么是三次、四次挥手为什么是四次、滑动窗口与拥塞控制);第 7 章 22 篇路由协议(RIP 跳数、OSPF 分区、BGP 互联网怎么互联);第 8 章 23 篇应用协议(DNS/HTTP/SMTP/TLS,从敲域名到收到邮件的全链路);第 9 章 9 篇网络安全(防火墙、加密与认证、VPN 怎么搭在 IP 上)。本课是 原理课:能算的全部真算(分层后每层加多少字节、MTU 减掉头部剩多少、PPS 上限、最长前缀匹配、DHCP 租期);能用 Python 真跑的全部真跑(struct 手工造以太网帧/IP 包/TCP 段并算校验和、起真 HTTP 服务、量回环握手、发真组播包);必须有设备或权限的写成【📋 实操清单】加【🐍 Python 等价物】。技术事实按 2026 年当下核实过,与 2013 年成书时的差异用【⚠️ 2026 现状】单列。大白话、不跳步骤、必带生活比喻、常见误区、可折叠自测题。
内容来自我的 Obsidian 自学笔记 · 全书 9 章 251 篇已全部写完 · 全书完结 🎉
第一章 网络基础知识
计算机的普及与多样化
「一台机器干十件事」;先把「多样化」落到…
从独立模式到网络互连模式
独立模式只能碰本机磁盘;联网多的是「能被…
从计算机通信到信息通信
比特送到只是通信,内容有共识才是信息;换…
计算机网络的作用
网络最早只做共享资源;共享省的是存储,不…
批处理
攒一批一口气跑完;短板不是慢,是「不响应…
分时系统
CPU 切片轮流发;片短响应快切换多,片…
计算机之间的通信
多机说话多了一样东西:地址;回环握手 0…
计算机网络的产生
地址发多了浪费发少了不够;分类地址的缺陷…
互联网的普及
普及的分水岭是「域名都能解析」;DNS…
以互联网技术为中心的时代
软件从「装在本机」变成「跑在别处」;证据…
从【单纯建立连接】到【安全建立连接】
握手只有接通/被拒/超时三种结局;HTT…
手握金刚钻的TCP/IP
赢在层数少、开销小、谁都能实现;四层一共…
随处可见的协议
协议就是「约好的做法」;网络协议只是把它…
协议的必要性
协议还规定「错了怎么答」;没有明确拒绝…
协议如同人与人的对话
只有问的和答的两个角色;报文与对话是镜像…
计算机中的协议
只剩语法/语义/时序三件事;最短请求 7…
分组交换协议
切包是因为错一个比特不必整块重发;100…
计算机通信的诞生及其标准化
标准是「各家自制、互联失败」逼出来的;R…
协议的标准化
统一的是行为不是写法;MUST/SHOU…
协议的分层
把上层整包当数据、在前面加自己的头;27…
通过对话理解分层
每层给数据起个新名字;丢包/丢帧/超时/…
OSI参考模型
先定模型后写实现,所以完整但没赢;七层里…
OSI参考模型中各个分层的作用
每层为解决上层缺陷而生;速率/MTU/I…
7层通信
七层各干一次活、各加一个头;中间设备只处…
会话层以上的处理
会话管上下文、表示管解释;UTF-8 2…
传输层以下的处理
往下只干「送到」;UDP 1472、TC…
面向有连接型与面向无连接型
分界只在「传之前握不握手」;有连接不等于…
电路交换与分组交换
单流 8404 对 8236、十人 83…
根据接收端数量分类
一对一/一对全/一对多;组播是订阅不是投…
地址的唯一性
MAC 靠分配、IP 靠管理;MAC 跟…
地址的层次性
网络部分+主机部分,掩码就是划线;没有层…
通信媒介与数据链路
媒介只决定跑多快、传多远;换光纤多数是为…
网卡
上收帧下发电平;64 字节帧 28125…
中继器
只整形放大,不看地址不缓存;5-4-3…
网桥/2层交换机
学源 MAC、查目的、转发或泛洪;建表只…
路由器/3层交换机
把一段网络接到另一段;最长前缀优先,这条…
4~7层交换机
看端口号、URL、Cookie;三段分布…
网关
路由器只换帧头,网关要换整个报文格式;6…
网络的构成
家庭到骨干一层套一层;每跳改帧头,只有…
互联网通信
解析 19.6、建连 168.5,合计…
移动通信
150 Mbps 传 1 GB 要 54…
从信息发布者的角度看网络
5040→133→177 字节;三个动作…
第二章 TCP/IP基础知识
从军用技术的应用谈起
军用第一条需求是「打不烂」;去中心化就是…
ARPANET的诞生
1969 年四个节点起步;1983-01…
TCP/IP的诞生
可靠性归 TCP、跨网寻址归 IP;拆开…
UNIX系统的普及与互联网的扩张
BSD 免费送代码是扩散主因;一套 so…
商用互联网服务的启蒙
1995 年 NSFNET 停用转商用…
TCP/IP的具体含义
名字取两个核心协议,实为一族;IP 头那…
TCP/IP标准化精髓
先有实现、后有文档才赢;能被广泛实现的才…
TCP/IP规范——RFC
RFC 编号连续、免费公开;头部字段的增…
TCP/IP的标准化流程
草稿到标准要过四道关;草稿只有六个月寿命…
RFC的获取方法
官方源是 rfc-editor.org…
互联网定义
internet 是通称、Interne…
互联网与TCP/IP的关系
IP 是窄腰:上面无限应用、下面无限介质…
互联网的结构
接入→区域→骨干三层;链路数从平方级压到…
ISP和区域网
Tier 1 卖出口、Tier 3 卖家…
TCP/IP与OSI参考模型
四层是并掉三层不是砍掉;层界在 SO_*…
硬件(物理层)
物理层没有报文只有连续信号;指标是比特时…
网络接口层(数据链路层)
这一层的地址每一跳都会变;最小帧 64…
互联网层(网络层)
寻址、路由、分片全写在 IP 头 20…
传输层
端口决定交给哪个程序;TCP 与 UDP…
应用层(会话层以上的分层)
表示层与会话层并进应用层;charset…
数据包首部
首部是把必要信息写在明面上;序号确认号各…
发送数据包
发送就是加四次头;1 字节数据在线上占…
经过数据链路的包
下一跳 IP 要翻成 MAC,靠 ARP…
数据包接收处理
接收是逐层剥头校验上交;UDP 保边界…
第三章 数据链路
数据链路的作用
切帧、只负责一跳;不管最终去哪,这是它与…
MAC地址
48 位:前 24 出厂、后 24 序号…
共享介质型网络
先听后说、边说边听、撞了退避;天花板不是…
非共享介质网络
交换机把每口变成一个冲突域,所以能全双工
根据MAC地址转发
MAC 表是听源地址学出来的;查不到泛洪…
环路检测技术
环路必成广播风暴;生成树主动阻塞几条边换…
VLAN
插 4 字节标签;缩小的是广播范围,不是…
以太网连接形式
总线到星型到光纤;每次换的原因都不是速率…
以太网的分类
名字本身就是参数;带 X 的那几种用 8…
以太网的历史
五十年版速率翻十万倍而帧格式没变;靠的是…
以太网帧格式
14 加 46 到 1500 加 4;最…
无线通信的种类
频率越高带宽越大传得越近;损耗里频率和距…
IEEE802.11
无线只能靠 ACK 确认;54M 的 W…
IEEE802.11b和IEEE802.11g
2.4G 有 13 个信道但只有 3 个…
IEEE802.11a
a 与 g 同为 54M 只差频段;它不…
IEEE802.11n
速率等于每流速率乘流数;300 就是 4…
使用无线LAN时的注意事项
无线最怕的不是墙是邻居;同频排队、邻频误…
蓝牙
蓝牙每秒跳 1600 次、每次停 625…
WiMAX
覆盖大和容量密度高不能同时要,这是 Wi…
ZigBee
250 kbps 换的是两年电池;判断物…
PPP定义
一根线只接两家所以不要地址;还在用是因为…
LCP与NCP
LCP 谈参数、认证报身份、NCP 要地…
PPP的帧格式
0x7E 当帧标志就必须转义;插 0x7…
PPPoE
多 8 个字节:MTU 从 1500 掉…
ATM
切成 53 字节信元;48 除 53 得…
POS
标称 155.52 实际 149.76…
FDDI
双环反向转,断一处自愈还不掉速,代价是布…
Token Ring
拿到令牌才能发所以不会碰撞;等令牌的时间…
100VG-AnyLAN
技术更好却完败;输的是迁移成本,这条规律…
光纤通道
线速与数据速率的差就是编码;16GFC…
HIPPI
32 位乘 25 MHz 得 800M…
IEEE1394
能预约带宽才有有界延迟;输给 USB 是…
HDMI
版本号就是带宽;4K60 8bit 要…
iSCSI
每块固定 106 字节开销;512 字节…
InfiniBand
4X 是四条通道不是第四代;快在 RDM…
DOCSIS
千兆靠绑 32 个频道;上行被低频段挤住…
高速PLC
电力线效率只有三四成,是所有共享介质里最…
模拟电话线路
4 kHz 加 30 dB 只给 39.…
移动通信服务
「代」是每赫兹装多少比特;真正改变使用方…
ADSL
低频留给电话所以天生不对称;速率由离局端…
FTTH
1:32 分光平均 78M 但峰值仍是…
有线电视
一个 8M 频道模拟只装 1 套、256…
专线
专线卖的是保证不是速率;收敛比 1:10…
VPN
每套一层就吃掉一截 MTU;PPPoE…
公共无线LAN
两层分:出口除人数,空口再打对折,人越多…
其他公共无线通信服务
GEO 往返 238.6 毫秒;高延迟会…
第四章 IP协议
IP相当于OSI参考模型的第3层
IP 是「把不同的链路接起来」的那一层…
网络层与数据链路层的关系
链路层管一跳、IP 管全程;两层的地址各…
IP地址属于网络层地址
IP 地址是逻辑地址,跟着位置走不跟着硬…
路由控制
路由表记段不记台;一条 /24 顶 25…
数据链路的抽象化
IP 把各种链路抽象成「能发帧」;差异由…
IP属于面向无连接型
无连接意味着不握手不复位;可靠性交给 T…
IP地址的定义
32 位点分十进制;地址标识的是网卡不是…
IP地址由网络和主机两部分标识组成
网络部分加主机部分,界线由掩码定;同网段…
IP地址的分类
A 类 128 个网、B 类 16384…
广播地址
主机位全 1 是广播;/31 和 /32…
IP多播
多播省的是重复传输;28 位 IP 挤进…
子网掩码
掩码就是分界线;块大小等于 2 的(32…
CIDR与VLSM
CIDR 往外并、VLSM 往里切;聚合…
全局地址与私有地址
私有地址靠 NAT 复用;连接够用,但端…
全局地址由谁决定
五家 RIR 分配、运营商宣告路由;「分…
IP地址与路由控制
最长前缀优先;同网段直接交付,跨网段交给…
路由控制表的聚合
聚合省表项,但宣告太宽会出黑洞;抽掉一条…
数据链路不同,MTU则相异
MTU 由介质定不由协议定;以太网 15…
IP报文的分片与重组
标识、DF/MF、片偏移三件套;偏移以…
路径MTU发现
设 DF 发出去、被拒就调小;ICMP…
IPv6的必要性
IPv6 的动机有四条:地址、端到端、聚…
IPv6的特点
首部固定 40 字节、8 个字段;取消广…
IPv6中IP地址的标记方法
八组十六进制;前导零可省,双冒号只能一次
IPv6地址的结构
前 64 位是网、后 64 位是机器;三…
全局单播地址
2000::/3 只占八分之一;IANA…
链路本地单播地址
fe80 自动生成且必需;EUI-64…
唯一本地地址
fd00::/8 加 40 位随机全局…
IPv6分段处理
只有源端能分片;路由器回「包太大」,所以…
IPv4首部
20 字节 13 个字段;校验和只管首部…
IPv6首部格式
40 字节 8 个字段;有效载荷长度不含…
第五章 IP协议相关技术
仅凭IP无法完成通信
IP 只管把包送到「目的主机」;交给哪个…
IP地址不便记忆
名字给人记、地址给机器用;两套编号必须有…
DNS的产生
hosts 文件能改,但改不动全世界的机…
域名的构成
从右往左读,越往右管得越宽;一个域名最多…
DNS查询
递归查询让服务器替你跑腿,迭代查询让你自…
DNS如同互联网中的分布式数据库
每台服务器只管自己那一格;靠缓存和 TT…
ARP概要
ARP 解决「知道 IP 不知道 MAC…
ARP的工作机制
一问一答再缓存;ARP 表会老化,所以「…
IP地址和MAC地址缺一不可?
IP 管全程、MAC 管一跳;换一段链路…
RARP
RARP 只会「反查地址」;给不了掩码网…
代理ARP
代理 ARP 让路由器替别人答「我就是」…
辅助IP的ICMP
ICMP 是 IP 的「回执和告示」;它…
主要的ICMP消息
类型加代码两位定位;目的不可达、超时、重…
其他ICMP消息
时间戳、地址掩码这些老消息已被废弃;回显…
ICMPv6
ICMPv6 兼了 ARP 和 IGMP…
DHCP实现即插即用
DHCP 一次给四样:地址、掩码、网关…
DHCP的工作机制
四次广播 DORA;T1 是 50% 续…
DHCP中继代理
中继代理把广播变成单播转给别的网段的服务…
NAT定义
NAT 让一个公网地址带一群私网机器;省…
NAT的工作机制
一条会话一行,粒度是五元组;一个地址最多…
NAT-PT(NAPT-PT)
NAT-PT 连协议头一起改,被 RFC…
NAT的潜在问题
四个后遗症:外面进不来、端口耗尽、载荷改…
解决NAT的潜在问题与NAT穿越
静态映射钉洞、打洞穿锥型;对称型只能中转…
IP隧道
隧道把整个包塞进另一个包;四层 20 字…
IP多播相关技术
IGMP 管链路上有没有人订阅,PIM…
IP任播
任播一个地址配多处,路由送到最近那台;1…
通信质量控制
QoS 只有分类和排队两招;不能超订,而…
显式拥塞通知
ECN 用标记代替丢弃;要路径上每一跳都…
Mobile IP
家乡地址保身份、转交地址报位置;三角路由…
第六章 TCP与UDP
传输层定义
传输层给「哪台机器上的哪个程序」补上后半…
通信处理
同一台机器上多个程序共用一个 IP;靠端…
两种传输层协议TCP和UDP
TCP 负责「一个字节都不少、顺序不乱」…
TCP与UDP区分
要可靠选 TCP、要快选 UDP;DNS…
端口号定义
端口号 16 位,0~65535;0~1…
根据端口号识别应用
服务端用知名端口等人来连;客户端用临时端…
通过IP地址、端口号、协议号进行通信识别
一条连接靠五元组识别:源 IP、源端口…
端口号如何确定
服务端端口是「约定」的,客户端端口是「内…
端口号与协议
同一个端口号在 TCP 和 UDP 上是…
UDP
UDP 首部只有 8 字节;不重传、不排…
TCP的特点及其目的
TCP 用「确认加重传」把不可靠的 IP…
通过序列号与确认应答提高可靠性
序列号按字节编号;确认号的含义是「这个号…
重发超时如何确定
RTO 靠往返时间的加权平均加四倍偏差算…
连接管理
三次握手建连、四次挥手断连;TIME_W…
TCP以段为单位发送数据
MSS 由 MTU 减去两个首部得来;以…
利用窗口控制提高速度
窗口让「发出去不用等确认」;带宽时延积决…
窗口控制与重发控制
丢包用「三个重复确认」快速重传;SACK…
流控制
流控制是接收方喊停(怕自己撑爆);拥塞控…
拥塞控制
慢启动每轮翻倍、拥塞避免每轮加一;丢包就…
提高网络利用率的规范
Nagle 攒小包、延迟确认攒 ACK…
使用TCP的应用
HTTP、SSH、SMTP 都靠 TCP…
UDP-Lite
UDP-Lite 用「覆盖长度」只校验头…
SCTP
SCTP 一个连接开多条流,解决队头阻塞…
DCCP
DCCP 不要可靠但要拥塞控制;理论最优…
UDP首部的格式
UDP 首部四个字段八字节;校验和要算伪…
TCP首部格式
TCP 首部 20 字节起步;序列号占…
第七章 路由协议
IP地址与路由控制
路由表里每一行就是「这个网段从哪个口出去…
静态路由与动态路由
静态路由靠人一条条敲、不会自己变;动态路…
动态路由的基础
动态路由三件事:告诉邻居我认识谁、从邻居…
接入互联网的各种组织机构
接入点把用户网连到 ISP,ISP 之间…
自治系统与路由协议
自治系统是一块「自己说了算」的网;AS…
IGP与EGP
IGP 管内、EGP 管外;一个管「怎么…
距离向量算法
距离向量只跟邻居换「我到各处的距离」,信…
链路状态算法
链路状态让每台机器都攒一份全网地图,再各…
主要路由协议
RIP 简单但只适合小网;OSPF 能扛…
广播路由控制信息
RIP 每 30 秒把整张表广播一遍;开…
根据距离向量确定路由
RIP 用跳数当距离,最大 15 跳,1…
使用子网掩码时的RIP处理
RIPv1 的报文里没有掩码字段,所以它…
RIP中路由变更时的处理
水平分割、毒性逆转、触发更新、抑制时间…
RIP2
RIP2 补上了掩码、下一跳、路由标记和…
OSPF是链路状态型路由协议
OSPF 直接跑在 IP 上(协议号 8…
OSPF基础知识
OSPF 的代价按带宽算:参考带宽除以接…
OSPF工作原理概述
OSPF 五种报文:Hello 认邻居…
将区域分层化进行细分管理
划区域是为了把泛洪限制在区内;区域 0…
BGP与AS号
BGP 是 AS 之间的协议,跑在 TC…
BGP是路径向量协议
BGP 报的是「到目的地要经过哪些 AS…
MPLS的网络基本动作
MPLS 在二层和三层之间插一层短标签…
MPLS的优点
MPLS 的两大好处:标签查表比最长前缀…
第八章 应用协议
应用层协议概要
应用层是最靠近用户的一层,它规定「消息长…
TELNET
TELNET 是明文远程登录,一个字节一…
SSH
SSH 先在明文通道上换出会话密钥,之后…
文件传输
FTP 开两条连接:控制连接发命令、数据…
电子邮件的工作机制
发信靠 SMTP 往外推、收信靠 POP…
邮件地址
邮件地址分成「本地部分」和「域名」,@…
MIME
MIME 用几个头部声明「这是什么类型…
SMTP
SMTP 是推的协议,命令和应答都是一行…
POP
POP 把整封信下载到本地再删掉,服务器…
IMAP
IMAP 让信留在服务器上,只取需要的部…
互联网的蓬勃发展
WWW 是三件事拼起来的:URI 定位…
WWW基本概念
浏览器发请求、服务器回响应,一次请求对应…
URI
URI 负责「唯一指到一个东西」,URL…
HTML
HTML 是排版语言,浏览器把它解析成一…
HTTP
HTTP 是请求—响应式的文本协议,天生…
JavaScript、CGI、Cookie
页面动起来靠三样分工:JavaScrip…
SNMP
SNMP 是管理器问、设备答;报文用 B…
MIB
MIB 是「这台设备有哪些指标可查」的一…
RMON
RMON 把判断下放到设备:设一条阈值…
SNMP应用举例
三个用法三个坑:32 位计数器千兆口 3…
多媒体通信实现技术
实时媒体宁可丢包也要按时播,所以跑在 U…
P2P
P2P 不创造带宽,只把上传摊开;只有一…
LDAP
LDAP 是读多写少的目录树,DN 从最…
第九章 网络安全
TCP/IP与网络安全
前面所有协议都默认「对面是善意的」;安全…
防火墙
防火墙是一张有顺序的清单,第一条命中就执…
IDS(入侵检测系统)
特征匹配抓的是「写得出来的」,换个编码或…
反病毒/个人防火墙
哈希只认一模一样的字节,改一比特就全新…
对称密码体制与公钥密码体制
对称密码快但钥匙送不出去,公钥能送钥匙但…
身份认证技术
认证证明的是「你知道、你有、你是」;固定…
IPsec与VPN
IPsec 在网络层加密,应用无感;ES…
TLS/SSL与HTTPS
TLS 握手只干三件事:验身份、挑算法…
IEEE802.1X
802.1X 在认证前只放行 EAPOL…