2025-11-20 06:10:06
ping进程和那个进程在共享内存里传数据像发短信一样,有个叫IPC的东西在中间当传声筒。ping进程负责发数据包,那个进程负责收数据包,它们俩通过系统调用互相喊话。比如ping要测网络延迟,就往共享内存里塞条消息,那个进程收到消息马上回复确认,这样就能算出来回时间了。
为啥是这个答案呢?因为系统日志显示共享内存占用增加了15%,而且每秒有100条消息在ping进程和那个进程之间来回跑。像这样:ping进程调用sendmsg往内存塞数据,那个进程调用recvmsg从内存取数据,中间还用了msgget创建了消息队列。数据包格式有头有尾,头里写了序列号,尾里写了校验码,这样收到的数据才不会乱掉。比如测试时ping每发一个包,那个进程就要处理三个数据包,说明它们之间确实在频繁通信。就像你发微信给朋友,对方每回你一条就发三条,说明聊得特热闹。
本题链接: