Articles of tcp

输出文本文件到TCP端口

如何使用内置软件将文本文件输出到Windows Vista上的TCP端口? 例如, type TextFile.csv | telnet localhost 1979 这不起作用: 该进程试图写入一个不存在的pipe道。

如何configuration红帽子/ centos /亚马逊linux服务器100万开放tcp连接?

我一直在阅读以下文章: http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-1 Linux上超过65536个TCP连接 并想知道是否还有什么我需要知道调整Linux处理100万tcp连接? 到目前为止,我已经缩小到以下内容: configuration内核以支持系统范围内的1mil连接(sysctl.conf) 为特定用户configuration1mil连接(/etc/security/limits.conf) configurationtcp堆栈内存设置(sysctl.conf?) 还有什么我需要configuration? (这是一个EC2大型64位服务器) -编辑- 它不是apache,它是一个基于libev的自定义编码的C服务器FYI。 它会扩展到1mil就好了,它的内核是我的担心:)

Unix套接字连接限制

这可能看起来像一个已经讨论/回答的问题。 但是我特地寻找信息,我无法在任何地方find清楚的答案。 我有一个Nginx + php-fpm安装程序,它使用unix套接字来与Nginx讨论后端php-fpm fastcgi进程。 最近我听说unix基于套接字的连接不像基于tcp的连接那样可伸缩。 不知道这里的限制因素是什么,特别是当我从同一个主机运行所有的东西。 我可以增加每个系统或用户的最大文件描述符(nginx)。 我也可以增加每个nginx工作进程的这个限制。 最大文件描述符是限制因素吗? 我有很less的网站configuration在这个设置和最大套接字(每个网站一个)。 我使用less于50.是否有一个最大的并发连接限制,当多个nginx线程在高负载下与后端的多个php-fpm实例交谈时,每个套接字是否有最大并发连接限制? 或者,如果并发性非常高,实际上可以限制套接字允许这些连接? 是否还有其他因素可以影响性能如锁,磁盘IO性能等?

snmp MIB-TCP :: tcp没有显示任何用法

我正在尝试在所有服务器上configurationMRTG来制作networking天气图,这需要运行SNMP,MRTG从中获取信息。 所以,我用完全相同的方式将它安装在两台服务器上。 但是,在第二台服务器上,SNMP不能检索或显示TCP信息,这里是运行的输出 snmp -c my_community_string -v1 localhost TCP-MIB::tcp : > snmpq TCP-MIB::tcp TCP-MIB::tcpRtoAlgorithm.0 = INTEGER: 0 TCP-MIB::tcpRtoMin.0 = INTEGER: 0 milliseconds TCP-MIB::tcpRtoMax.0 = INTEGER: 0 milliseconds TCP-MIB::tcpMaxConn.0 = INTEGER: 0 TCP-MIB::tcpActiveOpens.0 = Counter32: 0 TCP-MIB::tcpPassiveOpens.0 = Counter32: 0 TCP-MIB::tcpAttemptFails.0 = Counter32: 0 TCP-MIB::tcpEstabResets.0 = Counter32: 0 TCP-MIB::tcpCurrEstab.0 = Gauge32: 0 TCP-MIB::tcpInSegs.0 = Counter32: 0 […]

linux上的FIN-WAIT-2状态的TCP连接不会根据tcp_fin_timeout超时

我们在现场使用大量的embedded式设备来运行服务,它们的tcp堆栈有点儿错误,有时不能正确closures连接,导致某些连接被卡在服务器上的FIN-WAIT-2中。 通常情况下,这些连接将根据/proc/sys/net/ipv4/tcp_fin_timeout超时,但是我们的连接在ss一分钟之后仍然可见。 即使重新启动过程并没有摆脱他们,唯一的办法似乎是重新启动。 当然,长期的解决scheme是修复客户端以正确地closures连接,但是我担心连接不会超时,即使应该是这样。 什么可能导致这个? 我怎样才能摆脱无用的连接?

在Win7 / WinServer中更改TCP等待ACK超时

有没有可能在Windows 7或Windows Server上更改TCPnetworking中的默认ACK超时等待时间? 我使用非常慢的networking(1200 bps),并想调整TCP。 当使用默认参数networking卡住多次重发。 如果我能够改变ACK超时和TX窗口大小,我认为这将工作。 在Windows XP上是可能的,但无法findWin7和Win Server的任何文档。

