我想知道内核如何使用此sendmsg()
函数填充ip头。
sendmsg()
函数用于发送连接中的消息
通过插座。我们将3个参数传递给此函数。它们是文件描述符,
msghdr结构,标志。
在msghdr
结构中,我给目的地ip发送数据包。在这里,
因为每个数据包都是通过以太网卡发送的,我们绝对会填写
基于OSI层的头文件。所以使用sendmsg()
函数,内核如何获取msghdr
结构中指定的ip并填充该ip
到ip header将数据发送到目标系统?
任何人都可以对这个问题作出明确的解释吗?
答案 0 :(得分:0)
正如您所说,您已经指定了目标IP。 Linux内核从发送数据包的接口中选择源IP。他可以根据应用程序是否在某个界面上调用“绑定”来改变。