什么时候DNS查询使用TCP而不是UDP?

可能重复:
名称服务器是否必须通过TCP回答查询?

我知道DNS使用UDP的大部分查询,但在什么情况下,它会使用TCP代替?

当请求或响应的大小大于单个数据包(例如具有多个logging或多个IPv6响应或大多数DNSSEC响应的响应)时,DNS经过TCP。

最大大小最初是512字节,但有一个DNS协议的扩展,允许客户端指出他们可以处理高达4096字节的UDP响应。

DNSSEC响应通常大于最大UDP大小。

传输请求通常大于最大UDP大小,因此也将通过TCP完成。

传输控制协议(TCP)在响应数据大小超过512字节时使用,或者用于区域传输等任务。

http://en.wikipedia.org/wiki/Domain_Name_System#Protocol_transport