今天就跟大家聊聊有关如何使用wireshark分析tcp,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联专业为企业提供岱山网站建设、岱山做网站、岱山网站设计、岱山网站制作等企业网站建设、网页设计与制作、岱山企业网站模板建站服务,十年岱山做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
今天使用wireshark来分析一下tcp的一些原理。首先我们建立一个tcp服务器。
const net = require('net');
net.createServer().listen(11111);
再建立一个tcp客户端。
const net = require('net');
net.connect({port: 11111, host: '192.168.8.226'})
我们逐个情况分析。
1 不启动服务器,启动客户端。
我们看看这种情况下tcp的表现。先看看总览。
3 客户端挂了(或者服务器挂了)
我们看一下,如果客户端直接挂机了,tcp是怎么处理的。
4 客户端(或服务器)正常关闭连接
我们先改一下客户端代码
const net = require('net');
const socket = net.connect({port: 11111, host: '192.168.8.226'});
socket.on('connect', (client) => {
socket.destroy()
})
上面的代码使得客户端完成三次握手后立刻开始四次握手关闭连接。我们看看tcp的表现。
5 两端一起关闭
我们把服务器代码也改一下。
const net = require('net');
net.createServer((socket) => {
socket.destroy();
}).listen(11111);
服务器完成三次握手的时候,在回调里立刻发送fin包。那么这时候tcp会怎样处理呢?因为三次握手中,第三次握手是由客户端发送的,客户端发送第三次握手的时候,就进入了完成连接状态(established)。而这时候服务器还没有收到第三次握手的数据包。所以客户端会先发送fin包。那么问题就来了。客户端发送的fin包和第三次握手的ack包,哪个先到服务端,影响了后续的流程。下面就是这两种情况。
看完上述内容,你们对如何使用wireshark分析tcp有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。