Linux中UDP接收流程详解

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Linux中UDP接收流程详解脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

UDP是一个无连接的协议,在实现上比TCP简单的多。

1、创建socket

无论是TCP还是UDP,底层都是一个socket对应。socket中有着接收队列、等待队列、发送队列三个队列。

接收队列F1a; 用来存放对应的数据

等待队列: 当线程调用recv_msg()的时候,如果接收队列为空,就阻塞,将其加入到等待队列中。如果接收队列不为空,就直接读取对应的数据

发送队列: 当线程调用send_msg()的时候,就将数据挂到发送队列中,对应的内核线程会将其写入网卡中

2、接收数据

当数据到达网卡后,会一层一层的调用到udp_recv(),里面会根据IP地址、源端口号来找到对应的socket,然后将数据包挂到socket的接收队列中,接着将等待队列中的线程唤醒,线程会继续执行recv_msg(),读取接收队列中的数据。

脚本宝典总结

以上是脚本宝典为你收集整理的Linux中UDP接收流程详解全部内容,希望文章能够帮你解决Linux中UDP接收流程详解所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。