一、工具和软件链接
wireshark下载地址如下,假如是win10系统,可能还需要安装另外的win10cap。
---wireshark管网
----win10cap
二、wireshark介绍
1、首页,选择网卡进入详情界面,主要包括 过滤器、列表、包详情、原始数据、地址栏
2、过滤器(使用)
类型 分为两种,一种是 显示过滤器,即界面可见,在已捕获的记录中过滤所需要的记录(操作和设置如下图)
一种是捕获过滤器,打开Capture -> Capture Filters ,过滤捕获过程的数据包,可以过滤部分记录
规则:
》 协议过滤,TCP/UDP
》IP 过滤, ip.src ==192.168.1.1 显示源地址为192.168.1.1的数据,ip.dst==192.168.1.102, 目标地址为192.168.1.1的数据
》端口过滤,tcp.port ==80, 端口为80的tcp.srcport == 80, 过滤并只显示TCP协议的源端口为80的数据。
》Http模式过滤,http.request.method=="GET", 过滤并只显示GET方法的数据。
3、列表(解析)
对应的七层模型和数据详情如图
4、时间显示(使用)
wireshark分析,对于列表时间戳调整。调整方法为View -->Time Display Format --> Date and Time of Day
三、3次握手模型
借助 wireshark抓包,能简单的理解和看到三次握手整个过程。
step1,客户端处于SYN_SENT状态,发送Syn 请求消息给Server端,SYN标志位置为1,和分配好的U32的整型Seq号(随时间产生的一个随机值,一般每4ms加1),另外还有最大报文段长度MSS,表示tcp到对端的最大数据块长度。
step2,服务端收到Syn请求,进入SYN_RCVD状态,并返回Ack消息给客户端,表示已经收到SYN消息并通过了确认。反馈含两部分内容,一是回复客户端的Syn消息,包括ACK=1,Seq号则等于客户端的发来的Syn消息的Seq数值+1,另一部分是主动发送Sever端的Syn消息给Client,Seq号码是Server端上面对应的序列号,Syn标志位也会设置成1,MSS表示的是Server这一端的最大数据块长度。
step3,回到客户端,在收到服务端的应答之后,客户端的状态从SYN_SENT变成ESTABLISHED,并再次发消息给服务端,表示链接成功,客户端端回复ACK消息给服务端,包括ACK状态被设置为1,Seq号码被设置成Server端的序列号+1,同时客户端也将包内容发给服务端。最后,服务端进入ESTABLISHED状态,端到端连接建立成功,服务端和客户端可以相互提醒,TCP的全双工连接建立完成。