(一)网络 App、DNS、FTP
1. 网络应用模型
1.1. 客户—服务器模式(C/S )
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程;
客户服务器方式所描述的是进程之间服务和被服务的关系;
客户是服务的请求方,服务器是服务的提供方;
1.2. 对等模式(P2P,peer-to-peer)
指两个主机在通信时,不区分服务请求方和服务提供方;
从本质上看仍然是使用客户—服务器模式,只是对等连接中的每一个主机既是客户又同时是服务器;
2. DNS 系统
2.1. 概念
DNS 系统:域名到 ip 地址的解析系统;
域名:即主机的名字;
因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS;
DNS 解析是由若干个域名服务器程序完成的;
域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器;
2.2. 层次域名空间
因特网采用了层次树状结构的命名方法,任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名;
结构:由标号序列构成,各标号之间由点号
.隔开;域名的级数从前到后依次提高,最后一个标号序列为顶级域名(三级
.二级.顶级);例:
www.pku.edu.cn,www为主机名,pku三级域名,edu二级域名,cn顶级域名;
域名只是个逻辑概念,并不代表计算机所在的物理地点;
域名 v.s. ip 地址
域名:使用字符串,长度可变串,便于人来使用和记忆;
ip 地址:32 位二进制数,定长,方便机器处理;
因特网的域名空间

- 根域名:为了组织为树结构而假想的根,实际上并不存在;
2.3. 域名服务器
区:一个域名服务器所负责管辖的(或有权限的)范围叫做区(zone) ;

- 各单位根据具体情况来划分自已管辖范围的区,但在一个区中的所有节点必须是能够连通的;
树形结构的 DNS 服务器

四种类型:1)根域名服务器,2)顶级域名服务器,3)权限域名服务器,4)本地域名服务器;
根域名服务器
最重要的域名服务器;
所有的根域名服务器都存有所有顶级域名服务器的地址;
任何本地域名服务器,在遇到自身无法解析的域名时,会首先查询根域名服务器(树状查询);
顶级域名服务器
负责管理在该服务器注册的所有二级域名;
收到 DNS 查询请求后,若有对应 ip 地址则直接给出,否则给出下一级的域名服务器地址;
权限域名服务器
负责管理某个区的域名;
收到 DNS 查询请求后,若自身不能给出,则同样给出下一个权限域名服务器的地址;
本地域名服务器(默认域名服务器)
DHCP 获取域名服务器地址时,为本地域名服务器的地址;
直接处理主机的 DNS 查询请求;
实际操作中,权限域名服务器和本地域名服务器一般是等价的;
国内公共的域名服务器:114.114.114.114;
域名服务的可靠性(备份)
DNS 域名服务器都把数据备份到多个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助服务器;
当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断;
备份操作
定期备份:主服务器定期进行备份;
数据一致性:只有主服务器能更新域名数据,辅助服务器不能更新;
2.4. 域名解析
特点:一般是递归查询;
过程
1)本地域名服务器首先响应主机的查询,若不能给出 ip 地址,则以 DNS 客户的身份,向其他根域名服器发送查询请求;
2)迭代查询:根域名服务器收到请求,要么给出 ip 地址,要么给出下一步应该查询的域名服务器地址,由本地服务器继续查询;

3)递归查询(较少用):和 2 类似,但是继续查询的操作由根服务器往下推进,本地域名服务器只需一次请求和一次应答;

3. FTP
3.1. 概念
文件传送协议FTP(File Transfer Protocol):是因特网上使用得最广泛的文件传送协议;
FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限;
FTP 隐藏了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件;
3.2. 工作原理
特点:1)只提供一些基本的文件传输服务,2)使用 TCP 提供可靠服务;
主要功能:减少或消除在不同操作系统下处理文件的不兼容性;
工作模式:客户—服务器模式(C/S),一个 FTP 服务器进程可以服务多个 FTP 客户进程;
FTP 使用的端口号
端口 21:服务器端用于接收客户端 FTP 请求;
端口 20:服务器端用于数据传输;
FTP 服务器进程
1 个主进程:接收新的请求;
若干从属进程:处理单个请求;
FTP 服务器主进程的工作过程
1)打开端口 21,监听客户连接;
2)若有请求,启动从属进程,处理 FTP 请求;
从属进程处理请求完毕后即终止;
主进程和从属进程为并发执行;
3.3. 控制连接和数据连接

控制连接(TCP)
整个 FTP 会话期间一直保持打开;
负责将客户的文件传输请求送给服务器端的控制进程;
不传输文件;
数据连接(TCP)
连接客户和服务器的数据传输进程;
实际负责文件传输;
文件传输完毕后即终止;