计算机网络——自顶向下
2 应用层
2.1 应用层协议原理
2.1.1 网络应用程序体系结构
客户机/服务器:
例:web、FTP、e-main
对等P2P:
例:Gnurella、迅雷
混合模式
2.1.2 进程通信
同一主机中,使用IPC(操作系统定义)通信。
不同主机中,进城process通过交换报文messgae进行通信。
客户和服务器进程:客户机发起通信,服务器等待联系。P2P体系的应用进城具有双重特性。
进程的接口:套接字,是应用层与运输层之间的接口。
进程寻址:主机IP地址+进程端口号。
2.1.3 可供应用程序使用的传输服务
可靠数据传输:是否容忍丢失。
吞吐量:传送比特的速率。不同应用对带宽的限制。
定时:就是延时。
安全。
2.2 Web应用和HTTP协议
Web的应用层协议是HTTP,超文本传输协议。
2.2.1 HTTP概况
HTTP由客户机程序和服务器程序实现,通过交换HTTP报文进行会话。
Web页面由对象(HTML文件、JPG图片等)组成,每个对象由URL(( Uniform Resource Locator)进行寻址。
HTTP是一个无状态协议,因为服务器并不保存关于客户的任何信息。
2.2.2 非持续连接和持续连接
非持续连接(Version=1.0):TCP每发送一个对象后就关闭。
1.客户进程在80端口号(默认)发起向客户机www.swust.edu.cn的TCP连接;
2.客户经过它的套接字向服务器发送请求报文;
3.服务器经过它的套接字接收请求报文,检索出对象www.swust.edu.cn/someDept/pic.gif并封装到报文中,再通过套接字向客户发送响应报文;
4.服务器进程断开TCP连接;
5.客户收到响应报文,连接关闭;
6.重复上述步骤引用其他对象。
**总响应时间:**2个RTT+服务器传输时间。原因:TCP三次握手的前两个部分占用1个RTT,客户机结合握手的第三个部分向TCP发送一个HTTP请求报文,然后服务器响应,这用去了另一个RTT。
缺点:串行访问时间长;并行访问占用资源多(分配的TCP缓冲区和TCP变量)。
持续连接(Version=1.11):TCP为相同的客户-服务器间的请求和响应持续打开。
2.2.3 HTTP报文格式
请求报文:第一行为请求行(方法method+URL+HTTP版本),后继行为首部行,最后是实体。
method方法类型有:GET(请求访问,实体为空)、POST、HEAD、PUT、DELETE。
响应报文:第一行为状态行(HTTP版本+状态码+短语phrase),后继行为首部行,最后是实体。
常见的状态码和短语:
200 OK
//请求成功,请求的对象在这个报文后面
301 Moved Permanently
//请求的对象已转移,新的URL在响应报文的Location:首部行中指定
400 Bad Request
//请求报文不为服务器理解
404 Not Found
//请求的文档没有在该服务器上发现
505 HTTP Version Not Supported
2.2.4 用户与服务器的交互:Cookie
无状态的HTTP简化了服务器的设计,但不能保存用户信息。所以HTTP使用Cookie对用户进行跟踪。
cookie组件包括:HTTP响应报文中的cookie首部行;请求报文中的cookie首部行;用户主机保留的cookie文件;Web站点的后端数据库。
用户每请求一个Web页面,浏览器会从cookie文件中获取对这个网站的识别码,放到HTTP请求报文中的包括识别码的cookie首部行中。cookie首部用来标识一个用户。
2.2.5 Web缓存
Web缓存器:保存最近请求的web对象。浏览器向缓存发送所有HTTP请求,若对象在缓存中:缓存返回对象;否则缓存向起始服务器请求对象,然后向客户机返回对象。
好处:1)减小客户机请求的响应时间;2)减少机构内部网与因特网接入链路的通信量。
2.2.6 条件GET方法
为解决缓存中对象始终最新的问题,用条件GET方法:缓存器在HTTP请求中包含一个“If-modified-since: ”,指定缓存版本的日期,服务器判断如果缓存的拷贝是最新,就响应不包含对象:
“HTTP/1.0 304 Not Modified”,否则修改对象。
2.3 文件传输协议:FTP
特点:使用双TCP连接,一个控制连接(端口21),一个数据连接(端口20)。
控制连接用于在两台主机传输控制信息,如用户标识、口令、控制命令等,数据连接用于实际发送文件。
FTP使用独立的控制连接,我们称FTP是带外控制;而HTTP是带内控制。
2.4 电子邮件
电子邮件系统组成:用户代理(阅读器,如Outlook,Foxmail)、邮件服务器、简单邮件传输协议: SMTP。
从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,最后被分发到接收方的邮箱中。
2.4.1 SMTP
报文格式:7bitASCII。
端口号:25。
使用TCP连接。传输阶段有握手、传输、关闭。
2.4.4 邮件访问协议
POP3邮局协议
IMAP4因特网邮件访问协议
基于Web的电子邮件:用户代理就是浏览器,使用HTTP与其他远程邮箱进行通信。但邮件服务器和其他服务器间仍使用SMTP。
2.5 DNS
Domain Name Server域名服务器。
例:主机名为www.swust.edu.cn,IP地址(32 bit) 为220.166.52.4,DNS完成主机名到IP地址的解析。
2.5.1 分布式、等级制数据库
2.5.2两种查询方式
迭代查询:我的理解是,去去就回。
递归查询:我的理解是,先去后回。