Articles of tcp

访问HAProxy中的代理协议地址

我正在运行从上游源接收第4层代理协议的HAProxy。 我需要创build一个自定义的HTTP头,其中包含的地址。 我似乎无法find我如何可以引用该TCP标头。 下面是我想要做的一个例子: frontend http_in bind *:1025 accept-proxy mode http default_backend http_out backend http_out mode http http-request set-header X-Custom-Header %[<ip from proxy protocol header>] server some-server some-server:80 我怎样才能确保我用L4头的地址填充新的头,而不是一些可欺骗的HTTP头?

有关老鹰与延迟确认的问题

我在网上阅读延迟ack结合Naglealgorithm可以有性能问题。 但据我所知,Naglealgorithm是延迟了。 如果他们不一样,有什么区别?

TCP握手延迟

我在100 Gb / s LAN上有两台机器,它们通过TCP彼此通信。 当我做一个tracert或从客户端到服务器的ping,即使是一个大的ping,我在1毫秒内得到答案。 但是,当我在客户端嗅探TCP数据包时,发现在发送三次握手的第一个消息的时间到从服务器接收到答复的时间之间传递了40ms 。 服务器专门用于这个客户端,并没有其他的处理。 这是合理的吗? 我希望它要快得多。

许多不同的TCP时间戳通过NAT设备导致服务器丢弃数据包(PAWS)

客户端networking地址转换(NAT)防火墙后面的各种工作站正在将TCP数据包的时间戳信息发送到我们的服务器。 来自多个工作站的数据包在NAT设备后面按顺序发送时间戳。 当他们到达我们的服务器时(在某些情况下在同一个端口上),服务器不能将这些数据包与其他到达同一端口和同一客户端IP(NAT设备)的数据包区分开来。 服务器将带有无序时间戳的数据包解释为属于已经完成的连接,然后忽略数据包 – 但在这种情况下不应该是这样。 这些是来自NAT设备后面工作站的合法数据包。 丢弃具有旧时间戳值的数据包是TCP的一个devise特性,称为PAWS( http://www.ietf.org/rfc/rfc1323.txt,Protect Against Wrapped Sequences) – 服务器只是假定数据包是旧的,已经处理了连接。 要解决这个问题,我们禁用了服务器上的时间戳设置。 但是 – 这种情况的最佳做法是什么? 所有的服务器是否应该禁用时间戳? 还是应该所有的NAT设备删除或重写时间戳值? 要么?

通过解释“netstat -s”来分析TCP性能

我在运行debian的专用服务器上执行了netstat -s 。 我想解释结果,因为我遇到了TCP连接问题。 我不知道如何阅读这些结果。 任何人都可以帮忙吗? 背景:这是一个公共的tcp服务器,来自世界各地的客户,大部分都使用3G / UMTSnetworking。 平均打开sockets1小时。 一些TCP链接失去10-60秒,每隔10分钟左右。 我正在运行一个自定义的java程序,这是tcp服务器。 这是netstat -s的输出。 它是否显示任何明显的连接问题? Ip: 33780786 total packets received 0 forwarded 0 incoming packets discarded 33780059 incoming packets delivered 33577363 requests sent out 1 outgoing packets dropped 1442 reassemblies required 715 packets reassembled ok Icmp: 4675 ICMP messages received 98 input ICMP message failed. […]

使用哪个TCP端口?

是否有一个TCP端口范围,我可以肯定不会被其他任何东西用于两台机器之间的stream量? 如果我正确读取RFC6335 ,我可以确定没有其他应用程序将使用Dynamic / Private / Ephemeral范围49152-65535中的特定端口。 但是,如果我理解正确的话,它也说明了(8.1.2节),应用程序不应该假定在任何给定的时间内,该范围内的任何给定的端口是可用的,这意味着我不能100%确定它将一直未被使用。 具体来说,我想分配特定的SSHstream量到不同的端口以获得安全性好处,所以我可以根据QoS目的对其进行不同的分类,而不必担心将来更改端口。

为什么当我得到重复的ACK时,TCP Reno把拥塞窗口减半了?

我很难理解这个概念。 为什么当TCP Reno检测到三重重复的ACK并且在超时时将其窗口缩小到1个段时,为什么TCP拥塞窗口减半? 我明白,里诺这样做,但我不明白为什么 。 任何帮助?

SVN回购浏览器不会在后端显示一个开放的TCP连接

当我使用repo浏览器(TortoiseSVN)连接到mysvnserver时,在mysvnserver框中执行netstat和我的计算机的grep时,我看不到打开的连接。 什么是行为? 它下载一个索引文件,并在本地caching,所以我不需要一个持久连接到SVN服务器? 那么为什么我会看到许多使用svn协议连接到该服务器的其他计算机? 什么操作会导致有状态的连接? 它只是检查/提交和检查?

4000个请求中有1个出现HTTP 499错误是否正常?

我在CloudFlare后面创build了一个网站,有时我会得到一个提前终止的(nginx 499)请求,这在代码库中很难解决。 这在4000个请求中的大约1个中发生。 我想问的是这是否正常? CloudFlare支持告诉我,当CF和服务器之间的东西丢失连接时,499会发生。 我不是在AWS上,也不是在负载平衡器上,而是在直接IP连接的简单VPS上(没有虚拟路由器等)

使用IPTablesclosures某些端口上的所有_existing_ TCP连接?

假设我有一个快速的networking分区testing,我想运行它,比如断开一个ReDiS集群的两半 ,我想用IPTables来暂时断开一组服务器与其他组的连接。 这与fedora邮件列表上提出的问题非常相似: https://www.redhat.com/archives/rhl-list/2006-January/msg03380.html 如果我没有看到一个已经存在的EXISTING,RELATED的iptables –list的输出,我是否必须担心这个? 在fedora邮件列表上的下面的答案似乎是说,是的,现有的连接将closures,如果我没有看到一个存在EXISTING,RELATED的输出从iptables –list 。 https://www.redhat.com/archives/rhl-list/2006-January/msg03396.html 对于那些自反的旗手来说,这个问题,更重要的是,它的答案将会讨论IPTable在更新规则时是否会放弃现有的联系。 就我所知,在这个网站上,关于这个主题的其他问题并没有解决现有的和尝试的连接之间的差异: 如何closures除IPTABLES列出的所有networking的某些TCP / UDP端口(传入) 我在以下URL链接的页面中find了Googlesearch的大部分研究结果: https://duckduckgo.com/?q=iptables+close+existing+connections