第六章 应用层


(命题重点)
1.域名解析过程:递归查询,递归与迭代相结合查询
2.FTP的工作原理,控制连接与数据连接
3.电子邮件系统的组成,邮件收发过程,邮件发送协议与读取协议
4.HTTP协议的特点,HTTP报文的结构与分析

知识框架:
在这里插入图片描述

6.1 网络应用模型

6.1.1客户服务器模式

在用户/服务器(Client/Srever,C/S)模型中,有一个总打开的主机称为服务器,它服务许多来自其他称为客户机的主机请求。工作流程:

  1. 服务器处于接受请求状态
  2. 客户机发出服务请求,并等待接受结果
  3. 服务器收到请求后,分析请求,并进行必要处理,得到结果并发送给客户机

注意:客户必须知道服务器程序地址,服务器程序不需要知道客户程序地址。 常见使用C/S模型的应用包含Web,FTP,远程登陆and电子邮件
主要特征:
(1) 客户是服务请求方,服务器是服务供应方:
(2) 客户机互相之间不直接通信
(3)可扩展性不佳。受限服务器硬件和网络带宽,服务器支持客户机数量有限

6.1.2 P2P模型(对等式)

特点:P2P模型的交互形态,每个节点既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务。比如PPlive,电驴
理解:
P2P是网络结点间采用对等的方式直接交换信息的工作模式,对等结点间具有直接通信能力,是一种动态的网络逻辑,P2P实现技术则是为了实现对等结点之间的功能所需要设计的软件、协议。
与C/S模型相比,优点在于:
(1)减轻服务器压力
(2)多个客户机之间可以直接共享文档
(3)可扩展性好
(4)网络健壮性好,单个节点失效不会影响其他部分结点
缺点:在获取服务的同时,还要给其他节点提供服务,因此比较占内存,影响整机速度。例如,经常进行P2P下载还会对硬盘有较大损伤

6.2 DNS系统

DNS系统采用C/S模型,其协议运行在UDP上,使用53号端口
提供服务:
(1)主机名到IP地址的转换(主要)
(2)主机别名:有着复杂主机名的主机可以拥有一个或多个别名,应用程序可以调用DNS来获得主机别名对应的规范主机名以及主机的IP地址
(3)邮件服务器别名:qq.com与foxmail.com,DNS可以解析邮件服务器别名获得规范名和IP地址
(4)负载分配:繁忙的站点被冗余分布在多台服务器上,这些服务器有不同IP地址,IP地址集合对应于一个规范主机名,当客户机通过主机名获取IP地址时,DNS服务器用包含全部这些地址的报文进行回答,但在每个回答中选择这些地址排放的顺序,从而将负载分配到不同服务器
概念上可以分3层:层次域名空间、域名服务器和解析器

6.2.1 层次域名空间

6.2.2 域名服务器

(1).根域名服务器
(2)顶级域名服务器
(3)授权域名服务器
(4)本地域名服务器
DNS域名服务器的层次机构如图:
在这里插入图片描述

6.2.3 域名解析器

域名解析是指把域名映射为IP地址或把IP地址映射为域名的过程。前者为正向解析,后者为反向解析。当客户端需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报方式本地域名服务器。
域名解析采用:递归查询和递归与迭代相结合的查询方式。递归由于给根域名服务器造成负载过大,几乎不使用。
在这里插入图片描述
例如获取域名为y.abc.com主机的ip,解析过程

  1. 客户机向本地域名服务器发出DNS请求报文。
  2. 本地域名服务器收到请求,查询本地缓存,假设没有记录,则以DNS客户的身份向根域名服务器发出解析请求。
  3. 根域名服务器收到请求,判断该域名属于 .com 域,向对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。
  4. 本地域名服务器向顶级域名服务器dns.com发出解析请求。
  5. 顶级域名服务器dns.com收到请求后,判断该域名属于abc.com域,故将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器。
  6. 本地域名服务器向授权域名服务器dns.abc.com发起解析请求报文
  7. 授权域名服务器dns.abc.com收到请求后,将查询结构返回给本地域名服务器。
  8. 本地域名服务器将查询结果保存到本地缓存,同时返回给客户机。

