实验五应用层协议分析1
实验目的:
掌握http协议过程;了解FTP协议过程;了解SMTP协议过程;了解POP3协议过程;。
实验类型:验证
实验学时:3学时
实验内容及方法:
观察http协议过程;观察一个FTP协议过程;观察SMTP协议过程;观察POP3协议过程
实验仪器设备:计算机、Ethereal软件。
实验步骤:
1.观察http协议过程。
(1)在计算机上打开Ethereal软件,进行报文截获。
(2)从浏览器上访问页面,具体操作为打开网页,浏览网页,关掉网页。
(3)停止Ethereal的报文截获。
捕获的数据包如下
(4)通过在上网过程中截获报文,分析HTTP协议的报文格式和工作过程。
1、分析HTTP协议报文:从众多HTTP报文中选择两条报文,一条是HTTP 请求报文(即get 报文),另一条是HTTP应答报文,将报文信息填入
表5-1.
表5-1HTTP报文
No. Source Destination Info.
457 192.168.231.55 202.193.160.38 GET /HTTP/1.1
479 202.193.160.38 192.168.231.55 HTTP/1.1 200 OK(text/html)
2、分析HTTP协议请求报文格式:分析1、中选择的HTTP请求报文(即 get 报文)中各字段的实际值并填写表52。
表5-2 HTTP 请求报文格式
字段名字段取值字段表达信息
方法字段GET 获取包含在请求中的
URI所标识的信息
URI /
版本字段HTTP/1.1 支持的http版本
首部字段Accept:*/*\r\n 客户端可识别的内容
Accept-Language:zh-cn\r\n 客户端能解释的语言—
简体中文
Accept-Encoding:gzip,deflate\r\n 解码gzip压缩部分数据
User-Agent:Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1;.net CLR 2.0.50727...........)\r\n 定义用于产生请求的软件类型
Host:\r\n 提交请求页面
Connection:keep-alive\r\n 表明连接状态为保持开
放
3、分析HTTP协议应答报文格式:分析1中选择的HTTP 应答报文中各字段的实际值并填写表5-3。
表5-3 HTTP 应答报文格式
字段名字段取值字段表达信
息
版本字段HTTP/1.1 支持的http
版本
状态码200 OK
首部字段Server:nginx/1.0.8\r\n 服务器属性Date:SAT,28 apr 2012 10:19:42 GMT\r\n 回应的日期
Content-Type:text\html\r\n 内容类型
Connection:keep-alive\r\n 连接状态
X-powered-By:PHP/5.3.9\r\n
Cache-control:max-age=0\r\n 缓存控制间
Expires:Sat,28 Apr 2012 10:19:42 有效期
Vary:accept-Encoding:gzip\r\n 解码gzip压
缩部分数据Content-Encoding,User-Agent\r\n 内容解码
Content-Length:8124\r\n 内容长度
Content-encoded entity body(gzip):8124
bytes->35097bytes Line-based text
data:text/html
4、 HTTP 协议的工作过程
(1)客户端连接到Web服务器
一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。
(2)发送HTTP请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
(3)服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。
服务器将资源复本写到TCP套接字,由客户端读取。
一个响应由状态行、响应头部、空行和响应数据4部分组成。
(4)释放连接TCP连接
Web服务器主动关闭TCP套接字,释放TCP连接;客户端被动关闭TCP套接字,释放TCP连接。
(5)客户端浏览器解析HTML内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。
然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。
客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
2.观察一个FTP协议过程
(1)在计算机上打开Ethereal软件,进行报文截获。
(2)单击“开始/运行”,在运行框中输入命令,打开命令行窗口。
(3)在命令行窗口中,登陆FTP服务器,并下载文件。
(4)停止Ethereal的报文截获。
(5)通过在上网过程中截获报文,分析FTP报文格式和FTP协议的工作过程。
FTP使用客户服务器方式。
一个FTP服务器进程可同时为多个客户进程提供服务。
• FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
主进程的工作步骤:
(1)打开熟知端口(端口号为21),使客户进程能够连接上。
(2)等待客户进程发出连接请求。
(3)启动从属进程来处理客户进程发来的请求。
从属进程对客户进程的请求处
理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程(4)回到等待状态,继续接受其他客户进程发来的请求。
主进程与从属进程的处理是并发的进行的。
FTP使用两个TCP连接。
控制连接在整个会话期间一直保持打开,FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
实际用于传输文件的是“数据连接”。
服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建“数据传输进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传输连接”并结束运行。
3.观察SMTP协议过程
(1)在计算机上打开Ethereal软件,进行报文截获。
(2)使用用户代理发送邮件。
(3)停止Ethereal的报文截获。
(4)通过截获报文,分析SMTP的工作过程
说明:smtp是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器
1.smtp是个请求/响应协议,命令和响应都是基于ascii文本,并以cr和lf符结束。
响应包括一个表示返回状态的三位数字代码
2.smtp在tcp协议25号端口监听连接请求
3.连接和发送过程:
a.建立tcp连接(三次握手)
b.客户端发送helo命令以标识发件人自己的身份,然后客户端发送mail命令
服务器端正希望以ok作为响应,表明准备接收
c.客户端发送rcpt命令,以标识该电子邮件的计划接收人,可以有多个rcpt行
服务器端则表示是否愿意为收件人接受邮件
d.协商结束,发送邮件,用命令data发送
e.以.表示结束输入内容一起发送出去
f.结束此次发送,用quit命令退出。
4.观察POP3协议过程
(1)在计算机上打开Ethereal软件,进行报文截获。
(2)使用用户代理收取邮件。
(3)停止Ethereal的报文截获。
(4)通过截获报文,分析POP协议的工作过程
Pop3客户端接收信件的的工作过程
1、连接到pop3服务器(默认端口110)
2、发送用户名(user)
3、发送密码(pass)
4、查询当前邮箱状态(stat)
5、查询服务器上所有邮件UID列表(UIDL)
6、查询本地所有邮件的UID列表,从而罗列出新邮件列表(本地UID列表是
POP3客户端记录在日志文件中的)
7、对所有新邮件查询其大小(LIST)
8、下载所有新邮件(RETR)利用List提供的邮件大小信息
9、如果有必要,对所有新邮件标志为删除(DELE)
10、结束对话(QUIT)
11、解析本地下载邮件。