导图社区 《计网》第六章-应用层
关于《计网》第六章-应用层的思维导图,包括网络应用模型、域名系统、文件传输协议、万维网、电子邮件几个方面的内容。
编辑于2022-08-31 19:35:40 上海应用层
 
网络应用模型
客户/服务器(C/S)模型
概念
客户是服务请求方,服务器是服务提供方,常见的使用C/S模型的应用包括Web、文件传输协议(FTP)、远程登陆和电子邮件
工作流程
1)服务器处于接收请求的状态。
2)客户机发出服务请求,并等待接收结果。
3)服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。
特点
1)网络中各计算机的地位不平等,服务器可以通过对用户权限的限制来达到管理客户机的目的,使它们不能随意存储/删除数据,或进行其他受限的网络活动。整个网络的管理工作由少数服务器担当,因此网络的管理非常集中和方便。
2)客户机相互之间不直接通信。例如,在 Web应用中两个浏览器并不直接通信。
3)可扩展性不佳。受服务器硬件和网络带宽的限制,服务器支持的客户机数有限。且服务器性能决定了整个系统的性能,服务器容易成为系统的瓶颈
P2P模型
概念
每个结点同时具有下载、上传的功能,其地位对等,任意一对计算机(对等方Peer)直接互相通信,常见的应用由PPlibe、Bittorrent和电驴等
优点(相较于C/S)
1)减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点上,因此大大提高了系统效率和资源利用率(例如,播放流媒体时对服务器的压力过大,而通过P2P模型,可以利用大量的客户机来提供服务)。
2)多个客户机之间可以直接共享文档。
3)可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求。
4)网络健壮性强,单个结点的失效不会影响其他部分的结点。
缺点
结点在获取服务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机速度;且P2P程序占用较多的流量,容易造成网络拥塞
域名系统(DNS)
概念
域名系统用于将具有特定含义的主机名转换为IP地址,DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口
层次域名空间
定义
因特网采用层次树状结构的域名命名方法,每个连接到因特网的主机或路由都有对应的域名
 
域是名字空间中可被管理的划分,域可被逐级划分,形成顶级域、二级域和三级域等,各子域间用“.”隔开
标号
1)标号中的英文不区分大小写。
2)标号中除连字符 ( _ ) 外不能使用其他的标点符号。
3)每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符。
4)级别最低的域名写在最左边,级别最高的顶级域名写在最右边。
顶级域名(TLD)
1)国家(地区)顶级域名(nTLD)。国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国,“.uk”表示英国。国家(地区)顶级域名下注册的二级域名均由该国家(地区)自行确定
2)通用顶级域名(gTLD)。常见的有“.com”(公司)、“.net”(网络服务机构)、“.org”(非营利性组织)和“.gov”(国家或政府部门)等。
3)基础结构域名。这种顶级域名只有一个,即arpa,用于反向域名解析,因此又称反向域名。
域名服务器
定义
因特网的域名系统被设计为一个联机分布式的数据库系统,采用C/S模型。每个域名服务器管辖一个“区”内的结点,保存其域名到IP地址的映射,且具有连向其他域名服务器的信息;一个区的结点都能够互相连通
分类
根域名服务器
1)共有13个,最高层次且最重要的域名服务器,知道所有顶级域名服务器的IP地址
2)若本地域名雾浮起无法解析某个域名,将首先求助根域名服务器,根域名服务器继而告诉本地域名服务器接下来应当找哪个顶级域名服务器进行查询
顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名,收到DNS查询请求时,给出相应回答(可能是最后结果,也可能是下一步应当查找的域名服务器的IP地址)
授权域名服务器(权限域名服务器)
每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个授权域名服务器。实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。授权域名服务器总能将其管辖的主机名转换为该主机的IP地址。
本地域名服务器
每个因特网服务提供者(ISP),或一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器。当一台主机发出 DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。
域名解析过程
定义
当客户端需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报方式发往本地域名服务器
正向解析
把域名映射为IP地址
反向解析
把IP地址映射为域名
方式
递归查询
递归域迭代相结合的查询
1)主机向本地域名服务器的查询是递归查询
2)本地域名服务器向根域名服务器的查询是迭代查询
注意:域名不一定只有三级
 为提高DNS查询效率,在域名服务器中广泛使用高速缓存;当一个DNS服务器接收到DNS查询结果时,它能将该DNS信息缓存起来,一段时间后再丢弃。