一些题型:
1)基本概念题
1:域名与( )具有一一对应关系。
A IP地址 B MAC地址 C 主机 D 以上都不是
解答:选D,如果一个主机通过两个网卡连接到两个网络(如,服务器双线接入),就有两个IP;每个网卡对应一个MAC地址,显然这两个IP可以映射到同一个域名上;多个主机可以映射到同一个域名上(如,负载均衡);一个主机也可以映射到多个域名上(如,虚拟机)。
2:如果本地域名服务器无缓存,当采用递归方法解析另一网络某主机域名时,用户主机和本地域名服务器发送的域名请求条数分别是(1,1)
解答:当采用递归查询,如果所查询的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发送请求查询报文,而不是让该主机进行下一步查询。
3:假设采用迭代方式进行域名解析。当主机访问域名为www.abc.xyz.com的网站时,本地域名服务器在完成该域名解析过程中,可能发出DNS查询的最少与最多次数(1,4)
解答:最少:本地DNS高速缓存存有该域名的DNS信息时,则不需要查询任何域名服务器,为0次;最多:依次迭代向本地域名服务器、根域名服务器(.com)、顶级域名服务器(xyz.com)、权限域名服务器(abc.xyz.com)发出DNS请求,为4次。
2)简答题
1:一台DNS名称的机器可以有多个IP地址ma?why?
可以,IP地址由网络号和主机号两部分组成。如果一台机器有两个以太网卡,它可以同时连接到两个不同的网络上(网络号必须不同,否则冲突);如果这样,它需要两个IP地址。
2:DNS使用传输层的UDP而不是TCP,若一个DNS分组丢失,没有自动回复,会引起什么问题?
DNS使用传输层的UDP而不是TCP,因为它不需要使用TCP在发生错误传输时执行的自动重传功能。实际上,对于DNS服务器的访问,多次DNS请求都能返回相同的结果,即多次与一次的效是一样的。因此DNS操作可以重复执行。当一个进程做一个DNS请求时,它启动一个定时器。如果定时器计满而未收到回复,它就再请求一次,这次不会有坏处。

6.3 文件传输协议FTP

6.3.1 FTP的工作原理

FTP(File Transfer Protocol)提供交互式访问允许客户指明文件的类型与格式,并允许文件具有存取权限。屏蔽了计算机系统的细节,适用于异构网络的任意计算机间传送文件。
FTP提供功能:
(1) 提供不同主机系统之间的文件传输能力
(2) 以用户权限管理的方式提供用户对远程FTP的服务器上的文件管理能力
(3) 以匿名FTP的方式提供公用文件共享能力

FTP采用C/S工作方式,使用TCP可靠传输服务。一个服务器进程可以同时为多个客户进程提供服务。FTP服务器进程组成:
(1)主进程,负责接收新的请求
(2)若干从进程,负责处理单个请求。
工作步骤如下:

  1. 打开21端口(控制端口),使客户进程能够连接
  2. 等待连接请求,listen监听 ,等待客户进程发连接请求。
  3. 处理请求,启动从属进程处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
  4. 回到等待状态,继续接受其他客户进程的请求。

6.3.2 控制连接与数据连接

FTP使用两个并行的TCP连接来传输文件:

(1)控制连接(21号端口,持久):传输控制信息,如用户标识、口令、改变远程目录命令、文件获取上传的命令
(2)数据连接(20号端口,非持久):传输实际文件
在这里插入图片描述
FTP的主要工作过程:
(1)在进行文件传输时,FTP客户发出的传送请求通过控制连接发送给服务器的控制进程,,控制连接在会话期间一直保持打开,但是控制连接不用来传输文件。
(2)服务器端的控制进程在收到FTP客户发送来的文件传输请求后就创建数据传送和数据连接,数据连接用来连接客户端到服务器端的数据传送进程。
(3)数据传送进程实际完成对文件的传送,在传送完毕后关闭“数据传送连接”,并运行结束。
问题:
1.一台计算机从FTP服务器下载文件时,在该FTP服务器对数据进行封装的5个步骤是:
数据->数据段->数据报->数据帧->比特。(应用层->传输层->网络层->数据链路层->物理层)

6.4电子邮件

6.4.1 电子邮件系统的组成

