Localhohst 上的网络延迟较大

Localhohst 上的网络延迟较大

我有一台笔记本电脑,我想针对 voip 应用程序进行优化。我遇到的问题是,连接到 localhost 的应用程序会遭受很大的延迟。当一个应用程序连接到同一台计算机上的另一个应用程序时,大约 2-3 秒内基本上什么都没有发生。这看起来像是“空闲”时间。我在 voip 论坛上提出了这个问题,其中一个答案是“正在使用的地址之一没有有效的反向 DNS,甚至没有从 DNS 服务器获得明确的“未知”响应”

ping localhost 返回 0.03ms - 不错

现在,当我在计算机连接到网络时挖掘 e330(本地主机)时,我得到:

dig e330

; <<>> DiG 9.8.1-P1 <<>> e330
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 46557
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;e330.              IN  A

;; AUTHORITY SECTION:
.           600 IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2015012700 1800 900 604800 86400

;; Query time: 38 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jan 27 12:35:08 2015
;; MSG SIZE  rcvd: 97

38毫秒看起来很糟糕。

然后我断开电脑与网络的连接,再次执行“dig e330”。这次查询时间:0 毫秒但是,我的笔记本电脑是否连接到网络并不重要。“空闲”时间大致相同。

从我读到的内容来看,我可以在笔记本电脑上配置 DNS 和 DHCP。但我不想让它作为服务器运行。它是一台笔记本电脑,它必须连接到任何地方的其他网络,而无需重新配置任何东西。

可以对“反向 DNS”做些什么?(我明白它是什么,但我不知道有什么可以解决它的方法)从 Linux 的角度来看,还有什么可以做的来加速 VOIP 应用程序的网络接口吗?

Linux E330 3.13.11-03131111-通用#201411111336 SMP 2014 年 11 月 11 日星期二 18:55:51 UTC i686 i686 i386 GNU/Linux

答案1

我解决了这个问题。似乎每台 Ubuntu 机器上都是这样。至少在 12.04 上是这样的。

这是我调试该问题的方法:

  • 我已经安装了 Asterisk、Linphone 和 Wireshark。我运行了它们全部。
  • 我让 Wireshark 监听“lo”。Wireshark 中通常不会显示任何内容。
  • 然后我打电话hello world本地主机。我发现 Linphone 和 asterisk 之间的第一次通信发生在 0 秒,然后在 0.5 秒时发生了一些事情,然后是长时间的停顿,下一个数据包几乎是在 3 秒之后。这就是我的问题。

下面是我修复它的方法。它消除了长达 3 秒的延迟,尽管仍有 0.5 秒,我无法消除。

事实证明域名系统附带网络管理器通过询问远程 DNS 服务器(在我的情况下是 opendns)来解析本地主机。

/etc/NetworkManager/NetworkManager.conf注释掉了#dns=dnsmasq

然后

sudo service network-manager stop
sudo netstat -anlp | grep -w LISTEN

终止所有正在运行的 dnsmasq 进程

sudo apt-get install dnsmasq

然后配置 dnsmasq,确保/etc/dnsmasq.conf你有

# Listen only on localhost
listen-address=127.0.0.1
bind-interfaces

就这样。你必须重新启动,我认为注销并登录也可以。

要查看您的系统当前是否正在使用 Dnsmasq,请运行

netstat -ulnp | grep ":53 "

你可以运行

sudo /etc/init.d/dnsmasq restart

看看是否没有收到任何错误。现在“dig localhost”需要 0 秒。

一些对我有帮助的链接: http://sokratisg.net/2012/03/31/ubuntu-precise-dnsmasq/

答案2

您看到的实际上是失败。它没有在本地得到答案,然后在线搜索,最后因为错误而放弃NXDOMAIN。它花费了这么长时间,因为它正在查询本地网络之外的主要根服务器。

它看起来应该是这样的。这是我查询主机名时看到的内容:

oli@bert:~$ dig bert

; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> bert
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25238
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;bert.              IN  A

;; Query time: 2 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Tue Jan 27 12:37:37 GMT 2015
;; MSG SIZE  rcvd: 33

您会注意到没有任何root-servers.net活动。

看起来你可能没有/etc/hosts指定主机名的行。很容易修复,只需添加如下内容:

127.0.1.1    e330

然后dig e330重试。

相关内容