Articles of tcp

增加每个套接字的连接数量

如何增加每个套接字可以接受的连接数? 我知道你可以使用以下方法增加连接总数: # sysctl kern.ipc.somaxconn=4096 但是每个连接仍然被限制为128。 如何增加每个sockets的总连接数?

networking充斥着LLC数据包

最近我的networking一直很慢。 从Tcpdump我发现很多与协议有限责任公司框架。 一个完整的数据包捕获可以在这里得到tcpdump的结果 任何提示解释这些数据包?

通过千兆networking提高TCP性能存储和stream媒体服务的连接数量和stream量都很高

我有两台服务器,两台服务器的硬件规格都是 Processor : Dual Processor RAM : over 128 GB Hard disk : SSD Hard disk Outging Traffic bandwidth : 3 Gbps network cards speed : 10 Gbps 服务器A:用于编码video 服务器B:通过networking界面( 如YouTube)存储video和stream媒体video 两台服务器之间的入站带宽为10Gbps,出站带宽为500Mbps 这两个服务器在公共和专用networking中使用公共IP地址 这两个服务器在nginx端口上传输和连接,而服务器B用于stream媒体,如youtubestreamvideo 两台服务器在同一networking中,当我从服务器A ping到服务器B我得到高于1.0ms的高时间延迟,时间范围时间= 52.7毫秒到时间= 215.7毫秒 – 这是iftop实用程序的输出 353Mb 707Mb 1.04Gb 1.38Gb 1.73Gb mqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqq server.example.com => ip.address 6.36Mb 4.31Mb 1.66Mb <= 158Kb 94.8Kb […]

多pathtcp应用程序级性能测量

我正在开发一个与多pathtcp相关的项目,我想在应用程序级别测量goodput和RTT。 我不想使用传统的工具(netperf,iperf,…),我想build立自己的一个。 到目前为止,我已经想到了几种方法来做到这一点,在每种情况下,每秒钟都发送固定数量的呼叫(我打算增加每秒发送呼叫的数量,并绘制一个networking性能图): 请求 – 响应testing(客户端发送一个固定数量的数据到服务器,然后服务器发回数据) rtt由发送和客户端之间的recv之间的经过时间组成 突发模式(客户端使用其时间戳执行固定数量的连续send()调用,服务器发回时间戳) 在客户端计算rtt:recv呼叫(带有服务器发回的时间戳)与recv呼叫回复的时刻之间的差异 streamtesting(连续发送呼叫数) 在每种情况下,正常传输包含发送呼叫的数量*发送呼叫中的字节数,我想问一下这种方法是否被认为是正确的。 谢谢。

尝试使用公共IP无法访问端口从子网转发服务器

我build立了一个连接到我的路由器的服务器。 路由器转发我的服务器的端口。 所以当我使用http://www.t1shopper.com/tools/port-scan/扫描那个端口时,我得到了: 188.143.126.14 is responding on port 10415 () 换句话说,握手成功了。 但是,当我尝试SSH端口,它失败 – 因为SYN ACK没有到达客户端,并开始重新传输SYN。 虽然SYN ACK是由服务器发出的。 我比较了工作情况和错误的情况,但是我没有发现任何差异。 唯一的区别是SYN ACK在第一种情况下到达,但不在第二种情况下。 我可以到达子网上的SSH。 路由器和服务器都没有防火墙。 可能是什么问题呢? 更新:另一个区别是扫描是从外部完成的,但ssh连接是使用公有IP从子网进行的。 当我使用本地IP它的工作。 但现在我试图用我的智能手机数据连接 – 这一次它的工作。 所以似乎从内部启动与公共IP的连接导致一些路由问题。 bb@lenovo:~$ ssh [email protected] -p 10415 ssh: connect to host 188.143.126.14 port 10415: Connection timed out bb@lenovo:~$ ssh [email protected] -p 10415 [email protected]'s password:

如何添加/删除Haproxy后面的新服务器以最小的干扰

Haproxy目前正在平衡2台服务器A和B之间的负载。 客户端通过持久的TCP连接连接到这些服务器。 问题:我们想从服务器A升级到更强大的服务器C 我们如何添加第三台服务器C并删除A而不中断/断开客户端? 如果使用iptables将连接从Aredirect到C ,如果我们在某个时刻closures了A ,还是需要保持联机才能继续将现有客户redirect到C ,它仍然可以工作吗?

定期连接超时到nginx服务器

