我正在寻找一个工具来监控 TCP 连接的质量。我试图描述我的意思:
它应该是一个带有客户端和服务器部分的工具。比如说,客户端每秒向服务器发送 1kB 的数据,而服务器会监视数据包传送的速度。
或者,换句话说:我正在寻找类似于“ping”命令的东西,除了我可以测试TCP连接,并且具有相当高的带宽(即更多的数据包),例如1kB/s。
我对最大吞吐量不感兴趣,而是对持续快速交付感兴趣。例如,我会通过连接传输 128kps MP3 文件,最大吞吐量也为 128kps,但延迟较低。我想立即播放该文件(或者说,使用 1 秒缓冲)。
目标是监控现实生活中网络(互联网)连接的可用性。(不,我对像 nagios 这样设置复杂、使用复杂的东西不感兴趣。)
非常感谢!
我需要模拟在本地计算机上运行的程序的网络延迟,连接到本地服务。到目前为止,我已经尝试过dummynet(ipfw 的 Windows 版本),经过反复试验,我开始工作了。虽然它通常有效,但我似乎无法让它过滤本地主机流量。即使添加了from any to any影响外部流量的规则,这对本地连接也没有任何区别。如果有人知道如何使用 dummynet 或其他工具模拟本地延迟,我将不胜感激。该工具应该能够模拟 IP 数据包(TCP 和 UDP)中的一般延迟,而不是特定于协议的。
当使用 USB 延长线时,是否需要担心 USB 设备传输任何级别的数据/信号的延迟?
对于这个例子,假设它是一根 50 厘米的电缆(~1.6 英尺)。
它会如何影响文件传输(小数据集或大数据集)与 USB 键盘和鼠标上的击键或鼠标点击?
刚刚看过一些商业广告或其他内容后,我才意识到与低延迟键盘相比,可能存在高延迟键盘之类的东西。如果是这样,那么低延迟可能是另一件好事,让我所有的编码体验都变得更加美妙。
但是我很难找到关于这个的研究,而不是营销!一些权威或至少有用的信息在哪里?
“标准”键盘延迟有多糟糕?我们是在说毫秒吗?几十毫秒?
软件/硬件协议 PS2、USB、USB 2.0、USB 通道、中断等涉及哪些技术限制?没有人关心这个足以研究和发表吗?
我需要在运行 Centos v5 的两台 Linux 机器之间创建 ssh 连接,但延迟可能高达 25 秒。我发现,如果我通过使用以下方法模拟 7 秒或更长时间的往返延迟来人为地测试接近此配置的内容:
tc qdisc add dev eth0 root netem delay 7s
Run Code Online (Sandbox Code Playgroud)
当我尝试:
ssh -n -o ConnectTimeout=0 WilliamKF@centos5Machine whoami
Run Code Online (Sandbox Code Playgroud)
它在大约 1 分 23 秒后失败:
Connection closed by 10.35.50.114
Run Code Online (Sandbox Code Playgroud)
请注意,ConnectTimeout=0 表示永不超时。此外,模拟 6 秒的往返延迟会导致 ssh 在大约 1 分 32 秒后成功。
面对 Linux 上极高的延迟,我能做些什么来让 ssh 正常工作?为什么 ssh 在这个阈值下失败?当我运行tcpdump时,我没有看到明显的错误,大约有51个数据包,tcpdump的哪些数据包在这里有帮助?成功只需要大约 41 个数据包。
一周的大部分时间我都住在拥有典型宽带连接的城市,但大多数周末我不在城里,只能使用卫星连接。尝试在卫星连接上通过 SSH 工作虽然可能,但由于高延迟(> 1 秒)而几乎不可取。
我的问题是:
是否有任何软件可以在通过 SSH 发送之前在我的本地计算机上缓冲击键,以帮助使单个击键的延迟更加透明?本质上,我正在寻找可以减少除命令之外的所有内容的高延迟影响的东西(例如,打开文件、更改到新目录等)。
我已经发现 vim 可以在本地打开远程文件并远程重写它们,但是,虽然这是一个巨大的帮助,但它并不是我想要的,因为它只在编辑文件时有效,并且需要每次打开一个连接发生读/写的时间。(对于可能不知道如何执行此操作并且好奇的任何人,只需使用此命令:'vim scp://host/file/path/here)
我已经运行了 Ping Plotter,这里是所有跃点上丢包率很高的结果(大约 12%)。我很难相信谷歌的路由器有问题,是我的网卡有问题吗?
单击屏幕截图以放大它们。
ping 绘图仪屏幕的图片(关闭除坦克世界以外的所有网络流量,移除本地路由器):
我还运行了 winMTR(运行收音机和 starcraft2),我也添加了我的家用路由器。
|------------------------------------------------------------------------------------------|
| WinMTR statistics |
| Host - % | Sent | Recv | Best | Avrg | Wrst | Last |
|------------------------------------------------|------|------|------|------|------|------|
| my.router - 0 | 1631 | 1631 | 0 | 0 | 3 | 1 |
| 10.0.0.1 - 5 | 1413 | 1356 | 1 | 11 | 41 | 3 |
| qr90.bucuresti.rdsnet.ro - 5 | 1379 | 1313 | 1 | 12 | …Run Code Online (Sandbox Code Playgroud) 最近我一直在阅读有关巨型帧的文章,但我在一些地方感到困惑。据我所知,“存储和转发”点(第 2 层网桥)之间的以太网帧大小有一个下限,因为在到达目的地时仍需要传输帧以启用冲突检测。这个限制不受巨型帧设置的影响。
巨型帧将帧大小的上限从 1500B + 标头增加到更大的值(例如 4000B 或 9000B + 标头)。
较大的帧允许较低的开销等,但单个数据包在传输过程中被破坏的可能性更大,超出了纠错能力。如果数据包损坏,则需要重新传输(整个)会增加延迟。此外,数据包的传输需要更多时间,因为在传输到 CPU 或转发之前需要(我相信)完全接收它。然而,延迟敏感的应用程序通常使用 UDP 和自定义数据包大小,因此它们不会使用巨型帧(只要它们不进行 MTU 发现),因此它们不应受到巨型帧的影响,因为帧会更短。
鉴于我读取巨型帧会在可测量的程度上损害延迟,我开始想知道是什么导致了这种影响?
在 Linux 服务器(FFmpeg)和 Windows 客户端(VLC 播放器)之间的视频流应用程序上,有大约 10 秒的明显延迟。
FFmpeg 命令:
ffmpeg -re -f v4l2 -i /dev/video0 http://192.168.1.101:8090/feed1.ffm
Run Code Online (Sandbox Code Playgroud)
VLC 播放器:
http://192.168.1.101:8090/test.swf
Run Code Online (Sandbox Code Playgroud)
尽管服务器和客户端同时启动,但 VLC 播放器会延迟大约 10 秒来播放流,从服务器捕获的第一帧开始播放。因此,经常会有 10 秒的延迟。
我试图找出导致这种延迟的原因:
我的第一个想法是编解码器会延迟编码。在这种情况下,我应该在我的 ffserver 配置文件中包含什么编解码器?我尝试了许多视频编解码器(rawvideo、flv、mjpeg),但结果相同。
其次,是否可以在我的 ffmpeg 命令中包含一个参数来控制延迟?
另一方面,这种延迟会不会因为 VLC 播放器而发生?
我理解这个问题有点笼统。但是,如果您遇到类似问题,任何帮助将不胜感激。
FFserver 配置文件:
Port 8090
BindAddress 0.0.0.0
MaxClients 10
MaxBandwidth 40000
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 500M
ACL allow localhost
ACL allow 127.0.0.1
ACL allow 192.168.0.0 192.168.255.255
</Feed>
<Stream test.swf>
Feed feed1.ffm
Format swf
VideoCodec flv
VideoSize 640x480
VideoFrameRate …Run Code Online (Sandbox Code Playgroud) vlc-media-player ffmpeg latency video-streaming video-codecs
我目前有三个外围设备(鼠标、键盘、Wacom 平板电脑),它们都连接到我计算机上的单个 USB 端口。他们每个人都有自己的 6 英尺 USB 延长线(无源),因为电脑有点远。它们都是 USB 2.0 设备。
为了减少电缆,我有点想简化事情。将一根 6-10 英尺的 USB 3.0 延长线从 PC 连接到我随身携带的有源 4 端口 USB 3.0 集线器,然后将所有三个 USB 2.0 外围设备插入其中。
我对一些事情很好奇:
我知道将 2.0 设备插入 3.0 扩展不会利用 3.0 速度。但是,如果它们都连接到 3.0 集线器,连接到 3.0 电缆呢?理论上,这会导致那些 2.0 设备使用 3.0 电缆中的额外电线吗?
从理论上讲,通过一根电缆强制所有三个设备的事件调用会增加延迟吗?
有人告诉我,有源 USB 集线器充当中继器。是这样吗,如果是这样,那可以减少延迟吗?或者这不是中继器的工作原理?
回答一项或部分或全部。我意识到这似乎是一件无关紧要的事情,但我关心细节。非常感谢阅读。
latency ×10
networking ×3
usb ×3
protocol ×2
ssh ×2
ethernet ×1
ffmpeg ×1
ipfw ×1
keyboard ×1
linux ×1
packet-loss ×1
performance ×1
peripherals ×1
ping ×1
repeater ×1
tcp ×1
tcpdump ×1
tcpip ×1
usb-hub ×1
video-codecs ×1
windows ×1
windows-7 ×1