应用层
- 应用层协议的特点
- 每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。
- 应用层的许多协议都是基于客户服务器方式。
域名系统 DNS
- 域名系统概述
- 许多应用层软件经常直接使用域名系统 DNS** (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。
- 互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。
- 名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
- 互联网的域名结构
- 互联网采用了层次树状结构的命名方法。
- 任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
- 域名的结构由标号序列组成,各标号之间用点隔开:… . 三级域名 . 二级域名 . 顶级域名
- 各标号分别代表不同级别的域名。
- 顶级域名 TLD(Top Level Domain)
- 国家顶级域名 nTLD
- .cn 表示中国,
- .us 表示美国,
- .uk 表示英国,等等。
- 通用顶级域名 gTLD
- 最早的顶级域名是:
- .com(公司和企业)
- .net(网络服务机构)
- .org(非赢利性组织)
- .edu(美国专用的教育机构)
- .gov(美国专用的政府部门)
- .mil(美国专用的军事部门)
- .int(国际组织)
- 基础结构域名 (infrastructure domain)
- 这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。
- 国家顶级域名 nTLD
- 域名服务器
- 一个服务器所负责管辖的(或有权限的)范围叫做区 (zone)。
- 各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。
- 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。
- DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。
- 域名服务器有以下四种类型
- 根域名服务器
- 根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
- 不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
- 在互联网上共有 13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从 a 一直到 m(前 13 个字母)。(a.rootservers.net,b.rootservers.net ……)
- 根域名服务器共有 13 套装置,不是 13 个机器。
- 顶级域名服务器
- 顶级域名服务器(即 TLD 服务器,Top Level Domain)负责管理在该顶级域名服务器注册的所有二级域名。
- 当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
- 权限域名服务器
- 责一个区的域名服务器。
- 当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器
- 本地域名服务器
- 本地域名服务器对域名系统非常重要。
- 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
- 每一个互联网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,
- 这种域名服务器有时也称为默认域名服务器。
- 根域名服务器
- 域名的解析过程
- 主机向本地域名服务器的查询一般都是采用递归查询。
- 本地域名服务器向根域名服务器的查询通常是采用迭代查询。
- 主机向本地域名服务器的查询一般都是采用递归查询。
文件传输协议
- FTP概述
- 文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。
- FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
- FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
- FTP 的基本工作原理
- FTP 特点
- 文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。
- FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
- FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
- 主进程的工作步骤
- 打开熟知端口(端口号为 21),使客户进程能够连接上。
- 等待客户进程发出连接请求。
- 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
- 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
- 两个连接
- 控制连接(21)在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
- 实际用于传输文件的是“数据连接(20)”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
- 数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
- 两个不同的端口号
- 客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口 (21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
- 接着,服务器进程用自己传送数据的熟知端口 (20) 与客户进程所提供的端口号码建立数据传送连接。
- 由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
- 好处:
- 使协议更加简单和更容易实现。
- 在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)。
- FTP 特点
- 简单文件传送协议 TFTP
- TFTP (Trivial File Transfer Protocol) 是一个很小且易于实现的文件传送协议。
- TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。
- TFTP 只支持文件传输而不支持交互。
- TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
远程终端协议 TELNET
- TELNET 是一个简单的远程终端协议,也是互联网的正式标准。
- 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。
- TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
万维网
- 万维网概述
- 万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。
- 万维网是一个大规模的、联机式的信息储藏所。
- 万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
- 这种访问方式称为“链接”。
- 超媒体与超文本
- 万维网是分布式超媒体 (hypermedia) 系统,它是超文本 (hypertext) 系统的扩充。
- 一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在互联网上的超文本系统中。超文本是万维网的基础。
- 超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
- 万维网的工作方式
- 万维网以客户-服务器方式工作。
- 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
- 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
- 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。
- 万维网必须解决的问题
- 怎样标志分布在整个互联网上的万维网文档?
- 使用统一资源定位符 URL (Uniform Resource Locator) 来标志万维网上的各种文档。
- 使每一个文档在整个互联网的范围内具有唯一的标识符 URL。
- 用何协议实现万维网上各种超链的链接?
- 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
- HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
- 怎样使各种万维网文档都能在互联网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
- 超文本标记语言 HTML (HyperText Markup Language) 使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
- 怎样使用户能够很方便地找到所需的信息?
- 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。
- 怎样标志分布在整个互联网上的万维网文档?
- 统一资源定位符 URL
- URL的格式
- 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。
- URL 的一般形式是:
- URL的格式
- 超文本传送协议 HTTP
- HTTP 的操作过程
- 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
- 从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
- 用户点击 URL http://www.tsinghua.edu.cn/chn/yxsz/index.htm 后所发生的事件
- (1) 浏览器分析超链指向页面的 URL。
- (2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。
- (3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。
- (4) 浏览器与服务器建立 TCP 连接。
- (5) 浏览器发出取文件命令:GET /chn/yxsz/index.htm。
- (6) 服务器给出响应,把文件 index.htm 发给浏览器。
- (7) TCP 连接释放。
- (8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
- HTTP 的主要特点
- HTTP 是面向事务的客户服务器协议。
- HTTP 1.0 协议是无状态的 (stateless)。
- HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
- 持续连接
- HTTP/1.1 协议使用持续连接 (persistent connection)。
- 万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。
- 这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。
- 目前一些流行的浏览器(例如,IE 6.0)的默认设置就是使用 HTTP/1.1。
- 持续连接的两种工作方式
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求。这比非持续连接的两倍 RTT 的开销节省了建立 TCP 连接所需的一个 RTT 时间。但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
- 流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个 RTT 时间,使 TCP 连接中的空闲时间减少,提高了下载文档效率。
- 代理服务器
- 代理服务器 (proxy server) 又称为万维网高速缓存 (Web cache),它代表浏览器发出 HTTP 请求。
- 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。
- 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去互联网访问该资源。
- HTTP 的报文结构
- HTTP 有两类报文:
- 请求报文——从客户向服务器发送请求报文。
- 响应报文——从服务器到客户的回答。
- 由于 HTTP 是面向正文的 (text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。
- HTTP 有两类报文:
- 在服务器上存放用户的信息
- 万维网站点使用 Cookie 来跟踪用户。
- Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。
- 使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。
- HTTP 的操作过程
- 万维网的文档
- 超文本标记语言 HTML
- XML
- XML (Extensible Markup Language)是可扩展标记语言,它和HTML很相似。
- 但XML的设计宗旨是传输数据,而不是显示数据(HTML是为了在浏览器上显示数据)。
- XHTML
- XHTML (Extensible HTML) 是可扩展超文本标记语言,它与 HTML 4.01 几乎是相同的。
- CSS
- CSS (Cascading Style Sheets) 是层叠样式表,它是一种样式表语言,用于为 HTML 文档定义布局。
- XML
- 动态万维网文档
- 静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。
- 动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。
- 动态文档和静态文档之间的主要差别体现在服务器一端。这主要是文档内容的生成方法不同。而从浏览器的角度看,这两种文档并没有区别。
- 超文本标记语言 HTML
- 万维网的信息检索系统
- 全文检索搜索和分类目录搜索
- 在万维网中用来进行搜索的程序叫做搜索引擎。
- 全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到互联网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。
- 用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在互联网上检索到的信息)。
- 分类目录搜索
- 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。
- 分类目录搜索也叫做分类网站搜索。
- 最著名的全文检索搜索引擎:
- Google(谷歌)(www.google.com)
- 百度 (www.baidu.com)
- 最著名的分类目录搜索引擎:
- 雅虎 (www.yahoo.com)
- 雅虎中国 (cn.yahoo.com)
- 新浪 (www.sina.com)
- 搜狐 (www.sohu.com)
- 网易 (www.163.com)
- 全文检索搜索和分类目录搜索
电子邮件
- 电子邮件概述
- 电子邮件的一些标准
- 发送邮件的协议:SMTP
- 读取邮件的协议:POP3 和 IMAP
- MIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。
- 电子邮件的最主要的组成构件
- 电子邮件的一些标准
- 简单邮件传送协议 SMTP
- SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。
- 由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。
- SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。
- SMTP 通信的三个阶段
- 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。
- 邮件传送
- 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
动态主机配置协议 DHCP
- 互联网广泛使用的动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制。
- 这种机制允许一台计算机加入新的网络和获取IP 地址而不用手工参与。
- DHCP 使用客户-服务器方式
- 需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送*发现报文*(DHCPDISCOVER),这时该主机就成为 DHCP 客户。
- 本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。
- DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池(address pool)中取一个地址分配给该计算机。DHCP 服务器的回答报文叫做提供报文(DHCPOFFER)。
- DHCP 中继代理(relay agent)
- 并不是每个网络上都有 DHCP 服务器,这样会使 DHCP 服务器的数量太多。现在是每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。
- 当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。