我目前在Linux中使用以下命令来获取有关networking问题的具体信息。 tshark -r file.pcap -q -z io,stat,1,\ "COUNT(tcp.analysis.retransmission) tcp.analysis.retransmission",\ "COUNT(tcp.analysis.duplicate_ack)tcp.analysis.duplicate_ack",\ "COUNT(tcp.analysis.lost_segment) tcp.analysis.lost_segment",\ "COUNT(tcp.analysis.fast_retransmission) tcp.analysis.fast_retransmission" 这将输出一个很好的信息很好的桌子。 然而,我想知道我可以添加哪些其他列来获得更多的东西,如不正确的校验和,以及可能指出networking拥塞的东西。 几乎所有需要指出的性能问题。
configuration/拓扑: 有3台机器 hadoop2 | hadoop | driver eth0 10.10.15.3 | eth0 10.10.15.2 | tap0 192.168.0.199 route default to 10.10.15.1 | tap0 192.168.0.195 | route 10.10.15.0/24 to 192.168.0.195 route 192.168.0.0/24 to hadoop | route default 10.10.15.1 | no iptables rules | route 192.168.0.0 tap0 | | no iptables rules | | ip_forward = 1 | 来自hadoop2的路线: […]
在我的系统上,如果我运行一个端口的netstat,它会返回: $ netstat -nat | grep "60964" tcp 0 0 192.0.0.1:60964 0.0.0.0:* LISTEN tcp 59 0 192.0.0.1:60964 192.0.0.6:46962 ESTABLISHED 如果我运行lsof: $ lsof -i4 | grep "60964" process_x 2585 root 189u IPv4 12708 0t0 TCP 192.0.0.1:60964 (LISTEN) 为什么这里的输出有差别? 为什么不能检测“build立”连接。 谢谢! 编辑:我应该提到我是以root身份运行上述命令。
我正在写一些服务器软件来升级电子设备上的固件。 这是一个棘手的任务,因为目前这些设备没有足够的内存来保存完整的固件,然后再安装它。 因此,我的服务器会将设备切换到引导加载程序模式,并指示引导加载程序执行什么操作,通过networking发送指令和固件数据。 正如你可以想象的,这有一些潜在的巨大的缺点。 目前我所关心的是,我发送的单个TCP段是否会被划分为多个以太网帧? 由于引导加载程序的性质,我可以在TCP段中发送的最大大小有效负载为255个字节。 从在Wireshark中抓取数据包,看起来像包含我的一个TCP段的帧的帧大小为309字节(2472位),在根据以太网帧上的Wikipedia页面允许的范围内: 我目前正试图处理如果连接到设备被切断会发生什么。 现在事情我没有任何问题重新build立与设备的连接,但是我想确定的是重新build立连接后会发生什么。 如果我能确定每条指令总是被包含在一个单一的以太网帧中,那么这些指令将会被传送或者不会被传送,那么快乐的日子就会被传送! 我可以看看发送的最后一条指令,然后找出要执行的操作。 但是,如果指令可能被分割成两个以太网帧,那么我就有一个更大的问题。 我不认为这会发生,但有时看起来像是在testing时。 假设我发出了一个写命令,并且引导装载程序正在等待数据写入,我发送了255个字节的TCP段,并将其分成两个以太网帧。 第一帧得到交付,但第二帧没有。 现在,当我重新连接时,我必须确定引导加载程序已经接收了多less个字节,这意味着我需要推送虚拟数据并侦听响应。 如果可能,我真的想避免这种情况。 从这个线程的注释中读取,似乎小于576字节(4,608比特)的IP分组不会被分开。 我是否安全地认为情况总是如此? 实际上,如果分裂了,那么WiFi模块在重新组装之前不应该传送TCP段,是不是正确的? 如果连接丢失,它将被丢弃。
我在不同的机器上有一个JBoss应用服务器和一个Postgres数据库服务器。 我正在解决它们之间的TCP连接问题(因为应用程序一直在用完数据库连接)。 我看到这一点,这是没有意义的: 当我在数据库服务器上执行netstat的时候,我看到很多来自我的应用服务器的已build立的TCP连接。 当我在应用程序服务器上执行netstat时,几乎看不到到数据库服务器的已build立的TCP连接。 这些机器是运行Centos的VMware虚拟机,由云提供商(而不是AWS)pipe理。 机器之间没有防火墙(按照保持打开的连接数量太多 ),这看起来像是类似的行为。 我不知道还有什么可能导致这种不对称?
最近我们在清漆前添加了nginx以用于ssl卸载。 我们正在将所有的http请求重写为https。 但是后来我们发现,即使是由nginx提供的http调用,响应时间也有显着增加。 而没有nginx的同样的请求服务清漆响应时间快得多。 我调整了代理缓冲区(2048 4k),以便响应不会存储在文件中,并closures代理缓冲。 但是这两种方法都没有帮助。 所以我克隆了nginx服务器(虚拟机),并发出了相同的请求对克隆的。 响应时间与清漆相当。 所以看起来,当nginx负载(大约700个请求/秒)时,响应时间似乎会增加。 有人能告诉我,我错过了明显的东西吗? 这是我的nginxconfiguration #nginx.conf worker_processes auto; worker_rlimit_nofile 90000; pid /var/run/nginx.pid; error_log /var/log/nginx/error.log error; events { worker_connections 40000; multi_accept on; use epoll; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; client_max_body_size 20M; client_body_buffer_size 128k; server_tokens off; keepalive_requests […]
有没有办法将Win2003或Win2008上的Windows防火墙从有状态变为“无状态”,只有在公共接口上进行基本的端口过滤? 如果没有,是否有一个简单的,无状态的软件防火墙,我可以取代Windows防火墙? 我正在寻找这样做的性能原因。 TIA
我在适度加载的系统上运行systat –tcp命令,在5秒的窗口中看到如下所示: /0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10 Load Average |||||||||||| TCP Connections TCP Packets 0 connections initiated 21062 total packets sent 153 connections accepted 16291 – data 153 connections established 125 – data (retransmit by dupack) 11 connections dropped 1 – data (retransmit by sack) 0 – in embryonic […]
与声称问题原因的供应商有关的问题在tcp数据中是无效的“ack”值。 我正在使用java,所以我没有写这个图层。 我使用snoop来捕获线路上的stream量,并使用wireshark来显示数据。 这是发生了什么事。 收到多包(5)消息后,我看到一个多包(3)响应。 响应中的第一个数据包的“ack”值与其他两个数据包中的“ack”值不同。 供应商声称这个数据是可疑的。 我在下面提供了示例数据。 我不是一个TCP专家,所以我不知道这是否是一个问题。 我试图find有效的ack值的东西,在我看来,价值应该是80018,但这并不意味着78345是错误的。 我在网上发现了这一点,似乎也适用,但我不确定:“只要数据段在下一个段发送之前不确认数据,就认为任何数据段的ack值都是有效的”。 谢谢你的帮助。 我的理解是供应商已经编写了自己的tcp层。 源seq ack len时间 我10734 75465 190 yyyymmdd 09:18:21.785757 供应商75465 10924 0 yyyymmdd 09:18:21.789319 供应商75465 10924 1440 yyyymmdd 09:18:34.196661 供应商76905 10924 1440 yyyymmdd 09:18:34.196762 供应商78345 10924 1440 yyyymmdd 09:18:34.196901 供应商79785 10924 233 yyyymmdd 09:18:34.196915 我10924 78345 0 yyyymmdd 09:18:34.196968 我10924 80018 0 yyyymmdd […]
我无法连接到我的服务器端口22或80.当我运行netstat,我看到有几个连接,他们都陷入SYN_RECV。 谷歌search主要是关于DDOS的问题。 由于有很less的连接,这似乎不太可能(虽然我在共享主机(slicehost))。 还有什么可能导致这个?