Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 如何确定单个IP的并发会话数_Session_Networking_Proxy_Firewall_Packet - Fatal编程技术网

Session 如何确定单个IP的并发会话数

Session 如何确定单个IP的并发会话数,session,networking,proxy,firewall,packet,Session,Networking,Proxy,Firewall,Packet,我正在编写一个分析器脚本。这是一个简单的bash脚本,可以在tcpdump嗅探捕获上应用一些逻辑 我的任务是找出各个IP并发会话的数量。我应用的逻辑是,我计算了每个ip对同一目标ip和端口(即3128)的不同源端口请求,因为它是代理服务器 例如,考虑到我的最大IP是172.31.1.1,DeST端口是3128</p> 现在,我嗅探到的流量仅限于此dest端口和dest ip 然后,我筛选出每个数据包的源ip和源端口对 然后,我计算了每个源IP的不同源端口的数量,我认为这将等于每个IP与这个代理服

我正在编写一个分析器脚本。这是一个简单的bash脚本,可以在tcpdump嗅探捕获上应用一些逻辑

我的任务是找出各个IP并发会话的数量。我应用的逻辑是,我计算了每个ip对同一目标ip和端口(即3128)的不同源端口请求,因为它是代理服务器

例如,考虑到我的最大IP是172.31.1.1,DeST端口是3128</p> 现在,我嗅探到的流量仅限于此dest端口和dest ip

然后,我筛选出每个数据包的源ip和源端口对

然后,我计算了每个源IP的不同源端口的数量,我认为这将等于每个IP与这个代理服务器进行并发会话的数量

现在,通过查看正在运行的代理服务器上10000个数据包样本的输出,每个IP的会话数大约为300250200,甚至更少。对于10万人来说,这也相当于3000、2500人


我对会话的理解是否有问题,因为防火墙允许的并发会话数是每个IP 100

正如我在评论中提到的,如果您想知道在任何给定时间来自单一源IP的TCP连接数,您将需要确定连接建立(TCP)和终止(以及重置)点。否则,您将在整个捕获期间统计从给定IP建立和尝试的所有TCP连接(但由于临时客户端端口可能在捕获期间被回收,因此此计数可能不准确)

我应该提到,在
SYN
上增加连接的运行计数,在
FIN
RST
上减少连接计数是不够的,因为TCP倾向于重新传输数据包。您需要跟踪TCP状态,因此熟悉TCP状态图可能是为了:


(来自().

您是在查看TCP连接,还是只是查看任何IP流量?请不要提它……是的,这是关于TCP连接的。您必须跟踪连接建立/中断,即SYN和FIN握手,以及连接重置。否则,您将统计在捕获时间内,而不是在任何给定时刻,由给定源创建的所有连接。您可以请仔细分析并将其作为答案提交,以便我可以接受它来帮助其他人。如果您能进一步告诉我,
仅计算SYN、FIN和RST就足够了,
,或者我需要首先捕获
此流量(仅SYN、FIN、RST),这将非常有帮助
,然后根据源端口和源ip执行与上面相同的分析。