版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第02章应用层协议应用层协议概述HTTP详解抓包分析工具与实战HTTP详解DHCP详解DNS协议详解本章内容2.1应用层协议计算机通信更多的是计算机上各类应用程序之间的通信,而大多数应用程序可分为服务端和客户端。服务端在启动服务后,便处于等待客户端访问的状态。客户端程序会向服务器发送通信请求,而后服务端会向客户端给出响应。应用层协议是客户端程序和服务端程序进行通信的规则和标准。它定义了双方交换数据的格式、顺序、语义以及控制信息等。应用层协议使得不同软件公司开发的客户端和服务端才能够实现顺畅的通信交流。服务端:启动服务后等待请求,解析请求并返回响应客户端:按协议发送请求(如浏览器、DHCP客户端)示例:Web客户端(IE/谷歌浏览器)与Web服务器通过HTTP通信2.1.1服务端和客户端每一种应用层协议都需要规定以下内容:报文格式:发送请求和响应的报文格式。报文格式包括:报文头部、主体和尾部等部分的格式和内容。例如,定义每个字段的长度、数据类型、含义和顺序。命令和操作:客户端程序能够向服务端发送的请求(命令)和操作,以及它们的功能和效果。状态代码:服务端程序能够向客户端返回的响应(状态代码)。交互顺序:客户端向服务端发送请求(命令)的顺序、出现意外后如何处理。常见的应用层协议:HTTP(网页传输)、FTP(文件传输)、DHCP(IP分配)、DNS(域名解析)、SMTP、POP3、TELNET等2.1.2应用层协议2.2HTTP协议超文本传输协议,用于万维网数据传输(HTML、图片、查询结果等)通信流程:客户端发请求→服务器解析处理→返回响应HTTP由于HTTP是面向文本的,因此在报文中的每个字段都是一些ASCII码串,因而各个字段的长度都是不确定的。如图2-4所示,HTTP请求报文由开始行、首部行、实体主体3个部分组成。请求行是报文的开始行,用于区分请求报文和响应报文。在请求报文中的开始行叫作请求行,而在响应报文中的开始行叫作状态行。在开始行的三个字段之间都以空格分隔开,最后的“CR”和“LF”分别代表“回车”和“换行”。首部行用来说明浏览器、服务器或报文主体的一些信息。首部行可以包括好几行,但也可以不使用。在每个首部行中都由首部字段名和它的值两部分组成,每行在结束的地方都要有“回车”和“换行”。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。实体主体在请求报文中一般不用这个字段。2.2.1HTTP请求报文浏览器能够向Web服务器发送以下8种方法(有时也叫“动作”或“命令”)来表明请求URL(Request-URL)指定的资源的不同操作方式。GET:用于请求获取指定资源的表示。通常用于获取网页、图像等资源,是最常见的HTTP方法之一。POST:常用于向服务器提交数据,例如提交表单数据、上传文件等,以进行数据的创建或更新操作。PUT:用于向指定的URL上传最新的内容,以更新服务器上的资源。DELETE:用于请求服务器删除指定的资源。HEAD:类似于
GET
方法,但只返回响应头信息,而不返回响应体,通常用于获取资源的元数据,例如检查资源是否存在、获取资源的最后修改时间等。OPTIONS:用于获取服务器支持的HTTP方法和其他选项。TRACE:用于回显服务器收到的请求,主要用于诊断和测试。CONNECT:用于建立与服务器的隧道连接,通常用于实现HTTP代理或通过HTTP进行TCP连接。这些方法为客户端与服务器之间的交互提供了不同的方式,以满足各种不同的需求。方法名称是区分大小写的2.2.2HTTP请求报文中的方法每个请求报文发出后,都能收到一个响应报文。响应报文的第一行就是状态行。状态行包括3项内容,即HTTP的版本、状态码和解释状态码的简单短语。2.2.3响应报文格式HTTP协议的响应状态代码用于表示服务器对客户端请求的处理结果。响应报文的状态行中的状态码(Status-Code)都是三位数字,状态码分为5大类共33种,以下是一些常见的状态代码及其含义:1××:表示通知信息,如请求收到或正在进行处理。2××:表示成功,如接受或知道。3××:表示重定向,如要完成请求还必须采取进一步的行动。4××:表示客户端错误,如请求中有错误的语法或请求不能完成。5××:表示服务器的差错,如服务器失效无法完成请求。下面几种状态行在响应报文中是经常见到的。HTTP/1.1202Accepted:表示接受。HTTP/1.1400BadRequest:表示错误的请求。HTTP/1.1404NotFound:表示找不到。2.2.4HTTP响应报文状态码2.3抓包分析应用层协议功能特点:捕获网络数据包:能够从网络接口捕获实时的数据包。详细的协议解析:对各种网络协议进行深入解析,包括TCP、UDP、IP等,为您展示数据包的详细内容和结构。数据包过滤:可以根据各种条件(如源地址、目的地址、端口等)对捕获的数据包进行过滤,以便更专注于特定的流量。统计分析:提供丰富的统计信息,帮助您了解网络流量的特征和趋势。应用场景:网络故障排查:例如,当网络连接出现问题时,可以通过Wireshark捕获数据包来查找异常的通信。安全分析:检测潜在的网络攻击、恶意软件通信等。协议开发和调试:对于开发新的网络协议或调试现有协议的实现,Wireshark可以帮助验证协议的行为是否符合预期。2.3.1Wireshark抓包工具Wireshark的显示筛选器,用于在已捕获的数据包集合中设置过滤条件,隐藏不想显示的数据包,只显示符合条件的数据包,以便更有针对性地进行分析。筛选分为协议筛选和表达式筛选。表达式筛选分为基本过滤表达式和复合过滤表达式。2.3.2Wireshark的显示筛选器协议筛选协议筛选是根据通信协议筛选数据包。常用协议有HTTP、FTP、UDP、TCP、ARP、ICMP、SMTP、POP3、DNS、IP、Telnet、SSH、RDP、RIP、OSPF等。基本过滤表达式基本过滤表达式由过滤项、过滤关系、过滤值组成。例如,表达式ip.addr==,其中ip.addr是过滤项,==是过滤关系,
是过滤值,整条表达式的意思是找出所有IP中源或目标IP地址等于
的数据包。显示筛选器初学者感觉的“过滤表达式复杂”,最主要就是在这个过滤项上:一是不知道有哪些过滤项,二是不知道过滤项该怎么写。这两个问题有一个共同的答案,Wireshark的过滤项是“协议”+“.”+“协议字段”的模式。以端口为例,端口出现于TCP中,所以有端口这个过滤项,并且其写法就是tcp.port。过滤项过滤关系就是大于、小于、等于等几种关系,我们可以直接看官方给出的表,如表1-1所示。注意其中“English”和“C-like”两个字段。这个意思是说“English”和“C-like”这两种写法在Wireshark中是等价的、都是可用的。过滤关系EnglishC-like描述和案例eq==等于。比如ip.src==en!=不等于。比如ip.src!==gt>
大于。Frame.len>10lt<
小于。Frame.len<128ge>=大于等于。Frame.lenge0×100le<=小于等于。Frame.len<=0×20contains
协议,字段或分片包括的值。比如httpcontains"password"过滤值就是设定的过滤项应该满足过滤关系的标准,如500、5000、50000等。过滤值的写法一般已经被过滤项和过滤关系设定好了,填自己的期望值就可以了过滤值复合过滤表达式是指由多条基本过滤表达式组合而成的表达式。基本过滤表达式的写法不变,复合过滤表达式由连接词连接基本过滤表达式构成。例如,ip.src==&&tcp.flags.fin表示筛选源IP地址为
且TCP标志位为FIN的数据包。复合过滤表达式的连接词有以下几种:and(&&):逻辑与。例如:ip.src==&&tcp.flags.fin。or(||):逻辑或。例如:ip.src==||tcp.flags.fin。not(!):逻辑非。例如:!tcp。复合过滤表达式数据链路层过滤表达式示例筛选目标MAC地址为04:f9:38:ad:13:26的数据包:eth.dst==04:f9:38:ad:13:26。筛选源MAC地址为04:f9:38:ad:13:26的数据包:eth.src==04:f9:38:ad:13:26。网络层过滤表达式示例筛选IP地址为的数据包:ip.addr==。筛选和之间的数据包:ip.addr==&&ip.addr==。筛选从到的数据包:ip.src==&&ip.dst==。2.3.3常见的显示过滤器(1)传输层过滤表达式示例筛选TCP的数据包:tcp。筛选除TCP以外的数据包:!tcp。筛选端口为80的数据包:tcp.port==80。筛选源端口51933到目标端口80的数据包:tcp.srcport==51933&&tcp.dstport==80。应用层过滤表达式示例筛选URL中包含.php的HTTP数据包:http.request.uricontains".php"。筛选URL中包含域名的HTTP数据包:http.request.uricontains"www.baixing.com"。筛选内容包含username的HTTP数据包:httpcontains"username"。筛选内容包含password的HTTP数据包:httpcontains"password"。2.3.3常见的显示过滤器(2)选中第1038个数据包,可以看到该数据包中的HTTP请求报文,与HTTP请求报文的格式进行对照,请求方法是GET2.3.4实战:抓包分析http报文第1419个数据包是HTTP响应报文,状态码为200,表示成功处理了请求,一般情况下都是返回此状态码。HTTP响应报文在显示筛选器处输入http.request.method==POST后,应用显示筛选器,客户端使用POST方法将登录网站账号和密码提交给Web服务。HTTP中POST方法在显示筛选器输入框中输入httpcontains"password",应用显示筛选器,可以显示HTTP数据包内容包含“hanligang”的数据包。根据内容筛选数据包在显示筛选器输入框中输入http.response.code==200,应用显示筛选器,可以显示HTTP响应代码200的数据包。根据状态代码筛选数据包2.4FTP
文件传输协议(FileTransferProtocol,FTP)是Internet中广泛使用的文件传输协议。它用于在Internet上控制文件的双向传输。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种传输文件协议。FTP屏蔽了各计算机系统的细节,因而适合在异构网络中任意计算机之间传输文件。在FTP的使用当中,用户经常遇到两个概念:下载和上传。FTP介绍与大多数Internet服务一样,FTP也是一个客户端/服务器架构的系统。一个FTP服务器进程可以为多个客户进程提供服务。FTP服务器由两大部分组成:一个主进程,负责接受新的请求;还有若干个从属进程,负责处理单个请求。2.4.1FTP的工作细节(1)在FTP服务器上需要开放两个端口,即命令端口(或控制端口)和数据端口。通常端口21是命令端口,端口20是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了。FTP建立传输数据的TCP连接的模式分为主动模式和被动模式。2.4.1FTP的工作细节(2)在主动模式下,FTP客户端从任意的动态端口(49152-65535)中选择51706(N)连入FTP服务器的命令端口21;然后客户端在端口51707(N+1)监听。主动模式下,FTP服务器的防火墙只需要打开TCP的端口21和端口20,FTP客户端防火墙要将TCP49152-65535端口全部打开。主动模式为了解决服务器发起到客户端的连接的问题,人们开发了另一种不同的FTP连接方式,这就是被动模式(PASV),当客户端通知服务器它处于被动模式时才启用。在被动模式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端建立数据传输连接请求被客户端防火墙过滤掉的问题。当开启一个FTP连接时,客户端从动态端口(49152-65535)中任意选择两个51621(N)和51622(N+1)。被动模式FTP协议定义了一系列命令,用于在客户端和服务器之间进行通信。这些命令可以在FTP客户端软件中使用,通过输入相应的命令来执行对应的操作,进行文件的上传、下载、删除、重命名等操作。2.4.2FTP定义的命令和状态代码USER
:指定用户名。PASS
:指定用户密码。CWD
:改变工作目录。CDUP
:回到上一级目录。RETR
:从服务器下载文件。STOR
:向服务器上传文件。LIST
:列出目录内容。NLST
:仅列出文件名。PWD
:显示当前工作目录。
MKD
:创建目录。RMD
:删除目录。DELE
:删除文件。RNFR
:指定要重命名的文件。RNTO
:完成重命名操作。QUIT
:退出FTP会话。FTP状态代码3xx-命令需要进一步细化:331用户名正确,需要密码。332需要登录账号。4xx-临时错误:450请求的文件操作未执行,文件不可用(例如,文件正忙)。451请求的操作异常终止,处理中发生本地错误。452请求的操作未执行,系统存储空间不足。5xx-永久错误:550请求的操作未执行,文件不可用(例如,未找到文件,没有访问权限)。552请求的文件操作超出存储分配。553请求的操作未执行,不允许的文件名。1xx-信息:110重新启动标记应答。120服务在指定时间内准备好。125数据连接已打开,正在开始传输。150文件状态正常,准备打开数据连接。2xx-成功:200命令成功。225数据连接打开,没有进行中的传输。227进入被动模式
(h1,h2,h3,h4,p1,p2)。230用户登录成功。250请求的文件操作正确,已完成。FTP客户端访问FTP服务器的交互过程,可以看到客户端向服务器发送的请求及服务器向客户端返回的响应。在FTP服务器上设置禁止FTP的某些方法,以实现FTP服务器的安全访问,如禁止删除FTP服务器上的文件。2.4.3抓包分析FTP工作过程2.5DHCP网络中的计算机IP地址、子网掩码、网关和DNS服务器等设置可以人工指定,也可以设置成自动获得。设置成自动获得,就需要使用动态主机配置协议(DynamicHostConfigurationProtocol,DHCP)从DHCP服务器请求IP地址。在以下5种情况下,DHCP客户端会从DHCP服务器获取一个新的IP地址。该客户端计算机是第一次从DHCP服务器获取IP地址。该客户端计算机之前租用的IP地址已经被DHCP服务器收回,又租用给其他计算机了,因此该客户端需要重新从DHCP服务器租用一个新的IP地址。该客户端自己释放原先所租用的IP地址,并要求租用一个新的IP地址。客户端计算机更换了网卡。客户端计算机转移到另一个网段。2.5.1DHCP分配地址的过程DHCP客户端与DHCP服务器之间会通过以下4种类型的数据包来相互通信DHCP工作过程(1)当租约时间过去一半时,DHCP客户端向DHCP服务器发送一个请求,请求更新和延长当前租约。DHCP客户端直接向DHCP服务器发请求,最多可重发三次,分别在4s、8s和16s时。(2)如果某台DHCP服务器应答一个DHCPOffer消息,以更新DHCP客户端的当前租约,DHCP客户端就用DHCP服务器提供的信息更新租约并继续工作。(3)如果租约终止而且没有连接到DHCP服务器,DHCP客户端必须立即停止使用其租约IP地址。然后,DHCP客户端执行与它初始启动时相同的过程来获得新的IP地址租约。2.5.2DHCP地址租约更新自动更新DHCP服务器自动进行租约的更新,也就是前面介绍的租约更新的过程。当租约期达到租约期限的50%时,DHCP客户端将自动开始尝试续租该租约。手动更新如果需要立即更新DHCP配置信息,可以手动对IP地址租约进行续租操作。例如,如果我们希望DHCP客户端立即从DHCP服务器上得到一台新安装的路由器的地址,只需简单地在客户端做续租操作。直接在客户端上的cmd.exe软件中,执行命令ipconfig/renew。租约更新有以下两种方法DNS使用计算机的用户还是习惯使用有一定意义的好记的名称来访问某个服务器或网站。比如使用域名来访问淘宝网站,使用域名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海尔间接采购订单系统用户手册
- 国际贸易和国际金融
- 陕西省西安市西电中学2025-2026学年高二下学期期末考试数学试卷(含答案)
- 辽宁省沈阳市第二十三中学2026-2027学年七年级上学期开学数学试卷(含答案)
- 2026年俄罗斯莲花商贸城销售篇
- 输血应急预案知识考试试题及答案
- 输血相关知识测试题及答案
- 在车辆安全保护中的力学的应用
- 学生周总结报告模板
- 《控制测量概算》课件
- 变形铝及铝合金制品组织检验方法第2部分:低倍组织检验方法
- 2026年贵州省初级注册安全工程师职业资格考试试题及答案安全生产实务·其他
- 人工智能原理及其应用(第5版)课件全套 第1-8章 概述-智能体应用
- 2026-2030出租车行业并购重组机会及投融资战略研究咨询报告
- 2026广东深圳市面向高校毕业生招募基层公共就业创业服务岗位人员92人笔试题库含完整答案详解【考点梳理】
- 2026年6月浙江高考选考物理试卷试题真题(含答案详解)
- 2026中小学教师教育科研课题50个选题指南
- 环水保监理实施细则
- 特种设备叉车使用安全管理制度
- 高中化学必修一第一章知识点梳理
- 2026交管12123学法减分题库500题(含标准答案+详细解析)
评论
0/150
提交评论