Articles of tcp

几天后发生虚假重传

我们有我们的客户端 – 服务器平台的奇怪的情况。 在申请时,我们有10个具有相同固件版本但在不同networking上的客户端。 客户端每15秒向服务器发送50个字节的有效负载。 客户端连接在NAT之后,除了一个客户端外,一切都可以正常工作。 TcpVIew软件显示特定客户端处于SNY_RCVD状态。 1-3天后,我们遇到了麻烦,因为客户端无法重新连接服务器。 在服务器上,我们有WCF服务,基本的TCP监听器。 事情是,客户端甚至不能到达我们的服务器软件,因为它无法连接到OS套接字层(Windows Server 2012)。 我们从MS申请了“Hardening TCP Stack”指导,但是没有帮助。 我们尝试了多次重新启动服务器 – 这没有帮助。 这里是wireshark捕获,如果任何人可以弄清楚发生了什么,甚至给我们一些方向… 谢谢。 wireshark捕获 套装软件

转储一个tcpstream(tcpdump / tpick?)并保存到文件只有RST发生

我正在寻找一种方法来捕获整个tcpstream,但只有当1)错误发生(如RST)时,将其保存到文件2)不确定如果可能的话 – 分析HTTP响应,如果HTTP 500发生存储是一个stream。 networkingstream量很高,所以我想避开整个stream量。 目前的tcpick可能是这样的: 例: 在唯一文件(客户端和服务器混合在一起)中logginghttp数据: # tcpick -i eth0 "port 80" -wRub 然后,我可以分析保存的文件,并删除正确的 – 但它是一个矫枉过正的:/

找不到Windows 2012 TCP限制

我有一台运行Windows 2012 R2的VPS服务器,它使用了一分钟可以连接大约15,000个连接的软件。 我注意到VPS的一些滞后和其他问题,并决定升级到专用服务器。 至强E5-1620 v2 3.7GHz,64GB RAM,1Gbit连接“Xeon E5-1620 v2 3.7GHz,64GB RAM,1Gbit连接”VPS规格:“4个vCore 3.1 GHz, 我在其上安装了Windows 2012 R2,并注意到软件速度显着下降。 它每分钟只有大约5000个连接。 我以为这可能是因为这是在一个硬盘而不是一个SSD,所以我安装了一个RAMDisk。 performance没有改善。 我开始考虑TCP限制,认为为我自动设置的VPS容器可能与我的设置不同。 我找不到多less。 我向registry中的TCP参数添加了大量的选项,但仍然没有任何区别。 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "TcpTimedWaitDelay"=dword:0000001e "MaxUserPort"=dword:0000fffe "TcpNumConnections"=dword:00fffffe "TcpMaxDataRetransmissions"=dword:00000005 该软件通过多个端口(〜100个端口)连接到单个IP地址。 我不确定现在在哪里看。 所有的速度testing显示,专用服务器比VPS快得多,但VPS连接速度较慢,硬件function较差,可以达到每分钟更快的连接速度。 任何方向,我可以看看进一步将不胜感激。

提取源=>从procfs(/ proc)目标rx / tx

我知道我可以从/ proc / …获得每个NIC的rx和tx字节,但是我希望获得每个源=>目的地对的rx和tx信息 – 基本上是每个networking连接的stream量信息。 在/ proc / net / tcp和/ proc / net / tcp6我看到local_address和rem_address,但我没有看到rx和tx信息。 我见过的其他procfs文件有rx和tx信息,但只有每个网卡。 有没有任何procfs文件可以帮助我获得每个networking连接的rx / tx信息? 谢谢!

服务器在几次正常连接之后停止发送SYN ACK

我有一个NAT后面的几千台设备与两台服务器通话。 每个设备都在本地路由器(思考调制解调器/路由器)的后面,在这个路由器上,这些路由器将NAT转换到拥有数千个这些设备的专用networking,并且在这个专用networking的网关上,来自这些设备的TCP会话获得NAT过载/dynamic地PAT到单个全局IP地址上的端口。 这意味着,设备1将与服务器通话,连接将来自global_ip_of_the_router:port_number_1。 一旦设备1完成通话,并且NAT关联被移除,则当设备2想要与同一服务器交谈时,远程路由器可以向设备2分配相同的全局端口,即服务器可以看到来自global_ip_of_the_router:port_number_1的新的TCP连接 这些设备本身启动一个TCP连接,做一个小文件的HTTP POST,断开TCP连接,为下一个文件build立一个新的连接等。这适用于〜20个文件,之后在SYN上,设备从服务器取回没有SYN的ACK。 ACK具有与SYN上的序列号完全不同的ACK号。 设备立即发送一个RST,在1秒后退出并从同一个源端口尝试一个SYN,仍然只是ACK,所以在放弃之前它会保持退后3,6,12,24,48秒。 在设备的RST上,似乎是使用ACK中的SEQ,试图closures旧的连接(从服务器的angular度来看) 远程主机是AWS ELB。 以下是我们所做的假设和我们所尝试的: 远程路由器必须处理TCP会话死亡,并且超时NAT,并且比目标服务器(ELB)更快地重新使用全局端口。 这可能会导致ELB处于TCP_TIME_WAIT状态,这就是为什么它使用ACK来响应SYN。 由于ELB的TCP TIME WAIT不是已知的,假设它是Linux内核默认的标准60秒,它将匹配远程路由器上的FIN / RST后NAT超时。 不过,我们在路由器上将其更改为70秒,以避免任何竞争条件。 这并没有使问题消失。 我们认为,如果远程路由器更快地杀死了NAT,则会在设备进行退避时为SYN重试分配新的NAT。 如果dest服务器上的问题与远程路由器上使用的全局端口号绑定,那么看到新的SYN来自路由器IP上的新的全局端口应该会导致它离开奇怪的状态。 现在,虽然我们可以看到这个工作,但是看起来新分配的NAT端口在服务器上也遇到了同样的问题,它返回了一个假ACK,但是又有一个不同的ACK号。 另一种假设是,这只是在SYN上的SEQ比在远程路由器上使用相同的全局端口的最后一次连接上的序列号低时发生的。 即伪ACK上的ACK编号将总是高于SYN上的SEQ。 (我们将Wireshark切换到绝对序列号来查看)。 然而事实certificate,我们看到SYN SEQ比假ACK上的ACK号更多的情况。 所以这个理论走到了一边。 我们现在对这里可能发生的事情感到不知所措。 我们的怀疑是在新连接获得与旧连接相同的全局端口,但是,如果是这样的话,(a)通过使路由器保持更长的NAT,应该阻止它,并且(b)通过使路由器先closuresNAT,然后为同一连接尝试分配一个不同的NAT,这应该避开这个问题。 在这里理解行为的任何帮助将非常非常感激。 Wireshark跟踪: http : //www.filedropper.com/traffictrace-anonymizedandpacketswithpayloadremoved 请注意,跟踪已被匿名(IP和MAC被replace),所有带有有效载荷的TCP数据包已被删除。 问题的第一个实例始于分组129,第二实例分组382,然后是463,699,816,1120,1278,1323等 查看跟踪中最后一个实例,这是我们缩短了路由器上NAT后FIN / RST超时的地方。 你可以看到,前四次,ACK的AKC号码是2899295595.但是在第5号,ACK是3102149417.在第6号,它是4158039292.这是因为在这里,路由器被设置为超时的NAT所以这些尝试来自路由器上不同的全局端口。 如果问题与全局端口和以前使用全局端口的连接有关,则应该停止它。 但问题依然存在,这导致我们认为这不是源端口相关的,而是由TCP SYN本身产生的。 昨天,我们尝试将NAT后FIN / RST定时器设置为300秒,这些断开的连接就消失了。 我的猜测是我们把端口重用延迟到了ELB丢弃了以前连接的某个点。 我们想知道,如果ELB上的空闲超时设置为295秒,那么TCP_TIME_WAIT的值也是相同的,即使在FIN之后,连接也是有效的。 虽然如果是这样的话,我们应该看到更多的连接失败,因为路由器上的端口复用非常猖獗。 很高兴知道到底发生了什么。

具有相同MTU的不同供应商的不同TCP MSS值