持续存在的TCP连接超时 – 侦听器队列积压?

我有一个在AIX 6.1上运行的应用程序,它具有单个服务器进程,用于监听和轮询tcp连接,并使用IPC消息队列简单地将消息转发到另一个进程。 它已经服务了好几年,经常处理1000个或更多的连接,没有问题。 但是,昨天我们遇到了一个连接到这台服务器的时间很长的情况。 同时连接到这个服务器的另一个实例(在同一台机器上监听不同的端口号)工作正常。 此外,数据stream过现有的连接是好的,处理器负载很小。 这种情况持续了好几个小时,甚至在重新启动有问题的听众之后仍然继续发生。 然后今天早上突然间,它清理了,一切正常。 真正奇怪的是,来自运行在同一台服务器上的客户端进程的内部连接也被延迟,偶尔会超时。 有什么方法可以阻止连接请求从networking某处发生故障连接,从而使服务在长时间内无法为所有人所用 – 同样可以快速清理并开始正常工作? 而这只是影响新的连接 – 不是由同一进程处理现有的套接字? 谢谢,罗布 注 – 我们可能已经解决了这个问题。 看起来有一个networking位置正在实现部分连接(也许入站数据包可路由,但不是出站)。 在任何情况下,SYN_RCVD状态下都有一堆连接,服务器的监听套接字上的“backlog”参数只有5个,所以试图从不良位置连接的用户群足以吞噬整个可用的backlog而不是让其他任何人进来 – 我猜想,直到部分连接超时。 所以,我想我会修改我的问题,只是问什么是一个好的经验法则,设置“Backlog”参数listen()。 现在我已经把它从5个变成了20个,但是我们一起生活了5年,没有任何问题。

尽pipe收到ACK,但TCP连接仍处于SYN_RECV状态

我的客户端和服务器都是内部机器。 客户端和服务器上的tcpdump显示握手的所有三个部分都进行了通信,但服务器上的netstat显示SYN_RECV,客户端上显示ESTABLISHED。 服务器不断发送syn-ack,就好像它从未收到客户端的确认一样。 以下是显示的链接: 服务器tcpdump(jbod-bubbles) 显示SYN_RECV的服务器netstat 客户端tcpdump(mrnobody) 客户端netstat显示ESTABLISHED View post on imgur.com

基于MPLS的TCP窗口缩放问题

经过大量的故障排除后,为什么MPLS电路上的TCP速度在一个方向上很慢,我发现通过调整TCP窗口大小,情况有了很大的改善。 也许你可以告诉我为什么。 细节: 两台主机之间的ping是7ms 这两台机器运行Debian Wheezy与内核3.2.0-4 两台机器都有默认的TCP设置 两台机器都有10 Gbps的上行链路 使用默认TCP设置的结果: 位置A – >位置B: iperf -c $Location B –> ~2 Gbps 位置B – >位置A : iperf -c $Location A –> 65 – 250 Mbps 将以下更改应用于/etc/sysctl.conf后,我经历了更好的结果 net.ipv4.tcp_window_scaling = 1 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216 调整后的TCP设置后的结果: 位置A […]

如何debuggingTCP数据包中失败的校验和/翻转位?

我们最近维护的Web应用程序遇到了一个非常奇怪的问题:两台物理主机上的四台虚拟机中有三台通过HTTPS连接到我们的支付提供商的服务器。 debugging这个问题让我对OSI堆栈进行了一次有趣的介绍: 在应用程序级别,HTTPS请求看起来像是超时了。 使用openssl s_client ,我发现SSL握手失败 使用tcpdump转储stream量并使用Wireshark检查stream量,我注意到对于失败的握手,初始SYN / ACK之后来自服务器的所有数据包都有无效的TCP校验和。 比较数据包的内容和成功的握手,我发现至less有一位被翻转了。 然后服务器尝试重新传输数据包(再次使用无效校验和)并在60秒后closures连接。 我们的支付提供商和我们的托pipe公司都没有很好的诊断这个问题。 幸运的是,几个小时后问题就消失了。 然而,这个“解决scheme”让我非常不高兴。 我想知道: 这种行为有什么可能的原因? 如果将来再次出现这个问题怎么能够被诊断呢? 虚拟机在KVM上运行Debian 7。