【笔记】《计算机网络 自顶向下方法》第二章 应用层
应用层协议原理
-
网络应用程序体系结构
- 客户-服务器体系结构
- P2P体系结构
-
进程通信
- 客户和服务器进程
网络间应用程序的通信实际上是进程的通信。两个不同端系统上的进程通过交换报文相互通信。进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文。
- 进程和计算机网络之间的接口
套接字是同一台主机内应用和运输层之间的接口。
- 进程寻址
应用程序开发者对运输层的控制仅限于:选择运输层协议, 也许能设定几个运输层参数,如最大缓存和最大报文段长度等。web服务默认80端口,邮件服务器默认25端口。
-
可供应用程序使用的运输服务
- 可靠数据传输
电子邮件/文件传输/远程主机访问/web文档/金融应用等。
- 吞吐量
带宽敏感的应用(多媒体相关的)。
- 定时
因特网电话/虚拟环境/电话会议/多方游戏.
- 安全性
多数情况。
-
因特网提供的运输服务
- TCP服务
- UDP服务
- 因特网运输协议所不提供的服务
-
应用层协议
常见的应用层协议:
HTTP(HyperText Transfer Protocol):超文本传输协议
FTP(File Transfer Protocol):文件传输协议
SMTP(Simple Mail Transfer Protocol):简单邮件传输协议
Telnet:远程终端访问 -
本书涉及的网络应用
Web和HTTP
-
HTTP概况
-
非持续连接和持续连接
HTTP的长连接和短连接
在报文头的Connection这个字段来体现,close 或 Keep-AliveHTTP请求的状态码:
200 OK 成功
301 对象被转移
400 请求不被服务器理解
404 被请求的对象不在服务器上
505 HTTP协议版本不被支持 -
HTTP报文格式
HTTP请求报文
GET /somedir/page.html HTTP1.1
Host:www.someschool.edu
Connection: close (要求服务器在发送完被请求的对象后就关闭这条连接)
User-agent:Mozilla/5.0
Accept-language:frHTTP响应报文
HTTP/1.1 200 OK
Connection:close
Date: Tue,18 Aug 2015 15:44:04 GMT
Server: Apache/2.2.3
Last-Modified:Tue,18 Aug 2015 15:11:03 GMT
Content-Length: 6812
Connect-Type:text/html -
用户与服务器的交互:cookie
cookie是客户端缓存,因为HTTP服务器是无状态的,因此使用cookie来保存用户的识别信息,该文件保存在客户端。
服务器响应时可以设置cookie信息:Set-cookie:1767
客户端访问时可以将cookie放到首部行:cookie:1767
HTTP 本身是无状态的协议,即服务端不会去关心某个请求是哪个客户发送过来的,它只负责接收、处理并响应请求
然而,由于一个站点通常是希望能够识别用户的,可能的原因有:
1、希望限制用户的访问
2、希望把内容与用户关联起来
-
cookie 技术有 4 个组件:
1、在 HTTP 响应报文中的一个 cookie 首部行(Set-cookie: )
2、在 HTTP 请求报文中的一个 cookie 首部行(cookie: )
3、在用户端系统中保留有一个 cookie 文件,并由用户的浏览器进行管理
4、位于 Web 站点后的一个后端数据库 -
web缓存
WEB缓存器(代理服务器)用来解决服务器高并发下响应速度慢的问题。
- 条件GET方法
文件传输协议:FTP
因特网中的电子邮件
邮件系统包括:用户代理/邮件服务器/SMTP(简单邮件传输协议)
SMTP的运输层采用TCP
- SMTP
- 与HTTP的对比
HTTP是一个拉协议,STMP是一个推协议
因为SMTP是推协议,不能主动的获取邮件.所以通过邮件访问协议来解决这个问题,如第三版的邮局协议(POP3)/因特网个邮件访问协议(IMAP)
SMTP用来将邮件从发送方的邮件服务器传送到接收方的邮件服务器:SMTP也用来将邮件从发送方的用户代理传送到发送方的邮件服务器.如POP3这样的邮件访问协议用来将邮件从接收方的邮件服务器传送到接收方的用户代理。
- 邮件报文格式和MIME
- 邮件访问协议
- POP3
- IMAP
- 基于Web的电子邮件
DNS:因特网的目录服务
- DNS提供的服务
一个由分层的DNS服务器实现的分布式数据库,一个使得主机能够查询分布式数据库的应用层协议。实现的是主机名到IP地址转换的目录服务。
- DNS工作机理概述
DNS协议运行在UDP之上,使用53端口。
有三种类型的DNS服务器: 顶级域DNS服务器, 权威DNS服务器, 还有一种是本地DNS服务器。
DNS查询:递归查询和迭代查询。实际应用中一般是:从请求到本地DNS服务器查询是递归的,其他的查询是迭代的。
- DNS记录和报文
P2P应用
- P2P文件分发
- 分布式散列表
TCP套接字编程
- UDP套接字编程
- TCP套接字编程