当我使用 \servername 将我的 64 位 Windows 7 连接到 OS X 服务器时,我的传输速率约为 400KB/s。
但是,当我使用 \192.168.0.10(服务器的 IP)执行同样的事情时,传输速率跳升至 30MB/s。
所有这些都是通过千兆以太网电缆实现的,我的无线功能被禁用了
我听说 Samba 本身“不使用 DNS”,但如果是这样的话,我首先如何才能连接到服务器?
答案1
您可能需要查看“服务器名称”是否映射到 192.168.0.10 以外的其他 IP 地址,然后确定如果连接到该其他 IP 地址,数据包将通过网络采用什么路由。
例如,您的地址 192.168.0.10 表明您正在网络上运行 NAT 网关。假设“servername”是一个非限定 DNS 主机名(完全限定,可能是 servername.domainname.com)。如果 servername.domainname.com 指向您的 NAT 盒的公共 IP 地址,那么当您连接到 \servername 时,从您的客户端到该服务器的流量将通过您的 NAT 盒向其公共端口(出站 NAT)发出,然后就在您的 NAT 盒将其发送出其公共端口之前,它会意识到这是它自己的 IP 地址,然后执行入站 NAT(也称为端口映射、端口转发)以将该流量发送到您的服务器。对同一流量进行出站和入站 NAT 的过程称为“发夹 NAT”。我通常不会认为发夹 NAT 会严重破坏您的吞吐量(30MB/s 到 400KB/s),但如果它是一个廉价的家庭网关,我想这可能会发生。在您的客户端和服务器之间引入发夹 NAT 可能会在某种程度上破坏 TCP 拥塞避免和重传算法。
答案2
直接使用 IP 地址时,不会使用 NetBIOS 命名,因此网络上的 NetBIOS(WINS 等)可能存在一些问题。本文档详细介绍了 NetBIOS,可能对您查找问题有帮助: http://www.techrepublic.com/article/how-netbios-name-resolution-really-works/5034239