Wireshark抓包分析TCP记录

1 tcp协议介绍:

从“TCP/IP”名字上来看,貌似这只是tcp协议和ip协议,但是实际上,这是很多协议很多协议组成的一个协议集合,我们 把这集合统称为 TCP/IP协议族,简称为TCP/IP协议。对于TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和 数据链路层。通过下图我们可以了解TCP/IP协议结构并对比了解学习TCP/IP 四层参考模型和 OSI 七层参考模型,因为TCP/IP太 过简单,我们也会使用模型化的TCP/IP五层模型来描述计算机网络。

在这里插入图片描述
在这里插入图片描述

 其中每层的主要作用是:
 TCP/IP——网络接口层:数据封装/解封装成帧(frame)。:控制帧传输。流量控制。
 TCP/IP——网络层: 说到网络层不得不提的就是IP协议,它是TCP/IP协议族中为核心的协议。所有的TCP、UDP、ICMP、IGMP协议数据都以IP 数据报格式传输。IP协议提供的是不可靠的、无连接的数据报传输服务。不可靠是指IP协议不会保证数据报能否成功到达目的 地,仅提供传输服务,传输出错,则会丢弃出错的数据报。无连接是指IP协议对数据报的处理是独立的,这也意味着接收方不一 定会按照发送顺序接收数据报。
 TCP/IP——传输层:无论参考OSI还是TCP/IP的网络模型,我们从传输层向更底层看,各层的协议都是在直接或间接的服务于主机与主机之间的通 信,而传输层则是在进程与进程通信层面上的。传输层有两个重要的协议——TCP(Transmission ControlProtocol,传输控制 协议)和UDP(User Data Protocol,用户数据报协议)。

2,Wireshark抓包实例

2.1三次握手

(1)1. Client首先向Server发送连接请求报文段,同步自己的seq(x),Client进入SYN_SENT状态。
2.   Server收到Client的连接请求报文段,返回给Client自己的seq(y)以及ack(x+1),Server进入SYN_REVD状态。
3.   Client收到Server的返回确认,再次向服务器发送确认报文段ack(y+1),这个报文段已经可以携带数据了。Client进 入ESTABLISHED状态。
4.   Server再次收到Client的确认信息后,进入ESTABLISHED状态。

在这里插入图片描述
(2)wireshark抓包获取访问指定服务端数据包
Step1:启动wireshark抓包,打开浏览器输入www.huawei.com。
Step2:使用ping www.huawei.com获取IP。

在这里插入图片描述
Step3:输入过滤条件获取待分析数据包列表 ip.addr == 182.242.50.121

在这里插入图片描述

在这里插入图片描述
图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。

第一次握手:
在这里插入图片描述
数据包的关键属性如下:
SYN :标志位,表示请求建立连接
Seq = 0 :初始建立连接值为0,数据包的相对序列号从0开始,表示当前还没有发送数据
Ack =0:初始建立连接值为0,已经收到包的数量,表示当前没有接收到数据

第二次握手:
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图
在这里插入图片描述
在这里插入图片描述
数据包的关键属性如下:
[SYN + ACK]: 标志位,同意建立连接,并回送SYN+ACK
Seq = 0 :初始建立值为0,表示当前还没有发送数据
Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位。(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)

第三次握手:
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:
在这里插入图片描述
在这里插入图片描述
数据包的关键属性如下:
ACK :标志位,表示已经收到记录
Seq = 1 :表示当前已经发送1个数据
Ack = 1 : 表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)。就这样通过了TCP三次握手,建立了连接。开始进行数据交互。

2.2四次挥手

在这里插入图片描述
 
 (1)Client向Server发送断开连接请求的报文段,seq=m(m为Client后一次向Server发送报文段的后一个字节序号加1), Client进入FIN-WAIT-1状态。   
 (2)Server收到断开报文段后,向Client发送确认报文段,seq=n(n为Server后一次向Client发送报文段的后一个字节序 号加1),ack=m+1,Server进入CLOSE-WAIT状态。此时这个TCP连接处于半开半闭状态,Server发送数据的话,Client仍然可 以接收到。  
  (3)Server向Client发送断开确认报文段,seq=u(u为半开半闭状态下Server后一次向Client发送报文段的后一个字节序 号加1),ack=m+1,Server进入LAST-ACK状态。
  (4)Client收到Server的断开确认报文段后,向Server发送确认断开报文,seq=m+1,ack=u+1,Client进入TIME-WAIT状 态。  
  (5)Server收到Client的确认断开报文,进入CLOSED状态,断开了TCP连接。   
  (6)Client在TIME-WAIT状态等待一段时间(时间为2*MSL((Maximum Segment Life)),确认Client向Server发送的后一次 断开确认到达(如果没有到达,Server会重发步骤(3)中的断开确认报文段给Client,告诉Client你的后一次确认断开没有收 到)。如果Client在TIME-WAIT过程中没有再次收到Server的报文段,就进入CLOSES状态。TCP连接至此断开。

在这里插入图片描述
数据含义同三次握手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值