diff --git a/notes/Java 并发.md b/notes/Java 并发.md
index c0fa0d6b..d5963911 100644
--- a/notes/Java 并发.md
+++ b/notes/Java 并发.md
@@ -258,9 +258,12 @@ public void func(String name) {
```java
private Lock lock;
public int func(int value) {
- lock.lock();
- // ...
- lock.unlock();
+ try {
+ lock.lock();
+ // ...
+ } finally {
+ lock.unlock();
+ }
}
```
@@ -383,7 +386,7 @@ Consumer4 is consuming product made by Consumer4...
**Executor 的中断操作**
-Executor 避免对 Thread 对象的直接操作,但是使用 interrupt() 方法必须持有 Thread 对象。Executor 使用 shutdownNow() 方法来中断所有它里面的所有线程,shutdownNow() 方法会发送 interrupt() 调用给所有线程。
+Executor 避免对 Thread 对象的直接操作,但是使用 interrupt() 方法必须持有 Thread 对象。Executor 使用 shutdownNow() 方法来中断它里面的所有线程,shutdownNow() 方法会发送 interrupt() 调用给所有线程。
如果只想中断一个线程,那么使用 Executor 的 submit() 而不是 executor() 来启动线程,就可以持有线程的上下文。submit() 将返回一个泛型 Futrue,可以在它之上调用 cancel(),如果将 true 传递给 cancel(),那么它将会发送 interrupt() 调用给特定的线程。
diff --git a/notes/Linux.md b/notes/Linux.md
index 0ac97d4d..bc59bc0d 100644
--- a/notes/Linux.md
+++ b/notes/Linux.md
@@ -599,7 +599,7 @@ inode 具体包含以下信息:
符号链接指向源文件所在的目录的 inode 上,从而通过目录获取源文件 inode。
-下图中,源文件位于目录 2,在目录 1 中建立符号链接文件,该符号链接会指向目录 2 的 inode。
+下图中,源文件位于目录 2,在目录 1 中建立符号链接文件,该符号链接会指向目录 2 的 inode,
diff --git a/notes/计算机网络.md b/notes/计算机网络.md
index 636809a0..74cbdf3d 100644
--- a/notes/计算机网络.md
+++ b/notes/计算机网络.md
@@ -34,9 +34,11 @@
* [点对点信道 - PPP 协议](#点对点信道---ppp-协议)
* [局域网的拓扑](#局域网的拓扑)
* [广播信道 - CSMA/CD 协议*](#广播信道---csmacd-协议)
- * [集线器](#集线器)
+ * [扩展局域网*](#扩展局域网)
+ * [1. 在物理层进行扩展](#1-在物理层进行扩展)
+ * [2. 在链路层进行扩展](#2-在链路层进行扩展)
+ * [3. 虚拟局域网](#3-虚拟局域网)
* [MAC 层*](#mac-层)
- * [虚拟局域网](#虚拟局域网)
* [第四章 网络层*](#第四章-网络层)
* [网际协议 IP 概述](#网际协议-ip-概述)
* [IP 数据报格式](#ip-数据报格式)
@@ -47,7 +49,6 @@
* [IP 地址和 MAC 地址](#ip-地址和-mac-地址)
* [地址解析协议 ARP](#地址解析协议-arp)
* [路由器的结构](#路由器的结构)
- * [交换机与路由器的区别](#交换机与路由器的区别)
* [路由器分组转发流程](#路由器分组转发流程)
* [路由选择协议](#路由选择协议)
* [1. 内部网关协议 RIP](#1-内部网关协议-rip)
@@ -334,13 +335,37 @@ CSMA/CD 表示载波监听多点接入 / 碰撞检测。
当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 **截断二进制指数退避算法** 来确定,从离散的整数集合 {0, 1, .., (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。
-## 集线器
+## 扩展局域网*
-从表面上看,使用集线器的局域网在物理上是一个星型网。但是集线器使用电子器件来模拟实际缆线的工作,逻辑上仍是一个总线网,整个系统仍像一个传统以太网那样运行。
+### 1. 在物理层进行扩展
-
+使用集线器进行扩展。
-
+集线器的主要功能是对接收到的信号进行放大,以扩大网络的传输距离。
+
+集线器不能根据 MAC 地址进行转发,而是以广播的方式发送数据帧。
+
+集线器是一种共享式的传输设备,意味着同一时刻只能传输一组数据帧。
+
+
+
+### 2. 在链路层进行扩展
+
+最开始使用的是网桥,它收到一个帧时,根据帧的 MAC 地址,查找网桥中的地址表,然后确定将帧转发到哪一个接口。
+
+网桥是一种两接口的网络设备,并且它不是共享式地,因此性能比集线器这种共享式设备更高。
+
+交换机的问世很快就淘汰了网桥,它实质上是一个多接口网桥。交换机的每个接口都能直接与一个主机或者另一个交换机相连,并且一般都工作在全双工方式。交换机还具有并发性,使多对主机能同时通信。
+
+交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到 接口的映射。下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表现,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 收下之后,查找交换表得到主机 A 映射的接口为 1,因此就把帧发送给主机 A,同时交换机添加主机 B 到接口 3 的映射。
+
+
+
+### 3. 虚拟局域网
+
+虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息,例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。
+
+
## MAC 层*
@@ -353,12 +378,6 @@ MAC 地址是 6 字节(48 位)的地址,用于唯一表示网络适配器
- **FCS** :帧检验序列,使用的是 CRC 检验方法;
- **前同步码** :只是为了计算 FCS 临时加入的,计算结束之后会丢弃。
-## 虚拟局域网
-
-虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息,例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。
-
-
-
# 第四章 网络层*
## 网际协议 IP 概述
@@ -469,9 +488,6 @@ CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为
-## 交换机与路由器的区别
-
-
## 路由器分组转发流程
diff --git a/pics/823cdab7-3779-4e3a-a951-dc2d154e0ee6.jpg b/pics/823cdab7-3779-4e3a-a951-dc2d154e0ee6.jpg
new file mode 100644
index 00000000..48d9c267
Binary files /dev/null and b/pics/823cdab7-3779-4e3a-a951-dc2d154e0ee6.jpg differ
diff --git a/pics/c9cfcd20-c901-435f-9a07-3e46830c359f.jpg b/pics/c9cfcd20-c901-435f-9a07-3e46830c359f.jpg
new file mode 100644
index 00000000..813b5142
Binary files /dev/null and b/pics/c9cfcd20-c901-435f-9a07-3e46830c359f.jpg differ