《计算机网络》学习笔记---第六章---应用层
目录
一、应用层的基本概念
功能:
- 为应用进程提供通信规则
- 和运输层不同:运输层为应用进程之间提供端到端的通信服务
- 使不同主机中的多个应用进程之间能进行通信和协同工作
具体内容:精确定义通信规则
- 报文类型:如请求报文和响应报文
- 各报文类型的语法:如报文中各字段及其详细描述
- 字段的语义:字段中信息的含义
- 进程何时、如何发送报文,以及对报文进行响应的规则
二、域名系统DNS
出现原因:用户很难记住IP地址
运输层协议:UDP(减少开销)
过程:应用进程需要将一个域名解析为IP地址,就调用解析程序,将待解析的域名放在DNS请求报文中,用UDP用户数据报的方式发送到域名服务器,域名服务器查找域名后,把对应IP地址放在DNS回答报文中返回
- 注意:
- 主机向本地服务器的查询是递归查询
- 本地域名服务器向根域名服务器是迭代查询
- 为什么不全部使用递归查询:因为进行递归查询时,各域名服务器都需要等待最终结果的返回,而根域名服务器又少又重要,本地域名服务器无法解析就会找到根域名服务器,根域名服务器使用递归查询开销就会很大
功能:从域名解析出IP地址
mail.cctv.com
- mail:三级域名
- cctv:二级域名
- com:顶级域名
类型:
- 根域名服务器:
- 最高层次的域名服务器,知道所有顶级域名服务器的域名和IP地址
- 当本地域名服务器无法解析任意一个域名,首先求助根域名服务器
- 在许多情况下根域名服务器使告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询
- 顶级域名服务器:
- 负责该顶级域名服务器注册的所有二级域名
- 结果可能是最后结果或者是下一步应当找哪一个权限域名服务器
- 权限域名服务器:
- 负责一个区的域名服务器
- 当一个权限域名服务器不能给出最后的查询回答,就告诉DNS用户下一个应当找哪一个权限域名服务器
- 本地域名服务器:当一台主机发送DNS查询请求,都是先发送到本地域名服务器
高速缓存:
- 作用:提高DNS的查询效率,减轻根域名服务器的负荷和减少互联网上DNS查询报文数量
- 高速缓存存放最近查询过的域名以及从何处获得域名映射信息的记录
- 主机和DNS服务器都需要高速缓存
三、文件传送协议FTP
功能:减少或消除在不同操作系统下处理文件的不兼容性
运输层协议:TCP
过程:
- FTP客户和服务器建立控制连接和数据连接
- 控制连接在整个会话期间保持打开
- 服务器控制进程收到客户的文件传输请求后,建立数据连接,数据连接进行文件的传输,传输完成后关闭
四、万维网WWW
万维网是一个大规模的、联机式的信息储藏所。以客户服务器方式工作
- 万维网服务器:万维网文档所驻留的主机运行服务器程序
- 万维网客户程序:浏览器
- 客户程序向服务器程序发出请求,服务器程序向客户程序发送客户所需要的万维网文档
作用:让用户非常方便的从互联网上的一个站点访问另一个站点
四个问题:
- 怎样标志分布在整个互联网上的万维网文档:统一资源定位符URL
- 用什么样的协议来实现万维网上的各种链接:超文本传送协议HTTP
- 怎么使不同作者创作的不同风格的万维网文档,能在互联网上的各种主机中显示出来,同时使用户清楚地知道在什么地方存在链接:超文本标记语言HTML
- 怎么使用户能够很方便地找到所需的信息:搜索工具
统一资源定位符URL
格式:<协议>://<主机>:<端口>/<路径>
- 主机就是域名
- 不分大小写
- 举例:http://www.baidu.com/s?wd=1,省略了默认端口
功能:标志万维网上的各种文档,使每一个文档再整个互联网范围内具有唯一的标识符URL
超文本传输协议HTTP 《图解HTTP》学习记录
功能:定义了浏览器怎么向万维网服务器请求万维网文档,以及服务器怎么把文档传送给服务器
运输层协议:TCP
工作过程:
- 当用户在浏览器输入使用HTTP的URL,浏览器首先向DNS服务器解析域名,获取IP地址
- 浏览器根据IP地址和默认端口80,与服务器建立TCP连接
- 浏览器根据路径,发送HTTP请求报文,作为TCP连接第三个报文的数据发送到服务器
- 服务器对浏览器的请求做出响应,把对应的文档作为HTTP响应报文发送给浏览器
- 释放TCP连接
- 浏览器页面按HTML显示该文档
特点
- 基于客户请求-服务器响应模式
- 无连接(HTTP1.0):HTTP/1.0是无连接的,面向连接的TCP保证了可靠传输
- 持续连接(HTTP1.1):HTTP/1.1默认使用持续连接
- 两种工作方式:
- 流水线方式(默认):客户可以连续发送请求报文,服务器也连续发回响应报文
- 非流水线方式:客户收到前一个响应才可以发出下一个请求
- 两种工作方式:
- 无状态(可使用cookie解决):
- 服务器不记得访问过的客户
- 优点:使服务器支持大量的并发的HTTP请求(如果有状态,服务器要对每次的HTTP请求进行判断)
HTTP1.0缺点:客户每请求一个文档就要建立一次TCP连接
- TCP连接和接收到传输文档的响应报文需要2*RTT时间的开销
- 客户和服务器都要为每次的TCP连接分配缓存和变量,开销大
解决HTTP1.0缺点的方法:
- 并行TCP连接:浏览器打开多个TCP连接
- HTTP1.1的持续连接:服务器发回响应报文后,仍然在一段时间内保持这条连接
解决无状态的方法:使用cookie在服务器上存放用户的信息
- 当客户使用某个网站时,该网站的服务器为其生成一个唯一识别码,存进数据库,并在HTTP响应报文的首部添加Set-cookie字段和对应的值
- 客户收到响应报文后,就把Cookie存放在本地文件
- 客户之后每次发送的HTTP请求报文都会在首部的Cookie字段加上对应的识别码,服务器就可以跟踪客户在网站的活动
代理服务器:
- 又称万维网高速缓存
- 代替客户发出请求或者代替服务器返回响应
- 工作流程:
- 代理服务器将客户的请求和网站真正服务器的响应暂存在本地磁盘
- 当新的请求到达代理服务器,代理服务器发现该请求和暂存的请求相同,就返回暂存的响应
- 若不相同,代替客户和服务器进行TCP连接,发送HTTP请求报文
- 服务器返回响应报文后,代理服务器复制暂存到数据库,再返回客户
- 作用:
- 减少网络中线路的通信量
- 降低时延
- 可以在客户端工作,也可以在服务器端工作
超文本标记语言HTML
一种制作万维网页面的标准语言
功能:消除不同计算机之间信息的交流障碍
万维网的信息检索系统
两类
- 全文检索搜索引擎:通过用户输入的关键词在已经建立的索引数据库进行查询
- 分类目录搜索引擎:利用各网站向搜索引擎提交网站信息时填写的关键词和网站描述等信息,直接供用户点击查询
五、电子邮件
电子邮件系统构成
- 用户代理(客户端)
- 邮件服务器(既可以充当用户,也能充当服务器)
- 邮件发送协议(简单邮件传送协议SMTP)、邮件接受协议(邮局协议POP3、网际报文存取协议IMAP)
SMTP客户将邮件推给SMTP服务器,POP3客户把邮件从POP3服务器拉过来
为什么不能把邮件直接发送到收件人的计算机中?
- 答:因为邮件服务器需要24小时不间断的运行,不然可能会无法接受外面发来的邮件,而收件人的计算机一般不使用时就会关闭,就算开机中也不会一直运行着不太需要的邮件服务器程序
IMAP和POP3的区别
- IMAP是用户直接操作服务器,服务器会保存邮件;POP3是只要用户读取了服务器的邮件,服务器就删除邮件
- IMAP打开邮件时才会把邮件复制到本地客户端
基于万维网的电子邮件
- 出现原因:使用电子邮件需要安装用户代理软件
- 在浏览器和邮件服务器之间传送邮件,使用HTTP协议;邮件服务器之间传送文件,还是使用SMTP协议
六、动态主机配置协议DHCP
连接到互联网的计算机协议软件需要配置的项目
- IP地址
- 子网掩码
- 默认网关的IP地址
- 域名服务器的IP地址
出现原因:人工进行的协议配置很不方便,而且容易出错
功能:计算机加入到新网络中可以自动进行协议配置,不需要手工参与
过程:
- 建立连接
- DHCP客户广播发送DHCPDISCOVER报文(DHCP发现报文)
- DHCP服务器收到后,发送DHCPOFFER报文(DHCP提供报文)
- 多个DHCP服务器就会导致DHCP客户收到多个DCHP提供报文
- DHCP客户选择其中一个DHCP服务器,广播发送DHCPREQUEST报文(DHCP请求报文)
- DHCP服务器收到后发送DHCPACK报文(DHCK确认报文),DHCP客户可以使用这个IP地址了
- 租用期到期
- DHCP客户在租用期过了一半的时候,就要发送DHCP请求报文要求更新租用期
- DHCP服务器若同意,则发送DHCP确认报文,DHCP客户重新设置计时器;若不同意,发送DHCP否认报文,DHCP客户需要重新进行建立连接的3、4步
- 若DHCP服务器不响应DHCP请求报文,当租用期过去87.5%时,DHCP客户重新发送DHCP请求报文
- DHCP客户可以随时提前终止,只需要向DHCP服务器发送释放报文DHCPRELEASE
DHCP中继代理
- 出现原因:为每一个网络配置一台DHCP服务器会使DHCP服务器太多
- 主机广播发送DHCPDISCOVER报文,DHCP中继代理单播转发,等待DHCP服务器回答的DHCPOFFER报文,再进行转发