DNS用的是TCP还是UDP呢
面试的时候被问到了上层协议如HTTP、DNS使用的传输层协议是什么呢?感觉那时候答的不是很好,所以解答一下以上的这个问题
我们再进行网络通信,在进行客户端服务端进行通信的过程,很多情况下会用到DNS,也就是域名服务器,其存在的目的是达成从域名(门牌号)到IP地址(真正的住址) 的映射
DNS使用TCP协议与UDP协议视情况而定
1.域名解析,实现这种功能一般来说是认为使用的UDP协议,当客户端向DNS查询域名,一般不会超过512字节,而且无连接的过程更安全也更快,所以使用UDP协议进行通信有其独特的好处,体现在效率高,相对来说更加安全,不过也是不可靠的
2.区域传输,实现这种功能时则有时需要TCP协议,即进行与主域名服务器进行查询以确认数据是否有效,用TCP则是依赖了其可靠性
3.理论上来说,在客户端与DNS进行通信的过程中,使用两种传输协议在理论上都是可以实行的,但是事实上在目前的浏览器或者说在目前的清醒进行客户端与DNS的通信时一般默认使用UDP,而且某些客户端与DNS进行通信的时候还指定了使用UDP的通信方式,这就和当前HTTP与HTTPS对比下,在民用,安全问题不严峻的前提下,会偏向于使用速度更快的协议
TCP、UDP分别支持的应用层协议
TCP:Telnet,FTP,SMTP
UDP:NFS,SNMP,DNS,TETP