sendmsg()函数内部有什么作用?

时间:2016-06-16 12:04:15

标签: c

我想知道内核如何使用此sendmsg()函数填充ip头。

sendmsg()函数用于发送连接中的消息 通过插座。我们将3个参数传递给此函数。它们是文件描述符, msghdr结构,标志。

msghdr结构中,我给目的地ip发送数据包。在这里, 因为每个数据包都是通过以太网卡发送的,我们绝对会填写 基于OSI层的头文件。所以使用sendmsg()函数,内核如何获取msghdr结构中指定的ip并填充该ip 到ip header将数据发送到目标系统?

任何人都可以对这个问题作出明确的解释吗?

1 个答案:

答案 0 :(得分:0)

正如您所说,您已经指定了目标IP。 Linux内核从发送数据包的接口中选择源IP。他可以根据应用程序是否在某个界面上调用“绑定”来改变。