wireshark基本介绍和TCP三次握手
wireshark窗口介绍(mac)
wireshark显示过滤
过滤表达式规则
- 协议过滤,比如TCP,只显示TCP协议
- IP过滤,比如ip.src==192.168.1.102
- 端口过滤,tcp.port==80,端口为80
- http模式过滤,http.request.method==“GET”,只显示HTTP GET方法
- 逻辑的过滤表达式,AND/OR
封包列表
封包列表显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息
封包详细信息
- Frame:物理层的数据帧概况
- Ethernet II,Src:数据链路层以太网帧头部信息
- Internet Protocol Version 4: 互联网层IP包头部信息
- Transmission Control Protocol: 传输层T的数据段头部信息
- Hypertext Transfer Protocol: 应用层的信息
分析TCP三次握手
标志位含义
- URG—为1表示高优先级数据包,紧急指针字段有效
- ACK—为1表示确认号字段有效
- PSH—为1表示是带有PUSH标志的数据,指示接收方应该尽快将这个报文段交给应用层而不用等待缓冲区装满
- RST—为1表示出现严重差错。可能需要重现创建TCP连接。还可以用于拒绝非法的报文段和拒绝连接请求。
- SYN—为1表示这是连接请求或是连接接受请求,用于创建连接和使顺序号同步
- FIN—为1表示发送方没有数据要传输了,要求释放连接。
实例:
curl http://www.cnblogs.com/tankxiao
在控制台中输入命令curl http://www.cnblogs.com/tankxiao,然后在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream"
可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的
- 第一次握手数据包
标志位SYN设置为1,代表客户端请求连接,并设置序列号为0
- 第二次握手数据包
服务端:标志位为SYN设置为1,代表请求连接,ACK设置为1,代表字段有效,并设置序列号为0
- 第三次握手的数据包
客户端:设置ACK字段为1,确认字段,有效,SYN设置为0,表示连接完成,序列号加1
这样就建立了连接.