DNS什么时候用UDP什么时候用TCP来传输解释
来源:互联网 发布:多源异构大数据 编辑:程序博客网 时间:2024/04/28 00:49
最近在处理一些DNS问题,考虑用了4层交换机来实现,根据4层交换机来说做负载均衡是采用TCP或DUP负载来做的,这时候我想DNS用的是53端口,53是TCP和UDP工用的,那么什么时候用TCP什么时候用UDP呢?下面是我看书结合下自己找出来的答案.
主要是查看DNS报文首部中的标志字段,DNS数据头部有些啥东西自己翻书咯,这里不在写出来:
[QR][opcode][AA][TC][RD][RA][(zone)][rcode]
主要关注字段为TC字段,当TC字段为1时,表示应答总长度超过512字节,只返回前512个字节,这时DNS就需要使用TCP重发原来的查询请求。因为在UDP的应用程序中,其应用程序被限制在512个字节或更小,因此DNS报文穿数据流只能有512字节,而TCP能将用户的数据流分为一些报文段,因此TCP就能用多个报文段去传超过512字节的数据流或是任意长度的数据流。
大多数书只写DNS使用DUP 53端口,这并不完整,会导致别人误解,认为DNS只用UDP,不用TCP,呵呵。
详细可查看RFC1035,连接:
http://www.ietf.org/rfc/rfc1035.txt
我也是参考<TCP/IP详细卷1> Richard Stevens著,Stevens大叔的书写得都很精彩,特别是TCP/IP详细卷那三部.
- DNS什么时候用UDP什么时候用TCP来传输解释
- DNS什么时候用UDP什么时候用TCP来传输解释
- DNS在什么时候使用TCP,在什么时候使用UDP
- DNS用UDP还是TCP传输
- 什么时候选择TCP,什么时候选择UDP?
- 什么时候选择TCP,什么时候选择UDP?
- 什么时候用抽象类,什么时候用接口
- 什么时候用GET?什么时候用POST?
- 什么时候用继承.什么时候用接口?
- 什么时候用存储过程什么时候用触发器
- 什么时候用GET?什么时候用POST?
- 什么时候用抽象类,什么时候用接口?
- 什么时候该用cacheAsBitmap,什么时候不该用
- PHP-什么时候用接口什么时候用抽象??
- 什么时候用抽象类,什么时候用接口
- 什么时候用float,什么时候用定位?
- 什么时候用抽象类,什么时候用接口
- 什么时候用抽象类什么时候用接口
- 安装 Wine Gecko
- ZOJ 1941
- 使用GhostDoc为代码生成注释文档
- 快速得到公司(老板)认同的方法——摘自七里香---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十六)
- 时间文件名
- DNS什么时候用UDP什么时候用TCP来传输解释
- Diskpart 命令行实用工具介绍
- 牛人的笔记本拆装-来自百度贴吧
- ubuntu默认root密码
- Carbide C++ 1.3 自签名文件不能安装的问题及解决办法
- 堆和栈的区别 (转)
- 让人心寒的采购
- 使用JavaScript(Ajax)访问Web Service服务
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(48):__start___param