Articles of tcp

TCP和UDP端口通常阻塞

哪些TCP和UDP端口最有可能被阻止? 我特指networking的客户端。 要开始我猜SMTP(25),SIP(5060)的TCP,Traceroute(33434)的UDP。

关于路由的一个小难题

这是我在超级用户看到的这个问题的一个后续,没有提供答案。 用户在他的路由表中删除了第二条路由, # ip route show default via 192.168.73.1 dev eth0 proto static 192.168.73.0/24 dev eth0 scope link 只留下他的默认。 他发现他可以ping通networking上的其他电脑,但是他们无法用不完整的路由表ping回pc。 我通过tcpdump的方式在一个真实的networking(而不是原来的虚拟设置)上调查了这一点:事实certificate,未完成的 pc确实发回了ping的回复,但是这并没有达到原始的,有益健康的pc。 所以我试着在两个方向上打开ssh会话,现在都尝试失败。 这是Wireshark捕获失败的连接: PUSH(PSH / ACK)的出现和大量的重传使得任何一台PC都无法到达另一台。 任何人都可以解释为什么,在一些细节?

Iperf Tcp客户端和服务器

我真的很想知道为什么在客户端带宽比服务器高,我找不到答案解释为什么会发生这种情况。 谢谢,蒂亚戈Melancia 带宽值: 客户端 服务器

坐在FIN_WAIT_1的服务器套接字,而networking没有看到它的stream量

我们一直试图抓住一个奇怪的问题,我们可以在solaris 10上从Apache 2.2.19上find一个页面,并且一些请求的排列可靠地花费各种固定的时间来响应。 它看起来是基于TCP套接字的closures,从客户端上的tcpdump开始,我们通常会看到在填充TCP窗口的服务器与最后一次响应之间的暂停,以及最后一个数据块与FIN从服务器。 所以在networking上它只是挂起了HTTP响应的中间传输,但是服务器上的netstat在FIN_WAIT_1中显示了一个套接字。 我们不能在服务器上做一个tcpdump来澄清,但是在我们看来,操作系统已经把TCP对话交给了硬件,所以相信它已经开始四处closures了,但是NIC从来不放这个包,数据包(可能是1或2 @ 1500字节和400或其他)。 这就像我们可以绘制的一样清晰的图像,除了最近的一个testing,我们做了一个惊人的…一个64076字节的文件由apache提供 – 最后一个包的432ms延迟。 我们给文件添加了一个字符,这导致了一个额外的数据包被创build,53个字节也包含了FIN,而不是我们在略小的文件上看到的空的52字节FIN,延迟的那个文件。 这个额外的数据包的存在可靠地改变了FIN对话的发生,并使对话从几乎半秒到几毫秒。 最常见的是在调查的整个过程中,这个延迟时间为4.6秒,我们再次看到窗口大小在波动,SACK在需要的时候返回到Apache,但是最后一个窗口的时间已经满了,持续46秒,然后回到最后2或3kb的数据,以及Solaris认为它发送的FIN以前。 我们的tcpdumps在F5 BigIP上,所以有一个ASICstream量以及一个Cisco 6509(仅限L2),但是我们在相邻的Solaris机器上执行wget时看到的是相同的用户体验,所以不要不相信BigIP正在做的任何黑魔法。 但是这一切都混淆了窗口大小和MSS和喜欢的混淆,但如果这听起来很熟悉任何人,我们都耳朵!

socat资源暂时不可用

我使用socat作为一些设备和运行socat(几百个实例)之间的桥梁,如下所示: socat -d -d -d -x -d -lf "/var/log/some_log_file" TCP4-LISTEN:6126,fork,max-children=1,su=nobody,reuseaddr,sndtimeo=30,rcvtimeo=30 TCP4-LISTEN:6127,reuseaddr,sndtimeo=30,rcvtimeo=30 我一直在获取Resource temporarily unavailable 2015/12/18 04:48:25 socat[1868] D malloc() -> 0x1097990 2015/12/18 04:48:25 socat[1868] I setting option "fork" to 1 2015/12/18 04:48:25 socat[1868] I setting option "max-children" to 1 2015/12/18 04:48:25 socat[1868] I setting option "substuser" to 65534 2015/12/18 04:48:25 socat[1868] I setting option "so-reuseaddr" […]

在发送回复之前测量正确率

