DNS什么时候用UDP什么时候用TCP来传输解释

本文探讨了DNS协议在不同场景下如何选择使用TCP或UDP进行数据传输。重点介绍了DNS报文中TC字段的作用,即当应答数据超过512字节时,会触发TCP重传机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在处理一些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,连接:
我也是参考<TCP/IP详细卷1> Richard Stevens著,Stevens大叔的书写得都很精彩,特别是TCP/IP详细卷那三部.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值