我在与一家特定的DSL提供商进行互联网连接时遇到了一个问题,经过大量的研究,我们可以归纳如下。 假设有两个提供商A和B通过PPPoE连接(在Ubuntu 14.04上,相同的configuration选项,相同的标准MTU 1492) 提供者:A ppp0 Link encap:Point-to-Point Protocol inet addr:192.168.100.1 PtP:192.168.100.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:422406 errors:0 dropped:0 overruns:0 frame:0 TX packets:383588 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:410702336 (410.7 MB) TX bytes:76099873 (76.0 MB) 提供者:B ppp0 Link encap:Point-to-Point Protocol inet addr:192.168.200.1 PtP:192.168.200.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP […]

在CentOS 7和Windows 2012 R2之间的TCP窗口缩放比例不匹配

在CentOS 7上有TCP客户端,在Windows 2012 R2上有TCP侦听程序,我通过wireshark,sysinternals procmon和ss -bitmonz命令观察到,tcp客户端wscale是7(比例因子128),而tcp侦听器wscale是8(比例因子256 ): skmem:(r0,rb367360,t0,tb46080,f110,w49042,o0,bl0) ts sack cubic wscale:8,7 rto:251 rtt:50.27/20.789 ato:49 mss:1388 cwnd:10 ssthresh:8 send 2.2Mbps lastsnd:43 lastrcv:43 lastack:43 pacing_rate 4.4Mbps unacked:10 rcv_space:29200 基于上述情况,TCP通信似乎没有在客户端和服务器(监听者)之间进行调整/alignment,请研究并指出需要进行哪些调整以使客户端和服务器在窗口范围内达成一致 ,顺便说一句,如果我使用winscp传输数据,wscale是7,7(没有不匹配)。 目前,在这两个操作系统上的TCP纯粹是默认的,没有做任何调整,而且我倾向于调整CentOS 7,并将Windows 2012 R2作为默认设置,因为服务器接受来自80个客户端及其生产的连接。 请分享提供TCP调整的参考,其中客户端是CentOS 7,服务器是Windows 2012 R2。

如何在TCP Wrapper中使用域拒绝传入的连接?

我正在尝试configurationTCP包装来拒绝来自ftp clietn的访问。 我想在/etc/hosts.deny的客户端列表中使用域格式语法,如下所示。 在我的情况下,FTP服务是目标守护进程。 vsftpd : .ywlocal.net 但是,我已经在/etc/hosts定义了ftp客户端(tester1)的主机名,但是vsftpd仍然接受来自客户端的连接。 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.11.17 tester1 tester1.ywlocal.net 我也有fqdnforms的客户端主机名。 [root@tester1 ~]# hostname tester1.ywlocal.net 我应该在哪里定义客户端的fqdn来拒绝来自ftp客户端的访问?

在SYN和重传之后的RST ACK

我对networking很陌生,所以如果我问一些愚蠢的问题或者我的词汇量不好,请原谅我 我正在尝试从特定端口上的合作伙伴访问URL。 服务器有一个只接受允许的IP地址的防火墙 问题是,有时候它有效,有时候不行。 我用Wireshark检查问题是什么,在几次TCP重传之后,我们收到一个RST – ACK Wireshark错误 在要求我们的合作伙伴检查他们的服务器之前,我想确保问题不是由我们做错的事情引起的 可能是这个错误的原因是什么? 让我知道你是否需要更多的信息

突然不能ssh到任何机器

突然之间,我没有能够ssh到任何机器。 我认为这是我的路由器/networking问题,我尝试了不同的networking,但结果是一样的。 我在服务器和客户端上都使用了tcp dump,发现校验和不正确。 客户端在MacOS 10.12.6上,服务器运行Ubuntu。 下面是服务器和客户端的TCP转储。 服务器 sudo tcpdump -n -vvv -n dst host 59.90.xxx.xxx 06:51:41.285561 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60) 10.128.x.xx.22 > 59.90.xxx.xxx.54341: Flags [S.], cksum 0xb1fb (incorrect -> 0x0b7d), seq 1875710046, ack 3542782445, win 28160, options [mss 1420,sackOK,TS val 1107257724 ecr […]