1、网络应用基础实验二基本实验:网络应用层协议的验证网络协议并不是什么神秘的东西,我们通过下列试验,可以对因特网应用层的协议通过实例进行验证,有了实例,在对因特网应用层协议的 RFC 进行阅读和理解就有了感性的基础。这对今后的网络应用开发有重大意义。实验 1:使用 Telnet 访问远程计算机系统及使用 unix 命令实验内容使用 UNIX 命令在系统中发布个人网页。注意事项:因为中心服务器网址调整,实验指导书中的主机地址全部由 202.117.35.70 调整为202.117.165.361. 使用 Windows 98 访问远程计算机系统时, “202.117.35.70”主机的系统管理员已经
2、为每个同学建立了访问帐户,每个同学访问时,可以在自己的学号前加“luo”即可,假设某个同学的学号为99041001,其帐号为“luo 99041001”;2. 每个帐户都未设口令,请各位同学在登录系统后用 passwd 进行口令修改,设置自己的口令;3. 可以在 UNIX 中用 pico 进行网页编辑,最为简单的网页可以用以下代码组成:Hello, Internet!4. 假设把上述语句,存放在一个名为”hello.htm”的文件中,并存放在用户登录时的目录(用户主目录)下的/public_html 目录下,(该目录是 UNIX 系统为每个用户设立的个人网页发布目录) ;5. 使用 Windo
3、ws 的 IE 访问上述网页,其中可能的访问方式是:http:/202.117.35.70/luo99011001/hello.htm6. 需要了解 UNIX 系统一般性操作,可以访问网上的 UNIX 操作入门操作步骤:1. 启动 telnet。2. 登录 UNIX。3. 进入 public_html(个人网页发布目录)4. 启动 pico,编辑测试网页。5. 将网页存成文件,hello.htm6. 用 IE 访问测试网页。实验 2. HTTP 协议验证(需要登录到 UNIX/Linux 系统后进行)一、 HTTP 报文交换过程:C: c:/telnet 202.117.35.70user:j
4、1010C: $telnet 202.117.35.70 80S: Trying 202.117.35.70.S: Connected to 202.117.35.70.S: Escape character is .C: GET /j1010/hello.htm http/1.0C:S: HTTP/1.1 200 OKS: Date: Mon, 10 Mar 2003 00:22:20 GMTS: Server: Apache/1.3.22 (Unix) PHP/4.1.1S: Last-Modified: Fri, 28 Feb 2003 12:18:37 GMTS: ETag: “41c
5、089-19-3e5f539d“S: Accept-Ranges: bytesS: Content-Length: 25S: Connection: closeS: Content-Type: text/htmlS: S: Hello,Internet!S: Connection closed by foreign host.NOTE:C: is client side key in, and S: is info. form Serveruser: is prompt from server, j1010 is one the username for the test system.二、
6、HTTP 的对象存储试将一个网页,例如交大的 WWW 首页存储到微机的“ 桌面”上,观察网页对象的存储方式。实验 3: SMTP 协议的验证(需要登录到 UNIX/Linux 系统后进行):一、 SMTP 报文交换过程:参考下列过程:C: c:/telnet 202.117.35.70user:j1010$telnet 202.117.35.170 25S: 220 X1 NT-ESMTP Server C: HELO S: 250 hello C: MAIL FROM:S: 250 okC: RCPT TO:S: 250 ok its for C: DATAS: 354 ok, send i
7、t; end with .C: Hi, I am in XJTU now,Where are you?C: .S: 250 Message queuedC: QUITS: 221 Goodbye 然后从相应的邮件服务器下载发出的邮件,若使用 Outlook Express 无法直接看到邮件内容,建议将邮件“另存为”某个“桌面”文件,再用“记事本”程序观察邮件的内容。二、 MIME 在邮件报文中的应用:试将某个网页“网站首页”在浏览器中直接发到某个邮件服务器,然后使用 OE 将其收回,然后在 OE(邮件代理) 中将其储存成.eml 文件,再使用“记事本”程序将其打开,逐“部”分析邮件报文的内容。
8、实验 4: POP3 的验证:(需要登录到 UNIX/Linux 系统后进行)参考下列过程:C: c:/telnet 202.117.35.70user:j1010$telnet 202.117.35.170 110见到+OK POP3 server ready 响应后键入 user, pass, list, retr, quit 命令 上述过程可以不使用用户代理,就能察看邮箱中的信件。S: +OK POP3 server ready C: user studentS: +OK C: pass ctecS: +OK user successfully logged onC: list S: 1
9、 498 S: 2 912 S: . C: retr 1 S: S: . C: dele 1 C: retr 2 S: S: . C: dele 2 C: quit S: +OK POP3 server signing off选做实验:Unix 系统的使用背景材料UNIX 与因特网有着很深的渊源,因为因特网的骨干协议 TCP/IP 原来是 UNIX 操作系统中的一个通讯模块。事实上,在今天的因特网上提供的服务主机中,运行 UNIX 类操作系统的主机仍要占绝大多数。A.1 UNIX 基本概念UNIX 帐户与 DOS 操作系统不同,我们在使用 UNIX 前,需要得到一个用户名和口令。通常需要通过系
10、统管理员预先在系统中进行注册。由于 UNIX 是多用户操作系统,作为系统管理员设立新用户的工作的一部分,系统将为新用户建立一个用户主目录和一个电子邮箱(这个邮箱与因特网的邮箱不完全一样,但至少为在同一主机上注册的用户和管理员之间提供了交流手段) ,在 UNIX 中的用户主目录,如同在敞开式办公大厅中的隔断,把磁盘空间用目录的形式分配给每个用户,每个用户可以在自己的目录中进行文件的处理和建立新的子目录以便文件的存档,但未经许可不得进入他人的主目录。当用户的 UNIX 帐户建立后,系统管理员通常确定一个 Shell (UNIX 操作系统和用户之间的接口) ,通常为 Bourne Shell(sh)
11、其命令提示符为$,或 C Shell(csh)其提示符为百分号(%) 之一,对初学者来说,这两种 Shell 之间的差异所可能带来的影响是可以忽略的。UNIX 登录用户可以通过拨号访问或从局域网上的计算机登录到另一个 UNIX 帐户,在我们的实验环境下是使用 Windows #系统中的 Telnet 将 PC 机仿真为终端后再登录网上的 UNIX 主机,用户需要有登录用户名和口令。下面是我们登录到一台运行 Linux 的主机的基本过程:注意,在使用 Telnet 进行登录时,一般情况下,可以使用以下格式,例如:c:telnet 202.117.35.171 /直接使用 UNIX 主机的 IP
12、地址登录;c:telnet /使用 UNIX 主机的域名地址登录;c:telnet 202.117.35.58 3558 /使用 UNIX 主机的 IP 地址加端口号登录。更改口令口令是进入用户帐户的钥匙,是防止他人对 UNIX 系统作未授权的非法访问。为了UNIX 系统的安全,保护用户口令是十分重要的。用户如何管理好自己的口令呢?下面是我们的一些建议: 易于记忆,难以猜测; 至少用六个字符,其中包括两位数字,一个特殊字符; 用六到八个字符(超过八个被忽略 ); UNIX 口令是大小写敏感的,可以在口令中分别使用大小写字母、数字 可以在口令中使用一或多个特殊符号:!$%: 不要用可以在英语或
13、外语字典中找到的单词,常用短语; 周期性地改变口令如果用户忘记了口令,可以同系统管理员接洽并重新设置。用户也可以自行修改,命令为:$passwdUNIX 文件系统UNIX 文件系统由三种不同类型文件的集合组成:1普通文件:包括文本数据、二进制程序或以八位字节存储的信息。2特殊文件:如设备文件,提供用户对终端、打印机、软驱和光驱的访问。3目录:就是包含连接其他文件、目录的指针的文件。与 DOS 类的操作系统采用以卷(盘符)为单位来管理文件的思路不同,UNIX 目录组织看上去只有一个(!)倒置的树,倒置树的高层是根目录,用/表示。根的分支(或顶级目录) 是几个标准的 UNIX 目录,通常称为 bi
14、n、etc、usr 、 tmp 和 lib,这些标准目录是非常重要的,每个都会包括一些特殊用途的文件。所有用户的用户主目录经常配置在/usr目录内部( 在 Linux 系统中,通常为/home中) 。UNIX 文件系统中特别重要的目录有:/bin 这儿 bin 代表二进制。二进制是可执行程序。所以该目录包含许多基本的UNIX 程序。/usr 它包含用户导向的目录。例如,docs 目录包含 UNIX 信息, man 或查阅的联机指南页,等等。/usr/bin 包含面向用户的 UNIX 程序。/usr/spool 包含几个子目录。例如,mail 保存着邮件文件, spool 包含了等待打印的文件,
15、uucp 包含了已经从一个 UNIX 机器拷贝到另一个上的文件。/dev 包含设备文件 UNIX 把任何系统资源,包括设备,当作文件来对待。设备文件用于访问系统的硬件组件。例如,/dev/tty 是系统上的终端。 /dev/floppy 是指系统上的软盘。 /etc 包含许多 UNIX 配置文件。例如,passwd 文件就包含在这个目录中。系统口令文件包含用户 ID,每个用户的密码的加密备份,以及必须在用户登录进系统后立即执行的程序的名称。/etc 目录下的大多数文件是文本文件,可以编辑这些文件来更改系统的配置。在 UNIX 文件系统中文件和目录的位置可以用路径名加文件名表示。路径名的表示法可
16、以是绝对的,如/usr/home/guest/.profile。也可以是相对的,如/httpd/bin/apachectl 。所谓绝对路径是从根目录到需求目录所经过的目录的精确描述,而相对目录是指相对于用户当前所在工作目录的经过路径指示符和其他文件目录计算所得的目录,当用户登录到UNIX 时,用户就处在预先设置在用户主目录之内。了解和掌握下列目录指示符是十分重要的:. 表示用户所在的当前目录; 表示用户所在的当前目录的上一层目录;/ 单独使用或放在路径名的开始表示 UNIX 的根目录;在目录名中间作为不同层次目录之间的分隔(注意这个符号与 DOS 系统中的不一样, DOS 系统中的类似符号为)
17、 。创建和命名文件用户可以在自己主目录中使用编辑器和 Shell 命令创建文件,也可以从远程主机输入文件。尽管在 UNIX 创建文件时的命名的规则是非常自由的,但是仍需要注意一些指导原则: 文件和目录可以使用字母和 09 数字进行命名。用户会发现用小写字母命名普通文件,用大写字母命名目录是很有帮助的,这样当用 ls 命令来显示文件名时,很容易区分目录和文件。 避免文件名用.(英文中的句号)开头。用. 开头的文件名在 UNIX 中将作为隐含文件,如果该文件存在用户主目录中,将会被作为用户登录时的初始化文件处理。这类文件必须用 ls -a 命令才能显示。 使用连字号、下划线在文件名内部分离单词,可
18、增加文件名的可读性。 虽然 UNIX 允许使用,还是建议文件名中避免空格。文件名有空格会带来显示和操作上的麻烦。 对不同类型的文件,采用标准的文件名后缀。创建和命名目录在 UNIX 中,一个目录实际上是一个文件,但不同于一般文件。目录中包含了链接到其他文件和目录的指针,为了创建一个目录,要用 mkdir 命令。例如,输入如下命令创建一个目录,名字叫做 files.to.get,可能希望保存获取的因特网文件:$mkdir file.to.get路径和目录当用户登录到个 UNIX 帐户时,用户已经自动进入了用户的主目录。当用户移动到不同的目录时,用户所处于的目录称为工作目录。如果用户想知道当前工作
19、目录是什么,可使用 pwd 命令来显示(显示结果为绝对路径形式) 。如果用户不知当前自己的工作目录在何处而又想要尽快返回用户主目录,可使用cd 命令返回。目录选择命令 cd 是用来进入各个目录的主要方法,使用时要注意根据需要使用绝对或相对路径名,如:$cd / /移动到 UNIX 的根目录;$cd /移动到当前工作目录上一层的目录$cd public_html /移动到当前工作目录下的一个称为public_html 的目录列出文件和目录与 DOS 系统中的 DIR命令一样, UNIX 使用ls 命令列出目录中的文件(Linux 目前也支持dir 命令,这可能也预示着类 UNIX 系统的发展方向
20、) 。当使用这一命令列文件时,目录名和文件名同时出现。Ls 命令使用的形式(或选项参数很多,在许多类 UNIX 系统中,ls 命令的选项可能超过 26 种,而一般的选项都只用一个字母,这就意味着同一字母的大小写不同其作为选项使用的意义也有差别) 。但常用 ls 命令选项的意义并不复杂,如:$ls /以简约格式列出文件及目录,相当于 DOS 中的DIR /W;$ls -l /以长格式列出文件及目录,相当于 DOS 中的DIR;$ls -la /长格式列出,包括目录中的隐含文件(文件名以.开头的文件);查看文件为了察看文件内容,在 UNIX 中有几种选择。如:$cat myfile该命令(类似 D
21、OS 系统中的 Type 命令)可使文件内容在屏幕上连续滚动地显示,使用Ctrl+s 可以暂停屏幕滚动。另一中方法是 more 命令。如:$more myfile用 more 命令时,在屏幕右下方会出现more字样,同时显示剩余页数的百分比。为继续显示下一屏,可按空格键。要中途退出显示,单击q键。重命名或移动文件如果想重命名一个文件,或者更正在文件名中的拼写错误,可使用 mv 命令:$mv holle hello /这里用 hello 替代 holle,hello 成为新文件名当 mv 命令在个目录内部使用时,它将用新文件名替换旧的文件名(此时该命令的功能类似于 DOS 中的 Ren 命令)。
22、我们也能使用这个命令移动将文件到目录中 (此时该命令的功能类似于 DOS 中的 Move 命令) 。如:$mv index.html public_html /public_html 为网页发布目录删除文件和目录删除文件和目录需要使用两个命令:rm 和 rmdir。为了从一个目录中删除文件,输入rm 后跟着目录或文件名(注意: UNIX 一般不提供 undelete 的功能)。为删除目录,输入 rmdir,后而跟着目录名,但这条命令只能删除空目录(即目录下无子目录或文件,该命令的功能类似于 DOS 中的 Rd 命令) ) 。如:$rm test.c /删除 test.c 文件(该命令功能类似于
23、 DOS 中的 Del 命令);$rm * /删除当前目录下所有文件,这条删除命令很危险;$rm -I * /这条命令对每个文件是否删除会出现交互性提示;$rmdir Testdir /删除 Testdir 目录(假设该目录为空);$rm -r /tmp /该命令由管理员发出,可删除 /tmp 和其中的所有文件和子目录(此时该命令功能类似于 DOS 中的 Deltree 命令);UNIX 联机帮助常用的 UNIX 帮助命令为 man。如:$man ls /查询 ls 命令的用法,基本上是一个命令参数的查询手册;$man -k keyword /使用关键词查找相关命令,属于查询向导。A.2 UN
24、IX 常识以下部分提供了 UNIX 中使用的特殊的功能键和字符的简短概述;紧接其后是一些有用的 UNIX 命令的简要介绍。特殊的功能键和字符当用户使用 UNIX 时,用户要用到特殊键和字符,以下部分将解释这些常用的操作元素:| /在 UNIX 中的管道命令,为两个命令之间的一条垂直竖线,第一条命令的输出变成第二个命令的输入; /重定向输出符,将命令的结果出入到一个文件,因为 UNIX的标准输出设备是用户所使用的终端显示器,所谓“重定向”输出,就是将输出内容改道到其他设备文件(用户终端显示器也是一个设备文件) ,当我们的输出改道到一个文件时,系统自动按要求将命令输出内容存到文件名所指的文件中去,
25、如果文件原先存有内容,该命令将原文件内容用新文件覆盖; /重定向输出符,将命令的结果追加到一个文件中;filename /从键盘输入并且重定向到一个文件,实际上是创建一个新文件,注意在键入命令后,系统将不会再出现命令提示符,光标闪烁处由用户键入输入的内容,输入结束后,须用 Ctrl+d 结束文件,系统再次显示命令提示符。$cd directorv /改变目录;$cd /该命令从当前目录返回用户主目录;$cd /从用户的当前目录移动到上一级文件目录;$cd directory1/directory2 /将工作目录从当前目录移动到 directoryl的子目录 directory2 下。$chmo
26、d option filename (or directory) /改变访问模式( 权限)。$cp file1 file2 /将 file1 拷贝到 file2;$cp file directory /将 file 拷贝到 directory 目录中。$date /显示系统的日期和时间;$grep -l “pattern“ files /在同一目录下的若干文件中寻找和一个匹配模式相符的文件行。如果匹配模式是一个简单的字符串,则引号可以去掉;$grep -i “pattern“ files /在同一目录下的若干文件中寻找和一个匹配模式相符的文件行。忽略匹配模式的大小写;$grep -n “pat
27、tern“ files /在同一目录下的若干文件中寻找和一个匹配模式相符的文件行。显示匹配行在文件中的行号。$head file /显示一个文件的头几行。$help command/error /给出命令或错误信息的简要解释。$kill pid /中断用 pid 指定的进程(运行中的程序,如 Web Server) 。$ls /列出一个目录的内容 (简约格式);$ls -l /列出一个目录的内容(长格式) ;$ls -la | more /列出所有当前目录内的全部文件(包括隐含文件和目录) ,包括文件大小、权限和其它有用信息。并逐屏显示。$man command /从用户的系统的联机参考手册中
28、连续地显示命令手册,需要了解具体的命令;$man -k keyword /从用户的系统的联机参考手册中连续地显示命令手册,列出包含关键字的联机参考于册中所提及的相关命令,也被apropos 命令支持,二者执行相同的功能。$more file /逐屏显示文件;常用键: space 翻屏;b 回翻;q 退出。$mv file1 file2|directory/移动文件或重命名。$passwd /改变用户口令。$pico file /常用 UNIX 编辑器之一。$ps /报告运行中的进程(运行在内存中的程序) 。$pwd /显示当前工作目录 (绝对路径名形式)。$rm options files /
29、删除文件或目录。$rmdir directory /删除空目录。若删除非空目录,使用 rm -r 命令。$tail files /显示文件的最后 10 行。可处理个电子邮件,查来电人。$users /列出当前登录的用户。 who 也有类似用途。$vi file /用 vi 编辑器编辑文件。$w /显示谁在系统中,在干什么。$who /列出当前在系统中登录的用户。$whoami /“我是谁” ,听起来好笑?但在网上用 Telnet 穿过若干系统后,想不起来自己是谁也并不奇怪。它可显示用户当前登录的主机帐户名。$write user /给在同一或不同主机上中登录的其他用户发便条。发送者完成输入时,
30、用 Ctrl+d 结束并由系统发出。 1A.3 UNIX 使用技巧管道和重定向大多数 UNIX 命令是简单的,但是当使用管道将它们结合起来时,用户能创建一个比较复杂的操作。以下是管道命令的常用格式:$commandl|command2 /管道将命令 1 的输出成为命令 2 的输入$commandl|command2 fIle /管道将命令 1 的输出成为命令 2 的输入,然后命令 2 的输出重定向到一个磁盘文件$commandl file /命令 1 的输入改为由文件输入通配符UNIX 中通配符* 可表示任意个字符; ?可表示任意一个字符; 可通配一定范围内的字符。如:$ls *.html /
31、列出目录中所有网页文件;$mv chapter* Book /将以 chapter 开头的文件移入 Book 目录;$rm test? /删除以 test 开头,后续有两个字符的所有文件A.4 权限和所有权在类似 UNIX 系统的多用户环境下,安全性是其区别于桌面操作系统一个重要的特征。大多数多用户操作系统实现了系统级和用户级的详尽的安全性,在系统级,只有授权的用户可允许访问系统。在用户级,它也可以维护用户资源的安全性。所有 UNIX 文件和目录有所有权和权限。用户可更改一个文件或目录的权限甚至所有权,以便控制对其文件和目录的访问。文件权限也决定了一个特定的文件是否可以执行。当某个用户创建一个
32、文件的时候,该用户就成为文件的所有者了。作为文件的所有者,用户可以授予或撤消对文件的访问权限。用户也可以更改文件的所有权,并把它授予另一个用户。然而要记住,一旦所有权更改了,文件原属主就不能再把它改回来了。新的所有者可以把它授还给文件的原属主。chown 命令1 使用“write user”命令时应注意可能干扰他人的工作,最好用“w” 、 “who”、 “user”查询一下他人是否登录或正在做什么。chown 命令用于更改文件的所有权。例如,chown ryan myfile1该命令将使 ryan 成为 myfile1 的新的所有者。除了所有权之外,每个文件和目录还有相关的权限。ls -l 命
33、令可用于浏览文件或目录的权限。例如:$ls -l用户可以对一个文件指定的权限包括: r 读, 有此权限可读取文件的内容。 w 写, 有此权限可以修改并删除文件。 x 执行, 有此权限可以执行该文件。这些权限说明主要是针对文件而言,相对目录这三种权限还有其他的一些含义,有兴趣的读者可参阅有关参考书籍。值得说明得是我们可以根据数字指定文件权限。例如: 读权限 = 4 写权限 = 2 执行权限 = 1这些数可以组合起来用以指明对文件或目录的访问权限。第一个数字指出授予所有者的权限;第二个数字指出授予组的权限;第三个数字指出授予系统中别的用户的权限。例如 764。其中数字 7 表示所有者有读、写和执行
34、的权限(4+2+1);数字 6 表示同组者有读和写的权限(4+2);数字 1 表示系统中其他用户只有读权限(4)。数字 0 表示不赋予任何权限。chmod 命令chmod 命令用于更改一个文件的权限。例如,chmod 764 myfile1这将把读、写和执行权限(4+2+1)授予所有者,把读和写权限(4+2)授予组成员,并仅把读权限(4)授予系统中的别的用户。除了根据数字指定权限外,我们还可以字母代码来更改权限。相关选项和参数有: u = 用户 g = 组 o = 别的用户 a = 所有用户_rwxr_xr_x5rot1024Jun 3 16:56mined 2 1548public_html_rwxr_xr_x1rot19Jun 316:56test1文 件 类 型(文 件 或 目 录 )所 有 者 权 限 同 组 者 权 限 其 他 用 户 权 限在这些选项后面紧跟着加号(+),用以指出将要添加的权限。如果要删除权限,则用减号(-)。例如:chmod go+r myfile1这将为同组者和其他用户添加读权限。如果用户对一个目录有写权限,用户就能够删除该目录中的文件,而与该文件的所有权或访问权限无关。