zoukankan      html  css  js  c++  java
  • WireShark

    Wireshark

    介绍

    Wireshark(前称Ethereal):是一个开源的网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

    官网地址:https://www.wireshark.org/

    wireshark与Fiddler的区别

    应用层方面

    Fiddler:用来捕获HTTP,HTTPS的并且可以对包内容进行修改.

    wireshark:能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容.

    Fiddler更优秀一些.

    通信层方面

    wireshark可以获取TCP和UDP的传输包

    与网络有关的还是使用wireshark比较合适.

    使用介绍

    开始页面

    wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。

    点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包

    点击start开始

    WireShark 主要分为这几个界面

    1. Display Filter(显示过滤器),  用于过滤

    2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同.

    3. Packet Details Pane(封包详细信息), 显示封包中的字段

    4. Dissector Pane(16进制数据)

    5. Miscellanous(地址栏,杂项)

    封包详细信息

    这个是最核心的功能,用来查看协议中的每一个字段。

    各行信息分别为

    Frame:   物理层的数据帧概况-----------------------------OSI物理层

    Ethernet II: 数据链路层以太网帧头部信息------------------------OSI链路层

                                             ----------tcp/IP物理层

    Internet Protocol Version 4: 互联网层IP包头部信息--------------------OSI网络层

                                             ----------tcp/ip网络层

    Transmission Control Protocol:  传输层T的数据段头部信息,此处是TCP------------OSI传输层/通信层

                                             -----------tcp/ip传输层/通信层

    Hypertext Transfer Protocol:  应用层的信息,此处是HTTP协议---------------OSI会话,表示,应用层

                                             -----------tcp/ip应用层

    关于tcp的详解

    tcp报文格式http://www.360doc.com/content/12/1218/10/3405077_254718387.shtml

    第一次握手 客户传递了一个 SYN=1(标识) SEQ=0----我要连接了,我的序列号给你,进入等待应答状态

    第二次握手 服务端根据客户端的SEQ生成了一个ACK=SEQ+1 =0+1,并返回一个自己的SEQ----我收到了你的连接,按约定(你的序列号+1)返回确认号,并给你我的序列号

    第三次握手 客户端获得服务端的ACK,发现一致(ACK-1=第一次握手发送的SEQ)后,回复一个ACK=SEQ+1=1和重新生成了一个新的SEQ发送给服务端---- 我收到了你的连接,先换算是否正确(你的响应-1),确认后返回同                                                                                   第二次握手一样发送确认号和序列号

    至此连接建立

    图片更正,第三次挥手是ACK=X+1,第四次挥手的ACK=Y+1(图片抄袭来的,应该是写错了)

    第一次挥手: 发起方 FIN=1 SEQ=1 ACK=1----------- 发起方的数据传输完毕了(FIN=1),准备关闭通道(进入wait状态),给你的我序号,等你应答

    第二次挥手: 接收方 ACK=1+1 SEQ=1--------------- 服务端收到你的请求,先应答你一下ACK=你的序列号+1,但是别关闭FIN=0(就是没有传FIN),我还需要传输数据

    第三次挥手: 接收方 FIN=1 ACK=1+1--------------- 服务端传输完毕了,你关闭通道吧(FIN=1) 应答还是用第二次挥手时用的

    第四次挥手: 发起方 ACK=1+1 SEQ=2----------------发起方收到请求,给你最终确认ACK=你的序列号+1

    至此连接关闭

  • 相关阅读:
    ObjectiveC初步研究 实现文件(Implementation File)
    SQL技巧(二) CTE(公用表达式)初步接触
    ObjectiveC编程基础
    Linux编程 使用C在mysql中插入数据
    办理户口
    修改kernel内核HZ频率没有效果问题
    如何从湖北省人才市场将户口迁移出来?
    查看 各种寄存器值的 内核模块 C语言
    SDRAM AND SRAM
    linux2.6.26内核中ARM中断实现详解(转)
  • 原文地址:https://www.cnblogs.com/sunfan1988/p/4158043.html
Copyright © 2011-2022 走看看