我的想法是使在较慢的连接上工作的Web应用程序可以在替代的较小的资产版本(如图像,video等)上回退。 HTTP Live Streaming具有类似的行为,但对于videostream。 起初我想,这可以通过使用HTTP / 2服务器推送来实现。 Web服务器会发送一个响应,测量吞吐量并在closures连接之前推送适当的资产版本。 但是这会消除服务器推送的优点,因为客户端只有在收到页面主体后才能开始下载资源。 由于资源并不像stream一样提供服务,因此服务器应在将HTTP响应发送到客户端之前检测到吞吐量。 我还想检查是否可以从TCP堆栈获取吞吐量,例如慢启动的值。 但我想只有在发送回复后才能使用。 有人知道在发送响应之前,Web服务器如何衡量吞吐量吗?

基于源IP的Nginx TCPstream路由

我已将nginxconfiguration为TCP(非http)stream的反向代理。 我想对特定的源IP地址应用不同的路由 – 可以这样做,以及如何? 我知道使用if伪指令的http模块的推荐,但似乎不适用于这些stream。 现有configuration: stream { server { listen 8000; proxy_pass staging; } } upstream staging { server 1.2.3.4:8000; } 期望的configuration(不工作): stream { server { listen 8000; proxy_pass staging1; if ( $remote_addr ~* 4.5.6.7 ) { proxy_pass staging2; } } } upstream staging1 { server 1.2.3.4:8000; } upstream staging2 { server 1.2.3.44:8000; } […]

在Windows 2012上调整DPM的TCP

我有一对快速服务器(1-10Gb取决于服务器),但更高的延迟(40-60毫秒)的链路。 已经设置了各种networking调整选项,导致iperf3在链路上产生相当高的传输速率。 但是,DPM看起来并不像调整那样性能提高。 在2010年有与DPM特别相关的做tcp调优的信息站点: https://technet.microsoft.com/en-us/library/ff634226.aspx 不过,就我所知,这些选项在2012年不再支持。 是否有人知道任何DPM特定调整的TCP窗口大小或其他调整选项性能更高的延迟WAN链接?

在FIN,ACK之后的TCP连接RST

我有一个想和这里的专家澄清的情况。 我不是networking专家,所以也许这是正常的,但我宁可问。 我们试图诊断两台服务器之间的问题,都是虚拟服务器,一个是windows,另一个是Linux。 我觉得奇怪的是,查看两台服务器之间的stream量(如使用Wireshark在Windows虚拟服务器上看到的),这是TCP数据包的特定顺序: Linux服务器发送FIN,ACK Windows服务器响应ACK Windows服务器发送一个FIN,ACK Linux服务器响应RST 在3到4之间,Windows服务器发送一个ARP广播请求linux服务器( 谁拥有“linux ip”?告诉“windows ip” )。 我还可以提一下: Linux虚拟服务器运行在Linux主机的顶部,它具有提供给Linux虚拟服务器的绑定接口 Windows虚拟服务器运行在VMWare平台之上 Windows和Linux服务器都在同一个VLAN中 所以问题是, 这种行为是否正常,或者有什么我们应该看看? 这里是日志文件的映像; .46是Linux服务器,.167是Windows服务器。 Wireshark捕获

TCP重新传输延迟 – 失去了确认

也许有人可以帮我解决这个问题。 我试图找出是否有任何可以优化的服务器端,以减less数据包丢失的延迟。 环境:Windows 2012客户端,CentOS 6.x服务器[Couchbase],同一个数据中心,具有防火墙穿越的繁忙局域网。 两者都是大容量的物理服务器。 问题:从客户的angular度来看,响应时间在〜1ms左右是很好的分布,但是我们看到200ms的峰值。 networking跟踪显示: 客户端 – >发送请求 服务器 – >用{应用程序响应+ TCP ack请求数据包}回复(1 ms)(本例中为78字节) 数据包不被客户端接收 约30 ms后,客户端TCP堆栈重新发送原始请求 服务器立即回复DUP ACK(66字节,不包含应用程序响应) 从初始请求到〜200 ms后,服务器重新发送原始响应(78字节的数据包)。 任何想法这200毫秒的延迟来自哪里,以及如何减less它? 我猜想一些tcp延迟的ack,nagle和拥塞/ RTOalgorithm的组合,但是linux内核调整对我而言有点神秘。 任何build议?