diff --git a/notes/pics/arp-hops.png b/notes/pics/arp-hops.png
new file mode 100644
index 00000000..a8e34915
Binary files /dev/null and b/notes/pics/arp-hops.png differ
diff --git a/notes/pics/arp-request.png b/notes/pics/arp-request.png
new file mode 100644
index 00000000..0d5c0d7e
Binary files /dev/null and b/notes/pics/arp-request.png differ
diff --git a/notes/pics/bgp.png b/notes/pics/bgp.png
new file mode 100644
index 00000000..1d6184f9
Binary files /dev/null and b/notes/pics/bgp.png differ
diff --git a/notes/pics/icmp-format.png b/notes/pics/icmp-format.png
new file mode 100644
index 00000000..9fb7e298
Binary files /dev/null and b/notes/pics/icmp-format.png differ
diff --git a/notes/pics/ip-classes.png b/notes/pics/ip-classes.png
new file mode 100644
index 00000000..3549c71b
Binary files /dev/null and b/notes/pics/ip-classes.png differ
diff --git a/notes/pics/ip-fragment.png b/notes/pics/ip-fragment.png
new file mode 100644
index 00000000..73788040
Binary files /dev/null and b/notes/pics/ip-fragment.png differ
diff --git a/notes/pics/ip-header.png b/notes/pics/ip-header.png
new file mode 100644
index 00000000..5a239cf4
Binary files /dev/null and b/notes/pics/ip-header.png differ
diff --git a/notes/pics/nat.png b/notes/pics/nat.png
new file mode 100644
index 00000000..fff6f366
Binary files /dev/null and b/notes/pics/nat.png differ
diff --git a/notes/pics/route-lookup.png b/notes/pics/route-lookup.png
new file mode 100644
index 00000000..89e8f191
Binary files /dev/null and b/notes/pics/route-lookup.png differ
diff --git a/notes/pics/router-structure.png b/notes/pics/router-structure.png
new file mode 100644
index 00000000..dd8ecac2
Binary files /dev/null and b/notes/pics/router-structure.png differ
diff --git a/notes/pics/vpn-tunnel.png b/notes/pics/vpn-tunnel.png
new file mode 100644
index 00000000..a5252a9d
Binary files /dev/null and b/notes/pics/vpn-tunnel.png differ
diff --git a/notes/计算机网络 - 网络层.md b/notes/计算机网络 - 网络层.md
index 2f382744..e8227300 100644
--- a/notes/计算机网络 - 网络层.md
+++ b/notes/计算机网络 - 网络层.md
@@ -38,7 +38,7 @@
## IP 数据报格式
-
+
- **版本** : 有 4(IPv4)和 6(IPv6)两个值;
@@ -58,7 +58,7 @@
- **片偏移** : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。
-
+
## IP 地址编址方式
@@ -74,7 +74,7 @@ IP 地址的编址方式经历了三个历史阶段:
IP 地址 ::= {\< 网络号 \>, \< 主机号 \>}
-
+
### 2. 子网划分
@@ -104,27 +104,33 @@ CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。
-
+
ARP 实现由 IP 地址得到 MAC 地址。
-
-
每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。
-
+
## 网际控制报文协议 ICMP
ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。它封装在 IP 数据报中,但是不属于高层协议。
-
+
ICMP 报文分为差错报告报文和询问报文。
-
+| 类型 | 名称 | 种类 | 用途 |
+| --- | --- | --- | --- |
+| 0 | 回送回答 | 询问 | ping 收到的回答 |
+| 3 | 终点不可达 | 差错报告 | 主机、网络或端口不可达,Traceroute 到达终点时收到端口不可达 |
+| 5 | 改变路由(重定向) | 差错报告 | 路由器告诉主机有更好的下一跳 |
+| 8 | 回送请求 | 询问 | ping 发出的请求 |
+| 11 | 时间超过 | 差错报告 | TTL 减到 0 时由路由器发出,Traceroute 靠它得到沿途的路由器 |
+| 12 | 参数问题 | 差错报告 | 首部字段的值有错 |
+| 13、14 | 时间戳请求、回答 | 询问 | 很少使用 |
### 1. Ping
@@ -155,9 +161,9 @@ Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报
VPN 使用公用的互联网作为本机构各专用网之间的通信载体。专用指机构内的主机只与本机构内的其它主机通信;虚拟指好像是,而实际上并不是,它有经过公用的互联网。
-下图中,场所 A 和 B 的通信经过互联网,如果场所 A 的主机 X 要和另一个场所 B 的主机 Y 通信,IP 数据报的源地址是 10.1.0.1,目的地址是 10.2.0.3。数据报先发送到与互联网相连的路由器 R1,R1 对内部数据进行加密,然后重新加上数据报的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到数据报后将数据部分进行解密,恢复原来的数据报,此时目的地址为 10.2.0.3,就交付给 Y。
+下图中,场所 A 和 B 的通信经过互联网,如果场所 A 的主机 X 要和另一个场所 B 的主机 Y 通信,IP 数据报的源地址是 10.1.0.5,目的地址是 10.2.0.8。数据报先发送到与互联网相连的路由器 R1,R1 对内部数据进行加密,然后重新加上数据报的首部,源地址是路由器 R1 的全球地址 203.0.113.1,目的地址是路由器 R2 的全球地址 198.51.100.2。路由器 R2 收到数据报后将数据部分进行解密,恢复原来的数据报,此时目的地址为 10.2.0.8,就交付给 Y。
-
+
## 网络地址转换 NAT
@@ -165,7 +171,7 @@ VPN 使用公用的互联网作为本机构各专用网之间的通信载体。
在以前,NAT 将本地 IP 和全球 IP 一一对应,这种方式下拥有 n 个全球 IP 地址的专用网内最多只可以同时有 n 台主机接入互联网。为了更有效地利用全球 IP 地址,现在常用的 NAT 转换表把传输层的端口号也用上了,使得多个专用网内部的主机共用一个全球 IP 地址。使用端口号的 NAT 也叫做网络地址与端口转换 NAPT。
-
+
## 路由器的结构
@@ -173,7 +179,7 @@ VPN 使用公用的互联网作为本机构各专用网之间的通信载体。
分组转发结构由三个部分组成:交换结构、一组输入端口和一组输出端口。
-
+
## 路由器分组转发流程
@@ -184,7 +190,9 @@ VPN 使用公用的互联网作为本机构各专用网之间的通信载体。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;
- 报告转发分组出错。
-
+实际的路由器用最长前缀匹配统一处理以上几种情况:特定主机路由的前缀长度为 32,默认路由为 0,查找时在匹配的表项中选前缀最长的一个。
+
+
## 路由选择协议
@@ -241,4 +249,4 @@ BGP 只能寻找一条比较好的路由,而不是最佳路由。
每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。
-
+