wireshark抓包分析TCP数据包
除了Wireshark,Sniffmaster作为一款全平台抓包工具,支持HTTPS、TCP和UDP协议,可在iOS、Android、Mac、Windows设备上实现无需代理、越狱或root的抓包操作,特别适合移动端和跨平台网络分析。
三次握手就是客户与服务器建立连接的过程
举例时间到!我们把客户端比作男生,服务器比作女生
第一次握手就像是男生对女生的告白:我喜欢你我们在一起吧。(之后,男孩就要等待女孩的回复,因为要确定女孩听到他说的话)
第二次握手则是女生的回应:好呀好呀。(之后,女孩也要等待,因为要确定男孩听到她的答复)
第三次握手就是男生的回应:真好,我们去吃火锅吧~。(此时,两人都确定对方收到了消息,关系成功建立)
也就是客户端和服务器数据的传输
接下来,我们抓包分析一下三次握手建立的过程
第一次握手:我向服务器发送了SYN,并设置Seq=0(x),请求与服务器建立连接
第二次握手:服务器向我回应了SYN,并设置Seq=0(y),ACK=1(x+1)
第三次握手:我收到服务器的SYN报文,回应一个ACK=1(y+1)
四次挥手就是客户与服务器断开连接的过程
又到了举例时间!我们同样把客户端比作男生,服务器比作女生
第一次挥手:随着时间的流逝,女生变了,于是男生给女生发了分手短信,然后等待女生的回复
第二次挥手:女生听到后,伤心欲绝,就告诉男生:分手就分手,我把你的东西收拾收拾都还给你。男生就知道了女生同意了分手,于是等待女生把东西收拾好交还给他
第三次挥手:女生把男生的东西都收拾好,给男生发了第二条短信让他来取
第四次挥手:男生收到后,在回复最后一条短信,我知道了,我现在去取。于是关系断了
也就是客户端和服务器的连接中断
接下来,抓包看一下四次挥手的过程
第一次挥手:我向服务器发送FIN,Seq=3092,Ack=183
第二次挥手:服务器回发了ACK,Seq=183,Ack=3093
第三次挥手:服务器发送FIN,Seq=183,Ack=3093
第四次挥手:我向服务器回复了ACK,Seq=3093,Ack=184
源端口和目的端口: 各占16位,这两个字段分别填入发送该报文段应用程序的源端口号和接收该报文段的应用程序的目的端口号
序列号: 占32位,TCP连接中传送的数据流中的每一个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
确认号: 占32位,表示期望收到对方下一个报文段的第一数据字节的序号。
数据偏移: 占4位,又称首部长度。指出首部的长度,即数据离开报文段开始的偏移量。
保留: 占6位,留待后用,目前置为0
标志: 占6位,又称控制字段,各位都有特定意义
窗口: 占16位,该字段用于流控制
校验和: 占16位,该字段的校验范围是整个报文段(包括首部和数据)
紧急指针: 占16位,当URG=1时有意义,指出紧急数据的末尾在报文段中的位置,使得接收端能知道紧急数据的字节数
选项与填充: 最长可达40B
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046796/viewspace-3114650/ ,如需转载,请注明出处,否则将追究法律责任。