为什么UDP有时比TCP更有优势
TCP协议
TCP面向连接的可靠的传输协议,在数据传输之前需要建立三次握手;
有点类似我们打的电话,通话之前需要先建立连接,双方确认在线后在进行数据传输。
UDP协议
UDP面向非连接的不可靠的传输协议,不必建立连接,直接发送数据;
有点类似我们的微信,发送之间无需确定对方是否在线,只需发送信息即可
DNS中对TCP和UDP的使用
通过抓包软件,我们常看到的是UDP的数据包,那么究竟什么时候使用TCP协议呢?
DNS的区域传输时使用TCP协议
什么是DNS的区域传输,DNS服务器分为主DNS服务器和辅DNS服务器;
在副DNS服务器和主DNS服务器进行通信,加载DNS信息时叫做DNS的区域传输。DNS的区域传输使用的是TCP协议,能够提供更加可靠的数据。
DNS的域名解析时使用UDP协议
用户端向DNS服务器发起域名解释,使用的是UDP协议;
UDP协议无需建立连接,能够提供更快的数据访问。
通过UDP包头的结构总结另一个“公式”:
UDP Data长度=IP总长度-IP Header长度-UDP Header长度
从公式可以可以看到UDP也不需要长度也可以完成工作,那UDP长度实际有什么意义呢?个人认为没有什么实际的意义。只是说不把Length写入UDP包头的话,某些应用程序会报错,因为不知道是从IP包头获取长度还是从UDP包头获取长度。因此,在UDP报文里,有两个携带重复信息的Length字段。
多重随机标签