zoukankan      html  css  js  c++  java
  • DNS分别在什么情况下使用UDP和TCP

             DNS同一时候占用UDP和TCPport53是公认的,这样的单个应用协议同一时候使用两种传输协议的情况在TCP/IP栈也算是个另类。但非常少有人知道DNS分别在什么情况下使用这两种协议。

         假设用wireshark、sniffer或古老些的tcpdump抓包分析,会发现差点儿全部的情况都是在使用UDP,使用TCP的情况很罕见,神奇兮兮。事实上当解析器发出一个request后。返回的response中的tc删节标志比特位被置1时。说明反馈报文由于超长而有删节。这是由于UDP的报文最大长度为512字节。解析器发现后。将使用TCP重发request,TCP同意报文长度超过512字节。既然TCP能将data stream分成多个segment,它就能用很多其它的segment来传送随意长度的数据。

         第二种情况是。当一个域的辅助域名server启动时。将从该域的主域名serverprimary DNS server运行区域传送。除此之外。辅域名server也会定时(一般时3小时)向PDS进行查询以便了解SOA的数据是否有变动。

    如有变动。也会运行一次区域传送。

    区域传送将使用TCP而不是UDP,由于传送的数据量比一个request或response多得多。

         DNS主要还是使用UDP,解析器还是服务端都必须自己处理重传和超时。

    DNS往往须要跨越广域网或互联网。分组丢失率和往返时间的不确定性要更大些,这对于DNSclient来说是个考验,好的重传和超时检測就显得更重要了。DNS分别在什么情况下使用UDP和TCP - E界风云 - 我的博客

  • 相关阅读:
    YYC松鼠视频pro版安装实操001
    YYC松鼠视频短信对接教程
    此处指讲解自定义的一些目录结构及组件-yyc松鼠短视频系统
    APP启动无视频数据-YYC松鼠短视频系统
    后台提示登录失败----YYC松鼠短视频开源
    C++静态成员变量和静态成员函数
    内联函数和宏定义的区别
    C++中的接口继承和实现继承
    拷贝构造函数(define)
    类的封装
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7121821.html
Copyright © 2011-2022 走看看