Wireshark 跟踪TCP流

打开捕获文件;在一个协议为TCP的包上右击,选择 追踪流-TCP;将进入TCP流追踪;

选择该菜单后,主面板上包列表里,仅列出本次TCP会话的包;

同时会在一个单独的窗口中显示TCP流;

看一下基本是乱码;大体能看出,是http1.1协议;是本机和百度的一个网址通信的情况;

红色是源到目的地;蓝色反之;

先看一下;需要详细解析的时候再说吧;

看一下本次会话最后一个包;

eclick.e.shifen.com
https(443) [ACK] Seq=1786 Ack=4560 Win=65536 Len=0 SLE=4220 SRE=4560

是嘛意思?

基本解释如下:

443端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。

在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.
它们的含义是:
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,
PSH表示有 DATA数据传输,
RST表示连接重置。

TCP的SEQ和ACK总结:      
       在TCP通讯中,无论是建立连接,数据传输,友好断开,强制断开,都离不开Seq值和Ack值,它们是TCP传输的可靠保证。Seq是发送方告诉接收方,我当前从第Seq个字节开始发送len个字节数据(不包括以太网Eth头,IP头和Tcp头,也就是纯数据长度)给你,而Ack则是接收方给发送方回复:接收方回复的Ack=发送方Seq+发送数据长度len。
      在建立连接双方握手时,发送方的Seq为0,表示发送的数据长度也为0,这时接收方收到数据帧后,会判断Seq+数据长度为0或者Seq+数据长度为1的话,那么在回应发送方的Ack的值就为1(也就表示确认号有效,为0的话就表示数据包中不包含确认信息(即不含有Ack字段),忽略确认号字段)。
      在数据传输中,如果Seq+数据长度不为0或1并且数据长度不为0的话,则回应时的Ack就等于Seq+数据长度的值,这就表示我已经收到Seq+数据长度个字节的数据。发送方收到该Ack就会比较自己的Seq+刚发出去的纯数据长度,如果一致,则回应接收方的Ack,并且发送下一个包,否则将重发该包,若超时还没收到Ack也会重发该包。

发布了434 篇原创文章 · 获赞 512 · 访问量 294万+

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/91349077
今日推荐