一直有一个疑问,ping 127.0.0.1
vs ping local ip
的差异是什么? 这两个操作是不是都会走网络栈? 是不是都会触发软中断的请求? 带着这些疑问持续了很久时间,内心有一个答案,但又没有实锤的证据。直到某一天脑子突然开窍了,可以简单的通过如下的方式来快速准确的直到两者的差异究竟是什么?大概的思路如下:
1) perf可以采集各种事件,也包括内核调用的事件,在记录下来后,通过perf script
可以很直观的看到程序的调用栈
2) 分别采集ping 127.0.0.1
和 ping localip
的内核调用事件, 即可以很清楚的知道内部做了什么事情。