脚本宝典收集整理的这篇文章主要介绍了Linux中UDP接收流程详解,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
UDP是一个无连接的协议,在实现上比TCP简单的多。
无论是TCP还是UDP,底层都是一个socket对应。socket中有着接收队列、等待队列、发送队列三个队列。
等待队列: 当线程调用recv_msg()的时候,如果接收队列为空,就阻塞,将其加入到等待队列中。如果接收队列不为空,就直接读取对应的数据
发送队列: 当线程调用send_msg()的时候,就将数据挂到发送队列中,对应的内核线程会将其写入网卡中
当数据到达网卡后,会一层一层的调用到udp_recv(),里面会根据源IP地址、源端口号来找到对应的socket,然后将数据包挂到socket的接收队列中,接着将等待队列中的线程唤醒,线程会继续执行recv_msg(),读取接收队列中的数据。
以上是脚本宝典为你收集整理的Linux中UDP接收流程详解全部内容,希望文章能够帮你解决Linux中UDP接收流程详解所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。