第二次作业:使用Packet Tracer分析应用层协议(DNS、FTP、DHCP、SMTP、POP3)
0 个人信息
- 张樱姿
- 201821121038
- 计算1812
1 实验目的
熟练使用Packet Tracer工具。分析抓到的应用层协议数据包,深入理解应用层协议,包括语法、语义、时序。
2 实验内容
使用Packet Tracer,正确配置网络参数,抓取应用层协议的数据包并分析,协议包含DNS、FTP, DHCP, stmp, pop3。步骤包含:
- 建立网络拓扑结构
- 配置参数
- 抓包
- 分析数据包
3 实验报告
本实验使用Cisco Packet Tracer这个平台来对网络环境进行模拟。
3.1 建立网络拓扑结构
如图,将一台PC端和一台Server端相连。
分析:客户(PC端)和服务器(Sever端)是通信中所涉及的两个应用进程,要达到抓包的目的,就需要建立通信关系,即需要在同一网段内。
3.2 IP配置
PC端的IP地址:192.168.1.38,子网掩码:255.255.255.0
服务器的IP地址:192.168.1.1,子网掩码:255.255.255.0
分析:对于PC端和服务器的IP配置,其子网掩码相同,在同一网段内,可以相互通信。
3.3 抓DNS包并分析
3.3.1 将服务器端的DNS服务开启,并增设一条域名解析记录:
3.3.2 点击右下角的Simulation键进行仿真。
3.3.3 只勾选支持DNS协议:
3.3.4 在PC端的浏览器输入域名访问:
(注:当出现域名解析出错时,会显示如下页面:
解决办法是PC端的DNS server要设置为DNS服务器的IP地址:
)
3.3.5 仿真后的信息传递结果如下:
3.3.6 报文分析:
(1)报文头:
- QDCOUNT(Questions Count)表示报文请求段中的问题记录数
- ANCOUNT(Answer Count)表示报文回答段中的回答记录数
- NSCOUNT(Authoritative Nameservers Count)表示报文授权段中的授权记录数
- ARCOUNT(Additional Recoreds Count)表示报文附加段中的附加记录数
(2)查询报文:
- NAME表示查询名,一般为需要查询的域名(如果是反向查询,则为IP地址)
- TYPE表示查询类型,4表示是一个邮件转发器。
- CLASS表示查询类,1表示是Internet数据
- TTL(Time to Live)表示生存时间,以秒为单位,表示的是资源记录的生命周期,一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间,它同时也可以表明该资源记录的稳定程度,极为稳定的信息会被分配一个很大的值(比如86400,这是一天的秒数)。
- LENGTH表示资源数据长度
(3)应答报文:
类似于查询报文:
- NAME表示资源记录包含的域名
- TYPE表示资源记录的类型
- CLASS表示资源记录的类
- TTL表示资源记录的生存周期
- LENGTH表示资源数据长度
- IP表示域名解析的结果
3.4 抓FTP包并分析
3.4.1 将服务器端的FTP服务开启,并增设一条用户记录:
3.4.2 点击右下角的Simulation键进行仿真。
3.4.3 只勾选支持FTP协议:(File Transfer Protocol,文件传输协议)
3.4.4 在PC端的Command Prompt(命令提示符,类似于cmd)输入用户名及密码对FTP服务器的文件访问:
输入?查询可使用命令:
其中,cd可改变远程工作目录,delete可删除远程单个文件,dir可显示远程目录文件的文件列表,get可复制单个远程文件到本地,help与?相同,可显示FTP命令帮助信息,passive可开/关被动模式,put可复制一个本地文件到远程目录,pwd可显示远程当前工作目录,quit可结束FTP会话并退出FTP,rename可重命名远程文件。
(注:FTP有两种使用模式:被动和主动,主动模式要求客户端和服务器端同时打开并监听一个端口以建立连接。但这种情况下,由于客户端安装了防火墙会产生一些问题,所以有了被动模式,被动模式只要求服务器端产生一个监听相应端口的进程,这样就能绕过客户的防火墙了。)
3.4.5 仿真后的信息传递结果如下:
3.4.6 报文分析:
(1)响应报文:
- Code:220表示新用户服务就绪
- Message表示对Code的解释
(2)响应报文:
- Code:331表示用户名正确,需要密码
- Message表示对Code的解释
(3)请求报文:
- FTP Command:PASS表示密码正确
- FTP Argument表示密码内容
(4)响应报文:
- Code:230表示用户已登录
- Message表示对Code的解释
(5)请求报文:
- FTP Command:QUIT表示用户已登出
(6)响应报文:
- Code:221表示服务京城已关闭连接
- Message表示对Code的解释
3.5 抓DHCP包并分析
3.5.1 将服务器端的DHCP服务开启,并设置IP地址分配的开始值192.168.1.0:
接着将PC端的IP获取方式从静态改成DHCP获取(192.168.1.2):
3.5.2 点击右下角的Simulation键进行仿真。
3.5.3 只勾选支持DHCP协议:(Dynamic Host Configuration Protocol,动态主机设置协议)
3.5.4 仿真后的信息传递结果如下:
3.5.5 报文分析:
(1)请求报文:
- OP表示报文类型,1表示请求报文
- HW TYPE表示硬件地址类型,1表示10Mb/s的以太网的硬件地址
- HW LEN表示硬件地址长度,以太网中为6
- HOPS表示跳数,客户端设置为0
- TRANSACTION ID表示事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配
- SECS由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数
- FLAGS表示标志字段,目前只有最左边的一个比特有用,该位为0,表示单播,为1表示广播
- CLIENT ADDRESS表示客户端地址,只有客户端是Bound、Renew、Rebinding状态,并且能响应ARP请求时,才能被填充。
- YOUR CLIENT ADDRESS表示客户端地址
- SERVER ADDRESS表示DHCP协议流程的下一个阶段要使用的服务器的IP地址
- RELAY AGENT AGGRESS表示DHCP中继器的IP地址
- CLIENT HARDWARE ADDRESS表示客户端硬件地址,客户端必须设置它的物理地址
- SERVER HOSTNAME表示可选的服务器主机名,该字段是空结尾的字符串,由服务器填写
- FILE表示启动文件名,是一个空结尾的字符串
- OPTIONS表示可选的参数域,格式为"代码+长度+数据"
(2)响应报文:
- OP表示报文类型,2表示响应报文
- YOUR CLIENT ADDRESS表示客户端地址,此时被分配为192.168.1.2
- SERVER ADDRESS表示DHCP协议流程的下一个阶段要使用的服务器的IP地址,为192.168.1.1
(3)DHCP Options
- OP:6表示DNS Server
- LEN:4表示4个字节
- DOMAIN NAME SERVER表示域名服务器的IP
- OP:15表示主DNS服务器名
- LEN:0x0表示长度可变
- DOMAIN NAME表示域名
3.6 抓SMTP包并分析(涉及STMP协议和POP3协议)
3.6.1 先将PC端的IP获取由DHCP变为静态获取,并设置其IP地址为192.168.1.38,再对Email中的Configure Mail进行设置:
接着将服务器端的IP获取方式从DHCP改成静态获取,并设置其IP地址为192.168.1.1,打开SMTP服务和POP3服务,增加两个用户,接着对Email中的Configure Mail进行设置:
3.6.2 点击右下角的Simulation键进行仿真。
3.6.3 只勾选支持SMTP协议和POP3协议:(Simple Mail Transfer Protocol,简单邮件传输协议;Post Office Protocol - Version 3,邮局协议版本3)
3.6.4 PC端写mail给服务器端:
另外,只能用PC端接受mail,因为设置的pop3服务器也是服务器端。
(注:如果出现如下问题,说明是DNS服务器未配置好,因为发邮件时是To一个域名,而非IP地址,因此需要域名解析,所以开启服务器端的DNS服务,并增设两条记录:
)
3.6.5 仿真后的信息传递结果如下:
3.6.6 报文分析:
- SMTP DATA表示将邮件报文发送给服务器
- POP3表示接收邮件报文
3.7 Q&A
Q:常用端口号?
A:
- 21/tcp FTP 文件传输协议
- 22/tcp SSH 安全登录、文件传送(SCP)和端口重定向
- 23/tcp Telnet 不安全的文本传送
- 25/tcp SMTP Simple Mail Transfer Protocol (E-mail)
- 69/udp TFTP Trivial File Transfer Protocol
- 80/tcp HTTP 超文本传送协议 (WWW)
- 110/tcp POP3 Post Office Protocol (E-mail)
- 220/tcp IMAP3
- 443/tcp HTTPS 安全的网页传输
4 Reference
· 深入理解DNS报文格式----夜苍山的CSDN博客
(https://blog.csdn.net/liao152/article/details/45252387)
· DNS协议详解及报文格式分析----Jocent Zhou的博客
(https://jocent.me/2017/06/18/dns-protocol-principle.html)
· FTP命令详解----罗汉爷的CSDN博客
(https://blog.csdn.net/indexman/article/details/46387561)
· DHCP报文及其格式----一路博客的CSDN博客
(https://blog.csdn.net/one_in_one/article/details/51684551)
第二次作业:使用Packet Tracer分析应用层协议(DNS、FTP、DHCP、SMTP、POP3)的更多相关文章
- 第二次实验报告:使用 Packet Tracer 分析应用层协议
个人信息: 姓名:倪晓东 班级:计算1811 学号:201821121020 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序 ...
- 第二次实验报告:使用Packet Tracer分析应用层协议
个人信息: • 姓名:李微微 • 班级:计算1811 • 学号:201821121001 一.摘要 本文描述使用Packet Tracer,正确配置网络参数,抓 ...
- 第一次实验报告:使用Packet Tracer分析HTTP数据包
目录 1 实验目的 2 实验内容 3. 实验报告 第一次实验报告:使用Packet Tracer分析HTTP数据包 1 实验目的 熟练使用Packet Tracer工具.分析抓到的HTTP数据包,深入 ...
- 第三次作业:使用Packet Tracer分析TCP连接的建立与释放过程
0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 使用路由器连接不同的网络 使用命令行操作路由器 通过抓取HTTP报文,分析TCP连接建立的过程 2 实验内容 使用Packe ...
- 第1次作业:使用Packet Tracer分析HTTP数据包
个人信息: • 姓名:李微微 • 班级:计算1811 • 学号:201821121001 一.摘要 本文将会描述使用Packet Tracer工具用到的网络结构 ...
- 第一次作业:使用Packet Tracer分析HTTP包
0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 熟练使用Packet Tracer工具.分析抓到的HTTP数据包,深入理解:HTTP协议,包括语法.语义.时序. 2 实验内 ...
- 第三次实验报告:使用Packet Tracer分析TCP连接建立过程
目录 1 实验目的 2 实验内容 3. 实验报告 3.1 建立网络拓扑结构 3.2 配置参数 3.3 抓包,分析TCP连接建立过程 4. 拓展 (不作要求,但属于加分项) 1 实验目的 使用路由器连接 ...
- 第二次作业:APP案例分析
App案例分析 产品:三国杀-页游手游双通 选择理由 当今社会手机已经渐渐取代了电脑在人们日常生活的需求,既然要选择APP进行案例分析,首推的估计就是手机APP了.三国杀是陪伴我高中时代的主要娱乐方式 ...
- 集大1513 & 1514班 软件工程第二次作业评分与点评
谢谢按时完成作业的同学. 请大家在今后的作业中多思考,认真完成并注意作业的原创性. 学号 作业标题 作业地址 提交日期 分数 201521121087 微信APP简要分析 http://www.cnb ...
随机推荐
- 重学计算机组成原理(十)- "烫烫烫"乱码的由来
程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 --- 各种计算机指令 数据结构 --- 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二 ...
- Python模块之pexpect
一.pexpect模块介绍 Pexpect使Python成为控制其他应用程序的更好工具.可以理解为Linux下的expect的Python封装,通过pexpect我们可以实现对ssh,ftp,pass ...
- sqoop与PG库导入导出数据
导入数据到Hive sqoop import --connect jdbc:postgresql://172.66.6.666/radar5g4h --username postgres --pass ...
- 渗透之路基础 -- SQL注入
目录 mysql注入(上) limit 有两个参数 limit 2,3 表示从2开始查3条 通过MySql内置数据库获取表名 通过MySql内置数据库获取表名对应的列名 mysql注入(中) SQL常 ...
- n的阶乘尾数有几个0
/* n!尾数有几个0 */ #include <iostream> using namespace std; void find0(int n); int find(int i,int ...
- SqlException (0x80131904): 超时时间已到。在操作完成之前超时时间已过或服务器未响应。
在ms sql2005限制200M内存,framwork2.0环境下,当update更新单表数据量10k时经常出现Command超时的问题,网上查了都是说增加连接时间,尝试了还是解决不了问题,最终一个 ...
- CodeForces 989D
题意略. 思路: 可以看成是所有的云彩照常运动,而月亮在跑.只要两个云彩相交后,在分离前月亮能赶到,就算是符合题意的. 可以知道,两个相隔越远的相向运动地云彩是越有可能符合题意的,因为它们相遇所用时间 ...
- linux 网络基础之IP地址
IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议. IP地址类型分为:公有地址.私有地址. 公有地址 公有地址(Publ ...
- Delphi - 使用Pos、Copy函数定位和截取字符串
使用Pos函数来定位子字符串第一次出现的位置 函数定义: Function Pos(Substr: String, S: String): Integer; 表示取出Substr在S中第一次出现的位置 ...
- Jedis操作Redis--Key操作
/** * Key(键) * DEL,DUMP,EXISTS,EXPIRE,EXPIREAT,KEYS,MIGRATE,MOVE,OBJECT,PERSIST,PEXPIRE,PEXPIREAT,PT ...