文件传输协议(FTP)
FTP的工作原理
功能
1)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
2)以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力。
3)以匿名FTP的方式提供公用文件共享的能力
匿名用户ID为anonymous,密码为任意字符串
4)允许客户指明文件的类型与格式
工作原理
FTP采用C/S的工作方式,使用TCP可靠的传输服务;FTP的服务器进程由两部分组成:一个主进程负责接收新的请求;若干从属进程服务处理单个请求
工作过程
1)打开熟知端口21(控制端口),使客户进程能够连接上。
2)等待客户进程发连接请求。
3)启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
4)回到等待状态,继续接收其他客户进程的请求。
控制连接与数据连接
FTP在工作时使用两个并行的TCP 连接:一个是控制连接(端口号21),一个是数据连接(端口号20)。使用两个不同的端口号可使协议更加简单和更容易实现。
只有在主动方式下,数据连接使用TCP20端口
控制连接
因为FTP使用了一个分离的控制连接,所以也称FTP的控制信息是带外(Out-otband)传送的。使用FTP时,若要修改服务器上的文件,则需要先将此文件传送到本地主机,然后再将修改后的文件副本传送到原服务器,来回传送耗费很多时间。网络文件系统(NFS)采用另一种思路,它允许进程打开一个远程文件,并能在该文件的某个特定位置开始读写数据。这样,NFS可使用户复制一个大文件中的一个很小的片段,而不需要复制整个大文件。
用于传输控制信息(如连接请求、传送请求等),并且控制信息都以7位的ASCII格式传送;控制连接在整个会话期间一直打开
数据连接
服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就创建“数据传送进程”和“数据连接”
数据连接用来连接客户端和服务器端的数据传送进程
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行
传输模式
主动模式PORT
客户端要读取数据时,客户端随机开放端口,发送命令告知服务器;服务端收到PORT命令和端口号后,通过20端口连接客户端
被动模式PASV
客户端要读取数据时,多发射PASV命令到服务器,服务端随机开放端口,客户端连接到该端口
万维网(WWW)
WWW的概念与组成结构
定义
万维网(WWW)是一个分布式、联机式的信息存储空间,所有事物被称为“资源”,并通过一个全域“统一资源定位符”(URL)表示,提供超文本传输协议(HTTP)传送给使用者。
标准
1)统一资源定位符(URL)。负责标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符URL。
形式:<协议>://<主机>:<端口>/<路径>
<协议>:指用什么协议来获取万维网文档,如http、ftp等
<主机>:指存放资源的主机在因特网中的域名或IP地址
2)超文本传输协议(HTTP)。 一个应用层协议,它使用TCP连接进行可靠的传输,HTTP是万维网客户程序和服务器程序之间交互所必须严格遵守的协议。
3)超文本标记语言(HTML)。一种文档结构的标记语言,它使用一些约定的标记对页面上的各种信息(包括文字、声音、图像、视频等)、格式进行描述。
工作流程
1)Web用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求。
2)Web服务器把URL转换为文件路径,并返回信息给Web浏览器。
3)通信完成,关闭连接。
超文本传输协议(HTTP)
定义
HTTP是面向事务的应用层协议,规定了在浏览器和服务器之间的请求和响应的格式与规则,定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
HTTP的操作过程
每个万维网站点都有一个服务器进程,不断监听TCP的端口80,监听到连接请求后便与浏览器建立TCP连接;浏览器(客户端)发送请求报文,服务器返回响应报文
用户单击链接后发生的事件
1)浏览器分析链接指向页面的URL (http://www.tsinghua.edu.cn /chn/index.htm)。
2)浏览器向 DNS 请求解析www.tsinghua.edu.cn的IP地址。
3)域名系统DNS解析出清华大学服务器的IP地址。
4)浏览器与该服务器建立TCP连接(默认端口号为80)。
5)浏览器发出HTTP 请求:GET /chn/index.htm。
6)服务器通过HTTP响应把文件index.htm发送给浏览器。
7)释放 TCP连接。
8)浏览器解释文件index.htm,并将 Web页显示给用户。
HTTP的特点
1)无连接
HTTP使用TCP作为传输层协议,保证数据的可靠传输;但HTTP本身是无连接的,即通信双方在交换http报文前不需建立http连接,http不必考虑数据在传输过程中的重传问题
2)无状态
同一客户的若干次访问同一服务器,得到的响应相同,无状态性使服务器容易支持大量并发的http请求
实际应用中,常使用Cookie加数据库的方式来跟踪用户活动

3)连接方式
非持久连接
 
