6.1 域名系统DNS
6.1.1 域名系统概述
许多应用层软件经常直接使用域名系统DNS (Domain NameSystem),但计算机的用户只是间接而不是直接使用域名系统。 互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS。 名字到IP地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
6.1.2 互联网的域名结构
?6.1.3 域名服务器
?
6.2 文件传送协议
6.2.1 FTP 概述
文件传送协议FTP (File Transfer Protocol)是互联网上使用得最广泛的文件传送协议。 FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。 FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。 RFC 959很早就成为了互联网的正式标准。
6.2.2 FTP 的基本工作原理
打开熟知端口(端口号为21),使客户进程能够连接上。 等待客户进程发出连接请求。 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
?
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进 程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。 接着,服务器进程用自己传送数据的熟知端口(20) 与客户进程所提供的端口号码建立数据传送连接。(主动方式) 由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
6.2.3 简单文件传送协议TFTP
TFTP (Trivial File Transfer Protocol)是一个很小且易于实现的文件传送协议。 TFTP使用客户服务器方式和使用UDP数据报,因此TFTP需要有自己的差错改正措施。 TFTP只支持文件传输而不支持交互。 TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
6.3 远程终端协议TELNET
TELNET是一个简单的远程终端协议,也是互联网的正式标准。 用户用TELNET就可在其所在地通过TCP连接注册(即登录)到远地的另一个主机上(使用主机名或IP地址) TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
?
客户软件把用户的击键和命令转换成NVT格式,并送交服务器。 服务器软件把收到的数据和命令,从NVT格式转换成远地系统所需的格式。 向用户返回数据时,服务器把远地系统的格式转换为NVT格式,本地客户再从NVT格式转换到本地系统所需的格式。?
6.4 万维网www
6.4.1 万维网概述
万维网www (World Wide Web)并非某种特殊的计算机网络。 万维网是一个大规模的、联机式的信息储藏所。 万维网用链接的方法能非常方便地从互联网_上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。 这种访问方式称为"链接'
万维网采用客户——服务器模式
6.4.2 统一资源定位符URL
1. URL的格式
2.使用HTTP的URL
?
6.4.3超文本传送协议HTTP
1. HTTP的操作过程
?
http特点
HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。 HTTP协议本身也是无连接的,虽然它使用了面向连接的TCP向.上提供的服务。 HTTP是面向事务的客户服务器协议。 HTTP 1.0协议是无状态的(stateless).
2.代理服务器
代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出HTTP请求。 万维网高速缓存把最近的一-些请求和响应暂存在本地磁盘中。 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按URL的地址再去互联网访问该资源。
3. HTTP的报文结构
有两种报文格式,请求报文和响应报文
请求报文:
响应报文:?
?状态码:
1xx表示通知信息的,如请求收到了或正在进行处理。 2xx表示成功,如接受或知道了。 3xx表示重定向,表示要完成请求还必须采取进一步的行动。 4xx表示客户的差错,如请求中有错误的语法或不能完成。 5xx表示服务器的差错,如服务器失效无法完成请求。
4.在服务器上存放用户的信息
万维网站点可以使用Cookie来跟踪用户。 Cookie表示在HTTP服务器和客户之间传递的状态信息。 使用Cookie的网站服务器为用户产生一个唯一 的识别码。 利用此识别码,网站就能够跟踪该用户在该网站的活动。
6.4.4 万维网的文档
1.超文本标记语言HTML
仅当HTML文档是以.html或.htm为后缀时,浏览器才对此文档的各种标签进行解释。 如HTML文档改换以.txt为其后缀,则HTML解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。 当浏览器从服务器读取HTML文档后,就按照HTML文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。
HTML还规定了链接的设置方法。每个链接都有一个起点和终点。 远程链接:超链的终点是其他网点上的页面。 本地链接:超链指向本计算机中的某个文件。
XML (Extensible Markup Language)是可扩展标记语言,它和HTML很相似。 但XML的设计宗旨是传输数据,而不是显示数据(HTML 是为了在浏览器上显示数据)XML不是要替换HTML,而是对HTML的补充。
XHTML (Extensible HTML)是可扩展超文本标记语言,它与HTML 4.01几乎是相同的。 但XHTML是更严格的HTML版本,也是一个W3C标准(2000年1月),是作为一种XML应用被重新定义的HTML,并将逐渐取代HTML。 新的浏览器都支持XHTML。
CSS (Cascading Style Sheets)是层叠样式表,它是一种样式表语言,用于为HTML文档定义布局。 CSS与HTML的区别就是: HTML用于结构化内容,而CSS则用于格式化结构化的内容。
2.动态万维网文档
静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。 动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。 动态文档和静态文档之间的主要差别体现在服务器一端。这主要是文档内容的生成方法不同。而从浏览器的角度看,这两种文档并没有区别。
CGI (Common Gateway Interface)是一种标准,它定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用。. 万维网服务器与CGI的通信遵循CGI标准。 "通用”: CGI标准所定义的规则对其他任何语言都是通用的。 “网关”: CGI程序的作用像网关。 “接口”:有一些已定义好的变量和调用等可供其他CGI程序使用。
CGI程序的正式名字是CGI脚本(script)。 ”脚本”指的是一个程序,它被另-个程序(解释程序)而不是计算机的处理机来解释或执行。 脚本运行起来要比一般的编译程序要慢,因为它的每一条指令先要被另一个程序来处理(这就要一些附加的指令),而不是直接被指令处理器来处理。
3.活动万维网文档
活动文档(active document)技术把所有的工作都转移给浏览器端。 每当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行。 活动文档程序可与用户直接交互,并可连续地改变屏幕的显示。 由于活动文档技术不需要服务器的连续更新传送,对网络带宽的要求也不会太高。
?
由美国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的浏览器需要有HTML解释程序和Java小应用程序解释程序。解释程序的核心是一个模仿计算机的简单循环。解释程序维持一个指令指针, 在初始化时指在小应用程序的开始处。在每一次循环操作时,解释程序在指令指针指向的地址读取字节码。然后解释程序对字节码进行解码,并完成指明的操作。
6.4.5 万维网的信息检索系统
1.全文检索搜索和分类目录搜索
在万维网中用来进行搜索的程序叫做搜索引擎。 全文检索搜索引擎是一种纯技术型的检索工具。 它的工作原理是通过搜索软件到互联网上的各网站收集信息,找到-个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一 个很大的在线数据库供用户查询。 用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在互联网上检索到的信息)
分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。 分类目录搜索也叫做分类网站搜索。
垂直搜索引擎(Vertical Search Engine)针对某-特定领域、特定人群或某一特定需求提供搜索服务。 垂直搜索也是提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。
6.4.6 博客和微博
1.博客
博客是万维网日志(weblog)的简称。也有人把blog进行音译,译为“部落格”,或“部落阁”。还有人用"博文”来表示"博客文章”。
2.微博
微博就是微型博客(microblog),又称为微博客。
3.轻博
轻博就是轻博客(light blogging)。 轻博客是一种介于博客和微博之间的网络服务,同样为用户提供生成内容表达自己的平台。 轻博可以发送博文,没有字数限制。 轻博发表后,其界面会好看些。 在轻博中,推荐与发现的内容比较丰富。
6.4.7 社交网站
本博文发表于2022年,出生在互联网时代的人应该都清楚我们目前潮流的社交网站。
6.5 电子邮件
6.5.1电子邮件概述
电子邮件(e-mail):指使用电子设备交换的邮件及其方法。 电子邮件是互联网上使用得最多的和最受用户欢迎的一种应用。 优点:使用方便,传递迅速,费用低廉,可以传送多种类型的信息(包括:文字信息,声音和图像等)。
电子邮件的重要标准
简单邮件发送协议: SMTP 互联网文本报文格式 通用互联网邮件扩充MIME 邮件读取协议: POP3和IMAP
?
用户代理UA (User Agent)
用户代理UA就是用户与电子邮件系统的接口,是电子邮件客户端软件。 用户代理的功能:撰写、显示、处理和通信。 邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。 邮件服务器按照客户-服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议。
6.5.2 简单邮件传送协议SMTP
1.连接建立:连接是在发送主机的SMTP客户和接收主机的SMTP服务器之间建立的。SMTP不使用中间的邮件服务器。 2.邮件传送 3.连接释放:邮件发送完毕后,SMTP应释放TCP连接。
6.5.3 电子邮件的信息格式
6.5.4 邮件读取协议POP3和IMAP
两个常用的邮件读取协议: 1. POP3:邮局协议(Post Office Protocol)第3个版本. 2. IMAP:网际报文存取协议(Internet Message Access Protocol)
?
6.5.5 基于万维网的电子邮件
?
6.5.6 通用互联网邮件扩充MIME?
SMTP有以下缺点: ●SMTP不能传送可执行文件或其他的二进制对象。 ●SMTP限于传送7位的ASCII码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。 ●SMTP服务器会拒绝超过一定长度的邮件。 ●某些SMTP的实现并没有完全按照[RFC 821]的SMTP标准。
1. MIME 概述
通用互联网邮件扩充MIME并没有改动SMTP或取代它。 MIME的意图是继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。
MIME三部分
5个新的邮件首部字段,它们可包含在原有首部中。这些字段提供了有关邮件主体的信息。 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。
2.内容传送编码(Content-Transfer- Encoding)
?
3.内容类型
MIME着标准规定Content-Type说明必须含有两个标识符,即内容类型(type)和子类型(subtype),中间用"I" 分开。 MIME标准原先定义了7个基本内容类型和15种子类型。 MIME允许发件人和收件人自己定义专用的内容类型。但为避免可能出现名字冲突,标准要求为专用的内容类型选择的名字要以字符串X-开始。
6.6 动态主机配置协议DHCP
在协议软件中,给协议参数赋值的动作叫做协议配置。一个协议软件在使用之前必须是已正确配置的。连接到互联网的计算机的协议软件需要配置的参数包括: 1. IP地址 2.子网掩码 3.默认路由器的IP地址 4.域名服务器的IP地址
互联网广泛使用的动态主机配置协议DHCP (Dynamic Host Configuration Protocol)提供了即插即用连网(plug-and-playnetworking)的机制。这种机制允许一台计算机加入新的网络和获取 IP地址,而不用手工配置。DHCP给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址。
DHCP基于UDP工作,DHCP服务器运行在67号端口,DHCP客户运行在68号端口。并不是每个网络上都有DHCP服务器,这样会使DHCP服务器的数量太多。现在是每一个网络至少有一个DHCP中继代理,它配置了DHCP服务器的IP地址信息。当DHCP中继代理收到主机发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再将此提供报文发回给主机。
6.7 简单网络管理协议SNMP
6.7.1网络管理的基本概念
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能,服务质量等。网络管理常简称为网管。网络管理并不是指对网络进行行政上的管理。
五大功能
故障管理:故障检测、隔离和纠正。 配置管理:初始化网络、并配置网络。 计费管理:记录网络资源的使用。 性能管理:估价系统资源的运行状况及通信效率等。 网络安全管理:对授权机制、 访问控制、加密和加密关键字的管理。
?管理站也常称为网络运行中心NOC (Network Operations Center),是网络管理系统的核心。 管理程序在运行时就成为管理进程。 管理站(硬件)或管理程序(软件)都可称为管理者(manager)。 Manager不是指人,而是指机器或软件。 网络管理员(administrator)指的是负责网络管理的人员。 大型网络往往实行多级管理,因而有多个管理者,而一个管理者一般只管理本地网络的设备。
简单网络管理协议SNMP (Simple Network Management Protocol)中的管理程序和代理程序按客户-服务器方式工作。 管理程序运行SNMP客户程序,向某个代理程序发出请求(或命令),代理程序运行SNMP服务器程序,返回响应(或执行某个动作)。在网管系统中,往往是一个(或少数几个)客户程序与很多的服务器程序进行交互。.
SNMP最重要的指导思想就是要尽可能简单。 SNMP的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。 在网络正常工作时,SNMP可实现统计、配置、和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。 虽然SNMP是在TCP/IP基础上的网络管理协议,但也可扩展到其他类型的网络设备上。
SNMP的网络管理由三个部分组成: 1.SNMP本身 2.管理信息结构SMI (Structure of Management Information) 3.管理信息库MIB (Management Information Base)。
6.7.2 管理信息结构SMI
SMI的功能: 1.被管对象应怎样命名; 2.用来存储被管对象的数据类型有哪些种; 3.在网络上传送的管理数据应如何编码。
6.7.3 管理信息库MIB
被管对象必须维持可供管理程序读写的若3 F控制和状态信息。这些信息总称为管理信息库MIB (Management Information Base)。管理程序使用MIB中这些信息的值对网络进行管理(如读取或重新设置这些值)。只有在MIB中的对象才是SNMP所能够管理的。
6.7.4 SNMP的协议数据单元和报文
SNMP的操作只有两种基本的管理功能: 1.“读”操作,用get报文来检测各被管对象的状况; 2.“写”操作,用set报文来改变各被管对象的状况。 SNMP的这些功能通过探询操作来实现。
探询操作一SNMP 管理进程定时向被管理设备周期性地发送探询信息。 探询的好处: 1.可使系统相对简单。 2.能限制通过网络所产生的管理信息的通信量。 探询的缺点: 1.不够灵活,而且所能管理的设备数目不能太多 。 2.开销也较大。
SNMP不是完全的探询协议,它允许不经过询问就能发送某些信息。这种信息称为陷阱,表示它能够捕捉"事件”。 当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件(即过滤)。 过滤的好处是: 1.仅在严重事件发生时才发送陷阱; 2.陷阱信息很简单且所需字节数很少。
SNMP使用无连接的UDP。但UDP不保证可靠交付。 在运行代理程序的服务器端用熟知端口161来接收get或set报文和发送响应报文(与熟知端口通信的客户端使用临时端口)。 运行管理程序的客户端则使用熟知端口1 62来接收来自各代理的trap报文。
?
6.8 应用进程跨越网络的通信
6.8.1系统调用和应用编程接口
大多数操作系统使用系统调用(system call )的机制在应用程序和操作系统之间传递控制权。 对程序员来说,每一个系统调用和一般程序设计中的函数调用非常相似,只是系统调用是将控制权传递给了操作系统。
系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口。 使用系统调用之前要编写- -些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用接口又称为应用编程接口API (Application Programming Interface) 。
Berkeley UNIX操作系统定义了-种API,它又称为套接字接口(socket interface)。 微软公司在其操作系统中采用了套接字接口API, 形成了一个稍有不同的API,并称之为Windows Socket。 AT&T为其UNIX系统V定义了一种API,简写为TLI(Transport Layer Interface)。
6.8.2 几种常用的系统调用
6.9 P2P应用
P2P工作方式概述
?
6.9.1 具有集中目录服务器的P2P工作方式?
Napster最早使用P2P技术,提供免费下载MP3音乐。 Napster将所有音乐文件的索引信息都集中存放在Napster目录服务器中。 使用者只要查找目录服务器,就可知道应从何处下载所要的MP3文件。 用户要及时向Napster的目录服务器报告自己存有的音乐文件。 Napster的文件传输是分散的,文件的定位则是集中的。
6.9.2 具有全分布式结构的P2P文件共享程序
Gnutella是第二代P2P文件共享程序,采用全分布方法定位内容的P2P文件共享应用程序。 Gnutella与Napster最大的区别是:不使用集中式的目录服务器, 而是使用洪泛法在大量Gnutella用户之间进行查询。 为了不使查询的通信量过大,Gnutella 设计了一种有限范围的洪泛查询,以减少倾注到互联网的查询流量,但也影响到查询定位的准确性。
6.9.3 P2P 文件分发的分析
?
6.9.4 在P2P对等方中搜索对象
现在广泛使用的索引和查找技术叫做分布式散列表DHT(Distributed Hash Table)。DHT也可译为分布式哈希表,它是由大量对等方共同维护的散列表。广泛使用的Chord算法是美国麻省理工大学于2001年提出的。
|