这可能有一些原因
您可能对调制解调器线路上的可用带宽不太现实。让我们针对典型的 56k 调制解调器连接进行计算
56k 调制解调器 = 56,000 比特每秒。
根据美国 FCC 的限制,您实际上并没有 56k 调制解调器,而是 52k 调制解调器。
您几乎永远不会获得 52k,我过去获得的最佳连接速度约为 48k
48,000 比特每秒是 4,800 字节每秒(每字节 8 位 + 用于起始位和停止位 RS-232 串行位的 2 位)
在 MTU 为 1500 的情况下,您每秒将获得 (3.2) 个数据包。由于这将涉及分片,您需要向下舍入到每秒 (3) 个数据包。
同样在 MTU 为 1500 的情况下,那是 3.2 x 40 字节的 TCP/IP 开销 (8%)
因此,在不压缩的情况下,您能期望的最佳吞吐量是 4.68KB/s。压缩,无论是 v.42bis 硬件压缩、MNP5 还是 MS/Stac 压缩,都可以在高度可压缩的内容(如文本文件)上产生令人印象深刻的数字,但实际上在传输预压缩文件(如 ZIP、MP3 等)时会减慢速度。
以太网连接设置(DSL、有线调制解调器、局域网等)
确保您没有将内部和外部网络都运行在同一张网卡上,并使用了“IP 别名”功能。如果您确实这样做,虽然可以使其工作,但由于高水平的冲突、IRQ 使用率等原因,速度会非常慢。强烈建议您为内部和外部网络安装另一张网卡,以便它们拥有自己的接口。
确保您为速度和双工设置了正确的以太网设置。
某些 10Mb/s 以太网卡和大多数 100Mb/s 网卡支持全双工连接。从以太网卡到 DSL 调制解调器(中间没有任何集线器)的直接连接*可以*设置为全双工,但这仅在 DSL 调制解调器支持它的情况下才行。您还应确保您使用的以太网电缆使用了所有八根线,并且状况良好。
使用集线器的内部网络 -不能- 使用全双工。您需要 10Mb/s 或 100Mb/s 以太网交换机才能做到这一点。
以太网卡上的自动 10/100Mb/s 速度协商和全/半双工协商都可能对网络造成严重破坏。我建议尽可能将网卡的速度和双工都硬编码到网卡中。这可以通过 Linux 网卡内核模块直接实现,但在单内核中则无法直接实现。您需要使用 第 8.1 节 中的 MII 实用程序,或者硬编码内核源代码。
优化您的 MTU 并将 TCP 滑动窗口设置为至少 8192
虽然这完全超出了本文档的范围,但这对于您拥有的任何网络链接(无论是内部还是外部的 PPP、以太网、令牌环等链接)都非常有帮助。有关更多详细信息,请查看 第 7.15 节 上述部分中对此主题的简要介绍。有关更多详细信息,请查看 TrinityOS - 第 16 节 的网络优化部分。
使用 PPP 的基于串行调制解调器的用户
如果您使用的是外部调制解调器,请确保您有一根良好的串行电缆。此外,许多 PC 使用廉价的扁平电缆将主板或 I/O 卡上的串行端口连接到串行端口连接器。如果您有其中一种,请确保其状况良好。就我个人而言,我在所有扁平电缆上都缠绕了铁氧体磁环(那些灰黑色的金属环)。
确保您的 MTU 设置为 1500,如本 HOWTO 上述 FAQ 部分所述
确保您的串行端口是 16550A 或更好的 UART。运行 “dmesg | more” 进行验证
为您的串行端口设置 IRQ-Tune。
在大多数 PC 硬件上,使用 Craig Estey 的 IRQTUNE 工具可以显着提高串行端口性能,包括 SLIP 和 PPP 连接。
确保您的 PPP 连接的串行端口以 115200 运行(或者如果您的调制解调器和串行端口都支持,则更快... 也称为 ISDN 终端适配器)
2.0.x 内核:2.0.x 内核有点奇怪,因为您无法直接告诉内核以 115200 的速度对串行端口进行时钟同步。因此,在您的启动脚本之一(如 /etc/rc.d/rc.local 或 /etc/rc.d/rc.serial 文件)中,为 COM2 上的调制解调器执行以下命令
setserial /dev/ttyS1 spd_vhi
在您的 PPPd 脚本中,编辑实际的 pppd 执行行以包含速度 “38400”,根据 pppd 手册页。
2.2.x 内核:与 2.0.x 内核不同,2.1.x 和 2.2.x 内核都没有 “spd_vhi” 问题。
因此,在您的 PPPd 脚本中,编辑实际的 pppd 执行行以包含速度 “115200”,根据 pppd 手册页。
所有接口类型