精华内容
下载资源
问答
  • wireshark分析应用层及应用笔记

    千次阅读 2019-03-26 17:30:59
    wireshark分析http里面的get请求包 Hypertext Transfer Protocol GET / HTTP/1.1\r\n #请求行信息# [Expert Info (Chat/Sequence): GET / HTTP/1.1\r\n] #专家信息# Request Method: GET #请求的方法# Request ...

    wireshark分析http里面的get请求包

    Hypertext Transfer Protocol
    GET / HTTP/1.1\r\n #请求行信息#
    [Expert Info (Chat/Sequence): GET / HTTP/1.1\r\n] #专家信息#
    Request Method: GET #请求的方法#
    Request URI: / #请求的URI#
    Request Version: HTTP/1.1 #请求的版本#
    Host: www.boomgg.cn\r\n #请求主机#//就是域名
    Connection: keep-alive\r\n #使用持久链接#
    Upgrade-Insecure-Requests: 1\r\n #升级不安全请求#
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36\r\n #浏览器类型#
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8\r\n #请求的类型#
    Accept-Encoding: gzip, deflate, sdch\r\n #请求的编码格式#
    Accept-Language: zh-CN,zh;q=0.8\r\n #请求语言#
    Cookie: CNZZDATA155540=cnzz_eid%3D2093723420-1483596271-%26ntime%3D1483596271\r\n #Cookie信息#
    Cookie pair: CNZZDATA155540=cnzz_eid%3D2093723420-1483596271-%26ntime%3D1483596271\r\n #Cookie对#
    [Full request URI: http://www.boomgg.cn/] #请求的URI全称#
    [HTTP request 1/3] #HTTP请求进度#
    [Response in frame: 12] #响应帧#
    [Next request in frame: 15] #下一个请求帧#

    Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n #响应行信息#
    [Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n] #专家信息#
    Request Version: HTTP/1.1 #请求版本#
    Status Code: 200 #状态码#
    Response Phrase: OK #响应短语#
    Date: Tue, 31 Jan 2017 07:34:36 GMT\r\n #响应时间#
    Server: Apache/2.4.6 (CentOS) PHP/5.4.16\r\n #服务器信息#
    Last-Modified: Tue, 17 Jun 2014 16:00:47 GMT\r\n #上一次修改#
    ETag: "4b8d-4fc0a3f32a9c0"\r\n #上一次修改标识#
    Accept-Ranges: bytes\r\n #接收范围#
    Content-Length: 19341\r\n #内容长度#
    Keep-Alive: timeout=5, max=99\r\n #保持响应时间,以及最大值#
    Connection: Keep-Alive\r\n #使用持久链接#
    Content-Type: text/css\r\n #响应的内容类型#
    [HTTP response 2/3] #HTTP响应#
    [Time since request: 0.423110000 seconds] #响应使用时长#
    [Prev request in frame: 5] #上一个请求的帧#
    [Prev response in frame: 12] #上一个响应的帧#
    [Request in frame: 15] #请求的帧#
    [Next request in frame: 47] #下一个请求的帧#
    [Next response in frame: 59] #下一个响应的帧#
    File Data: 19341 bytes #文件数据大小#
    Line-based text data: text/css #数据#

    状态码都是三位数字,分为5大类。

    1xx :表示通知信息,如请求收到了或正在进行处理。

    2xx:表示成功了,如接受或知道了

    3xx:表示重定位,如要完成请求还必须采取进一步的行动

    4xx:表示客户的差错 如请求中有错误的语法或不能完成、

    5xx:表示服务器的差错,如服务器失效无法完成请求

    DNS(域名系统)----从域名解析出IP地址

          便于人们使用的机器名字转化为IP地址。用户在互联网上通信的时候,必须知道对方的IP地址,而计算机用户很难记得很长的二进制地址,故使用域名,DNS的功能就是把互联网上的主机名字转化为ip地址。

       机器在处理ip数据报时使用IP地址二为啥不使用域名呢;这是因为域名的长度不固定,机器处理起来比较费劲。

       DNS是大多数名字都在本地解析,仅少量解析需要在互联网上通信。因此效率很高。

      域名到IP地址的解析过程如下:当一个应用进程需要把主机名解析为IP地址时,该应用程序就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。本地域名服务器在查找到域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的ip地址后即可进行通信。

    互联网的域名结构

    DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。级别最低的写在最左边,

    而级别最高的顶级域名则写在最右边。例如  n级域名.n-1级域名....3级域名.2级域名.顶级域名

    域名服务器

    一个服务器所负责管辖的范围叫做区。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。

    1)根域名服务器

     根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和ip地址。根域名服务器是最重要的域名服务器。不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析的,就首先要求助于根域名服务器。

    在许多情况下,根域名服务器并不直接把待查询的域名直接转换成ip地址(根域名服务器也没有存放这样的信息),而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

    2)顶级域名服务器

    这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答

    3)权限域名服务器

    负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉查询请求的DNS客户,下一步应当找哪一个权限域名服务器。

    4)本地域名服务器

    简单讨论一下域名的解析过程 

    第一:主机向本地域名服务器的查询一般都是采取递归查询。递归查询就是如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。即本地域名服务器不会给主机另外一个本地域名服务器的地址,让主机去查找另外一个本地服务器,而是本地域名服务器替主机去查找。

     

    基于TCP文件传送协议FTP

    他们都是文件共享协议中的一大类,即复制整个文件,其特点是:若要存取一个文件,就必须先获得一个本地的文件副本,如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原结点。

    文件共享协议中的另一大类是联机访问。联机访问意味着允许多个程序同时对一个文件进行存取。

    文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务。FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

    FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户端进程提供服务。FTP的服务器进程有两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

    主进程的工作步骤如下:

    1)打开熟知端口(端口号为21),使客户进程能够连接上

    2)等待客户进程发出连接请求

    3)启动从事进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。

    4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的。

    服务器端有两个从属进程:控制进程和数据传送进程。

    客户端除了有这两个从属进程以外,还有一个用户界面进程用来和用户接口。

    在进行文件传输时,FTP的客户端和服务器之间要建立两个并行的TCP连接:控制连接与数据连接。FTP客户端所发出的传送请求,通过控制连接发送给服务器的控制端,但控制连接并不用来传送文件。实际上用于传输文件的是“数据连接”。

    NFS:允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。

    万维网WWW:

    万维网是一个大规模的,联机式的信息储藏所,万维网用链接的方法能非常方便地从互联网上的一个站点访问另一站点。

    万维网是一个分布式的超媒体系统,他是超文本系统的扩充。所谓的超文本是指包含指向其他文档的链接的文本。

    万维网以客户服务器方式工作。上面所说的浏览器就是在用户主机上的万维网客户端程序。万维网文档所驻留的主机这运行服务器程序,因此这台主机也被成为万维网服务器。客户端向服务器发现请求,服务器程序向客户程序送回客户所要的万维网文档。

    万维网必须解决几个问题:

    1.怎么标志分布在整个互联网上的万维网文档:

    万维网使用统一资源定位符URL来标记万维网上的各种文档,具有唯一的标志符URL.

    2.用什么样的协议来实现万维网上的各种链接

    万维网的客户端和服务器之间的交互遵守严格的协议,就是超文本传送协议HTTP.HTTP是一个应用层协议,它使用TCP连接进行可靠的传送。

    3)怎样使不同作者创作的不同风格的万维网文档,都能在互联网上的各种主机上显示出来,同时使用户知道在什么位置存在连接。

    万维网使用超文本标记语言HTML,使得万维网页面的设计者可以很方便地用链接从本页面的某处链接到互联网上的任何一个万维网页面。

    4)怎样使用户能够很方便地找到所需的信息

    用户可使用搜索工具在万维网上方便查找所需的信息。

    URL的格式:

    统一资源定位符URL是用来表示从互联网上得到的资源位置和访问这些资源的方法。

    URL的一般形式由以上四个部分组成:

    <协议>://<主机>:<端口>/<路径>

    URL的第一部分是最左边的<协议> 。这里的<协议>就是指出使用什么协议来获取万维网文档。现在最常用的协议就是http ,其次是ftp

     在协议后面的“://”是规定的格式,它的右边是第二部分<主机> 它指出这个万维网文档是在哪一台主机上,这里的<主机>就是指该主机在互联网上的域名。第三第四部分,有时候是可以省略。

    使用HTTP的URL

    HTTP的默认端口号是80 通常可以省略 若在省略文件的<路径>项  则URL就指到互联网上的某个主页。主页是一个很重要的概念,它可以是以下几种情况之一:

    1)一个www服务器的最高级别的页面

    2)某一个组织或部门的一个定制的页面或目录。从这样的页面可链接到互联网上的与本组织或部门有关的其他站点。

    3)由某一个人自己设计的描述他本人情况的www页面

    进去以后,就可以通过许多不同的链接找到所要查找的各种更加具体的信息。

    用户使用URL并非仅仅能够访问万维网的页面,而且还能够通过URL使用其他的互联网应用程序中。用户在使用这些应用程序时,只使用一个程序,即浏览器。

    超文件传输协议HTTP

    HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度上说,HTTP是面向事务的应用层协议。HTTP不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网上得到的信息,如文本,超文本,声音和图像。

    每个万维网网点都有一个服务器进程,不断地监听TCP的端口80,以便发现是否有浏览器向它发出建立请求。

    一旦监听到连接建立请求并建立TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应,最后,TCP连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式,这些格式和规则就是超文本传送协议HTTP.

    HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后又怎么被重传。但是,HTTP协议本身是无连接。

    HTTP:HTTP的报文结构

    请求报文---------从客户向服务器发送请求报文

    响应报文--------从服务器到客户的回答

    CR代表回车 LF代表换行

    由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码串,因而各个字段的长度都是不一样的

    开始行:用于区分是请求报文还是响应报文,在请求报文中的开始行叫成请求行,而在响应报文中的开始行叫成状态行。

    在请求行中:方法是指OPTION GET HEAD POST PUT .....

    首部行,是用来说明浏览器,服务器,或报文主体的一些信息

    响应报文中 

    状态码:1XX 表示通知信息,如请求收到了或正在进行处理

                  2XX 表示成功 如接受或知道了

                  3XX 表示重定向 如要完成请求还必须采取进一步的行动

                  4xx 表示客户的差错 如请求中有错误的语法或不能完成

                  5xx 表示服务器的差错 如服务器失效无法完成请求

    Cookie是这样工作的。当用户A浏览某个使用Cookie的网站时,该网站的服务器就为A产生一个唯一的识别码。

    例如这个首部行是这样的:

    Set-cookie:31d4d96e407aad42

     

    电子邮件

     电子邮件系统:用户代理,邮件服务器,以及邮件发送协议(SMTP)和邮件读取协议(pop2)

     

                                                              邮件传送过程

    用户代理:又称为电子邮件客户端邮件

    SMTP和POP3都是使用TCP连接来传送邮件的,使用TCP的目的是为了可靠地传送邮件。

    TCP/IP体系的电子邮件系统规定电子邮件的地址的格式如下:

    用户名@邮件服务器的域名

    简单邮件传送协议SMIP:

    SMIP不使用中间的邮件服务器。不管发送方和接收方的邮件服务器相隔有多远,不管在邮件传送过程中要经过多少个路由器,TCP连接总在发送方和接收方这两个邮件服务器建立。

    动态主机配置协议DHIP:
    DHCP对运行客户软件和服务器软件的计算机都适用。当运行客户软件的计算机移至一个新的网络时,就可使用DHCP获取其配置信息而不需要手工干预。

    DHCP使用客户服务器方式。需要IP地址的主机在启动时就向DHCP服务器广播发现报文(目的地址全是1 即255.255.255.255)。因为这台主机目前还没有自己的ip地址,因此它将Ip数据报的源ip地址设为全0。

    应用进程跨越网络的通信

    只要应用进程需要从操作系统中获得服务,就把控制权传递给操作系统,操作系统在执行必要的操作以后把控制权返回给应用进程。因此,系统调用接口就是应用进程的控制权和操作系统的控制权进行转换的一个接口。这种系统调用的接口又称为应用编程接口API。

    网络编程时常常把套接字作为应用进程和传输层协议的之间的接口。

    当应用进程(客户或服务器)需要使用网络进行通信时,首先发出socket系统调用,请求操作系统为其创建一个“套接字”。操作系统为这些资源的总和用一个叫做“套接字描述符”的号码(整数)来表示,然后把这个套接字描述符返回给应用进程。

    主服务器进程一调用accept,就为每一个新的连接请求创建一个新的套接字,并把这个新创建的套接字的标志符返回给发起连接的客户方。主服务器进程还要创建一个从属服务器进程来处理新建立的连接。这样,从属服务器进程用这个新创建的套接字和客户进程建立连接,而主服务器进程用原来的套接字重新调用accept,继续接受下一个连接请求。

    总之,在任一时刻,服务器总有一个主服务器进程和零个或多个从属服务器进程,主服务器进程用原来的套接字接受连接请求,而从属服务器进程用新创建的套接字。

    P2P应用:

    p2p应用就是指具有p2p体系结构的网路应用。所谓P2P体系结构就是在这样的网络应用中,没有(或只有极少数的)固定的服务器,而绝大多数的交互都是使用对等方式进行的。

    展开全文
  • 应用层协议识别

    2015-04-09 16:00:12
    该论文可以有效识网络中传输数据的协议,准确率高,效率高。
  • 最近在使用wireshark 抓包,发现IP 包里面有个协议字段,是进行协议类型区分的,IP协议格式如下:其中协议字段,是对上层协议的描述: 比如:ICMP 为1,TCP 为6,UDP为17 具体协议对应数字可参考: ...

    最近在使用wireshark 抓包,发现IP 包里面有个协议字段,是进行协议类型区分的,IP协议格式如下:

    这里写图片描述

    其中协议字段,是对上层协议的描述:
    比如:ICMP 为1,TCP 为6,UDP为17
    具体协议对应数字可参考:
    http://blog.csdn.net/mifan88/article/details/8809382

    但是TCP或者UDP上层是什么协议类型呢?帧格式中有没有字段进行说明。
    参考《TCP/IP详解,卷一》中内容,发现是以端口号进行预留合区分的,具体参考下图:

    这里写图片描述

    因此wireshark 进行抓包的时候,根据端口号来解析应用层的协议,
    比如:ftp:21 ssh :22 telnet:23
    详细端口及协议信息参考链接:
    http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

    展开全文
  • 文章目录所用软件应用层操作一操作一相关问题操作二操作二相关问题总结 所用软件 Wireshark 应用层 操作一 了解 DNS 解析 先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 ...

    所用软件

    Wireshark

    应用层

    操作一

    了解 DNS 解析
    先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。
    了解一下 DNS 查询和应答的相关字段的含义。
    1.ipconfig /flushdns :

    在这里插入图片描述
    2. nslookup qige.io

    在这里插入图片描述
    3. Wireshark 任意抓包在这里插入图片描述

    在这里插入图片描述
    4. DNS 查询和应答的相关字段的含义
    在这里插入图片描述

    操作一相关问题

    你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?
    回答:
    因为我们访问的网址只有一个域名,但是并不只有一台服务器主机,因此每一台服务器的IP地址不同,但他们的域名都是相同的。因此发出的解析请求是分散给不同服务器。

    操作二

    了解 HTTP 的请求和应答
    打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。
    在捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。
    在捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。

    在这里插入图片描述

    请求报文:包含请求行(请求的方法,URL、协议版本)、请求头部、空行和请求数据4部分

    1.请求包GET命令在这里插入图片描述
    2.请求包POST命令在这里插入图片描述

    应答报文:包含状态行(协议版本、状态码、服务信息)、响应头部、空行和响应数据4部分

    3.应答包200在这里插入图片描述

    操作二相关问题

    问题

    刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304 代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答 304 应答而不是常见的 200 应答?
    回答:
    服务器对于浏览器的第一次应答对于浏览器来说已经有了缓存,因此浏览器第二次发送请求的时候,服务器会回复浏览器上次请求的资源现在在缓存里,因此服务器根据浏览器传来的时间发现和当前请求资源的修改时间一致,应答304,表示不再重新传送。

    总结

    以上就是利用Wireshark抓包学习应用层的具体内容。

    展开全文
  • 目录实验名称实验介绍实验目的背景知识和准备HTTP协议HTTP概述HTTP连接HTTP请求报文HTTP响应报文TCP协议TCP概述i. 端到端ii. 可靠、有序的字节流iii. 流水线iv. 发送和...应用层和传输层网络协议分析 实验介绍 实验使

    实验名称

    应用层与传输层网络协议分析

    实验介绍

    实验使用 Wireshark 工具对网络数据包进行抓取,并针对应用层和传输层封装的网络封包进行详细分析,通过实践观察加深对应用层HTTP协议以及传输层TCP协议具体实现过程的理解。
    在这个实验中,我们将探讨 HTTP 协议的几个方面:基本/响应交互,HTTP 消息格式,检索大型 HTML 文件,检索 HTML 文件嵌入对象,HTTP 身份验证和安全。

    实验目的

    (1) 理解和掌握 Wireshark 等工具的使用方法;
    (2) 利用 Wireshark 工具对应用层 HTTP 协议和传输层 TCP 协议进行分析。

    背景知识和准备

    HTTP协议以及TCP协议的理论知识。

    HTTP协议

    HTTP概述

    HTTP是超文本传输协议,是Web的核心。它包括两个部分:客户及程序、服务器程序。它们分别运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP协议定义了报文的格式以及客户机和服务器交换报文的方式。
    用户请求一个Web页(如点击一个超链接),浏览器向服务器发出对该页所含对象的“HTTP请求报文”。服务器接受请求,回发包含请求对象的“HTTP响应报文”。
    在这里插入图片描述

    HTTP连接

    HTTP连接包括非持续HTTP连接、持续HTTP连接两种,默认方式下使用持续连接。对于持续连接,服务器在发送响应后保持该TCP连接,相同客户机与服务器之间的后续请求和响应报文通过相同的连接进行传送。此外,一个TCP连接上可以传送多个Web对象。

    HTTP请求报文

    在这里插入图片描述

    HTTP响应报文

    在这里插入图片描述

    TCP协议

    TCP概述

    i. 端到端
    一个发送方, 一个接收方,连接状态与端系统有关,不为路由器所知。

    ii. 可靠、有序的字节流

    iii. 流水线
    TCP拥塞和流量控制设置滑动窗口协议。

    iv. 发送和接收缓冲区

    v. 全双工网络
    同一连接上的双向数据流。

    vi. 面向连接
    在进行数据交换前,初始化发送方与接收方状态,进行握手(交换控制信息)。

    vii. 流量控制
    发送方不能淹没接收方。

    viii. 拥塞控制
    抑止发送方速率来防止过分占用网络资源。

    可靠数据传输

    TCP在IP不可靠服务的基础上创建可靠数据传输服务。

    TCP报文段结构

    在这里插入图片描述

    实验过程

    1. 了解Wireshark工具的工作原理及使用方法

    这一部分我会单独写一篇博客介绍。

    2. 对HTTP协议进行分析

    在这个实验中,我们将探讨 HTTP 协议的几个方面:基本/响应交互,HTTP 消息格式,检索大型 HTML 文件,检索 HTML 文件嵌入对象,HTTP 身份验证和安全。

    1) 基本的HTTP请求/响应(file 1)

    a) 启动web浏览器,以Microsoft Edge为例。
    在这里插入图片描述
    b) 启动Wireshark 的数据包嗅探器,然后输入“http”(不带引号)。
    在这里插入图片描述
    c) 稍等片刻,然后按下开始按钮,开始捕获 Wireshark 的数据包。
    在这里插入图片描述
    现在,正在进行捕获。
    在这里插入图片描述
    d) 在浏览器中输入以下网址:
    http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
    在这里插入图片描述
    e) 停止 Wireshark 捕获数据包,Wireshark获取数据如下图:
    在这里插入图片描述
    f) 观察到上面捕获了较多的数据包,是不符合预期的,这不方便我们进行分析。推测原因在于,从捕获开始到捕获结束的这段时间内,除了访问指定网址以外,有其他应用程序(如QQ、网易云音乐等)传递的HTTP消息被同时捕获到。同时正在访问的其他网页对我们的捕获也产生了影响。因此,我关闭了其他应用程序,只访问指定的网页,快速地访问网页,之后马上停止捕获。此次的捕获结果为:
    在这里插入图片描述
    按下Ctrl+S,保存该报文。
    在这里插入图片描述
    g) 观察到HTTP响应状态为“304 Not Modified”,而不是“200 OK”,推测原因在于先前已经访问该网站,再次访问只起到了“刷新”的作用。我查了一下“304 Not Modified”的含义:
    当客户端缓存了目标资源但不确定该缓存资源是否是最新版本的时候, 就会发送一个条件请求。在进行条件请求时,客户端会提供给服务器一个If-Modified-Since请求头,其值为服务器上次返回响应头中Last-Modified值,还会提供一个If-None-Match请求头,值为服务器上次返回的ETag响应头的值。
    服务器会读取到这两个请求头中的值,判断出客户端缓存的资源是否是最新的,如果是的话,服务器就会返回HTTP/304 Not Modified响应头,但没有响应体。客户端收到304响应后,就会从本地缓存中读取对应的资源。 所以:当访问资源出现304访问的情况下其实就是先在本地缓存了访问的资源。
    因此需要清除已缓存的数据:
    在这里插入图片描述
    再次尝试抓包,成功。
    在这里插入图片描述
    响应报文状态为200 OK。查阅资料得知,HTTP 200 OK成功状态响应码指示请求已成功。200响应默认是可缓存的。Wireshark 获取到的请求报文如下图:
    在这里插入图片描述
    Wireshark 获取到的响应报文如下图:
    在这里插入图片描述
    按下Ctrl+S,保存该报文。

    2) HTTP条件请求/响应(file 2)

    a) 启动网页浏览器,并确保浏览器的缓存清零。
    在这里插入图片描述
    b) 启动 Wireshark 的数据包嗅探器。具体步骤如1中所示。
    在这里插入图片描述
    c) 输入以下网址到浏览器:
    http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html
    在这里插入图片描述
    d) 再次快速输入相同的 URL 到您的浏览器(或只需选择浏览器上的刷新按钮)。
    在这里插入图片描述
    e) 停止 Wireshark 的数据包捕获,并在显示过滤器规格窗口输入“http”。
    在这里插入图片描述
    观察到,这就是我们在上一步实验中提前遇到的情况。第二次响应报文如下:
    在这里插入图片描述
    按下Ctrl+S,进行保存。

    3) 检索长文档(file3)

    a) 启动网页浏览器,并确保浏览器的缓存清零。
    在这里插入图片描述
    b) 启动 Wireshark 的数据包嗅探器。具体步骤如1中所示。
    在这里插入图片描述
    c) 输入以下网址到浏览器:
    http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
    在这里插入图片描述
    d) 停止Wireshark的数据包捕获,并在显示过滤器规格窗口输入“http”,所以只捕获HTTP信息将被显示出来。
    在这里插入图片描述
    观察到与之前不同的是,服务器连续向浏览器发送了三个响应报文。这是由于发送的HTTP对象大小超过了MSS,所以需要分多个包进行传输,相应的包因此标记为“Continuation”。观察到第一个、第二个响应报文的长度均为1506,猜测该值对应MSS。第一个响应报文如下:
    在这里插入图片描述
    第二个响应报文如下:
    在这里插入图片描述
    第三个响应报文如下:
    在这里插入图片描述

    4) 嵌入对像的 HTML 文档(file4)

    a) 启动网页浏览器,并确保浏览器的缓存清零。
    在这里插入图片描述
    b) 启动 Wireshark 的数据包嗅探器。具体步骤如1中所示。
    在这里插入图片描述
    c) 输入以下网址到浏览器:
    http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
    在这里插入图片描述
    d) 停止 Wireshark 捕获数据包,并在显示过滤器规格窗口输入“http”,只显示捕获的 HTTP 信息。
    在这里插入图片描述
    由于该网页包含两个嵌入的图像,因此在浏览器发送第一个请求报文并收到来自服务器的响应报文之后,会再发送两个请求报文,用于请求这两个图像(其一为PNG格式,其二为JPEG格式)。理论分析与结果一致。第一个响应报文的结果如下图所示:
    在这里插入图片描述
    该HTML文件中存在两个对图像文件的引用,因此第二个请求报文为:
    在这里插入图片描述
    第三个请求报文为:
    在这里插入图片描述
    第二个响应报文:
    在这里插入图片描述
    第三个响应报文:
    在这里插入图片描述
    e) 对于嵌入对像的HTML文档,其条件请求/响应的情况会是怎么样的?出于兴趣,我再次启动 Wireshark 的数据包嗅探器,并刷新网页。结果如下:
    在这里插入图片描述
    观察到请求报文不变,响应报文由“200 OK”更改为“304 Not Modified”。

    5) HTTP 认证(file5)

    a) 确保浏览器的缓存清零,并关闭浏览器。然后,启动浏览器。
    在这里插入图片描述
    b) 启动 Wireshark 的数据包嗅探器。具体步骤如1中所示。
    在这里插入图片描述
    c) 输入以下网址到浏览器:
    http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html

    d) 在弹出框键入要求的用户名和密码。用户名是“wireshark-students”,密码为“network”。
    在这里插入图片描述
    浏览器成功访问到了该网页。
    在这里插入图片描述
    e) 停止 Wireshark 的数据包捕获,并在显示过滤器窗口输入“http”,确保只有捕获的HTTP 消息在分组列表窗口显示。结果如下:
    在这里插入图片描述
    观察到,浏览器向服务器发送了一个请求报文,之后收到一个由“401 Unauthorized”标识的响应报文,之后浏览器发送第二个请求报文,得到第二个响应报文。查阅资料得知,401 Unauthorized客户端错误状态响应代码指示该请求尚未应用,因为它缺少目标资源的有效认证凭证。这种状态类似403,但在这种情况下,身份验证是可能的。此状态与包含有关如何正确授权信息的WWW-Authenticate标头一起发送。
    Wireshark捕获的第一个响应报文为:
    在这里插入图片描述
    输入账号与密码之后,浏览器发送的请求报文如下:
    在这里插入图片描述
    观察到在Authorization中包含有输入的账号与密码。

    f) 那么对于这种情况,其条件请求/响应的情况会是怎么样的?出于兴趣,我再次进行尝试,结果如下:
    在这里插入图片描述
    由于本地缓存的存在,因此在这里并不需要再次输入账号与密码。如预期一样,响应报文的状态码为“304 Not Modified”。

    3. 对TCP协议进行分析

    这部分我另写了一篇博客详细介绍。地址为:
    https://blog.csdn.net/qq_41112170/article/details/106546348


    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/qq_41112170/article/details/106270724

    展开全文
  • 使用Wireshark工具分析网络协议

    千次阅读 2020-09-22 13:50:02
    上一章,我们了解了整个网络协议的七和四模型。从本章开始,我们将正式进入到网络协议的学习当中,如果只是单纯地讲解理论知识,这将非常抽象,因此,学习网络协议最好的方式就是借助工具,而在网络协议抓包领域...
  • Wireshark 抓包分析计算机网络各层协议一、Wireshark 抓包实操(1)数据链路层1.1 实作一: 熟悉 Ethernet 帧结构1.2 实作二:了解子网内/外通信时的 MAC 地址1.3 实作三:掌握 ARP 解析过程(2)网络层2.1 实作一:熟悉...
  • 16. 在Wireshark中添加新协议 WireShark编程基础 使用Lua开发简单扩展功能 使用WireShark开发新的协议解析器 测试新协议 WireShark支持Lua语言编写的脚本 16.1 WireShark编程基础 在WireShark中添加lua脚本 到...
  • 使用TCP协议传输数据相对来说更安全,因为通信双方拥有一个专属的通信通道,每发送一个数据包都有确认回复,若数据包丢失。如果发送放没收到确认包,就可以重发这个数据包。 最经典的例子就是三次握手。三次握手是...
  • Wireshark lua插件实现私有协议的解析

    千次阅读 2020-03-24 22:18:12
    介绍如何使用wireshark lua插件新增私有协议解析器
  • Wireshark学习

    千次阅读 多人点赞 2020-01-31 14:00:32
    0x1 Wireshark安装和下载 老样子给出Wireshark下载地址Wireshark官网,下载完成后除了选择安装路径外都可以直接下一步默认安装配置。如果嫌下载慢我这还有刚下好的最新版本x64 v3.2.1,给大家带来便利网盘入口,密码...
  • 这里采用表格的形式列出了 当前捕获文件中的所有数据包,其中包括了数据包序号、数据包捕获的相对时 间、数据包的源地址和目标地址、数据包的协议以及在数据包中找到的概 况信息等。 Packet ...
  • Wireshark了解计算机网络的数据链路层、网络层、传输层以及应用层准备数据链路层二级目录三级目录 准备 了解 Wireshark 的基本使用: 1.选择对哪块网卡进行数据包捕获 2.开始/停止捕获 3.了解 Wireshark 主要窗口...
  • 考察 TTL 事件3、传输层实作一 熟悉 TCP 和 UDP 段结构实作二 分析 TCP 建立和释放连接4、应用层实作一 了解 DNS 解析实作二 了解 HTTP 的请求和应答 实验前准备 本部分实验用到的是抓包和协议分析软件——Wiresha
  • TCP 协议的流控制策略 如何建立 TCP 连接 TCP 连接的性能(吞吐量和往返时间) 具体步骤为: 抓取传输到远程服务器的 TCP 数据包 a) 打开 web 浏览器,进入: http://gaia.cs.umass.edu/wireshark-labs/alice.txt...
  • 一、wireshark与对应的OSI七模型 二、TCP包的具体内容 从下图可以看到wireshark捕获到的TCP包中的每个字段。 Wireshark 抓包介绍 1)wireshark介绍 官方下载网站:http://www.wireshark.org/ ...
  • TLV应用层协议开发示例

    热门讨论 2011-10-27 22:18:10
    《应用层通信协议开发浅析》博文代码: 基于TLV的应用层协议开发示例。
  • Wireshark实验分析各种协议

    千次阅读 2020-06-18 23:09:35
    看完了计网的五结构,就实际操作一下来捉下不同下的协议包来康康。加深一下印象=。= 实验准备 Wireshark软件 随意获取一个网站的ip地址,用于过滤 TCP三次连接 三次握手的连接: 第一次握手 第二次握手: 第...
  • Wireshark数据抓包分析 网络协议

    热门讨论 2014-09-28 14:11:15
    Wireshark数据抓包分析 网络协议
  • Wireshark支持的工控协议

    千次阅读 2019-06-28 15:57:15
    在工控系统中通信协议存在众多标准,也存在众多私有协议,如果你有过使用组态软件的经历,你便会发现,在第一步连接设备时除连接设备的方式有以太网/串行等方式外,各家基本上都存在自己的私有通信协议。 上图为,...
  • 通过本实验使学生学会使用网络仿真软件的一般方法,理解WWW、DNS、DHCP等网络应用协议工作原理,掌握网络服务器配置的基本方法。 3.基本要求 (1)课前准备:仔细阅读实验指导书,详细规划实验过程和步骤,设计...
  • wireshark自定义协议字段解析

    千次阅读 2020-01-20 20:50:03
    wireshark源代码: https://code.wireshark.org/review/#/admin/projects/wireshark wireshark开发指南: ... 添加自定义协议解析器示例: https://www.wireshark.org/docs/wsdg_html_...
  • 应用层协议的捕获和解析 实验环境 一台装有 MS Windows 系列操作系统、Linux 或 Mac 操作系统的计算机,能够连接到因特网,并安装 Wireshark 软件。 实验内容 1) 使用 Wireshark 软件捕获 HTTP 消息,分析其消息头...
  • Wireshark 抓包理解 HTTPS 协议

    千次阅读 2019-05-26 21:38:37
    HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer)协议是 HTTP 协议的安全版,在 HTTP 应用层和传输层加入了 SSL/TLS 层,确保数据传输的安全性,所以 HTTPS 协议并不是什么新的协议,仅仅是 ...
  • wireshark中主要提供了两种过滤器:捕获过滤器,显示过滤器 捕获过滤器:捕获数据包之前先进行过滤,在上一篇中我们已经介绍过了。 显示过滤器:对捕获后的数据包进行显示过滤,主要对抓到的数据包进行更加精细的...
  • 计网实验 应用层协议消息的捕获和解析 一、实验内容和实验步骤描述 1.实验类别 协议分析验证型。 2.实验任务 应用层协议消息的捕获和解析。 3.实验内容 本次实验主要包含下列内容: (1)使用 Wireshark 软件捕获 ...
  • 文章目录TCP\IP协议实践:wireshark抓包分析之链路与网络从ping开始链路之以太网封装ip首部开启ping程序,开始抓包由一个ping的结果引出来的两个协议ARP ICMPARP:地址解析协议原理抓包结果ICMP:Internet控制...
  • HTTP DNS FTP SMTP 转载于:https://www.cnblogs.com/jodyccf/p/10476629.html
  • wireshark基础使用说明

    千次阅读 2020-01-16 10:26:04
    一、什么是wireshark Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包, 并尝试显示包的尽可能详细的情况。 二、wireshark界面说明 三、过滤规则 如果过滤的框为绿色,表示这个规则合法;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,862
精华内容 5,144
关键字:

wireshark查看应用层协议