有三个最主要的组成部件:用户代理邮件服务器电子邮件协议,如SMTP、POP3(或IMAP)等。
在这里插入图片描述
用户代理:用户与电子邮件的接口,用户代理使用户能够通过一个很好的接口来发送和接受邮件,通常是一个运行在PC上的程序,如Foxmail。
邮件服务器:组成电子邮件系统的核心,功能是发送和接受邮件,同时向发信人报告邮件传送情况(已交付、被拒绝、丢失等)
注意:邮件服务器采用C/S模型,但它能同时充当客户机和服务器。例如,当邮件服务器A向邮件服务器B发送邮件,A作为SMTP客户,而B是SMTP服务器;反之,当B向A发送邮件,B就是SMTP客户,而A就是SMTP服务器。
邮件发送协议和读取协议:邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发生邮件,通常是SMTP;邮件读取协议用于用户代理从邮件服务器读取邮件,如POP3.
注意:SMTP采用”“(push)的通信协议,即用户代理向邮件服务器发送邮件以及邮件服务器之间的发送邮件时,SMTP客户端主动将邮件“推”到SMTP服务器端。而POP3采用的是“拉”(pull)的通信方式,当用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱的邮件。
下面简单说明电子邮件收发过程:

  1. 发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用SMTP协议把邮件传送给发送方邮件服务器。
  2. 发送方邮件服务器将邮件放入邮件缓存队列,等待发送。
  3. 运行在发送方邮件服务器的SMTP客户进程,发现邮件缓存队列有待发送邮件,就向运行在接收方邮件服务器的SMTP服务器进程发起建立TCP连接
  4. TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器进程发送邮件。当所有的待发送邮件发送完了,SMTP就关闭所建立的TCP连接。
  5. 运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。
  6. 收信人在打算收信时,调用用户代理,使用POP3(或 IMAP)协议将自己的邮件从接受方邮件服务器的用户邮箱中取回(如果有来信)。

使用的应用层协议是SMTP、SMTP、POP3.

6.4.2 电子邮件格式与MIME

1.电子邮件格式

一个电子邮件分为信封和内容两大部分。邮件内容分为首部和主体两部分。
邮件内容的首部包含一些首部行,每个首部行由一个关键字跟冒号再跟后跟值组成。关键字有To和Subject
To:必须关键字,规格:收件人邮箱名@邮件所在主机域名;
Subject:可选关键字。
在这里插入图片描述

2.MIME

普通的邮件报文主体为ASCII编码的数据,报文首部适合于发送普通的ASCII文本,但是不能充分满足多媒体报文或携带非ASCII文本格式(非英文字符)的报文需求。需要额外的首部行提供对发送这些文件的支持。MIME与SMTP关系如下:

在这里插入图片描述
MIME中主要包含3部分内容:
(1)5个新的邮件首部字段,包含MIME版本、内容描述、内容标识、内容传送编码和内容类型。
(2)定义了很多邮件格式,对多媒体电子邮件格式进行了标准化。
(3)定义了传送编码,可对任意内容格式进行转换,而不会被邮件系统拦截。

6.4.3 SMTP和POP3协议

1.SMTP协议

采用C/S方式,用TCP连接,端口号25.通信有以下几个阶段:
(1)连接建立
(2)邮件传送
(3)连接释放

2.POP3协议

采用C/S方式,传输层使用TCP可靠协议,端口号110

基于web的电子邮件:当使用web浏览器发送接收邮件时,推送到邮件服务器和从邮件服务器拉取邮件使用的是HTTP协议,仅在不同邮件服务器之间传递传送邮件才使用SMTP协议。

6.5万维网WWW

6.5.1 WWW的概念与组成结构

6.5.2 超文本传输协议HTTP

1.HTTP的操作过程

从协议的执行来说,浏览器要访问WWW服务器时,首先要完成对WWW服务器的域名解析。一旦获取了服务器的IP地址,浏览器将通过TCP向服务器发送连接建立请求

大致过程如下图:每个万维网站点都有一个服务器进程,它不断的监听TCP的端口80(默认),当监听到连接请求后便于浏览器建立连接。TCP建立连接后,浏览器就向服务器发送请求获取某一Web网页的HTTP请求,将构建所请求的Web页必须信息,通过HTTP响应返回给浏览器。浏览器再将信息进行解析,然后将Web页显示给对方。最后,TCP连接释放。

在这里插入图片描述
用户单机鼠标所发生的事件按顺序如下(以访问T大为例)
(1)浏览器分析链接指向页面(http://www.tsinghua.cn/chn/index.htm)。
(2)浏览器向DNS请求解析 www.tsinghua.cn的 IP地址
(3)域名系统DNS解析T大服务器的IP地址
(4)浏览器与相应服务器建立TCP连接(默认端口号80)
(5)浏览器发出HTTP请求:GET/chn/index.htm。
(6)服务器通过HTTP响应把文件index.htm发送给浏览器。
(7)TCP连接释放。
(8)浏览器将index.htm进行解释,并将web页显示给用户。
简单来说就是:域名解析获IP->建立TCP连接->HTTP请求->HTTP响应->释放TCP连接->解析呈现结果。

2.HTTP协议特点

(1) HTTP协议是无状态的。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器响应与第一次被访问时是相同的,服务器不会缓存记忆。
(2)HTTP协议本身是无连接的。虽然HTTP使用了TCP连接(保证可靠性),但通信双方在交换HTTP报文之前不需要先建立HTTP连接。
(3)HTTP可使用非持久连接与持久连接
对与非持久连接,每个网页元素对象的传输都需要单独建立 一个TCP连接。将TCP握手第三步与一个HTTP请求报文结合起来发送,服务器接收请求后响应一个对象。因此,传输一个对象消耗2个RTT。(可以同时建立多个连接并行传输)但是,由于TCP连接会分配缓冲区和变量,大量使用非持久连接会给服务器造成压力。
对于持久连接,万维网服务器在发送响应后保持这条连接,使同一个用户和服务器可以继续在这条连接上传送后续的HTTP请求和响应报文。
持久连接分为非流水线流水线两种方式。对于非流水线方式,客户在收到前一个响应后才能发出下一个请求。而流水线下,客户每遇到一个对象引用就立即发出一个请求,因此客户可以一个接一个连续发出对个个引用对象的请求。

3.HTTP的报文结构

HTTP是面向文本的(Text-Oriented),每个报文的字段都是一些ASCII码串,长度不确定。有两类报文:

  1. 请求报文----从客户向服务器发送的请求报文。
  2. 响应报文----从服务器到客户的回答。
1)HTTP报文格式(请求报文)

