測試代碼如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 | 下載 |