-
Notifications
You must be signed in to change notification settings - Fork 32
/
5.2、FTP、DNS、DHCP.md
237 lines (121 loc) · 8.25 KB
/
5.2、FTP、DNS、DHCP.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
# FTP
FTP文件传输
* 把文件从一台主机发送到另一台主机
* C/S结构
* 客户端软件
* 服务端软件
* FTP协议
FTP使用TCP协议,端口21/20
* 控制连接:用于传递控制命令
* 数据连接:用于传输文件
两种工作模式
* 主动模式
* 控制连接:客户端开启临时端口,服务端监听端口21
* 数据连接:客户端开启临时端口,并监听,通过Port 命令发送给服务端,服务端主动连接(端口20),发送数据
* 被动模式
* 控制连接:客户端开启临时端口,服务端监听端口21
* 数据连接:客户端开启临时端口,发送命令PASV给服务端,服务端开启临时端口并监听(Port 发送给客户端),等待客户端连接,发送数据
# DNS
Internet域名结构:树状层次结构
<img src="https://img-blog.csdnimg.cn/20210112203429585.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105141420919" width="45%" />
如何进行域名到IP地址的转换?
* 大量按层次组织的DNS服务器实现的分布式数据库
* 允许主机查询分布式数据库的应用层协议(进行域名和IP地址的转换)
层次结构
<img src="https://img-blog.csdnimg.cn/20210112203237248.png" alt="image-20210105141540115" width="40%" />
* 根DNS服务器:管理顶级DNS服务器的域名和IP地址 a.root-servers.net ~ m.root-servers.net
* http://root-servers.org
* 顶级DNS 服务器(TLD :Top Level Domain):
* 负责com, org, net,edu等
* 顶级域名和国家顶级域名,例如cn, uk, fr等
* 权限DNS服务器(Authoritative )管理该域或区内的域名和IP地址
* 在Internet上能被用域名公开访问的主机,其组织机构都要提供DNS记录
* 组织负责维护、服务提供商负责维护
* 本地DNS服务器(Local DNS )
* 不属于DNS服务器的层次结构
* 本地DNS服务器起着代理的作用,负责将DNS查询报
* 文发送到DNS层次结构中,将查找结果返回给主机
* 每个ISP(大学、系)都可以有一台或多台本地DNS
* 主机接入网络,可以获得本地DNS的地址(例如DHCP)
DNS资源记录
* 所有DNS服务器存储了资源记录(RR:Resource Record)
* RR format: (name , value , type , ttl)
* Type =A, Name:主机域名,Value:IP地址
* Type=NS, Name:主机域名, Value:该域权威域名解析服务器的主机域名
* Type=CNAME,Name:某一真实域名的别名,Value:真实域名
* Type=MX,Name:主机域名,Value:该域的邮件服务器名
如何注册域名
* 例子:你刚刚创建了一个公司 “Network Utopia”
* 在域名管理机构 (如Network Solutions) 注册域名 networkutopia.com
* 向域名管理机构提供你的权威域名解析服务器的名字和IP地址
* 域名管理机构向com顶级域名解析服务器中插入两条记录
```
(networkutopia.com, dns1.networkutopia.com,NS)
(dns1.networkutopia.com, 212.212.212.1, A)
```
* 在权威域名解析服务器中为 www.networkuptopia.com 加入Type A记录,为networkutopia.com加入Type MX记录
DNS协议
* 采用UDP(或者 TCP),端口号53
* 采用 UDP 是因为为了低延时,并且连接 DNS 服务器的主机特别多,所以使用 UDP 可以减轻 DNS 服务器负担
* 但是互联网最小链路的 MTU 为 576,那么 IP 分组的首部最大为 60字节,所以就剩下516字节,也就是说 UDP 报文不能超过 516 否则就可能会被分片,那么分片之后就很容易导致分片丢失,从而使整个 UDP 报文都失效,所以 DNS 服务器在返回查询结果的时候,如果报文大于 512 字节,那么就会改为使用 TCP 连接,以此来保证可靠。
* 定义了**查询**和**响应**两种报文
* 消息头部
* Identification: 16位查询编号,回复使用相同的编号
* flags:查询或回复、期望递归、递归可用、权威回答
<img src="https://img-blog.csdnimg.cn/20210112203308549.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105142624105" width="50%"/>
DNS解析
* 迭代查询:返回下一个需要查询的服务器地址
<img src="https://img-blog.csdnimg.cn/20210112203340331.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105143217352" width="20%" />
* 递归查询:返回查询结果,上层DNS服务器负载加重(只有本地DNS才支持递归)
<img src="https://img-blog.csdnimg.cn/20210112203404798.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105143159068" width="20%" />
DNS缓存
* 每收到一个DNS响应报文,DNS服务器缓存该映射信息(动态,有生命周期)
* 本地DNS服务器缓存TLD服务器的IP地址,因而很少去访问root服务器
DNS工作过程
* DNS通常由其他应用层程序使用,将域名解析为IP地址
* 例:
* 用户主机浏览器请求URL:www.some.edu/index.html
* 浏览器提取域名,运行DNS客户端程序,向本地DNS服务器发送包含主机域名的请求
* 本地DNS服务器返回请求的应答,包含对应域名的IP地址
* 浏览器向该IP地址的80端口发起TCP连接
# DHCP
一个主机如何获得IP地址
* “硬编码”:静态配置
* 动态主机配置协议 DHCP( Dynamic Host ConfigurationProtocol):
* "即插即用”、允许地址重用、支持在用地址续租、支持移动用户加入网络
动态主机配置协议(DHCP)
* 传输层采用UDP协议传输,端口号67/68
* 因为tcp协议是面向连接的,无法发送广播报文
* 从 DHCP 服务器动态获取:
* IP 地址
* 子网掩码
* **默认网关地址**
* **DNS 服务器名称与IP 地址**
工作过程
* 主机广播 “DHCP discover”(发现报文)
* 主机广播发送DHCP服务器发现报文:目的IP地址: 255.255.255.255,源地址:0.0.0.0
* DHCP服务器利用 “DHCP offer” (提供报文) 进行响应
* DHCP服务器发送DHCP提供报文,报文包括:推荐IP地址、掩码、IP地址租用期
* 主机请求IP地址: “DHCP request” (请求报文)
* 主机广播发送DHCP请求报文,回应配置参数(一个或多个DHCP)
* DHCP服务器分配IP地址: “DHCP ack” (确认报文)
* DHCP服务器发送DHCP确认报文,确认对主机的参数配置
<img src="https://img-blog.csdnimg.cn/20210112203132780.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210103204759282" width="40%" />
DHCP:中继代理
* 在每个物理网络配置一台DHCP服务器,开销较大
* 路由器不转发广播包
* 中继代理:通常是一台路由器,中继代理知道用于该网络的DHCP服务器地址,将主机的DHCP消息进行转发
(单播,在DHCP消息中保存中继代理接口的IP地址)
关于DHCP
* 地址租用期:IP地址有效的时间段,到期之前,DHCP允许主机更新对IP地址的租用
* DHCP除返回IP地址外,还包括:子网掩码、默认网关、DNS服务器名字及IP地址…….
* DHCP,即插即用协议,具有将主机自动接入网络的能力,在移动应用方面存在缺陷
**小结**
应用层协议
<img src="https://img-blog.csdnimg.cn/20210112203156177.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105153309109" width="40%"/>
如何选择传输层协议:根据应用程序的需求
* 可靠传输
* 吞吐量
* 时延
* 安全性
<img src="https://img-blog.csdnimg.cn/20210112203214584.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDYwNw==,size_16,color_FFFFFF,t_70" alt="image-20210105153528901" width="30%" />