我正在评估一些SSL失败,并注意到,当我使用curl到其中一个失败的站点时,我得到了curl: (56) SSL read: errno -5961 ; 然而,我的谷歌查询该错误没有显示openssl失败的原因。 问题 :当curlcurl失败时,这意味着什么curl: (56) SSL read: errno -5961 ? 我包括下面的完整curl … [mpenning@mpenning-lnx ~]$ curl -vk https://192.0.2.168/ * About to connect() to 192.0.2.168 port 443 (#0) * Trying 192.0.2.168… connected * Connected to 192.0.2.168 (192.0.2.168) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * warning: ignoring value of […]
我正在用一个连续不断的新networking连接来testing我的一台服务器, tcp_fin_timeout设置为60,所以如果我发送一个类似于每秒100个请求的连续数据stream,我期望看到一个滚动平均值在TIME_WAIT状态下有6000(60 * 100)个连接,这种情况正在发生,但是在netstat (使用-o)查看计时器时,我看到如下连接: TIME_WAIT timewait (0.00/0/0) 他们的超时时间已经过期,但是连接仍然悬而未决,于是我终于用完了连接。 任何人都知道为什么这些连接不清理? 如果我停止创build新的连接,它们最终会消失,但是当我不断创build新的连接时,他们不会这样做,好像内核没有机会清理它们。 有一些其他的configuration选项,我需要设置为删除连接,只要他们已经过期? 服务器运行的是Ubuntu,我的web服务器是nginx。 它也有连接跟踪的iptables,不知道这是否会导致这些TIME_WAIT连接生活。 谢谢马克。
我们的服务器遭遇了严重的连接超时问题,所以我们用tcptrack跟踪tcp连接 我们发现,如果客户端开始连接到服务器,tcptrack会显示连接,但是在SYN_SENT状态下, netstat -nat什么也不显示。 (tcptrack&netstat全部在服务器上运行) 这是否意味着syn请求到达服务器? 没有syn / ack被发回? 为什么tcptrack可以报告这个连接,但netstat不能? 可能是一个普通的Apache无法build立与客户端的连接的问题? 我做了一个使用ab在同一个内部网,到指定的网卡,它处理了10000个并发连接和400000个请求确定的长凳testing ps:这不是每次都会发生,但确实发生了很多 PPS:有没有什么好的工具来跟踪tcp连接丢失的地方?
我正在玩我的新的系统日志服务器,并有我的m0n0wall防火墙日志作为testing转发,我注意到一堆最近的防火墙日志条目,说它阻止其他广域网IP从我的ISP(我检查)连接到我在TCP端口445.为什么一台随机电脑试图连接到显然用于Windows SMB共享的端口上? 只是互联网垃圾? 端口扫描? 这是我所看到的: Mar 15 23:38:41 gateway/gateway ipmon[121]: 23:38:40.614422 fxp0 @0:19 b 98.82.198.238,60653 -> 98.103.xxx.xxx,445 PR tcp len 20 48 -S IN broadcast Mar 15 23:38:42 gateway/gateway ipmon[121]: 23:38:41.665571 fxp0 @0:19 b 98.82.198.238,60665 -> 98.103.xxx.xxx,445 PR tcp len 20 48 -S IN Mar 15 23:38:43 gateway/gateway ipmon[121]: 23:38:43.165622 fxp0 @0:19 b 98.82.198.238,60670 -> […]
我运行一个主要的媒体上传/下载网站,我注意到这些: 这是严重的或背景噪音,由于大的文件大小,是否有任何调整,我可以添加到/etc/sysctl.conf来改善和防止问题? [8822139.804040] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822140.944041] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822143.224052] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822147.776079] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822156.896049] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822175.136049] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 […]
我的服务器和客户端软件在Linux上运行。 服务器广播多播,客户端侦听多播。 我的客户必须迁移到另一个站点, 不幸的是,在两个站点之间不允许组播🙁 如何在两个站点之间传递多播? – 通过TCP或UDP? – 你推荐什么工具? – 什么延迟? 我收到了关于思科configuration(GRE)的一个很好的答案, 但其中一个networking团队不想监视/维护它, =>当传输将中断时,支持团队将花费太多时间来理解和修复。 =>那么,什么应该是GRE的最佳select? 有没有一个基于Linux内核function的解决scheme 或网卡function? (低延迟很重要) 用法示例赞赏:-) 当前:服务器和客户端在同一个站点上 目前的networking图http://ditaa.org/ditaa/render?grid=%2B%-%2B+%2B%-%2B%0D%0A%7C+服务器++%7C +%7C +客户端++%7C%0D%0A%7C +发送+++%7C +%7C +侦听+%7C%0D%0A%7Cmulticast%7C +%7Cmulticast%7C%0D%0A%7C +++ IP1 +++%7C +%图7C ++ ++++ IP2%7C%0D 0A%%2B —-%2B —-%2B +%2B —%2B —–%2B%0D 0A%+++++%7C ++++++++++%7C%0D 0A%+++++ %2B%2B ———%2B%0D 0A%++++++%7CLAN +网站+ + 1%0D 0A%++++++%7C%0D 0A%++++++%2B ———– ———- WAN 未来:服务器和客户端,每一个在不同的网站上 […]
我正在为虚拟专用服务器的防火墙工作,我正在研究的其中一个端口扫描器。 TCP标志用于保护。 我有2个问题。 规则: -p tcp –tcp-flags SYN,ACK,FIN,RST SYN -j DROP 第一个参数表示检查具有标志SYN的数据包第二个参数表示确保设置标志ACK,FIN,RST SYN 而当这种情况(有一个匹配),丢弃的TCP数据包 第一个问题: 我理解RST和RST / ACK的含义,但在第二个参数RST SYN中正在使用。 RST SYN和RST和SYN RST有什么区别? 在三次握手中是否有“SYN RST”标志? 第二个问题是关于之间的区别 -p tcp –tcp-flags SYN,ACK,FIN,RST SYN -j DROP 和 -p tcp –tcp-flags ALL SYN,ACK,FIN,RST SYN -j DROP 什么时候应该全部使用? 当我使用ALL,这是否意味着如果与SYN标志的TCP数据包没有ACK“和”FIN“和”RST SYN标志设置,将不会有匹配?
在Mac OS X上没有TIME_WAIT 通常情况下,当TCP连接closures时,首先调用close()那一侧的套接字保留在TIME_WAIT状态。 当其中一个节点是Mac OS X(Lion)机器时,如果在Mac端首先调用close()则Mac上的netstat -an将不会列出TIME_WAIT 。 但是,看起来套接字实际上处于TIME_WAIT状态,因为试图再次调用listen() (不使用套接字选项SO_REUSEADDR )导致listen()失败。 等待2 * MSL(由sysctl net.inet.tcp.msl报告,在Mac OS X Lion上为15秒的最大段寿命)将清除TIME_WAIT状态,并且可以再次调用listen()而不会出错。 为什么在TIME_WAIT中看不到套接字? testing 这里有两个简单的Pythontesting程序。 服务器 #!/usr/bin/env python import socket HOST = '' PORT = 50007 l = socket.socket(socket.AF_INET, socket.SOCK_STREAM) l.bind((HOST, PORT)) l.listen(1) print("Listening on %d" % PORT) (s, _) = l.accept() print("Connected") raw_input("Press <enter> to close…") l.close() […]
我一直在使用Linux(使用3.5内核)的TCP参数进行试验。 基本上关于这个连接: 服务器:数据中心中的千兆上行链路,实际带宽(由于共享上行链路)在从另一个数据中心testing时大约为70 MB / s。 客户端:千兆本地局域网连接到200mbit光纤。 获取testing文件实际达到20 MB / s。 延迟:往返时间大约为50ms。 远程服务器用作10到100mb范围内的文件的文件服务器。 我注意到,使用10的initcwnd,这些文件的传输时间受到TCP慢启动的严重影响,需要3.5秒来加载10mb(最高速度达到3.3 MB / s),因为它启动缓慢,然后boost在达到最大速度之前完成。 我的目标是调整这些文件的最小加载时间(所以不是最高的原始吞吐量或最低的往返延迟,如果减less了加载文件所需的实际时间,我愿意牺牲这两者) 所以我尝试了一个简单的计算来确定理想的initcwnd应该是什么,忽略任何其他连接和可能的影响。 带宽延迟积是200 Mbit / s * 50ms = 10 Mbit或1.310.720字节。 考虑到initcwnd是以MSS为单位设置的,并且假设MSS大约是1400字节,则需要设置:1.310.720 / 1400 = 936 这个值与默认值(Linux中的10 * MSS,Windows中的64kb)非常相似,因此,将其设置为这样的感觉不是一个好主意。 这样configuration的预期缺点是什么? 例如: 会影响同一networking的其他用户吗? 是否会为其他连接创造不可接受的拥塞? 洪泛路由器缓冲区的path上的某处? 增加小包丢失的影响?
tcp ping或traceroute如何工作? 它是否考虑了build立TCP握手所需的时间? 另外在ICMP ping中,您可以指定数据包大小,这可以在TCP ping中实现吗?