1,使用wireshark获取完整的UDP报文
打开wireshark,设置监听网卡后,使用google chrome浏览器访问我腾讯微博的i http://p.t.qq.com/welcomeback.php?lv=1#!/ist/qqfriends/5/?pgv_ref-im.perinfo.pe rinfo.icon?ptlang-2052&pgv-ref-im.perinfo.perinfo.icon,抓得的UDP报文如图1所示。
分析以上的报文内容,UDP作为一种面向无连接服务的运输协议,其报文格式相当简单。第一行中,Source port:64318是源端口号。第二行中,Destination port:53是目的端口号。第三行中,Length:34表示UDP报文段的长度为34字节。第四行中,Checksum之后的数表示检验和。这里0x表示计算机中16进制数的开始符,其后的4f0e表示16进制表示的检验和,把它们换成二进制表示为:
0100 1111 0000 1110.
从wireshark的抓包数据看出,我抓到的UDP协议多数被应用层的DNS协议应用。当一台主机中的DNS应用程序想要进行一次查询时,它构成了一个DNS查询报文并将其交给UDP,UDP无须执行任何实体握手过程,主机端的UDP为此报文添加首部字段,并将其发出。