计算机网络
TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。 但最下面的网络接口层并没有具体内容。 因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
实体(entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
本层的服务用户只能看见服务而无法看见下面的协议。 下面的协议对上面的服务用户是透明的。 协议是“水平的”,即协议是控制对等实体之间通信的规则。 服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。 同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
应用层:
应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
域名只是个逻辑概念,并不代表计算机所在的物理地点。
(1) 国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。 (2) 通用顶级域名 gTLD:最早的顶级域名是: .com (公司和企业) .net (网络服务机构) .org (非赢利性组织) .edu (美国专用的教育机构() .gov (美国专用的政府部门) .mil (美国专用的军事部门) .int (国际组织)
基础结构域名(infrastructure domain):这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。
.aero (航空运输企业) .biz (公司和企业) .cat (加泰隆人的语言和文化团体) .coop (合作团体) .info (各种情况) .jobs (人力资源管理者) .mobi (移动产品与服务的用户和提供者) .museum (博物馆) .name (个人) .pro (有证书的专业人员) .travel (旅游业)
一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。
域名服务器有以下四种类型:根域名服务器 顶级域名服务器 权限域名服务器 本地域名服务器
根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
这就是前面已经讲过的负责一个区的域名服务器
本地域名服务器对域名系统非常重要。
当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。 每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器, 这种域名服务器有时也称为默认域名服务器。
DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
文件传送协议 FTP (File Transfer Protocol) 是因特网上使用得最广泛的文件传送协议。 FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。 FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
网络环境下复制文件的复杂性: (1) 计算机存储数据的格式不同。 (2) 文件的目录结构和文件命名的规定不同。 (3) 对于相同的文件存取功能,操作系统使用的命令不同。 (4) 访问控制方法不同。
文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。 FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。 FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
简单文件传送协议 TFTP:
TFTP 是一个很小且易于实现的文件传送协议。 TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。 TFTP 只支持文件传输而不支持交互。 TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
(1) 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节。 (2) 数据 PDU 也称为文件块(block),每个块按序编号,从 1 开始。 (3) 支持 ASCII 码或二进制传送。 (4) 可对文件进行读或写。 (5) 使用很简单的首部。
TELNET 是一个简单的远程终端协议,也是因特网的正式标准。
万维网 WWW (World Wide Web)并非某种特殊的计算机网络。 万维网是一个大规模的、联机式的信息储藏所。 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。 这种访问方式称为“链接”。
万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。 HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。 URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。 只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。 URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。
HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。
HTTP 有两类报文: 请求报文——从客户向服务器发送请求报文。 响应报文——从服务器到客户的回答。 由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。
远程链接:超链的终点是其他网点上的页面。 本地链接:超链指向本计算机中的某个文件。
通用网关接口 CGI:
CGI 是一种标准,它定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用。 万维网服务器与 CGI 的通信遵循 CGI 标准。 “通用”:CGI 标准所定义的规则对其他任何语言都是通用的。 “网关”:CGI 程序的作用像网关。 “接口”:有一些已定义好的变量和调用等可供其他 CGI 程序使用。
CGI 程序的正式名字是 CGI 脚本(script)。
“脚本”指的是一个程序,它被另一个程序(解释程序)而不是计算机的处理机来解释或执行。
脚本运行起来要比一般的编译程序要慢,因为它的每一条指令先要被另一个程序来处理(这就要一些附加的指令),而不是直接被指令处理器来处理。
活动文档(active document)技术把所有的工作都转移给浏览器端。 每当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行。 活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。 由于活动文档技术不需要服务器的连续更新传送,对网络带宽的要求也不会太高。
用 Java 技术创建活动文档:
由美国 Sun 公司开发的 Java 语言是一项用于创建和运行活动文档的技术。 在 Java 技术中使用 “小应用程序”(applet)来描述活动文档程序。 用户从万维网服务器下载嵌入了 Java 小应用程序的 HTML 文档后,可在浏览器的屏幕上点击某个图像,就可看到动画效果,或在下拉式菜单中点击某个项目,就可看到计算结果。 Java 技术是活动文档技术的一部分。
Java 技术装三个主要组成部分:
(1) 程序设计语言。Java 包含一个新的程序设计语言,用来编写传统的计算机程序和 Java 小应用程序。
(2) 运行(runtime)环境。这是运行 Java 程序所必须的运行环境,其中包括 Java 虚拟机(简称为 JVM),该软件定义了 Java 二进制代码的执行模型。
(3) 类库(class library)。为了更容易编写 Java 小应用程序,Java 提供了强大的类库支持
Java 是一种面向对象的高级语言,从 C++ 派生出来的,它省略了 C++ 很多复杂的、很少用的语言特点。 Java 的每一个数据项都有一个确定的类型。对数据的操作严格按照该数据的类型来进行。 Java 的编译程序将源程序转换成 Java 字节码(bytecode),这是一种与机器无关的二进制代码。计算机程序调用解释程序读取字节码,并解释执行。
计算机硬件无关:
Java 语言、字节码以及 Java 运行系统都被设计成与计算机硬件无关。一旦形成了字节码,就可在任何计算机上运行并产生相同的输出。 Java 小应用程序与机器无关可使在任何计算机上运行的浏览器程序能够下载并运行活动文档。 可保证活动文档在所有的浏览器上产生同样的正确输出。 可大大地降低活动文档的创建和测试费用,因为不必为每一种计算机都制作一个副本。
Java 解释程序:
运行 Java 的浏览器需要有 HTML 解释程序和 Java 小应用程序解释程序。 解释程序的核心是一个模仿计算机的简单循环。 解释程序维持一个指令指针,在初始化时指在小应用程序的开始处。 在每一次循环操作时,解释程序在指令指针指向的地址读取字节码。然后解释程序对字节码进行解码,并完成指明的操作。
全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到因特网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。
分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询
最著名的全文检索搜索引擎: 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 通信的三个阶段:
1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。 2. 邮件传送 3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。