Update 计算机网络.md
This commit is contained in:
parent
1e86bc3801
commit
42d0c400de
@ -35,12 +35,12 @@
|
||||
<a href="#57-TCP-的可靠传输">5.7 TCP 的可靠传输</a><br/>
|
||||
<a href="#58-流量控制">5.8 流量控制</a><br/>
|
||||
<a href="#59-拥塞控制">5.9 拥塞控制</a><br/>
|
||||
<a href="#五应用层">五、应用层</a><br/>
|
||||
<a href="#51-域名系统--DNS">5.1 域名系统 DNS</a><br/>
|
||||
<a href="#52-文件传输协议-FTP">5.2 文件传输协议 FTP</a><br/>
|
||||
<a href="#53-远程终端协议-TELNET">5.3 远程终端协议 TELNET</a><br/>
|
||||
<a href="#54-万维网-WWW">5.4 万维网 WWW</a><br/>
|
||||
<a href="#55-动态主机配置协议-DHCP">5.5 动态主机配置协议 DHCP</a><br/>
|
||||
<a href="#六应用层">六、应用层</a><br/>
|
||||
<a href="#61-域名系统--DNS">6.1 域名系统 DNS</a><br/>
|
||||
<a href="#62-文件传输协议-FTP">6.2 文件传输协议 FTP</a><br/>
|
||||
<a href="#63-远程终端协议-TELNET">6.3 远程终端协议 TELNET</a><br/>
|
||||
<a href="#64-万维网-WWW">6.4 万维网 WWW</a><br/>
|
||||
<a href="#65-动态主机配置协议-DHCP">6.5 动态主机配置协议 DHCP</a><br/>
|
||||
</nav>
|
||||
|
||||
## 一、体系结构
|
||||
@ -192,7 +192,7 @@ MAC地址为 48 位的(6 个字节),通常表示为 12 个 16 进制数,
|
||||
|
||||
网际协议(Internet Protocol)是网络层中最重要的协议,也是 TCP\IP 两大核心协议之一,所有需要互联的计算机网络都需要遵循该协议,以便能够将不同网络在全世界范围内连接起来。该层传输的基本数据单元是 IP 数据报,其格式如下:
|
||||
|
||||
<div align="center"> <img src="../pictures/IP数据报格式.png"/> </div>
|
||||
<div align="center"> <img width="600px" src="../pictures/IP数据报格式.png"/> </div>
|
||||
|
||||
|
||||
各字段的含义如下:
|
||||
@ -236,7 +236,7 @@ IP 数据报中的源地址和目标地址均是 IP 地址,而数据链路层
|
||||
|
||||
IP 地址由 ICANN(The Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)进行分配,它是一个在全世界范围内唯一的 32 位标识符,最早的 IP 地址采用两级分类,只由 `网络号 + 主机号` 组成,分为以下五类:
|
||||
|
||||
<div align="center"> <img src="../pictures/IP地址分类.png"/> </div>
|
||||
<div align="center"> <img width="600px" src="../pictures/IP地址分类.png"/> </div>
|
||||
|
||||
|
||||
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地址 ::= {<网络前缀>,<主机号>}
|
||||
$$
|
||||
```
|
||||
并使用斜线记法进行表示:
|
||||
|
||||
<center>128.14.35.7 / 20 = <u>10000000 00001110 0010</u>0011 00000111</center>
|
||||
@ -392,7 +392,7 @@ RFC 1918 中指明了一些专用地址(Private Address),这些地址只
|
||||
|
||||
TCP 虽然是面向字节流的,但其传输的基本数据单元则是报文段。一个 TCP 报文段分为首部和数据两部分,TCP 首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项(n 为整数),具体格式如下:
|
||||
|
||||
<div align="center"> <img src="../pictures/TCP报文首部.jpg"/> </div>
|
||||
<div align="center"> <img width="600px" src="../pictures/TCP报文首部.jpg"/> </div>
|
||||
|
||||
|
||||
各字段的含义如下:
|
||||
@ -418,7 +418,7 @@ TCP 虽然是面向字节流的,但其传输的基本数据单元则是报文
|
||||
|
||||
TCP 建立连接的过程叫做握手,握手需要在客户和服务器之间交换三个 TCP 报文段,具体如下:
|
||||
|
||||
<div align="center"> <img src="../pictures/三次握手.png"/> </div>
|
||||
<div align="center"> <img width="600px" src="../pictures/三次握手.png"/> </div>
|
||||
|
||||
|
||||
1. 服务器进程 B 首先创建传输控制模块 TCB,然后进入 LISTEN(收听)状态,准备接受客户端的连接请求;
|
||||
@ -431,7 +431,7 @@ TCP 建立连接的过程叫做握手,握手需要在客户和服务器之间
|
||||
|
||||
数据传输结束后,通信的双方都可以释放连接,具体过程如下:
|
||||
|
||||
<div align="center"> <img src="../pictures/四次挥手.png"/> </div>
|
||||
<div align="center"> <img width="600px" src="../pictures/四次挥手.png"/> </div>
|
||||
|
||||
|
||||
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
|
||||
$$
|
||||
```
|
||||
|
||||
其中 RTT<sub>S</sub> 表示加权平均往返时间,计算方式如下:
|
||||
$$
|
||||
```
|
||||
新的 RTT_S = (1-α) × 旧的 RTT_S + α × 新的 RTT 值
|
||||
$$
|
||||
```
|
||||
|
||||
+ RTT (Round Trip Time)代表报文段的往返时间,它记录一个报文段从发出去到收到确认的时间长度;
|
||||
+ 第一次测量时, RTT<sub>S</sub> 的值就等于 RTT 的值,之后的 RTT<sub>S</sub> 则采用上面的公式进行计算;
|
||||
+ 其中 0 ≤ α<1 ,RFC 6298 推荐其值取 0.125 。
|
||||
|
||||
RTT<sub>D</sub> 是 RTT 偏差的加权平均值,计算方式如下:
|
||||
$$
|
||||
```
|
||||
新的 RTT_D = (1-β) × 旧的 RTT_D + β × |RTT_S - 新的 RTT 值|
|
||||
$$
|
||||
```
|
||||
|
||||
+ 第一次测量时,RTT<sub>D</sub> 的值就等于 RTT 值的一半,之后的 RTT<sub>D</sub> 则采用上面的公式进行计算;
|
||||
+ β 值是一个小于 1 的系数,RFC 6298 推荐其值取 0.25 。
|
||||
@ -547,9 +549,9 @@ $$
|
||||
<div align="center"> <img src="../pictures/拥塞窗口变化情况.png"/> </div>
|
||||
|
||||
|
||||
## 五、应用层
|
||||
## 六、应用层
|
||||
|
||||
### 5.1 域名系统 DNS
|
||||
### 6.1 域名系统 DNS
|
||||
|
||||
目前我们都是使用易于理解的域名来访问互联网应用,但传输层需要的则是 IP 地址,因此需要使用域名系统(DNS,Domain Name System)来进行域名与 IP 地址之间的转换 。
|
||||
|
||||
@ -563,7 +565,7 @@ $$
|
||||
<div align="center"> <img src="../pictures/互联网的域名空间.png"/> </div>
|
||||
|
||||
|
||||
### 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),它提供了一种即插即用联网的机制。此时你只需要采用默认的配置即可,如下所示:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user