6.1 网络应用模型
应用层对应用程序的通信提供服务。
应用层的功能:
- 文件传输、访问和管理
- 电子邮件
- 虚拟终端
- 查询服务和远程作业登录
应用层的重要协议:
- FTP
- SMTP、POP3
- HTTP
- DNS
网络应用模型分为客户/服务器(Client/Server)模型和P2P(Peer-to-Peer)模型
6.1.1 客户/服务器(C/S)模型
服务器:提供计算服务的设备。
- 永久提供服务
- 永久性访问地址/域名
客户机:请求计算服务的主机。
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP地址
- 不与其他客户机直接通信
应用:Web,文件传输FTP,远程登录,电子邮件
6.1.2 P2P模型
P2P模型的思想是整个网络中的传输内容不再保存在中心服务器上,每个结点都同时具有下载、上传的功能,其权力和义务都是大体对等的
- 不存在永远在线的服务器
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
- 每个主机既可以提供服务,也可以请求服务
- 可扩展性好
- 网络健壮性强
6.2 域名解析系统DNS
DNS服务的作用:将域名解析成IP地址。
6.2.1 层次域名空间
因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名(Domain Name)。域(Domain)是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。每个域名都由标号序列组成,而各标号之间用点(“.”)隔开。一个典型的例子如图6.3所示,它是王道论坛用于提供WWW服务的计算机( web服务器)的域名,它由三个标号组成,其中标号com是顶级域名,标号cs.kaoyan是二级域名,标号www是三级域名。
6.2.2 域名服务器
- 根域名服务器:根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的.P地址。根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。
- 顶级域名服务器:这些域名服务器负贵管理在该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址
- 权限域名服务器:每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个授权域名服务器。
- 本地域名服务器::当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
6.2.3 域名解析过程
6.3 文件传输协议FTP
文件传送协议FTP(File Transfer Protocol)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。FTP使用TCP实现可靠传输。
FTP是基于客户/服务器(C/S)的协议。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP 协议提供服务,进行文件传送的计算机就是FTP 服务器。连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。
- 控制连接始终保持
- 数据连接保持一会
- 是否使用TCP 20端口建立数据连接与传输模式有关
- 主动方式使用TCP 20端口
- 被动方式由服务器和客户端自行协商决定(端口>1024)
FTP传输模式
- 文本模式:ASCII模式,以文本序列传输数据;
- 二进制模式:Binary模式,以二进制序列传输数据。
6.4 电子邮件
6.4.1 电子邮件的信息格式
6.4.2 电子邮件的组成结构
电子邮件收发过程如下:
- 发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用SMTP把邮件传送给发送端邮件服务器。
- 发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
- 运行在发送端邮件服务器的SMTP客户进程,发现邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起建立TCP连接。
- TCP连接建立后,SMTP客户进程开始向远程SMTP服务器进程发送邮件。当所有待发送邮件发完后,SMTP就关闭所建立的TCP连接。
- 运行在接收端邮件服务器中的 SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱,等待收信人在方便时进行读取。
- 收信人打算收信时,调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回(如果邮箱中有来信的话)。
6.4.3 简单邮件传送协议SMTP
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。建立在TCP连接之上,端口号为25,基于C/S模型负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
SMPT分为三个阶段
- 连接建立
SMTP服务器若有能力接收邮件,回答“250 OK”,否则,回答“421 Service not available”
- 邮件发送
建立连接后,就可以开始传送邮件,邮件的传送从MAIL命令开始,MAIL命令后有发件人的地址。每发送一个PCRT命令,都应该有响应的信息从SMPT服务器返回,如250 OK或500 No such user here(无此用户)
- 连接释放
邮件发完,SMTP客户发送QUIT命令,SMTP服务器返回“221”,表示同意释放TCP连接。
6.4.4 多用途国际邮件扩充(MIME)
SMTP的缺点:
- SMTP不能传送可执行文件或者其他二进制对象。
- SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。
- SMTP服务器会拒绝超过一定长度的邮件。
通过MIME可以使电子邮件系统可以支持声音、图像、视频、多种国家语言等等。使得传输内容丰富多彩
6.4.5 POP3和IMAP
邮局协议POP3基于TCP连接,端口号为110应用C/S模型
POP3工作方式有两种
- 下载并保留(在服务器)
- 下载并删除
网际报文存取协议IMAP
IMAP协议比POP协议复杂。当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)。
6.5 万维网(WWW)
6.5.1 WWW的概念与组成结构
万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
统一资源定位符URL唯一标识资源(文字、视频、音频…)用户通过点击超链接(http://www.baidu.com)获取资源,这些资源通过超文本传输协议(HTTP)传送给使用者。
万维网以客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。
6.5.2 超文本传输协议HTTP
6.5.2.1 HTTP的操作过程
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
具体过程:
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
6.5.2.2 HTTP特点
HTTP协议是无状态的。但是在实际工作中,一些万维网站点常常希望能够识别用户。HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)。
Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如“123456”)的访问记录。提供个性化服务
HTTP的连接方式:
- 持久连接Keep-alive
- 非流水线
- 流水线
- 非持久连接Close
6.5.2.3 HTTP的报文结构
HTTP是面向文本的,因此报文中的每个字段都是一些ASCII码串,并且每个字段的长度都是不确定的。有两类HTTP报文:
- 请求报文:从客户向服务器发送的请求报文
- 响应报文:从服务器到客户的回答
- 开始行:区分是请求报文还是响应报文。
- 首部行:用来说明浏览器、服务器或报文主体的一些信息
- 实体主体:在请求报文中一般不用这个字段、响应报文也可能没用这个字段
状态码:
- 1xx表示通知信息的,如请求收到了或正在处理。
- 2xx表示成功,如接受或知道了。
- 3xx表示重定向,如要完成请求还必须采取进一步的行动。
- 4xx表示客户的差错,如请求中有错误的语法或不能完成。
- 5xx表示服务器的差错,如服务器失效无法完成请求。