本章纲要
- 网络应用模型
-
- 客户服务模型
-
- P2P模型
- 域名系统DNS
-
- 层次域名空间
-
- 域名服务器
-
- 域名解析空间
- 文件传送协议FTP
-
- FTP协议的工作原理
-
- 控制连接与数据连接
- 电子邮件EMAIL
-
- 电子邮件系统的组成部分
-
- 电子邮件格式和MIME
-
- SMTP协议与POP3协议
- 万维网WWW
-
- WWW的概念和组成
-
- HTTP协议
关键在于搞好几个典型的应用层协议:。
1. 网络应用模型
1.1 CS模型(客户/服务模型)
服务器是等待接受请求,客户端是主动发出服务请求。
Web,FTP,远程登陆,电子邮件,这些都是典型的CS模型。
1.2 P2P模型
和CS不同,P2P 模型里面每个节点是对等的。本质上,每一个节点即作为服务端也作为客户端。典型的应用:电驴,迅雷,BT种子。
缺点:占用的资源非常多,损耗硬盘
2. DNS系统
全名:域名系统(Domain name system)
作用是把域名解析为IP地址。这个协议运行在UDP53端口。
DNS分为:
- 层次域名空间
- 域名服务器
- 解析器
2.1 层次域名空间
www.baidu.com
-
www:三级域名
-
baidu:二级域名
-
com:顶级域名
-
英文不分大小写,只能用-,其他标点不能用
-
级别低的域名写左边
顶级域名一般表示国家:cn,hk,uk
- com:公司
- net:网络服务机构
- gov:政府部门
2.2 域名服务器
域名系统被设计成一个分布式的数据库系统,主要用四种域名服务器。
根域名服务器:就是任何一个DNS服务器不能解析的域名,都会向这个根域名服务器请求解析,但他解析的时候并不会直接解析为IP地址,而是委托告诉请求者他应该去向哪一个域名解析服务器去请求。
全世界有13个根域名服务器。
顶级域名服务器:负责收录注册的所有二级域名
授权域名服务器:每一台主机都必须要在授权域名服务器上等级。他总是能把主机名转换为主机的IP地址
本地域名服务器:假如我们自己需要用自己自定义的本地域名,我们就要一台本地的DNS服务器。
我们在配置本地连接的时候问DNS域名服务器的时候就是他。
2.3 域名解析过程
域名解析就是把IP地址映射成域名,或者反之。
递归查询:
如果某台主机询问的本地域名服务器不知道查询域名的IP,那么这台本地的域名服务器就会向根域名服务器去请求,这样层层下去。
迭代查询:
当询问的DNS服务器不知道你问的域名的IP的时候,他就会告诉你应该向谁继续问
例子:
假如我想知道:www.abc.com的IP地址:
- 客户机向本地的域名服务器发出DNS请求报文
- 本地DNS服务器查询记录,发现没有,他就向根域名服务器发出请求
- 根域名接收到之后,知道他是com域的,那么就会把dns.com的服务器的IP返回给本地域名服务器
- 本地域名服务器再向dns.com发出解析请求
- dns.com服务器判断这个域名属于abc.com域的,然后把dns.abc.com的IP返回给本地域名服务器
- 本地域名服务器继续问:dns.abc.com,然后这个域名服务器查找之后就会把www.abc.com的IP返回给本地域名服务器,本地域名服务器把他保存至缓存,同时返回给客户机
需要注意的是DNS缓存不是永久的。
3. 文件传输协议 FTP
FTP采用CS网络模型,使用TCP提供可靠的传输服务。由两个部分组成:
- 主进程:负责接收新的请求
- 从属进程:负责处理单个请求
【1】打开端口21
【2】等待客户发连接请求
【3】启动从属进程处理请求,主进程和从属进程并发执行。
服务器监听21端口的请求,建立在这个端口的连接,我们叫做控制连接。
FTP使用的是分离的控制连接,因此我们就管FTP的控制信息是带外传送的,使用FTP的时候如果需要修改服务器上的文件,我们需要把这个文件发到本地主机修改完再发回去。
4. 电子邮件
电子邮件是一种异步通信的方式。组成一个电子邮件系统包括:用户代理,邮件服务器,电邮协议
例子:
- 发送人调用用户代理发送邮件(用SMTP协议)到发送方的邮件服务器
- 发送方邮件服务器将邮件放入缓存队列
- 并且和接收方的邮件服务器建立TCP连接
- 接收方使用POP3或者IMAP将自己的邮件从接收方邮件服务器的邮箱取回
SMTP协议:简单邮件传输协议
- 连接建立:SMTP客户每隔一段时间就会对邮件缓存扫描一次,假如有邮件,就会SMTP的25端口与接收方的SMTP服务器建立TCP连接,接收方发出202服务就绪代号之后SMTP客户就会向SMTP服务器发出hello命令并且附上发送方的主机名。
- 邮件发送:使用RCPT命令查找接收人,只有当接收系统做好接收准备之后才发送邮件
- 连接释放:发送QUIT命令释放连接
由于SMTP只能发送ASCII字符,因此产生了:MIME协议。
POP3协议:
POP再传输层使用TCP协议,端口号是110。包括了:【下载保留,下载并删除】两种模式
IMAP协议是POP的改版,但目前未完全普及。
5. 万维网
5.1 HTTP
每个万维网的节点都有一个服务器进程不断监听80端口,监听到请求之后就会和浏览器建立连接,TCP连接建立之后,浏览器就会向服务器发送HTTP请求,呈现出Web页面之后,TCP连接释放。
HTTP协议是无状态的,因此仅仅使用HTTP请求服务器是无法知道你访问过他多少次的,就是他只知道当前,不知道过去。
所以,现实我们会使用Cookie来记录我们
HTTP本身是无连接的,虽然他用TCP传输,但他再交换HTTP报文的时候是不需要建立HTTP连接的。(有点绕,意思就是你在传输层建立的连接,在应用层就不用再连接了)
非持久连接:
(HTTP/1.1)可以使用持久连接:
HTTP报文结构: