它来自这个答案:
当主机为“localhost”时,MySQL Unix 客户端使用 Unix 套接字,AKA Unix Domain Socket,而不是 TCP/IP 套接字进行连接,因此 TCP 端口无关紧要。
我在 linux 上运行一个特定的程序,它有时会崩溃。如果你在那之后快速打开它,它会像第一次那样监听套接字 49201 而不是 49200。netstat 显示 49200 处于 TIME_WAIT 状态。
是否有程序可以运行以立即强制该套接字退出 TIME_WAIT 状态?
如何被动监视进出机器的 TCP 连接上的数据包丢失?
基本上,我想要一个位于后台并监视 TCP ack/nak/re-transmits 的工具,以生成关于哪些对等 IP 地址“似乎”正在遭受重大损失的报告。
我在 SF 中发现的大多数此类问题都建议使用 iperf 之类的工具。但是,我需要监视到/来自我机器上真实应用程序的连接。
这些数据是否只是位于 Linux TCP 堆栈中?
linux performance-monitoring network-monitoring tcp packetloss
如果一台机器可以拥有的端口数有限制,而一个套接字只能绑定到一个未使用的端口号,那么遇到大量(超过最大端口号)请求的服务器如何处理这个问题?是否只是通过使系统分布式,即在许多机器上有许多服务器来完成?
在 Amazon EC2 中,我设置了“安全组”,它说: 来源:
0.0.0.0/0 然后它给出了一个例子:192.168.2.0/24
什么是“/24”?
我知道端口和IP是什么。
当我们尝试 ping 不同网段中的服务器时,我们会收到消息“传输中的 TTL 过期”。当我们运行 tracert 时,4 个 ip 地址无限重复:
14 60 ms 59 ms 60 ms xxx.xxx.xxx.2
15 83 ms 81 ms 82 ms xxx.xxx.xxx.128
16 75 ms 80 ms 81 ms xxx.xxx.xxx.249
17 81 ms 78 ms 80 ms xxx.xxx.xxx.250
18 82 ms 80 ms 77 ms xxx.xxx.xxx.2
19 102 ms 101 ms 100 ms xxx.xxx.xxx.128
20 101 ms 100 ms 98 ms xxx.xxx.xxx.249
21 97 ms 98 ms 99 ms xxx.xxx.xxx.250
...
Run Code Online (Sandbox Code Playgroud)
排除此错误的基本步骤是什么?
场景:我们有许多 Windows 客户端定期将大文件(FTP/SVN/HTTP PUT/SCP)上传到大约 100-160 毫秒之外的 Linux 服务器。我们在办公室有 1Gbit/s 的同步带宽,服务器要么是 AWS 实例,要么是物理托管在美国 DC。
最初的报告是,上传到新服务器实例的速度比他们能做到的要慢得多。这在测试中和来自多个位置的情况下都得到证实;客户从他们的 Windows 系统看到稳定的 2-5Mbit/s 到主机。
我iperf -s
在 AWS 实例上爆发,然后从办公室的Windows客户端爆发:
iperf -c 1.2.3.4
[ 5] local 10.169.40.14 port 5001 connected with 1.2.3.4 port 55185
[ 5] 0.0-10.0 sec 6.55 MBytes 5.48 Mbits/sec
Run Code Online (Sandbox Code Playgroud)
iperf -w1M -c 1.2.3.4
[ 4] local 10.169.40.14 port 5001 connected with 1.2.3.4 port 55239
[ 4] 0.0-18.3 sec 196 MBytes 89.6 Mbits/sec
Run Code Online (Sandbox Code Playgroud)
后一个数字在后续测试中可能会有很大差异(AWS 的变幻无常),但通常在 70 到 130Mbit/s 之间,这足以满足我们的需求。Wireshark 会话,我可以看到:
iperf -c …
最近,我们发现了一个 TCP 连接问题,该问题主要限于浏览我们网站的 mac 和 Linux 用户。
从用户的角度来看,它表现为与我们网站的连接时间非常长(> 11 秒)。
我们已经设法追踪到这个问题的技术特征,但无法弄清楚它为什么会发生或如何解决它。
基本上,发生的事情是客户端的机器正在发送 SYN 数据包以建立 TCP 连接,而 Web 服务器收到它,但没有响应 SYN/ACK 数据包。在客户端发送了许多 SYN 数据包后,服务器最终以 SYN/ACK 数据包进行响应,并且连接的其余部分一切正常。
而且,当然,问题的关键是:它是间歇性的,不会一直发生(尽管它确实发生在 10-30% 的时间内)
我们使用 Fedora 12 Linux 作为操作系统,使用 Nginx 作为 Web 服务器。
Wireshark 分析截图
更新:
在客户端上关闭窗口缩放阻止了问题的发生。现在我只需要一个服务器端分辨率(我们不能让所有客户端都这样做):)
最终更新:
解决方案是关闭我们服务器上可供公众访问的TCP 窗口缩放 和 TCP 时间戳。
我的路由器有两个协议(和一个“两个”选项),我可以在设置端口转发时选择:UDP 和 TCP。这两种协议之间有什么区别,您何时会在端口转发中选择一种而不是另一种?
tcp ×10
networking ×6
linux ×4
socket ×2
unix ×2
web-server ×2
amazon-ec2 ×1
http ×1
ip ×1
packetloss ×1
ping ×1
port ×1
router ×1
tcpdump ×1
tcpip ×1
ttl ×1
udp ×1
windows ×1