ICMP没有端口号,如何保证数据的正确接收?

如果有多个进程使用TCP,那么当TCP接收到数据时,根据端口号知道数据是属于哪个进程的。
但是,如果有多个进程都使用ICMP,ICMP不使用端口号,那么当ICMP接收到数据时,怎么知道该数据是属于哪个进程的呢?

图片描述

阅读 5.8k
1 个回答
  1. 对于 ICMP 套接字,ICMP id 就是进程号。

  2. 对于 raw 套接字,程序自己记住 id。比如 Linux 的 ping 命令就会判断收到的 ICMP 包是不是对应自己发出的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进