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

至此连接关闭

原文地址:https://www.cnblogs.com/sunfan1988/p/4158043.html