我们有以下设置:一个nginx服务器作为四个工作应用程序服务器前面的负载平衡器。 nginx服务器每秒获得约100个请求,有时更多的是,活动连接平均hover在110。 在一个比较有规律的间隔(1-2秒)内,访问nginx负载均衡器的应用程序会得到一堆TCP连接无法build立的失败请求(连接超时)。 问题很快就解决了,下一批连接处理正常,直到下一次连接超时。 我认为,这不是一个巨大的负载和nginx应该没有处理它的问题。 我的第一个猜测是基于互联网上的各种帮助页面调整ipv4的sysctl设置,但迄今为止没有效果。 我已经增加了端口范围,并将fin_timeout降低到30.在netstat(〜11k)中显示了很多TIME_WAIT连接。 有没有人有一个想法在这种情况下做什么? 我意识到可能没有定义什么实际问题的答案,但指针是赞赏! 谢谢!

TCP窗口大小分配,TCP窗口零错误和networking延迟

我的想法即将爆炸,因为每个人都在指责networking人员的networking断开和缓慢,但Solarwinds报告说,在networking设备和链接的所有使用情况是好的。 所以我尝试嗅探,然后我得到“零窗口”的错误。 所以如果我可能会问: 1.)如何分配TCP窗口大小? (它是每个TCP对话,就像你有1应用程序(Mozilla Firefox)和5个标签打开,然后操作系统分配每个标签的窗口大小?) 2.)是什么原因造成的以及如何解决“TCP零窗口”问题? (股票交易服务器是一个难以处理突发stream量并向交易者发送TCP零窗口消息的人,但是基于Solarwinds和性能监控中的networking利用率(CPU,内存和链路利用率) CPU,磁盘空间,内存,网卡利用率)在股票交易服务器和数据库服务器,它表明,是完美的正常,甚至利用不足!) 3.)它可能在交易服务器的设置? (32 GB的内存,但只使用64 MB的默认TCP窗口分配大小) 4.)或者,交易应用程序处理数据的速度有多慢? (我计划将TCP缓冲区大小从64KB增加到大约256KB,但如果Trading Application Server本身缓慢处理数据,则可能无济于事。) 5.)此外,所有交易者都遇到“无法连接到交易服务器”和“间歇性连接”错误。 (但没有像“下载链接”或“充分利用的链接”的networking问题的报告,我甚至试图改变轮询数据,每隔1分钟捕获短的断开连接,但我仍然没有问题)所以我认为那里可能是延迟问题 6.)如何有效地测量networking通信的延迟? 你推荐什么免费和付费的软件解决scheme? (Traceroute报告4ms,即使我增加ping数据包到1MB,它也显示1-3ms的延迟,所以我不认为这是有帮助的) 7.)如果源端口和目标端口是相同的,并且数据是encryption的,那么如何分离每个TCP线程/对话? (如果股票交易服务器和SQL Server在相同的端口号上进行交谈,但是有多个交易正在进行)。 对不起,我只是networking世界的新手,所以有很多东西我不知道,在图书和其他资源找不到。 我觉得这种事情是通过经验来学习的,所以请分享一下你的智慧。 谢谢你,有一个美好的一天! 🙂

为什么有些传出的IPstream量不包含UID信息?

我正在做我的服务器上的出口logging使用IPTABLES与下面的行应该提供所有logging的stream量的UID信息: -A OUTPUT -j LOG –log-prefix "IPTABLES(O): " –log-level info –log-uid 但是,偶尔,我会得到没有UID的日志,如下所示: IPTABLES(O):IN = OUT = eth0 SRC = 1.2.3.4 DST = 5.6.7.8 LEN = 83 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 54321 DF PROTO = TCP SPT = 50505 DPT = 443 WIND = 342 RES = 0x00 ACK […]

限制Linux Server中的TCP连接数量,以避免受到攻击

我想限制在Linux服务器的TCP连接数,我已经使用了下面的命令。 iptables -A INPUT -p tcp –syn –dport 80 -m connlimit –connlimit-above 25 –connlimit-mask 32 -j REJECT –reject-with tcp-reset 看来,有些事情是错误的,预期的结果不会来。 我使用以下命令获得活动连接的数量 netstat -n | grep':80'| awk -F'''{print $ 5}'| awk -F':''{print $ 1}'| sorting| uniq -c | 分类 现在,当我input上面的命令,我得到以下结果。 44 122.179.103.8 45 107.167.107.123 46 120.60.76.201 48 122.162.172.182 49 183.87.48.105 51 122.161.241.33 71 198.72.112.97 98 122.168.167.114 […]