diff --git a/notes/计算机网络.md b/notes/计算机网络.md index 7a18c2a..bbefd9f 100644 --- a/notes/计算机网络.md +++ b/notes/计算机网络.md @@ -35,12 +35,12 @@         5.7 TCP 的可靠传输
        5.8 流量控制
        5.9 拥塞控制
-五、应用层
-        5.1 域名系统 DNS
-        5.2 文件传输协议 FTP
-        5.3 远程终端协议 TELNET
-        5.4 万维网 WWW
-        5.5 动态主机配置协议 DHCP
+六、应用层
+        6.1 域名系统 DNS
+        6.2 文件传输协议 FTP
+        6.3 远程终端协议 TELNET
+        6.4 万维网 WWW
+        6.5 动态主机配置协议 DHCP
## 一、体系结构 @@ -192,7 +192,7 @@ MAC地址为 48 位的(6 个字节),通常表示为 12 个 16 进制数, 网际协议(Internet Protocol)是网络层中最重要的协议,也是 TCP\IP 两大核心协议之一,所有需要互联的计算机网络都需要遵循该协议,以便能够将不同网络在全世界范围内连接起来。该层传输的基本数据单元是 IP 数据报,其格式如下: -
+
各字段的含义如下: @@ -236,7 +236,7 @@ IP 数据报中的源地址和目标地址均是 IP 地址,而数据链路层 IP 地址由 ICANN(The Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)进行分配,它是一个在全世界范围内唯一的 32 位标识符,最早的 IP 地址采用两级分类,只由 `网络号 + 主机号` 组成,分为以下五类: -
+
A,B,C 三类是最常使用的类型,其类别位分别为 0,10,110 。需要注意的是另外并非所有 IP 地址都可用来分配,限制如下: @@ -291,9 +291,9 @@ IP 地址:192.168.10.198 二进制IP地址:11000000.10101000.000 ### 4.5 构成超网 无类别域间路由(CIDR,Classless Inter-Domain Routing)是一个给用户分配 IP 地址以及在互联网上有效地路由 IP 数据报的地址归类方法。它消除了传统的 A 类,B 类 和 C 类地址以及划分子网的概念,采用无分类的两级编址: -$$ +``` IP地址 ::= {<网络前缀>,<主机号>} -$$ +``` 并使用斜线记法进行表示:
128.14.35.7 / 20 = 10000000 00001110 00100011 00000111
@@ -392,7 +392,7 @@ RFC 1918 中指明了一些专用地址(Private Address),这些地址只 TCP 虽然是面向字节流的,但其传输的基本数据单元则是报文段。一个 TCP 报文段分为首部和数据两部分,TCP 首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项(n 为整数),具体格式如下: -
+
各字段的含义如下: @@ -418,7 +418,7 @@ TCP 虽然是面向字节流的,但其传输的基本数据单元则是报文 TCP 建立连接的过程叫做握手,握手需要在客户和服务器之间交换三个 TCP 报文段,具体如下: -
+
1. 服务器进程 B 首先创建传输控制模块 TCB,然后进入 LISTEN(收听)状态,准备接受客户端的连接请求; @@ -431,7 +431,7 @@ TCP 建立连接的过程叫做握手,握手需要在客户和服务器之间 数据传输结束后,通信的双方都可以释放连接,具体过程如下: -
+
1. 假设应用进程 A 先主动关闭连接,此时需要发送连接释放报文段:首部终止控制位 FIN 为 1,序号 `seq = u`,其中 u 等于前面传送过的数据的最后一个字节的序号加 1 。之后 A 进入 FIN-WAIT-1(终止等待 1)状态; @@ -494,22 +494,24 @@ RFC 793 建议 MSL 设置为 2 分钟,现在的网络环境已经有了质的 ### 5.7 TCP 的可靠传输 TCP 的滑动窗口以字节为单位,并采用以下方法来计算超时重传时间 RTO(Retransmission Time Out): -$$ + +``` RTO = RTT_S + 4 × RTT_D -$$ +``` + 其中 RTTS 表示加权平均往返时间,计算方式如下: -$$ +``` 新的 RTT_S = (1-α) × 旧的 RTT_S + α × 新的 RTT 值 -$$ +``` + RTT (Round Trip Time)代表报文段的往返时间,它记录一个报文段从发出去到收到确认的时间长度; + 第一次测量时, RTTS 的值就等于 RTT 的值,之后的 RTTS 则采用上面的公式进行计算; + 其中 0 ≤ α<1 ,RFC 6298 推荐其值取 0.125 。 RTTD 是 RTT 偏差的加权平均值,计算方式如下: -$$ +``` 新的 RTT_D = (1-β) × 旧的 RTT_D + β × |RTT_S - 新的 RTT 值| -$$ +``` + 第一次测量时,RTTD 的值就等于 RTT 值的一半,之后的 RTTD 则采用上面的公式进行计算; + β 值是一个小于 1 的系数,RFC 6298 推荐其值取 0.25 。 @@ -547,9 +549,9 @@ $$
-## 五、应用层 +## 六、应用层 -### 5.1 域名系统 DNS +### 6.1 域名系统 DNS 目前我们都是使用易于理解的域名来访问互联网应用,但传输层需要的则是 IP 地址,因此需要使用域名系统(DNS,Domain Name System)来进行域名与 IP 地址之间的转换 。 @@ -563,7 +565,7 @@ $$
-### 5.2 文件传输协议 FTP +### 6.2 文件传输协议 FTP 文件传输协议(FTP,File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议,允许客户指明文件的类型和格式,并获得文件的存储权限。FTP 的服务器进程由两大部分组成: @@ -572,20 +574,20 @@ $$ 因此一个 FTP 服务器进程可以同时为多个客户端进程提供服务。 -### 5.3 远程终端协议 TELNET +### 6.3 远程终端协议 TELNET Telnet 协议是 Internet 远程登录服务的标准协议和主要方式,它为用户提供了在本地计算机上访问远程主机的能力。Telnet 能将用户的击键传到远程主机,同时也能将远程主机的输出通过 TCP 连接返回到用户屏幕,这种服务是透明的,用户感觉键盘和显示器好像都是直接连在远程主机上,因此 Telnet 又称为终端仿真协议。 -### 5.4 万维网 WWW +### 6.4 万维网 WWW 万维网是一个分布式的超媒体系统,它是超文本系统的扩展。它包含以下重要概念: **1. 统一资源定位符 URL** 用于定位互联网上资源的位置和访问这些资源的方法,其格式如下: -$$ +``` <协议>://<主机>:<端口>/<路径> -$$ +``` **2. 超文本传送协议 HTTP** HTTP 协议定义了浏览器如何向万维网请求文档,以及服务器如何把文档传送给浏览器。 @@ -594,7 +596,7 @@ HTTP 协议定义了浏览器如何向万维网请求文档,以及服务器如 超文本标记语言 HTML 是一种标识性的语言,包括一系列标签,这些标签可以用于说明文字、图形、动画、声音、表格、链接等各种类型的资源,并能将网络文档格式进行统一。 -### 5.5 动态主机配置协议 DHCP +### 6.5 动态主机配置协议 DHCP 通常连接到互联网的计算机的协议软件都需要配置多个项目,如 IP 地址,子网掩码,默认路由器的 IP 地址以及域名服务器的 IP 地址等等,为了省去配置的麻烦,现在互联网普遍采用动态主机配置协议 DHCP(Dynamic Host Configuration Protocol),它提供了一种即插即用联网的机制。此时你只需要采用默认的配置即可,如下所示: