[原]结合wireshark分析TCP和三次握手原理
一、wireshark介绍
Wireshark(前称Ethereal)是一个 网络封包分析 软件。 网络封包分析 软件的功能是撷取 网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换 。
1.Wireshark作用
1) 网络管理员使用Wireshark来检测网络问题
2) 网络安全工程师使用Wireshark来检查资讯安全相关问题
3)开发者使用Wireshark来为新的通讯协定除错
4)普通使用者使用Wireshark来学习网络协定的相关知识
5)黑客会用它来寻找一些敏感信息
2.wireshark工作流程
wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包
WireShark 主要分为这几个界面,如下图
1)Display Filter(显示过滤器), 用于过滤
2)Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表
3)Packet Details Pane(封包详细信息), 显示封包中的字段
4)Dissector Pane(16进制数据)
5)Miscellanous(地址栏,杂项)
二、基于wireshark的TCP协议分析
Packet Details Pane(封包详细信息), 这个面板是我们最重要的,用来查看协议中的每一个字段。
各行信息分别为
Frame: 物理层的数据帧概况
Ethernet II: 数据链路层以太网帧头部信息
Internet Protocol Version 4: 互联网层IP包头部信息
Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
2.TCP包的的具体内容和wireshark获取的字段对应
三.wireshark实例分析3次握手
三次握手图示
1.首先是3次握手,第4次的才是http
2.第一次握手数据包
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图
3.第二次握手的数据包
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图
4.第三次握手的数据包
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图: