diff --git a/notes/计算机网络.md b/notes/计算机网络.md index 657a40f5..3045c451 100644 --- a/notes/计算机网络.md +++ b/notes/计算机网络.md @@ -12,13 +12,14 @@ * [带通调制](#带通调制) * [信道复用技术](#信道复用技术) * [三、数据链路层](#三数据链路层) + * [信道分类](#信道分类) * [三个基本问题](#三个基本问题) - * [点对点信道 - PPP 协议](#点对点信道---ppp-协议) - * [局域网的拓扑](#局域网的拓扑) - * [广播信道- CSMA/CD 协议*](#广播信道--csmacd-协议) + * [局域网](#局域网) + * [PPP 协议](#ppp-协议) + * [CSMA/CD 协议*](#csmacd-协议) * [扩展局域网*](#扩展局域网) * [MAC 层*](#mac-层) -* [四、网络层 *](#四网络层-) +* [四、网络层*](#四网络层) * [网际协议 IP 概述](#网际协议-ip-概述) * [IP 数据报格式](#ip-数据报格式) * [IP 地址编址](#ip-地址编址) @@ -243,13 +244,18 @@ TCP/IP 协议族是一种沙漏形状,中间小两边大,IP 协议在其中 # 三、数据链路层 +## 信道分类 + +1. 点对点信道:一对一通信方式; +2. 广播信道:一对多通信方式。 + ## 三个基本问题 ### 1. 封装成帧 将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。 -

+

### 2. 透明传输 @@ -257,44 +263,46 @@ TCP/IP 协议族是一种沙漏形状,中间小两边大,IP 协议在其中 帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符,如果出现转移字符,那么就在转义字符前面再加个转义字符,在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。 -

+

### 3. 差错检测 目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。 -## 点对点信道 - PPP 协议 +## 局域网 -互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议就是用户计算机和 ISP 进行通信时所使用的数据链路层协议。 +局域网是典型的一种广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。 -

+可以按照网络拓扑对局域网进行分类: -在 PPP 的帧中 +

+ +## PPP 协议 + +用于点对点信道中。互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。 + +

+ +在 PPP 的帧中: - F 字段为帧的定界符 - A 和 C 字段暂时没有意义 - FCS 字段是使用 CRC 的检验序列 - 信息部分的长度不超过 1500 -

+

-## 局域网的拓扑 +## CSMA/CD 协议* -

- -## 广播信道- CSMA/CD 协议* - -在广播信道上,同一时间只能允许一台计算机发送数据。 +用于广播信道中。在广播信道上,同一时间只能允许一台计算机发送数据。 CSMA/CD 表示载波监听多点接入 / 碰撞检测。 - **多点接入** :说明这是总线型网络,许多计算机以多点的方式连接到总线上。 +- **载波监听** :每个站都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。 +- **碰撞检测** :在发送中,如果监听到信道已有其它站正在发送数据,就表示发生了碰撞。虽然每一个站在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。 -- **载波监听** :每个站都必须不停地监听信道。在发送前,如果检听信道正在使用,就必须等待。 - -- **碰撞检测** :在发送中,如果监听 到信道已有其它站正在发送数据,就表示发生了碰撞。虽然每一个站在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。 - -

+

记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 **争用期** 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。 @@ -312,41 +320,40 @@ CSMA/CD 表示载波监听多点接入 / 碰撞检测。 集线器是一种共享式的传输设备,意味着同一时刻只能传输一组数据帧。 -

+

### 2. 在链路层进行扩展 -最开始使用的是网桥,它收到一个帧时,根据帧的 MAC 地址,查找网桥中的地址表,确定将帧转发的接口。 +最开始使用的是网桥,它收到一个帧时,根据帧的 MAC 地址,查找网桥中的地址表,确定帧转发的接口。 网桥不是共享式设备,因此性能比集线器这种共享式设备更高。 交换机的问世很快就淘汰了网桥,它实质上是一个多接口网桥,而网桥是两接口。交换机的每个接口都能直接与一个主机或者另一个交换机相连,并且一般都工作在全双工方式。 -交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 收下之后,查找交换表得到主机 A 映射的接口为 1,因此就把帧发送给主机 A,同时交换机添加主机 B 到接口 3 的映射。 +交换机具有自学习能力,学习的是交换表的内容。交换表中存储着 MAC 地址到接口的映射。下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧。主机 B 收下之后,查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 3 的映射。 -

+

### 3. 虚拟局域网 虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息,例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。 -

+

## MAC 层* MAC 地址是 6 字节(48 位)的地址,用于唯一标识网络适配器(网卡),一台主机拥有多少个适配器就有多少个 MAC 地址,例如笔记本电脑普遍存在无线网络适配器和有线网络适配器。 -

+

+ +在 MAC 帧中: - **类型** :标记上层使用的协议; - - **数据** :长度在 46-1500 之间,如果太小则需要填充; - - **FCS** :帧检验序列,使用的是 CRC 检验方法; - - **前同步码** :只是为了计算 FCS 临时加入的,计算结束之后会丢弃。 -# 四、网络层 * +# 四、网络层* ## 网际协议 IP 概述 diff --git a/pics/5aa82b89-f266-44da-887d-18f31f01d8ef.png b/pics/5aa82b89-f266-44da-887d-18f31f01d8ef.png new file mode 100644 index 00000000..68310502 Binary files /dev/null and b/pics/5aa82b89-f266-44da-887d-18f31f01d8ef.png differ diff --git a/pics/69f16984-a66f-4288-82e4-79b4aa43e835.jpg b/pics/69f16984-a66f-4288-82e4-79b4aa43e835.jpg new file mode 100644 index 00000000..03b7f3da Binary files /dev/null and b/pics/69f16984-a66f-4288-82e4-79b4aa43e835.jpg differ diff --git a/pics/a6026bb4-3daf-439f-b1ec-a5a24e19d2fb.jpg b/pics/a6026bb4-3daf-439f-b1ec-a5a24e19d2fb.jpg new file mode 100644 index 00000000..4ff577e2 Binary files /dev/null and b/pics/a6026bb4-3daf-439f-b1ec-a5a24e19d2fb.jpg differ diff --git a/pics/c5022dd3-be22-4250-b9f6-38ae984a04d7.jpg b/pics/c5022dd3-be22-4250-b9f6-38ae984a04d7.jpg new file mode 100644 index 00000000..3eb79406 Binary files /dev/null and b/pics/c5022dd3-be22-4250-b9f6-38ae984a04d7.jpg differ diff --git a/pics/ddcf2327-8d84-425d-8535-121a94bcb88d.jpg b/pics/ddcf2327-8d84-425d-8535-121a94bcb88d.jpg new file mode 100644 index 00000000..2a95d92d Binary files /dev/null and b/pics/ddcf2327-8d84-425d-8535-121a94bcb88d.jpg differ diff --git a/pics/ea5f3efe-d5e6-499b-b278-9e898af61257.jpg b/pics/ea5f3efe-d5e6-499b-b278-9e898af61257.jpg new file mode 100644 index 00000000..a07e736d Binary files /dev/null and b/pics/ea5f3efe-d5e6-499b-b278-9e898af61257.jpg differ