在这里插入图片描述
“Host”:请求的目标主机
“Connection:close”:浏览器告诉服务器不使用持久连接,要求服务器在发送完请求后关闭连接
“User-agent”:用户代理,即向服务器发送请求的浏览器的类型(服务器可以正确地为不同类型的用户代理发送相同对象的不同版本)
“Accept-language”:用户想得到该对象的语法版本
HTTP请求报文常用格式
在这里插入图片描述
HTTP请求报文中常用的几个方法

方法意义
GET请求读取由URL所标志的信息
HEAD请求读取由URL所标志的信息的首部
POST给服务器添加信息(如,注释)
CONNECT用于代理服务器
PUT用于向服务器上传对象
DELETE用于删除服务器上的对象
2)HTTP报文格式(响应报文)

在这里插入图片描述
“Connection:close”:告诉客户机在报文发送完后关闭了TCP连接
“Date”:报文生成、发送时的日期
“Last-Modified”:web对象最后修改的日期
一个响应报文通用格式
在这里插入图片描述

4. 关于Cookie:

Cookie引入,是用于识别用户
cookie包含4个组成部分
(1)在HTTP响应报文中有一个Set-cookie首部行
(2) 在HTTP请求报文中有一个Cookie首部行
(3) 在用户端系统中保留有一个cookie文件,由用户的浏览器管理
(4) 在web站点有一个后端数据库
Cookie的运行过程图
在这里插入图片描述

  1. 客户端在浏览器的地址栏中键入Web服务器的URL,浏览器发送读取网页的请求。
  2. 服务器收到请求后,产生一个Set-Cookie报头,放在HTTP报文中一起回传客户端,发起一次会话。
  3. 客户端收到应答后,若要继续会话,则将Set-Cookie内容取出,形成一个Cookie.txt文件存储在客户端计算机里。
  4. 当客户端再次向服务器发出请求时,浏览器先在电脑里寻找该网站的Cookie.txt文件。如果找到,则根据Cookie.txt产生报头,放在HTTP请求报文中发给服务器。
  5. 服务器接收到包含Cookie报头的请求,检索其Cookie中与用户相关的信息,生成一个客户端所请示的页面应答给客户端。浏览器的每一次网页请求(如刷新),都可以传递给已存在的Cookie文件.

本章小节及疑难点

1.如何理解客户进程端口号与服务器进程端口号?

解答:一般所说的熟知端口号是指应用层在服务器端的默认端口号,而客户端进程的端口号是由用户端进程任意指定的(临时的)。当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口号,同时告诉服务器进程自己的临时端口号,用于建立连接。接着,服务器进程就用自己的熟知端口号与客户进程所提供的端口号建立连接。

2.互联网、因特网与万维网的区别?

解答:互联网指由若干个电子计算机网络相互连接而成的更大的网络。目前世界上最大的互联网是因特网。万维网是无数个网络站点和网页的集合,他们连在一起构成了因特网的最主要部分。

3.DNS高速缓存是什么?

解答:每个域名服务器都维护一个高速缓存,存放最近用过的名字以及何处获取名字映射信息的记录。可大大减轻根域名服务器的负荷,使因特网上的DNS查询请求和报文回答数量大大减少。为保持高速缓存中的内容正确,域名服务器应为每项内容设置定时器,并处理超过合理时间的项。当权限域名服务器回答一个查询请求时,在响应中,都指明绑定有效存在的时间。增加此时间值可减少网络开销,而减少此时间值可以提高域名转化的高效性。

4.常用协议总结:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZCAIHUI_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值