Browsed by
Tag: google

Cloudflare 返回的DNS结果

Cloudflare 返回的DNS结果

最近查一个客户遇到的 SIP 呼叫问题,发现在检查 DNS 记录时有问题,没有正确获取 DNS 记录。切换了几个 DNS 服务器测试,只有 Cloudflare DNS 服务器(1.1.1.x 系列) 返回的DNS记录会触发问题。

这并不是说 Cloudflare 的DNS记录有错误,而是我们自己实现的 DNS 库没有考虑到该记录的不同寻常之处。Cloudflare 的返回结果确实有点与众不同。

下图是Google DNS 以及 Ali DNS 返回的DNS结果,请注意其中的 Name 字段的内容(0xC0 0x0C)

Google DNS 结果
Google / Ali DNS 返回结果

很明显,这种DNS结果采用了 compress 方式,通过 offset 来获取真正的Name。图中的 0x0C 实际就是偏移量,指向了包中的另一处地址。Compress 方式最直接的好处就是节省了包大小。

而 Cloudflare 的 DNS 结果如下图所示,直接将域名包含在 Name 中,以 0x03 标注开始,以 0x00 表示字符串结束。不再需要偏移指向其他地址。

Cloudflare 的 DNS 记录
Cloudflare DNS 返回的结果

这种方法的好处是够直接,不再需要跳转获取真实的域名信息。当然坏处是增加了数据包的大小。

我们测试了网络上大部分的 DNS 服务器,目前仅发现 Cloudflare 采取了这种方式,其他服务器都是采用 compress 方式。

站在“人”的体验角度,似乎 Cloudflare 更合理一些。但是要注意,compress 方式更符合计算机的处理,毕竟前面的 Queries 部分已经解析过 Name 了,没必要再解析一次。另一方面,直接 offset 寻址,也远远快于再一次通过判断0x00来解析Name 字符串。

因此我个人认为 Cloudflare 的处理方式,即拖慢了速度,又增加了数据包消耗。当然,以目前计算机的处理能力以及网络速度,这些都是浮云。我们的解决方式也是淡定地接受这个结果,并修改 DNS 库进行适配即可。

在本次查问题中,测试了网上公布的香港 DNS 服务器,全部拒绝了来自大陆 IP 地址的 DNS 请求,真有意思。

去掉google fonts

去掉google fonts

在大陆的网络打开这个blog的速度非常慢,基本上都是几十秒才能打开。简单搜索了一下,根本原因是大陆的网络屏蔽了google的大部分IP地址,而wordpress的默认主题使用了google fonts。这就导致整个加载过程极其缓慢。

解决方法也比较简单。显然很多人都被这个问题给困扰了,因此有位朋友就制作了一个插件,名字就是”disable google fonts”,在wordpress的plugins库中能搜索到。

安装上述插件并激活后,blog的访问速度立刻就提升了很多。

基于HTML5的SIP客户端

基于HTML5的SIP客户端

项目名称是:sipml5,地址:http://code.google.com/p/sipml5/

该项目基于Google的WebRTC项目。这点与我以前写的一篇blog吻合,将SIP引入WebRTC不仅是可能,而且已经有人搞定了!

粗略地看了一下该项目的情况,界面是比较丑陋,不过看介绍应该是基本可用的。这是个好消息啊,尤其对企业用户而言,可能都不需要每个员工安装部署SIP终端,直接部署该终端即可,再结合云通信平台,整个系统都能简化不少。

如果该项目能覆盖Chrome, Firefox以及IE三个主要平台,基本就可以在实际环境中部署。非常让人期待啊。

Google开放实时通信框架WebRTC

Google开放实时通信框架WebRTC

据说WebRTC是Web方式进行语音、视频实时通信的框架。项目地址如下:

http://sites.google.com/site/webrtc/ (需翻墙浏览?)

暂时还不太清楚这个技术的细节,不过如果像Google宣传的那样,就可以实现高质量的web通信方式。传统的SIP软终端就面临很大的挑战,从另一方面来说,可能也是一次打破现有格局的机遇。

在google chrome中使用google docs的方法

在google chrome中使用google docs的方法

由于众所周知的原因,首先要修改本机的hosts文件,由本机自己解析google docs对应的IP地址,避免DNS污染。

hosts文件存放位置: C:\WINDOWS\system32\drivers\etc

修改了hosts后,使用chrome登录google docs还可能出错,此时错误原因值是指 protocol error (ERR_SSL_PROTOCOL_ERROR)。这种情况,一般配置SSL2就可以解决:

点击chrome的扳手按钮,然后顺序点击以下菜单:选项 / 高级选项 / 计算机总体SSL设置,在其中选择“使用SSL 2.0”即可。

如何察看Gmail中的未读邮件?

如何察看Gmail中的未读邮件?

看起来这是一个很普通的功能,但是在gmail的各项菜单中,居然没有察看未读邮件的选项。这确实是一件让人摸不着头脑的事情。

在讨论这个问题之前,先讨论一个别的问题:gmail对来信的时间判断。gmail不是根据gmail服务器的时间来判断的,而是根据来信自己的时间戳进行判断。如果来信的时间是非常久远之前的,则gmail将它排到列表的最后面(oldest)。有位不知名的朋友发了封信过来,在gmail的inbox中显示有一封未读来信,可是我始终找不着是哪封邮件未读,只好将583M的邮件翻了个底朝天,最后发现,来信的日期居然是2004年,gmail直接将它放在最后面了。

由此想到,如果能直接查找到未读邮件,就不用那么辛苦的去翻旧邮件了,接着就惊讶地发现,gmail居然没有这项设置。后来在google中进行搜索,才发现是通过以下方式来实现的:

在“search mail”的输入框内,输入label:unread进行搜索就可以了。

不算太麻烦,不过如果能设置成缺省功能项,则可能会更好些。