第五、应用层知识框架.
在本阶段应该掌握下边内容:(只是总结了精华部分)
一、应用层协议的特点。
(1)每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。
(2)应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
二、域名系统DNS
(一)域名系统概述
(1)许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。
(2)因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。
(3)名字到域名的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
(二)因特网的域名结构
(1)因特网采用了层次树状结构的命名方法。
(2)任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。
(3)域名的结构由若干个分量组成,各分量之间用点隔开:
… .三级域名.二级域名.顶级域名
(4)各分量分别代表不同级别的域名.
(三)顶极域名TLD(Top Level Domain)
(1) 国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。
(2) 国际顶级域名 iTLD:采用.int。国际性的组织可在 .int 下注册。
(3) 通用顶级域名 gTLD:最早的顶级域名是:
.com表示公司企业
.net表示网络服务机构
.org表示非赢利性组织
.edu表示教育机构(美国专用)
.gov表示政府部门(美国专用)
.mil表示军事部门(美国专用)
(四)新增加了七个通用顶级域名
(1).aero 用于航空运输企业
(2).biz 用于公司和企业
(3).coop 用于合作团体
(4).info适用于各种情况
(5).museum用于博物馆
(6).name用于个人
(7).pro用于会计、律师和医师等自由职业者
三、FTP的基本工作原理(非常重要,在很多公司都要求你具备这一基本的操作能力)
(一)
(1)网络环境中的一项基本应用就是将文件从一台计算机中复制到另一台可能相距很远的计算机中。
(2)初看起来,在两个主机之间传送文件是很简单的事情。
(3)其实这往往非常困难。原因是众多的计算机厂商研制出的文件系统多达数百种,且差别很大。
(二)网络环境下复制文件的复杂性
(1) 计算机存储数据的格式不同。
(2)文件的目录结构和文件命名的规定不同。
(3) 对于相同的文件存取功能,操作系统使用的命令不同。
(4) 访问控制方法不同。
(三)FTP特点
(1)文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。
(2)FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
(3)FTP使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
(四)主进程的工作步骤如下
(1)打开熟知端口(端口号为21),使客户进程能够连接上。
(2)等待客户进程发出连接请求。
(3)启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
(4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行
(五)FTP使用的两个TCP连接
(1)控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
(2)实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
(3)数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
(六)两个不同的端口号
(1)当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
(2)接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。
(3)由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。(备注:使用两个独立的连接的主要好处是使协议更加简单和更容易实现。在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)。)
(七)FTP的屏幕信息举例(详细资料读者可以下载相关的教程或应用软件)推荐网站:――――
[01] ftp nic.ddn.mil
[02] connected to nic.ddn.mil
[03] 220 nic FTP server (Sunos 4.1)ready.
[04] Name: anonymous
[05] 331 Guest login ok, send ident as password.
[06] Password: [email protected]
[07] 230 Guest login ok, access restrictions apply.
[08] ftp> cd rfc
[09] 250 CWD command successful.
[10] ftp> get rfc1261.txt nicinfo
[11] 200 PORT command successful.
[12] 150 ASCII data connection for rfc1261.txt
(128.36.12.27,1401) (4318 bytes).
[13] 226 ASCII Transfer complete.
local: nicinfo remote: rfc1261.txt
4488 bytes received in 15 seconds (0.3 Kbytes/s).
[14] ftp> quit
[15] 221 Goodbye.
详细解释:
[01] ftp nic.ddn.mil
[01] 用户要用 FTP 和远地主机(网络信息中心
NIC 上的主机)建立连接。
[02] connected to nic.ddn.mil
[02]本地 FTP 发出的连接成功信息。
[03] 220 nic FTP server (Sunos 4.1)ready.
[03] 从远地服务器返回的信息,220 表示“服务就绪”
[04] Name: anonymous
[04] 本地 FTP 提示用户键入名字。用户键入的名字
表示“匿名”。用户只需键入 anonymous 即可。
[05] 331 Guest login ok, send ident as password.
[05] 数字 331 表示“用户名正确”,需要口令。
[06] Password: [email protected]
[06] 本地 FTP 提示用户键入口令。用户这时可键入
guest 作为匿名的口令,也可以键入自己的电子邮件
地址,即耶鲁大学数学系名为 xyz 的主机上的 abc。
[07] 230 Guest login ok, access restrictions apply.
[07] 数字 230 表示用户已经注册完毕。
[08] ftp> cd rfc
[08] “ftp>”是 FTP 的提示信息。用户键入的是将
目录改变为包含 RFC 文件的目录。
[09] 250 CWD command successful.
[09] 字符 CWD 是 FTP 的标准命令,
代表 ChangeWorking Directory。
[10] ftp> get rfc1261.txt nicinfo
[10] 用户要求将名为 rfc1261.txt 的文件复制到
本地主机上,并改名为 nicinfo。
[11] 200 PORT command successful.
[11] 字符 PORT 是 FTP 的标准命令,表示要
建立数据连接。200 表示“命令正确”。
[12] 150 ASCII data connection for rfc1261.txt
(128.36.12.27,1401) (4318 bytes).
[12] 数字 150 表示“文件状态正确,
即将建立数据连接”。
[13] 226 ASCII Transfer complete.
local: nicinfo remote: rfc1261.txt
4488 bytes received in 15 seconds (0.3 Kbytes/s).
[13] 数字 226 是“释放数据连接”。
现在一个新的本地文件已产生。
[14] ftp> quit
[14] 用户键入退出命令
[15] 221 Goodbye.
[15] 表明 FTP 工作结束。
(八)NFS采用另一种思路
NFS(网络文件系统,Network File System)是由美国SUN微系统公司开发的一个协议,它能使计算机系统通过网络访问其它计算机系统的目录和文件,就好象这些文件被存储在本地硬盘上一样。
(1)NFS允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。
(2)NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。
(3)对于上述例子,计算机 A 的 NFS 客户软件,把要添加的数据和在文件后面写数据的请求一起发送到远地的计算机 B 的 NFS 服务器。NFS 服务器更新文件后返回应答信息。
(4)在网络上传送的只是少量的修改数据。
四、简单文件传送协议TFTP(Trivial File Transfer Protocol)
(一)
(1)是一个很小且易于实现的文件传送协议。
(2)TFTP使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。(在这里我要罗嗦几句:您可能会疑问停止等待协议里边有确认和重传,而TFTP所使用的是UDP数据报方式,都很清楚UDP数据报呢是非面向连接的即没有重传和确认,那么怎么它的工作方式还和停止等待协议相类似呢?问题关键在于这里的确认重传也好、差错纠错也好,都是由上层应用软件来实现的,而不是我们想象的在数据链路层实现。)
(3)TFTP只支持文件传输而不支持交互。
(4)TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
(二)TFTP的主要特点是什么?
(1) 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节。
(2) 数据 PDU 也称为文件块(block),每个块按序编号,从 1 开始。
(3) 支持 ASCII 码或二进制传送。
(4) 可对文件进行读或写。
(5) 使用很简单的首部。
(三)TFTP 的工作很像停止等待协议
(1)发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。
(2)发完数据后在规定时间内收不到确认就要重发数据 PDU。
(3)发送确认 PDU 的一方若在规定时间内收不到下一个文件块,也要重发确认 PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。
(4)在一开始工作时。TFTP 客户进程发送一个读请求 PDU 或写请求 PDU 给 TFTP 服务器进程,其熟知端口号码为 69。
(5)TFTP 服务器进程要选择一个新的端口和 TFTP 客户进程进行通信。
(6)若文件长度恰好为 512 字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据 PDU。
(7)若文件长度不是 512 字节的整数倍,则最后传送数据 PDU 的数据字段一定不满512字节,这正好可作为文件结束的标志。
五、按远程终端协议 TELNET
(一)TELNET用TCP进行连接时使用网络虚拟终端 NVT 格式
(1)TELNET是一个简单的远程终端协议,也是因特网的正式标准。
(2)用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或IP地址)。
(3)TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
(二)客户服务器方式
(1)现在由于 PC 机的功能越来越强,用户已较少使用 TELNET 了。
(2)TELNET也使用客户服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。
(3)和 FTP的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。
六、电子邮件
(一)概述
(1)电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。
(2)电子邮件把邮件发送到 ISP 的邮件服务器,并放在其中的收信人邮箱中,收信人可随时上网到 ISP 的邮件服务器进行读取。
(3)电子邮件不仅使用方便,而且还具有传递迅速和费用低廉的优点。
(4)现在电子邮件不仅可传送文字信息,而且还可附上声音和图像。
(二)电子邮件的一些标准
(1)在 1982年制定出简单邮件传送协议 SMTP (Simple Mail Transfer Protocol) 和因特网文本报文格式,它们都已成为因特网的正式标准。
(2)1993年提出了通用因特网邮件扩充 MIME (Multipurpose Internet Mail Extensions)。
(3)MIME在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等)。在 MIME 邮件中可同时传送多种类型的数据。
(三)用户代理UA (User Agent) (其实就是邮件服务器,第三方机器)
(1)用户代理 UA 就是用户与电子邮件系统的接口。
(2)用户代理的功能是:撰写、显示和处理。
(3)邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
(4)邮件服务器按照客户服务器方式工作。邮件服务器需要使用两个不同的协议。
(备注:一个邮件服务器既可以作为客户,也可以作为服务器。例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为 SMTP 服务器,而 B是 SMTP 客户。)
a)SMTP协议用于发送邮件。
b)邮局协议 POP (Post Office Protocol) 用于接收邮件。
(四)电子邮件的发送和接收过程
(1) 发信人调用用户代理来编辑要发送的邮件。
用户代理用 SMTP 把邮件传送给发送端邮件服务器。
(2) 发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
(3) 运行在发送端邮件服务器的 SMTP 客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的 SMTP 服务器进程发起 TCP 连接的建立。
(4)TCP 连接建立后,SMTP 客户进程开始向远程的 SMTP 服务器进程发送邮件。当所有的待发送邮件发完了,SMTP 就关闭所建立的 TCP 连接。
(5)运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取
(6)收信人在打算收信时,调用用户代理,使用 POP3(或 IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回(如果邮箱中有来信的话)。 (备注:这里具体说SMTP服务器我认为是不够准确的,应该为SMTP服务进程。这个进程在两端的软件上都有,在代理服务器上也会运行这个进程。)
(五)电子邮件的组成
(1)电子邮件由信封(envelope)和内容(content)两部分组成。
(2)电子邮件的传输程序根据邮件信封上的信息来传送邮件。用户在从自己的邮箱中读取邮件时才能见到邮件的内容。
(3)在邮件的信封上,最重要的就是收信人的地址。
(六)电子邮件的地址格式(这个就很简单了,大家每天都在用)
(1)TCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下:
a)收信人邮箱名@邮箱所在主机的域名
(2)符号“@”读作“at”,表示“在”的意思。
(3)例如,电子邮件地址 [email protected]
前面的:这个用户名在该域名的范围内是惟一的。
后面的:邮箱所在的主机的域名在全世界必须是惟一的
(七)简单邮件传送协议SMTP
(1)SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。
(2)由于 SMTP使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。
(3)SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。
(八)SMTP的通信的三个阶段
(1)连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。
(2)邮件传送
(3)连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
(九)邮件读取协议POP3 和 IMAP
(1)邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。
(2)POP也使用客户服务器的工作方式。
(3)在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。
七、万维网 WWW
(一)概述(万维网提供分布式服务)
(1)万维网 WWW (World Wide Web)并非某种特殊的计算机网络。
(2)万维网是一个大规模的、联机式的信息储藏所。
(3)万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
(4)这种访问方式称为“链接”。
(二)超媒体与超文本
(1)万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
(2)一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
(3)超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
(三)万维网的工作方式
(1)万维网以客户服务器方式工作。
(2)浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
(3)客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
(4)在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
(四)超文本传输协议HTTP
(1)HTTP的操作过程:
a)为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
b)从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
(2)用户点击鼠标后所发生的事件
a)浏览器分析超链指向页面的 URL。
b)浏览器向 DNS 请求解析 [url]www.tsinghua.edu.cn[/url] 的 IP 地址。
c)域名系统 DNS 解析出清华大学服务器的 IP 地址。
d)浏览器与服务器建立 TCP 连接
e)浏览器发出取文件命令:
1.GET /chn/yxsz/index.htm。
f)服务器 给出响应,把文件 index.htm 发给浏览器。
g)TCP 连接释放。
h)浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
(3)HTTP 的主要特点
a)HTTP是面向事务的客户服务器协议。
b)HTTP1.0 协议是无状态的(stateless)。
c)HTTP协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
d)万维网浏览器就是一个 HTTP 客户,而在万维网服务器等待 HTTP 请求的进程常称为 HTTP daemon,有的文献将它缩写为 HTTPD。
e)HTTPdaemon 在收到 HTTP 客户的请求后,把所需的文件返回给 HTTP 客户。
(4)HTTP 的报文结构
HTTP 有两类报文:
a)请求报文——从客户向服务器发送请求报文。(请求行包括方法、URL版本、回车换行CRLF;详细说明:版本是http的版本)
b)响应报文——从服务器到客户的回答。
c)由于HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。
(备注A:报文由三个部分组成,即开始行其实就是状态行类型的、首部行和实体主体。状态行包括三项内容:即http版本、状态码、以及解释状态码的简单词语。在请求报文中,开始行就是请求行。“方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。)
(备注B:状态码都是三位数字
A.1xx表示通知信息的,如请求收到了或正在进行处理。
B.2xx表示成功,如接受或知道了。
C.3xx表示重定向,表示要完成请求还必须采取进一步的行动。
D.4xx表示客户的差错,如请求中有错误的语法或不能完成。
E.5xx表示服务器的差错,如服务器失效无法完成请求。)
(5)HTTP 请求报文的一些方法 (说到这里呢,学过java开发和JSP开发的人应该对这些方法有些眼熟或者很熟,尤其是get和post方法)
方法(操作) 意义
a) OPTION 请求一些选项的信息
b) GET 请求读取由URL所标志的信息
c) HEAD 请求读取由URL所标志的信息的首部
d) POST 给服务器添加信息(例如,注释)
e) PUT 在指明的URL下存储一个文档
f) DELETE 删除指明的URL所标志的资源
g) TRACE 用来进行环回测试的请求报文
h) CONNECT 用于代理服务器