测试代码如getaddrinfo_bench.c附件,需要手动编译
编译步骤,如果没有gcc,安装命令yum install gcc,安装gcc
gcc getaddrinfo_bench.c -o test
打开一台终端执行抓包命令
tcpdump -i enp1s0 -w ./tcpdump_save.cap
参数说明:
-i 监听网卡,后跟网卡名
-w 把监听数据写入到tcpdump_save.cap文件中
打开另一台终端,运行测试程序
./test
当程序执行完毕后,切换到运行tcpdump的终端下,执行CTRL + C 停止抓包,然后使用wireshark工具打开tcpdump_save.cap 文件查看,可以观察到transaction ID值出现重复的现象。
当客户端高并发请求域名解析时,客户端随机生成transaction ID函数精度无法满足高并发的情况,导致出现transaction ID重复的现象。
升级glibc软件包至glibc-2.28-36.1.p03.ky10及以上版本,具体的修复生效方法:
[root@build ~]# yum update glibc
修复生效说明:升级相应版本后系统会立即生效。
getaddrinfo_bench.c | 下载 |