导图社区 CN-6 应用层
计算机网络 第6章 应用层,内容包含应用层概述、域名系统DNS、文件传输FTP、电子邮件、万维网www,希望这份脑图会对你有所帮助。
编辑于2023-04-03 17:51:55应用层
应用层概述
应用层功能
应用层作用
为应用程序的通信提供服务
文件传输、访问和管理
电子邮件
虚拟终端
查询和远程作业登录
应用层协议
协议需要定义
应用进程之间交换的报文类型,请求还是响应?
各种报文类型的语法
报文中各字段及其详细描述
字段的语义
即包含在字段中信息的含义
进程何时、如何发送报文,对报文响应的规则
重要协议
FTP;SMTP、POP3;HTTP;DNS
应用层协议端口
域名系统DNS
层次域名空间
域名系统
Domain Name System, DNS
是因特网使用的命名系统
将具有特定含义的主机名(网址)转换成便于机器处理的IP地址
即,建立域名到IP的映射
将域名解析成IP地址
DNS系统采用的是C/S模型,协议运行在UDP上,使用53号端口
是一个联机分布式的数据库系统
域名和域
域名:Domain Name
因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称
域:Domain
是名字空间中一个可被管理的划分
域可划分为子域,还可进一步划分子域的子域
层次域名空间
域名的划分
每个域名由标号序列组成,由“.”划分
如:标号com是顶级域名;标号baidu是二级域名;标号www是三级域名
注意:
标号中的英文不区分大小写
标号中除“-”没有其他标点符号
每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符
从左往右层次提升:级别最低的域名写在最左边,级别最高的顶级域名写在最右边
域名分类
每个域会由不同的组织管理,每个组织都可以将它的域划分为一定数目的子域
例如,管理cn域的中国将edu.cn的子域授权给中国和科研计算机网CERNRET管理
域名服务器
域名服务器作用
域名到IP地址的解析是由运行在域名服务器上的程序完成的
每个区会设置相应的权限域名服务器,来保存该区域中所有主机的域名到IP地址的映射
域名到IP地址的解析
具有连向其他域名服务器的信息
当自己不能解析时
需要知道到什么地方去找其他域名服务器
组织方式是层次的
没有一台域名服务器有因特网上所有主机的映射
分布在所有DNS上
区和域的区别
一个域名服务器所负责管辖的(有权限的)范围称为“区”
一个域名服务器对应一个区
一个区内的所有结点必须是能够连通的
域和子域都是概念上的划分,区域是实际物理意义上的划分,也就是根据权限域名服务器划分
从域来看
b.A.com,a.A.com和c.A.com都是A.com域的子域,z.b.A.com是b.A.com的子域,
A.com域也包括它自己
从区来看
在A.com域中有A.com区和c.A.com区
A.com区(的域名服务器)包括了其区内所有域的信息以及去服务器2的“链接”
一个域中的子域不一定和域是同一个权限域名服务器,因此也不一定是同一个区
域名服务器类型
域名系统层次
本地域名服务器
本地域名服务器对域名系统非常重要。又称为默认域名服务器,离主机最近
每一个因特网服务提供者ISP,都可拥有一个本地域名服务器
其他注意点
域名系统的层次结构,不包括本地服务器
因特网上有13个根域名服务器
尽管视为单个服务器,实际上是冗余服务器的集群,以提供安全性和可靠性
许多域名服务器同时充当本地域名服务器和授权域名服务器
每台主机都必须在授权域名服务器处登记
为了更加可靠地工作,一台主机最好至少有两个授权域名服务器
域名解析过程
域名解析
将域名映射为IP地址:正向解析
将IP地址映射为域名:反向解析
需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报方式发往本地域名服务器
DNS查询过程
一台主机发出DNS查询请求时,会先发送给该主机的本地域名服务器
若要查询的主机就在本地,可直接解析出IP地址
若不被本地域名服务器管辖,访问根域名服务器
根域名服务器告知本地域名服务器,应该去哪一个顶级域名服务器查询
递归和迭代两种方式
顶级域名服务器解析IP,解析不到,查找下一层的授权域名服务器(必能找到)
递归查询
本地域名服务器只需向根域名服务器查询一次
后面的查询都是递归的在其他域名服务器之间进行
直到本地域名服务器从根域名服务器处获得了所需的IP地址
再将结果返回发起查询的主机
靠别人(根域名服务器)
根域名服务器的负载过大,实际一般不适用
迭代查询
主机向本地域名服务器的查询是递归查询
本地域名服务器要么直接返回IP地址,要么不知道IP地址
即作为DNS客户的身份帮主机查询根域名服务器,查到了再返回主机
本地域名服务器向根域名服务器的查询是迭代查询
根域名服务器收到本地域名的查询后,要么直接给出查询的IP地址,要么告知本地域名服务器该去哪个顶级域名服务器
再由本地域名服务器去查询,顶级域名也一样,不会帮本地域名查询
靠自己(本地域名服务器)
本地域名服务器的负载大
高速缓存
域名服务器中广泛地使用了高速缓存
可提高DNS的查询效率
减少因特网上的DNS查询报文数量
一个DNS服务器接收到DNS查询结果时,会将该DNS信息缓存在高速缓存中
当另一个相同的域名查询到达该DNS服务器时,该服务器就能够直接提供所要IP地址,而不用再去询问
注
主机和IP地址之间的映射不永久,高速缓存会刷新丢弃
文件传输FTP
FTP概述
简单文件传输协议TFTP
Trivial File Transfer Protocol
小型的易于实现的数据文件传输
适合UDP环境,文件同时向多个机器传送时
内存占用小,小型计算机、特殊用途设备
文件传输协议FTP
文件传输协议(File Transfer Protocol,FTP)是因特网上使用最广泛的文件传输协议
特点
提供交互式的访问
使用的是TCP可靠的传输服务
允许客户指明文件的类型与格式
允许文件具有存取权限
屏蔽了各计算机系统的细节,适合于在异构网络中的任意计算机之间传送文件
功能
提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力。
以匿名FTP的方式提供公用文件共享的能力
Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户
匿名FTP服务器
互连网中有很大一部分FTP服务器被称为“匿名”(Anonymous)FTP服务器
向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权
用户使用特殊的用户名"anonymous”登录FTP服务,就可访问远程主机上公开的文件
基于客户/服务器的工作方式
用户通过一个客户机程序连接到远程计算机上运行的服务器程序
FTP服务器
依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器
FTP客户端
连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端
网络文件系统NFS
使用FTP时,若需要修改服务器上的文件,需要先将此文件传送到本地主机上,再传送修改完的文件副本,来回传送会耗费很多时间
网络文件系统NFS
允许进程打开一个远程文件,并能够在该文件的某个特定位置开始读写数据
即,NFS只需要给用户复制一个大文件中的小片段,不用传输整个大文件
FTP原理
工作原理
FTP的服务器有两类进程
一个主进程
负责接收新的请求
若干从属进程
负责处理单个请求
服务器的工作步骤
打开熟知端口21(控制端口),使客户进程能够连接上
等待客户进程发送连接请求(登录:账户名+密码/或是匿名登录)
启动从属进程来处理客户进程发来的请求
主进程与从属进程并发执行
从属进程对客户进程的请求处理完毕后即终止
回到等待状态,继续接收其他客户进程的请求
要求
服务器必须在整个会话期间保留用户的状态信息。特别是服务器必须把指定的用户账户与控制连接联系起来
服务器必须追踪用户在远程目录树上的当前位置
两个连接
FTP工作时需建立两个并行的TCP连接:控制连接(端口号21)和数据连接(端口号20)
控制连接(21)
服务器会监听21号端口,等待客户连接
控制连接用来传输控制信息(如连接请求、传送请求等)
控制连接并不用来传送文件
控制信息都以7位ASCII的格式传送
“FTP的控制信息是带外传送的”:out of band
FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程
控制连接在整个会话期间一致保持打开状态(传输文件可能发送中止传输命令)
数据连接(20)
服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就会创建“数据传送进程”和“数据连接”
数据连接实际完成文件的传送
在传送完毕后会关闭数据连接,数据传送进程会结束运行
传输模式
两种模式及服务器端口使用
主动模式PORT
客户端会先通过控制进程,连接到服务器的21号端口,登陆成功要读取数据时,客户端会随机开放一个接口,并发送命令告知服务器,服务器收到PORT和端口号时
会通过20号端口和客户端口建立连接,传输数据
被动方式PASV
客户端还是先连接到21号端口,建立控制连接后,当客户端要读取数据时,会先发送PASV命令到服务器,服务器在本地随机一个端口号,告知客户端,客户端再建立数据连接到这个端口
即,端口号由服务器和客户端自行协商(一般>=1024,0~1023是熟知端口号)
是客户端主被动
主动模式传送数据是“服务器”连接到“客户端”端口
客户端端口号先确定(随机)
服务器:20号
被动模式传送数据是“客户端”连接到“服务器”端口
服务器端口号先确定(随机)
服务器:熟知端口
主动模式PORT和被动模式PASV的选择取决于“客户端”
FTP的传输模式
文本模式
ASCII模式,以文本序列传输数据
二进制模式
Binary模式,以二进制序列传输数据
电子邮件
Email格式和结构
电子邮件格式
电子邮件
电子邮件是一种异步通信方式,不需要同时在场
电子邮件将邮件发送给收件人使用的邮件服务器,收件人随时可上网到服务器中读取
信封
由用户写好首部后,邮件系统自动提取,是发送方和接收方的邮件地址
内容
首部
由一些首部行组成,每个首部行“一个关键字”+“:”+值
To
必填。收件人的电子邮件地址 : 邮箱名@域名
Subject
可选关键字,反映文件的主要内容
From
发送方的邮件,必填,一般由邮件系统自动填入
主体
用户输入的内容
email组成结构
用户代理(User Agent)
是用户和电子邮件的接口
就是一个运行在PC上的程序(电子邮件客户端软件,如,outlook、Foxmail)
具有的功能:
撰写、显示、邮件处理、通信
邮件服务器
发送和接收邮件
采用客户/服务器模式
能够同时充当客户和服务器
向发信人报告邮件传送结果
邮件发送接收协议
SMTP协议(发送、推、push)
用户代理向邮件服务器发送
邮件服务器之间发送
POP3、IMAP(收、拉、pull)
用户代理从邮件服务器读取邮件(“拉取”邮件)
都是TCP模式
SMTP和MIME
简单邮件传送协议 SMTP
SMTP规定在两个相互通信的SMTP进程之间应如何交换信息
SMTP提供可靠有效的电子邮件传输
TCP连接
端口号25
SMTP使用C/S方式
负责发送邮件的SMTP进程就是SMTP客户
负责接收邮件的进程就是SMTP服务器
(邮件服务器可同时作为服务端和客户端)
SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)
通信过程
连接建立
发件人的邮件先发送到发送方邮件服务器的邮件缓存中
SMTP客户就定期扫描邮件缓存扫描。如有邮件,就使用SMTP的端口号25与接收方的SMTP服务器建立TCP连接
连接建立后,接收方SMTP服务器发出220 Service ready(服务就绪)
然后SMTP客户向SMTP服务器发送HELO命令,附上发送方的主机名
服务器回复
若此时有能力接收邮件则服务器,则回复“250 OK”
没有能力接收则回复“421 Service not available”
若长期不能发送,会再告知发送方用户
邮件传送
A为发送方;B为接收方
RCPT
发送接收方的邮件地址信息
是为了确保地址是正确的
数据传输最后会用<CRLF><CRLF>表示内容结束
连接释放
邮件发送完毕后,SMTP客户应发送QUIT命令
SMTP服务器返回的信息是221(服务关闭)
表示SMTP同意释放TCP连接
SMTP的缺点
不能传送可执行文件或其他二进制对象
仅限于传送7位ASCII码,不能传送其他非英语国家的文字
SMTP服务器会拒绝超过一定长度的邮件
基于www的电子邮件
例如
使用浏览器,基于万维网的电子邮件
HotMail、Gmail等
特点
用户浏览器和邮件服务器之间的发送和接收使用的是HTTP协议
不同邮件服务器之间传送邮件使用SMTP协议
多用途网际邮件扩充 MIME
是STMP协议的扩充
增加了邮件主体的结构,并定义了传送非ASCII码的编码规则
即,增加一层转换
内容
5个新的邮件首部字段,包括MIME版本、内容描述、内容标识、传送编码和内容类型
定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变
使得传输内容更为多样
POP3和IMAP
邮局协议POP3
(Post Office Protocol,POP)是一个非常简单、功能有限的邮件读取协议
使用C/S模式,传输层采用TCP,端口号为110
当用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件
工作方式
下载并保留
用户读取完邮件后,邮件仍然保留再邮件服务器上,可以再次读取
下载并删除
用户读取玩邮件后,邮件被删除,不能被读取
网际报文存取协议 IMAP
内容
比POP3复杂的邮件读取协议
为用户提供了创建文件夹、在不同文件夹之间移动邮件及在远程文件夹中查询邮件等联机命令
特性
IMAP服务器需要维护会话用户的状态信息
可以在不同地方不同主机随时上网阅读邮件
允许用户代理只获取报文的某些部分,例如可以只读取一个报文的首部,或多部分MIME报文的一部分
适用于低带宽的情况,尤其是包含很多音频或视频的大邮件。
eg:采用邮件附件的形式
万维网www
万维网www概述
万维网
万维网(World Wide Web,www)
是一个分布式、联机式的信息存储空间/资料空间,是无数个网络站点和网页的集合
是因特网最主要的部分(因特网还包括电子邮件、Usenet、新闻组等)
使用客户/服务器方式工作
用户使用的浏览器就是万维网客户程序
万维网文档所驻留的主机运行服务器程序
三个标准
统一资源定位符 URL
一个URL在全域内,唯一标识了一个资源(文字、视频、音频等)
URL不区分大小写
例如
https://www.example.com/path/index.html
URL一般形式:
<协议>://<主机>:<端口>/<路径>
http 域名
ftp IP地址
端口和路径有时候可以省略
超文本传输协议HTTP
应用层协议,使用TCP建立可靠传输
是万维网客户程序和服务器程序之间交互所必须遵循的协议
超文本标记语言HTML
一种文档结构的标记语言,它使用一些约定的标记对页面上的各种信息(包括文字、声音、图像、视频等)、格式进行描述
万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来
用户可以通过输入URL和点击超链接获取资源,这些资源(HTML)通过超文本传输协议HTTP传送给使用者
超文本传输HTTP
HTTP协议
HTTP协议定义了浏览器(万维网客户进程)如何向万维网服务器请求万维网文档,以及服务器如何将文档传送给浏览器
是面向事务的应用层协议
规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础
HTTP的特点
HTTP是无状态的
即,同一个客户第二次访问同一个服务器时,服务器的响应和第一次被访问是相同
无状态特性简化了服务器的设计,使其更容易支持大量并发的HTTP请求
但在实际工作中,一些万维网站点常常希望能够识别用户
Cookie技术
HTTP本身无连接
不需要建立HTTP连接。使用的是TCP作为运输层协议,建立的是TCP连接
HTTP是面向文本的(Text-Oriented)
HTTP报文中的每个字段都是一些ASCII码,并且每个字段的长度是不确定的
HTTP工作过程
域名解析
浏览器先要完成对www服务器的域名解析,分析URL
浏览器向DNS请求解析IP地址
DNS解析出IP地址,并返回给浏览器
建立连接
浏览器得知IP地址后,向服务器的80号端口发送TCP连接请求
服务器监听到后,与浏览器建立TCP连接(一个服务器进程持续监听80号端口)
传输数据
浏览器向服务器发送HTTP请求报文
服务器收到请求后,将所请求的Web页的必需信息,通过HTTP响应报文返回给浏览器(可以只显示HTML文本内容,有需要再传输)
浏览器对信息解释,并显示给用户
释放TCP连接
Cookie技术
Cookie是存储在用户主机中的,记录一段时间内某用户(使用识别码识别)的访问记录
第一次访问某Web
当用户浏览某个使用Cookie的网站时,该网站服务器就为用户产生一个唯一的识别码,如“123456”,
接着在给用户的响应报文中添加一个Set-cookie的首部行"Set cookie:123456"。
用户收到响应后,就在用户管理的特定Cookie文件中添加这个服务器的主机名和Cookie识别码
第二次访问该Web
浏览器会取出这个网站的识别码,并放入请求报文的Cookie首部行"Cookie:123456”
服务器会根据请求报文中的Cookie识别码从数据库中查询到该用户的活动记录,进而传输个性化的内容
HTTP的连接方式
非持久连接Close
即每次传送完响应报文后就断开连接,每个网页元素对象(如JPEG图形、Flash等)的传输都需要单独建立一个TCP连接
请求一个万维网文档所需的时间
该文档的传输时间(与文档大小成正比)+两倍的往返时间RTT
一个RTT用于TCP 连接
一个RTT用于请求和接收文档
另外,建立新的TCP连接还需要分配缓存和变量
万维网服务器的负担很重
持久连接Keep-alive
即,服务器在发送响应后,保持该链接,使得同一个客户和该服务器能继续传输后续的HTTP请求和响应报文
非流水线方式
客户收到前一个响应后才能发出下一个请求,服务器发送完一个响应后是空闲的
流水线方式
HTTP/1.1的默认就是流水线的持久连接
客户每遇到一个对象引用(点击一个超链接),就立即发出请求
可以逐个连续地发出请求,若所有请求和响应都是连续发送,则所有引用对象只需一个RTT
HTTP报文格式
格式
请求报文
从客户向服务器发送的请求报文
响应报文
从服务器到客户的回答
开始行
请求报文和响应仅开始行不同
三个字段间用空格断开
CR LF表示:”回车“”换行“,表示一行结束
请求报文的开始行称为请求行
响应报文的开始行称为状态行
首部行
用来说明浏览器、服务器或报文主体的一些信息
首部可以有几行,也可以不使用
每个首部行中都有首部字段名和其值,整个首部行结束时,留一空行和实体主体分开
实体主体
请求报文中一般不使用该字段
响应报文中一般使用,也可能没有该字段
举例
该浏览器请求浏览index.html
index.html存放在www.test.edu.cn上
该浏览器请求使用非持久连接
有Cookie表示曾经访问过该Host