1)每个网页元素对象(如JPEG图像、Flash)的传输都需单独建立一个TCP连接
2)第三次握手的报文段中捎带了客户的请求报文,故请求一个万维网文档所需的时间是该文档的传输时间+2RTT
3)每个对象引用都导致2RTT的开销,且建立TCP连接消耗缓存和变量,导致服务器负担很重
持久连接
HTTP1.1默认使用流水线的持久连接  
流水线
客户可以连续请求对象,所有请求对象共有1RTT的延迟,提高了效率
非流水线
客户在收到前一个响应后才能发出下一个请求;服务器发送完一个对象后,TCP连接处于空闲状态,每个引用都有1RTT的延迟,浪费了服务器资源
HTTP的报文结构
HTTP是面向文本的(Text-Oriented),因此报文中的每个字段都是一些ASCII码串,并且每个字段的长度都是不确定的。
分类
请求报文
响应报文
组成
1)开始行
用于区分请求报文(请求行)和响应报文(状态行),三个字段间以空格分隔,最后的“CR”和“LF”分别表示“回车”和“换行”
请求行
方法:对所请求对象进行的操作(实际上就是一些命令)
请求资源的URL
HTTP版本
HEAD方法仅需Web服务器对HTTP报文进行响应,但不需要返回请求对象
状态行
版本
状态码
短语
2)首部行
用于说明浏览器、服务器或报文主体的一些信息
可以有若干行,每行有其首部字段名和值,并以“CRLF”结束
整个首部行末尾有一空行,用于分隔首部行和实体主体
3)实体主体
电子邮件
电子邮件系统的组成结构
组成构件
用户代理(US)
用户与电子邮件系统的接口,向用户提供一个友好的接口来发送和接收邮件,用户代理至少应当具有撰写、显示和邮件处理的功能。通常情况下,用户代理就是一个运行在PC上的程序(电子邮件客户端软件),常见的有 Outlook和Foxmail 等。
邮件服务器
功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。邮件服务器采用客户/服务器方式工作,且能够同时充当客户和服务器
邮件发送协议和读取协议
邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,如SMTP,采用“推”(Push)的通信方式
邮件读取协议用于用户代理从邮件服务器读取邮件,如POP3,采用“拉”(Pull)的通信方式
收发过程
①发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用SMTP把邮件传送给发送端邮件服务器。
②发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
③运行在发送端邮件服务器的SMTP客户进程,发现邮件缓存中有待发送的邮件, 就向运行在接收端邮件服务器的SMTP服务器进程发起建立TCP连接。
④TCP连接建立后,SMTP客户进程开始向远程 SMTP服务器进程发送邮件。当所有待发送邮件发完后,SMTP就关闭所建立的 TCP连接。
⑤运行在接收端邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱,等待收信人在方便时进行读取。
⑥收信人打算收信时,调用用户代理,使用POP3(或 IMAP))协议将自己的邮件从接收端邮件服务器的用户邮箱中取回(如果邮箱中有来信的话)。
电子邮件格式与MIME
电子邮件格式
信封
由邮件系统自动填写
内容
首部
From
To
填入若干收件人地址,地址格式为:收件人邮箱名@邮箱所在主机的域名
必填
Subject
邮件主题,可选关键词
主体
用户自由撰写
多用途网际邮件扩充(MIME)
功能
SMTP只能传送一定长度的ASCII码邮件,无法传送其他语言,且无法传送可执行文件及其他二进制对象,由器提出了多用途网络邮件扩充(MIME)
MIMIE增加了邮件主体的结构,并定义了传送非ASCII码的编码规则
组成
①5个新的邮件首部字段,包括MIME版本、内容描述、内容标识、传送编码和内容类型。
②定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
③定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。
SMTP和POP3

SMTP
定义
简单邮件传输协议是一种提供可靠且有效的电子邮件传输的协议,它控制两个相互通信的SMTP进程交换信息,使用C/S方式,采用TCP连接,端口号为25;SMTP只支持传输7位的ASCII码内容
通信过程
1)连接建立
①发件人邮件缓存在发送方邮件服务器后,SMTP客户每隔一段时间扫描缓存,如发现邮件,则与接收方SMTP服务器的25端口建立TCP连接
②连接建立后,接收方SMTP服务器发出220 Service ready(服务就绪);SMTP向SMTP服务器发送HELO命令,附上发送方的主机名
2)邮件传送
①先发送MAIL命令,后接发件人地址;若SMTP服务器已经准备好接收邮件,则回复250OK
②客户端发送若干RCPT命令,指明收件人地址;接收方回复250 OK或550 No such user here(无此用户)
③客户端使用DATA命令,代表要开始传输邮件的内容;SMTP服务器回复354 Start mail input;end with <CRLF>.<CRLF>。其中<CRLF>表示回车换行
④此后客户端开始传送邮件内容,并用<CRLF>.<CRLF>表示邮件内容的结束
3)连接释放
邮件发送完毕后,客户端发送QUIT命令;服务端返回220(服务关闭),表示同意释放TCP连接
POP3
POP采用C/S的工作方式,在传输层使用TCP,端口号为110;接收方的用户代理上必须允许POP客户程序,接收方的邮件服务器上则运行POP服务器程序
POP3协议在传输层是使用明文来传输密码;POP3协议基于ASCII码,需使用MIME将其他数据转换为ASCII码形式
工作方式
下载并保留
用户从邮件服务器上读取邮件后,邮件仍保留在服务器上,可再次读取
下载并删除
邮件被读取后就从服务器上删除
由客户端而非服务器选择接收后是否将邮件保存在服务器上
IMAP
IMAP服务器维护了会话用户的状态信息,为用户提供创建文件夹、在不同文件夹间移动邮件基于在远程文件夹中查询邮件等联机命令
允许用户代理只获取报文的某些部分,适用于低带宽的情况和多媒体邮件