wireshark抓包分析——TCPIP协议
wireshark抓包分析——TCP/IP协议
2018-08-29 09:26
删除
当我们需要跟踪⽹络有关的信息时,经常会说“抓包”。这⾥抓包究竟是什么?抓到的包⼜能分析出什么?在本⽂中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通过wireshark抓包分析。
Wireshark 是最著名的⽹络通讯抓包分析⼯具。功能⼗分强⼤,可以截取各种⽹络封包,显⽰⽹络封包的详细信息。
Wireshark下载安装,略。注意,若在Windows系统安装Wireshark,安装成功后可能会出现Wireshark的两个图标,⼀个是Wireshark(中⽂版);另外⼀个是Wireshark Legacy (英⽂版)。下⾯的内容会以Wireshark Legacy为例介绍。
打开Wireshark,开始界⾯如下:
Wireshark捕获的是⽹卡的⽹络包,当机器上有多块⽹卡的时候,需要先选择⽹卡。开始界⾯中的Interface List,即⽹卡列表,选择我们需要的监控的⽹卡。点击Capture Options,选择正确的⽹卡,然后点击"Start"按钮, 开始抓包。
封包详细信息是⽤来查看协议中的每⼀个字段。各⾏信息分别对应TCP/IP协议的不同层级。以下图为例,分别表⽰:传输层、⽹络层、数据链路层、物理层,⼀共四层。如果有应⽤层数据会显⽰第五层,即⼀共会出现五层。
每⼀层都有⼀个字段指向上⼀层,表明上⼀层是什么协议。这⼤概是因为发包的时候会在数据上依次加上应⽤层、传输层、⽹络层、链路层的头部,但是对⽅收到数据包后是从最底层(链路层)开始层层剥去头部解包的,所以在每层上有⼀个字段指向上层,表明上层的协议,对⽅就知道下⼀步该怎么解包了。以TCP/IP协议为例,下图中分别是:IPv4、TCP。由于建⽴TCP连接⽤不到应⽤层协议,所以传输层就没有相应的指明上层(应⽤层)的字段了。
在了解Wireshark界⾯后,我们来分析TCP协议。这⾥有很多数据包,我们需要先过滤,添加对应的过滤条件。⽐如,我添加了⽬标的ip地址和端⼝号:tcp and
ip.addr==47.95.47.253 and tcp.port==53992,此时获取到的封包列表如下。
tcpip协议pdf在此之前,看下TCP/IP报⽂的格式。
根据上述报⽂格式我们可以将wireshark捕获到的TCP包中的每个字段与之对应起来,更直观地感受⼀下TCP通信过程。先看三次握⼿,下图中的3条数据包就是⼀次TCP 建⽴连接的过程。
第⼀次握⼿,客户端发送⼀个TCP,标志位为SYN=1,序号seq为Sequence number=0, 53992 -> 80,代表客户端请求建⽴连接;
第⼆次握⼿,服务器向客户端返回⼀个数据包,SYN=1,ACK=1,80 -> 53992,将确认序号(Acknowledgement Number)设置为客户的序号seq(Sequence number)加1,即0+1=1;
第三次握⼿,客户端收到服务器发来的包后检查确认序号(Acknowledgement Number)是否正确,即第⼀次发送的序号seq加1(X+1= 0+1=1)。以及标志位ACK是否为1。若正确,客户端会再向服务器端发送⼀个数据包,SYN=0,ACK=1,确认序号(Acknowledgement Number)=Y+1=0+1=1,并且把服务器发来ACK的序号seq(Sequence number)加1发送给对⽅,发送序号seq为X+1= 0+1=1。客户端收到后确认序号值与ACK=1,53992 -> 80,⾄此,⼀次TCP连接就此建⽴,可以传送数据了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论